[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