summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md4
-rw-r--r--Dockerfile2
-rw-r--r--client/components/boards/boardBody.js5
-rw-r--r--client/components/cards/cardDetails.js15
-rw-r--r--client/components/cards/checklists.js7
-rw-r--r--client/components/cards/minicard.jade4
-rw-r--r--client/components/lists/list.js17
-rw-r--r--client/components/lists/listHeader.jade3
-rw-r--r--client/components/main/popup.styl1
-rw-r--r--client/components/swimlanes/swimlanes.js33
-rw-r--r--i18n/da.i18n.json20
-rw-r--r--i18n/ja.i18n.json16
-rw-r--r--rebuild-wekan.bat3
-rwxr-xr-xrebuild-wekan.sh2
-rwxr-xr-xreleases/rebuild-release.sh2
-rw-r--r--snapcraft.yaml2
-rwxr-xr-xstacksmith/user-scripts/build.sh2
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.
diff --git a/Dockerfile b/Dockerfile
index b656c800..8b95dc84 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -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