Explorar o código

Move global subscription to template subscription so that subscription
will stop when template is unused. It's very important for efficiency
espacially with large number of users. Thanks to mfshiu !

Lauri Ojansivu %!s(int64=7) %!d(string=hai) anos
pai
achega
233554a3d6

+ 3 - 2
CHANGELOG.md

@@ -2,10 +2,11 @@
 
 This release adds the following new features:
 
-* [Change password of any user in Standalone Wekan Admin Panel](https://github.com/wekan/wekan/pull/1372).
+* [Change password of any user in Standalone Wekan Admin Panel](https://github.com/wekan/wekan/pull/1372);
+* [Performance optimization: Move more global subscriptions to template subscription](https://github.com/wekan/wekan/pull/1373);
 * Update tranlations. Add Latvian language.
 
-Thanks to GitHub user thuanpq for contributions. Thanks to translators for their translations.
+Thanks to GitHub users mfshiu and thuanpq for their contributions. Thanks to translators for their translations.
 
 # v0.60 2017-11-29 Wekan release
 

+ 4 - 0
client/components/cards/cardDetails.js

@@ -23,8 +23,12 @@ BlazeComponent.extendComponent({
     this.parentComponent().showOverlay.set(true);
     this.parentComponent().mouseHasEnterCardDetails = false;
     this.calculateNextPeak();
+
+    Meteor.subscribe('unsaved-edits');
   },
 
+
+
   isWatching() {
     const card = this.currentData();
     return card.findWatcher(Meteor.userId());

+ 5 - 5
client/components/settings/settingBody.js

@@ -1,8 +1,3 @@
-Meteor.subscribe('setting');
-Meteor.subscribe('mailServer');
-Meteor.subscribe('accountSettings');
-Meteor.subscribe('announcements');
-
 BlazeComponent.extendComponent({
   onCreated() {
     this.error = new ReactiveVar('');
@@ -11,6 +6,11 @@ BlazeComponent.extendComponent({
     this.emailSetting = new ReactiveVar(false);
     this.accountSetting = new ReactiveVar(false);
     this.announcementSetting = new ReactiveVar(false);
+
+    Meteor.subscribe('setting');
+    Meteor.subscribe('mailServer');
+    Meteor.subscribe('accountSettings');
+    Meteor.subscribe('announcements');
   },
 
   setError(error) {

+ 2 - 2
client/components/users/userAvatar.js

@@ -1,5 +1,3 @@
-Meteor.subscribe('my-avatars');
-
 Template.userAvatar.helpers({
   userData() {
     // We need to handle a special case for the search results provided by the
@@ -54,6 +52,8 @@ Template.userAvatarInitials.helpers({
 BlazeComponent.extendComponent({
   onCreated() {
     this.error = new ReactiveVar('');
+
+    Meteor.subscribe('my-avatars');
   },
 
   avatarUrlOptions() {

+ 0 - 2
client/lib/unsavedEdits.js

@@ -1,5 +1,3 @@
-Meteor.subscribe('unsaved-edits');
-
 // `UnsavedEdits` is a global key-value store used to save drafts of user
 // inputs. We used to have the notion of a `cachedValue` that was local to a
 // component but the global store has multiple advantages: