123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449 |
- import { ReactiveCache } from '/imports/reactiveCache';
- import { TAPi18n } from '/imports/i18n';
- /*
- const DOWNCLS = 'fa-sort-down';
- const UPCLS = 'fa-sort-up';
- */
- const sortCardsBy = new ReactiveVar('');
- Template.boardChangeTitlePopup.events({
- submit(event, templateInstance) {
- const newTitle = templateInstance
- .$('.js-board-name')
- .val()
- .trim();
- const newDesc = templateInstance
- .$('.js-board-desc')
- .val()
- .trim();
- if (newTitle) {
- this.rename(newTitle);
- this.setDescription(newDesc);
- Popup.back();
- }
- event.preventDefault();
- },
- });
- BlazeComponent.extendComponent({
- watchLevel() {
- const currentBoard = Utils.getCurrentBoard();
- return currentBoard && currentBoard.getWatchLevel(Meteor.userId());
- },
- isStarred() {
- const boardId = Session.get('currentBoard');
- const user = ReactiveCache.getCurrentUser();
- return user && user.hasStarred(boardId);
- },
- // Only show the star counter if the number of star is greater than 2
- showStarCounter() {
- const currentBoard = Utils.getCurrentBoard();
- return currentBoard && currentBoard.stars >= 2;
- },
- /*
- showSort() {
- return ReactiveCache.getCurrentUser().hasSortBy();
- },
- directionClass() {
- return this.currentDirection() === -1 ? DOWNCLS : UPCLS;
- },
- changeDirection() {
- const direction = 0 - this.currentDirection() === -1 ? '-' : '';
- Meteor.call('setListSortBy', direction + this.currentListSortBy());
- },
- currentDirection() {
- return ReactiveCache.getCurrentUser().getListSortByDirection();
- },
- currentListSortBy() {
- return ReactiveCache.getCurrentUser().getListSortBy();
- },
- listSortShortDesc() {
- return `list-label-short-${this.currentListSortBy()}`;
- },
- */
- events() {
- return [
- {
- 'click .js-edit-board-title': Popup.open('boardChangeTitle'),
- 'click .js-star-board'() {
- ReactiveCache.getCurrentUser().toggleBoardStar(Session.get('currentBoard'));
- },
- 'click .js-open-board-menu': Popup.open('boardMenu'),
- 'click .js-change-visibility': Popup.open('boardChangeVisibility'),
- 'click .js-watch-board': Popup.open('boardChangeWatch'),
- 'click .js-open-archived-board'() {
- Modal.open('archivedBoards');
- },
- 'click .js-toggle-board-view': Popup.open('boardChangeView'),
- 'click .js-toggle-sidebar'() {
- Sidebar.toggle();
- },
- 'click .js-open-filter-view'() {
- Sidebar.setView('filter');
- },
- 'click .js-sort-cards': Popup.open('cardsSort'),
- /*
- 'click .js-open-sort-view'(evt) {
- const target = evt.target;
- if (target.tagName === 'I') {
- // click on the text, popup choices
- this.changeDirection();
- } else {
- // change the sort order
- Popup.open('listsort')(evt);
- }
- },
- */
- 'click .js-filter-reset'(event) {
- event.stopPropagation();
- Sidebar.setView();
- Filter.reset();
- },
- 'click .js-sort-reset'() {
- Session.set('sortBy', '');
- },
- 'click .js-open-search-view'() {
- Sidebar.setView('search');
- },
- 'click .js-multiselection-activate'() {
- const currentCard = Utils.getCurrentCardId();
- MultiSelection.activate();
- if (currentCard) {
- MultiSelection.add(currentCard);
- }
- },
- 'click .js-multiselection-reset'(event) {
- event.stopPropagation();
- MultiSelection.disable();
- },
- 'click .js-log-in'() {
- FlowRouter.go('atSignIn');
- },
- },
- ];
- },
- }).register('boardHeaderBar');
- Template.boardHeaderBar.helpers({
- boardView() {
- return Utils.boardView();
- },
- isSortActive() {
- return Session.get('sortBy') ? true : false;
- },
- });
- Template.boardChangeViewPopup.events({
- 'click .js-open-lists-view'() {
- Utils.setBoardView('board-view-lists');
- Popup.back();
- },
- 'click .js-open-swimlanes-view'() {
- Utils.setBoardView('board-view-swimlanes');
- Popup.back();
- },
- 'click .js-open-cal-view'() {
- Utils.setBoardView('board-view-cal');
- Popup.back();
- },
- });
- const CreateBoard = BlazeComponent.extendComponent({
- template() {
- return 'createBoard';
- },
- onCreated() {
- this.visibilityMenuIsOpen = new ReactiveVar(false);
- this.visibility = new ReactiveVar('private');
- this.boardId = new ReactiveVar('');
- Meteor.subscribe('tableVisibilityModeSettings');
- },
- notAllowPrivateVisibilityOnly(){
- return !TableVisibilityModeSettings.findOne('tableVisibilityMode-allowPrivateOnly').booleanValue;
- },
- visibilityCheck() {
- return this.currentData() === this.visibility.get();
- },
- setVisibility(visibility) {
- this.visibility.set(visibility);
- this.visibilityMenuIsOpen.set(false);
- },
- toggleVisibilityMenu() {
- this.visibilityMenuIsOpen.set(!this.visibilityMenuIsOpen.get());
- },
- toggleAddTemplateContainer() {
- $('#add-template-container').toggleClass('is-checked');
- },
- onSubmit(event) {
- event.preventDefault();
- const title = this.find('.js-new-board-title').value;
- const addTemplateContainer = $('#add-template-container.is-checked').length > 0;
- if (addTemplateContainer) {
- //const templateContainerId = Meteor.call('setCreateTemplateContainer');
- //Utils.goBoardId(templateContainerId);
- //alert('niinku template ' + Meteor.call('setCreateTemplateContainer'));
- this.boardId.set(
- Boards.insert({
- // title: TAPi18n.__('templates'),
- title: title,
- permission: 'private',
- type: 'template-container',
- }),
- );
- // Insert the card templates swimlane
- Swimlanes.insert({
- // title: TAPi18n.__('card-templates-swimlane'),
- title: 'Card Templates',
- boardId: this.boardId.get(),
- sort: 1,
- type: 'template-container',
- }),
- // Insert the list templates swimlane
- Swimlanes.insert(
- {
- // title: TAPi18n.__('list-templates-swimlane'),
- title: 'List Templates',
- boardId: this.boardId.get(),
- sort: 2,
- type: 'template-container',
- },
- );
- // Insert the board templates swimlane
- Swimlanes.insert(
- {
- //title: TAPi18n.__('board-templates-swimlane'),
- title: 'Board Templates',
- boardId: this.boardId.get(),
- sort: 3,
- type: 'template-container',
- },
- );
- Utils.goBoardId(this.boardId.get());
- } else {
- const visibility = this.visibility.get();
- this.boardId.set(
- Boards.insert({
- title,
- permission: visibility,
- }),
- );
- Swimlanes.insert({
- title: 'Default',
- boardId: this.boardId.get(),
- });
- Utils.goBoardId(this.boardId.get());
- }
- },
- events() {
- return [
- {
- 'click .js-select-visibility'() {
- this.setVisibility(this.currentData());
- },
- 'click .js-change-visibility': this.toggleVisibilityMenu,
- 'click .js-import': Popup.open('boardImportBoard'),
- submit: this.onSubmit,
- 'click .js-import-board': Popup.open('chooseBoardSource'),
- 'click .js-board-template': Popup.open('searchElement'),
- 'click .js-toggle-add-template-container': this.toggleAddTemplateContainer,
- },
- ];
- },
- }).register('createBoardPopup');
- (class HeaderBarCreateBoard extends CreateBoard {
- onSubmit(event) {
- super.onSubmit(event);
- // Immediately star boards crated with the headerbar popup.
- ReactiveCache.getCurrentUser().toggleBoardStar(this.boardId.get());
- }
- }.register('headerBarCreateBoardPopup'));
- BlazeComponent.extendComponent({
- notAllowPrivateVisibilityOnly(){
- return !TableVisibilityModeSettings.findOne('tableVisibilityMode-allowPrivateOnly').booleanValue;
- },
- visibilityCheck() {
- const currentBoard = Utils.getCurrentBoard();
- return this.currentData() === currentBoard.permission;
- },
- selectBoardVisibility() {
- const currentBoard = Utils.getCurrentBoard();
- const visibility = this.currentData();
- currentBoard.setVisibility(visibility);
- Popup.back();
- },
- events() {
- return [
- {
- 'click .js-select-visibility': this.selectBoardVisibility,
- },
- ];
- },
- }).register('boardChangeVisibilityPopup');
- BlazeComponent.extendComponent({
- watchLevel() {
- const currentBoard = Utils.getCurrentBoard();
- return currentBoard.getWatchLevel(Meteor.userId());
- },
- watchCheck() {
- return this.currentData() === this.watchLevel();
- },
- events() {
- return [
- {
- 'click .js-select-watch'() {
- const level = this.currentData();
- Meteor.call(
- 'watch',
- 'board',
- Session.get('currentBoard'),
- level,
- (err, ret) => {
- if (!err && ret) Popup.back();
- },
- );
- },
- },
- ];
- },
- }).register('boardChangeWatchPopup');
- /*
- BlazeComponent.extendComponent({
- onCreated() {
- //this.sortBy = new ReactiveVar();
- ////this.sortDirection = new ReactiveVar();
- //this.setSortBy();
- this.downClass = DOWNCLS;
- this.upClass = UPCLS;
- },
- allowedSortValues() {
- const types = [];
- const pushed = {};
- ReactiveCache.getCurrentUser()
- .getListSortTypes()
- .forEach(type => {
- const key = type.replace(/^-/, '');
- if (pushed[key] === undefined) {
- types.push({
- name: key,
- label: `list-label-${key}`,
- shortLabel: `list-label-short-${key}`,
- });
- pushed[key] = 1;
- }
- });
- return types;
- },
- Direction() {
- return ReactiveCache.getCurrentUser().getListSortByDirection() === -1
- ? this.downClass
- : this.upClass;
- },
- sortby() {
- return ReactiveCache.getCurrentUser().getListSortBy();
- },
- setSortBy(type = null) {
- const user = ReactiveCache.getCurrentUser();
- if (type === null) {
- type = user._getListSortBy();
- } else {
- let value = '';
- if (type.map) {
- // is an array
- value = (type[1] === -1 ? '-' : '') + type[0];
- }
- Meteor.call('setListSortBy', value);
- }
- //this.sortBy.set(type[0]);
- //this.sortDirection.set(type[1]);
- },
- events() {
- return [
- {
- 'click .js-sort-by'(evt) {
- evt.preventDefault();
- const target = evt.target;
- const sortby = target.getAttribute('name');
- const down = !!target.querySelector(`.${this.upClass}`);
- const direction = down ? -1 : 1;
- this.setSortBy([sortby, direction]);
- if (Utils.isMiniScreen) {
- Popup.back();
- }
- },
- },
- ];
- },
- }).register('listsortPopup');
- */
- BlazeComponent.extendComponent({
- events() {
- return [
- {
- 'click .js-sort-due'() {
- const sortBy = {
- dueAt: 1,
- };
- Session.set('sortBy', sortBy);
- sortCardsBy.set(TAPi18n.__('due-date'));
- Popup.back();
- },
- 'click .js-sort-title'() {
- const sortBy = {
- title: 1,
- };
- Session.set('sortBy', sortBy);
- sortCardsBy.set(TAPi18n.__('title'));
- Popup.back();
- },
- 'click .js-sort-created-asc'() {
- const sortBy = {
- createdAt: 1,
- };
- Session.set('sortBy', sortBy);
- sortCardsBy.set(TAPi18n.__('date-created-newest-first'));
- Popup.back();
- },
- 'click .js-sort-created-desc'() {
- const sortBy = {
- createdAt: -1,
- };
- Session.set('sortBy', sortBy);
- sortCardsBy.set(TAPi18n.__('date-created-oldest-first'));
- Popup.back();
- },
- },
- ];
- },
- }).register('cardsSortPopup');
|