summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--client/components/boards/boardArchive.js2
-rw-r--r--client/components/boards/boardHeader.jade2
-rw-r--r--client/components/boards/boardsList.jade9
-rw-r--r--client/components/main/header.jade13
-rw-r--r--client/components/main/header.styl8
-rw-r--r--client/components/main/keyboardShortcuts.jade19
-rw-r--r--client/components/main/keyboardShortcuts.tpl.jade11
-rw-r--r--client/components/main/layouts.jade1
-rw-r--r--client/components/main/layouts.styl3
-rw-r--r--client/config/router.js22
-rw-r--r--client/lib/modal.js12
-rw-r--r--sandstorm.js46
12 files changed, 98 insertions, 50 deletions
diff --git a/client/components/boards/boardArchive.js b/client/components/boards/boardArchive.js
index 35f795f3..6f62daaf 100644
--- a/client/components/boards/boardArchive.js
+++ b/client/components/boards/boardArchive.js
@@ -1,4 +1,4 @@
-Template.headerTitle.events({
+Template.boardHeaderBar.events({
'click .js-open-archived-board'() {
Modal.open('archivedBoards');
},
diff --git a/client/components/boards/boardHeader.jade b/client/components/boards/boardHeader.jade
index 5e11c3b7..fc1abc88 100644
--- a/client/components/boards/boardHeader.jade
+++ b/client/components/boards/boardHeader.jade
@@ -1,4 +1,4 @@
-template(name="headerBoard")
+template(name="boardHeaderBar")
h1.header-board-menu
with currentBoard
a(class="{{#if currentUser.isBoardAdmin}}js-edit-board-title{{else}}is-disabled{{/if}}")
diff --git a/client/components/boards/boardsList.jade b/client/components/boards/boardsList.jade
index 7099cdc9..c11bb2df 100644
--- a/client/components/boards/boardsList.jade
+++ b/client/components/boards/boardsList.jade
@@ -23,3 +23,12 @@ template(name="boardList")
p.board-list-item-desc= description
li.js-add-board
a.board-list-item.label {{_ 'add-board'}}
+
+
+template(name="boardListHeaderBar")
+ h1 {{_ 'my-boards'}}
+
+ .board-header-btns.right
+ a.board-header-btn.js-open-archived-board
+ i.fa.fa-archive
+ span {{_ 'archives'}}
diff --git a/client/components/main/header.jade b/client/components/main/header.jade
index 86dfd6a7..0d178250 100644
--- a/client/components/main/header.jade
+++ b/client/components/main/header.jade
@@ -32,10 +32,7 @@ template(name="header")
current page. This bar is contextual based.
If the user is not connected we display "sign in" and "log in" buttons.
#header-main-bar(class="{{#if wrappedHeader}}wrapper{{/if}}")
- if $.Session.get 'currentBoard'
- +headerBoard
- else if($eq currentRouteName 'home')
- +headerTitle
+ +Template.dynamic(template=headerBar)
//-
On sandstorm, the logo shouldn't be clickable, because we only have one
@@ -47,11 +44,3 @@ template(name="header")
else
a.wekan-logo(href="{{pathFor 'home'}}" title="{{_ 'header-logo-title'}}")
img(src="{{pathFor '/wekan-logo-header.png'}}" alt="Wekan")
-
-template(name="headerTitle")
- h1 {{_ 'my-boards'}}
-
- .board-header-btns.right
- a.board-header-btn.js-open-archived-board
- i.fa.fa-archive
- span {{_ 'archives'}}
diff --git a/client/components/main/header.styl b/client/components/main/header.styl
index b66eb2da..6decf2df 100644
--- a/client/components/main/header.styl
+++ b/client/components/main/header.styl
@@ -85,6 +85,14 @@
float: left
border-radius: 3px
+ a.fa, a i.fa
+ color: white
+
+ .back-btn
+ font-size: 0.9em
+ margin-right: 10px
+
+
.wekan-logo
display: block
margin: 3px auto 0
diff --git a/client/components/main/keyboardShortcuts.jade b/client/components/main/keyboardShortcuts.jade
new file mode 100644
index 00000000..bde40819
--- /dev/null
+++ b/client/components/main/keyboardShortcuts.jade
@@ -0,0 +1,19 @@
+template(name="shortcutsHeaderBar")
+ h1
+ a.back-btn(href="{{pathFor 'home'}}")
+ i.fa.fa-chevron-left
+ | {{_ 'keyboard-shortcuts'}}
+
+template(name="shortcutsModalTitle")
+ h2
+ i.fa.fa-keyboard-o
+ | {{_ 'keyboard-shortcuts'}}
+
+template(name="keyboardShortcuts")
+ .wrapper.shortcuts-list
+ each mapping
+ .shortcuts-list-item
+ .shortcuts-list-item-keys
+ each keys
+ kbd= this
+ .shortcuts-list-item-action {{_ action}}
diff --git a/client/components/main/keyboardShortcuts.tpl.jade b/client/components/main/keyboardShortcuts.tpl.jade
deleted file mode 100644
index 5b5dae8b..00000000
--- a/client/components/main/keyboardShortcuts.tpl.jade
+++ /dev/null
@@ -1,11 +0,0 @@
-.wrapper.shortcuts-list
- h2
- i.fa.fa-keyboard-o
- | {{_ 'keyboard-shortcuts'}}
-
- each mapping
- .shortcuts-list-item
- .shortcuts-list-item-keys
- each keys
- kbd= this
- .shortcuts-list-item-action {{_ action}}
diff --git a/client/components/main/layouts.jade b/client/components/main/layouts.jade
index 65b53f04..88d178f5 100644
--- a/client/components/main/layouts.jade
+++ b/client/components/main/layouts.jade
@@ -31,6 +31,7 @@ template(name="defaultLayout")
.modal-content
a.modal-close-btn.js-close-modal
i.fa.fa-times-thin
+ +Template.dynamic(template=Modal.getHeaderName)
+Template.dynamic(template=Modal.getTemplateName)
template(name="notFound")
diff --git a/client/components/main/layouts.styl b/client/components/main/layouts.styl
index fcc94251..0e50dd55 100644
--- a/client/components/main/layouts.styl
+++ b/client/components/main/layouts.styl
@@ -31,6 +31,9 @@ body
.sk-spinner
margin-top: 30vh
+ > .wrapper
+ margin-top: 25px
+
#modal
position: absolute
top: 0
diff --git a/client/config/router.js b/client/config/router.js
index 0a6958d0..ddd69db4 100644
--- a/client/config/router.js
+++ b/client/config/router.js
@@ -13,7 +13,10 @@ FlowRouter.route('/', {
Filter.reset();
EscapeActions.executeAll();
- BlazeLayout.render('defaultLayout', { content: 'boardList' });
+ BlazeLayout.render('defaultLayout', {
+ headerBar: 'boardListHeaderBar',
+ content: 'boardList',
+ });
},
});
@@ -33,7 +36,10 @@ FlowRouter.route('/b/:id/:slug', {
EscapeActions.executeUpTo('popup-close');
}
- BlazeLayout.render('defaultLayout', { content: 'board' });
+ BlazeLayout.render('defaultLayout', {
+ headerBar: 'boardHeaderBar',
+ content: 'board',
+ });
},
});
@@ -45,7 +51,10 @@ FlowRouter.route('/b/:boardId/:slug/:cardId', {
Session.set('currentBoard', params.boardId);
Session.set('currentCard', params.cardId);
- BlazeLayout.render('defaultLayout', { content: 'board' });
+ BlazeLayout.render('defaultLayout', {
+ headerBar: 'boardHeaderBar',
+ content: 'board',
+ });
},
});
@@ -58,11 +67,14 @@ FlowRouter.route('/shortcuts', {
if (previousPath) {
Modal.open(shortcutsTemplate, {
+ header: 'shortcutsModalTitle',
onCloseGoTo: previousPath,
});
} else {
- // XXX There is currently no way to escape this page on Sandstorm
- BlazeLayout.render('defaultLayout', { content: shortcutsTemplate });
+ BlazeLayout.render('defaultLayout', {
+ headerBar: 'shortcutsHeaderBar',
+ content: shortcutsTemplate,
+ });
}
},
});
diff --git a/client/lib/modal.js b/client/lib/modal.js
index e6301cb5..1ca8804b 100644
--- a/client/lib/modal.js
+++ b/client/lib/modal.js
@@ -6,8 +6,14 @@ window.Modal = new class {
this._onCloseGoTo = '';
}
+ getHeaderName() {
+ const currentModal = this._currentModal.get();
+ return currentModal && currentModal.header;
+ }
+
getTemplateName() {
- return this._currentModal.get();
+ const currentModal = this._currentModal.get();
+ return currentModal && currentModal.modalName;
}
isOpen() {
@@ -21,8 +27,8 @@ window.Modal = new class {
}
}
- open(modalName, { onCloseGoTo = ''} = {}) {
- this._currentModal.set(modalName);
+ open(modalName, { header = '', onCloseGoTo = ''} = {}) {
+ this._currentModal.set({ header, modalName });
this._onCloseGoTo = onCloseGoTo;
}
};
diff --git a/sandstorm.js b/sandstorm.js
index a711a960..5148095f 100644
--- a/sandstorm.js
+++ b/sandstorm.js
@@ -3,24 +3,24 @@
const isSandstorm = Meteor.settings && Meteor.settings.public &&
Meteor.settings.public.sandstorm;
-if (isSandstorm && Meteor.isServer) {
- // In sandstorm we only have one board per sandstorm instance. Since we want
- // to keep most of our code unchanged, we simply hard-code a board `_id` and
- // redirect the user to this particular board.
- const sandstormBoard = {
- _id: 'sandstorm',
-
- // XXX Should be shared with the grain instance name.
- title: 'Wekan',
- slug: 'libreboard',
- members: [],
-
- // Board access security is handled by sandstorm, so in our point of view we
- // can alway assume that the board is public (unauthorized users won't be
- // able to access it anyway).
- permission: 'public',
- };
+// In sandstorm we only have one board per sandstorm instance. Since we want to
+// keep most of our code unchanged, we simply hard-code a board `_id` and
+// redirect the user to this particular board.
+const sandstormBoard = {
+ _id: 'sandstorm',
+
+ // XXX Should be shared with the grain instance name.
+ title: 'Wekan',
+ slug: 'libreboard',
+ members: [],
+
+ // Board access security is handled by sandstorm, so in our point of view we
+ // can alway assume that the board is public (unauthorized users won't be able
+ // to access it anyway).
+ permission: 'public',
+};
+if (isSandstorm && Meteor.isServer) {
function updateUserPermissions(userId, permissions) {
const isActive = permissions.indexOf('participate') > -1;
const isAdmin = permissions.indexOf('configure') > -1;
@@ -142,6 +142,18 @@ if (isSandstorm && Meteor.isClient) {
updateSandstormMetaData({ setTitle: DocHead.getTitle() });
});
+ // Runtime redirection from the home page to the unique board -- since the
+ // home page contains a list of a single board it's not worth to display.
+ //
+ // XXX Hack. The home route is already defined at this point so we need to
+ // add the redirection trigger to the internal route object.
+ FlowRouter._routesMap.home._triggersEnter.push((context, redirect) => {
+ redirect(FlowRouter.path('board', {
+ id: sandstormBoard._id,
+ slug: sandstormBoard.slug,
+ }));
+ });
+
// XXX Hack. `Meteor.absoluteUrl` doesn't work in Sandstorm, since every
// session has a different URL whereas Meteor computes absoluteUrl based on
// the ROOT_URL environment variable. So we overwrite this function on a