/**
- * @file
- * A Backbone View that provides a dynamic contextual link.
- */
+* DO NOT EDIT THIS FILE.
+* See the following change record for more information,
+* https://www.drupal.org/node/2815083
+* @preserve
+**/
(function ($, Backbone, Drupal) {
-
- 'use strict';
-
- Drupal.quickedit.ContextualLinkView = Backbone.View.extend(/** @lends Drupal.quickedit.ContextualLinkView# */{
-
- /**
- * Define all events to listen to.
- *
- * @return {object}
- * A map of events.
- */
- events: function () {
- // Prevents delay and simulated mouse events.
+ Drupal.quickedit.ContextualLinkView = Backbone.View.extend({
+ events: function events() {
function touchEndToClick(event) {
event.preventDefault();
event.target.click();
}
return {
- 'click a': function (event) {
+ 'click a': function clickA(event) {
event.preventDefault();
this.model.set('state', 'launching');
},
'touchEnd a': touchEndToClick
};
},
-
- /**
- * Create a new contextual link view.
- *
- * @constructs
- *
- * @augments Backbone.View
- *
- * @param {object} options
- * An object with the following keys:
- * @param {Drupal.quickedit.EntityModel} options.model
- * The associated entity's model.
- * @param {Drupal.quickedit.AppModel} options.appModel
- * The application state model.
- * @param {object} options.strings
- * The strings for the "Quick edit" link.
- */
- initialize: function (options) {
- // Insert the text of the quick edit toggle.
+ initialize: function initialize(options) {
this.$el.find('a').text(options.strings.quickEdit);
- // Initial render.
+
this.render();
- // Re-render whenever this entity's isActive attribute changes.
+
this.listenTo(this.model, 'change:isActive', this.render);
},
-
- /**
- * Render function for the contextual link view.
- *
- * @param {Drupal.quickedit.EntityModel} entityModel
- * The associated `EntityModel`.
- * @param {bool} isActive
- * Whether the in-place editor is active or not.
- *
- * @return {Drupal.quickedit.ContextualLinkView}
- * The `ContextualLinkView` in question.
- */
- render: function (entityModel, isActive) {
+ render: function render(entityModel, isActive) {
this.$el.find('a').attr('aria-pressed', isActive);
- // Hides the contextual links if an in-place editor is active.
this.$el.closest('.contextual').toggle(!isActive);
return this;
}
-
});
-
-})(jQuery, Backbone, Drupal);
+})(jQuery, Backbone, Drupal);
\ No newline at end of file