Browse Source

Update delete confirmation

Denis K 8 years ago
parent
commit
14f23ebe82

+ 1 - 0
jet/static/jet/css/_base.scss

@@ -192,3 +192,4 @@ body {
 @import "sidebar";
 @import "relatedpopup";
 @import "dashboard";
+@import "delete-confirmation";

+ 75 - 0
jet/static/jet/css/_delete-confirmation.scss

@@ -0,0 +1,75 @@
+@import "globals";
+
+.delete-confirmation {
+  #content > h1 + p + h2 + ul {
+    background: $warning-color;
+    color: $warning-text-color;
+    border-radius: 4px;
+    padding: 20px;
+    list-style-type: none;
+    margin: 0;
+
+    li {
+      list-style: none;
+    }
+  }
+
+  #content > ul:nth-of-type(2), #content > h1 + p + ul {
+    background: $content-background-color;
+    border-radius: 4px;
+    box-shadow: 0 2px 0 0 $content-border2-color;
+
+    &, ul {
+      list-style-type: none;
+      margin: 0;
+      padding: 0;
+
+      li {
+        list-style: disc;
+      }
+    }
+
+    ul {
+      margin-left: 20px;
+    }
+
+    > li {
+      padding: 8px;
+      border-bottom: 1px solid $content-border-color;
+      font-size: 13px;
+      list-style: none;
+
+      &:last-child {
+        border-bottom: 0;
+      }
+    }
+  }
+
+  #content form {
+    margin-top: 20px;
+
+    input[type="submit"] {
+      background-color: $danger-button-background-color;
+      color: $danger-button-text-color;
+      font-size: 12px;
+      font-weight: lighter;
+      padding: 0 20px;
+      text-transform: uppercase;
+
+      &:hover, &:focus {
+        background-color: $button-hover-background-color;
+        color: $button-hover-text-color;
+      }
+
+      &:active {
+        background-color: $button-active-background-color;
+        color: $button-active-text-color;
+      }
+    }
+
+    .button {
+      vertical-align: middle;
+      margin-left: 10px;
+    }
+  }
+}

+ 1 - 1
jet/static/jet/css/_forms.scss

@@ -2,7 +2,7 @@
 
 /* FORM BUTTONS */
 
-input[type="submit"], input[type="button"], .object-tools a {
+.button, input[type="submit"], input[type="button"], .object-tools a {
   &, &:visited, &:hover {
     display: inline-block;
     background-color: $button-background-color;

+ 0 - 19
jet/static/jet/js/src/features/delete-objects.js

@@ -1,19 +0,0 @@
-var $ = require('jquery');
-
-var initDeleteObjects = function() {
-    $('.delete-objects-list-item.collapsable').each(function() {
-        var $item = $(this);
-        var $link = $item.find('.delete-objects-list-item-row-collapse');
-        var $collapsable = $item.find('.delete-objects-list-item-collapsable');
-
-        $link.on('click', function(e) {
-            e.preventDefault();
-
-            $collapsable.slideToggle(200, 'swing');
-        });
-    });
-};
-
-$(document).ready(function() {
-    initDeleteObjects();
-});

+ 19 - 0
jet/static/jet/js/src/layout-updaters/delete-confirmation.js

@@ -0,0 +1,19 @@
+var $ = require('jquery');
+
+var DeleteConfirmationUpdater = function() { };
+
+DeleteConfirmationUpdater.prototype = {
+    run: function() {
+        try {
+            if ($('.delete-confirmation-marker').length != 0) {
+                $('body').addClass('delete-confirmation');
+            }
+        } catch (e) {
+            console.error(e);
+        }
+    }
+};
+
+$(document).ready(function() {
+    new DeleteConfirmationUpdater().run();
+});

+ 1 - 1
jet/static/jet/js/src/main.js

@@ -13,11 +13,11 @@ require('./layout-updaters/changeform-tabs');
 require('./layout-updaters/tabular-inline');
 require('./layout-updaters/stacked-inline');
 require('./layout-updaters/related-widget-wrapper');
+require('./layout-updaters/delete-confirmation');
 require('./features/side-menu');
 require('./features/filters');
 require('./features/changeform-tabs');
 require('./features/checkboxes');
-require('./features/delete-objects');
 require('./features/date-time-widgets');
 require('./features/inlines');
 require('./features/changelist');

+ 2 - 0
jet/templates/admin/base.html

@@ -24,6 +24,8 @@
 {% block footer %}
     {{ block.super }}
 
+    {% jet_delete_confirmation_context %}
+
     {% jet_change_form_sibling_links_enabled as show_siblings %}
     {% if change and show_siblings %}
         <div class="changeform-navigation">

+ 8 - 0
jet/templatetags/jet_tags.py

@@ -8,6 +8,7 @@ from django.forms import CheckboxInput, ModelChoiceField, Select, ModelMultipleC
 from django.contrib.admin.widgets import RelatedFieldWidgetWrapper
 from django.utils.formats import get_format
 from django.template import loader, Context
+from django.utils.safestring import mark_safe
 from jet import settings, VERSION
 from jet.models import Bookmark, PinnedApplication
 import re
@@ -378,3 +379,10 @@ def jet_popup_response_data(context):
         'obj': str(context.get('obj')),
         'new_value': context.get('new_value')
     })
+
+
+@register.simple_tag(takes_context=True)
+def jet_delete_confirmation_context(context):
+    if context.get('deletable_objects') is None and context.get('deleted_objects') is None:
+        return ''
+    return mark_safe('<div class="delete-confirmation-marker"></div>')