kendo.scheduler.agendaview.min.js
12.3 KB
/**
* Kendo UI v2016.1.112 (http://www.telerik.com/kendo-ui)
* Copyright 2016 Telerik AD. All rights reserved.
*
* Kendo UI commercial licenses may be obtained at
* http://www.telerik.com/purchase/license-agreement/kendo-ui-complete
* If you do not own a commercial license, this file shall be governed by the trial license terms.
*/
!function(e,define){define("kendo.scheduler.agendaview.min",["kendo.scheduler.view.min"],e)}(function(){return function(e){function t(e){var t,a,s=0;for(t=0,a=e.length;a>t;t++)s+=e[t].items.length;return s}function a(e,t){return e.valuePrimitive&&(t=r.getter(e.dataValueField)(t)),t}function s(e){for(var t,a=0,s=e.length,r=[];s>a;a++)t=e[a],t.groups?(t=n(t.groups),r=r.concat(t)):r=r.concat(n(t.items));return r}function n(e){for(var t=[].concat(e),a=t.shift(),s=[],n=[].push;a;)a.groups?n.apply(t,a.groups):a.items?n.apply(t,a.items):n.call(s,a),a=t.shift();return s}var r=window.kendo,i=r.ui,l=".kendoAgendaView",o='<div class="k-task" title="#:title.replace(/"/g,"\'")#" data-#=kendo.ns#uid="#=uid#"># if (resources[0]) {#<span class="k-scheduler-mark" style="background-color:#=resources[0].color#"></span># } ## if (data.isException()) { #<span class="k-icon k-i-exception"></span># } else if (data.isRecurring()) {#<span class="k-icon k-i-refresh"></span># } #{0}#if (showDelete) {#<a href="\\#" class="k-link k-event-delete"><span class="k-icon k-si-close"></span></a>#}#</div>';i.AgendaView=i.SchedulerView.extend({init:function(t,a){i.SchedulerView.fn.init.call(this,t,a),a=this.options,a.editable&&(a.editable=e.extend({"delete":!0},a.editable,{create:!1,update:!1})),this.title=a.title,this._eventTemplate=this._eventTmpl(a.eventTemplate,o),this._dateTemplate=r.template(a.eventDateTemplate),this._groupTemplate=r.template(a.eventGroupTemplate),this._timeTemplate=r.template(a.eventTimeTemplate),this.element.on("mouseenter"+l,".k-scheduler-agenda .k-scheduler-content tr","_mouseenter").on("mouseleave"+l,".k-scheduler-agenda .k-scheduler-content tr","_mouseleave").on("click"+l,".k-scheduler-agenda .k-scheduler-content .k-link:has(.k-si-close)","_remove"),this._renderLayout(a.date)},name:"agenda",_mouseenter:function(t){e(t.currentTarget).addClass("k-state-hover")},_mouseleave:function(t){e(t.currentTarget).removeClass("k-state-hover")},_remove:function(t){t.preventDefault(),this.trigger("remove",{uid:e(t.currentTarget).closest(".k-task").attr(r.attr("uid"))})},nextDate:function(){return r.date.nextDay(this.startDate())},startDate:function(){return this._startDate},endDate:function(){return this._endDate},previousDate:function(){return r.date.previousDay(this.startDate())},_renderLayout:function(e){this._startDate=e,this._endDate=r.date.addDays(e,7),this.createLayout(this._layout()),this.table.addClass("k-scheduler-agenda")},_layout:function(){var e,t,a,s=[{text:this.options.messages.time,className:"k-scheduler-timecolumn"},{text:this.options.messages.event}];if(this._isMobilePhoneView()||s.splice(0,0,{text:this.options.messages.date,className:"k-scheduler-datecolumn"}),e=this.groupedResources,e.length){for(t=[],a=0;e.length>a;a++)t.push({text:"",className:"k-scheduler-groupcolumn"});s=t.concat(s)}return{columns:s}},_tasks:function(e){var t,a,s,n,i,l,o,d=[];for(t=0;e.length>t;t++)if(a=e[t],s=a.start,n=a.end,i=(r.date.getDate(n)-r.date.getDate(s))/r.date.MS_PER_DAY+1,l=a.clone(),l.startDate=r.date.getDate(s),l.startDate>=this.startDate()&&d.push(l),i>1)for(l.end=r.date.nextDay(s),l.head=!0,o=1;i>o;o++)s=l.end,l=a.clone(),l.start=s,l.startDate=r.date.getDate(s),l.end=r.date.nextDay(s),o==i-1?(l.end=new Date(l.start.getFullYear(),l.start.getMonth(),l.start.getDate(),n.getHours(),n.getMinutes(),n.getSeconds(),n.getMilliseconds()),l.tail=!0):(l.isAllDay=!0,l.middle=!0),(r.date.getDate(l.end)<=this.endDate()&&l.start>=this.startDate()||r.date.getDate(l.start).getTime()==this.endDate().getTime())&&d.push(l);return new r.data.Query(d).sort([{field:"start",dir:"asc"},{field:"end",dir:"asc"}]).groupBy({field:"startDate"}).toArray()},_renderTaskGroups:function(e,t){var a,s,n,i,l,o,d,u,c,h=[],p=this.options.editable,m=p&&p.destroy!==!1&&!this._isMobile(),g=this._isMobilePhoneView();for(a=0;e.length>a;a++)for(s=e[a].value,n=e[a].items,i=r.date.isToday(s),l=0;n.length>l;l++){if(o=n[l],d=[],u=g?[]:d,0===a&&0===l&&t.length)for(c=0;t.length>c;c++)u.push(r.format('<td class="k-scheduler-groupcolumn{2}" rowspan="{0}">{1}</td>',t[c].rowSpan,this._groupTemplate({value:t[c].text}),t[c].className));0===l&&(g?(u.push(r.format('<td class="k-scheduler-datecolumn" colspan="2">{0}</td>',this._dateTemplate({date:s}))),h.push('<tr role="row" aria-selected="false"'+(i?' class="k-today">':">")+u.join("")+"</tr>")):d.push(r.format('<td class="k-scheduler-datecolumn{3}{2}" rowspan="{0}">{1}</td>',n.length,this._dateTemplate({date:s}),a!=e.length-1||t.length?"":" k-last",t.length?"":" k-first"))),o.format=o.head?"{0:t}":o.tail?"{1:t}":"{0:t}-{1:t}",o.resources=this.eventResources(o),d.push(r.format('<td class="k-scheduler-timecolumn"><div>{0}{1}{2}</div></td><td>{3}</td>',o.tail||o.middle?'<span class="k-icon k-i-arrow-w"></span>':"",this._timeTemplate(o.clone({start:o._startTime||o.start,end:o.endTime||o.end})),o.head||o.middle?'<span class="k-icon k-i-arrow-e"></span>':"",this._eventTemplate(o.clone({showDelete:m})))),h.push('<tr role="row" aria-selected="false"'+(i?' class="k-today">':">")+d.join("")+"</tr>")}return h.join("")},render:function(e){var t,a,n=this.content.find("table").empty(),r=[];e.length>0&&(t=this.groupedResources,t.length?(r=this._createGroupConfiguration(e,t,null),this._renderGroups(r,n,[])):(r=this._tasks(e),n.append(this._renderTaskGroups(r,[])))),a=this._eventsList=s(r),this._angularItems(n,a),this.refreshLayout(),this.trigger("activate")},_angularItems:function(e,t){this.angular("compile",function(){var a=[],s=t.map(function(t){return a.push({dataItem:t}),e.find(".k-task["+r.attr("uid")+"="+t.uid+"]")});return{elements:s,data:a}})},_renderGroups:function(e,t,a){var s,n,r;for(s=0,n=e.length;n>s;s++)r=a.splice(0),r.push(e[s]),e[s].groups?this._renderGroups(e[s].groups,t,r):t.append(this._renderTaskGroups(e[s].items,r))},_createGroupConfiguration:function(e,s,n){var l,o,d,u,c,h,p,m=s[0],g=[],f=m.dataSource.view(),k=this._isMobilePhoneView();for(l=0;f.length>l;l++)o=a(m,f[l]),d=new r.data.Query(e).filter({field:m.field,operator:i.SchedulerView.groupEqFilter(o)}).toArray(),d.length&&(u=this._tasks(d),c=n?"":" k-first",l===f.length-1&&(!n||n.className.indexOf("k-last")>-1)&&(c+=" k-last"),h={text:r.getter(m.dataTextField)(f[l]),value:o,rowSpan:0,className:c},s.length>1?(h.groups=this._createGroupConfiguration(d,s.slice(1),h),n&&(n.rowSpan+=h.rowSpan)):(h.items=u,p=t(h.items),k&&(p+=h.items.length),h.rowSpan=p,n&&(n.rowSpan+=p)),g.push(h));return g},selectionByElement:function(t){var a,s,n;return t=e(t),!t.hasClass("k-scheduler-datecolumn")&&this._eventsList.length?(t.is(".k-task")&&(t=t.closest("td")),this._isMobile()?(n=t.parent(),a=n.parent().children().filter(function(){return e(this).children(":not(.k-scheduler-datecolumn)").length}).index(n)):a=t.parent().index(),s=this._eventsList[a],{index:a,start:s.start,end:s.end,isAllDay:s.isAllDay,uid:s.uid}):void 0},select:function(e){this.clearSelection();var t=this.table.find(".k-task").eq(e.index).closest("tr").addClass("k-state-selected").attr("aria-selected",!0)[0];this.current(t)},move:function(e,t){var a,s=!1,n=e.index;return t==r.keys.UP?(n--,s=!0):t==r.keys.DOWN&&(n++,s=!0),s&&(a=this._eventsList[n],a&&(e.start=a.start,e.end=a.end,e.isAllDay=a.isAllDay,e.events=[a.uid],e.index=n)),s},moveToEvent:function(){return!1},constrainSelection:function(e){var t=this._eventsList[0];t&&(e.start=t.start,e.end=t.end,e.isAllDay=t.isAllDay,e.events=[t.uid],e.index=0)},isInRange:function(){return!0},destroy:function(){this.element&&this.element.off(l),i.SchedulerView.fn.destroy.call(this)},options:{title:"Agenda",name:"agenda",editable:!0,selectedDateFormat:"{0:D}-{1:D}",selectedShortDateFormat:"{0:d} - {1:d}",eventTemplate:"#:title#",eventTimeTemplate:"#if(data.isAllDay) {##=this.options.messages.allDay##} else { ##=kendo.format(format, start, end)## } #",eventDateTemplate:'<strong class="k-scheduler-agendaday">#=kendo.toString(date, "dd")#</strong><em class="k-scheduler-agendaweek">#=kendo.toString(date,"dddd")#</em><span class="k-scheduler-agendadate">#=kendo.toString(date, "y")#</span>',eventGroupTemplate:'<strong class="k-scheduler-adgendagroup">#=value#</strong>',messages:{event:"Event",date:"Date",time:"Time",allDay:"all day"}}})}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,a){(a||t)()});
//# sourceMappingURL=kendo.scheduler.agendaview.min.js.map