{% extends "data_grid.html" %} {% load i18n iclock_tags %} {% block main_body %}
{% trans 'shiftDetail_grid_detailLabel' %}
{% endblock %} {% block dimension_info %} {{ block.super }} dimension.height = '600px' dimension.width = '1000px' {% endblock dimension_info %} {% block grid_opt_update %} $.extend(true, dimension, { actions: { GeneralActionNew: [1000, 600], } }); data_grid_opts["rowClick"] = function(obj){ var height = $("#{{ model_name }}_fluid div.layui-table-view").height(); $("#id_shift_detail_{{ model_name }}").height(height - 15); var data = obj.data; {#$(".layui-card-header").text(data.alias + ' ' + gettext('shift_details'));#} var shiftDetailsContainer = '#id_shift_detail_{{ model_name }}'; $(shiftDetailsContainer+" .layui-card-header").text(data.alias); show_shift_detail(data); var week=[ "{% trans 'weekday_option_sunday' %}", "{% trans 'weekday_option_monday' %}", "{% trans 'weekday_option_tuesday' %}", "{% trans 'weekday_option_wednesday' %}", "{% trans 'weekday_option_thursday' %}", "{% trans 'weekday_option_friday' %}", "{% trans 'weekday_option_saturday' %}", ]; function getDayLabel(index, weekend){ if (index in weekend){ return (index + 1) + ''+ ' week off' +''; } return (index + 1) } function getWeekLabel(index, weekend){ if (index in weekend){ return week[index % 7] + ''+ ' week off' +''; } return week[index % 7]; } function getTZDateAlt(index, sdate){ if(sdate == undefined) return ""; var tmp = moment(sdate).add(index, 'days'); return tmp.format('YYYY-MM-DD'); } function show_during_times(t1,t2, cross_day){ if(cross_day > 0){ return getDuring_time_Str(t1)+"-"+getDuring_time_Str(t2)+"+"+cross_day+""; } return getDuring_time_Str(t1)+"-"+getDuring_time_Str(t2); } function getDuring_time_Str(t){ var sec=1/24/60/60; t_hour=parseInt((t+sec)*24*60/60) t_minute=Math.round((t+sec)*24*60%60) return getTimeStr(t_hour)+":"+getTimeStr(t_minute); } function getTimeStr(t){ if(t < 10){ return "0"+t; } else{ return t; } } function createTZTable(tzData, dayLabelFun, dayCount, sDate){ var weekend = tzData.weekend_total var tzData = tzData.data; var tz, i, dayi=0, curDay=-1, timei=0, temp=[]; var html='
'; for(i=0;i0;){ if(temp.length==0){ tz=tzData[i]; }else{ tz=temp[0]; temp=[]; } dayi= Math.floor(tz.start_time); while(curDay' curDay+=1; if(dayCount!=undefined) while(curDay' else html+='' curDay+=1; } html+='
'; else html+=''+dayLabelFun(curDay,sDate)+''; timei=0; } var dayi2=Math.floor(tz.end_time) var time1=Math.round((tz.start_time-Math.floor(tz.start_time))*10000); var time2=Math.round((tz.end_time-Math.floor(tz.end_time))*10000); if(dayi2>dayi){ var obj={} for (var f in tz) { obj[f]=tz[f]; } obj.start_time=dayi+1; temp=[obj]; time2=10000; } html+='
'+show_during_times(tz.start_time-Math.floor(tz.start_time),tz.end_time-Math.floor(tz.end_time), tz.cross_day)+'
' timei=time2; if(temp.length==0) i+=1; } html+='
'+dayLabelFun(curDay,sDate)+'
' return html } function show_shift_detail(data){ var shiftId = data.id; var shift_cycle = parseInt(data.shift_cycle); var shiftDetailsContainer = '#id_shift_detail_{{ model_name }}'; $.ajax({ url: "/att/showShiftDetail/", type: "GET", data: {shift: shiftId, show_type: 'shift'}, dataType: "json", success: function(returnData){ var unit = parseInt(returnData['shift'][3]); if (unit == 0){ //day var days = shift_cycle * 1; $(shiftDetailsContainer + " .layui-card-body").html(createTZTable(returnData, getDayLabel, days)); } else if (unit == 1){ //week var days = shift_cycle * 7; $(shiftDetailsContainer + " .layui-card-body").html(createTZTable(returnData, getWeekLabel, days)); } else{ //month var days = shift_cycle * 31; $(shiftDetailsContainer + " .layui-card-body").html(createTZTable(returnData, getDayLabel, days)); } }, error: function(XMLHttpRequest, textStatus, errorThrown) { alert(textStatus+errorThrown); } }); } } {% endblock %}