| 8 | | var v = $("sfield").value; |
|---|
| 9 | | if (v!="") { |
|---|
| 10 | | var fsnames = snames.filter(function(n) { return n.name.contains(v); }); |
|---|
| 11 | | var fnames = names.filter(function(n) { return n.name.contains(v); }); |
|---|
| 12 | | var fpnames = pnames.filter(function(n) { return n.name.contains(v); }); |
|---|
| | 8 | var v = $("sfield").value; |
|---|
| | 9 | if (v!="") { |
|---|
| | 10 | var fsnames = snames.filter(function(n) { return n.name.contains(v); }); |
|---|
| | 11 | var fnames = names.filter(function(n) { return n.name.contains(v); }); |
|---|
| | 12 | var fpnames = pnames.filter(function(n) { return n.name.contains(v); }); |
|---|
| | 13 | generateList($("fam"), fsnames); |
|---|
| | 14 | generateList($("nam"), fnames); |
|---|
| | 15 | generateList($("pat"), fpnames); |
|---|
| | 16 | } else { |
|---|
| | 17 | generateList($("fam"), snames); |
|---|
| | 18 | generateList($("nam"), names); |
|---|
| | 19 | generateList($("pat"), pnames); |
|---|
| | 20 | } |
|---|
| | 21 | $("sfield").focus(); |
|---|
| | 22 | } |
|---|
| | 23 | function updateExtendedLists() { |
|---|
| | 24 | var v = $("sfield").value; |
|---|
| | 25 | if (v!="") { |
|---|
| | 26 | var fsnames = snames.filter(function(n) { return n.name.contains(v); }); |
|---|
| | 27 | var fnames = names.filter(function(n) { return n.name.contains(v); }); |
|---|
| | 28 | var fpnames = pnames.filter(function(n) { return n.name.contains(v); }); |
|---|
| | 29 | generateExtendedList($("fam"), fsnames); |
|---|
| | 30 | generateExtendedList($("nam"), fnames); |
|---|
| | 31 | generateExtendedList($("pat"), fpnames); |
|---|
| | 32 | } else { |
|---|
| | 33 | generateExtendedList($("fam"), snames); |
|---|
| | 34 | generateExtendedList($("nam"), names); |
|---|
| | 35 | generateExtendedList($("pat"), pnames); |
|---|
| | 36 | } |
|---|
| | 37 | $("sfield").focus(); |
|---|
| | 38 | } |
|---|
| | 39 | window.addEvent('domready', function() { |
|---|
| | 40 | $("sfield").addEvent("keydown", function(event) { |
|---|
| | 41 | event = new Event(event); |
|---|
| | 42 | if (event.code==13) $("search").focus(); |
|---|
| | 43 | }); |
|---|
| | 44 | var buttons = (new Element("div")).addClass("buttons").setProperty("id", "buttons"); |
|---|
| | 45 | $$("body").adopt(buttons); |
|---|
| | 46 | buttons.adopt((new Element("img")).addClass("button").setProperty("src", "images/add.gif")); |
|---|
| | 47 | buttons.adopt((new Element("img")).addClass("button").setProperty("src", "images/block.gif")); |
|---|
| | 48 | buttons.adopt((new Element("img")).addClass("button").setProperty("src", "images/remove.gif")); |
|---|
| | 49 | loadNew(); |
|---|
| | 50 | }); |
|---|
| | 51 | function loadNew() { |
|---|
| | 52 | JsHttpRequest.query("admin.php", { task:"list" }, |
|---|
| | 53 | function(result, errors) { |
|---|
| | 54 | if (result) { |
|---|
| | 55 | snames = result.snames; |
|---|
| | 56 | names = result.names; |
|---|
| | 57 | pnames = result.pnames; |
|---|
| | 58 | $("extendedPanel").setStyle("display", "none"); |
|---|
| | 59 | $("post1").removeEvents().addEvent('click', post); |
|---|
| | 60 | $("post2").removeEvents().addEvent('click', post); |
|---|
| | 61 | $("search").removeEvents().addEvent('click', updateLists); |
|---|
| | 62 | $("label").setText("Вновь добавленные"); |
|---|
| | 63 | $("changeView").setText("Полный список имен").removeEvents().addEvent("click", fullView); |
|---|
| | 64 | updateLists(); |
|---|
| | 65 | } |
|---|
| | 66 | }, |
|---|
| | 67 | true |
|---|
| | 68 | ); |
|---|
| | 69 | } |
|---|
| | 70 | function fullView() { |
|---|
| | 71 | JsHttpRequest.query("admin.php", { task:"listAll" }, |
|---|
| | 72 | function(result, errors) { |
|---|
| | 73 | if (result) { |
|---|
| | 74 | snames = result.snames; |
|---|
| | 75 | names = result.names; |
|---|
| | 76 | pnames = result.pnames; |
|---|
| | 77 | $("extendedPanel").setStyle("display", "block"); |
|---|
| | 78 | $("post1").removeEvents().addEvent('click', postExtended); |
|---|
| | 79 | $("post2").removeEvents().addEvent('click', postExtended); |
|---|
| | 80 | $("search").removeEvents().addEvent('click', updateExtendedLists); |
|---|
| | 81 | $("label").setText("Полный список имен"); |
|---|
| | 82 | $("changeView").setText("Перейти к вновь добавленным").removeEvents().addEvent("click", loadNew); |
|---|
| | 83 | updateExtendedLists(); |
|---|
| | 84 | } |
|---|
| | 85 | }, |
|---|
| | 86 | true |
|---|
| | 87 | ); |
|---|
| | 88 | } |
|---|
| | 89 | |
|---|
| | 90 | function generateExtendedList(el, names) { |
|---|
| | 91 | el.empty(); |
|---|
| | 92 | var letter_old; |
|---|
| | 93 | var letter; |
|---|
| | 94 | var letterEl = null; |
|---|
| | 95 | $("buttons").setStyle("display", "none"); |
|---|
| | 96 | names.each(function(n) { |
|---|
| | 97 | letter = n.name.charAt(0); |
|---|
| | 98 | if (letter!=letter_old) { |
|---|
| | 99 | letter_old = letter; |
|---|
| | 100 | letterEl = (new Element("div")).addClass("letter"); |
|---|
| | 101 | letterEl.adopt((new Element("div")).addClass("dropcap").setText(letter)); |
|---|
| | 102 | if (letterEl) el.adopt(letterEl); |
|---|
| | 103 | } |
|---|
| | 104 | var nameLine = (new Element("div")).addClass("nameLine").setText(n.name); |
|---|
| | 105 | if (letterEl) { |
|---|
| | 106 | (new Element("input")).setProperty("type", "checkbox").addClass("checkbox").injectTop(nameLine); |
|---|
| | 107 | letterEl.adopt(nameLine); |
|---|
| | 108 | } |
|---|
| | 109 | applyStyle(nameLine); |
|---|
| | 110 | }); |
|---|
| | 111 | if (letterEl) el.adopt(letterEl); |
|---|
| | 112 | } |
|---|
| 14 | | generateList($("fam"), fsnames); |
|---|
| 15 | | generateList($("nam"), fnames); |
|---|
| 16 | | generateList($("pat"), fpnames); |
|---|
| 17 | | } else { |
|---|
| 18 | | generateList($("fam"), snames); |
|---|
| 19 | | generateList($("nam"), names); |
|---|
| 20 | | generateList($("pat"), pnames); |
|---|
| 21 | | } |
|---|
| 22 | | $("sfield").focus(); |
|---|
| 23 | | } |
|---|
| 24 | | window.addEvent('domready', function() { |
|---|
| 25 | | $("search").addEvent('click', updateLists); |
|---|
| 26 | | $("sfield").addEvent("keydown", function(event) { |
|---|
| 27 | | event = new Event(event); |
|---|
| 28 | | if (event.code==13) $("search").focus(); |
|---|
| 29 | | }); |
|---|
| 30 | | var buttons = (new Element("div")).addClass("buttons").setProperty("id", "buttons"); |
|---|
| 31 | | $$("body").adopt(buttons); |
|---|
| 32 | | buttons.adopt((new Element("img")).addClass("button").setProperty("src", "images/add.gif")); |
|---|
| 33 | | buttons.adopt((new Element("img")).addClass("button").setProperty("src", "images/block.gif")); |
|---|
| 34 | | buttons.adopt((new Element("img")).addClass("button").setProperty("src", "images/remove.gif")); |
|---|
| 35 | | |
|---|
| 36 | | JsHttpRequest.query("admin.php", { task:"list" }, |
|---|
| 37 | | function(result, errors) { |
|---|
| 38 | | if (result) { |
|---|
| 39 | | snames = result.snames; |
|---|
| 40 | | names = result.names; |
|---|
| 41 | | pnames = result.pnames; |
|---|
| 42 | | updateLists(); |
|---|
| 43 | | } |
|---|
| 44 | | }, |
|---|
| 45 | | false |
|---|
| 46 | | ); |
|---|
| 47 | | }); |
|---|
| 49 | | el.empty(); |
|---|
| 50 | | var letter_old; |
|---|
| 51 | | var letter; |
|---|
| 52 | | var letterEl = null; |
|---|
| 53 | | $("buttons").setStyle("display", "none"); |
|---|
| 54 | | names.each(function(n) { |
|---|
| 55 | | letter = n.name.charAt(0); |
|---|
| 56 | | if (letter!=letter_old) { |
|---|
| 57 | | letter_old = letter; |
|---|
| 58 | | letterEl = (new Element("div")).addClass("letter"); |
|---|
| 59 | | letterEl.adopt((new Element("div")).addClass("dropcap").setText(letter)); |
|---|
| 60 | | if (letterEl) el.adopt(letterEl); |
|---|
| 61 | | } |
|---|
| 62 | | var nameLine = (new Element("div")).addClass("nameLine").setText(n.name); |
|---|
| 63 | | if (letterEl) letterEl.adopt(nameLine); |
|---|
| 64 | | applyStyle(nameLine); |
|---|
| 65 | | |
|---|
| 66 | | nameLine.addEvent('mouseenter', function(event) { |
|---|
| 67 | | event = new Event(event); |
|---|
| 68 | | var el = event.target; |
|---|
| 69 | | $("buttons").setStyles({ |
|---|
| 70 | | display: "block", |
|---|
| 71 | | top: el.getTop() + "px", |
|---|
| 72 | | left: el.getLeft() + "px" |
|---|
| 73 | | }); |
|---|
| 74 | | $("buttons").getChildren()[0].removeEvents().addEvent('click', function(event) { |
|---|
| 75 | | el.removeClass("blocked"); |
|---|
| 76 | | el.removeClass("removed"); |
|---|
| 77 | | el.toggleClass("accepted"); |
|---|
| 78 | | updateArray(el); |
|---|
| 79 | | }); |
|---|
| 80 | | $("buttons").getChildren()[1].removeEvents().addEvent('click', function(event) { |
|---|
| 81 | | el.removeClass("accepted"); |
|---|
| 82 | | el.removeClass("removed"); |
|---|
| 83 | | el.toggleClass("blocked"); |
|---|
| 84 | | updateArray(el); |
|---|
| 85 | | }); |
|---|
| 86 | | $("buttons").getChildren()[2].removeEvents().addEvent('click', function(event) { |
|---|
| 87 | | el.removeClass("accepted"); |
|---|
| 88 | | el.removeClass("blocked"); |
|---|
| 89 | | el.toggleClass("removed"); |
|---|
| 90 | | updateArray(el); |
|---|
| 91 | | }); |
|---|
| 92 | | }); |
|---|
| 93 | | }); |
|---|
| 94 | | if (letterEl) el.adopt(letterEl); |
|---|
| | 115 | el.empty(); |
|---|
| | 116 | var letter_old; |
|---|
| | 117 | var letter; |
|---|
| | 118 | var letterEl = null; |
|---|
| | 119 | $("buttons").setStyle("display", "none"); |
|---|
| | 120 | names.each(function(n) { |
|---|
| | 121 | letter = n.name.charAt(0); |
|---|
| | 122 | if (letter!=letter_old) { |
|---|
| | 123 | letter_old = letter; |
|---|
| | 124 | letterEl = (new Element("div")).addClass("letter"); |
|---|
| | 125 | letterEl.adopt((new Element("div")).addClass("dropcap").setText(letter)); |
|---|
| | 126 | if (letterEl) el.adopt(letterEl); |
|---|
| | 127 | } |
|---|
| | 128 | var nameLine = (new Element("div")).addClass("nameLine").setText(n.name); |
|---|
| | 129 | if (letterEl) letterEl.adopt(nameLine); |
|---|
| | 130 | applyStyle(nameLine); |
|---|
| | 131 | |
|---|
| | 132 | nameLine.addEvent('mouseenter', function(event) { |
|---|
| | 133 | event = new Event(event); |
|---|
| | 134 | var el = event.target; |
|---|
| | 135 | $("buttons").setStyles({ |
|---|
| | 136 | display: "block", |
|---|
| | 137 | top: el.getTop() + "px", |
|---|
| | 138 | left: el.getLeft() + "px" |
|---|
| | 139 | }); |
|---|
| | 140 | $("buttons").getChildren()[0].removeEvents().addEvent('click', function(event) { |
|---|
| | 141 | el.removeClass("blocked"); |
|---|
| | 142 | el.removeClass("removed"); |
|---|
| | 143 | el.toggleClass("accepted"); |
|---|
| | 144 | updateArray(el); |
|---|
| | 145 | }); |
|---|
| | 146 | $("buttons").getChildren()[1].removeEvents().addEvent('click', function(event) { |
|---|
| | 147 | el.removeClass("accepted"); |
|---|
| | 148 | el.removeClass("removed"); |
|---|
| | 149 | el.toggleClass("blocked"); |
|---|
| | 150 | updateArray(el); |
|---|
| | 151 | }); |
|---|
| | 152 | $("buttons").getChildren()[2].removeEvents().addEvent('click', function(event) { |
|---|
| | 153 | el.removeClass("accepted"); |
|---|
| | 154 | el.removeClass("blocked"); |
|---|
| | 155 | el.toggleClass("removed"); |
|---|
| | 156 | updateArray(el); |
|---|
| | 157 | }); |
|---|
| | 158 | }); |
|---|
| | 159 | }); |
|---|
| | 160 | if (letterEl) el.adopt(letterEl); |
|---|
| 168 | | false |
|---|
| 169 | | ); |
|---|
| 170 | | } |
|---|
| | 234 | true |
|---|
| | 235 | ); |
|---|
| | 236 | } |
|---|
| | 237 | |
|---|
| | 238 | function getListChecked() { |
|---|
| | 239 | var fsnames = []; |
|---|
| | 240 | var fnames = []; |
|---|
| | 241 | var fpnames = []; |
|---|
| | 242 | |
|---|
| | 243 | $$("input").each(function(el) { |
|---|
| | 244 | if (el.hasClass("checkbox") && el.checked) { |
|---|
| | 245 | var t = el.getParent().getParent().getParent().className; |
|---|
| | 246 | switch(t) { |
|---|
| | 247 | case "names": fnames.push(el.getParent().getText()); break; |
|---|
| | 248 | case "families": fsnames.push(el.getParent().getText()); break; |
|---|
| | 249 | case "patronyms": fpnames.push(el.getParent().getText()); break; |
|---|
| | 250 | } |
|---|
| | 251 | } |
|---|
| | 252 | }); |
|---|
| | 253 | return { snames: fsnames, names: fnames, pnames: fpnames }; |
|---|
| | 254 | } |
|---|
| | 255 | function postExtended() { |
|---|
| | 256 | var nn = getListChecked(); |
|---|
| | 257 | if (nn.length==0) return; |
|---|
| | 258 | req = {task:"modifyExt"}; |
|---|
| | 259 | if ($("s_accept").checked) { |
|---|
| | 260 | req["aname"] = nn.names; |
|---|
| | 261 | req["asname"] = nn.snames; |
|---|
| | 262 | req["apname"] = nn.pnames; |
|---|
| | 263 | } else if ($("s_uncheck").checked) { |
|---|
| | 264 | req["uname"] = nn.names; |
|---|
| | 265 | req["usname"] = nn.snames; |
|---|
| | 266 | req["upname"] = nn.pnames; |
|---|
| | 267 | } else if ($("s_block").checked) { |
|---|
| | 268 | req["bname"] = nn.names; |
|---|
| | 269 | req["bsname"] = nn.snames; |
|---|
| | 270 | req["bpname"] = nn.pnames; |
|---|
| | 271 | } else if ($("s_remove").checked) { |
|---|
| | 272 | req["rname"] = nn.names; |
|---|
| | 273 | req["rsname"] = nn.snames; |
|---|
| | 274 | req["rpname"] = nn.pnames; |
|---|
| | 275 | } |
|---|
| | 276 | JsHttpRequest.query("admin.php", req, |
|---|
| | 277 | function(result, errors) { |
|---|
| | 278 | if (result) { |
|---|
| | 279 | snames = result.snames; |
|---|
| | 280 | names = result.names; |
|---|
| | 281 | pnames = result.pnames; |
|---|
| | 282 | updateExtendedLists(); |
|---|
| | 283 | } |
|---|
| | 284 | }, |
|---|
| | 285 | true |
|---|
| | 286 | ); |
|---|
| | 287 | } |
|---|