You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by br...@apache.org on 2015/12/17 20:21:51 UTC

[04/50] [abbrv] allura git commit: [#7919] remove AdminModal widget, change to pure JS

[#7919] remove AdminModal widget, change to pure JS


Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/f7d7753e
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/f7d7753e
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/f7d7753e

Branch: refs/heads/db/8034
Commit: f7d7753e2982e1a188900850488c3a4320f9a1a7
Parents: 2d33fe3
Author: Dave Brondsema <da...@brondsema.net>
Authored: Wed Dec 2 14:29:54 2015 -0500
Committer: Heith Seewald <he...@gmail.com>
Committed: Wed Dec 16 13:54:30 2015 -0600

----------------------------------------------------------------------
 Allura/allura/app.py                            |  5 ---
 Allura/allura/ext/admin/admin_main.py           |  4 ---
 .../ext/admin/templates/project_tools.html      |  1 -
 Allura/allura/lib/widgets/admin_widgets.py      | 14 --------
 Allura/allura/public/nf/js/admin_modal.js       | 34 +++++++++++++++-----
 .../allura/templates/jinja_master/master.html   |  2 ++
 .../allura/templates/jinja_master/top_nav.html  |  3 --
 Brocfile.js                                     |  2 +-
 8 files changed, 29 insertions(+), 36 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/allura/blob/f7d7753e/Allura/allura/app.py
----------------------------------------------------------------------
diff --git a/Allura/allura/app.py b/Allura/allura/app.py
index c392eae..381661c 100644
--- a/Allura/allura/app.py
+++ b/Allura/allura/app.py
@@ -308,11 +308,6 @@ class Application(object):
         self.admin = DefaultAdminController(self)
 
     @LazyProperty
-    def admin_modal(self):
-        """Returns modal dialog widget for app's admin options"""
-        return admin_widgets.AdminModal()
-
-    @LazyProperty
     def admin_tool_delete_modal(self):
         """Returns modal dialog widget for app's delete workflow"""
         return admin_widgets.AdminToolDeleteModal()

http://git-wip-us.apache.org/repos/asf/allura/blob/f7d7753e/Allura/allura/ext/admin/admin_main.py
----------------------------------------------------------------------
diff --git a/Allura/allura/ext/admin/admin_main.py b/Allura/allura/ext/admin/admin_main.py
index 221b9cf..b7d7685 100644
--- a/Allura/allura/ext/admin/admin_main.py
+++ b/Allura/allura/ext/admin/admin_main.py
@@ -55,7 +55,6 @@ log = logging.getLogger(__name__)
 class W:
     markdown_editor = ffw.MarkdownEdit()
     label_edit = ffw.LabelEdit()
-    admin_modal = admin_widgets.AdminModal()
     mount_delete = admin_widgets.AdminToolDeleteModal()
     install_modal = ffw.Lightbox(
         name='install_modal', trigger='a.install_trig')
@@ -270,7 +269,6 @@ class ProjectAdminController(BaseController):
         c.markdown_editor = W.markdown_editor
         c.label_edit = W.label_edit
         c.mount_delete = W.mount_delete
-        c.admin_modal = W.admin_modal
         c.install_modal = W.install_modal
         c.page_list = W.page_list
         mounts = c.project.ordered_mounts()
@@ -809,7 +807,6 @@ class ProjectAdminRestController(BaseController):
                     'default_options': tool['app'].default_options(),
                     'default_mount_label': tool['app'].default_mount_label,
                     'default_mount_point': tool['app'].admin_menu_delete_button,
-                    'modal': tool['app'].admin_modal,
                 }
             })
 
@@ -1164,7 +1161,6 @@ class GroupsController(BaseController):
     @with_trailing_slash
     @expose('jinja:allura.ext.admin:templates/project_groups.html')
     def index(self, **kw):
-        c.admin_modal = W.admin_modal
         c.card = W.group_card
         permissions_by_role = self._map_group_permissions()
         auth_role = M.ProjectRole.authenticated()

http://git-wip-us.apache.org/repos/asf/allura/blob/f7d7753e/Allura/allura/ext/admin/templates/project_tools.html
----------------------------------------------------------------------
diff --git a/Allura/allura/ext/admin/templates/project_tools.html b/Allura/allura/ext/admin/templates/project_tools.html
index aa825f1..807828a 100644
--- a/Allura/allura/ext/admin/templates/project_tools.html
+++ b/Allura/allura/ext/admin/templates/project_tools.html
@@ -119,7 +119,6 @@
 <div style="clear:both">
   {{c.page_list.display(page=page, limit=limit, count=total_mounts)}}
 </div>
-{{c.admin_modal.display()}}
 {{c.mount_delete.display()}}
 <div><!--dummy-->
 

http://git-wip-us.apache.org/repos/asf/allura/blob/f7d7753e/Allura/allura/lib/widgets/admin_widgets.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/widgets/admin_widgets.py b/Allura/allura/lib/widgets/admin_widgets.py
index 249962e..6fe0f4f 100644
--- a/Allura/allura/lib/widgets/admin_widgets.py
+++ b/Allura/allura/lib/widgets/admin_widgets.py
@@ -20,20 +20,6 @@ import ew.jinja2_ew as ew
 from allura.lib.widgets import form_fields as ffw
 
 
-class AdminModal(ffw.Lightbox):
-    defaults = dict(
-        ffw.Lightbox.defaults,
-        name='admin_modal',
-        trigger='a.admin_modal',
-        content='<h1 id="admin_modal_title"></h1>'
-                '<div id="admin_modal_contents"></div>')
-
-    def resources(self):
-        for r in super(AdminModal, self).resources():
-            yield r
-        yield ew.JSLink('js/admin_modal.js')
-
-
 class AdminToolDeleteModal(ffw.Lightbox):
     defaults = dict(
         ffw.Lightbox.defaults,

http://git-wip-us.apache.org/repos/asf/allura/blob/f7d7753e/Allura/allura/public/nf/js/admin_modal.js
----------------------------------------------------------------------
diff --git a/Allura/allura/public/nf/js/admin_modal.js b/Allura/allura/public/nf/js/admin_modal.js
index f796bc9..36b059f 100644
--- a/Allura/allura/public/nf/js/admin_modal.js
+++ b/Allura/allura/public/nf/js/admin_modal.js
@@ -16,22 +16,40 @@
        specific language governing permissions and limitations
        under the License.
 */
+
+// This logic is the same as the inline JS from the Lightbox widget
+function startLightbox($lightbox) {
+    $lightbox.lightbox_me();
+    $lightbox.on('click', '.close', function (e) {
+        e.preventDefault();
+        $lightbox.trigger('close');
+    });
+    return $lightbox;
+}
+
 $(function() {
-    var $popup_title = $('#admin_modal_title');
-    var $popup_contents = $('#admin_modal_contents');
     $('body').on('click', 'a.admin_modal', function(e) {
         e.preventDefault();
+
+        $('#lightbox_admin_modal').remove();
+        $('body').append('<div id="lightbox_admin_modal" class="modal" style="display:none">  \
+            <a class="icon close" href="#" title="Close"><i class="fa fa-close"></i></a>  \
+            <h1 id="admin_modal_title"></h1><div id="admin_modal_contents">Loading...</div>  \
+        </div>');
+
+        startLightbox($('#lightbox_admin_modal'));
+
         var link = this;
-        $popup_title.html('');
-        $popup_contents.html('Loading...');
-        $.get(link.href, function (data) {
+        $.get(link.href, function(data) {
+            var $popup_title = $('#admin_modal_title');
+            var $popup_contents = $('#admin_modal_contents');
             $popup_title.html($(link).html());
             $popup_contents.html(data);
             var csrf_exists = $popup_contents.find('form > input[name="_session_id"]').length;
             if (!csrf_exists) {
-              var cval = $.cookie('_session_id');
-              var csrf_input = $('<input name="_session_id" type="hidden" value="'+cval+'">');
-              $popup_contents.find('form').append(csrf_input);
+                var cval = $.cookie('_session_id');
+                var csrf_input = $('<input name="_session_id" type="hidden" value="'+cval+'">');
+                $popup_contents.find('form').append(csrf_input);
             }
         });
     });

http://git-wip-us.apache.org/repos/asf/allura/blob/f7d7753e/Allura/allura/templates/jinja_master/master.html
----------------------------------------------------------------------
diff --git a/Allura/allura/templates/jinja_master/master.html b/Allura/allura/templates/jinja_master/master.html
index 8453056..5ec6808 100644
--- a/Allura/allura/templates/jinja_master/master.html
+++ b/Allura/allura/templates/jinja_master/master.html
@@ -33,6 +33,8 @@
 {% do g.register_forge_css('css/forge/tooltipster.css') %}
 {% do g.register_forge_css('css/font-awesome.min.css', compress=False) %}
 {% if h.has_access(c.project, 'admin')() %}
+    {% do g.register_forge_js('js/admin_modal.js') %}
+    {% do g.register_js('js/jquery.lightbox_me.js') %}
     {# this would be better placed in top_nav.html but that file is included later so its too late for it to register
        any css.  (Unlike other html files which are the top-level file and extend this master.html) #}
     {% do g.register_forge_css('css/navbar.css') %}

http://git-wip-us.apache.org/repos/asf/allura/blob/f7d7753e/Allura/allura/templates/jinja_master/top_nav.html
----------------------------------------------------------------------
diff --git a/Allura/allura/templates/jinja_master/top_nav.html b/Allura/allura/templates/jinja_master/top_nav.html
index 373c4a6..21bcb48 100644
--- a/Allura/allura/templates/jinja_master/top_nav.html
+++ b/Allura/allura/templates/jinja_master/top_nav.html
@@ -62,8 +62,5 @@
                     }), document.getElementById('add-tool-container'));
         });
     </script>
-
-    {# hidden modal, ready to be used by any admin functionality (top_nav, sidebar, admin page, etc) #}
-    {{ c.app.admin_modal.display() }}
 {% endif %}
 {% endif %}

http://git-wip-us.apache.org/repos/asf/allura/blob/f7d7753e/Brocfile.js
----------------------------------------------------------------------
diff --git a/Brocfile.js b/Brocfile.js
index 18bcbd1..38f82e8 100644
--- a/Brocfile.js
+++ b/Brocfile.js
@@ -44,7 +44,7 @@ var navbar_deps = funnel('Allura/allura', {
               'public/nf/js/react-drag.min.js',
               'public/nf/js/react-reorderable.min.js',
               'lib/widgets/resources/js/jquery.lightbox_me.js',
-              'lib/widgets/resources/js/admin_modal.js',
+              'public/nf/js/admin_modal.js',
     ],
 });
 navbar = mergeTrees([navbar_deps, tree]);