1 line
5.9 KiB
JavaScript
1 line
5.9 KiB
JavaScript
apex.jQuery(apex.gPageContext$).on("apexreadyend",(function(r){$(".s-g-container").each((function(){kanban.initialize("#"+this.id,this.getAttribute("dropitemajax"),this.getAttribute("dropgroupajax"))}))}));var kanban=function(r){var e=r(".s-g-container").length,t=!1;return{initialize:function(a,n,o){var i=null,d=null,s=[];if(e-=1,t)return;t=0==e;var c=r(a);let u=c.find(".kb-group-container").parent(),l=(u.tableModelView("instance"),u.tableModelView("getModel"));function g(e,t){c=r(a),r(a).find(e||"[relocationneed]").each((function(){var e=r(this),n=e.attr("datastatus"),o=e.attr("data-id");if(n){var i,d=l.getRecordValue(o,"APEX$CONTROL_BREAK_VALUE"),s=(i=c.find("[data-group-id="+d+"]"))&&i.length?i.find('.kb-item-container[datastatus="'+n+'"]'):c.find('.kb-item-container[datastatus="'+n+'"]');if(s.length){var u=s.children();u.length>t?e.insertBefore(u.eq(t)):s.append(e);var g=r(a).find('[parentheaderid="'+n+'"]').attr("card-icon"),p=r(a).find('[parentheaderid="'+n+'"]').attr("card-icon-color"),f=r(this).find(".card-header > i");f.hasClass("specific_icon")||f.addClass(g);var h=r(this).find(".card-header");h.hasClass("specific_color")||h.css("background",p),e.removeAttr("relocationneed"),e.css("display","")}}}))}function p(){var e=0;i=dragula(r(c.find(".kb-item-container")).toArray(),{direction:"vertical",revertOnSpill:!0,accepts:function(r,e,t,a){return!0}}),r(c).find(".kb-items").each((function(){var e=r(this).attr("data-id"),t=r(this).attr("datastatus"),a=r(this).closest(".reportgroup").attr("data-group-id");e&&!s?.some((r=>r.id===e))&&s.push({id:e,status:t,groupid:a})}));var t=Array.from(document.querySelectorAll(".kb-item-container"));autoScroll([window].concat(t),{maxSpeed:15,margin:150,pixels:7,scrollWhenOutside:!0,autoScroll:function(){return this.down&&i.dragging}});c.find(".kb-group-container").on("click",".kb-collapsable",(function(e){console.log(r(this).parent().find(".card-footer")),function(r,e){r.find(".kb-collapsable").toggle(),r.find(".card-footer").toggle(),r.parent().parent().find(".kb-item-region").toggle();var t=r.parent();if(t.toggleClass("kb-collapsed"),e){var a={groupId:r.attr("data-group-id"),collapsed:t.hasClass("kb-collapsed")};c.trigger("kanbangroupcollapsed",[a])}}(r(this).parent(),!0)})),c.find(".kb-item-container").on("touchmove",".kb-items",(function(r){r.preventDefault()})),i.on("drag",(function(t,a){var n=r(t),o=r(a);e=n.index();var i=n.next();if(i.length>0?r(i[0]):null,0==s.filter((function(r){return r.id==n.attr("data-id")})).length)return apex.message.clearErrors(),apex.message.showErrors([{type:"error",location:["page"],message:apex.lang.getMessage("SYSTEM_MANIPULATION_DETECTED"),unsafe:!1}]),void r(c[0]).remove();var d={itemId:n.attr("data-id"),sourceGroupId:o.closest(".kb-row").attr("data-group-id"),sourceColumnId:o.attr("datastatus"),sourceItemIndex:e};c.trigger("kanbandrag",[d])})),i.on("drop",(function(t,a,o,i){var d=r(t),u=r(a),l=r(o),p={itemId:d.attr("data-id"),sourceGroupId:l.closest(".kb-row").attr("data-group-id"),sourceColumnId:l.attr("datastatus"),sourceItemIndex:e,targetGroupId:u.closest(".kb-row").attr("data-group-id"),targetColumnId:u.attr("datastatus"),targetItemIndex:d.index()};if(0==s.filter((function(r){return r.id==d.attr("data-id")})).length)return apex.message.clearErrors(),apex.message.showErrors([{type:"error",location:["page"],message:apex.lang.getMessage("SYSTEM_MANIPULATION_DETECTED"),unsafe:!1}]),void r(c[0]).remove();if(n)try{apex.server.process(n,{x01:p.itemId,x02:p.sourceGroupId,x03:p.sourceColumnId,x04:p.sourceItemIndex,x05:p.targetGroupId,x06:p.targetColumnId,x07:p.targetItemIndex},{success:function(r){r.success?c.trigger("kanbanafterdrop",[p]):(f(d,p,!0),g("[data-id="+p.itemId+"]",e),p.sqlcode=r.sqlcode,c.trigger("kanbandroperror",[p]))},error:function(r){f(l,p,!0),g("[data-id="+p.itemId+"]",e),c.trigger("kanbandroperror",[p])},dataType:"json"})}catch(r){}f(d,p),c.trigger("kanbandrop",[p])}))}function f(e,t,n){var o,i,d=t.targetGroupId,c=t.sourceGroupId,u=t.itemId;n?(i=t.sourceColumnId,o=t.sourceGroupId):(o=t.targetGroupId,i=t.targetColumnId);var g=r(a).find('[parentheaderid="'+i+'"]').attr("card-icon"),p=r(a).find('[parentheaderid="'+i+'"]').attr("card-icon-color"),f=e.find(".card-header"),h=f.find("i");e.attr("datastatus",i),h.hasClass("specific_icon")||(h.attr("class",""),h.addClass("fa "+g)),f.hasClass("specific_color")||f.css("background",p),e.removeClass("gu-transit"),e.attr("relocationneed","");u=t.itemId;var m=e[0].outerHTML;l.setOption("editable",!0),l.setRecordValue(u,"APEX$ROW_CONTENT",m),c!=d&&l.setRecordValue(u,"APEX$CONTROL_BREAK_VALUE",o),l.setOption("editable",!1),l.clearChanges(),s.forEach((function(r){r.id==u&&(r.status=i,r.groupid=d)}))}function h(){var e=0,t=null;d=dragula(r(c.find(".kb-group-container")).toArray(),{direction:"vertical",revertOnSpill:!0,moves:function(e,t,a){return r(a).closest(".kb-group-card").length>0}});var a=Array.from(document.querySelectorAll(".kb-group-container"));autoScroll([window].concat(a),{maxSpeed:15,margin:150,pixels:7,scrollWhenOutside:!0,autoScroll:function(){return this.down&&d.dragging}});r(".kb-group-region > .kb-card").each((function(r,e){e.addEventListener("touchmove",(function(r){r.preventDefault()}))})),d.on("drag",(function(a,n){var o=r(a);e=o.index();var i=o.next();t=i.length>0?r(i[0]):null;var d={groupId:o.attr("data-group-id"),sourceGroupIndex:e};c.trigger("kanbandraggroup",[d])})),d.on("drop",(function(a,n,i,d){var s=r(a),u=(r(n),r(i)),l={groupId:s.attr("data-group-id"),sourceGroupIndex:e,targetGroupIndex:s.index()};if(o)try{apex.server.process(o,{x01:l.groupId,x02:l.sourceGroupIndex,x03:l.targetGroupIndex},{success:function(r){r.success?c.trigger("kanbanafterdropgroup",[l]):(t?s.insertBefore(t):u.append(s),l.sqlcode=r.sqlcode,c.trigger("kanbandropgrouperror",[l]))},error:function(r){t?s.insertBefore(t):u.append(s),c.trigger("kanbandropgrouperror",[l])},dataType:"json"})}catch(r){}c.trigger("kanbandropgroup",[l])}))}g(),p(),h(),r(a).on("tablemodelviewpagechange",(function(r,e){g(),i&&i.destroy(),d&&d.destroy(),p(),h()}))}}}(apex.jQuery); |