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/11/25 20:38:02 UTC

[08/17] allura git commit: [#7999] ticket:856 Add link to delete projects from /nf/admin/new_projects

[#7999] ticket:856 Add link to delete projects from /nf/admin/new_projects


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

Branch: refs/heads/master
Commit: 0d1a63f56d0263c67da11a26cfe3e21e528cb4d1
Parents: 045e8c4
Author: Igor Bondarenko <je...@gmail.com>
Authored: Mon Nov 2 16:15:23 2015 +0200
Committer: Dave Brondsema <da...@brondsema.net>
Committed: Wed Nov 25 14:37:42 2015 -0500

----------------------------------------------------------------------
 Allura/allura/controllers/site_admin.py              |  2 +-
 .../allura/public/nf/js/site_admin_new_projects.js   | 15 +++++++++++++++
 .../allura/templates/site_admin_delete_projects.html |  2 +-
 Allura/allura/templates/site_admin_new_projects.html |  3 ++-
 Allura/allura/tests/functional/test_site_admin.py    | 11 ++++++++++-
 5 files changed, 29 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/allura/blob/0d1a63f5/Allura/allura/controllers/site_admin.py
----------------------------------------------------------------------
diff --git a/Allura/allura/controllers/site_admin.py b/Allura/allura/controllers/site_admin.py
index b4b0496..5587148 100644
--- a/Allura/allura/controllers/site_admin.py
+++ b/Allura/allura/controllers/site_admin.py
@@ -337,7 +337,7 @@ class SiteAdminController(object):
             DeleteProjects.post(task_params)
             flash(u'Delete scheduled for %s' % projects, 'ok')
             redirect('delete_projects')
-        return {}
+        return {'projects': u'\n'.join(projects.split()) if projects else u''}
 
     @without_trailing_slash
     @expose('jinja:allura:templates/site_admin_search.html')

http://git-wip-us.apache.org/repos/asf/allura/blob/0d1a63f5/Allura/allura/public/nf/js/site_admin_new_projects.js
----------------------------------------------------------------------
diff --git a/Allura/allura/public/nf/js/site_admin_new_projects.js b/Allura/allura/public/nf/js/site_admin_new_projects.js
index d27322e..148e3de 100644
--- a/Allura/allura/public/nf/js/site_admin_new_projects.js
+++ b/Allura/allura/public/nf/js/site_admin_new_projects.js
@@ -18,6 +18,20 @@
 */
 
 $(document).ready(function() {
+  function rebuild_delete_url() {
+    var urls = [];
+    $('.js-select-project:checked').each(function(idx, val) {
+      urls.push($(val).attr('data-url'));
+    });
+    if (urls.length > 0) {
+      var url = '/nf/admin/delete_projects?projects=' + urls.join(' ');
+      var url = $('<a>Delete selected projects</a>').attr('href', url);
+      $('#delete-projects-url').html(url);
+    } else {
+      $('#delete-projects-url').text('');
+    }
+  }
+
   $('.js-select-project').change(function() {
     var shortname = $(this).attr('data-shortname');
     if ($(this).is(':checked')) {
@@ -30,6 +44,7 @@ $(document).ready(function() {
       shortnames.splice(i, 1);
       $('#selected-projects').text(shortnames.join(' '));
     }
+    rebuild_delete_url();
   });
 
   $('tr').click(function(event) {

http://git-wip-us.apache.org/repos/asf/allura/blob/0d1a63f5/Allura/allura/templates/site_admin_delete_projects.html
----------------------------------------------------------------------
diff --git a/Allura/allura/templates/site_admin_delete_projects.html b/Allura/allura/templates/site_admin_delete_projects.html
index 4b92892..ddf85b9 100644
--- a/Allura/allura/templates/site_admin_delete_projects.html
+++ b/Allura/allura/templates/site_admin_delete_projects.html
@@ -30,7 +30,7 @@
     <p class="warning">Be carefull. This will delete all projects data!</p>
     <form action="delete_projects" method="POST">
       <div class="grid-18">
-        <textarea id="projects-to-delete" name="projects"></textarea>
+        <textarea id="projects-to-delete" name="projects">{{ projects }}</textarea>
       </div>
       <div class="grid-18">
         <input type="submit" value="Delete">

http://git-wip-us.apache.org/repos/asf/allura/blob/0d1a63f5/Allura/allura/templates/site_admin_new_projects.html
----------------------------------------------------------------------
diff --git a/Allura/allura/templates/site_admin_new_projects.html b/Allura/allura/templates/site_admin_new_projects.html
index 9013c5d..415c709 100644
--- a/Allura/allura/templates/site_admin_new_projects.html
+++ b/Allura/allura/templates/site_admin_new_projects.html
@@ -56,7 +56,7 @@
     {% for p in projects %}
     <tr>
       <td class="narrow">
-        <input type="checkbox" class="js-select-project" data-shortname="{{ p.shortname }}" />
+        <input type="checkbox" class="js-select-project" data-shortname="{{ p.shortname }}" data-url="{{ p.url() }}" />
       </td>
       <td class="narrow">
         <small>{{ p._id.generation_time.strftime('%Y-%m-%d %H:%M:%S') }}</small>
@@ -72,6 +72,7 @@
   </table>
   {{ _paging() }}
   <div id="selected-projects"></div>
+  <div id="delete-projects-url" class="grid-19"></div>
 {% endblock %}
 
 {% block extra_css %}

http://git-wip-us.apache.org/repos/asf/allura/blob/0d1a63f5/Allura/allura/tests/functional/test_site_admin.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/functional/test_site_admin.py b/Allura/allura/tests/functional/test_site_admin.py
index 40066b0..0918a0f 100644
--- a/Allura/allura/tests/functional/test_site_admin.py
+++ b/Allura/allura/tests/functional/test_site_admin.py
@@ -567,10 +567,19 @@ To reset your password on %s, please visit the following URL:
 
 class TestDeleteProjects(TestController):
 
+    def form(self, r):
+        return self.find_form(r, lambda f: f.action == 'delete_projects')
+
+    def test_projects_populated_from_get_params(self):
+        r = self.app.get('/nf/admin/delete_projects')
+        assert_equal(self.form(r)['projects'].value, u'')
+        r = self.app.get('/nf/admin/delete_projects?projects=/p/test/+/adobe/adobe-1/%20/p/test2/')
+        assert_equal(self.form(r)['projects'].value, u'/p/test/\n/adobe/adobe-1/\n/p/test2/')
+
     @patch('allura.controllers.site_admin.DeleteProjects', autospec=True)
     def test_task_fires(self, dp):
         r = self.app.get('/nf/admin/delete_projects')
-        form = self.find_form(r, lambda f: f.action == 'delete_projects')
+        form = self.form(r)
         form['projects'] = '/p/test http://localhost:8080/adobe/adobe-1 p/test2'
         form.submit()
         dp.post.assert_called_once_with('p/test adobe/adobe-1 p/test2')