Merge pull request #2 from wekan/master

newest version
This commit is contained in:
ryan neal 2021-04-27 12:36:57 -07:00 committed by GitHub
commit 9a2d3e15e8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 1077 additions and 1049 deletions

View file

@ -5,6 +5,17 @@ This release adds the following updates:
- [Updated release scripts](https://github.com/wekan/wekan/commit/9f0f6841b01b88f5559724b047d5e245617a02c8).
Thanks to xet7.
and fixes the following bugs:
- [Added missing PostgreSQL password to ToroDB](https://github.com/wekan/wekan/commit/995de525d96946702536f0cdcb98ef281b9df94e).
Thanks to xet7.
- [Fixed language name of Deutsch (Schweiz)](https://github.com/wekan/wekan/commit/621c701bef1d09d4ddfc93be411cfad98869f0ae).
Thanks to urmel1960.
- [Bugfix/Summernote on paste](https://github.com/wekan/wekan/pull/3761).
Thanks to ryanMushy.
- [OpenAPI: Better handle nested schemas](https://github.com/wekan/wekan/pull/3762).
Thanks to bentiss.
Thanks to above GitHub users for their contributions and translators for their translations.
# v5.24 2021-04-24 Wekan release

View file

@ -145,6 +145,7 @@ Template.editor.onRendered(() => {
const MAX_IMAGE_PIXEL = Utils.MAX_IMAGE_PIXEL;
const COMPRESS_RATIO = Utils.IMAGE_COMPRESS_RATIO;
const insertImage = src => {
// process all image upload types to the description/comment window
const img = document.createElement('img');
img.src = src;
img.setAttribute('width', '100%');
@ -210,7 +211,16 @@ Template.editor.onRendered(() => {
}
}
},
onPaste() {
onPaste(e) {
var clipboardData = e.clipboardData;
var pastedData = clipboardData.getData('Text');
//if pasted data is an image, exit
if( !pastedData.length ){
e.preventDefault();
return;
}
// clear up unwanted tag info when user pasted in text
const thisNote = this;
const updatePastedText = function(object) {
@ -219,7 +229,7 @@ Template.editor.onRendered(() => {
// (and multiplies by pasting more) by changing paste "p" to "br".
// Fixes https://github.com/wekan/wekan/2890 .
// == Fix Start ==
someNote.execCommand('defaultParagraphSeparator', false, 'br');
//someNote.execCommand('defaultParagraphSeparator', false, 'br');
// == Fix End ==
const original = someNote.summernote('code');
const cleaned = cleanPastedHTML(original); //this is where to call whatever clean function you want. I have mine in a different file, called CleanPastedHTML.
@ -231,19 +241,16 @@ Template.editor.onRendered(() => {
//the function is called before the text is really pasted.
updatePastedText(thisNote);
}, 10);
},
}
},
dialogsInBody: true,
spellCheck: true,
disableGrammar: false,
disableDragAndDrop: true,
disableDragAndDrop: false,
toolbar,
popover: {
image: [
[
'image',
['resizeFull', 'resizeHalf', 'resizeQuarter', 'resizeNone'],
],
['imagesize', ['imageSize100', 'imageSize50', 'imageSize25']],
['float', ['floatLeft', 'floatRight', 'floatNone']],
['remove', ['removeMedia']],
],

View file

@ -78,7 +78,7 @@ Template.userFormsLayout.helpers({
// ar-EG = Arabic (Egypt), simply Masri (مَصرى, [ˈmɑsˤɾi], Egyptian, Masr refers to Cairo)
name = 'مَصرى';
} else if (lang.name === 'de-CH') {
name = 'Schwiizerdütsch';
name = 'Deutsch (Schweiz)';
} else if (lang.name === 'fa-IR') {
// fa-IR = Persian (Iran)
name = 'فارسی/پارسی (ایران‎)';

View file

@ -175,7 +175,7 @@ Template.changeLanguagePopup.helpers({
// fa-IR = Persian (Iran)
name = 'فارسی/پارسی (ایران‎)';
} else if (lang.name === 'de-CH') {
name = 'Schwiizerdütsch';
name = 'Deutsch (Schweiz)';
} else if (lang.name === 'fr-BE') {
name = 'Français (Belgique)';
} else if (lang.name === 'fr-CA') {

File diff suppressed because it is too large Load diff

View file

@ -607,6 +607,9 @@ class SchemaProperty(object):
# deal with subschemas
if '.' in name:
subschema = name.split('.')[0]
subschema = subschema.capitalize()
if name.endswith('$'):
# reference in reference
subschema = ''.join([n.capitalize() for n in self.name.split('.')[:-1]])
@ -621,9 +624,12 @@ class SchemaProperty(object):
print(''' {}:
type: object'''.format(subschema))
return current_schema
elif '$' in name:
# In the form of 'profile.notifications.$.activity'
subschema = name[:name.index('$') - 1] # 'profile.notifications'
subschema = ''.join([s.capitalize() for s in subschema.split('.')])
subschema = name.split('.')[0]
schema_name = self.schema.name + subschema.capitalize()
schema_name = self.schema.name + subschema
name = name.split('.')[-1]
if current_schema != schema_name:
@ -755,7 +761,7 @@ class Schemas(object):
# then print the references
current = None
required_properties = []
properties = [f for f in self.fields if '.' in f.name and not f.name.endswith('$')]
properties = [f for f in self.fields if '.' in f.name and not '$' in f.name]
for prop in properties:
current = prop.print_openapi(6, current, required_properties)
@ -766,7 +772,7 @@ class Schemas(object):
required_properties = []
# then print the references in the references
for prop in [f for f in self.fields if '.' in f.name and f.name.endswith('$')]:
for prop in [f for f in self.fields if '.' in f.name and '$' in f.name]:
current = prop.print_openapi(6, current, required_properties)
if required_properties:

View file

@ -3681,20 +3681,6 @@ definitions:
- createdAt
- modifiedAt
- authenticationMethod
UsersEmails:
type: object
properties:
address:
description: |
The email address
type: string
verified:
description: |
Has the email been verified
type: boolean
required:
- address
- verified
UsersProfile:
type: object
properties:
@ -3750,14 +3736,6 @@ definitions:
type: array
items:
$ref: "#/definitions/UsersProfileNotifications"
activity:
description: |
The id of the activity this notification references
type: string
read:
description: |
the date on which this notification was read
type: string
showCardsCountAt:
description: |
showCardCountAt field of the user
@ -3813,7 +3791,6 @@ definitions:
Reference to the board templates swimlane Id
type: string
required:
- activity
- templatesBoardId
- cardTemplatesSwimlaneId
- listTemplatesSwimlaneId
@ -3829,3 +3806,30 @@ definitions:
description: |
last hit that was returned
type: number
UsersEmails:
type: object
properties:
address:
description: |
The email address
type: string
verified:
description: |
Has the email been verified
type: boolean
required:
- address
- verified
UsersProfileNotifications:
type: object
properties:
activity:
description: |
The id of the activity this notification references
type: string
read:
description: |
the date on which this notification was read
type: string
required:
- activity

View file

@ -63,7 +63,7 @@ tx pull -f -l ka
echo "German:"
tx pull -f -l de
echo "German (Switzerland):"
echo "German (Switzerland) => Deutsch (Schweiz):"
tx pull -f -l de_CH
echo "Greek:"

View file

@ -99,7 +99,7 @@ services:
- postgres
- mongodb
environment:
- POSTGRES_PASSWORD
- POSTGRES_PASSWORD=wekan
- TORODB_SETUP=true
- TORODB_SYNC_SOURCE=mongodb:27017
- TORODB_BACKEND_HOST=postgres
@ -113,7 +113,7 @@ services:
networks:
- wekan-tier
environment:
- POSTGRES_PASSWORD
- POSTGRES_PASSWORD=wekan
ports:
- "5432:5432"
mongodb: