You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

180 lines
5.9 KiB

2 years ago
var toolsModal = $('#modal-tools > .modal-dialog > .modal-content');
function resetFormAssignTools() {
$('#select-tools').val(null).trigger("change");
$('#select-tools').find('option').remove();
$('#select-tools').val("");
// $("#form-assign-tools").hide();
$('#form-assign-tools').trigger("reset");
$('#btn-assign-tools').html('Assign');
$('#btn-assign-tools').prop("disabled",false);
};
$(document).ready(function () {
var tableTools = $("#table-tools").DataTable({
"processing": true,
"serverSide": true,
"ajax": {
"url": `${base_url}assign-tools/datatables`,
"data": function ( d ) {
d.idact = activityId;
}
},
"columns": [
{data: 'tools_name', name: 'tools_name'},
{data: 'qty_planning', name: 'qty_planning'},
{data: 'uom', name: 'uom'},
{
data: 'action',
name: 'action',
orderable: true,
searchable: true
},
]
});
function deleteToolsAssign(id)
{
$.ajax({
url: `${base_url}assign-tools/delete/${id}`,
type:"DELETE",
success: function (data) {
actionHappen = true;
gantt.alert("Delete Tools Assign Success!");
tableTools.draw();
},
error: function (data) {
gantt.alert("Delete Tools Assign Failed, try again later!");
}
});
}
$("#modal-tools").on("click", "#show-form-tools", function(){
$(this).hide();
$("#hide-form-tools").show();
$("#form-assign-tools").show();
});
$("#modal-tools").on("click", "#hide-form-tools", function(){
$(this).hide();
resetFormAssignTools()
$("#show-form-tools").show();
});
$('#modal-tools').on('show.bs.modal', function (event) {
$('#modal-tools-title').html("Tools Resource " + activityName);
$('#modal-tools-sub-title').html(`<p style="font-size: 12px; color: #747474">Plan Date: ${moment(activityEarlyStart).format('DD MMMM YYYY')} - ${moment(activityEarlyFinish).format('DD MMMM YYYY')}</p>`);
2 years ago
tableTools.draw();
});
$('#modal-tools').on('hide.bs.modal', function (event) {
$("#hide-form-tools").hide();
$("#show-form-tools").show();
if(actionHappen){
updateActivity(activityId);
}
resetFormAssignTools();
});
$('#select-tools').select2({
dropdownParent: toolsModal,
placeholder: 'Pilih tools resource',
allowClear:true,
ajax: {
url: `${base_url}tools-resource/select`,
dataType: 'json',
data: function (params) {
var query = {
search: params.term,
type: 'public',
idact:activityId
}
return query;
},
processResults: function (result) {
return {
results: $.map(result, function (item) {
return {
text: item.name,
id: item.id
}
})
};
},
cache: false
}
});
// click submit to add
$("#form-assign-tools").on('submit', function (e) {
e.preventDefault();
$('#btn-assign-tools').html('Assign...');
$('#btn-assign-tools').prop("disabled",true);
let tools_id = $("#select-tools").val();
let qty_planning = $("#select-tools-qty").val();
if(!tools_id || tools_id < 0){
gantt.alert("Please choose tools to assign!");
$('#btn-assign-tools').html('Assign');
$('#btn-assign-tools').prop("disabled",false);
return false
}
if(!qty_planning || qty_planning < 0){
gantt.alert("Please input qty tools!");
$('#btn-assign-tools').html('Assign');
$('#btn-assign-tools').prop("disabled",false);
return false
}
let payload = {
proyek_id: proyekId,
activity_id: activityId,
tools_id: tools_id,
qty_planning: qty_planning
}
$.ajax({
data: JSON.stringify(payload),
url: `${base_url}assign-tools/add`,
type: "POST",
processData: false,
contentType: false,
success: function (data) {
if (data && data.code === 200) {
actionHappen = true;
gantt.alert("Tools Assign Success!");
tableTools.draw();
resetFormAssignTools();
}
else {
gantt.alert({type: "error", text: data.message});
$('#btn-assign-tools').html('Assign');
$('#btn-assign-tools').prop("disabled",false);
}
resetFormAssignTools();
},
error: function (data) {
gantt.alert("Tools Assign Failed, try again later!");
resetFormAssignTools();
}
});
});
// delete from row
$("#table-tools").on("click", ".btn-tools-delete", function() {
let id = $(this).data('id');
var box = gantt.confirm({
text: "Tools resource will be deleted from activity, continue?",
ok:"Delete",
cancel:"Cancel",
callback: function(result){
if(result){
deleteToolsAssign(id);
}
}
});
});
});