Ver código fonte

Added people list in admin panel , just raw data right now, will add more features soon

Thuan Pham Quoc 7 anos atrás
pai
commit
29d54f46aa

+ 36 - 0
client/components/settings/peopleBody.jade

@@ -0,0 +1,36 @@
+template(name="people")
+  .setting-content
+    unless currentUser.isAdmin
+      | {{_ 'error-notAuthorized'}}
+    else
+      .content-title
+        span {{_ 'people'}}
+      .content-body
+        .side-menu
+          ul
+            li.active
+              a.js-setting-menu(data-id="people-setting") {{_ 'people'}}
+        .main-body
+          if loading.get
+            +spinner
+          else if people.get
+            +peopleGeneral
+
+template(name="peopleGeneral")
+  table
+    tbody
+      each user in peopleList
+        tr
+          th {{_ 'username'}}
+          th {{_ 'fullname'}}
+          th {{_ 'isAdmin'}}
+          th {{_ 'email'}}
+          th {{_ 'verified'}}
+          th {{_ 'createdAt'}}
+        tr
+          td {{ user.username }}
+          td {{ user.profile.fullname }}
+          td {{ user.isAdmin }}
+          td {{ user.emails.[0].address }}
+          td {{ user.emails.[0].verified }}
+          td {{ user.createdAt }}

+ 26 - 0
client/components/settings/peopleBody.js

@@ -0,0 +1,26 @@
+Meteor.subscribe('people');
+
+BlazeComponent.extendComponent({
+  onCreated() {
+    this.error = new ReactiveVar('');
+    this.loading = new ReactiveVar(false);
+    this.people = new ReactiveVar(true);
+  },
+
+  setError(error) {
+    this.error.set(error);
+  },
+
+  setLoading(w) {
+    this.loading.set(w);
+  },
+
+  peopleList() {
+    this.users = Users.find({});
+
+    this.users.forEach((user) => {
+      console.log(JSON.stringify(user));
+    });
+    return this.users;
+  },
+}).register('people');

+ 12 - 0
client/components/settings/peopleBody.styl

@@ -0,0 +1,12 @@
+table
+  font-family: arial, sans-serif;
+  border-collapse: collapse;
+  width: 100%;
+
+  td, th
+    border: 1px solid #d2d0d0;
+    text-align: left;
+    padding: 8px;
+
+  tr:nth-child(even)
+    background-color: #dddddd;

+ 5 - 4
client/components/settings/settingHeader.jade

@@ -9,13 +9,14 @@ template(name="settingHeaderBar")
           a.setting-header-btn.settings(href="{{pathFor 'setting'}}")
             i.fa(class="fa-cog")
             span {{_ 'settings'}}
+
           a.setting-header-btn.informations(href="{{pathFor 'information'}}")
             i.fa(class="fa-info-circle")
             span {{_ 'info'}}
-//TODO
-//          a.setting-header-btn.people
-//            i.fa(class="fa-users")
-//            span {{_ 'people'}}
+
+          a.setting-header-btn.people(href="{{pathFor 'people'}}")
+            i.fa(class="fa-users")
+            span {{_ 'people'}}
 
         else
           a.setting-header-btn.js-log-in(

+ 20 - 0
config/router.js

@@ -140,6 +140,26 @@ FlowRouter.route('/information', {
   },
 });
 
+FlowRouter.route('/people', {
+  name: 'people',
+  triggersEnter: [
+    AccountsTemplates.ensureSignedIn,
+    () => {
+      Session.set('currentBoard', null);
+      Session.set('currentCard', null);
+
+      Filter.reset();
+      EscapeActions.executeAll();
+    },
+  ],
+  action() {
+    BlazeLayout.render('defaultLayout', {
+      headerBar: 'settingHeaderBar',
+      content: 'people',
+    });
+  },
+});
+
 FlowRouter.notFound = {
   action() {
     BlazeLayout.render('defaultLayout', { content: 'notFound' });

+ 3 - 0
server/publications/people.js

@@ -0,0 +1,3 @@
+Meteor.publish('people', function () {
+  return Meteor.users.find({}, {fields:{}});
+});