瀏覽代碼

Shared Templates. In Progress.

Part 2:
- Ablity to Add Template Container, checkbox in Create Board popup.
- Do not create Template Container by default, when creating user.

Thanks to xet7 !

Related #3313
Lauri Ojansivu 4 年之前
父節點
當前提交
d1d4453120
共有 3 個文件被更改,包括 85 次插入124 次删除
  1. 3 5
      client/components/boards/boardHeader.jade
  2. 62 102
      client/components/boards/boardHeader.js
  3. 20 17
      models/users.js

+ 3 - 5
client/components/boards/boardHeader.jade

@@ -225,6 +225,9 @@ template(name="createBoard")
           = " "
           | {{{_ 'board-private-info'}}}
         a.js-change-visibility {{_ 'change'}}.
+    a.flex.js-toggle-add-template-container
+      .materialCheckBox#add-template-container
+      span {{_ 'add-template-container'}}
     input.primary.wide(type="submit" value="{{_ 'create'}}")
     span.quiet
       | {{_ 'or'}}
@@ -232,11 +235,6 @@ template(name="createBoard")
     span.quiet
       | /
       a.js-board-template {{_ 'template'}}
-    br
-    br
-    span.quiet.right
-      | /
-      a.js-board-template-container {{_ 'add-template-container'}}
 
 //template(name="listsortPopup")
 //  h2

+ 62 - 102
client/components/boards/boardHeader.js

@@ -209,115 +209,75 @@ const CreateBoard = BlazeComponent.extendComponent({
     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 visibility = this.visibility.get();
 
-    this.boardId.set(
-      Boards.insert({
-        title,
-        permission: visibility,
-      }),
-    );
+    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'));
 
-    Swimlanes.insert({
-      title: 'Default',
-      boardId: this.boardId.get(),
-    });
+      this.boardId.set(
+        Boards.insert({
+            title: TAPi18n.__('templates'),
+            permission: 'private',
+            type: 'template-container',
+          }),
+       );
+
+      // Insert the card templates swimlane
+      Swimlanes.insert({
+          title: TAPi18n.__('card-templates-swimlane'),
+          boardId: this.boardId.get(),
+          sort: 1,
+          type: 'template-container',
+        }),
+
+      // Insert the list templates swimlane
+      Swimlanes.insert(
+        {
+          title: TAPi18n.__('list-templates-swimlane'),
+          boardId: this.boardId.get(),
+          sort: 2,
+          type: 'template-container',
+        },
+      );
+
+      // Insert the board templates swimlane
+      Swimlanes.insert(
+        {
+          title: TAPi18n.__('board-templates-swimlane'),
+          boardId: this.boardId.get(),
+          sort: 3,
+          type: 'template-container',
+        },
+      );
 
-    Utils.goBoardId(this.boardId.get());
-  },
+      Utils.goBoardId(this.boardId.get());
 
-  addBoardTemplateContainer(event) {
-    event.preventDefault();
-    const title = this.find('.js-new-board-title').value;
+    } else {
+      const visibility = this.visibility.get();
+
+      this.boardId.set(
+        Boards.insert({
+          title,
+          permission: visibility,
+        }),
+      );
+
+      Swimlanes.insert({
+        title: 'Default',
+        boardId: this.boardId.get(),
+      });
 
-    // Insert Template Container
-    const Future = require('fibers/future');
-    const future1 = new Future();
-    const future2 = new Future();
-    const future3 = new Future();
-    Boards.insert(
-      {
-        title: title || TAPi18n.__('templates'),
-        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,
-          (err, swimlaneId) => {
-            // Insert the reference to out card templates swimlane
-            Users.update(fakeUserId.get(), {
-              $set: {
-                'profile.cardTemplatesSwimlaneId': swimlaneId,
-              },
-            });
-            future1.return();
-          },
-        );
-
-        // Insert the list templates swimlane
-        Swimlanes.insert(
-          {
-            title: TAPi18n.__('list-templates-swimlane'),
-            boardId,
-            sort: 2,
-            type: 'template-container',
-          },
-          fakeUser,
-          (err, swimlaneId) => {
-            // Insert the reference to out list templates swimlane
-            Users.update(fakeUserId.get(), {
-              $set: {
-                'profile.listTemplatesSwimlaneId': swimlaneId,
-              },
-            });
-            future2.return();
-          },
-        );
-
-        // Insert the board templates swimlane
-        Swimlanes.insert(
-          {
-            title: TAPi18n.__('board-templates-swimlane'),
-            boardId,
-            sort: 3,
-            type: 'template-container',
-          },
-          fakeUser,
-          (err, swimlaneId) => {
-            // Insert the reference to out board templates swimlane
-            Users.update(fakeUserId.get(), {
-              $set: {
-                'profile.boardTemplatesSwimlaneId': swimlaneId,
-              },
-            });
-            future3.return();
-          },
-        );
-      },
-    );
-    // HACK
-    future1.wait();
-    future2.wait();
-    future3.wait();
+      Utils.goBoardId(this.boardId.get());
+    }
   },
 
   events() {
@@ -331,7 +291,7 @@ const CreateBoard = BlazeComponent.extendComponent({
         submit: this.onSubmit,
         'click .js-import-board': Popup.open('chooseBoardSource'),
         'click .js-board-template': Popup.open('searchElement'),
-        'click .js-board-template-container': this.addBoardTemplateContainer,
+        'click .js-toggle-add-template-container': this.toggleAddTemplateContainer,
       },
     ];
   },

+ 20 - 17
models/users.js

@@ -1490,24 +1490,26 @@ if (Meteor.isServer) {
 
       fakeUserId.withValue(doc._id, () => {
         /*
-                // Insert the Welcome Board
-                Boards.insert({
-                  title: TAPi18n.__('welcome-board'),
-                  permission: 'private',
-                }, fakeUser, (err, boardId) => {
-
-                  Swimlanes.insert({
-                    title: TAPi18n.__('welcome-swimlane'),
-                    boardId,
-                    sort: 1,
-                  }, fakeUser);
-
-                  ['welcome-list1', 'welcome-list2'].forEach((title, titleIndex) => {
-                    Lists.insert({title: TAPi18n.__(title), boardId, sort: titleIndex}, fakeUser);
-                  });
-                });
-                */
 
+        // Insert the Welcome Board
+        Boards.insert({
+          title: TAPi18n.__('welcome-board'),
+          permission: 'private',
+        }, fakeUser, (err, boardId) => {
+
+          Swimlanes.insert({
+            title: TAPi18n.__('welcome-swimlane'),
+            boardId,
+            sort: 1,
+          }, fakeUser);
+
+          ['welcome-list1', 'welcome-list2'].forEach((title, titleIndex) => {
+            Lists.insert({title: TAPi18n.__(title), boardId, sort: titleIndex}, fakeUser);
+          });
+        });
+
+
+        // Insert Template Container
         const Future = require('fibers/future');
         const future1 = new Future();
         const future2 = new Future();
@@ -1592,6 +1594,7 @@ if (Meteor.isServer) {
         future1.wait();
         future2.wait();
         future3.wait();
+        */
       });
     });
   }