%PDF- %PDF-
| Direktori : /home/opti/workflow/src/views/flow/ |
| Current File : /home/opti/workflow/src/views/flow/addFlow.ejs |
<% include ../partials/header %>
<% include ../partials/sidebar %>
<style>
.quick-btn {
background: #EEEEEE;
box-shadow: 0 0 0 1px #F8F8F8 inset, 0 0 0 1px #CCCCCC;
color: #444444;
display: inline-block;
height: 80px;
margin: 10px;
padding-top: 16px;
text-align: center;
text-decoration: none;
width: 90px;
position: relative;
}
.quick-btn span {
display: block;
}
.quick-btn .label {
position: absolute;
right: -5px;
top: -5px;
}
.quick-btn:hover {
text-decoration: none;
color: #fff;
background-color: #4d7589;
box-shadow: 3px 4px 1px #ccc;
}
.quick-btn.small {
width: 40px;
height: 30px;
padding-top: 6px;
}
</style>
<div class="app-content content">
<div class="content-wrapper">
<div class="content-header row">
</div>
<div class="content-body">
<!-- Breadcrumb starts-->
<div class="content-header-left col-md-6 col-12 mb-2">
<h3 class="content-header-title">Add New Flow</h3>
<div class="row breadcrumbs-top">
<div class="breadcrumb-wrapper col-12">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="/">Dashboard</a>
<li class="breadcrumb-item"><a href="/">Business Process Flow</a>
</li>
<li class="breadcrumb-item active">Add New Flow
</li>
</ol>
</div>
</div>
</div>
<!-- Breadcrumb ends-->
<section id="flow_div" >
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-header">
<!-- <h4 class="card-title">DOM / jQuery events</h4> -->
<a class="heading-elements-toggle"><i class="la la-ellipsis-v font-medium-3"></i></a>
<div class="heading-elements">
<ul class="list-inline mb-0">
<li><a data-action="expand"><i class="ft-maximize"></i></a></li>
</ul>
</div>
</div>
<div class="card-content collapse show">
<div class="card-body card-dashboard">
<div class="form-body">
<div class="form-group row">
<label class=" offset-sm-3 col-sm-2 form-control-label" for="inputName1">Structure</label>
<div class="col-sm-5">
<div <% /*class="position-relative has-icon-left " */ %> >
<select name="companyStructureId" id="companyStructureId" class="form-control">
<% structures.forEach( (structure) =>{ %>
<option class="form-control" placeholder="System Name" value="<%= structure.id %>"> <%= structure.name %></option>
<% }) %>
</select>
<div class="form-control-position pl-1"><!--<i class="la la-institution"></i>--></div>
</div>
</div>
</div>
<div class="form-group row">
<label class=" offset-sm-3 col-sm-2 form-control-label" for="inputName1">System Name</label>
<div class="col-sm-5">
<div <% /*class="position-relative has-icon-left " */ %> >
<input class="form-control" placeholder="System Name" name="name" id="flowName"/>
<div class="form-control-position pl-1"><!--<i class="la la-institution"></i>--></div>
</div>
</div>
</div>
<div class="form-group row">
<label class="offset-sm-3 col-sm-2 " for="inputDescription">System Description</label>
<div class="col-sm-5">
<div <% /*class="position-relative has-icon-left " */ %> >
<textarea class="form-control" placeholder="Description" name="description" id="description"></textarea>
<div class="form-control-position pl-1"><i class="la la-note"></i></div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-12 row mb-1 btn-div">
<button class="btn btn-success offset-md-6 col-md-2" type="submit" onclick="saveFlow()"> Continue <i style="margin-left:5px;" class="la la-paper-plane-o"></i> </button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="stage_div" class="d-none">
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-header">
<h4 class="card-title" id="repeat-form">Flow Stage <label id="_stage_label"></label></h4>
<a class="heading-elements-toggle"><i class="la la-ellipsis-h font-medium-3"></i></a>
<!-- <div class="heading-elements">
<ul class="list-inline mb-0">
<li><a data-action="collapse"><i class="ft-minus"></i></a></li>
<li><a data-action="reload"><i class="ft-rotate-cw"></i></a></li>
<li><a data-action="expand"><i class="ft-maximize"></i></a></li>
<li><a data-action="close"><i class="ft-x"></i></a></li>
</ul>
</div> -->
</div>
<div class="card-content collapse show">
<div class="card-body">
<label class=" col-sm-2 form-control-label" for="inputName1">Stage Title</label>
<div class="col-sm-7">
<div <% /*class="position-relative has-icon-left " */ %> >
<input class="form-control" placeholder="Stage Title" name="stageTitle" id="stageTitle"/>
<div class="form-control-position pl-1"><!--<i class="la la-institution"></i>--></div>
</div>
</div>
<br>
<div class="card-body">
<div class="repeater-default">
<div data-repeater-list="car">
<div data-repeater-item class="activities">
<form class="form row" id="columnsForm" name="columnsForm" method="POST">
<div class="form-group mb-1 col-7 ">
<label for="columns">Activity</label>
<br>
<textarea class="form-control columns" placeholder="Enter Detailed Activity expected" name="columns"> </textarea>
</div>
<div class="form-group col-sm-12 col-md-2 text-center mt-2">
<button type="button" class="btn btn-danger" data-repeater-delete> <i class="ft-x"></i> Delete</button>
</div>
</form>
<!-- <hr> -->
</div>
</div>
<div class="form-group overflow-hidden">
<div class="col-12">
<button data-repeater-create class="btn btn-primary">
<i class="ft-plus"></i> Add More Activity
</button>
</div>
</div>
</div>
</div>
<div class="card-footer">
<div class="form-group overflow-hidden">
<button data-repeater-create class="btn btn-info" id="nextStage">
Go to Next Stage<i class="ft-arrow-right" ></i>
</button>
<button data-repeater-create class="btn btn-success" onclick="finish()">
<i class="ft-check"></i> Finish
</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</div>
</div>
</div>
<!-- ////////////////////////////////////////////////////////////////////////////-->
<!---////////////////////////////////////////-->
<!-----Modal for creating new flow-->
<% include ../partials/footer %>
<script src="/app-assets/vendors/js/forms/repeater/jquery.repeater.min.js"></script>
<script src="/app-assets/js/scripts/forms/form-repeater.js" type="text/javascript"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.form/4.2.2/jquery.form.js"></script>
<script>
let flow;
let currentStage = 0;
function saveFlow(){
var flowName = $("#flowName").val();
var description = $("#description").val();
var companyStructureId = $("#companyStructureId").val();
if(flowName == ""){
return $.confirm({
title: '<div style="color:red">Error!</div>',
content: '<span style="color:green">System Name</span> cannot be empty',
buttons: {
ok: function () {
//
},
}
});
}
$('#spinnerContainer').addClass('show');
$.ajax({
type: "POST", // Post / Get method
url: "/flow/add", //Where form data is sent on submission
dataType: "text", // Data type, HTML, json etc.
data: { flowName, description, companyStructureId}, //Form variables
success: function (response) {
$('#spinnerContainer').removeClass('show');
flow = JSON.parse(response)
if(!flow.id){
return $.confirm({
title: '<div style="color:green">Error</div>',
content: 'Something went wrong',
buttons: {
ok: function () {
// location.reload(true)
},
}
});
}
currentStage = 1;
$("#flow_div").addClass("d-none")
$("#stage_div").removeClass("d-none")
$("#_stage_label").html(currentStage);
},
error: function (xhr, ajaxOptions, thrownError) {
$.alert('Could not delete');
}
});
}
$("#nextStage").click(function(event){
event.preventDefault();
var title = $("#stageTitle").val();
var columnsData = $(".columns");
const columns = Array();
for(var i = 0; i< columnsData.length; i++){
columns[i]=$(columnsData[i]).val()
}
event.preventDefault();
// Get form
var form = $('#columnsForm');
// var token = "{{csrf_token()}}";
// Create an FormData object
var data = new FormData(form);
if(title == ""){
return $.confirm({
title: '<div style="color:red">Error!</div>',
content: '<span style="color:green">Stage Title</span> is empty. <br/>Supply the stage title or click Finish if you are done.',
buttons: {
ok: function () {
//
},
}
});
}
$.ajax({
type: "POST", // Post / Get method
url: "/flow/addFlowColumns", //Where form data is sent on submission
dataType: "json", // Data type, HTML, json etc.
data: {columns, title, flowId:flow.id, currentStage}, //Form variables
success: function (response) {
$('#spinnerContainer').removeClass('show');
// response = JSON.parse(response)
if(response.status == "success"){
currentStage++;
$("#_stage_label").html(currentStage);
$("#stageTitle").val('');
var activities = $(".activities");
// const columns = Array();
for(var i = 1; i< activities.length; i++){
$(activities[i]).remove()
}
$(columnsData[0]).val('');
}
},
error: function (xhr, ajaxOptions, thrownError) {
$.alert('Could not Save');
}
});
})
function finish(){
$.ajax({
type: "POST", // Post / Get method
url: "/flow/addFlowFinish", //Where form data is sent on submission
dataType: "json", // Data type, HTML, json etc.
data: {flowId:flow.id, currentStage}, //Form variables
success: function (response) {
if(response.status == "success"){
return $.confirm({
title: '<div style="color:green">Successful</div>',
content: 'Business Process Flow successfully entered',
buttons: {
ok: function () {
// location.reload(true)
window.location = `/flow/view/${flow.uuid}`;
},
}
});
}
},
error: function (xhr, ajaxOptions, thrownError) {
$.alert('Could not Save');
}
});
}
</script>