Changeset 750 for ZMS/trunk/dtml/ZMSContainerObject/main_js.dtml
- Timestamp:
- 23.10.2009 16:12:55 (3 years ago)
- File:
-
- 1 edited
-
ZMS/trunk/dtml/ZMSContainerObject/main_js.dtml (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
ZMS/trunk/dtml/ZMSContainerObject/main_js.dtml
r723 r750 3 3 4 4 //------------------------------------------------------------------------------ 5 // -- 5 // -- Row-Highlighter 6 6 //------------------------------------------------------------------------------ 7 7 … … 13 13 if (tr.id!='undefined' && tr.id.indexOf('tr_')==0) { 14 14 $("a:first",tr).addClass( "zmiHighlightAction"); 15 $( el).addClass("zmiContainerHighlight");15 $("td.zmiContainerColLeft,td.zmiContainerColCenter,td.zmiContainerColRight",tr).addClass("zmiContainerHighlight"); 16 16 return; 17 17 } … … 26 26 if (tr.id!='undefined' && tr.id.indexOf('tr_')==0) { 27 27 $("a:first",tr).removeClass( "zmiHighlightAction"); 28 $( el).removeClass("zmiContainerHighlight");28 $("td.zmiContainerColLeft,td.zmiContainerColCenter,td.zmiContainerColRight",tr).removeClass("zmiContainerHighlight"); 29 29 return; 30 30 } … … 49 49 50 50 //------------------------------------------------------------------------------ 51 // -- 52 //------------------------------------------------------------------------------ 53 54 /** 55 * Array of button action-codes. 56 */ 57 arrButton = new Array(); 58 arrButton[0] = "trashcan"; 59 arrButton[1] = "cut"; 60 arrButton[2] = "copy"; 61 arrButton[3] = "paste"; 62 63 /** 64 * Array of button types. 65 */ 66 arrButtonType = new Array(); 67 arrButtonType[0] = 0; 68 arrButtonType[1] = 0; 69 arrButtonType[2] = 0; 70 arrButtonType[3] = 1; 71 72 /** 73 * 74 * @param id 75 * @param sort_id 76 */ 77 function paramExec(id, sort_id) 51 // -- Action-selects 52 //------------------------------------------------------------------------------ 53 54 /** 55 * Expand action-select for container-object. 56 * 57 * @param el 58 * @param id 59 */ 60 function zmiExpandActionSelectContainer(el, abs_url) 61 { 62 zmiExpandActionSelect( el, abs_url+"/ajaxFilteredContainerActions"); 63 } 64 65 /** 66 * Expand action-select for child-object. 67 * 68 * @param el 69 * @param id 70 */ 71 function zmiExpandActionSelectChild(el, abs_url) 72 { 73 var id = $(el).attr('id').substr('select_actions_'.length); 74 zmiExpandActionSelect( el, abs_url+"/"+id+"/ajaxFilteredChildActions"); 75 } 76 77 /** 78 * Expand action-select. 79 * 80 * @param el 81 * @param id 82 */ 83 function zmiExpandActionSelect(select, target) 84 { 85 if ( select.options[select.options.length-1].text.indexOf('---') != 0) 86 return; 87 88 // Set wait-cursor. 89 $(document.body).css( "cursor", "wait"); 90 91 // JQuery.AJAX.get 92 $.get( target+"?lang=<dtml-var lang>", zmiExpandActionSelectHandler); 93 } 94 95 /** 96 * Focus select: Process Response.. 97 */ 98 function zmiExpandActionSelectHandler(data) 99 { 100 // Reset wait-cursor. 101 $(document.body).css( "cursor", "auto"); 102 // Get object-id. 103 var id = $("select",data).attr("id").replace(/\./,"_").replace(/\-/,"_"); 104 var select = document.getElementById( 'select_actions_'+id); 105 if ( select.options[select.options.length-1].text.indexOf('---') != 0) 106 return; 107 var options = $("select",data).children("option"); 108 for (var i in options) 78 109 { 79 var fm = document.forms['form0']; 80 if (id && id != null) 110 if ( i > 0) 81 111 { 82 for (var i = 0; i < fm.elements.length; i++) 83 { 84 el = fm.elements[i]; 85 if ( (el.name == 'ids:list') 86 && (el.value == id) ) 87 el.checked = true; 112 var label = $(options[i]).attr('label'); 113 var value = $(options[i]).attr('value'); 114 var option = new Option( label, value); 115 select.options[ select.length] = option; 116 } 117 } 118 select.selectedIndex = 0; 119 } 120 121 /** 122 * Confirm execution of action from select. 123 * 124 * @param fm 125 * @param target 126 * @param label 127 */ 128 function zmiConfirmAction(fm, target, label) 129 { 130 var b = true; 131 var i = countSelectedCheckboxes(fm,'ids'); 132 if (target.indexOf("../") == 0) { 133 i = 1; 134 } 135 if (target.indexOf("manage_rollbackObjChanges") >= 0) { 136 b = confirm("<dtml-var "js_quote(getZMILangStr('MSG_ROLLBACKVERSIONCHANGES'))">"); 137 } 138 else if (target.indexOf("manage_cutObjects") >= 0) { 139 var msg1 = "<dtml-var "js_quote(getZMILangStr('MSG_CONFIRM_CUTOBJS'))">"; 140 msg1 = msg1.replace("%i",""+i); 141 <dtml-let langs="getDescendantLanguages(lang)"> 142 var msg2 = ""; 143 <dtml-if "len(langs)>1"> 144 msg2 += "<dtml-var "js_quote(getZMILangStr('MSG_CONFIRM_DESCENDANT_LANGS'))">"; 145 var s = ""; 146 <dtml-in langs> 147 s += "<dtml-var "getLanguageLabel(_['sequence-item'])">"; 148 <dtml-unless sequence-end> 149 s += ","; 150 </dtml-unless> 151 </dtml-in> 152 msg2 = msg2.replace("%s",""+s); 153 </dtml-if> 154 </dtml-let> 155 var msg = msg1 + ' ' + msg2; 156 b = i > 0 && confirm(msg); 157 } 158 else if (target.indexOf("manage_eraseObjs") >= 0) { 159 var msg = "<dtml-var "js_quote(getZMILangStr('MSG_CONFIRM_DELOBJS'))">"; 160 msg = msg.replace("%i",""+i); 161 b = i > 0 && confirm(msg); 162 } 163 else if (target.indexOf("manage_deleteObjs") >= 0) { 164 var msg1 = "<dtml-var "js_quote(getZMILangStr('MSG_CONFIRM_TRASHOBJS'))">"; 165 msg1 = msg1.replace("%i",""+i); 166 <dtml-let langs="getDescendantLanguages(lang)"> 167 var msg2 = ""; 168 <dtml-if "len(langs)>1"> 169 msg2 += "<dtml-var "js_quote(getZMILangStr('MSG_CONFIRM_DESCENDANT_LANGS'))">"; 170 var s = ""; 171 <dtml-in langs> 172 s += "<dtml-var "getLanguageLabel(_['sequence-item'])">"; 173 <dtml-unless sequence-end> 174 s += ","; 175 </dtml-unless> 176 </dtml-in> 177 msg2 = msg2.replace("%s",""+s); 178 </dtml-if> 179 </dtml-let> 180 var msg = msg1 + ' ' + msg2; 181 b = i > 0 && confirm(msg); 182 } 183 else if (target.indexOf("manage_executeMetacmd") >=0 ) { 184 <dtml-in "getMetaCmdIds()"> 185 <dtml-let metaCmd="getMetaCmd(_['sequence-item'])"> 186 <dtml-if "len(metaCmd['description'])>0"> 187 if (label == '<dtml-var "metaCmd['name']">') { 188 b = confirm("<dtml-var "metaCmd['description']">"); 88 189 } 89 } 90 if (sort_id && sort_id != null) 91 { 92 el = fm.elements['_sort_id:int']; 93 if (el) 94 { 95 el.value = sort_id; 96 } 97 } 98 } 99 100 /** 101 * 102 * @param target 103 * @param label 104 */ 105 function confirmExec(target, label) 106 { 107 var fm = document.forms['form0']; 108 var b = true; 109 var i = countSelectedCheckboxes(fm,'ids'); 110 if (target.indexOf("../") == 0) { 111 i = 1; 112 } 113 if (target.indexOf("manage_rollbackObjChanges") >= 0) { 114 b = confirm("<dtml-var "js_quote(getZMILangStr('MSG_ROLLBACKVERSIONCHANGES'))">"); 115 } 116 else if (target.indexOf("manage_cutObjects") >= 0) { 117 var msg1 = "<dtml-var "js_quote(getZMILangStr('MSG_CONFIRM_CUTOBJS'))">"; 118 msg1 = msg1.replace("%i",""+i); 119 <dtml-let langs="getDescendantLanguages(lang)"> 120 var msg2 = ""; 121 <dtml-if "len(langs)>1"> 122 msg2 += "<dtml-var "js_quote(getZMILangStr('MSG_CONFIRM_DESCENDANT_LANGS'))">"; 123 var s = ""; 124 <dtml-in langs> 125 s += "<dtml-var "getLanguageLabel(_['sequence-item'])">"; 126 <dtml-unless sequence-end> 127 s += ","; 128 </dtml-unless> 129 </dtml-in> 130 msg2 = msg2.replace("%s",""+s); 131 </dtml-if> 132 </dtml-let> 133 var msg = msg1 + ' ' + msg2; 134 b = i > 0 && confirm(msg); 135 } 136 else if (target.indexOf("manage_eraseObjs") >= 0) { 137 var msg = "<dtml-var "js_quote(getZMILangStr('MSG_CONFIRM_DELOBJS'))">"; 138 msg = msg.replace("%i",""+i); 139 b = i > 0 && confirm(msg); 140 } 141 else if (target.indexOf("manage_deleteObjs") >= 0) { 142 var msg1 = "<dtml-var "js_quote(getZMILangStr('MSG_CONFIRM_TRASHOBJS'))">"; 143 msg1 = msg1.replace("%i",""+i); 144 <dtml-let langs="getDescendantLanguages(lang)"> 145 var msg2 = ""; 146 <dtml-if "len(langs)>1"> 147 msg2 += "<dtml-var "js_quote(getZMILangStr('MSG_CONFIRM_DESCENDANT_LANGS'))">"; 148 var s = ""; 149 <dtml-in langs> 150 s += "<dtml-var "getLanguageLabel(_['sequence-item'])">"; 151 <dtml-unless sequence-end> 152 s += ","; 153 </dtml-unless> 154 </dtml-in> 155 msg2 = msg2.replace("%s",""+s); 156 </dtml-if> 157 </dtml-let> 158 var msg = msg1 + ' ' + msg2; 159 b = i > 0 && confirm(msg); 160 } 161 else if (target.indexOf("manage_executeMetacmd") >=0 ) { 162 <dtml-in "getMetaCmdIds()"> 163 <dtml-let metaCmd="getMetaCmd(_['sequence-item'])"> 164 <dtml-if "len(metaCmd['description'])>0"> 165 if (label == '<dtml-var "metaCmd['name']">') { 166 b = confirm("<dtml-var "metaCmd['description']">"); 167 } 168 </dtml-if> 169 </dtml-let> 170 </dtml-in> 171 } 172 else if (target == "") { 173 b = false; 174 } 175 return b; 176 } 177 178 /** 179 * 180 * @param target 181 */ 182 function submitExec(target, id, sort_id) 183 { 184 var fm = $('form[name=form0]'); 185 if (target.indexOf("../") == 0) { 186 fm.append('<input type="hidden" name="ids:list" value="'+$('#id').val()+'"/>'); 187 } 188 $('form[name=form0]>input[id=_id]').val( id); 189 $('form[name=form0]>input[id=_sort_id]').val( sort_id); 190 fm.attr('action',target); 191 fm.submit(); 192 } 193 194 /** 195 * 196 * @param target 197 * @param label 198 * @param id 199 * @param sort_id 200 */ 201 function submitHref(target, label, id, sort_id) 202 { 203 paramExec(id,sort_id); 204 var b = confirmExec(target,label); 205 if (b) 206 { 207 if ((target.indexOf("manage_pasteObjs")>=0) || 208 (target.indexOf("manage_pasteObjects")>=0) || 209 (target.indexOf("manage_copyObjects")>=0) || 210 (target.indexOf("manage_cutObjects")>=0) || 211 (target.indexOf("manage_undoObjs")>=0) || 212 (target.indexOf("manage_deleteObjs")>=0) || 213 (target.indexOf("manage_eraseObjs")>=0)) 214 { 215 submitExec(target,id,sort_id); 216 } 217 else 218 { 219 var fm = document.forms['submitHrefForm']; 220 fm.action = target; 221 fm.elements['id'].value = id; 222 fm.elements['_sort_id:int'].value = sort_id; 223 fm.elements['custom'].value = label; 224 fm.submit(); 225 } 226 } 227 return b; 228 } 229 230 /** 231 * Submit select. 232 * 233 * @param e 234 * @param id 235 * @param sort_id 236 */ 237 function submitSelect(e, id, sort_id) 238 { 239 var i = e.selectedIndex; 240 var label = e.options[i].text; 241 var action = e.options[i].value; 242 if (action.indexOf("%s/") == 0) 243 { 244 action = id + action.substring(2, action.length); 245 } 246 if (action.indexOf('?') > 0) 247 { 248 location.href = action; 249 } 250 else 251 { 252 if (!submitHref(action, label, id, sort_id)) 253 { 254 e.selectedIndex = 0; 255 } 256 } 257 } 258 259 /** 260 * 261 * @param e 262 * @param id 263 * @param sort_id 264 */ 265 function submitSelectCompactview(e, id, sort_id) 266 { 267 var fm = e.form; 268 for (i = 0; i < fm.elements.length; i++) 269 { 270 var el = fm.elements[i]; 271 if ( (el.type == 'checkbox') 272 && (el.name == 'ids:list') 273 && (el.checked) ) 274 { 275 var elSortId = fm.elements['sort_id_'+el.value]; 276 if (elSortId) 277 { 278 id = el.value; 279 sort_id = elSortId.value; 280 } 281 } 282 } 283 submitSelect(e, id, sort_id); 284 } 285 286 /** 287 * 288 * @param ac Action-Code (0=trashcan, 1=cut, 2=copy, 3=paste) 289 * @param offs Offset (0=pageBottom, 1=pageTop) 290 */ 291 function getDocumentImage(ac, offs) 292 { 293 id = ac + "Btn" + offs; 294 return document.images[id]; 295 } 296 297 /** 298 * 299 * @param ac Action-Code (0=trashcan, 1=cut, 2=copy, 3=paste) 300 */ 301 function btnActive(ac) 302 { 303 var fm = document.forms['form0']; 304 for (var i = 0; i < arrButton.length; i++) 305 { 306 if (arrButton[i] == ac) 307 { 308 if (arrButtonType[i] == 0) 309 { 310 return (countSelectedCheckboxes(fm,'ids') > 0) 311 } 312 else 313 { 314 return true; 315 } 316 } 317 } 318 } 319 320 /** 321 * 322 */ 323 function switchButtons(evt) 324 { 325 for (var i = 0; i < arrButton.length; i++) { 326 btnOnMouseOut(arrButton[i]); 327 } 328 // Toggle highlighting of selected rows. 190 </dtml-if> 191 </dtml-let> 192 </dtml-in> 193 } 194 else if (target == "") { 195 b = false; 196 } 197 return b; 198 } 199 200 /** 201 * Execute action from select. 202 * 203 * @param fm 204 * @param target 205 * @param id 206 * @param sort_id 207 * @param custom 208 */ 209 function zmiExecuteAction(fm, target, id, sort_id, custom) 210 { 211 var fm = $(fm); 212 $('input[id=id_prefix]',fm).val( id); 213 $('input[id=_sort_id]',fm).val( sort_id); 214 $('input[id=custom]',fm).val( custom); 215 fm.attr('action',target); 216 fm.submit(); 217 } 218 219 /** 220 * Choose action from select. 221 * 222 * @param e 223 * @param id 224 * @param sort_id 225 */ 226 function zmiChooseAction(e, id, sort_id) 227 { 228 var fm = $(e.form); 229 var i = e.selectedIndex; 230 var label = e.options[i].text; 231 var action = e.options[i].value; 232 if (action.indexOf("%s/") == 0) { 233 action = id + action.substring(2, action.length); 234 } 235 if (action.indexOf('?') > 0) { 236 location.href = action; 237 } 238 else { 239 // Set checkbox. 240 $("input[name=ids:list][type=checkbox][value="+id+"]",fm).attr( 'checked', true); 241 // Confirm and execute. 242 if (zmiConfirmAction(fm,action,label)) { 243 zmiExecuteAction(fm,action,id,sort_id,label); 244 } 245 } 246 // Reset checkbox and select. 247 $("input[name=ids:list][type=checkbox][value="+id+"]",fm).attr( 'checked', false); 248 e.selectedIndex = 0; 249 } 250 251 //------------------------------------------------------------------------------ 252 // -- Action-Buttons 253 //------------------------------------------------------------------------------ 254 255 var zmiActionButtons = [ 256 {'id':'trashcan','standalone':false}, 257 {'id':'cut','standalone':false}, 258 {'id':'copy','standalone':false}, 259 {'id':'paste','standalone':true} 260 ]; 261 262 /** 263 * 264 * @param sender 265 * @param evt 266 */ 267 function zmiActionButtonsRefresh(sender,evt) 268 { 269 var fm = $(sender).parents('form'); 270 var ids = countSelectedCheckboxes(fm,'ids') > 0; 271 // Switch buttons. 272 for (var ac in zmiActionButtons) { 273 var id = zmiActionButtons[ac]['id']; 274 var img = $("img[id^="+id+"Btn]"); 275 var standalone = zmiActionButtons[ac]['standalone']; 276 var active = 0; 277 if (ids || standalone) { 278 active = 1; 279 } 280 img.attr('src','<dtml-var MISC_ZMS>btn_'+id+active+'.gif'); 281 } 282 // Switch selected rows. 329 283 var clazz = "zmiTeaserColor"; 330 284 var els = $("input[name=ids:list][type=checkbox]"); … … 344 298 } 345 299 346 /** 347 * Hover button on mouse-over event. 348 * 349 * @param ac Action-Code (0=trashcan, 1=cut, 2=copy, 3=paste) 350 */ 351 function btnOnMouseOver(ac) 352 { 353 for (var offs = 0; offs <= 1; offs++) 354 { 355 var img = getDocumentImage(ac,offs); 356 if (img != null) 357 { 358 if (btnActive(ac)) 359 { 360 img.src = '<dtml-var MISC_ZMS>btn_' + ac + '1.gif'; 361 } 362 else 363 { 364 img.src = '<dtml-var MISC_ZMS>btn_' + ac + '0.gif'; 365 } 366 } 367 } 368 } 369 370 /** 371 * Lower button on mouse-out event. 372 * 373 * @param ac Action-Code (0=trashcan, 1=cut, 2=copy, 3=paste) 374 */ 375 function btnOnMouseOut(ac) 376 { 377 for (var offs = 0; offs <= 1; offs++) 378 { 379 var img = getDocumentImage(ac,offs); 380 if (img != null) 381 { 382 if (btnActive(ac)) 383 { 384 img.src = '<dtml-var MISC_ZMS>btn_' + ac + '1.gif'; 385 } 386 else 387 { 388 img.src = '<dtml-var MISC_ZMS>btn_' + ac + '0.gif'; 389 } 390 } 391 } 392 } 393 394 /** 395 * 396 * @param ac Action-Code (0=trashcan, 1=cut, 2=copy, 3=paste) 397 * @param target 398 * @param sort_id 399 */ 400 function clipboardBtnClick(ac, target, sort_id) 401 { 402 var fm = document.forms['form0']; 403 if (btnActive(ac)) 404 { 405 paramExec(null,sort_id); 406 var i = countSelectedCheckboxes(fm,'ids'); 407 var b = confirmExec(target); 408 if (b) 409 { 410 submitExec(target,'e',sort_id); 411 } 412 } 413 } 414 415 /** 416 * This method (un-)checks all on page and refreshs buttons. 417 * 418 * @param v Boolean value for new (un-)checked state. 419 */ 420 function slctBtnClick(v) 421 { 422 var fm = document.forms['form0']; 423 selectCheckboxes(fm,v); 424 switchButtons(); 425 } 300 /** 301 * 302 * @param sender 303 * @param ac Action-Code 304 * @param target 305 * @param sort_id 306 */ 307 function zmiActionButtonClick(sender, ac, target, sort_id) { 308 var fm = $(sender).parents('form'); 309 // Switch button. 310 var ids = countSelectedCheckboxes(fm,'ids') > 0; 311 var standalone = zmiActionButtons[ac]['standalone']; 312 if (ids || standalone) { 313 // Confirm and execute. 314 if (zmiConfirmAction(fm,target)) { 315 zmiExecuteAction(fm, target,'e',sort_id); 316 } 317 } 318 } 319 320 /** 321 * This method (un-)checks all id-checkboxes on page and refreshs the buttons. 322 * 323 * @param sender 324 * @param v Boolean value for new (un-)checked state. 325 */ 326 function zmiSelectionButtonClick(sender,v) 327 { 328 var fm = $(sender).parents('form'); 329 selectCheckboxes(fm,v); 330 zmiActionButtonsRefresh(); 331 }
Note: See TracChangeset
for help on using the changeset viewer.
