[Checkins] SVN: z3c.listjs/trunk/ Allow moving individual list items up and down.

Martijn Faassen faassen at infrae.com
Fri Jan 23 05:11:21 EST 2009


Log message for revision 94951:
  Allow moving individual list items up and down.
  

Changed:
  U   z3c.listjs/trunk/CHANGES.txt
  U   z3c.listjs/trunk/README.txt
  U   z3c.listjs/trunk/src/z3c/listjs/__init__.py
  U   z3c.listjs/trunk/src/z3c/listjs/listjswidget.pt
  A   z3c.listjs/trunk/src/z3c/listjs/resources/down.gif
  A   z3c.listjs/trunk/src/z3c/listjs/resources/listjs.css
  U   z3c.listjs/trunk/src/z3c/listjs/resources/listjs.js
  A   z3c.listjs/trunk/src/z3c/listjs/resources/up.gif
  U   z3c.listjs/trunk/src/z3c/listjs/widget.py

-=-
Modified: z3c.listjs/trunk/CHANGES.txt
===================================================================
--- z3c.listjs/trunk/CHANGES.txt	2009-01-23 09:51:30 UTC (rev 94950)
+++ z3c.listjs/trunk/CHANGES.txt	2009-01-23 10:11:21 UTC (rev 94951)
@@ -4,7 +4,7 @@
 1.0a2 (unreleased)
 ==================
 
-* ...
+* Allow moving individual list items up and down in the list. 
 
 1.0a1 (2009-01-08)
 ==================

Modified: z3c.listjs/trunk/README.txt
===================================================================
--- z3c.listjs/trunk/README.txt	2009-01-23 09:51:30 UTC (rev 94950)
+++ z3c.listjs/trunk/README.txt	2009-01-23 10:11:21 UTC (rev 94951)
@@ -18,6 +18,12 @@
 
   form_fields['foo'].custom_widget = ListJsWidget
 
-With  the  right   ZCML  override  it  should  also   be  possible  to
-automatically  use  this widget  in  all cases  ``ListSequenceWidget``
+With the right ZCML override it should also be possible to
+automatically use this widget in all cases ``ListSequenceWidget``
 would normally be used. Documentation contributions are welcome!
+
+Should you wish to override the CSS for the buttons, the CSS classes
+are ``up_button`` and ``down_button``. If you are using hurry.resource
+for your overriding CSS, your resource should depend on
+``z3c.listjs.listjs_css`` so that ordering is correct to make the
+override happen.

Modified: z3c.listjs/trunk/src/z3c/listjs/__init__.py
===================================================================
--- z3c.listjs/trunk/src/z3c/listjs/__init__.py	2009-01-23 09:51:30 UTC (rev 94950)
+++ z3c.listjs/trunk/src/z3c/listjs/__init__.py	2009-01-23 10:11:21 UTC (rev 94951)
@@ -1 +1 @@
-from z3c.listjs.widget import ListJsWidget
+from z3c.listjs.widget import ListJsWidget, listjs_css

Modified: z3c.listjs/trunk/src/z3c/listjs/listjswidget.pt
===================================================================
--- z3c.listjs/trunk/src/z3c/listjs/listjswidget.pt	2009-01-23 09:51:30 UTC (rev 94950)
+++ z3c.listjs/trunk/src/z3c/listjs/listjswidget.pt	2009-01-23 10:11:21 UTC (rev 94951)
@@ -13,6 +13,10 @@
             tal:replace="structure error" tal:condition="error" />
       <input tal:replace="structure widget" />
     </td>
+    <td>
+      <div><a class="up_button" tal:attributes="onClick string: Z3C.listjs.up('${view/name}', this)"></a></div>
+      <div><a class="down_button" tal:attributes="onClick string: Z3C.listjs.down('${view/name}', this)"></a></div>
+    </td>
   </tr>
   <tr tal:attributes="id string:${view/name}.buttons">
     <td colspan="2">

Added: z3c.listjs/trunk/src/z3c/listjs/resources/down.gif
===================================================================
(Binary files differ)


Property changes on: z3c.listjs/trunk/src/z3c/listjs/resources/down.gif
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: z3c.listjs/trunk/src/z3c/listjs/resources/listjs.css
===================================================================
--- z3c.listjs/trunk/src/z3c/listjs/resources/listjs.css	                        (rev 0)
+++ z3c.listjs/trunk/src/z3c/listjs/resources/listjs.css	2009-01-23 10:11:21 UTC (rev 94951)
@@ -0,0 +1,21 @@
+.up_button {
+  background: transparent url('up.gif') no-repeat scroll top right;
+  float: left;
+  height: 24px;
+  width: 24px;
+  margin-right: 0px;
+  padding-right: 0px;
+  display: block;
+  text-decoration: none;
+}
+
+.down_button {
+  background: transparent url('down.gif') no-repeat scroll top right;
+  float: left;
+  height: 24px;
+  width: 24px;
+  margin-right: 0px;
+  padding-right: 0px;
+  display: block;
+  text-decoration: none;
+}

Modified: z3c.listjs/trunk/src/z3c/listjs/resources/listjs.js
===================================================================
--- z3c.listjs/trunk/src/z3c/listjs/resources/listjs.js	2009-01-23 09:51:30 UTC (rev 94950)
+++ z3c.listjs/trunk/src/z3c/listjs/resources/listjs.js	2009-01-23 10:11:21 UTC (rev 94951)
@@ -153,5 +153,37 @@
         updateAllNumbers(prefix);
     };
 
+    
+    Z3C.listjs.up = function(prefix, el) {
+        while (el.className != 'list_item') {
+            el = el.parentNode;
+        }
+        var previous_el = el.previousSibling;
+        while (previous_el != null && previous_el.className != 'list_item') {
+            previous_el = previous_el.previousSibling;
+        }
+        // first list element, no move possible
+        if (previous_el == null) {
+            return;
+        }
+        previous_el.parentNode.insertBefore(el, previous_el);
+        updateAllNumbers(prefix);
+    };
 
+    Z3C.listjs.down = function(prefix, el) {
+        while (el.className != 'list_item') {
+            el = el.parentNode;
+        }
+        var next_el = el.nextSibling;
+        while (next_el != null && next_el.className != 'list_item') {
+            next_el = next_el.nextSibling;
+        }
+        // last list element, no move possible
+        if (next_el == null) {
+            return;
+        }
+        next_el.parentNode.insertBefore(el, next_el.nextSibling);
+        updateAllNumbers(prefix);
+    };
+    
 })();

Added: z3c.listjs/trunk/src/z3c/listjs/resources/up.gif
===================================================================
(Binary files differ)


Property changes on: z3c.listjs/trunk/src/z3c/listjs/resources/up.gif
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Modified: z3c.listjs/trunk/src/z3c/listjs/widget.py
===================================================================
--- z3c.listjs/trunk/src/z3c/listjs/widget.py	2009-01-23 09:51:30 UTC (rev 94950)
+++ z3c.listjs/trunk/src/z3c/listjs/widget.py	2009-01-23 10:11:21 UTC (rev 94951)
@@ -8,7 +8,8 @@
 from hurry.resource import Library, ResourceInclusion
 
 listjs_lib = Library('z3c.listjs')
-listjs_resource = ResourceInclusion(listjs_lib, 'listjs.js')
+listjs_js = ResourceInclusion(listjs_lib, 'listjs.js')
+listjs_css = ResourceInclusion(listjs_lib, 'listjs.css')
 
 class _ListJsWidget(ListSequenceWidget):
 
@@ -21,7 +22,8 @@
     
     def __call__(self):
         result = ListSequenceWidget.__call__(self)
-        listjs_resource.need()
+        listjs_js.need()
+        listjs_css.need()
         return result
     
     def _getPresenceMarker(self, count=0):



More information about the Checkins mailing list