]> git.imager.perl.org - bse.git/blob - site/htdocs/js/admin_edit.js
improve validation and error reporting for article tags
[bse.git] / site / htdocs / js / admin_edit.js
1 Event.observe(document, "dom:loaded", function () {
2   var add = new Element("a", { href: "#" });
3   add.update("Add");
4   var add_div = new Element("div");
5   add_div.appendChild(add);
6
7   add.observe("click", function(add_div, ev) {
8     var new_tag = new Element("input", { type: "text", name: "tags" });
9     var new_div = new Element("div", { className: "tag" });
10     new_div.appendChild(new_tag);
11     var new_del = new Element("a", { href: "#" });
12     new_del.update("Delete");
13     new_del.observe("click", function(div, ev) {
14       new_div.remove();
15       ev.stop();
16     }.bind(this, new_div));
17     new_div.appendChild(new_del);
18     $("tags").insertBefore(new_div, add_div);
19     ev.stop();
20   }.bind(this, add_div));
21     if ($("tags")) {
22         $("tags").appendChild(add_div);
23         $$('#tags div.tag').each(function(div) {
24             var del = new Element("a", { href: "#" });
25             del.update("Delete");
26             div.appendChild(del);
27             del.observe("click", function(div, ev) {
28                 div.remove();
29                 ev.stop();
30             }.bind(this, div));
31         });
32     }
33
34     // $$("[data-sort], [data-reverse]").each(function(e) {
35     //  e.observe("click", function(ev) {
36     //      var id = $("id").textContent;
37     //      var sorter = e.getAttribute("data-sort");
38     //      if (!sorter) sorter = "";
39     //      var reverse = e.getAttribute("data-reverse");
40     //      if (!reverse) reverse = 0;
41     //      new Ajax.Request
42     //      ("/cgi-bin/admin/reorder.pl",
43     //       {
44     //           parameters:{
45     //               parentid: id,
46     //               sort: sorter,
47     //               reverse: reverse
48     //           },
49     //           onSuccess: function(resp) {
50     //               var json = resp.responseJSON;
51     //               if (json.success) {
52     //                   var new_order = json.kids;
53     //                   var kids = new_order.map(function(id) { return $("child" + id); });
54     //                   if (kids.length) {
55     //                       var parent = kids[0].parentNode;
56     //                       kids.each(function(kid) {
57     //                           parent.removeChild(kid);
58     //                           parent.appendChild(kid);
59     //                       });
60     //                   }
61     //               }
62     //               // else ignore error for now
63     //           }
64     //       });
65     //      ev.stop();
66     //  });
67     // });
68 });