mirror of
https://github.com/wekan/wekan.git
synced 2025-04-22 21:17:18 -04:00
Add first draft of data model and user interface. No actions.
This commit is contained in:
parent
ef85b71ee4
commit
0a53ee87b9
14 changed files with 129 additions and 7 deletions
|
@ -1,9 +1,3 @@
|
|||
Template.boardListHeaderBar.events({
|
||||
'click .js-open-archived-board'() {
|
||||
Modal.open('archivedBoards');
|
||||
},
|
||||
});
|
||||
|
||||
BlazeComponent.extendComponent({
|
||||
onCreated() {
|
||||
this.subscribe('archivedBoards');
|
||||
|
|
|
@ -36,3 +36,6 @@ template(name="boardListHeaderBar")
|
|||
a.board-header-btn.js-open-archived-board
|
||||
i.fa.fa-archive
|
||||
span {{_ 'archives'}}
|
||||
a.board-header-btn(href="{{pathFor 'board' id=templatesBoardId slug=templatesBoardSlug}}")
|
||||
i.fa.fa-clone
|
||||
span {{_ 'templates'}}
|
||||
|
|
|
@ -1,5 +1,20 @@
|
|||
const subManager = new SubsManager();
|
||||
|
||||
Template.boardListHeaderBar.events({
|
||||
'click .js-open-archived-board'() {
|
||||
Modal.open('archivedBoards');
|
||||
},
|
||||
});
|
||||
|
||||
Template.boardListHeaderBar.helpers({
|
||||
templatesBoardId() {
|
||||
return Meteor.user().getTemplatesBoard().id;
|
||||
},
|
||||
templatesBoardSlug() {
|
||||
return Meteor.user().getTemplatesBoard().slug;
|
||||
},
|
||||
});
|
||||
|
||||
BlazeComponent.extendComponent({
|
||||
onCreated() {
|
||||
Meteor.subscribe('setting');
|
||||
|
@ -9,6 +24,7 @@ BlazeComponent.extendComponent({
|
|||
return Boards.find({
|
||||
archived: false,
|
||||
'members.userId': Meteor.userId(),
|
||||
type: 'board',
|
||||
}, {
|
||||
sort: ['title'],
|
||||
});
|
||||
|
|
|
@ -247,6 +247,9 @@ template(name="cardDetailsActionsPopup")
|
|||
unless archived
|
||||
li: a.js-archive {{_ 'archive-card'}}
|
||||
li: a.js-more {{_ 'cardMorePopup-title'}}
|
||||
hr
|
||||
ul.pop-over-list
|
||||
li: a.js-template-card {{_ 'cardTemplatePopup-title'}}
|
||||
|
||||
template(name="moveCardPopup")
|
||||
+boardsAndLists
|
||||
|
|
|
@ -365,6 +365,9 @@ Template.cardDetailsActionsPopup.events({
|
|||
if (!err && ret) Popup.close();
|
||||
});
|
||||
},
|
||||
'click .js-template-card' () {
|
||||
console.log('REMOVE Creating template card');
|
||||
},
|
||||
});
|
||||
|
||||
Template.editCardTitleForm.onRendered(function () {
|
||||
|
|
|
@ -20,6 +20,9 @@ template(name="memberMenuPopup")
|
|||
if currentUser.isAdmin
|
||||
li: a.js-go-setting(href="{{pathFor 'setting'}}") {{_ 'admin-panel'}}
|
||||
hr
|
||||
ul.pop-over-list
|
||||
li: a(href="{{pathFor 'board' id=templatesBoardId slug=templatesBoardSlug}}") {{_ 'templates'}}
|
||||
hr
|
||||
ul.pop-over-list
|
||||
li: a.js-logout {{_ 'log-out'}}
|
||||
|
||||
|
|
|
@ -3,6 +3,15 @@ Template.headerUserBar.events({
|
|||
'click .js-change-avatar': Popup.open('changeAvatar'),
|
||||
});
|
||||
|
||||
Template.memberMenuPopup.helpers({
|
||||
templatesBoardId() {
|
||||
return Meteor.user().getTemplatesBoard().id;
|
||||
},
|
||||
templatesBoardSlug() {
|
||||
return Meteor.user().getTemplatesBoard().slug;
|
||||
},
|
||||
});
|
||||
|
||||
Template.memberMenuPopup.events({
|
||||
'click .js-edit-profile': Popup.open('editProfile'),
|
||||
'click .js-change-settings': Popup.open('changeSettings'),
|
||||
|
|
|
@ -92,6 +92,7 @@
|
|||
"restore-board": "Restore Board",
|
||||
"no-archived-boards": "No Boards in Archive.",
|
||||
"archives": "Archive",
|
||||
"templates": "Templates",
|
||||
"assign-member": "Assign member",
|
||||
"attached": "attached",
|
||||
"attachment": "Attachment",
|
||||
|
@ -143,6 +144,7 @@
|
|||
"cardLabelsPopup-title": "Labels",
|
||||
"cardMembersPopup-title": "Members",
|
||||
"cardMorePopup-title": "More",
|
||||
"cardTemplatePopup-title": "Create template",
|
||||
"cards": "Cards",
|
||||
"cards-count": "Cards",
|
||||
"casSignIn" : "Sign In with CAS",
|
||||
|
@ -453,6 +455,10 @@
|
|||
"welcome-swimlane": "Milestone 1",
|
||||
"welcome-list1": "Basics",
|
||||
"welcome-list2": "Advanced",
|
||||
"templates-board": "Templates Board",
|
||||
"card-templates-swimlane": "Card Templates Swimlane",
|
||||
"list-templates-swimlane": "List Templates Swimlane",
|
||||
"board-templates-swimlane": "Board Templates Swimlane",
|
||||
"what-to-do": "What do you want to do?",
|
||||
"wipLimitErrorPopup-title": "Invalid WIP Limit",
|
||||
"wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.",
|
||||
|
|
|
@ -304,6 +304,13 @@ Boards.attachSchema(new SimpleSchema({
|
|||
defaultValue: false,
|
||||
optional: true,
|
||||
},
|
||||
type: {
|
||||
/**
|
||||
* The type of board
|
||||
*/
|
||||
type: String,
|
||||
defaultValue: 'board',
|
||||
},
|
||||
}));
|
||||
|
||||
|
||||
|
@ -559,6 +566,9 @@ Boards.helpers({
|
|||
});
|
||||
},
|
||||
|
||||
isTemplateBoard() {
|
||||
return this.type === 'template-board';
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
|
|
|
@ -246,7 +246,7 @@ Cards.attachSchema(new SimpleSchema({
|
|||
* type of the card
|
||||
*/
|
||||
type: String,
|
||||
defaultValue: '',
|
||||
defaultValue: 'cardType-card',
|
||||
},
|
||||
linkedId: {
|
||||
/**
|
||||
|
@ -930,6 +930,10 @@ Cards.helpers({
|
|||
return this.assignedBy;
|
||||
}
|
||||
},
|
||||
|
||||
isTemplateCard() {
|
||||
return this.type === 'template-card';
|
||||
},
|
||||
});
|
||||
|
||||
Cards.mutations({
|
||||
|
|
|
@ -107,6 +107,13 @@ Lists.attachSchema(new SimpleSchema({
|
|||
'saddlebrown', 'paleturquoise', 'mistyrose', 'indigo',
|
||||
],
|
||||
},
|
||||
type: {
|
||||
/**
|
||||
* The type of list
|
||||
*/
|
||||
type: String,
|
||||
defaultValue: 'list',
|
||||
},
|
||||
}));
|
||||
|
||||
Lists.allow({
|
||||
|
@ -169,6 +176,10 @@ Lists.helpers({
|
|||
return this.color;
|
||||
return '';
|
||||
},
|
||||
|
||||
isTemplateList() {
|
||||
return this.type === 'template-list';
|
||||
},
|
||||
});
|
||||
|
||||
Lists.mutations({
|
||||
|
|
|
@ -78,6 +78,13 @@ Swimlanes.attachSchema(new SimpleSchema({
|
|||
}
|
||||
},
|
||||
},
|
||||
type: {
|
||||
/**
|
||||
* The type of swimlane
|
||||
*/
|
||||
type: String,
|
||||
defaultValue: 'swimlane',
|
||||
},
|
||||
}));
|
||||
|
||||
Swimlanes.allow({
|
||||
|
@ -114,6 +121,10 @@ Swimlanes.helpers({
|
|||
return this.color;
|
||||
return '';
|
||||
},
|
||||
|
||||
isTemplateSwimlane() {
|
||||
return this.type === 'template-swimlane';
|
||||
},
|
||||
});
|
||||
|
||||
Swimlanes.mutations({
|
||||
|
|
|
@ -159,6 +159,13 @@ Users.attachSchema(new SimpleSchema({
|
|||
'board-view-cal',
|
||||
],
|
||||
},
|
||||
'profile.templatesBoardId': {
|
||||
/**
|
||||
* Reference to the templates board
|
||||
*/
|
||||
type: String,
|
||||
defaultValue: '',
|
||||
},
|
||||
services: {
|
||||
/**
|
||||
* services field of the user
|
||||
|
@ -328,6 +335,13 @@ Users.helpers({
|
|||
const profile = this.profile || {};
|
||||
return profile.language || 'en';
|
||||
},
|
||||
|
||||
getTemplatesBoard() {
|
||||
return {
|
||||
id: this.profile.templatesBoardId,
|
||||
slug: Boards.findOne(this.profile.templatesBoardId).slug,
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
Users.mutations({
|
||||
|
@ -701,6 +715,40 @@ if (Meteor.isServer) {
|
|||
Lists.insert({title: TAPi18n.__(title), boardId, sort: titleIndex}, fakeUser);
|
||||
});
|
||||
});
|
||||
|
||||
Boards.insert({
|
||||
title: TAPi18n.__('templates-board'),
|
||||
permission: 'private',
|
||||
type: 'template-container'
|
||||
}, fakeUser, (err, boardId) => {
|
||||
|
||||
// Insert the reference to our templates board
|
||||
Users.update(fakeUserId.get(), {$set: {'profile.templatesBoardId': boardId}});
|
||||
|
||||
// Insert the card templates swimlane
|
||||
Swimlanes.insert({
|
||||
title: TAPi18n.__('card-templates-swimlane'),
|
||||
boardId,
|
||||
sort: 1,
|
||||
type: 'template-container',
|
||||
}, fakeUser);
|
||||
|
||||
// Insert the list templates swimlane
|
||||
Swimlanes.insert({
|
||||
title: TAPi18n.__('list-templates-swimlane'),
|
||||
boardId,
|
||||
sort: 2,
|
||||
type: 'template-container',
|
||||
}, fakeUser);
|
||||
|
||||
// Insert the board templates swimlane
|
||||
Swimlanes.insert({
|
||||
title: TAPi18n.__('board-templates-swimlane'),
|
||||
boardId,
|
||||
sort: 3,
|
||||
type: 'template-container',
|
||||
}, fakeUser);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
|
@ -32,6 +32,7 @@ Meteor.publish('boards', function() {
|
|||
color: 1,
|
||||
members: 1,
|
||||
permission: 1,
|
||||
type: 1,
|
||||
},
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue