Add the following new Sandstorm features and fixes:

- All Boards page [so it's possible to go back from subtask board](https://github.com/wekan/wekan/issues/2082)
- Board favorites
- New Sandstorm board first user is Admin and [has IFTTT Rules](https://github.com/wekan/wekan/issues/2125)
  and Standalone Wekan Admin Panel. Probably some Admin Panel features do not work yet. Please keep backup of your grains before testig Admin Panel.
- Linked Cards and Linked Boards.
- Some not needed options like Logout etc have been hidden from top bar right menu.
- [Import board now works. "Board not found" is not problem anymore](https://github.com/wekan/wekan/issues/1430), because you can go to All Boards page to change to imported board.

and removes the following features:

- Remove Welcome Board from Standalone Wekan, [to fix Welcome board not translated](https://github.com/wekan/wekan/issues/1601).
  Sandstorm Wekan does not have Welcome Board.

Thanks to xet7 !

Closes #2125,
closes #2082,
closes #1430,
closes #1601,
related #2205,
related #2070,
related #1695,
related #1192.
This commit is contained in:
Lauri Ojansivu 2019-02-27 16:14:14 +02:00
parent 55ad98ecc4
commit 34d8235551
10 changed files with 151 additions and 160 deletions

View file

@ -7,7 +7,6 @@ template(name="boardHeaderBar")
.board-header-btns.left .board-header-btns.left
unless isMiniScreen unless isMiniScreen
unless isSandstorm
if currentBoard if currentBoard
if currentUser if currentUser
a.board-header-btn.js-star-board(class="{{#if isStarred}}is-active{{/if}}" a.board-header-btn.js-star-board(class="{{#if isStarred}}is-active{{/if}}"
@ -42,7 +41,6 @@ template(name="boardHeaderBar")
.board-header-btns.right .board-header-btns.right
if currentBoard if currentBoard
if isMiniScreen if isMiniScreen
unless isSandstorm
if currentUser if currentUser
a.board-header-btn.js-star-board(class="{{#if isStarred}}is-active{{/if}}" a.board-header-btn.js-star-board(class="{{#if isStarred}}is-active{{/if}}"
title="{{#if isStarred}}{{_ 'click-to-unstar'}}{{else}}{{_ 'click-to-star'}}{{/if}} {{_ 'starred-boards-description'}}") title="{{#if isStarred}}{{_ 'click-to-unstar'}}{{else}}{{_ 'click-to-star'}}{{/if}} {{_ 'starred-boards-description'}}")
@ -143,6 +141,8 @@ template(name="boardMenuPopup")
ul.pop-over-list ul.pop-over-list
li: a(href="{{exportUrl}}", download="{{exportFilename}}") {{_ 'export-board'}} li: a(href="{{exportUrl}}", download="{{exportFilename}}") {{_ 'export-board'}}
li: a.js-import-board {{_ 'import-board-c'}} li: a.js-import-board {{_ 'import-board-c'}}
li: a.js-archive-board {{_ 'archive-board'}}
li: a.js-outgoing-webhooks {{_ 'outgoing-webhooks'}}
hr hr
ul.pop-over-list ul.pop-over-list
li: a.js-subtask-settings {{_ 'subtask-settings'}} li: a.js-subtask-settings {{_ 'subtask-settings'}}

View file

@ -19,7 +19,6 @@ template(name="cardDetails")
a.js-parent-card(href=linkForCard) {{title}} a.js-parent-card(href=linkForCard) {{title}}
// else // else
{{_ 'top-level-card'}} {{_ 'top-level-card'}}
unless isSandstorm
if isLinkedCard if isLinkedCard
h3.linked-card-location h3.linked-card-location
+viewer +viewer
@ -27,7 +26,6 @@ template(name="cardDetails")
if getArchived if getArchived
if isLinkedBoard if isLinkedBoard
unless isSandstorm
p.warning {{_ 'board-archived'}} p.warning {{_ 'board-archived'}}
else else
p.warning {{_ 'card-archived'}} p.warning {{_ 'card-archived'}}
@ -192,10 +190,8 @@ template(name="cardDetails")
unless currentUser.isNoComments unless currentUser.isNoComments
if isLoaded.get if isLoaded.get
if isLinkedCard if isLinkedCard
unless isSandstorm
+activities(card=this mode="linkedcard") +activities(card=this mode="linkedcard")
else if isLinkedBoard else if isLinkedBoard
unless isSandstorm
+activities(card=this mode="linkedboard") +activities(card=this mode="linkedboard")
else else
+activities(card=this mode="card") +activities(card=this mode="card")

View file

@ -44,7 +44,6 @@ template(name="addCardForm")
.add-controls.clearfix .add-controls.clearfix
button.primary.confirm(type="submit") {{_ 'add'}} button.primary.confirm(type="submit") {{_ 'add'}}
unless isSandstorm
span.quiet span.quiet
| {{_ 'or'}} | {{_ 'or'}}
a.js-link {{_ 'link'}} a.js-link {{_ 'link'}}
@ -84,7 +83,6 @@ template(name="linkCardPopup")
option(value="{{getId}}") {{getTitle}} option(value="{{getId}}") {{getTitle}}
.edit-controls.clearfix .edit-controls.clearfix
unless isSandstorm
input.primary.confirm.js-done(type="button" value="{{_ 'link'}}") input.primary.confirm.js-done(type="button" value="{{_ 'link'}}")
template(name="searchCardPopup") template(name="searchCardPopup")

View file

@ -4,7 +4,6 @@ template(name="header")
list all starred boards with a link to go there. This is inspired by the list all starred boards with a link to go there. This is inspired by the
Reddit "subreddit" bar. Reddit "subreddit" bar.
The first link goes to the boards page. The first link goes to the boards page.
unless isSandstorm
if currentUser if currentUser
#header-quick-access(class=currentBoard.colorClass) #header-quick-access(class=currentBoard.colorClass)
if isMiniScreen if isMiniScreen
@ -52,10 +51,6 @@ template(name="header")
On sandstorm, the logo shouldn't be clickable, because we only have one On sandstorm, the logo shouldn't be clickable, because we only have one
page/document on it, and we don't want to see the home page containing page/document on it, and we don't want to see the home page containing
the list of all boards. the list of all boards.
if isSandstorm
.wekan-logo
img(src="{{pathFor '/wekan-logo-header.png'}}" alt="Wekan")
else
unless currentSetting.hideLogo unless currentSetting.hideLogo
a.wekan-logo(href="{{pathFor 'home'}}" title="{{_ 'header-logo-title'}}") a.wekan-logo(href="{{pathFor 'home'}}" title="{{_ 'header-logo-title'}}")
img(src="{{pathFor '/wekan-logo-header.png'}}" alt="Wekan") img(src="{{pathFor '/wekan-logo-header.png'}}" alt="Wekan")

View file

@ -14,13 +14,13 @@ head
template(name="userFormsLayout") template(name="userFormsLayout")
section.auth-layout section.auth-layout
unless currentSetting.hideLogo
h1.at-form-landing-logo
img(src="{{pathFor '/wekan-logo.png'}}" alt="Wekan")
if currentSetting.hideLogo if currentSetting.hideLogo
h1 h1
br br
br br
else
h1.at-form-landing-logo
img(src="{{pathFor '/wekan-logo.png'}}" alt="Wekan")
section.auth-dialog section.auth-dialog
+Template.dynamic(template=content) +Template.dynamic(template=content)
if currentSetting.displayAuthenticationMethod if currentSetting.displayAuthenticationMethod

View file

@ -4,7 +4,6 @@ template(name="settingHeaderBar")
.setting-header-btns.left .setting-header-btns.left
unless isMiniScreen unless isMiniScreen
unless isSandstorm
if currentUser if currentUser
a.setting-header-btn.settings(href="{{pathFor 'setting'}}") a.setting-header-btn.settings(href="{{pathFor 'setting'}}")
i.fa(class="fa-cog") i.fa(class="fa-cog")

View file

@ -83,7 +83,6 @@ template(name="memberPopup")
ul.pop-over-list ul.pop-over-list
li li
a.js-filter-member {{_ 'filter-cards'}} a.js-filter-member {{_ 'filter-cards'}}
unless isSandstorm
if currentUser.isBoardAdmin if currentUser.isBoardAdmin
li li
a.js-change-role a.js-change-role

View file

@ -4,6 +4,7 @@ template(name="headerUserBar")
.header-user-bar-avatar .header-user-bar-avatar
+userAvatar(userId=currentUser._id) +userAvatar(userId=currentUser._id)
unless isMiniScreen unless isMiniScreen
unless isSandstorm
if currentUser.profile.fullname if currentUser.profile.fullname
= currentUser.profile.fullname = currentUser.profile.fullname
else else
@ -15,10 +16,12 @@ template(name="memberMenuPopup")
li: a.js-edit-profile {{_ 'edit-profile'}} li: a.js-edit-profile {{_ 'edit-profile'}}
li: a.js-change-settings {{_ 'change-settings'}} li: a.js-change-settings {{_ 'change-settings'}}
li: a.js-change-avatar {{_ 'edit-avatar'}} li: a.js-change-avatar {{_ 'edit-avatar'}}
unless isSandstorm
li: a.js-change-password {{_ 'changePasswordPopup-title'}} li: a.js-change-password {{_ 'changePasswordPopup-title'}}
li: a.js-change-language {{_ 'changeLanguagePopup-title'}} li: a.js-change-language {{_ 'changeLanguagePopup-title'}}
if currentUser.isAdmin if currentUser.isAdmin
li: a.js-go-setting(href="{{pathFor 'setting'}}") {{_ 'admin-panel'}} li: a.js-go-setting(href="{{pathFor 'setting'}}") {{_ 'admin-panel'}}
unless isSandstorm
hr hr
ul.pop-over-list ul.pop-over-list
li: a.js-logout {{_ 'log-out'}} li: a.js-logout {{_ 'log-out'}}

View file

@ -559,7 +559,7 @@ if (Meteor.isServer) {
}); });
Accounts.onCreateUser((options, user) => { Accounts.onCreateUser((options, user) => {
const userCount = Users.find().count(); const userCount = Users.find().count();
if (!isSandstorm && userCount === 0) { if (userCount === 0) {
user.isAdmin = true; user.isAdmin = true;
return user; return user;
} }
@ -675,7 +675,7 @@ if (Meteor.isServer) {
CollectionHooks.getUserId = () => { CollectionHooks.getUserId = () => {
return fakeUserId.get() || getUserId(); return fakeUserId.get() || getUserId();
}; };
/*
if (!isSandstorm) { if (!isSandstorm) {
Users.after.insert((userId, doc) => { Users.after.insert((userId, doc) => {
const fakeUser = { const fakeUser = {
@ -704,6 +704,7 @@ if (Meteor.isServer) {
}); });
}); });
} }
*/
Users.after.insert((userId, doc) => { Users.after.insert((userId, doc) => {

View file

@ -435,12 +435,12 @@ if (isSandstorm && Meteor.isClient) {
// //
// XXX Hack. The home route is already defined at this point so we need to // XXX Hack. The home route is already defined at this point so we need to
// add the redirection trigger to the internal route object. // add the redirection trigger to the internal route object.
FlowRouter._routesMap.home._triggersEnter.push((context, redirect) => { //FlowRouter._routesMap.home._triggersEnter.push((context, redirect) => {
redirect(FlowRouter.path('board', { // redirect(FlowRouter.path('board', {
id: sandstormBoard._id, // id: sandstormBoard._id,
slug: sandstormBoard.slug, // slug: sandstormBoard.slug,
})); // }));
}); //});
// XXX Hack. `Meteor.absoluteUrl` doesn't work in Sandstorm, since every // XXX Hack. `Meteor.absoluteUrl` doesn't work in Sandstorm, since every
// session has a different URL whereas Meteor computes absoluteUrl based on // session has a different URL whereas Meteor computes absoluteUrl based on
@ -457,9 +457,9 @@ if (isSandstorm && Meteor.isClient) {
// XXX Hack to fix https://github.com/wefork/wekan/issues/27 // XXX Hack to fix https://github.com/wefork/wekan/issues/27
// Sandstorm Wekan instances only ever have a single board, so there is no need // Sandstorm Wekan instances only ever have a single board, so there is no need
// to cache per-board subscriptions. // to cache per-board subscriptions.
SubsManager.prototype.subscribe = function(...params) { //SubsManager.prototype.subscribe = function(...params) {
return Meteor.subscribe(...params); // return Meteor.subscribe(...params);
}; //};
} }
// We use this blaze helper in the UI to hide some templates that does not make // We use this blaze helper in the UI to hide some templates that does not make