diff options
Diffstat (limited to 'media/feincms/helper.js')
-rw-r--r-- | media/feincms/helper.js | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/media/feincms/helper.js b/media/feincms/helper.js new file mode 100644 index 0000000..58ca3eb --- /dev/null +++ b/media/feincms/helper.js @@ -0,0 +1,88 @@ +function region_append(region, obj, modname) { + var wrp = []; + wrp.push('<div class="order-item"><div class="item-header">'); + if (obj.children(":visible").length > 0) + wrp.push('<div class="item-minimize"><img src="'+IMG_ARROW_DOWN_PATH+'" /></div>'); + else + wrp.push('<div class="item-minimize-disabled"><img src="'+IMG_CIRCLE_PATH+'" /></div>'); + wrp.push('<span>' + modname + '</span><img class="handle" src='+IMG_MOVE_PATH+' />'); + wrp.push('<img class="item-delete" src="'+IMG_DELETELINK_PATH+'" />'); + wrp.push('</div><div class="item-content"></div></div>'); + + $("#"+REGIONS[region]+"_body").children(".order-machine").append(wrp.join("")) + .children(".order-item:last").children(".item-content").append(obj); +} + +function create_new_from_form(form, modvar, last_id) { + var new_form = form.html().replace( + new RegExp(modvar+'-'+last_id, 'g'), + modvar+'-'+(last_id+1)); + new_form = '<div id="'+modvar+'_set_item_'+(last_id+1)+'">'+new_form+'</div>'; + $("#"+modvar+"_set").append(new_form); +} + +function get_item_field_value(item,field) { + // item: DOM object created by 'region_append' function + // field: "order-field" | "delete-field" | "region-field" + if (field=="delete-field") + return item.find("."+field).attr("checked"); + else + return item.find("."+field).val(); +} + +function set_item_field_value(item,field, value) { + // item: DOM object created by 'region_append' function + // field: "order-field" | "delete-field" | "region-field" + if (field=="delete-field") + item.find("."+field).attr("checked",value); + else if (field=="region-choice-field") { + var old_region_id = REGION_MAP.indexOf(item.find("."+field).val()); + item.find("."+field).val(REGION_MAP[value]); + + old_region_item = $("#"+REGIONS[old_region_id]+"_body"); + old_region_item.children(".empty-machine-msg").hide(); + if (old_region_item.children(".order-machine").children().length == 0) + old_region_item.children(".empty-machine-msg").show(); + + new_region_item = $("#"+REGIONS[value]+"_body"); + new_region_item.children(".empty-machine-msg").hide(); + } + else + item.find("."+field).val(value); +} + +function move_item (region_id, item) { + poorify_rich(item); + $("#"+REGIONS[region_id]+"_body").children(".order-machine").append(item); + set_item_field_value(item, "region-choice-field", region_id); + richify_poor(item); +} + +function poorify_rich(item){ + item.children(".item-content").hide(); + if (item.find("div[id^=richtext]").length > 0) { + var editor_id = item.find(".mceEditor").prev().attr("id"); + tinyMCE.execCommand('mceRemoveControl',false,editor_id); + } +} +function richify_poor(item){ + item.children(".item-content").show(); + if (item.find("div[id^=richtext]").length > 0) { + var editor_id = item.find('textarea[name*=richtext]:visible').attr("id"); + tinyMCE.execCommand('mceAddControl',false,editor_id); + } +} + +function zucht_und_ordnung(move_item) { + for (var i=0; i<REGIONS.length;i++) { + var container = $("#"+REGIONS[i]+"_body .order-machine"); + for (var j=0; j<container.children().length; j++) { + if (move_item) + container.find(".order-field[value="+j+"]").parents(".order-item").appendTo(container); + else + set_item_field_value(container.find(".order-item:eq("+j+")"),"order-field",j); + } + } +} + + |