Iniit
This commit is contained in:
@@ -0,0 +1,258 @@
|
||||
var Bizgaze;
|
||||
(function (Bizgaze) {
|
||||
let Apps;
|
||||
(function (Apps) {
|
||||
let PM;
|
||||
(function (PM) {
|
||||
let Components;
|
||||
(function (Components) {
|
||||
class SessionLog extends Unibase.Platform.Core.BaseComponent {
|
||||
constructor() {
|
||||
super();
|
||||
this._taskManager = PM.Managers.TaskManager.Instance();
|
||||
}
|
||||
cssFiles() {
|
||||
return [''];
|
||||
}
|
||||
jsFiles() {
|
||||
return ['apps/pm/managers/taskmanager.js'];
|
||||
}
|
||||
html(id, containerid) {
|
||||
let html = `<form id="createMrp" method="post" data-validate="parsley">
|
||||
<input type="hidden" id="hfTaskSessionId" value="" />
|
||||
<header class="b-b bg-white modal-header">
|
||||
<strong class="text-dark titlename">Log Hours</strong>
|
||||
<div class="btn-group ml-auto"> <a class="btn btn-sm"><i class="ti-help-alt" title="help" href="" target="_blank"></i></a><div></header><div style="overflow-x:hidden;" class="scrollable">
|
||||
<div class="b-a wrapper">
|
||||
<div class="card">
|
||||
<ul id="ul_ShowLog_Details">
|
||||
<li class="list-group-item bg-cyan-light-5">
|
||||
<div class="row">
|
||||
<div class="col-sm-4"><h6>Start Time</h6></div>
|
||||
<div class="col-sm-4 mr-45"><h6>End Time</h6></div>
|
||||
<div class="col-sm-2 mr-10"><h6>Duration</h6></div>
|
||||
<div class="col-sm-1">
|
||||
<a href="javascript:;" class="pull-right manageloghour hidden" id="LinkButton" title="CreateLogHour" onclick="_bizgaze_pm_coummunicatios_sessionlog_widget.addLogHourRow(true)"><i class="fa fa-plus"></i></a></div></div>
|
||||
</li><li class="length-row" id="ulLogDetails"></li></ul></div></div></div>
|
||||
<footer class="bg-white modal-footer"><a href="javascript:;" id="btn_ShoLogClose" class="btn btn-light btn-sm mr-auto" onclick=" _navigationHelper.closeCreate()"> Close</a>
|
||||
</footer></form>`;
|
||||
return html;
|
||||
}
|
||||
load(id, containerid, callback) {
|
||||
var instance = this;
|
||||
$("#txt_LogHourEndDate").change(function () {
|
||||
instance.calculateDateDiff();
|
||||
});
|
||||
instance.checkPermission();
|
||||
}
|
||||
addLogHourRow(isedit) {
|
||||
var instance = this;
|
||||
var predivhtml = '<li class="list-group-item sessionlog-item hidden" id="li_AddLogHours">' +
|
||||
'<div class="row">' +
|
||||
'<div class="col-sm-4">' +
|
||||
'<div class="floating-label-form-group floating-label-form-group-with-value" id = "div_LogHourStartDate" >' +
|
||||
'<div class="input-group">' +
|
||||
'<input type="text" id="txt_LogHourStartDate" class="form-control value-control datepicker-input floating-label-control" data-isdynamic="false" placeholder="dd/mm/yyyy" data-placeholder="dd/mm/yyyy" data-label="dd/mm/yyyy" />' +
|
||||
'<span class="input-group-addon mt-10 bg-white no-border"><i class="fa fa-calendar" aria-hidden="true"></i></span>' +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'<div class="col-sm-4 mr-45">' +
|
||||
'<div class="floating-label-form-group floating-label-form-group-with-value" id = "div_LogHourEndDate">' +
|
||||
'<div class="input-group">' +
|
||||
'<input type="text" id="txt_LogHourEndDate" class="form-control value-control datepicker-input floating-label-control" data-isdynamic="false" placeholder="dd/mm/yyyy" data-placeholder="dd/mm/yyyy" data-label="dd/mm/yyyy" />' +
|
||||
'<span class="input-group-addon mt-10 bg-white no-border"><i class="fa fa-calendar" aria-hidden="true"></i></span>' +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'<div class="col-sm-2 mr-10 pl-6" style="padding-bottom:5px;padding-top:5px">' +
|
||||
'<span class="h6" id="LogHours"></span>' +
|
||||
'</div>' +
|
||||
'<div class="col-sm-1"><span class="pull-right mt-10" onclick="return _bizgaze_extensions_PM_task_timetracker.saveTaskSession(' + null + ', ' + null + ', ' + false + ',' + false + ', ' + false + ',' + true + ');"><i class="fa fa-check" aria-hidden="true"></i></span>' +
|
||||
'</div></div></li>';
|
||||
$(".divAddLogHours_0").parent().before(predivhtml);
|
||||
if (isedit)
|
||||
$("#li_AddLogHours").removeClass('hidden');
|
||||
$("#txt_LogHourEndDate,#txt_LogHourStartDate").change(function () {
|
||||
instance.calculateDateDiff();
|
||||
});
|
||||
$('.datepicker-input').daterangepicker({
|
||||
singleDatePicker: true,
|
||||
showDropdowns: true,
|
||||
minYear: 1901,
|
||||
locale: {
|
||||
format: 'DD/MM/YYYY HH:mm',
|
||||
},
|
||||
});
|
||||
instance.checkProjectDates();
|
||||
}
|
||||
checkProjectDates() {
|
||||
var instance = this;
|
||||
$('#txt_LogHourEndDate').val(moment(new Date($.now())).format("DD/MM/YYYY HH:mm"));
|
||||
$('#txt_LogHourStartDate').val(moment(new Date($.now())).format("DD/MM/YYYY HH:mm"));
|
||||
instance.calculateDateDiff();
|
||||
$('#txt_LogHourStartDate').daterangepicker({
|
||||
timePicker24Hour: true,
|
||||
timePicker: true,
|
||||
locale: {
|
||||
format: 'DD/MM/YYYY HH:mm',
|
||||
},
|
||||
singleDatePicker: true,
|
||||
showDropdowns: true,
|
||||
});
|
||||
$('#txt_LogHourEndDate').daterangepicker({
|
||||
timePicker24Hour: true,
|
||||
timePicker: true,
|
||||
locale: {
|
||||
format: 'DD/MM/YYYY HH:mm',
|
||||
},
|
||||
singleDatePicker: true,
|
||||
showDropdowns: true,
|
||||
});
|
||||
}
|
||||
calculateDateDiff() {
|
||||
var stdate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatServerDateTime($("#txt_LogHourStartDate").val());
|
||||
var endate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatServerDateTime($("#txt_LogHourEndDate").val());
|
||||
var diffDays = 0;
|
||||
var diffHrs = 0;
|
||||
var diffMins = 0;
|
||||
var diffSecs = 0;
|
||||
var today = new Date(stdate);
|
||||
var Christmas = new Date(endate);
|
||||
var diffMs = (Number(Christmas) - Number(today));
|
||||
if (diffMs != NaN) {
|
||||
diffDays = Math.floor(diffMs / 86400000);
|
||||
diffHrs = Math.floor((diffMs) / 3600000);
|
||||
diffMins = Math.round(((diffMs % 86400000) % 3600000) / 60000);
|
||||
diffSecs = Math.round((((diffMs % 86400000) % 3600000) / 60000) / 60000);
|
||||
}
|
||||
}
|
||||
checkPermission() {
|
||||
var instance = this;
|
||||
instance._taskManager.getLogHourPermission().then(function (response) {
|
||||
if (response.result == '5' || Unibase.Platform.Membership.Infos.Identity.getCurrentUser().isAdmin == true) {
|
||||
$(".manageloghour").removeClass('hidden');
|
||||
}
|
||||
else {
|
||||
$(".manageloghour").addClass('hidden');
|
||||
}
|
||||
}, function (response) {
|
||||
MessageHelper.Instance().showError(response, '');
|
||||
});
|
||||
}
|
||||
getProjectDetails(_projectId) {
|
||||
var instance = this;
|
||||
var projectendDate = '';
|
||||
let _dateTimeHelper = Unibase.Platform.Helpers.DateTimeHelper.Instance();
|
||||
if (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.length != 0) {
|
||||
_projectId = (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + Unibase.Themes.Providers.DetailHelper.installedAppId + "_projectid").Value);
|
||||
}
|
||||
instance._taskManager.getProjectDetails(Number(_projectId)).then(function (response) {
|
||||
if (response.result != null) {
|
||||
$(".date_startdate").val(_dateTimeHelper.formatLocalDate1(response.result.StartDate, ''));
|
||||
projectendDate = _dateTimeHelper.formatLocalDate1(response.result.EndDate, '');
|
||||
if (projectendDate == '01/01/1901') {
|
||||
$('.date_startdate').daterangepicker({
|
||||
timePicker24Hour: true,
|
||||
locale: {
|
||||
format: 'DD/MM/YYYY',
|
||||
},
|
||||
singleDatePicker: true,
|
||||
autoUpdateInput: true,
|
||||
minDate: _dateTimeHelper.formatLocalDate1(response.result.StartDate, ''),
|
||||
});
|
||||
$('.date_enddate').daterangepicker({
|
||||
timePicker24Hour: true,
|
||||
locale: {
|
||||
format: 'DD/MM/YYYY',
|
||||
},
|
||||
singleDatePicker: true,
|
||||
minDate: _dateTimeHelper.formatLocalDate1(response.result.StartDate, ''),
|
||||
});
|
||||
}
|
||||
else {
|
||||
$(".date_enddate").val(_dateTimeHelper.formatLocalDate1(response.result.EndDate, ''));
|
||||
}
|
||||
if (response.result.EndDate != null && projectendDate != '01/01/1901') {
|
||||
$('.date_startdate').daterangepicker({
|
||||
timePicker24Hour: true,
|
||||
locale: {
|
||||
format: 'DD/MM/YYYY',
|
||||
},
|
||||
singleDatePicker: true,
|
||||
autoUpdateInput: true,
|
||||
minDate: _dateTimeHelper.formatLocalDate1(response.result.StartDate, ''),
|
||||
maxDate: _dateTimeHelper.formatLocalDate1(response.result.EndDate, '')
|
||||
});
|
||||
$('.date_enddate').daterangepicker({
|
||||
timePicker24Hour: true,
|
||||
locale: {
|
||||
format: 'DD/MM/YYYY',
|
||||
},
|
||||
singleDatePicker: true,
|
||||
autoUpdateInput: true,
|
||||
minDate: _dateTimeHelper.formatLocalDate1(response.result.StartDate, ''),
|
||||
maxDate: _dateTimeHelper.formatLocalDate1(response.result.EndDate, ''),
|
||||
});
|
||||
}
|
||||
$('.date_startdate').on('apply.daterangepicker', function (ev, picker) {
|
||||
var date = $(this).val();
|
||||
if (projectendDate != "" && projectendDate == '01/01/1901') {
|
||||
$('.date_enddate').daterangepicker({
|
||||
timePicker24Hour: true,
|
||||
locale: {
|
||||
format: 'DD/MM/YYYY',
|
||||
},
|
||||
singleDatePicker: true,
|
||||
minDate: _dateTimeHelper.formatLocalDate1(date, ''),
|
||||
maxDate: projectendDate
|
||||
});
|
||||
}
|
||||
else {
|
||||
$('.date_enddate').daterangepicker({
|
||||
timePicker24Hour: true,
|
||||
locale: {
|
||||
format: 'DD/MM/YYYY',
|
||||
},
|
||||
singleDatePicker: true,
|
||||
minDate: _dateTimeHelper.formatLocalDate1(date, ''),
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
taskstagechange() {
|
||||
$('.date_completedate').val(moment(new Date($.now())).format("DD/MM/YYYY HH:mm"));
|
||||
$('.date_completedate').daterangepicker({
|
||||
timePicker24Hour: true,
|
||||
timePicker: true,
|
||||
locale: {
|
||||
format: 'DD/MM/YYYY HH:mm',
|
||||
},
|
||||
singleDatePicker: true,
|
||||
showDropdowns: true,
|
||||
});
|
||||
let completeddate = $(".date_completedate").val();
|
||||
completeddate = moment($(".date_completedate").val(), "DD/MM/YYYY HH:mm").format('YYYY/MM/DD HH:mm');
|
||||
$(".hfdate_completedate").val(completeddate.toString());
|
||||
setTimeout(function () {
|
||||
$('.date_completedate').on('apply.daterangepicker', function (ev, picker) {
|
||||
let completeddate = $(".date_completedate").val();
|
||||
completeddate = moment($(".date_completedate").val(), "DD/MM/YYYY HH:mm").format('YYYY/MM/DD HH:mm');
|
||||
$(".hfdate_completedate").val(completeddate.toString());
|
||||
});
|
||||
}, 2000);
|
||||
}
|
||||
static Instance() {
|
||||
if (this.instance == undefined) {
|
||||
this.instance = new SessionLog();
|
||||
}
|
||||
return this.instance;
|
||||
}
|
||||
}
|
||||
Components.SessionLog = SessionLog;
|
||||
})(Components = PM.Components || (PM.Components = {}));
|
||||
})(PM = Apps.PM || (Apps.PM = {}));
|
||||
})(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
|
||||
})(Bizgaze || (Bizgaze = {}));
|
||||
Executable
+1
File diff suppressed because one or more lines are too long
+18
File diff suppressed because one or more lines are too long
@@ -0,0 +1,187 @@
|
||||
var Bizgaze;
|
||||
(function (Bizgaze) {
|
||||
let Apps;
|
||||
(function (Apps) {
|
||||
let PM;
|
||||
(function (PM) {
|
||||
let Components;
|
||||
(function (Components) {
|
||||
class TaskProgress extends Unibase.Platform.Core.BaseComponent {
|
||||
cssFiles() {
|
||||
return [];
|
||||
}
|
||||
jsFiles() {
|
||||
return ['apps/pm/managers/taskmanager.js'];
|
||||
}
|
||||
html(id, containerid) {
|
||||
let html = `<div class="b-a wrapper"><div id="bizgaze_ErrorMessages" class="clear"></div><div class="card"><div class="card-header card-header-action"><span class="" id="hf-widget-title_Progessbar">Task Progress</span></div><div class="card-body"><div class="row"><div class='col-sm-2 pl-70'><strong class='text-right'/></div></div><div class="row"><div class="col-sm-12 pm_taskList"></div></div></div></div></div>`;
|
||||
$("." + containerid).html(html);
|
||||
return "";
|
||||
}
|
||||
init(containerid) {
|
||||
var instance = this;
|
||||
var id = 0;
|
||||
var InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
|
||||
for (let obj of Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters) {
|
||||
if (obj.Key === "hf_" + InstalledAppId + "_recordid") {
|
||||
id = Number(obj.Value);
|
||||
}
|
||||
}
|
||||
instance.load(id, containerid, null);
|
||||
}
|
||||
load(id, containerid, callback) {
|
||||
this.html(id, containerid);
|
||||
var taskid = Number(id);
|
||||
Bizgaze.Apps.PM.Components.TaskProgress.Instance().LoadProgressBar(taskid);
|
||||
}
|
||||
LoadProgressBar(taskid) {
|
||||
var instance = this;
|
||||
instance.fileCacheHelper.loadJsFile("apps/pm/managers/taskmanager.js", function () {
|
||||
Bizgaze.Apps.PM.Managers.TaskManager.Instance().getTasks(taskid).then(function (response) {
|
||||
var data = JSON.parse(response.result)[0];
|
||||
instance.refstatusId = data.refstatusid;
|
||||
instance.percent = data.percentage;
|
||||
var html = "";
|
||||
$(".pm_taskList").html('<ul class="list-group no-radius m-b-md list-group-sm no-border pm-task-list"></ul>');
|
||||
$(".pm-task-list").html('<li class="pm-task-item hidden"></li>');
|
||||
if (response.result != null) {
|
||||
html += '<li class="pm-task-list-item-' + data.taskid + '">' +
|
||||
'<div class="">' +
|
||||
'<div class="row showProgressBar_' + data.taskid + '">' +
|
||||
'<div class="col-11 m-t-xs pl-2 taskPercentage-' + data.taskid + '" data-taskPercentage="' + data.percentage + '">' +
|
||||
'<div class="taskProgress taskProgress-' + data.taskid + '" ><div class="progress-label" style="color:#ff0000;position:absolute;left:50%;top:4px;font-weight:bold;">0%</div></div>' +
|
||||
'</div>' +
|
||||
'<div class="col-1 m-t-xs pl-0">' +
|
||||
'<button type="button" id ="ProgressButton" onclick="javascript:Unibase.Apps.PM.Components.TaskProgress.Instance().toggleProgress(' + data.taskid + ')" class="btn btn-sm btn-info btn-block pull-right" style="width:50px;"><i class="fa fa-pencil"></i></button>' +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'<div class="row editProgressBar_' + data.taskid + ' hidden">' +
|
||||
'<div class="col-11 mt-5 pl-2 m-t-xs taskPercentage-' + data.taskid + '" data-taskPercentage="' + data.percentage + '">' +
|
||||
'<div class="pmTask_Slider pmTask_Slider-' + data.taskid + '"><div class="slider-label" style="color:#ff0000;position:absolute;left:50%;font-weight:bold;">0%</div><div id="custom-handle-' + data.taskid + '" style="width:2em;height:1.6em;top:50%;margin-top:-.8em;text-align:center;line-height:1.6em;" class="ui-slider-handle"></div><input class="hdnTaskId" type="hidden" data-taskId="' + data.taskid + '" /></div>' +
|
||||
'</div>' +
|
||||
'<div class="col-1 pl-0 m-t-xs">' +
|
||||
'<button type="button" id="ProgressButton" onclick="javascript:Unibase.Apps.PM.Components.TaskProgress.Instance().toggleProgress(' + data.taskid + ')" class="btn btn-info btn-sm btn-block pull-right" style="width:50px;"><i class="fa fa-times"></i></button>' +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'</li>';
|
||||
$(".pm-task-item:last").before(html);
|
||||
Bizgaze.Apps.PM.Components.TaskProgress.Instance().loadProgress(data.taskid);
|
||||
}
|
||||
$('.pmTask_Slider').each(function () {
|
||||
var element = $(this).find('.hdnTaskId');
|
||||
var taskId = $(element).data('taskid');
|
||||
var handle = $("#custom-handle-" + taskId + "");
|
||||
var count = 0;
|
||||
$(this).slider({
|
||||
min: 0,
|
||||
max: 100,
|
||||
step: 1,
|
||||
create: function () {
|
||||
handle.text($(this).slider("value"));
|
||||
},
|
||||
slide: function (event, ui) {
|
||||
handle.text(ui.value);
|
||||
},
|
||||
change: function (event, ui) {
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
loadProgress(TaskId) {
|
||||
var element = $('.pm_taskList');
|
||||
var ele = element.find(".taskPercentage-" + TaskId + "");
|
||||
var label = ele.find(".progress-label");
|
||||
this.percent = ele.data('taskpercentage');
|
||||
element.find(".taskProgress-" + TaskId + "").progressbar({
|
||||
value: this.percent,
|
||||
});
|
||||
if (this.percent > 50) {
|
||||
$(".progress-label").css({ 'color': 'white' });
|
||||
}
|
||||
label.text(this.percent + '%');
|
||||
var styles = {
|
||||
backgroundColor: "green",
|
||||
height: "50px"
|
||||
};
|
||||
$(".taskProgress-" + TaskId + "").find(".ui-progressbar-value").css(styles);
|
||||
element.find(".pmTask_Slider-" + TaskId + "").slider({
|
||||
min: 0,
|
||||
max: 100,
|
||||
step: 1,
|
||||
value: this.percent,
|
||||
range: "min",
|
||||
});
|
||||
var refstatusid = this.refstatusId;
|
||||
if (refstatusid == 3 || refstatusid == 6)
|
||||
$("#ProgressButton").prop("disabled", false);
|
||||
else
|
||||
$("#ProgressButton").prop("disabled", true);
|
||||
}
|
||||
toggleProgress(TaskId) {
|
||||
$('.showProgressBar_' + TaskId).toggleClass('hidden');
|
||||
$('.editProgressBar_' + TaskId).toggleClass('hidden');
|
||||
$('.inpTaskCompletedDate-' + TaskId).toggleClass('hidden');
|
||||
$('.spnTaskCompletedDate-' + TaskId).toggleClass('hidden');
|
||||
var element = $('.pm_taskList');
|
||||
var ele = element.find(".taskPercentage-" + TaskId + "");
|
||||
var label1 = ele.find(".slider-label");
|
||||
var percentage = this.percent;
|
||||
var sliderstyle = {
|
||||
backgroundColor: "green",
|
||||
cursor: "pointer"
|
||||
};
|
||||
$(".ui-state-default").css(sliderstyle);
|
||||
$(".ui-slider-range").css("background-color", "green");
|
||||
$(".ui-slider").css("height", "22px");
|
||||
if (percentage > 50) {
|
||||
$(".slider-label").css({ 'color': 'white' });
|
||||
}
|
||||
label1.text(percentage + '%');
|
||||
var ele1 = $('.pm_taskList').parent().parent();
|
||||
var element1 = ele1.find('.pmTask_Slider');
|
||||
element1.slider({
|
||||
min: 0,
|
||||
max: 100,
|
||||
step: 1,
|
||||
value: percentage,
|
||||
range: "min",
|
||||
create: function (event, ui) {
|
||||
var tooltip = $('<div class="tooltip" />');
|
||||
$(event.target).find('.ui-slider-handle').append(tooltip);
|
||||
},
|
||||
slide: function (event, ui) {
|
||||
$(ui.handle).find('.tooltip').text(ui.value);
|
||||
},
|
||||
change: function (event, ui) {
|
||||
var currentDate = new Date($.now());
|
||||
var postData = {
|
||||
taskid: TaskId,
|
||||
percentage: ui.value,
|
||||
timerstoppeddate: new Date(),
|
||||
timer: '',
|
||||
pausedate: new Date(),
|
||||
istaskpause: false,
|
||||
isresumetask: false,
|
||||
istaskstopped: false,
|
||||
};
|
||||
Bizgaze.Apps.PM.Managers.TaskManager.Instance().updateTaskPercentage(postData).then(function (response) {
|
||||
Bizgaze.Apps.PM.Components.TaskProgress.Instance().LoadProgressBar(TaskId);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
static Instance() {
|
||||
if (this.instance === undefined) {
|
||||
this.instance = new TaskProgress();
|
||||
}
|
||||
return this.instance;
|
||||
}
|
||||
}
|
||||
Components.TaskProgress = TaskProgress;
|
||||
})(Components = PM.Components || (PM.Components = {}));
|
||||
})(PM = Apps.PM || (Apps.PM = {}));
|
||||
})(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
|
||||
})(Bizgaze || (Bizgaze = {}));
|
||||
+1
File diff suppressed because one or more lines are too long
+1
File diff suppressed because one or more lines are too long
@@ -0,0 +1,95 @@
|
||||
var Bizgaze;
|
||||
(function (Bizgaze) {
|
||||
let Apps;
|
||||
(function (Apps) {
|
||||
let PM;
|
||||
(function (PM) {
|
||||
let Components;
|
||||
(function (Components) {
|
||||
class TaskReopened extends Unibase.Platform.Core.BaseComponent {
|
||||
constructor() {
|
||||
super();
|
||||
}
|
||||
cssFiles() {
|
||||
return [];
|
||||
}
|
||||
jsFiles() {
|
||||
return [''];
|
||||
}
|
||||
html(id, containerid) {
|
||||
return "";
|
||||
}
|
||||
init(containerid) {
|
||||
}
|
||||
load(id, containerid, callback) {
|
||||
}
|
||||
reopenedstage() {
|
||||
let detailContainer = $("._bizgaze_detail_container:visible");
|
||||
let refstatusId = (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.filter(function (o) {
|
||||
return o.Key === "hf_" + Unibase.Themes.Providers.DetailHelper.installedAppId + "_refstatusid";
|
||||
})[0].Value);
|
||||
let stageName = (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.filter(function (o) {
|
||||
return o.Key === "hf_" + Unibase.Themes.Providers.DetailHelper.installedAppId + "_stagename";
|
||||
})[0].Value);
|
||||
$(detailContainer).find('.DetailSetting_' + Unibase.Themes.Providers.DetailHelper.installedAppId + '_Reopen').addClass('hidden');
|
||||
if (stageName != 'Inprogress') {
|
||||
if (refstatusId == '4' || (refstatusId == '5')) {
|
||||
$(detailContainer).find('.DetailSetting_' + Unibase.Themes.Providers.DetailHelper.installedAppId + '_Reopen').removeClass('hidden');
|
||||
}
|
||||
}
|
||||
var instance = this;
|
||||
$(detailContainer).find('.DetailSetting_' + Unibase.Themes.Providers.DetailHelper.installedAppId + '_Reopen').click(function () {
|
||||
let uniqueid = 'Bizgaze_Extension_PM_Task_StageReason_Form';
|
||||
Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFiles(['platform/forms/managers/formmanager.js', 'platform/forms/components/formviewer/formviewer.js', 'platform/forms/requests/forms.js'], function () {
|
||||
Unibase.Platform.Forms.Managers.FormManager.Instance().getFormbyUniqueId(uniqueid).then(function (res) {
|
||||
var formid = res.result.FormId;
|
||||
var successobj = {
|
||||
CallBack: function () {
|
||||
var TaskId = (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.filter(function (o) {
|
||||
return o.Key === "hf_" + Unibase.Themes.Providers.DetailHelper.installedAppId + "_taskid";
|
||||
})[0].Value);
|
||||
instance.updateIsrepoened(TaskId);
|
||||
},
|
||||
Parameters: null,
|
||||
};
|
||||
var formviewerObj = {
|
||||
FormId: formid,
|
||||
AppConfigurationId: 0,
|
||||
Pk_Value: 0,
|
||||
PortletWidgetId: 0,
|
||||
OnSuccess: successobj,
|
||||
OnFail: null,
|
||||
OnLoad: null,
|
||||
};
|
||||
Unibase.Platform.Forms.Components.FormViewer.Instance().init(formviewerObj);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
updateIsrepoened(TaskId) {
|
||||
var instance = this;
|
||||
var jsfiles = ['apps/pm/components/taskreopened.js', 'apps/pm/managers/taskmanager.js'];
|
||||
instance.fileCacheHelper.loadJsFiles(jsfiles, function (response) {
|
||||
Bizgaze.Apps.PM.Managers.TaskManager.Instance().updateIsReopened(TaskId).then(function (response) {
|
||||
MessageHelper.Instance().showSuccess(response.message, '');
|
||||
var detailobj = Unibase.Themes.Compact.Components.Details.Instance();
|
||||
detailobj._recordId = Unibase.Themes.Providers.DetailHelper.recordId;
|
||||
detailobj._installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
|
||||
detailobj._containerId = $("._bizgaze_detail_container:visible").attr("id");
|
||||
var idetailObj = detailobj;
|
||||
detailobj.loadPortlets(idetailObj);
|
||||
instance.reopenedstage();
|
||||
});
|
||||
});
|
||||
}
|
||||
static Instance() {
|
||||
if (this._instance === undefined)
|
||||
this._instance = new TaskReopened();
|
||||
return this._instance;
|
||||
}
|
||||
}
|
||||
Components.TaskReopened = TaskReopened;
|
||||
})(Components = PM.Components || (PM.Components = {}));
|
||||
})(PM = Apps.PM || (Apps.PM = {}));
|
||||
})(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
|
||||
})(Bizgaze || (Bizgaze = {}));
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"taskreopened.js","sourceRoot":"","sources":["taskreopened.ts"],"names":[],"mappings":"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"}
|
||||
@@ -0,0 +1,48 @@
|
||||
var Bizgaze;
|
||||
(function (Bizgaze) {
|
||||
let Apps;
|
||||
(function (Apps) {
|
||||
let PM;
|
||||
(function (PM) {
|
||||
let Components;
|
||||
(function (Components) {
|
||||
class TaskStartdate extends Unibase.Platform.Core.BaseComponent {
|
||||
constructor() {
|
||||
super();
|
||||
}
|
||||
cssFiles() {
|
||||
return [];
|
||||
}
|
||||
jsFiles() {
|
||||
return [''];
|
||||
}
|
||||
html(id, containerid) {
|
||||
return "";
|
||||
}
|
||||
init(containerid) {
|
||||
}
|
||||
load(id, containerid, callback) {
|
||||
}
|
||||
milestoneStartdate(mileStoneid) {
|
||||
var instance = this;
|
||||
var jsfiles = ['apps/pm/managers/taskmanager.js'];
|
||||
instance.fileCacheHelper.loadJsFiles(jsfiles, function (response) {
|
||||
Bizgaze.Apps.PM.Managers.TaskManager.Instance().getMilestonedetails(mileStoneid).then(function (response) {
|
||||
var data = response.result[0];
|
||||
let startdate = data.startdate;
|
||||
startdate = moment(startdate, "YYYY/MM/DD HH:mm").format("DD/MM/YYYY HH:mm");
|
||||
$(".date_startdate").val(startdate);
|
||||
});
|
||||
});
|
||||
}
|
||||
static Instance() {
|
||||
if (this._instance === undefined)
|
||||
this._instance = new TaskStartdate();
|
||||
return this._instance;
|
||||
}
|
||||
}
|
||||
Components.TaskStartdate = TaskStartdate;
|
||||
})(Components = PM.Components || (PM.Components = {}));
|
||||
})(PM = Apps.PM || (Apps.PM = {}));
|
||||
})(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
|
||||
})(Bizgaze || (Bizgaze = {}));
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"taskstartdate.js","sourceRoot":"","sources":["taskstartdate.ts"],"names":[],"mappings":"AAAA,IAAU,OAAO,CA8ChB;AA9CD,WAAU,OAAO;IACb,IAAiB,IAAI,CA4CpB;IA5CD,WAAiB,IAAI;QACjB,IAAiB,EAAE,CA0ClB;QA1CD,WAAiB,EAAE;YACf,IAAiB,UAAU,CAwC1B;YAxCD,WAAiB,UAAU;gBACvB,MAAa,aAAc,SAAQ,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa;oBAClE;wBACI,KAAK,EAAE,CAAC;oBACZ,CAAC;oBACD,QAAQ;wBACJ,OAAO,EAAE,CAAC;oBACd,CAAC;oBACD,OAAO;wBACH,OAAO,CAAC,EAAE,CAAC,CAAC;oBAChB,CAAC;oBACD,IAAI,CAAC,EAAO,EAAE,WAAmB;wBAC7B,OAAO,EAAE,CAAC;oBACd,CAAC;oBACD,IAAI,CAAC,WAAW;oBAEhB,CAAC;oBACD,IAAI,CAAC,EAAO,EAAE,WAAmB,EAAE,QAAkB;oBAErD,CAAC;oBACD,kBAAkB,CAAC,WAAW;wBAC3B,IAAI,QAAQ,GAAG,IAAI,CAAC;wBACpB,IAAI,OAAO,GAAG,CAAC,iCAAiC,CAAC,CAAC;wBACjD,QAAQ,CAAC,eAAe,CAAC,WAAW,CAAC,OAAO,EAAE,UAAU,QAAQ;4BAC5D,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,QAAa;gCACzG,IAAI,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gCAC9B,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;gCAC9B,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;gCAC7E,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;4BACxC,CAAC,CAAC,CAAC;wBACR,CAAC,CAAC,CAAC;oBAEL,CAAC;oBAEF,MAAM,CAAC,QAAQ;wBACX,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;4BAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,aAAa,EAAE,CAAC;wBACzC,OAAO,IAAI,CAAC,SAAS,CAAC;oBAC1B,CAAC;iBACJ;gBAtCY,wBAAa,gBAsCzB,CAAA;YACL,CAAC,EAxCgB,UAAU,GAAV,aAAU,KAAV,aAAU,QAwC1B;QACL,CAAC,EA1CgB,EAAE,GAAF,OAAE,KAAF,OAAE,QA0ClB;IACL,CAAC,EA5CgB,IAAI,GAAJ,YAAI,KAAJ,YAAI,QA4CpB;AACL,CAAC,EA9CS,OAAO,KAAP,OAAO,QA8ChB"}
|
||||
@@ -0,0 +1,399 @@
|
||||
var Bizgaze;
|
||||
(function (Bizgaze) {
|
||||
let Apps;
|
||||
(function (Apps) {
|
||||
let PM;
|
||||
(function (PM) {
|
||||
let Components;
|
||||
(function (Components) {
|
||||
class TaskSummary extends Unibase.Platform.Core.BaseComponent {
|
||||
constructor() {
|
||||
super(...arguments);
|
||||
this.serverFormat = "YYYY/MM/DD";
|
||||
}
|
||||
cssFiles() {
|
||||
return [];
|
||||
}
|
||||
jsFiles() {
|
||||
return ['apps/pm/managers/taskmanager.js'];
|
||||
}
|
||||
html(id, containerid) {
|
||||
let html = `<div id="divTaskSummary">
|
||||
|
||||
</div>
|
||||
<form id="frm_TaskSummaryProjectFilter" method="post" data-validate="parsley" class="hidden">
|
||||
<header class="b-b bg-white modal-header">
|
||||
<strong class="text-dark titlename">Project</strong>
|
||||
<div class="btn-group ml-auto"> <a class="btn btn-sm"><i class="ti-help-alt" title="help" href="" target="_blank"></i></a></div>
|
||||
</header>
|
||||
<div style="overflow-x:hidden;" class="scrollable">
|
||||
<div id="bizgaze_CreateProjectErrorMessages" class="clear"></div>
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="row" style="overflow-x:hidden;">
|
||||
<div class="row col-sm-12">
|
||||
<div class="col-sm-12">
|
||||
<div class="floating-label-form-group floating-label-form-group-with-value" style="border-bottom:0;">
|
||||
<label for="txtTaskSummary_ProjectId">Project<span class="text-danger"> *</span></label>
|
||||
<select id="txtTaskSummary_ProjectId" style="width:100%" placeholder="Select Project*" class="txtTaskSummary_ProjectId form-control floating-label-control" data-placeholder="Select Project" data-label="Project*" />
|
||||
<input id="hfTaskSummaryAutoCompleteId_ProjectId" class="hfTaskSummaryAutoComplete_ProjectId" type="hidden">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<footer class="bg-white modal-footer" style="position:absolute; bottom:0px;width:100%;">
|
||||
<a href="javascript:;" id="btn_TaskSummaryProjectClose" class="btn btn-light btn-sm mr-auto "> Close</a>
|
||||
<a href="javascript:;" id="btn_TaskSummaryProjectApply" class="btn btn-primary btn-sm">Apply</a>
|
||||
</footer>
|
||||
</form>`;
|
||||
return html;
|
||||
}
|
||||
load(id, containerid, callback) {
|
||||
var instance = this;
|
||||
Bizgaze.Apps.PM.Components.TaskSummary.Instance().defaultData();
|
||||
Bizgaze.Apps.PM.Components.TaskSummary.Instance().loadProjects();
|
||||
Bizgaze.Apps.PM.Components.TaskSummary.Instance().SummaryGetWidgetData();
|
||||
$("#tasksummaryExport").click(function () {
|
||||
instance.exportData();
|
||||
});
|
||||
$("#tasksummaryprojectfilter").click(function () {
|
||||
var theHtml = $("#frm_TaskSummaryProjectFilter").html();
|
||||
Unibase.Platform.Helpers.NavigationHelper.Instance().popupHtml(theHtml, Unibase.Platform.Helpers.Size.Medium, function () {
|
||||
$(document).on('click', '#btn_TaskSummaryProjectClose', function () {
|
||||
var panel = $("#_bizgaze_modal").prev('.modal')[0].getAttribute('id');
|
||||
$('#' + panel).modal('hide');
|
||||
$('#' + panel).remove();
|
||||
});
|
||||
var oldvalue = Number($("#txtTaskSummary_ProjectId").val());
|
||||
$('#txtTaskSummary_ProjectId option[value=' + oldvalue + ']').removeAttr("selected");
|
||||
$(document).on('change', '#txtTaskSummary_ProjectId', function () {
|
||||
$("#txtTaskSummary_ProjectId").val(Number($(this).val()));
|
||||
$('#txtTaskSummary_ProjectId option[value=' + $(this).val() + ']').attr("selected", 'true');
|
||||
$(document).on('click', '#btn_TaskSummaryProjectApply', function () {
|
||||
Unibase.Platform.Helpers.NavigationHelper.Instance().closePopUp();
|
||||
Bizgaze.Apps.PM.Components.TaskSummary.Instance().SummaryGetWidgetData();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
$('#TaskSummaryList_search').on('input', function () {
|
||||
Bizgaze.Apps.PM.Components.TaskSummary.Instance().SummaryGetWidgetData();
|
||||
});
|
||||
}
|
||||
init(containerid) {
|
||||
var instance = this;
|
||||
instance.fileCacheHelper.loadJsFiles(["apps/pm/components/tasksummary.js"], function () {
|
||||
instance.navigationHelper.loadSection(0, containerid, Bizgaze.Apps.PM.Components.TaskSummary.Instance(), null, null);
|
||||
});
|
||||
}
|
||||
defaultData() {
|
||||
var html = '<div id="tasksummary_lists" class="card shadow-hover">' +
|
||||
'<div class="card-header card-header-action">' +
|
||||
'<span id="hf_widget_title" class="ml-10">Employee Task Summary</span></a>' +
|
||||
'<div class="d-flex align-items-center card-action-wrap">' +
|
||||
'<span class="pull-right badge badge-light badge-pill badge-outline mr-10 span_TaskSummaryListsearch_count">0</span>' +
|
||||
'<a id="tasksummaryExport" class="mr-15" href="javascript:void(0);"><i class="fa fa-download" aria-hidden="true"></i></a>' +
|
||||
'<a id="tasksummaryprojectfilter" class="" href="javascript:void(0);"><i class="ti-filter"></i></a>' +
|
||||
'<div class="d-flex" id="div_List_addnew">' +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'<div class="card-body pa-0">' +
|
||||
'<div class="Dynamic-ListSearch"><div class="col-sm-12 mb-10"><div class="floating-label-form-group" id="div_Listsearch">' +
|
||||
'<input type="text" maxlength="50" class="form-control floating-label-control" id="TaskSummaryList_search" value="" data-isdynamic="false" ' +
|
||||
'placeholder="Search" data-placeholder="Search" data-label="Search"><span id="TaskSummaryclearSearch" class="hidden" ' +
|
||||
'style="right: 20px; cursor: pointer; float: right; margin-top: -35px; position: absolute; color: rgb(50, 65, 72);">x</span></div></div></div>' +
|
||||
'<div class="font-14 d-none d-md-block card-header bg-cyan-light-5 listwidget_headertext" id="listwidget_headertext">' +
|
||||
'<div class="row"><div class="col-10"><div class="row"><div class="col-sm-4"><strong>Employee Name</strong></div><div class="col-sm-2"><strong>Upcoming Tasks</strong></div>' +
|
||||
'<div class="col-sm-2" ><strong> Inpro.Tasks</strong></div><div class="col-sm-2"><strong>Testing Inpro.Tasks</strong></div><div class="col-sm-2"><strong>Closed Tasks</strong></div></div></div>' +
|
||||
'<div class="col-sm-2"><strong>Reopened Tasks</strong></div></div > ' +
|
||||
'</div>' +
|
||||
'<div>' +
|
||||
'<ul class="list-group list-group-flush tasksummary_lists font-14" id="tasksummary_lists_container">' +
|
||||
'<li><div class="text-center"><i class="fa fa-spinner fa-spin font-20 mt-40"></i></div></li>' +
|
||||
'</ul>' +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'<div id="pagination-footer">' +
|
||||
'<div class="card-footer text-muted Div_pagination mb-12">' +
|
||||
'<div class="col-12 row">' +
|
||||
'<div class="col-sm-2 pl-0">' +
|
||||
'<span style="font-weight:bold" id="GrandTotaltext" class="text-dark">Grand Total</span>' +
|
||||
'</div>' +
|
||||
'<div class="col-sm-2">' +
|
||||
'<span style="font-weight:bold" id="UpcomingTaskstext" class="text-dark"></span>' +
|
||||
'</div>' +
|
||||
'<div class="col-sm-2 text-right">' +
|
||||
'<span style="font-weight:bold" id="InproTaskstext" class="text-dark"></span>' +
|
||||
'</div>' +
|
||||
'<div class="col-sm-2 text-right">' +
|
||||
'<span style="font-weight:bold" id="TestingInproTaskstext" class="text-dark"></span>' +
|
||||
'</div>' +
|
||||
'<div class="col-sm-2 text-right">' +
|
||||
'<span style="font-weight:bold" id="ClosedTaskstext" class="text-dark"></span>' +
|
||||
'</div>' +
|
||||
'<div class="col-sm-2 text-right">' +
|
||||
'<span style="font-weight:bold" id="ReopenedTaskstext" class="text-dark"></span>' +
|
||||
'<input type="hidden" id="hfportletwidgetid" />' +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'</div>';
|
||||
$("#divTaskSummary").html(html);
|
||||
}
|
||||
loadProjects() {
|
||||
Bizgaze.Apps.PM.Managers.TaskManager.Instance().getProjects().then(function (response) {
|
||||
var selectedProject = new Option("All", "0");
|
||||
$("#txtTaskSummary_ProjectId").append(selectedProject);
|
||||
if (response.result != "") {
|
||||
var data = response.result;
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
var selectedProject = new Option(data[i].ProjectName, data[i].ProjectId);
|
||||
$("#txtTaskSummary_ProjectId").append(selectedProject);
|
||||
}
|
||||
$("#hfTaskSummaryAutoCompleteId_ProjectId").val(Number($("#txtTaskSummary_ProjectId").val()));
|
||||
$("#txtTaskSummary_ProjectId").val($("#txtTaskSummary_ProjectId option:eq(1)").val());
|
||||
$('#txtTaskSummary_ProjectId option:eq(1)').attr('selected', 'selected');
|
||||
Bizgaze.Apps.PM.Components.TaskSummary.Instance().SummaryGetWidgetData();
|
||||
}
|
||||
});
|
||||
}
|
||||
SummaryGetWidgetData() {
|
||||
var instance = this;
|
||||
let FromDate;
|
||||
let ToDate;
|
||||
FromDate = $('.CommonFilter_FromDate').val();
|
||||
ToDate = $('.CommonFilter_ToDate').val();
|
||||
if (FromDate == undefined && ToDate == undefined) {
|
||||
let fdate = [moment().subtract(29, 'days'), moment()][0];
|
||||
let tdate = [moment().subtract(29, 'days'), moment()][1];
|
||||
FromDate = fdate.format(instance.serverFormat);
|
||||
ToDate = tdate.format(instance.serverFormat);
|
||||
}
|
||||
let reportObj = {
|
||||
FromDate: FromDate,
|
||||
ToDate: ToDate,
|
||||
WidgetId: Number($("#txtTaskSummary_ProjectId").val()),
|
||||
Title: $("#TaskSummaryList_search").val()
|
||||
};
|
||||
Bizgaze.Apps.PM.Managers.TaskManager.Instance().getTaskSummaryData(reportObj).then(function (response) {
|
||||
var newData = JSON.parse(JSON.stringify(response));
|
||||
var upcomingcount = 0;
|
||||
var inprocount = 0;
|
||||
var testingcount = 0;
|
||||
var closedcount = 0;
|
||||
var reopenedcount = 0;
|
||||
var html = '';
|
||||
if (newData != "") {
|
||||
var result = JSON.parse(newData);
|
||||
$('#div_TeamMembers_Details_NoData').remove();
|
||||
$("#pagination-footer").removeClass("hidden");
|
||||
$(".span_TaskSummaryListsearch_count").text(result.length + ' Resources');
|
||||
for (let i = 0; i < result.length; i++) {
|
||||
var data = result[i];
|
||||
upcomingcount += data.upcomingtaskcount;
|
||||
inprocount += data.inprotaskcount;
|
||||
testingcount += data.testinprotaskcount;
|
||||
closedcount += data.closedtaskcount;
|
||||
reopenedcount += data.reopenedtaskcount;
|
||||
html += '<li class="list-group-item employee-item added-employee-item employee-task-duration"><input type="hidden">' +
|
||||
'<div class="row"><div class="col-10"><div class="row"><div class="col-sm-4"><span>' +
|
||||
'<a style="text-decoration:underline;" class="font-bold" href="#"><span>' + data.employeename + '</span></a></span><span>(' + data.projectname + ')</span></div>' +
|
||||
'<div class="col-sm-2"><span class="upcoming">' + data.upcomingtasks + '</span><span style="background-color:#00ffcc" class="upcomingcount btn-xs ml-5 pl-10 pr-10">' + data.upcomingtaskcount + '</span></div>' +
|
||||
'<div class="col-sm-2"><span class="inprogress">' + data.inprotasks + '</span>' +
|
||||
'<span style="background-color:#f5b48c" class="inprogresscount btn-xs ml-5 pl-10 pr-10">' + data.inprotaskcount + '</span></div>' +
|
||||
'<div class="col-sm-2"><span class="testinprogress">' + data.testinprotasks + '</span><span style="background-color:skyblue" class="testinprogresscount btn-xs ml-5 pl-10 pr-10">' + data.testinprotaskcount + '</span></div>' +
|
||||
'<div class="col-sm-2"><span class="closed">' + data.closedprotasks + '</span><span style="background-color:#f5b48c" class="closedtaskcount btn-xs ml-5 pl-10 pr-10">' + data.closedtaskcount + '</span></div>' +
|
||||
'</div></div>' +
|
||||
'<div class="col-sm-2"><span class="reopened">' + data.reopenedtasks + '</span>' +
|
||||
'<span style="background-color:#c4a6a1;color:black" class="reopenedcount btn-xs ml-5 pl-10 pr-10">' + data.reopenedtaskcount + '</span></div></div></li>';
|
||||
}
|
||||
$("#tasksummary_lists_container").html(html);
|
||||
Bizgaze.Apps.PM.Components.TaskSummary.Instance().calculateGrandTotal('upcoming', upcomingcount);
|
||||
Bizgaze.Apps.PM.Components.TaskSummary.Instance().calculateGrandTotal('inprogress', inprocount);
|
||||
Bizgaze.Apps.PM.Components.TaskSummary.Instance().calculateGrandTotal('testinprogress', testingcount);
|
||||
Bizgaze.Apps.PM.Components.TaskSummary.Instance().calculateGrandTotal('closed', closedcount);
|
||||
Bizgaze.Apps.PM.Components.TaskSummary.Instance().calculateGrandTotal('reopened', reopenedcount);
|
||||
}
|
||||
else {
|
||||
$(".employee-task-duration").remove();
|
||||
$('#div_TeamMembers_Details_NoData').remove();
|
||||
$("#pagination-footer").addClass("hidden");
|
||||
$('#listwidget_headertext').after('<div class="alert alert-info ma-0" id="div_TeamMembers_Details_NoData">There is no Data</div>');
|
||||
}
|
||||
});
|
||||
}
|
||||
calculateGrandTotal(cls, count) {
|
||||
var totalh = 0;
|
||||
var totalm = 0;
|
||||
$('.' + cls).each(function () {
|
||||
if (($(this).text())) {
|
||||
var val = $(this).text();
|
||||
if (val.indexOf(":") >= 0) {
|
||||
val.replace('h', '');
|
||||
val.replace('m', '');
|
||||
var h = parseInt((val).split(':')[0]);
|
||||
var m = parseInt((val).split(':')[1]);
|
||||
totalh += h;
|
||||
totalm += m;
|
||||
}
|
||||
else if ($(this).text().indexOf("h") >= 0) {
|
||||
val.replace('h', '');
|
||||
var h = parseInt(val);
|
||||
totalh += h;
|
||||
}
|
||||
else if (val.indexOf("m") >= 0) {
|
||||
val.replace('m', '');
|
||||
var m = parseInt(val);
|
||||
totalm += m;
|
||||
}
|
||||
}
|
||||
});
|
||||
totalh += Math.floor(totalm / 60);
|
||||
totalm = totalm % 60;
|
||||
if (cls == "upcoming")
|
||||
$('#UpcomingTaskstext').text((totalh < 10 ? '0' : '') + totalh.toString() + 'h:' + (totalm < 10 ? '0' : '') + totalm.toString() + 'm' + '(' + count + ')' + '');
|
||||
else if (cls == "inprogress")
|
||||
$('#InproTaskstext').text((totalh < 10 ? '0' : '') + totalh.toString() + 'h:' + (totalm < 10 ? '0' : '') + totalm.toString() + 'm' + '(' + count + ')' + '');
|
||||
else if (cls == "testinprogress")
|
||||
$('#TestingInproTaskstext').text((totalh < 10 ? '0' : '') + totalh.toString() + 'h:' + (totalm < 10 ? '0' : '') + totalm.toString() + 'm' + '(' + count + ')' + '');
|
||||
else if (cls == "closed")
|
||||
$('#ClosedTaskstext').text((totalh < 10 ? '0' : '') + totalh.toString() + 'h:' + (totalm < 10 ? '0' : '') + totalm.toString() + 'm' + '(' + count + ')' + '');
|
||||
else if (cls == "reopened")
|
||||
$('#ReopenedTaskstext').text((totalh < 10 ? '0' : '') + totalh.toString() + 'h:' + (totalm < 10 ? '0' : '') + totalm.toString() + 'm' + '(' + count + ')' + '');
|
||||
}
|
||||
exportData() {
|
||||
var instance = this;
|
||||
let FromDate;
|
||||
let ToDate;
|
||||
FromDate = $('.CommonFilter_FromDate').val();
|
||||
ToDate = $('.CommonFilter_ToDate').val();
|
||||
if (FromDate == undefined && ToDate == undefined) {
|
||||
let fdate = [moment().subtract(29, 'days'), moment()][0];
|
||||
let tdate = [moment().subtract(29, 'days'), moment()][1];
|
||||
FromDate = fdate.format(instance.serverFormat);
|
||||
ToDate = tdate.format(instance.serverFormat);
|
||||
}
|
||||
var postData = {
|
||||
FromDate: FromDate,
|
||||
ToDate: ToDate,
|
||||
WidgetId: Number($("#txtTaskSummary_ProjectId").val())
|
||||
};
|
||||
Bizgaze.Apps.PM.Managers.TaskManager.Instance().getTaskSummaryData(postData).then(function (response) {
|
||||
var newData = JSON.parse(JSON.stringify(response));
|
||||
var rows = new Array();
|
||||
var upcomingtaskcount = 0;
|
||||
var inprotaskcount = 0;
|
||||
var testinginprotaskcount = 0;
|
||||
var closedcount = 0;
|
||||
var reopenedtaskcount = 0;
|
||||
if (newData != "") {
|
||||
var result = JSON.parse(newData);
|
||||
for (var i = 0; i < result.length; i++) {
|
||||
var data = result[i];
|
||||
var cell = new Array();
|
||||
cell.push(data.employeename);
|
||||
cell.push(data.upcomingtasks);
|
||||
cell.push(data.upcomingtaskcount);
|
||||
cell.push(data.inprotasks);
|
||||
cell.push(data.inprotaskcount);
|
||||
cell.push(data.testinprotasks);
|
||||
cell.push(data.testinprotaskcount);
|
||||
cell.push(data.closedprotasks);
|
||||
cell.push(data.closedtaskcount);
|
||||
cell.push(data.reopenedtasks);
|
||||
cell.push(data.reopenedtaskcount);
|
||||
rows.push({ Id: i, cell: cell });
|
||||
upcomingtaskcount += data.upcomingtaskcount;
|
||||
inprotaskcount += data.inprotaskcount;
|
||||
testinginprotaskcount += data.testinprotaskcount;
|
||||
closedcount += parseInt(data.closedtaskcount);
|
||||
reopenedtaskcount += parseInt(data.reopenedtaskcount);
|
||||
}
|
||||
var totalcell = new Array();
|
||||
var upcomingtasks = $("#UpcomingTaskstext").text().replace(/ *\([^)]*\) */g, "");
|
||||
var inprotasks = $("#InproTaskstext").text().replace(/ *\([^)]*\) */g, "");
|
||||
var testinginprotasks = $("#TestingInproTaskstext").text().replace(/ *\([^)]*\) */g, "");
|
||||
var closedtasks = $("#ClosedTaskstext").text().replace(/ *\([^)]*\) */g, "");
|
||||
var reopenedtasks = $("#ReopenedTaskstext").text().replace(/ *\([^)]*\) */g, "");
|
||||
totalcell.push("GrandTotal");
|
||||
totalcell.push(upcomingtasks);
|
||||
totalcell.push(upcomingtaskcount);
|
||||
totalcell.push(inprotasks);
|
||||
totalcell.push(inprotaskcount);
|
||||
totalcell.push(testinginprotasks);
|
||||
totalcell.push(testinginprotaskcount);
|
||||
totalcell.push(closedtasks);
|
||||
totalcell.push(closedcount);
|
||||
totalcell.push(reopenedtasks);
|
||||
totalcell.push(reopenedtaskcount);
|
||||
rows.push({ Id: i + 1, cell: totalcell });
|
||||
var columns = [
|
||||
{ ColumnName: "EmployeeName" },
|
||||
{ ColumnName: "UpcomingTasks" },
|
||||
{ ColumnName: "UpcomingTaskCount" },
|
||||
{ ColumnName: "InprogressTasks" },
|
||||
{ ColumnName: "InprogressTaskcount" },
|
||||
{ ColumnName: "TestingInProgress" },
|
||||
{ ColumnName: "TestingInProgressCount" },
|
||||
{ ColumnName: "ClosedTasks" },
|
||||
{ ColumnName: "ClosedTasksCount" },
|
||||
{ ColumnName: "ReopenedTasks" },
|
||||
{ ColumnName: "ReopenedTaskCount" }
|
||||
];
|
||||
result.columns = columns;
|
||||
result.rows = rows;
|
||||
Bizgaze.Apps.PM.Components.TaskSummary.Instance().exportToExcel(result, "export");
|
||||
}
|
||||
});
|
||||
}
|
||||
exportToExcel(pagedList, filename) {
|
||||
var finalVal = "data:text/csv;charset=utf-8,";
|
||||
for (var i = 0; i < pagedList.columns.length; i++) {
|
||||
var cvalue = pagedList.columns[i];
|
||||
var innerValue = cvalue === null ? '' : cvalue.ColumnName.toString();
|
||||
var result = innerValue.replace(/"/g, '""');
|
||||
if (result.search(/("|,|\n)/g) >= 0)
|
||||
result = '"' + result + '"';
|
||||
if (i > 0)
|
||||
finalVal += ',';
|
||||
finalVal += result;
|
||||
}
|
||||
finalVal += '\n';
|
||||
for (var i = 0; i < pagedList.rows.length; i++) {
|
||||
var value = pagedList.rows[i].cell;
|
||||
for (var j = 0; j < value.length; j++) {
|
||||
var innerValue = value[j] === null ? '' : value[j].toString();
|
||||
var result = innerValue.replace(/"/g, '""');
|
||||
if (result.search(/("|,|\n)/g) >= 0)
|
||||
result = '"' + result + '"';
|
||||
if (j > 0)
|
||||
finalVal += ',';
|
||||
finalVal += result;
|
||||
}
|
||||
finalVal += '\n';
|
||||
}
|
||||
var encodedUri = encodeURI(finalVal);
|
||||
var link = document.createElement("a");
|
||||
document.body.appendChild(link);
|
||||
link.setAttribute("href", encodedUri);
|
||||
link.setAttribute("download", "my_data.csv");
|
||||
link.click();
|
||||
}
|
||||
static Instance() {
|
||||
if (this.instance === undefined) {
|
||||
this.instance = new TaskSummary();
|
||||
}
|
||||
return this.instance;
|
||||
}
|
||||
}
|
||||
Components.TaskSummary = TaskSummary;
|
||||
})(Components = PM.Components || (PM.Components = {}));
|
||||
})(PM = Apps.PM || (Apps.PM = {}));
|
||||
})(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
|
||||
})(Bizgaze || (Bizgaze = {}));
|
||||
+1
File diff suppressed because one or more lines are too long
+31
File diff suppressed because one or more lines are too long
@@ -0,0 +1,605 @@
|
||||
var seconds = 0;
|
||||
var Clock = {
|
||||
totalSeconds: 0,
|
||||
interval: 0,
|
||||
start: function () {
|
||||
if (Clock.interval !== undefined) {
|
||||
var self = this;
|
||||
function pad(val) { return val > 9 ? val : "0" + val; }
|
||||
if (Clock.interval !== undefined) {
|
||||
Clock.interval = setInterval(function () {
|
||||
self.totalSeconds += 1;
|
||||
if ($("#startButton").is(":visible") != true) {
|
||||
if (document.getElementsByClassName("startButton Active").length > 0) {
|
||||
$('#startButton').removeClass('startButton Active');
|
||||
self.totalSeconds = 0;
|
||||
$("#hours").text(pad(Math.floor(self.totalSeconds / 3600)));
|
||||
$("#min").text(pad(Math.floor(self.totalSeconds / 60 % 60)));
|
||||
$("#sec").text(pad(self.totalSeconds % 60));
|
||||
var date = new Date($.now());
|
||||
date = new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().formatServerDateTime(date));
|
||||
Unibase.Apps.PM.Components.TimeTracker.Instance().saveTaskSession(date, null, false, false, false, false);
|
||||
}
|
||||
else {
|
||||
if (document.getElementsByClassName("resumeButton Active").length > 0) {
|
||||
$('#startButton').removeClass('resumeButton Active');
|
||||
var a = Number(Number($(".beforeTimer").text().split(':')[0]) * 60 * 60) + (Number($(".beforeTimer").text().split(':')[1]) * 60) + (Number($(".beforeTimer").text().split(':')[2]));
|
||||
if (a < Number(self.totalSeconds - 2)) {
|
||||
self.totalSeconds = a;
|
||||
}
|
||||
}
|
||||
$("#hours").text(pad(Math.floor(self.totalSeconds / 3600)));
|
||||
$("#min").text(pad(Math.floor(self.totalSeconds / 60 % 60)));
|
||||
$("#sec").text(pad(self.totalSeconds % 60));
|
||||
}
|
||||
}
|
||||
}, 1000);
|
||||
}
|
||||
}
|
||||
},
|
||||
reset: function () {
|
||||
Clock.totalSeconds = null;
|
||||
clearInterval(Clock.interval);
|
||||
$("#hours").text("00");
|
||||
$("#min").text("00");
|
||||
$("#sec").text("00");
|
||||
delete Clock.interval;
|
||||
},
|
||||
pause: function () {
|
||||
clearInterval(Clock.interval);
|
||||
delete Clock.interval;
|
||||
},
|
||||
resume: function () {
|
||||
Clock.start();
|
||||
},
|
||||
stop: function () {
|
||||
var value = this;
|
||||
Clock.reset();
|
||||
},
|
||||
restart: function () {
|
||||
Clock.reset();
|
||||
Clock.start();
|
||||
},
|
||||
};
|
||||
var Unibase;
|
||||
(function (Unibase) {
|
||||
let Apps;
|
||||
(function (Apps) {
|
||||
let PM;
|
||||
(function (PM) {
|
||||
let Components;
|
||||
(function (Components) {
|
||||
class TimeTracker extends Unibase.Platform.Core.BaseComponent {
|
||||
constructor() {
|
||||
super();
|
||||
}
|
||||
cssFiles() {
|
||||
return [""];
|
||||
}
|
||||
jsFiles() {
|
||||
return ['platform/pm/managers/taskmanager.js', 'platform/pm/components/sessionlog.js', 'platform/pm/infos/task.js', 'platform/pm/infos/sessionlog.js', 'platform/pm/requests/task.js', 'platform/pm/requests/sessionlog.js'];
|
||||
}
|
||||
init(containerId) {
|
||||
var instance = this;
|
||||
instance.html(id, containerId);
|
||||
$('#startButton').attr('readonly', 'true');
|
||||
document.addEventListener("click", function (event) {
|
||||
if ($(this)[0].activeElement.className == "d-flex h-60p align-items-center nav-link active" || $(this)[0].activeElement.className == "btn detail-close mr-auto btn-light btn-sm" || $(this)[0].activeElement.className == "d-flex h-60p align-items-center nav-link") {
|
||||
if ($("#pauseButton").is(":visible") == true && $("#stopButton").is(":visible") == true) {
|
||||
var date = new Date($.now());
|
||||
date = new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().formatServerDateTime(date));
|
||||
instance.ResumeTask(date);
|
||||
}
|
||||
}
|
||||
}, true);
|
||||
var id = "";
|
||||
var InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
|
||||
instance.InstalledAppId = InstalledAppId;
|
||||
for (let obj of Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters) {
|
||||
if (obj.Key === "hf_" + InstalledAppId + "_recordid") {
|
||||
id = obj.Value;
|
||||
}
|
||||
}
|
||||
var jsfiles = ['apps/pm/managers/taskmanager.js', 'apps/pm/components/sessionlog.js', 'apps/pm/infos/task.js', 'apps/pm/infos/sessionlog.js', 'apps/pm/requests/task.js', 'apps/pm/requests/sessionlog.js'];
|
||||
instance.fileCacheHelper.loadJsFiles(jsfiles, function () {
|
||||
var Id = Unibase.Themes.Providers.Detail_Settings.Instance().RecordId;
|
||||
Bizgaze.Apps.PM.Managers.TaskManager.Instance().getTaskDetails(Id).then(function (response) {
|
||||
var data = JSON.parse(response.result)[0];
|
||||
instance.TaskId = data.taskid;
|
||||
instance.Points = data.points;
|
||||
instance.RefStatusId = data.refstatusid;
|
||||
if (data.istaskpause == true) {
|
||||
var seconds = Number(data.timer.split(":")[0]) * 60 * 60 + Number(data.timer.split(":")[1]) * 60 + data.timer.split(":")[2];
|
||||
Clock.totalSeconds = Number(seconds);
|
||||
var timehours = data.timer.split(":")[0];
|
||||
var timemins = data.timer.split(":")[1];
|
||||
var timeseconds = data.timer.split(":")[2];
|
||||
if (timehours == undefined)
|
||||
timehours = "00:";
|
||||
if (timemins == undefined)
|
||||
timehours = "00:";
|
||||
if (timeseconds == undefined)
|
||||
timehours = "00";
|
||||
$('#stopButton').removeClass('hidden');
|
||||
$('#resumeButton').removeClass('hidden');
|
||||
if (instance.RefStatusId == 6) {
|
||||
$('.divTimerResume').removeClass('hidden');
|
||||
$(".starticon").css("color", "");
|
||||
}
|
||||
else if (instance.RefStatusId == 7) {
|
||||
$("#ProgressButton").prop("disabled", "disabled");
|
||||
}
|
||||
}
|
||||
else if (data.istaskpause == false && data.timerstoppeddate.toString() != "[object Object]") {
|
||||
$('#stopButton').addClass('hidden');
|
||||
$('#resumeButton').addClass('hidden');
|
||||
$("#pauseButton").addClass('hidden');
|
||||
}
|
||||
else if (data.istaskpause == false && data.timerstoppeddate.toString() == "[object Object]") {
|
||||
if (data.timer != "00:00:00" && data.timer.toString() != "[object Object]") {
|
||||
var timehours = data.timer.split(":")[0];
|
||||
var timemins = data.timer.split(":")[1];
|
||||
var timeseconds = data.timer.split(":")[2];
|
||||
if (timehours == undefined)
|
||||
timehours = "00:";
|
||||
if (timemins == undefined)
|
||||
timehours = "00:";
|
||||
if (timeseconds == undefined)
|
||||
timehours = "00";
|
||||
$('#pauseButton').removeClass('hidden');
|
||||
$("#ProgressButton").prop("disabled", false);
|
||||
}
|
||||
}
|
||||
instance.load(id, containerId, null);
|
||||
});
|
||||
});
|
||||
}
|
||||
html(id, containerid) {
|
||||
let html = `<div class="b-a wrapper"><div class="card"><div id="divTimeTrackerError"></div>
|
||||
<div class="card-header card-header-action"><span class="" id="hf-widget-title_TimeTracker">Time Tracker</span></div>
|
||||
<div class="card-body"><div class="row"><div class="col-sm-4 ml-20" style="width:85mm; height:40mm; border:1px solid; background-color: #00acf0; border-radius: 15px; color:white; font-size:15px; font-style:normal;">
|
||||
<div class="row pt-25"><strong class="pull-left pl-25 pt-0" style="font-size:large">TIMER</strong></div>
|
||||
<div class="row">
|
||||
<strong class="pull-left beforeTimer pl-25 pr-15" id="Timer" style="font-size:35px;"><span id="hours">00</span>:<span id="min">00</span>:<span id="sec">00</span></strong>
|
||||
<a id="startButton" class="divTimerStart btn btn-md"> <i class="fa fa-play-circle fa-2x starticon"
|
||||
aria-hidden="true"></i></a>
|
||||
<a id="pauseButton" class="divTimerPause hidden btn btn-md"> <i class="fa fa-pause-circle-o fa-2x"
|
||||
aria-hidden="true"></i></a>
|
||||
<div id="resumeButton" class="divTimerResume hidden btn btn-md"> <i class="fa fa-play-circle starticon fa-2x"
|
||||
aria-hidden="true"></i></div>
|
||||
<div id="stopButton" class="divTimerStop hidden btn btn-md"> <i class="fa fa-stop-circle-o fa-2x" aria-hidden="true"></i></div></div>
|
||||
<div class="col-xs-5 div_addItems"><a id="btn_additem" title="Show Log" class="default" href="" data-toggle="modal"
|
||||
data-target="#modalAddItem" data-original-title="Show Log">
|
||||
<span class="pull-right btn pl-200 pt-2" style="text-decoration:underline;color:white;font-size:large;" onclick="Unibase.Apps.PM.Components.TimeTracker.Instance().showLogDetails();" id="btn_addLog">Log Hours</span></a>
|
||||
</div></div>
|
||||
<div class="col-sm-4 ml-20 mt-20 mt-md-0" style="background-color:#7fd5f7;border-radius: 15px;width:85mm; height:40mm;">
|
||||
<div class="row d-flex mt-20 ml-20">
|
||||
<span><i class="fa fa-trophy fa-2x" aria-hidden="true" style="color:white"></i></span></div>
|
||||
<div class="row ml-20"><strong class="pr-15 text-white" style="font-size:40px;" id="txtPoints">
|
||||
<span>15 pts</span></strong></div></div></div></div></div></div>`;
|
||||
$("." + containerid).html(html);
|
||||
return "";
|
||||
}
|
||||
load(id, containerid, callback) {
|
||||
var instance = this;
|
||||
var Id = Unibase.Themes.Providers.Detail_Settings.Instance().RecordId;
|
||||
$("#txtPoints").text(instance.Points + ' pts');
|
||||
$('#startButton').click(function () {
|
||||
Bizgaze.Apps.PM.Managers.TaskManager.Instance().getTaskByAssignToAndRefStatus().then(function (response) {
|
||||
if (response.result.toString() != "[]") {
|
||||
var taskmessage = '';
|
||||
if (response.result.length == 1)
|
||||
taskmessage = '' + response.result[0].code + '-' + response.result[0].subject + ' is already Inprogress. Would you like to continue';
|
||||
else
|
||||
taskmessage = '' + response.result.length + ' Tasks are inprogress. Would you like to continue';
|
||||
bootbox.confirm({
|
||||
message: taskmessage,
|
||||
buttons: {
|
||||
confirm: {
|
||||
label: 'Continue',
|
||||
className: 'btn-success'
|
||||
},
|
||||
cancel: {
|
||||
label: 'Cancel',
|
||||
className: 'btn-danger'
|
||||
}
|
||||
},
|
||||
callback: function (result) {
|
||||
if (result == true) {
|
||||
$(".divTimerPause").removeClass('hidden');
|
||||
$(".divTimerStop").removeClass('hidden');
|
||||
$(".divTimerStart").addClass('hidden');
|
||||
$("#ProgressButton").prop("disabled", false);
|
||||
$('#startButton').addClass('startButton Active');
|
||||
Clock.interval = 0;
|
||||
Clock.totalSeconds = 0;
|
||||
var maxId = setTimeout(function () { }, 0);
|
||||
for (var i = 0; i < maxId; i += 1) {
|
||||
clearTimeout(i);
|
||||
}
|
||||
Clock.start();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
else {
|
||||
$(".divTimerPause").removeClass('hidden');
|
||||
$(".divTimerStop").removeClass('hidden');
|
||||
$(".divTimerStart").addClass('hidden');
|
||||
$("#ProgressButton").prop("disabled", false);
|
||||
$('#startButton').addClass('startButton Active');
|
||||
Clock.interval = 0;
|
||||
Clock.totalSeconds = 0;
|
||||
var maxId = setTimeout(function () { }, 0);
|
||||
for (var i = 0; i < maxId; i += 1) {
|
||||
clearTimeout(i);
|
||||
}
|
||||
Clock.start();
|
||||
}
|
||||
});
|
||||
});
|
||||
$('#pauseButton').click(function () {
|
||||
$(".divTimerPause").addClass('hidden');
|
||||
$(".divTimerResume").removeClass('hidden');
|
||||
$(".divTimerStop").removeClass('hidden');
|
||||
var date = new Date($.now());
|
||||
date = new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().formatServerDateTime(date));
|
||||
instance.pauseTask(date);
|
||||
Clock.pause();
|
||||
});
|
||||
$('#resumeButton').click(function () {
|
||||
$(".divTimerPause").removeClass('hidden');
|
||||
$(".divTimerStop").removeClass('hidden');
|
||||
$(".divTimerResume").addClass('hidden');
|
||||
seconds = Clock.totalSeconds;
|
||||
var date = new Date($.now());
|
||||
var a = document.getElementsByClassName("resume");
|
||||
if (a != undefined) {
|
||||
Clock.interval = 0;
|
||||
}
|
||||
$('#resumeButton').addClass('resumeButton Active');
|
||||
Clock.resume();
|
||||
date = new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().formatServerDateTime(date));
|
||||
instance.saveTaskSession(date, null, false, false, false, false);
|
||||
});
|
||||
$('#stopButton').click(function () {
|
||||
$(".divTimerPause").addClass('hidden');
|
||||
$(".divTimerResume").addClass('hidden');
|
||||
$(".divTimerStop").addClass('hidden');
|
||||
$(".divTimerStart").addClass('hidden');
|
||||
Clock.pause();
|
||||
var date = new Date($.now());
|
||||
date = new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().formatServerDateTime(date));
|
||||
instance.saveTaskSession(date, date, false, false, true, false);
|
||||
});
|
||||
$('#resetButton').click(function () {
|
||||
Clock.reset();
|
||||
});
|
||||
$('#restartButton').click(function () {
|
||||
Clock.restart();
|
||||
});
|
||||
var instance = this;
|
||||
window.onbeforeunload = function (event) {
|
||||
if ($("#pauseButton").is(":visible") == true && $("#stopButton").is(":visible") == true) {
|
||||
var date = new Date($.now());
|
||||
date = new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().formatServerDateTime(date));
|
||||
instance.ResumeTask(date);
|
||||
}
|
||||
else {
|
||||
if ($("#startButton").is(":visible") != true)
|
||||
instance.updateTimer();
|
||||
}
|
||||
};
|
||||
window.addEventListener("beforeunload", function (e) {
|
||||
var confirmationMessage = "\o/";
|
||||
(e || window.event).returnValue = confirmationMessage;
|
||||
if ($("#pauseButton").is(":visible") == true && $("#stopButton").is(":visible") == true) {
|
||||
var date = new Date($.now());
|
||||
date = new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().formatServerDateTime(date));
|
||||
instance.ResumeTask(date);
|
||||
instance.navigationHelper.closePopUp();
|
||||
}
|
||||
else {
|
||||
if ($("#startButton").is(":visible") != true)
|
||||
instance.updateTimer();
|
||||
}
|
||||
return confirmationMessage;
|
||||
});
|
||||
instance.getTimer(Id);
|
||||
if (instance.RefStatusId == 3 || instance.RefStatusId == 6) {
|
||||
$("#startButton").children.bind('click');
|
||||
$("#resumeButton").children.bind('click');
|
||||
}
|
||||
else {
|
||||
$("#startButton").children().bind('click', function () { return false; });
|
||||
$("#resumeButton").children().bind('click', function () { return false; });
|
||||
$(".starticon").css("color", "#8edde6");
|
||||
$(".divTimerStop").addClass('hidden');
|
||||
$("#ProgressButton").prop("disabled", "disabled");
|
||||
}
|
||||
if (instance.RefStatusId == 3)
|
||||
instance.updateTimer();
|
||||
}
|
||||
saveTaskSession(startdate, enddate, istimerupdate, ispause, isstop, isloghour) {
|
||||
var instance = this;
|
||||
var ismanual = false;
|
||||
var timer = "";
|
||||
var pause = false;
|
||||
var stop = false;
|
||||
var sessionid = 0;
|
||||
if (istimerupdate || isstop == true)
|
||||
timer = $(".beforeTimer").text();
|
||||
if (ispause)
|
||||
pause = true;
|
||||
if (isstop)
|
||||
stop = true;
|
||||
startdate = new Date(startdate);
|
||||
if (($("#hfTaskSessionId").val() != "" && $("#hfTaskSessionId").val() != undefined) || isloghour) {
|
||||
startdate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatServerDateTime($("#txt_LogHourStartDate").val());
|
||||
enddate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatServerDateTime($("#txt_LogHourEndDate").val());
|
||||
ismanual = true;
|
||||
sessionid = $("#hfTaskSessionId").val();
|
||||
}
|
||||
var postData = {
|
||||
taskid: instance.TaskId,
|
||||
sessionid: sessionid,
|
||||
startdate: startdate,
|
||||
enddate: enddate,
|
||||
timer: timer,
|
||||
issessionpause: pause,
|
||||
issessionstop: stop,
|
||||
ismanual: ismanual,
|
||||
installedappid: instance.InstalledAppId,
|
||||
stagestatusid: instance.RefStatusId,
|
||||
percentage: 0,
|
||||
};
|
||||
Bizgaze.Apps.PM.Managers.TaskManager.Instance().saveSessionLog(postData).then(function (response) {
|
||||
MessageHelper.Instance().showSuccess(response, '');
|
||||
if (isloghour)
|
||||
instance.refreshLog();
|
||||
}, function (response) {
|
||||
});
|
||||
}
|
||||
updateSessionEnd(enddate) {
|
||||
var instance = this;
|
||||
var postData = {
|
||||
taskid: instance.TaskId,
|
||||
enddate: enddate,
|
||||
timer: $(".beforeTimer").text(),
|
||||
percentage: 100,
|
||||
sessionid: 0,
|
||||
startdate: new Date(),
|
||||
issessionpause: false,
|
||||
issessionstop: false,
|
||||
ismanual: false,
|
||||
installedappid: 0,
|
||||
stagestatusid: 0,
|
||||
};
|
||||
Bizgaze.Apps.PM.Managers.TaskManager.Instance().updateSessionLogEndDate(postData).then(function (response) {
|
||||
MessageHelper.Instance().showSuccess(response, '');
|
||||
}, function (response) {
|
||||
MessageHelper.Instance().showError(response, 'divTimeTrackerError');
|
||||
});
|
||||
}
|
||||
pauseTask(enddate) {
|
||||
var instance = this;
|
||||
var postData = {
|
||||
taskid: instance.TaskId,
|
||||
pausedate: enddate,
|
||||
timer: $(".beforeTimer").text(),
|
||||
istaskpause: true,
|
||||
percentage: 0,
|
||||
timerstoppeddate: new Date(),
|
||||
isresumetask: false,
|
||||
istaskstopped: false
|
||||
};
|
||||
Bizgaze.Apps.PM.Managers.TaskManager.Instance().pauseTask(postData).then(function (response) {
|
||||
instance.saveTaskSession(null, enddate, false, true, false, false);
|
||||
}, function (response) {
|
||||
instance.saveTaskSession(null, enddate, false, true, false, false);
|
||||
MessageHelper.Instance().showError(response, 'divTimeTrackerError');
|
||||
});
|
||||
}
|
||||
ResumeTask(enddate) {
|
||||
var instance = this;
|
||||
var postData = {
|
||||
taskid: instance.TaskId,
|
||||
pausedate: enddate,
|
||||
isresumetask: true,
|
||||
timer: $(".beforeTimer").text(),
|
||||
istaskpause: false,
|
||||
percentage: 0,
|
||||
timerstoppeddate: new Date(),
|
||||
istaskstopped: false,
|
||||
};
|
||||
Bizgaze.Apps.PM.Managers.TaskManager.Instance().resumeTask(postData).then(function (response) {
|
||||
}, function (response) {
|
||||
MessageHelper.Instance().showError(response, 'divTimeTrackerError');
|
||||
});
|
||||
}
|
||||
StopTask(enddate) {
|
||||
var instance = this;
|
||||
var postData = {
|
||||
taskid: instance.TaskId,
|
||||
timerstoppeddate: enddate,
|
||||
istaskstopped: true,
|
||||
timer: $(".beforeTimer").text(),
|
||||
istaskpause: false,
|
||||
percentage: 0,
|
||||
pausedate: enddate,
|
||||
isresumetask: false,
|
||||
};
|
||||
Bizgaze.Apps.PM.Managers.TaskManager.Instance().stopTask(postData).then(function (response) {
|
||||
MessageHelper.Instance().showSuccess(response, '');
|
||||
}, function (response) {
|
||||
MessageHelper.Instance().showError(response, 'divTimeTrackerError');
|
||||
});
|
||||
}
|
||||
getTimer(taskId) {
|
||||
var instance = this;
|
||||
Bizgaze.Apps.PM.Managers.TaskManager.Instance().getTimerDetails(taskId).then(function (response) {
|
||||
if (response.result != "") {
|
||||
if (response != null) {
|
||||
var result = response.result.split('_');
|
||||
var data = result[0];
|
||||
data = data.replace(/['"]+/g, '');
|
||||
if (result.length > 1) {
|
||||
if (data == "False") {
|
||||
var maxId = setTimeout(function () { }, 0);
|
||||
for (var i = 0; i < maxId; i += 1) {
|
||||
clearTimeout(i);
|
||||
}
|
||||
Clock.totalSeconds = Number(result[1]);
|
||||
Clock.interval = 0;
|
||||
Clock.start();
|
||||
$(".divTimerPause").removeClass('hidden');
|
||||
$(".divTimerStop").removeClass('hidden');
|
||||
$(".divTimerStart").addClass('hidden');
|
||||
}
|
||||
else if (data == "NotStarted") {
|
||||
$(".divTimerStart").removeClass('hidden');
|
||||
$(".divTimerPause").addClass('hidden');
|
||||
$(".divTimerStop").addClass('hidden');
|
||||
}
|
||||
else {
|
||||
var value = result[1];
|
||||
value = value.replace(/['"]+/g, '');
|
||||
function pad(val) { return val > 9 ? val : "0" + val; }
|
||||
$("#hours").text(pad(Math.floor(Number(value) / 3600)));
|
||||
$("#min").text(pad(Math.floor(Number(value) / 60 % 60)));
|
||||
$("#sec").text(pad(parseInt(value) % 60));
|
||||
Clock.pause();
|
||||
$(".divTimerStart").addClass('hidden');
|
||||
$("#ProgressButton").addClass("hidden");
|
||||
}
|
||||
}
|
||||
else {
|
||||
$(".divTimerStart").removeClass('hidden');
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
updateTimer() {
|
||||
var instance = this;
|
||||
var date = new Date($.now());
|
||||
date = new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().formatServerDateTime(date));
|
||||
var postData = {
|
||||
taskid: instance.TaskId,
|
||||
timerstoppeddate: null,
|
||||
timer: $(".beforeTimer").text(),
|
||||
istaskpause: false,
|
||||
percentage: 0,
|
||||
pausedate: new Date(),
|
||||
isresumetask: false,
|
||||
istaskstopped: false,
|
||||
};
|
||||
Bizgaze.Apps.PM.Managers.TaskManager.Instance().updateTimer(postData).then(function (response) {
|
||||
}, function (response) {
|
||||
MessageHelper.Instance().showError(response, 'divTimeTrackerError');
|
||||
});
|
||||
}
|
||||
showLogDetails() {
|
||||
var instance = this;
|
||||
instance.navigationHelper.popup(0, "", Bizgaze.Apps.PM.Components.SessionLog.Instance(), function () {
|
||||
instance.refreshLog();
|
||||
instance.managePermission();
|
||||
}, Unibase.Platform.Helpers.Size.DockLeft);
|
||||
}
|
||||
getTaskSession(id) {
|
||||
var instance = this;
|
||||
Bizgaze.Apps.PM.Managers.TaskManager.Instance().getSessionLog(id).then(function (response) {
|
||||
$('#ul_ShowLog_Details').find('.li-' + id).remove();
|
||||
$("#hfTaskSessionId").val(id);
|
||||
Bizgaze.Apps.PM.Components.SessionLog.Instance().addLogHourRow(true);
|
||||
$("#txt_LogHourStartDate").val(Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateTimeWithoutSeconds(response.result.startdate));
|
||||
$("#txt_LogHourEndDate").val(Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateTimeWithoutSeconds(response.result.enddate));
|
||||
Bizgaze.Apps.PM.Components.SessionLog.Instance().calculateDateDiff();
|
||||
}, function (response) {
|
||||
MessageHelper.Instance().showError(response, 'divTimeTrackerError');
|
||||
});
|
||||
}
|
||||
removeSession(id) {
|
||||
var instance = this;
|
||||
Bizgaze.Apps.PM.Managers.TaskManager.Instance().deleteSession(id).then(function (response) {
|
||||
MessageHelper.Instance().showSuccess(response, '');
|
||||
instance.refreshLog();
|
||||
}, function (response) {
|
||||
MessageHelper.Instance().showError(response, 'divTimeTrackerError');
|
||||
});
|
||||
}
|
||||
refreshLog() {
|
||||
var instance = this;
|
||||
var taskId = instance.TaskId;
|
||||
Bizgaze.Apps.PM.Managers.TaskManager.Instance().getSessionLogDetails(taskId).then(function (response) {
|
||||
if (response.result.length == 0) {
|
||||
$('#ul_ShowLog_Details').after('<div class="alert alert-info ma-0" id="div_ShowLog_Details_NoData">There is no Data</div>');
|
||||
}
|
||||
$("#ulLogDetails").html('<li class="sessionlog-item hidden"><div class="row mt-10 divAddLogHours_0 hidden"></div></li>');
|
||||
for (var i = 0; i < response.result.length; i++) {
|
||||
var data = response.result[i];
|
||||
var da = moment(data.enddate).format('DD-MM-YYYY hh:mm:ss a');
|
||||
var ismanual = '';
|
||||
if (data.ismanual)
|
||||
ismanual = ' M';
|
||||
var html = '';
|
||||
if (data.ismanual) {
|
||||
html = '<li class="list-group-item sessionlog-item bg-info li-' + data.sessionid + '" >' +
|
||||
'<div class="row mt-10 divAddLogHours_' + i + ' hidden"></div>' +
|
||||
'<div class="row mt-10">' +
|
||||
'<div class="col-sm-4 pl-15"><span class="h6" style="color:white;">' + Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateTimeWithoutSeconds(data.startdate) + '</span></div>' +
|
||||
'<div class="col-sm-4 pl-20 mr-45"><span class="h6" style="color:white;">' + Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateTimeWithoutSeconds(data.enddate) + '</span></div>' +
|
||||
'<div class="col-sm-2 pl-10"><span class="h6" style="color:white;">' + data.timer + '</span></div>' +
|
||||
'<div class="col-sm-1 pr-5"><span class="editloghour hidden" onclick="return Unibase.Platform.PM.Components.TimeTracker.Instance().getTaskSession(' + data.sessionid + ');" style="color:white;">' +
|
||||
'<i class="fa fa-pencil-square-o" aria-hidden="true"></i></span>' +
|
||||
'<a class="btn-icon pull-right deleteloghour hidden" href="javascript:;" onclick="Unibase.Platform.PM.Components.TimeTracker.Instance().removeSession(' + data.sessionid + ');"><i class="fa fa-trash-o text-white"></i></a></div>' +
|
||||
'</div></li>';
|
||||
}
|
||||
else {
|
||||
html = '<li class="list-group-item sessionlog-item li-' + data.sessionid + '">' +
|
||||
'<div class="row mt-10 divAddLogHours_' + i + ' hidden"></div>' +
|
||||
'<div class="row mt-10">' +
|
||||
'<div class="col-sm-4 pl-15"><span class="h6">' + Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateTimeWithoutSeconds(data.startdate) + '</span></div>' +
|
||||
'<div class="col-sm-4 pl-20 mr-45"><span class="h6">' + Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateTimeWithoutSeconds(data.enddate) + '</span></div>' +
|
||||
'<div class="col-sm-2 pl-10"><span class="h6">' + data.timer + '</span></div>' +
|
||||
'<div class="col-sm-1 pr-5"><span class="editloghour hidden" onclick="return Unibase.Platform.PM.Components.TimeTracker.Instance().getTaskSession(' + data.sessionid + ');">' +
|
||||
'<i class="fa fa-pencil-square-o" aria-hidden="true"></i></span>' +
|
||||
'<a class="btn-icon pull-right deleteloghour hidden" href="javascript:;" onclick="Unibase.Platform.PM.Components.TimeTracker.Instance().removeSession(' + data.sessionid + ');"><i class="fa fa-trash-o text-danger"></i></a></div>' +
|
||||
'</div></li>';
|
||||
}
|
||||
$(".sessionlog-item:last").after(html);
|
||||
}
|
||||
Bizgaze.Apps.PM.Components.SessionLog.Instance().addLogHourRow(false);
|
||||
Bizgaze.Apps.PM.Components.SessionLog.Instance().calculateDateDiff();
|
||||
}, function (response) {
|
||||
MessageHelper.Instance().showError(response, 'divTimeTrackerError');
|
||||
});
|
||||
}
|
||||
managePermission() {
|
||||
var instance = this;
|
||||
Bizgaze.Apps.PM.Managers.TaskManager.Instance().getLogHourPermission().then(function (response) {
|
||||
if (response.result == '5' || Unibase.Platform.Membership.Infos.Identity.getCurrentUser().isAdmin == true) {
|
||||
$(".editloghour").removeClass('hidden');
|
||||
$(".deleteloghour").removeClass('hidden');
|
||||
}
|
||||
else {
|
||||
$(".editloghour").addClass('hidden');
|
||||
$(".deleteloghour").addClass('hidden');
|
||||
}
|
||||
instance.managePermission();
|
||||
}, function (response) {
|
||||
MessageHelper.Instance().showError(response, 'divTimeTrackerError');
|
||||
});
|
||||
}
|
||||
static Instance() {
|
||||
if (this.instance == undefined) {
|
||||
this.instance = new TimeTracker();
|
||||
}
|
||||
return this.instance;
|
||||
}
|
||||
}
|
||||
Components.TimeTracker = TimeTracker;
|
||||
})(Components = PM.Components || (PM.Components = {}));
|
||||
})(PM = Apps.PM || (Apps.PM = {}));
|
||||
})(Apps = Unibase.Apps || (Unibase.Apps = {}));
|
||||
})(Unibase || (Unibase = {}));
|
||||
+1
File diff suppressed because one or more lines are too long
+22
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user