From 9a5aaf3288d39400db2cc74a0d13a41b64ee977f Mon Sep 17 00:00:00 2001 From: Matt Westcott Date: Fri, 27 Feb 2015 19:36:31 +0000 Subject: [PATCH] move menu show/hide logic out of sequence.js and into stream.js's StreamBlockMenu code --- .../static/wagtailadmin/js/blocks/sequence.js | 45 ------------------- .../static/wagtailadmin/js/blocks/stream.js | 20 +++++++++ 2 files changed, 20 insertions(+), 45 deletions(-) diff --git a/wagtail/wagtailadmin/static/wagtailadmin/js/blocks/sequence.js b/wagtail/wagtailadmin/static/wagtailadmin/js/blocks/sequence.js index 74875c41c..ff6f2641e 100644 --- a/wagtail/wagtailadmin/static/wagtailadmin/js/blocks/sequence.js +++ b/wagtail/wagtailadmin/static/wagtailadmin/js/blocks/sequence.js @@ -10,15 +10,9 @@ For example, they don't assume the presence of a 'delete' button - it's up to th var self = {}; self.prefix = prefix; self.container = $('#' + self.prefix + '-container'); - self.menu = $('> .stream-menu', self.container); var indexField = $('#' + self.prefix + '-order'); - self.menu.click(function(e){ - e.preventDefault(); - self.toggleMenu(); - }); - self.delete = function() { sequence.deleteMember(self); }; @@ -38,8 +32,6 @@ For example, they don't assume the presence of a 'delete' button - it's up to th self.container.hide(); self.container.slideDown(); - self.hideMenu(); - // focus first suitable input found var timeout = setTimeout(function(){ $('.input input,.input textarea,.input .richtext', self.container).first().focus(); @@ -52,20 +44,6 @@ For example, they don't assume the presence of a 'delete' button - it's up to th indexField.val(i); }; - self.toggleMenu = function(){ - if(self.menu.hasClass('stream-menu-closed')){ - self.showMenu(); - } else { - self.hideMenu(); - } - }; - self.showMenu = function(){ - self.menu.removeClass('stream-menu-closed'); - }; - self.hideMenu = function(){ - self.menu.addClass('stream-menu-closed'); - }; - return self; }; window.Sequence = function(opts) { @@ -74,12 +52,6 @@ For example, they don't assume the presence of a 'delete' button - it's up to th var countField = $('#' + opts.prefix + '-count'); /* NB countField includes deleted items; for the count of non-deleted items, use members.length */ var members = []; - self.menu = countField.siblings('.stream-menu'); - - self.menu.click(function(e){ - e.preventDefault(); - self.toggleMenu(); - }); self.getCount = function() { return parseInt(countField.val(), 10); @@ -199,23 +171,6 @@ For example, they don't assume the presence of a 'delete' button - it's up to th member._markDeleted(); }; - self.toggleMenu = function(){ - if(self.menu.hasClass('stream-menu-closed')){ - self.showMenu(); - } else { - self.hideMenu(); - } - }; - - self.showMenu = function(){ - self.menu.removeClass('stream-menu-closed'); - }; - - self.hideMenu = function(){ - self.menu.addClass('stream-menu-closed'); - }; - - /* initialize initial list members */ for (var i = 0; i < self.getCount(); i++) { var memberPrefix = opts.prefix + '-' + i; diff --git a/wagtail/wagtailadmin/static/wagtailadmin/js/blocks/stream.js b/wagtail/wagtailadmin/static/wagtailadmin/js/blocks/stream.js index 6e0038756..fb7fbe4b5 100644 --- a/wagtail/wagtailadmin/static/wagtailadmin/js/blocks/stream.js +++ b/wagtail/wagtailadmin/static/wagtailadmin/js/blocks/stream.js @@ -11,6 +11,26 @@ var self = {}; self.container = $('#' + opts.id); + self.show = function(){ + self.container.removeClass('stream-menu-closed'); + }; + self.hide = function(){ + self.container.addClass('stream-menu-closed'); + }; + self.toggle = function(){ + if(self.container.hasClass('stream-menu-closed')){ + self.show(); + } else { + self.hide(); + } + }; + + /* set up show/hide on click behaviour */ + self.container.click(function(e){ + e.preventDefault(); + self.toggle(); + }); + /* set up button behaviour */ $.each(opts.childBlocks, function(i, childBlock) { var button = self.container.find('.action-add-block-' + childBlock.name);