annotate core/modules/contextual/js/toolbar/models/StateModel.js @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 4c8ae668cc8c
children
rev   line source
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);