Chris@0
|
1 /**
|
Chris@0
|
2 * DO NOT EDIT THIS FILE.
|
Chris@0
|
3 * See the following change record for more information,
|
Chris@0
|
4 * https://www.drupal.org/node/2815083
|
Chris@0
|
5 * @preserve
|
Chris@0
|
6 **/
|
Chris@0
|
7
|
Chris@0
|
8 (function (Drupal, Backbone) {
|
Chris@0
|
9 Drupal.contextualToolbar.StateModel = Backbone.Model.extend({
|
Chris@0
|
10 defaults: {
|
Chris@0
|
11 isViewing: true,
|
Chris@0
|
12
|
Chris@0
|
13 isVisible: false,
|
Chris@0
|
14
|
Chris@0
|
15 contextualCount: 0,
|
Chris@0
|
16
|
Chris@0
|
17 tabbingContext: null
|
Chris@0
|
18 },
|
Chris@0
|
19
|
Chris@0
|
20 initialize: function initialize(attrs, options) {
|
Chris@0
|
21 this.listenTo(options.contextualCollection, 'reset remove add', this.countContextualLinks);
|
Chris@0
|
22 this.listenTo(options.contextualCollection, 'add', this.lockNewContextualLinks);
|
Chris@0
|
23
|
Chris@0
|
24 this.listenTo(this, 'change:contextualCount', this.updateVisibility);
|
Chris@0
|
25
|
Chris@0
|
26 this.listenTo(this, 'change:isViewing', function (model, isViewing) {
|
Chris@0
|
27 options.contextualCollection.each(function (contextualModel) {
|
Chris@0
|
28 contextualModel.set('isLocked', !isViewing);
|
Chris@0
|
29 });
|
Chris@0
|
30 });
|
Chris@0
|
31 },
|
Chris@0
|
32 countContextualLinks: function countContextualLinks(contextualModel, contextualCollection) {
|
Chris@0
|
33 this.set('contextualCount', contextualCollection.length);
|
Chris@0
|
34 },
|
Chris@0
|
35 lockNewContextualLinks: function lockNewContextualLinks(contextualModel, contextualCollection) {
|
Chris@0
|
36 if (!this.get('isViewing')) {
|
Chris@0
|
37 contextualModel.set('isLocked', true);
|
Chris@0
|
38 }
|
Chris@0
|
39 },
|
Chris@0
|
40 updateVisibility: function updateVisibility() {
|
Chris@0
|
41 this.set('isVisible', this.get('contextualCount') > 0);
|
Chris@0
|
42 }
|
Chris@0
|
43 });
|
Chris@0
|
44 })(Drupal, Backbone); |