Kaynağa Gözat

Updating dismissable / show once functionality

Vince Salvino 6 yıl önce
ebeveyn
işleme
d776148739

Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
coderedcms/migrations/0002_auto_20180829_1538.py


+ 17 - 4
coderedcms/models/snippet_models.py

@@ -211,6 +211,7 @@ class Footer(models.Model):
     def __str__(self):
         return self.name
 
+
 @register_snippet
 class ContentWall(models.Model):
     """
@@ -229,18 +230,30 @@ class ContentWall(models.Model):
     )
     is_dismissible = models.BooleanField(
         default=True,
-        verbose_name=_('Is Dismissible')
+        verbose_name=_('Dismissible'),
+    )
+    show_once = models.BooleanField(
+        default=True,
+        verbose_name=_('Show once'),
+        help_text=_('Do not show the content wall to the same user again after it has been closed.')
     )
 
     panels = [
-        FieldPanel('name'),
+        MultiFieldPanel(
+            [
+                FieldPanel('name'),
+                FieldPanel('is_dismissible'),
+                FieldPanel('show_once'),
+            ],
+            heading=_('Content Wall')
+        ),
         StreamFieldPanel('content'),
-        FieldPanel('is_dismissible'),
     ]
 
     def __str__(self):
         return self.name
-        
+
+
 class CoderedEmail(ClusterableModel):
     """
     General purpose abstract clusterable model used for holding email information.

+ 9 - 4
coderedcms/static/js/codered-front.js

@@ -101,9 +101,14 @@ $(document).ready(function()
         $lightbox.find('img').attr('title', orig_ttl);
     });
 
-    /*** Content Walls ***/
-    $('.content-wall').modal({
-        backdrop: 'static',
-        keyboard: false
+
+    /*** Content walls ***/
+    $(".modal[data-cr-wall-showonce='true']").on('hide.bs.modal', function() {
+        localStorage["cr_wall_" + $(this).data("cr-wall-id")] = "dismissed";
+    });
+    $(".modal[data-cr-wall-id]").each(function() {
+        if(localStorage["cr_wall_" + $(this).data("cr-wall-id")] === undefined) {
+            $(this).modal('show');
+        }
     });
 });

+ 7 - 11
coderedcms/templates/coderedcms/blocks/content_wall_block.html

@@ -1,9 +1,8 @@
-{% extends "coderedcms/blocks/base_block.html" %}
-
-{% block block_render %}
-
-<div class="modal content-wall" tabindex="-1" role="dialog">
-    <div class="modal-dialog" role="document">
+<div class="modal fade content-wall {{self.settings.custom_css_class}}" tabindex="-1" role="dialog" data-cr-wall-id="{{self.content_wall.id}}"
+    {% if not self.content_wall.is_dismissible %} data-backdrop="static" data-keyboard="false" {% endif %}
+    {% if self.content_wall.show_once %} data-cr-wall-showonce="true" {% endif %}
+    {% if self.settings.custom_id %}id="{{self.settings.custom_id}}"{% endif %} >
+    <div class="modal-dialog modal-lg" role="document">
         <div class="modal-content">
             {% if self.content_wall.is_dismissible %}
             <div class="modal-header">
@@ -13,11 +12,8 @@
             </div>
             {% endif %}
             <div class="modal-body">
-                {{self.content_wall.content}}                
+                {{self.content_wall.content}}
             </div>
         </div>
     </div>
-</div>
-
-{% endblock %}
-
+</div>

+ 1 - 1
setup.py

@@ -9,7 +9,7 @@ os.chdir(os.path.normpath(os.path.join(os.path.abspath(__file__), os.pardir)))
 
 setup(
     name='coderedcms',
-    version='0.5.1',
+    version='0.6.0',
     packages=find_packages(),
     include_package_data=True,
     license='BSD License',

Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor