diff --git a/wire/modules/Fieldtype/FieldtypeRepeater/config.php b/wire/modules/Fieldtype/FieldtypeRepeater/config.php index 7916caf3..dace2cac 100644 --- a/wire/modules/Fieldtype/FieldtypeRepeater/config.php +++ b/wire/modules/Fieldtype/FieldtypeRepeater/config.php @@ -77,6 +77,7 @@ class FieldtypeRepeaterConfigHelper extends Wire { $select->attr('id', 'repeaterFields'); $select->attr('title', $this->_('Add Field')); $select->setAsmSelectOption('sortable', true); + $select->setAsmSelectOption('fieldset', true); $select->setAsmSelectOption('editLink', $this->wire('config')->urls->admin . "setup/field/edit?id={value}&fieldgroup_id={$template->fieldgroup->id}&modal=1&process_template=1"); $select->setAsmSelectOption('hideDeleted', false); diff --git a/wire/modules/Inputfield/InputfieldAsmSelect/InputfieldAsmSelect.module b/wire/modules/Inputfield/InputfieldAsmSelect/InputfieldAsmSelect.module index 84ddb0c1..0db7dfb1 100644 --- a/wire/modules/Inputfield/InputfieldAsmSelect/InputfieldAsmSelect.module +++ b/wire/modules/Inputfield/InputfieldAsmSelect/InputfieldAsmSelect.module @@ -13,7 +13,7 @@ class InputfieldAsmSelect extends InputfieldSelectMultiple implements Inputfield public static function getModuleInfo() { return array( 'title' => __('asmSelect', __FILE__), - 'version' => 120, + 'version' => 121, 'summary' => __('Multiple selection, progressive enhancement to select multiple', __FILE__), // Module Summary 'permanent' => true, ); @@ -32,7 +32,8 @@ class InputfieldAsmSelect extends InputfieldSelectMultiple implements Inputfield parent::init(); - $this->setAsmSelectOption('sortable', true); + $this->setAsmSelectOption('sortable', true); + $this->setAsmSelectOption('fieldset', false); // an optional edit or detail link where items can be modified or viewed // i.e. /path/to/page/?id={value} where {value} is replaced with option value diff --git a/wire/modules/Inputfield/InputfieldAsmSelect/asmselect/jquery.asmselect.css b/wire/modules/Inputfield/InputfieldAsmSelect/asmselect/jquery.asmselect.css index 174714e8..9826f140 100644 --- a/wire/modules/Inputfield/InputfieldAsmSelect/asmselect/jquery.asmselect.css +++ b/wire/modules/Inputfield/InputfieldAsmSelect/asmselect/jquery.asmselect.css @@ -130,3 +130,16 @@ span.asmListItemDesc { .asmListItemDeleted span { text-decoration: line-through; } + +span.asmFieldsetIndent { + float: left; + width: 15px; + height: 5px; +} + +.asmFieldset, +.pw-content .asmFieldset, +#content .asmFieldset { + font-weight: bold; +} + diff --git a/wire/modules/Inputfield/InputfieldAsmSelect/asmselect/jquery.asmselect.js b/wire/modules/Inputfield/InputfieldAsmSelect/asmselect/jquery.asmselect.js index fcaf9dad..01db3408 100644 --- a/wire/modules/Inputfield/InputfieldAsmSelect/asmselect/jquery.asmselect.js +++ b/wire/modules/Inputfield/InputfieldAsmSelect/asmselect/jquery.asmselect.js @@ -17,6 +17,7 @@ listType: 'ol', // Ordered list 'ol', or unordered list 'ul' sortable: false, // Should the list be sortable? highlight: false, // Use the highlight feature? + fieldset: false, // Use fieldset support? (for PW Fieldset types) animate: false, // Animate the the adding/removing of items in the list? addItemTarget: 'bottom', // Where to place new selected items in list: top or bottom hideWhenAdded: false, // Hide the option when added to the list? works only in FF @@ -68,6 +69,7 @@ var buildingSelect = false; // is the new select being constructed right now? var ieClick = false; // in IE, has a click event occurred? ignore if not var ignoreOriginalChangeEvent = false; // originalChangeEvent bypassed when this is true + var fieldsetCloseItems = {}; var msie = 0; function init() { @@ -75,7 +77,7 @@ // initialize the alternate select multiple // this loop ensures uniqueness, in case of existing asmSelects placed by ajax (1.0.3) - while($("#" + options.containerClass + index).size() > 0) index++; + while($("#" + options.containerClass + index).length > 0) index++; $select = $("") .addClass(options.selectClass) @@ -108,9 +110,19 @@ } if(msie > 0 && msie < 8) $ol.css('display', 'inline-block'); // Thanks Matthew Hutton + + if(options.fieldset) { + setupFieldsets(); + $original.children('option').each(function() { + var name = $(this).text(); + if(name.indexOf('_END') > 0 && name.substring(name.length - 4) == '_END') { + fieldsetCloseItems[name] = $(this); + } + }); + } $original.trigger('init'); - + if(options.editLinkModal === 'longclick') { $ol.on('longclick', 'a.asmEditLinkModalLongclick', clickEditLink); } @@ -120,6 +132,8 @@ // make any items in the selected list sortable // requires jQuery UI sortables, draggables, droppables + + var fieldsetItems = []; $ol.sortable({ items: 'li.' + options.listItemClass, @@ -133,26 +147,41 @@ updatedOptionId = $option.attr('id'); $(this).children("li").each(function(n) { - $option = $('#' + $(this).attr('rel')); $original.append($option); - - /* this doesn't seem to work in newer versions of jquery - if($(this).is(".ui-sortable-helper")) { - updatedOptionId = $option.attr('id'); - return; - } - */ - }); if(updatedOptionId) triggerOriginalChange(updatedOptionId, 'sort'); }, start: function(e, data) { if(options.jQueryUI) data.item.addClass('ui-state-highlight'); + if(data.item.hasClass('asmFieldsetStart')) { + var $next = data.item; + var stopName = data.item.find('.asmListItemLabel').text() + '_END'; + do { + if($next.find('.asmListItemLabel').text() == stopName) break; + $next = $next.next('li'); + if($next.length && !$next.hasClass('ui-sortable-placeholder')) { + $next.fadeTo(50, 0.7).slideUp('fast'); + fieldsetItems.push($next); + } + } while($next.length); + } }, stop: function(e, data) { if(options.jQueryUI) data.item.removeClass('ui-state-highlight'); + if(data.item.hasClass('asmFieldsetStart')) { + var $lastItem = data.item; + + for(var n = 0; n < fieldsetItems.length; n++) { + var $item = fieldsetItems[n]; + $lastItem.after($item); + $lastItem = $item; + $item.slideDown('fast').fadeTo('fast', 1.0); + } + fieldsetItems = []; + } + setupFieldsets(); } }).addClass(options.listSortableClass); @@ -198,6 +227,8 @@ if(typeof $.browser != "undefined") { if ($.browser.opera) $ol.hide().fadeIn("fast"); } + + if(options.fieldset) setupFieldsets(); } function buildSelect() { @@ -275,7 +306,7 @@ .attr("disabled", true); if(options.hideWhenEmpty) { - if($option.siblings('[disabled!=true]').size() < 2) $select.hide(); + if($option.siblings('[disabled!=true]').length < 2) $select.hide(); } if(options.hideWhenAdded) $option.hide(); @@ -297,7 +328,6 @@ function addListItem(optionId) { // add a new item to the html list - var $O = $('#' + optionId); if(!$O) return; // this is the first item, selectLabel @@ -400,6 +430,18 @@ setHighlight($item, options.highlightAddedLabel); selectFirstItem(); if(options.sortable) $ol.sortable("refresh"); + if(options.fieldset) { + var itemName = $O.text(); + if(itemName.indexOf('_END') > 0 && itemName.substring(itemName.length - 4) == '_END') { + $item.addClass('asmFieldset asmFieldsetEnd'); + } else { + var fieldsetCloseName = itemName + '_END'; + if(typeof fieldsetCloseItems[fieldsetCloseName] != "undefined") { + $item.addClass('asmFieldset asmFieldsetStart'); + addListItem(fieldsetCloseItems[fieldsetCloseName].attr('id')); + } + } + } } } @@ -571,16 +613,16 @@ $asmItem.effect('highlight', {}, 500); var $asmSetStatus = $icontents.find('#' + options.listItemStatusClass); // first try to find by ID - if($asmSetStatus.size() == 0) $asmSetStatus = $icontents.find(':input.' + options.listItemStatusClass); // then by class, if not ID - if($asmSetStatus.size() > 0) $asmItem.find('.' + options.listItemStatusClass).html($asmSetStatus.eq(0).val()); + if($asmSetStatus.length == 0) $asmSetStatus = $icontents.find(':input.' + options.listItemStatusClass); // then by class, if not ID + if($asmSetStatus.length > 0) $asmItem.find('.' + options.listItemStatusClass).html($asmSetStatus.eq(0).val()); var $asmSetDesc = $icontents.find('#' + options.listItemDescClass); // first try to find by ID - if($asmSetDesc.size() == 0) $asmSetDesc = $icontents.find(':input.' + options.listItemDescClass); // then by class, if not ID - if($asmSetDesc.size() > 0) { + if($asmSetDesc.length == 0) $asmSetDesc = $icontents.find(':input.' + options.listItemDescClass); // then by class, if not ID + if($asmSetDesc.length > 0) { $asmSetDesc = $asmSetDesc.eq(0); var $desc = $asmItem.find('.' + options.listItemDescClass); var $descA = $desc.find('a'); // does it have an in there? - if($descA.size() > 0) $descA.html($asmSetDesc.val()); + if($descA.length > 0) $descA.html($asmSetDesc.val()); else $desc.html($asmSetDesc.val()); } } @@ -595,6 +637,31 @@ }); return false; } + + function setupFieldsets() { + $ol.find('span.asmFieldsetIndent').remove(); + var $items = $ol.children('li'); + + $ol.children('li').children('span.asmListItemLabel').each(function() { + var $t = $(this); + var label = $t.text(); + if(label.substring(label.length-4) != '_END') return; + label = label.substring(0, label.length-4); + var $li = $(this).closest('li.asmListItem'); + $li.addClass('asmFieldset asmFieldsetEnd'); + while(1) { + $li = $li.prev('li.asmListItem'); + if($li.length < 1) break; + var $span = $li.children('span.asmListItemLabel'); + var label2 = $span.text(); + if(label2 == label) { + $li.addClass('asmFieldset asmFieldsetStart'); + break; + } + $span.prepend($('')); + } + }); + } init(); }); diff --git a/wire/modules/Inputfield/InputfieldAsmSelect/asmselect/jquery.asmselect.min.js b/wire/modules/Inputfield/InputfieldAsmSelect/asmselect/jquery.asmselect.min.js index 74343ba0..0e04c030 100644 --- a/wire/modules/Inputfield/InputfieldAsmSelect/asmselect/jquery.asmselect.min.js +++ b/wire/modules/Inputfield/InputfieldAsmSelect/asmselect/jquery.asmselect.min.js @@ -1 +1 @@ -(function(a){a.fn.asmSelect=function(b){var c={listType:"ol",sortable:false,highlight:false,animate:false,addItemTarget:"bottom",hideWhenAdded:false,hideWhenEmpty:false,debugMode:false,jQueryUI:true,hideDeleted:true,deletedOpacity:0.5,deletedPrepend:"-",sortLabel:'',removeLabel:'×',highlightAddedLabel:"Added: ",highlightRemovedLabel:"Removed: ",containerClass:"asmContainer",selectClass:"asmSelect",optionDisabledClass:"asmOptionDisabled",listClass:"asmList",listSortableClass:"asmListSortable",listItemClass:"asmListItem",listItemLabelClass:"asmListItemLabel",listItemDescClass:"asmListItemDesc",listItemStatusClass:"asmListItemStatus",listItemHandleClass:"asmListItemHandle",removeClass:"asmListItemRemove",editClass:"asmListItemEdit",highlightClass:"asmHighlight",deletedClass:"asmListItemDeleted",editLink:"",editLabel:'',editLinkOnlySelected:true,editLinkModal:true,editLinkButtonSelector:"form button.ui-button:visible"};a.extend(c,b);return this.each(function(l){var B=a(this);var t;var y;var n;var p=false;var e=false;var h=false;var o=0;function v(){while(a("#"+c.containerClass+l).size()>0){l++}y=a("").addClass(c.selectClass).addClass(B.attr("class")).attr("name",c.selectClass+l).attr("id",c.selectClass+l);$selectRemoved=a("");n=a("<"+c.listType+">").addClass(c.listClass).attr("id",c.listClass+l);t=a("
").addClass(c.containerClass).attr("id",c.containerClass+l);x();y.change(m).click(C);B.change(r).wrap(t).before(y).before(n);if(c.sortable){z()}if(typeof a.browser!="undefined"&&typeof a.browser.msie!="undefined"){o=a.browser.msie?a.browser.version:0}if(o>0&&o<8){n.css("display","inline-block")}B.trigger("init");if(c.editLinkModal==="longclick"){n.on("longclick","a.asmEditLinkModalLongclick",w)}}function z(){n.sortable({items:"li."+c.listItemClass,axis:"y",cancel:"a.asmEditLinkModalLongclick",update:function(F,E){var D;$option=a("#"+E.item.attr("rel"));D=$option.attr("id");a(this).children("li").each(function(G){$option=a("#"+a(this).attr("rel"));B.append($option)});if(D){u(D,"sort")}},start:function(E,D){if(c.jQueryUI){D.item.addClass("ui-state-highlight")}},stop:function(E,D){if(c.jQueryUI){D.item.removeClass("ui-state-highlight")}}}).addClass(c.listSortableClass)}function m(D){if(o>0&&o<7&&!e){return}var E=a(this).children("option:selected").slice(0,1).attr("rel");s(E);e=false;u(E,"add")}function C(){e=true}function r(D){if(h){h=false;return}y.empty();n.empty();x();if(typeof a.browser!="undefined"){if(a.browser.opera){n.hide().fadeIn("fast")}}}function x(){p=true;var E=B.attr("title");var D=0;if(E===undefined){E=""}y.prepend("");B.children("option").each(function(H){var G=a(this);var F;if(!G.attr("id")){G.attr("id","asm"+l+"option"+H)}F=G.attr("id");if(G.is(":selected")){s(F);i(F,true)}else{D++;i(F)}});if(!c.debugMode){B.hide()}g();if(c.hideWhenEmpty){if(D>0){y.show()}else{y.hide()}}p=false}function i(F,E){if(E==undefined){var E=false}var D=a("#"+F);var G=a("").val(D.val()).attr("rel",F);if(E){q(G)}y.append(G)}function g(){y.children(":eq(0)").attr("selected",true)}function q(D){D.addClass(c.optionDisabledClass).attr("selected",false).attr("disabled",true);if(c.hideWhenEmpty){if(D.siblings("[disabled!=true]").size()<2){y.hide()}}if(c.hideWhenAdded){D.hide()}if(o){y.hide().show()}}function f(D){D.removeClass(c.optionDisabledClass).attr("disabled",false);if(c.hideWhenEmpty){y.show()}if(c.hideWhenAdded){D.show()}if(o){y.hide().show()}}function s(I){var D=a("#"+I);if(!D){return}var G=a("
").attr("href","#").addClass(c.removeClass).prepend(c.removeLabel).click(function(){k(a(this).parent("li").attr("rel"));return false});var E=a("").addClass(c.listItemLabelClass);var H=a("").addClass(c.listItemStatusClass);if(D.attr("data-status")){H.html(D.attr("data-status"))}var F=a("").addClass(c.listItemDescClass);if(c.editLink.length>0&&(D.is(":selected")||!c.editLinkOnlySelected)){var L=a("").html(D.html()).attr("href",c.editLink.replace(/\{value\}/,D.val())).append(c.editLabel);if(c.editLinkModal==="longclick"){L.addClass("asmEditLinkModalLongclick")}else{if(c.editLinkModal){L.click(w)}}E.addClass(c.editClass).append(L);if(D.attr("data-desc")){var J=a("").html(D.attr("data-desc")).attr("href",L.attr("href")).append(c.editLabel);F.addClass(c.editClass).append(J);if(c.editLinkModal==="longclick"){J.addClass("asmEditLinkModalLongclick")}else{if(c.editLinkModal){J.click(w)}}}}else{E.html(D.html());if(D.attr("data-desc")){F.html(D.attr("data-desc"))}}var K=a("
  • ").attr("rel",I).addClass(c.listItemClass).append(E).append(F).append(H).append(G).hide();if(c.jQueryUI){K.addClass("ui-state-default").hover(function(){a(this).addClass("ui-state-hover").removeClass("ui-state-default")},function(){a(this).addClass("ui-state-default").removeClass("ui-state-hover")});if(c.sortable){if(D.attr("data-handle")){K.prepend(a(D.attr("data-handle")).addClass(c.listItemHandleClass))}else{K.prepend(a(c.sortLabel).addClass(c.listItemHandleClass))}}}if(!p){if(D.is(":selected")){return}D.attr("selected",true)}if(c.addItemTarget=="top"&&!p){n.prepend(K);if(c.sortable){B.prepend(D)}}else{n.append(K);if(c.sortable){B.append(D)}}d(K);q(a("[rel="+I+"]",y));if(!p){A(K,c.highlightAddedLabel);g();if(c.sortable){n.sortable("refresh")}}}function d(D){if(c.animate&&!p){D.animate({opacity:"show",height:"show"},100,"swing",function(){D.animate({height:"+=2px"},50,"swing",function(){D.animate({height:"-=2px"},25,"swing")})})}else{D.show()}}function k(G,D){var E=a("#"+G);if(c.hideDeleted){if(D==undefined){var D=true}E.attr("selected",false);$item=n.children("li[rel="+G+"]");j($item);f(a("[rel="+G+"]",c.removeWhenAdded?$selectRemoved:y));if(D){A($item,c.highlightRemovedLabel)}}else{$item=n.children("li[rel="+G+"]");var F=E.attr("value");if(F=="undefined"){F=E.text()}if($item.hasClass(c.deletedClass)){$item.removeClass(c.deletedClass);if(c.deletedOpacity!=1){$item.css("opacity",1)}E.attr("value",F.substring(c.deletedPrepend.length))}else{$item.addClass(c.deletedClass);if(c.deletedOpacity!=1){$item.css("opacity",c.deletedOpacity)}E.attr("value",c.deletedPrepend+F)}}u(G,"drop")}function j(D){if(c.animate&&!p){$prevItem=D.prev("li");D.animate({opacity:"hide",height:"hide"},100,"linear",function(){$prevItem.animate({height:"-=2px"},50,"swing",function(){$prevItem.animate({height:"+=2px"},100,"swing")});D.remove()})}else{D.remove()}}function A(D,E){if(!c.highlight){return}y.next("#"+c.highlightClass+l).remove();var F=a("").hide().addClass(c.highlightClass).attr("id",c.highlightClass+l).html(E+D.children("."+c.listItemLabelClass).slice(0,1).text());y.after(F);F.fadeIn("fast",function(){setTimeout(function(){F.fadeOut("slow",function(){a(this).remove()})},50)})}function u(E,D){h=true;$option=a("#"+E);B.trigger("change",[{option:$option,value:$option.val(),id:E,item:n.children("[rel="+E+"]"),type:D}])}function w(G){if(!c.editLinkModal){return true}var D=a(this).parents("."+c.listItemClass);var E=a(this).attr("href");var F=pwModalWindow(E,{},"medium");F.load(function(){var J=F.contents();var I=[];var H=0;J.find(c.editLinkButtonSelector).each(function(P){var O=a(this);var L=O.text();var N=true;var K=O.is(".ui-priority-secondary");for(var M=0;M0){D.find("."+c.listItemStatusClass).html(Q.eq(0).val())}var R=J.find("#"+c.listItemDescClass);if(R.size()==0){R=J.find(":input."+c.listItemDescClass)}if(R.size()>0){R=R.eq(0);var S=D.find("."+c.listItemDescClass);var T=S.find("a");if(T.size()>0){T.html(R.val())}else{S.html(R.val())}}}F.dialog("close")}};H++}O.hide()});F.setButtons(I)});return false}v()})}})(jQuery); \ No newline at end of file +(function(a){a.fn.asmSelect=function(b){var c={listType:"ol",sortable:false,highlight:false,fieldset:false,animate:false,addItemTarget:"bottom",hideWhenAdded:false,hideWhenEmpty:false,debugMode:false,jQueryUI:true,hideDeleted:true,deletedOpacity:0.5,deletedPrepend:"-",sortLabel:'',removeLabel:'×',highlightAddedLabel:"Added: ",highlightRemovedLabel:"Removed: ",containerClass:"asmContainer",selectClass:"asmSelect",optionDisabledClass:"asmOptionDisabled",listClass:"asmList",listSortableClass:"asmListSortable",listItemClass:"asmListItem",listItemLabelClass:"asmListItemLabel",listItemDescClass:"asmListItemDesc",listItemStatusClass:"asmListItemStatus",listItemHandleClass:"asmListItemHandle",removeClass:"asmListItemRemove",editClass:"asmListItemEdit",highlightClass:"asmHighlight",deletedClass:"asmListItemDeleted",editLink:"",editLabel:'',editLinkOnlySelected:true,editLinkModal:true,editLinkButtonSelector:"form button.ui-button:visible"};a.extend(c,b);return this.each(function(m){var D=a(this);var u;var A;var o;var q=false;var e=false;var h=false;var j={};var p=0;function w(){while(a("#"+c.containerClass+m).length>0){m++}A=a("").addClass(c.selectClass).addClass(D.attr("class")).attr("name",c.selectClass+m).attr("id",c.selectClass+m);$selectRemoved=a("");o=a("<"+c.listType+">").addClass(c.listClass).attr("id",c.listClass+m);u=a("
    ").addClass(c.containerClass).attr("id",c.containerClass+m);z();A.change(n).click(E);D.change(s).wrap(u).before(A).before(o);if(c.sortable){B()}if(typeof a.browser!="undefined"&&typeof a.browser.msie!="undefined"){p=a.browser.msie?a.browser.version:0}if(p>0&&p<8){o.css("display","inline-block")}if(c.fieldset){x();D.children("option").each(function(){var F=a(this).text();if(F.indexOf("_END")>0&&F.substring(F.length-4)=="_END"){j[F]=a(this)}})}D.trigger("init");if(c.editLinkModal==="longclick"){o.on("longclick","a.asmEditLinkModalLongclick",y)}}function B(){var F=[];o.sortable({items:"li."+c.listItemClass,axis:"y",cancel:"a.asmEditLinkModalLongclick",update:function(I,H){var G;$option=a("#"+H.item.attr("rel"));G=$option.attr("id");a(this).children("li").each(function(J){$option=a("#"+a(this).attr("rel"));D.append($option)});if(G){v(G,"sort")}},start:function(J,I){if(c.jQueryUI){I.item.addClass("ui-state-highlight")}if(I.item.hasClass("asmFieldsetStart")){var H=I.item;var G=I.item.find(".asmListItemLabel").text()+"_END";do{if(H.find(".asmListItemLabel").text()==G){break}H=H.next("li");if(H.length&&!H.hasClass("ui-sortable-placeholder")){H.fadeTo(50,0.7).slideUp("fast");F.push(H)}}while(H.length)}},stop:function(J,I){if(c.jQueryUI){I.item.removeClass("ui-state-highlight")}if(I.item.hasClass("asmFieldsetStart")){var H=I.item;for(var K=0;K0&&p<7&&!e){return}var G=a(this).children("option:selected").slice(0,1).attr("rel");t(G);e=false;v(G,"add")}function E(){e=true}function s(F){if(h){h=false;return}A.empty();o.empty();z();if(typeof a.browser!="undefined"){if(a.browser.opera){o.hide().fadeIn("fast")}}if(c.fieldset){x()}}function z(){q=true;var G=D.attr("title");var F=0;if(G===undefined){G=""}A.prepend("");D.children("option").each(function(J){var I=a(this);var H;if(!I.attr("id")){I.attr("id","asm"+m+"option"+J)}H=I.attr("id");if(I.is(":selected")){t(H);i(H,true)}else{F++;i(H)}});if(!c.debugMode){D.hide()}g();if(c.hideWhenEmpty){if(F>0){A.show()}else{A.hide()}}q=false}function i(H,G){if(G==undefined){var G=false}var F=a("#"+H);var I=a("").val(F.val()).attr("rel",H);if(G){r(I)}A.append(I)}function g(){A.children(":eq(0)").attr("selected",true)}function r(F){F.addClass(c.optionDisabledClass).attr("selected",false).attr("disabled",true);if(c.hideWhenEmpty){if(F.siblings("[disabled!=true]").length<2){A.hide()}}if(c.hideWhenAdded){F.hide()}if(p){A.hide().show()}}function f(F){F.removeClass(c.optionDisabledClass).attr("disabled",false);if(c.hideWhenEmpty){A.show()}if(c.hideWhenAdded){F.show()}if(p){A.hide().show()}}function t(K){var F=a("#"+K);if(!F){return}var I=a("").attr("href","#").addClass(c.removeClass).prepend(c.removeLabel).click(function(){l(a(this).parent("li").attr("rel"));return false});var G=a("").addClass(c.listItemLabelClass);var J=a("").addClass(c.listItemStatusClass);if(F.attr("data-status")){J.html(F.attr("data-status"))}var H=a("").addClass(c.listItemDescClass);if(c.editLink.length>0&&(F.is(":selected")||!c.editLinkOnlySelected)){var O=a("").html(F.html()).attr("href",c.editLink.replace(/\{value\}/,F.val())).append(c.editLabel);if(c.editLinkModal==="longclick"){O.addClass("asmEditLinkModalLongclick")}else{if(c.editLinkModal){O.click(y)}}G.addClass(c.editClass).append(O);if(F.attr("data-desc")){var M=a("").html(F.attr("data-desc")).attr("href",O.attr("href")).append(c.editLabel);H.addClass(c.editClass).append(M);if(c.editLinkModal==="longclick"){M.addClass("asmEditLinkModalLongclick")}else{if(c.editLinkModal){M.click(y)}}}}else{G.html(F.html());if(F.attr("data-desc")){H.html(F.attr("data-desc"))}}var N=a("
  • ").attr("rel",K).addClass(c.listItemClass).append(G).append(H).append(J).append(I).hide();if(c.jQueryUI){N.addClass("ui-state-default").hover(function(){a(this).addClass("ui-state-hover").removeClass("ui-state-default")},function(){a(this).addClass("ui-state-default").removeClass("ui-state-hover")});if(c.sortable){if(F.attr("data-handle")){N.prepend(a(F.attr("data-handle")).addClass(c.listItemHandleClass))}else{N.prepend(a(c.sortLabel).addClass(c.listItemHandleClass))}}}if(!q){if(F.is(":selected")){return}F.attr("selected",true)}if(c.addItemTarget=="top"&&!q){o.prepend(N);if(c.sortable){D.prepend(F)}}else{o.append(N);if(c.sortable){D.append(F)}}d(N);r(a("[rel="+K+"]",A));if(!q){C(N,c.highlightAddedLabel);g();if(c.sortable){o.sortable("refresh")}if(c.fieldset){var P=F.text();if(P.indexOf("_END")>0&&P.substring(P.length-4)=="_END"){N.addClass("asmFieldset asmFieldsetEnd")}else{var L=P+"_END";if(typeof j[L]!="undefined"){N.addClass("asmFieldset asmFieldsetStart");t(j[L].attr("id"))}}}}}function d(F){if(c.animate&&!q){F.animate({opacity:"show",height:"show"},100,"swing",function(){F.animate({height:"+=2px"},50,"swing",function(){F.animate({height:"-=2px"},25,"swing")})})}else{F.show()}}function l(I,F){var G=a("#"+I);if(c.hideDeleted){if(F==undefined){var F=true}G.attr("selected",false);$item=o.children("li[rel="+I+"]");k($item);f(a("[rel="+I+"]",c.removeWhenAdded?$selectRemoved:A));if(F){C($item,c.highlightRemovedLabel)}}else{$item=o.children("li[rel="+I+"]");var H=G.attr("value");if(H=="undefined"){H=G.text()}if($item.hasClass(c.deletedClass)){$item.removeClass(c.deletedClass);if(c.deletedOpacity!=1){$item.css("opacity",1)}G.attr("value",H.substring(c.deletedPrepend.length))}else{$item.addClass(c.deletedClass);if(c.deletedOpacity!=1){$item.css("opacity",c.deletedOpacity)}G.attr("value",c.deletedPrepend+H)}}v(I,"drop")}function k(F){if(c.animate&&!q){$prevItem=F.prev("li");F.animate({opacity:"hide",height:"hide"},100,"linear",function(){$prevItem.animate({height:"-=2px"},50,"swing",function(){$prevItem.animate({height:"+=2px"},100,"swing")});F.remove()})}else{F.remove()}}function C(F,G){if(!c.highlight){return}A.next("#"+c.highlightClass+m).remove();var H=a("").hide().addClass(c.highlightClass).attr("id",c.highlightClass+m).html(G+F.children("."+c.listItemLabelClass).slice(0,1).text());A.after(H);H.fadeIn("fast",function(){setTimeout(function(){H.fadeOut("slow",function(){a(this).remove()})},50)})}function v(G,F){h=true;$option=a("#"+G);D.trigger("change",[{option:$option,value:$option.val(),id:G,item:o.children("[rel="+G+"]"),type:F}])}function y(I){if(!c.editLinkModal){return true}var F=a(this).parents("."+c.listItemClass);var G=a(this).attr("href");var H=pwModalWindow(G,{},"medium");H.load(function(){var L=H.contents();var K=[];var J=0;L.find(c.editLinkButtonSelector).each(function(R){var Q=a(this);var N=Q.text();var P=true;var M=Q.is(".ui-priority-secondary");for(var O=0;O0){F.find("."+c.listItemStatusClass).html(S.eq(0).val())}var T=L.find("#"+c.listItemDescClass);if(T.length==0){T=L.find(":input."+c.listItemDescClass)}if(T.length>0){T=T.eq(0);var U=F.find("."+c.listItemDescClass);var V=U.find("a");if(V.length>0){V.html(T.val())}else{U.html(T.val())}}}H.dialog("close")}};J++}Q.hide()});H.setButtons(K)});return false}function x(){o.find("span.asmFieldsetIndent").remove();var F=o.children("li");o.children("li").children("span.asmListItemLabel").each(function(){var K=a(this);var H=K.text();if(H.substring(H.length-4)!="_END"){return}H=H.substring(0,H.length-4);var J=a(this).closest("li.asmListItem");J.addClass("asmFieldset asmFieldsetEnd");while(1){J=J.prev("li.asmListItem");if(J.length<1){break}var G=J.children("span.asmListItemLabel");var I=G.text();if(I==H){J.addClass("asmFieldset asmFieldsetStart");break}G.prepend(a(''))}})}w()})}})(jQuery); \ No newline at end of file