diff options
-rw-r--r-- | CHANGELOG.md | 4 | ||||
-rw-r--r-- | Dockerfile | 2 | ||||
-rw-r--r-- | client/components/boards/boardBody.js | 5 | ||||
-rw-r--r-- | client/components/cards/cardDetails.js | 15 | ||||
-rw-r--r-- | client/components/cards/checklists.js | 7 | ||||
-rw-r--r-- | client/components/cards/minicard.jade | 4 | ||||
-rw-r--r-- | client/components/lists/list.js | 17 | ||||
-rw-r--r-- | client/components/lists/listHeader.jade | 3 | ||||
-rw-r--r-- | client/components/main/popup.styl | 1 | ||||
-rw-r--r-- | client/components/swimlanes/swimlanes.js | 33 | ||||
-rw-r--r-- | i18n/da.i18n.json | 20 | ||||
-rw-r--r-- | i18n/ja.i18n.json | 16 | ||||
-rw-r--r-- | rebuild-wekan.bat | 3 | ||||
-rwxr-xr-x | rebuild-wekan.sh | 2 | ||||
-rwxr-xr-x | releases/rebuild-release.sh | 2 | ||||
-rw-r--r-- | snapcraft.yaml | 2 | ||||
-rwxr-xr-x | stacksmith/user-scripts/build.sh | 2 |
17 files changed, 56 insertions, 82 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index e5652225..f7c5fd51 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,10 @@ and fixes the following bugs: Thanks to xet7. - [Fix getStartDayOfWeek function](https://github.com/wekan/wekan/pull/3038). Thanks to marc1006 and boeserwolf. +- [Improve mobile devices support](https://github.com/wekan/wekan/pull/3040). + Thanks to marc1006. +- [Fix Wekan not load at all in Firefox v.68 for Android](https://github.com/wekan/wekan/commit/1235363465b824d26129d4aa74a4445f362c1a73). + Thanks to xet7. Thanks to above GitHub users for their contributions and translators for their translations. @@ -271,6 +271,8 @@ RUN \ cd /home/wekan/app_build/bundle/programs/server/ && \ gosu wekan:wekan npm install && \ #gosu wekan:wekan npm install bcrypt && \ + # Remove legacy webbroser bundle, so that Wekan works also at Android Firefox, iOS Safari, etc. + rm -rf /home/wekan/app_build/bundle/programs/web.browser.legacy && \ mv /home/wekan/app_build/bundle /build && \ \ # Put back the original tar diff --git a/client/components/boards/boardBody.js b/client/components/boards/boardBody.js index e70a9f67..29922fcc 100644 --- a/client/components/boards/boardBody.js +++ b/client/components/boards/boardBody.js @@ -205,7 +205,7 @@ BlazeComponent.extendComponent({ } else { showDesktopDragHandles = false; } - if (!Utils.isMiniScreen() && showDesktopDragHandles) { + if (Utils.isMiniScreen() || showDesktopDragHandles) { $swimlanesDom.sortable({ handle: '.js-swimlane-header-handle', }); @@ -215,9 +215,8 @@ BlazeComponent.extendComponent({ }); } - // Disable drag-dropping if the current user is not a board member or is miniscreen + // Disable drag-dropping if the current user is not a board member $swimlanesDom.sortable('option', 'disabled', !userIsMember()); - $swimlanesDom.sortable('option', 'disabled', Utils.isMiniScreen()); }); function userIsMember() { diff --git a/client/components/cards/cardDetails.js b/client/components/cards/cardDetails.js index b958d5bf..8fc3c12a 100644 --- a/client/components/cards/cardDetails.js +++ b/client/components/cards/cardDetails.js @@ -278,17 +278,12 @@ BlazeComponent.extendComponent({ // Disable sorting if the current user is not a board member this.autorun(() => { - if ($checklistsDom.data('sortable')) { - $checklistsDom.sortable('option', 'disabled', !userIsMember()); + const disabled = !userIsMember() || Utils.isMiniScreen(); + if ($checklistsDom.data('uiSortable')) { + $checklistsDom.sortable('option', 'disabled', disabled); } - if ($subtasksDom.data('sortable')) { - $subtasksDom.sortable('option', 'disabled', !userIsMember()); - } - if ($checklistsDom.data('sortable')) { - $checklistsDom.sortable('option', 'disabled', Utils.isMiniScreen()); - } - if ($subtasksDom.data('sortable')) { - $subtasksDom.sortable('option', 'disabled', Utils.isMiniScreen()); + if ($subtasksDom.data('uiSortable')) { + $subtasksDom.sortable('option', 'disabled', disabled); } }); }, diff --git a/client/components/cards/checklists.js b/client/components/cards/checklists.js index 5acab536..8daf6ee7 100644 --- a/client/components/cards/checklists.js +++ b/client/components/cards/checklists.js @@ -57,11 +57,8 @@ BlazeComponent.extendComponent({ // Disable sorting if the current user is not a board member self.autorun(() => { const $itemsDom = $(self.itemsDom); - if ($itemsDom.data('sortable')) { - $(self.itemsDom).sortable('option', 'disabled', !userIsMember()); - } - if ($itemsDom.data('sortable')) { - $(self.itemsDom).sortable('option', 'disabled', Utils.isMiniScreen()); + if ($itemsDom.data('uiSortable')) { + $(self.itemsDom).sortable('option', 'disabled', !userIsMember() || Utils.isMiniScreen()); } }); }, diff --git a/client/components/cards/minicard.jade b/client/components/cards/minicard.jade index 0b881a54..b6ccd4d7 100644 --- a/client/components/cards/minicard.jade +++ b/client/components/cards/minicard.jade @@ -4,8 +4,8 @@ template(name="minicard") class="{{#if isLinkedBoard}}linked-board{{/if}}" class="minicard-{{colorClass}}") if isMiniScreen - //.handle - // .fa.fa-arrows + .handle + .fa.fa-arrows unless isMiniScreen if showDesktopDragHandles .handle diff --git a/client/components/lists/list.js b/client/components/lists/list.js index 8574caf7..a0031b2f 100644 --- a/client/components/lists/list.js +++ b/client/components/lists/list.js @@ -129,7 +129,7 @@ BlazeComponent.extendComponent({ showDesktopDragHandles = false; } - if (!Utils.isMiniScreen() && showDesktopDragHandles) { + if (Utils.isMiniScreen() || showDesktopDragHandles) { $cards.sortable({ handle: '.handle', }); @@ -139,27 +139,16 @@ BlazeComponent.extendComponent({ }); } - if ($cards.data('sortable')) { + if ($cards.data('uiSortable')) { $cards.sortable( 'option', 'disabled', - // Disable drag-dropping when user is not member/is miniscreen + // Disable drag-dropping when user is not member !userIsMember(), // Not disable drag-dropping while in multi-selection mode // MultiSelection.isActive() || !userIsMember(), ); } - - if ($cards.data('sortable')) { - $cards.sortable( - 'option', - 'disabled', - // Disable drag-dropping when user is not member/is miniscreen - Utils.isMiniScreen(), - // Not disable drag-dropping while in multi-selection mode - // MultiSelection.isActive() || !userIsMember(), - ); - } }); // We want to re-run this function any time a card is added. diff --git a/client/components/lists/listHeader.jade b/client/components/lists/listHeader.jade index 182fee9e..fa1faf34 100644 --- a/client/components/lists/listHeader.jade +++ b/client/components/lists/listHeader.jade @@ -30,10 +30,9 @@ template(name="listHeader") if canSeeAddCard a.js-add-card.fa.fa-plus.list-header-plus-icon a.fa.fa-navicon.js-open-list-menu - //a.list-header-handle.handle.fa.fa-arrows.js-list-handle else a.list-header-menu-icon.fa.fa-angle-right.js-select-list - //a.list-header-handle.handle.fa.fa-arrows.js-list-handle + a.list-header-handle.handle.fa.fa-arrows.js-list-handle else if currentUser.isBoardMember if isWatching i.list-header-watch-icon.fa.fa-eye diff --git a/client/components/main/popup.styl b/client/components/main/popup.styl index f1db3927..b4815ca6 100644 --- a/client/components/main/popup.styl +++ b/client/components/main/popup.styl @@ -320,6 +320,7 @@ $popupWidth = 300px input[type="file"] margin: 4px 0 12px width: 100% + box-sizing: border-box .pop-over-list li > a diff --git a/client/components/swimlanes/swimlanes.js b/client/components/swimlanes/swimlanes.js index b7a55ce6..2d299ddc 100644 --- a/client/components/swimlanes/swimlanes.js +++ b/client/components/swimlanes/swimlanes.js @@ -111,7 +111,7 @@ function initSortable(boardComponent, $listsDom) { showDesktopDragHandles = false; } - if (!Utils.isMiniScreen() && showDesktopDragHandles) { + if (Utils.isMiniScreen() || showDesktopDragHandles) { $listsDom.sortable({ handle: '.js-list-handle', }); @@ -122,34 +122,12 @@ function initSortable(boardComponent, $listsDom) { } const $listDom = $listsDom; - if ($listDom.data('sortable')) { + if ($listDom.data('uiSortable')) { $listsDom.sortable( 'option', 'disabled', - // Disable drag-dropping when user is not member/is worker/is miniscreen - !userIsMember(), - // Not disable drag-dropping while in multi-selection mode - // MultiSelection.isActive() || !userIsMember(), - ); - } - - if ($listDom.data('sortable')) { - $listsDom.sortable( - 'option', - 'disabled', - // Disable drag-dropping when user is not member/is worker/is miniscreen - Meteor.user().isWorker(), - // Not disable drag-dropping while in multi-selection mode - // MultiSelection.isActive() || !userIsMember(), - ); - } - - if ($listDom.data('sortable')) { - $listsDom.sortable( - 'option', - 'disabled', - // Disable drag-dropping when user is not member/is worker/is miniscreen - Utils.isMiniScreen(), + // Disable drag-dropping when user is not member/is worker + !userIsMember() || Meteor.user().isWorker(), // Not disable drag-dropping while in multi-selection mode // MultiSelection.isActive() || !userIsMember(), ); @@ -210,8 +188,7 @@ BlazeComponent.extendComponent({ } const noDragInside = ['a', 'input', 'textarea', 'p'].concat( - Utils.isMiniScreen() || - (!Utils.isMiniScreen() && showDesktopDragHandles) + Utils.isMiniScreen() || showDesktopDragHandles ? ['.js-list-handle', '.js-swimlane-header-handle'] : ['.js-list-header'], ); diff --git a/i18n/da.i18n.json b/i18n/da.i18n.json index ff0de818..3ee4e944 100644 --- a/i18n/da.i18n.json +++ b/i18n/da.i18n.json @@ -342,7 +342,7 @@ "hide-system-messages": "Skjul systembeskeder", "headerBarCreateBoardPopup-title": "Opret tavle", "home": "Hjem", - "import": "Import", + "import": "Importér", "link": "Link", "import-board": "importér tavle", "import-board-c": "Importér tavle", @@ -433,7 +433,7 @@ "profile": "Profil", "public": "Offentlig", "public-desc": "Denne tavle er offentlig. Den er synlig for alle med linket og vil blive vist i søgemaskiner som Google. Det er kun personer tilføjet til tavlen, der kan redigere. ", - "quick-access-description": "Stjernemarkér en tavle for at tilføje en genvej i denne bjælke.", + "quick-access-description": "Stjernemarkér en tavle for at tilføje genvej i denne bjælke.", "remove-cover": "Fjern omslag", "remove-from-board": "Fjern fra tavle", "remove-label": "Fjern etikette", @@ -775,12 +775,12 @@ "remove-all-read": "Fjern alle læste", "allow-rename": "Tillad omdøb", "allowRenamePopup-title": "Tillad omdøb", - "start-day-of-week": "Set day of the week start", - "monday": "Monday", - "tuesday": "Tuesday", - "wednesday": "Wednesday", - "thursday": "Thursday", - "friday": "Friday", - "saturday": "Saturday", - "sunday": "Sunday" + "start-day-of-week": "Angiv dag for ugestart", + "monday": "Mandag", + "tuesday": "Tirsdag", + "wednesday": "Onsdag", + "thursday": "Torsdag", + "friday": "Fredag", + "saturday": "Lørdag", + "sunday": "Søndag" } diff --git a/i18n/ja.i18n.json b/i18n/ja.i18n.json index 7b597428..54e07819 100644 --- a/i18n/ja.i18n.json +++ b/i18n/ja.i18n.json @@ -775,12 +775,12 @@ "remove-all-read": "全ての既読を削除", "allow-rename": "リネームを許可する", "allowRenamePopup-title": "リネームを許可する", - "start-day-of-week": "Set day of the week start", - "monday": "Monday", - "tuesday": "Tuesday", - "wednesday": "Wednesday", - "thursday": "Thursday", - "friday": "Friday", - "saturday": "Saturday", - "sunday": "Sunday" + "start-day-of-week": "週の始まりを設定", + "monday": "月曜", + "tuesday": "火曜", + "wednesday": "水曜", + "thursday": "木曜", + "friday": "金曜", + "saturday": "土曜", + "sunday": "日曜" } diff --git a/rebuild-wekan.bat b/rebuild-wekan.bat index 232629ce..1c38293f 100644 --- a/rebuild-wekan.bat +++ b/rebuild-wekan.bat @@ -53,6 +53,9 @@ call meteor npm install REM del /S /F /Q .build
call meteor build .build --directory
copy fix-download-unicode\cfs_access-point.txt .build\bundle\programs\server\packages\cfs_access-point.js
+REM ## Remove legacy webbroser bundle, so that Wekan works also at Android Firefox, iOS Safari, etc.
+del /S /F /Q rm .build/bundle/programs/web.browser.legacy
+REM ## Install some NPM packages
cd .build\bundle\programs\server
call meteor npm install
REM cd C:\repos\wekan\.meteor\local\build\programs\server
diff --git a/rebuild-wekan.sh b/rebuild-wekan.sh index 61c19928..5b921574 100755 --- a/rebuild-wekan.sh +++ b/rebuild-wekan.sh @@ -148,6 +148,8 @@ do rm -rf .build meteor build .build --directory cp -f fix-download-unicode/cfs_access-point.txt .build/bundle/programs/server/packages/cfs_access-point.js + # Remove legacy webbroser bundle, so that Wekan works also at Android Firefox, iOS Safari, etc. + rm -rf .build/bundle/programs/web.browser.legacy #Removed binary version of bcrypt because of security vulnerability that is not fixed yet. #https://github.com/wekan/wekan/commit/4b2010213907c61b0e0482ab55abb06f6a668eac #https://github.com/wekan/wekan/commit/7eeabf14be3c63fae2226e561ef8a0c1390c8d3c diff --git a/releases/rebuild-release.sh b/releases/rebuild-release.sh index f3964885..02b862d0 100755 --- a/releases/rebuild-release.sh +++ b/releases/rebuild-release.sh @@ -11,6 +11,8 @@ meteor npm install rm -rf .build METEOR_PROFILE=100 meteor build .build --directory cp -f fix-download-unicode/cfs_access-point.txt .build/bundle/programs/server/packages/cfs_access-point.js +# Remove legacy webbroser bundle, so that Wekan works also at Android Firefox, iOS Safari, etc. +rm -rf .build/bundle/programs/web.browser.legacy cd .build/bundle/programs/server rm -rf node_modules meteor npm install diff --git a/snapcraft.yaml b/snapcraft.yaml index 940bb378..689d150c 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -216,6 +216,8 @@ parts: #meteor npm install --save bcrypt # Change from npm-bcrypt directory back to .build/bundle/programs/server directory. #cd ../../../../ + # Remove legacy webbroser bundle, so that Wekan works also at Android Firefox, iOS Safari, etc. + rm -rf .build/bundle/programs/web.browser.legacy # Change to directory .build/bundle/programs/server cd .build/bundle/programs/server npm install diff --git a/stacksmith/user-scripts/build.sh b/stacksmith/user-scripts/build.sh index 22b88dc9..16befc43 100755 --- a/stacksmith/user-scripts/build.sh +++ b/stacksmith/user-scripts/build.sh @@ -75,6 +75,8 @@ sudo -u wekan ${meteor} build --directory /home/wekan/app_build sudo cp /home/wekan/app/fix-download-unicode/cfs_access-point.txt /home/wekan/app_build/bundle/programs/server/packages/cfs_access-point.js sudo chown wekan:wekan /home/wekan/app_build/bundle/programs/server/packages/cfs_access-point.js sudo rm /home/wekan/app_build/bundle/programs/server/npm/node_modules/meteor/rajit_bootstrap3-datepicker/lib/bootstrap-datepicker/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs +# Remove legacy webbroser bundle, so that Wekan works also at Android Firefox, iOS Safari, etc. +rm -rf /home/wekan/app_build/bundle/programs/web.browser.legacy cd /home/wekan/app_build/bundle/programs/server/ sudo npm install sudo chown -R wekan:wekan ./node_modules |