0.3.12
This commit is contained in:
parent
065fbdd430
commit
7b50c60b78
@ -12,40 +12,7 @@ $qls->Security->check_auth_page('administrator.php');
|
|||||||
<link href="assets/plugins/jquery.filer/css/themes/jquery.filer-dragdropbox-theme.css" rel="stylesheet" />
|
<link href="assets/plugins/jquery.filer/css/themes/jquery.filer-dragdropbox-theme.css" rel="stylesheet" />
|
||||||
|
|
||||||
<?php require 'includes/header_end.php'; ?>
|
<?php require 'includes/header_end.php'; ?>
|
||||||
|
<?php require_once './includes/modals.php'; ?>
|
||||||
<div id="importModal" class="modal fade bs-example-modal-lg" tabindex="-1" role="dialog" aria-labelledby="importModalLabel" aria-hidden="true" style="display: none;">
|
|
||||||
<div class="modal-dialog modal-lg">
|
|
||||||
<div class="modal-content">
|
|
||||||
<div class="modal-header">
|
|
||||||
<div title="Close">
|
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
|
|
||||||
<i class="zmdi zmdi-close"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<h4 class="modal-title" id="importModalLabel">Import</h4>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
|
||||||
<div id="alertMsgImport"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="p-20">
|
|
||||||
<div class="form-group clearfix">
|
|
||||||
<div class="col-sm-12 padding-left-0 padding-right-0">
|
|
||||||
<input type="file" name="files[]" id="fileDataImport" multiple="multiple">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="modal-footer">
|
|
||||||
<button type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">Close</button>
|
|
||||||
</div>
|
|
||||||
</div><!-- /.modal-content -->
|
|
||||||
</div><!-- /.modal-dialog -->
|
|
||||||
</div><!-- /.modal -->
|
|
||||||
|
|
||||||
<!-- Page-Title -->
|
<!-- Page-Title -->
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|||||||
45
admin.php
45
admin.php
@ -11,50 +11,7 @@ $qls->Security->check_auth_page('administrator.php');
|
|||||||
<link type="text/css" href="assets/plugins/x-editable/css/bootstrap-editable.css" rel="stylesheet">
|
<link type="text/css" href="assets/plugins/x-editable/css/bootstrap-editable.css" rel="stylesheet">
|
||||||
|
|
||||||
<?php require 'includes/header_end.php'; ?>
|
<?php require 'includes/header_end.php'; ?>
|
||||||
|
<?php require_once './includes/modals.php'; ?>
|
||||||
<div id="removeUserModal" class="modal fade bs-example-modal-sm" tabindex="-1" role="dialog" aria-labelledby="removeUserModalLabel" aria-hidden="true" style="display: none;">
|
|
||||||
<div class="modal-dialog modal-sm">
|
|
||||||
<div class="modal-content">
|
|
||||||
<div class="modal-header">
|
|
||||||
<div title="Close">
|
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
|
|
||||||
<i class="zmdi zmdi-close"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<h4 class="modal-title" id="removeUserModalLabel">Remove User</h4>
|
|
||||||
</div>
|
|
||||||
<div class="modal-body">
|
|
||||||
Delete: username?
|
|
||||||
</div>
|
|
||||||
<div class="modal-footer">
|
|
||||||
<button type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">Cancel</button>
|
|
||||||
<button type="button" class="btn btn-primary waves-effect waves-light">Ok</button>
|
|
||||||
</div>
|
|
||||||
</div><!-- /.modal-content -->
|
|
||||||
</div><!-- /.modal-dialog -->
|
|
||||||
</div><!-- /.modal -->
|
|
||||||
|
|
||||||
<div id="cancelEntitlementModal" class="modal fade bs-example-modal-sm" tabindex="-1" role="dialog" aria-labelledby="cancelEntitlementModalLabel" aria-hidden="true" style="display: none;">
|
|
||||||
<div class="modal-dialog modal-sm">
|
|
||||||
<div class="modal-content">
|
|
||||||
<div class="modal-header">
|
|
||||||
<div title="Close">
|
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
|
|
||||||
<i class="zmdi zmdi-close"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<h4 class="modal-title" id="cancelEntitlementModalLabel">Cancel Entitlement</h4>
|
|
||||||
</div>
|
|
||||||
<div class="modal-body">
|
|
||||||
Confirm cancelation.
|
|
||||||
</div>
|
|
||||||
<div class="modal-footer">
|
|
||||||
<button id="confirmEntitlementCancellation" type="button" class="btn btn-secondary btn-danger waves-effect" data-toggle="modal" data-target="#cancelEntitlementModal">Confirm</button>
|
|
||||||
<button type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">Cancel</button>
|
|
||||||
</div>
|
|
||||||
</div><!-- /.modal-content -->
|
|
||||||
</div><!-- /.modal-dialog -->
|
|
||||||
</div><!-- /.modal -->
|
|
||||||
|
|
||||||
<!-- Page-Title -->
|
<!-- Page-Title -->
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|||||||
@ -82,7 +82,7 @@ $( document ).ready(function() {
|
|||||||
$('#objectTreeModal').modal('show');
|
$('#objectTreeModal').modal('show');
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#buttonObjectTreeModalAdd').click(function(){
|
$('#buttonObjectTreeModalSave').click(function(){
|
||||||
var node = $('#objTree').jstree('get_selected', false);
|
var node = $('#objTree').jstree('get_selected', false);
|
||||||
var nodeID = node[0];
|
var nodeID = node[0];
|
||||||
|
|
||||||
|
|||||||
@ -38,6 +38,7 @@ function drawConnection(elementArray){
|
|||||||
context.strokeStyle = 'LightSkyBlue';
|
context.strokeStyle = 'LightSkyBlue';
|
||||||
context.lineWidth = 3;
|
context.lineWidth = 3;
|
||||||
context.beginPath();
|
context.beginPath();
|
||||||
|
console.log('Debug (elementArray): '+JSON.stringify(elementArray));
|
||||||
|
|
||||||
$.each(elementArray, function(index, element){
|
$.each(elementArray, function(index, element){
|
||||||
var elemA = element[0];
|
var elemA = element[0];
|
||||||
@ -235,27 +236,25 @@ function crawlPath(selectedPort){
|
|||||||
}
|
}
|
||||||
|
|
||||||
while($(selectedPort).length) {
|
while($(selectedPort).length) {
|
||||||
|
console.log('here1');
|
||||||
// Crawl connection peer
|
|
||||||
var selectedPortID = $(selectedPort).attr('id');
|
|
||||||
var selectedPartition = $(selectedPort).closest('.partition');
|
|
||||||
var connectedPortID = $(selectedPort).data('connectedGlobalId');
|
|
||||||
var connectedPort = $('#'+connectedPortID);
|
|
||||||
|
|
||||||
portArray.push(selectedPort);
|
portArray.push(selectedPort);
|
||||||
|
|
||||||
|
// Crawl connection peer
|
||||||
|
var connectedPortIDString = $(selectedPort).data('connectedGlobalId');
|
||||||
|
var connectedPortIDArray = JSON.parse(atob(connectedPortIDString));
|
||||||
|
|
||||||
|
console.log('Debug (connectedPortIDString): '+atob(connectedPortIDString));
|
||||||
|
|
||||||
|
if(connectedPortIDArray.length) {
|
||||||
|
var peerPortFound = false;
|
||||||
|
$.each(connectedPortIDArray, function(index, connectedPortID){
|
||||||
|
console.log('Debug (connectedPortID): '+connectedPortID);
|
||||||
|
var connectedPort = $('#'+connectedPortID);
|
||||||
if($(connectedPort).length) {
|
if($(connectedPort).length) {
|
||||||
|
|
||||||
portArray.push(connectedPort)
|
portArray.push(connectedPort)
|
||||||
connectionArray.push([selectedPort, connectedPort]);
|
connectionArray.push([selectedPort, connectedPort]);
|
||||||
|
|
||||||
} else {
|
|
||||||
if(connectedPortID != 'none') {
|
|
||||||
connectionArray.push([selectedPort, connectedPortID]);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
var connectedPartition = $(connectedPort).closest('.partition');
|
var connectedPartition = $(connectedPort).closest('.partition');
|
||||||
var connectedPartitionPeerID = $(connectedPartition).data('peerGlobalId');
|
var connectedPartitionPeerID = $(connectedPartition).data('peerGlobalId');
|
||||||
|
|
||||||
@ -272,12 +271,27 @@ function crawlPath(selectedPort){
|
|||||||
|
|
||||||
var connectedPortIDArray = connectedPortID.split('-');
|
var connectedPortIDArray = connectedPortID.split('-');
|
||||||
var peerPort = connectedPortIDArray[5];
|
var peerPort = connectedPortIDArray[5];
|
||||||
var selectedPort = $('#port-4-'+peerID+'-'+peerFace+'-'+peerDepth+'-'+peerPort);
|
selectedPort = $('#port-4-'+peerID+'-'+peerFace+'-'+peerDepth+'-'+peerPort);
|
||||||
|
peerPortFound = true;
|
||||||
} else {
|
} else {
|
||||||
if(connectedPartitionPeerID != 'none') {
|
if(connectedPartitionPeerID != 'none') {
|
||||||
trunkArray.push([connectedPartition, connectedPartitionPeerID]);
|
trunkArray.push([connectedPartition, connectedPartitionPeerID]);
|
||||||
}
|
}
|
||||||
break;
|
//selectedPort = false;
|
||||||
|
//return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
connectionArray.push([selectedPort, connectedPortID]);
|
||||||
|
//selectedPort = false;
|
||||||
|
//return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if(peerPortFound == false) {
|
||||||
|
selectedPort = false;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
selectedPort = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -706,6 +706,14 @@ function postProcessCable(){
|
|||||||
|
|
||||||
$( document ).ready(function() {
|
$( document ).ready(function() {
|
||||||
|
|
||||||
|
$('#checkboxBreakoutCable').on('change', function(){
|
||||||
|
if($(this).is(':checked')) {
|
||||||
|
$('#objTree').jstree(true).settings.core.multiple = true;
|
||||||
|
} else {
|
||||||
|
$('#objTree').jstree(true).settings.core.multiple = false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
$('#printFullPath').on('click', function(event){
|
$('#printFullPath').on('click', function(event){
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
$('#containerFullPath').printThis({
|
$('#containerFullPath').printThis({
|
||||||
@ -943,7 +951,11 @@ $( document ).ready(function() {
|
|||||||
$('#buttonObjectTreeModalSave').on('click', function(){
|
$('#buttonObjectTreeModalSave').on('click', function(){
|
||||||
|
|
||||||
var selectedNode = $('#objTree').jstree('get_selected', true);
|
var selectedNode = $('#objTree').jstree('get_selected', true);
|
||||||
var value = selectedNode[0].data.globalID;
|
var value = [];
|
||||||
|
$.each(selectedNode, function(index, node){
|
||||||
|
value.push(node.data.globalID);
|
||||||
|
});
|
||||||
|
//var value = selectedNode[0].data.globalID;
|
||||||
var objID = $(document).data('clickedObjID');
|
var objID = $(document).data('clickedObjID');
|
||||||
var objFace = $(document).data('clickedObjFace');
|
var objFace = $(document).data('clickedObjFace');
|
||||||
var objDepth = $(document).data('clickedObjPartitionDepth');
|
var objDepth = $(document).data('clickedObjPartitionDepth');
|
||||||
@ -959,38 +971,6 @@ $( document ).ready(function() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
postProcessCable.call(data);
|
postProcessCable.call(data);
|
||||||
|
|
||||||
/* data = JSON.stringify(data);
|
|
||||||
|
|
||||||
$.post('backend/process_cable.php', {data:data}, function(response){
|
|
||||||
var responseJSON = JSON.parse(response);
|
|
||||||
if (responseJSON.active == 'inactive'){
|
|
||||||
window.location.replace("/");
|
|
||||||
} else if ($(responseJSON.error).size() > 0){
|
|
||||||
displayErrorElement(responseJSON.error, $('#alertMsgObjTree'));
|
|
||||||
} else {
|
|
||||||
var optionText = $('#selectPort').find(':selected').text();
|
|
||||||
$('#port-4-'+objID+'-'+objFace+'-'+objDepth+'-'+objPort).addClass('populated').data('connectedGlobalId', 'port-'+responseJSON.success.peerPortID);
|
|
||||||
if($('#port-'+responseJSON.success.peerPortID).length) {
|
|
||||||
$('#port-'+responseJSON.success.peerPortID).addClass('populated').data('connectedGlobalId', '#port-4-'+objID+'-'+objFace+'-'+objDepth+'-'+objPort);
|
|
||||||
}
|
|
||||||
if($('#port-'+responseJSON.success.oldPeerPortID).length) {
|
|
||||||
$('#port-'+responseJSON.success.oldPeerPortID).removeClass('populated').data('connectedGlobalId', 'none');
|
|
||||||
}
|
|
||||||
var interfaceSelectionElem = $('#selectPort').find(':selected');
|
|
||||||
portDesignation(interfaceSelectionElem, 'add', 'C');
|
|
||||||
$('#checkboxPopulated').prop("checked", true);
|
|
||||||
$('#checkboxPopulated').prop("disabled", true);
|
|
||||||
retrievePortPath(objID, objFace, objDepth, objPort);
|
|
||||||
refreshPathData();
|
|
||||||
redraw();
|
|
||||||
|
|
||||||
$('#objTree').jstree('deselect_all');
|
|
||||||
$('#objectTreeModal').modal('hide');
|
|
||||||
|
|
||||||
$(document).data('peerPortID', value);
|
|
||||||
}
|
|
||||||
}); */
|
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#buttonObjectTreeModalClear').on('click', function(){
|
$('#buttonObjectTreeModalClear').on('click', function(){
|
||||||
@ -1006,8 +986,7 @@ $( document ).ready(function() {
|
|||||||
var objPort = $(document).data('clickedObjPortID');
|
var objPort = $(document).data('clickedObjPortID');
|
||||||
|
|
||||||
var data = {
|
var data = {
|
||||||
property: 'connectionExplore',
|
property: 'connectionExploreClear',
|
||||||
value: 'clear',
|
|
||||||
objID: objID,
|
objID: objID,
|
||||||
objFace: objFace,
|
objFace: objFace,
|
||||||
objDepth: objDepth,
|
objDepth: objDepth,
|
||||||
@ -1023,8 +1002,10 @@ $( document ).ready(function() {
|
|||||||
displayError(responseJSON.error);
|
displayError(responseJSON.error);
|
||||||
} else {
|
} else {
|
||||||
$('#port-4-'+objID+'-'+objFace+'-'+objDepth+'-'+objPort).removeClass('populated').data('connectedGlobalId', 'none');
|
$('#port-4-'+objID+'-'+objFace+'-'+objDepth+'-'+objPort).removeClass('populated').data('connectedGlobalId', 'none');
|
||||||
if($('#port-'+responseJSON.success.peerPortID).length) {
|
if(responseJSON.success.oldPeerPortID) {
|
||||||
$('#port-'+responseJSON.success.peerPortID).removeClass('populated').data('connectedGlobalId', 'none');
|
if($('#port-'+responseJSON.success.oldPeerPortID).length) {
|
||||||
|
$('#port-'+responseJSON.success.oldPeerPortID).removeClass('populated').data('connectedGlobalId', 'none');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var interfaceSelectionElem = $('#selectPort').find(':selected');
|
var interfaceSelectionElem = $('#selectPort').find(':selected');
|
||||||
|
|||||||
@ -166,6 +166,50 @@ if($_SERVER['REQUEST_METHOD'] == 'POST'){
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'connectionExploreClear':
|
||||||
|
|
||||||
|
$validate->returnData['success'] = array();
|
||||||
|
|
||||||
|
// Retrieve object data
|
||||||
|
$objID = $data['objID'];
|
||||||
|
$objFace = $data['objFace'];
|
||||||
|
$objDepth = $data['objDepth'];
|
||||||
|
$objPort = $data['objPort'];
|
||||||
|
$obj = (isset($qls->App->inventoryArray[$objID][$objFace][$objDepth][$objPort])) ? $qls->App->inventoryArray[$objID][$objFace][$objDepth][$objPort] : false;
|
||||||
|
|
||||||
|
// Retrieve old peer port ID so it can have the "populated" class cleared
|
||||||
|
if($obj) {
|
||||||
|
$oldPeerPortID = '4-'.$obj['id'].'-'.$obj['face'].'-'.$obj['depth'].'-'.$obj['port'];
|
||||||
|
} else {
|
||||||
|
$oldPeerPortID = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Clear inventory table entry
|
||||||
|
$objRowID = $obj['rowID'];
|
||||||
|
if($obj['localEndID'] or $obj['remoteEndID']) {
|
||||||
|
clearTableInventory($qls, $obj['localAttrPrefix'], $objRowID);
|
||||||
|
} else {
|
||||||
|
$qls->SQL->delete('app_inventory', array('id' => array('=', $objRowID)));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Clear populated port entry
|
||||||
|
clearTablePopulated($qls, $objID, $objFace, $objDepth, $objPort);
|
||||||
|
|
||||||
|
// Log history
|
||||||
|
$localPort = $qls->App->generateObjectPortName($objID, $objFace, $objDepth, $objPort);
|
||||||
|
$remotePortData = $qls->App->inventoryArray[$objID][$objFace][$objDepth][$objPort];
|
||||||
|
$remoteObjID = $remotePortData['id'];
|
||||||
|
$remoteObjFace = $remotePortData['face'];
|
||||||
|
$remoteObjDepth = $remotePortData['depth'];
|
||||||
|
$remoteObjPort = $remotePortData['port'];
|
||||||
|
$remotePort = $qls->App->generateObjectPortName($remoteObjID, $remoteObjFace, $remoteObjDepth, $remoteObjPort);
|
||||||
|
$actionString = 'Deleted connection: <strong>'.$localPort.'</strong> to <strong>'.$remotePort.'</strong>';
|
||||||
|
$qls->App->logAction(3, 3, $actionString);
|
||||||
|
|
||||||
|
$validate->returnData['success']['oldPeerPortID'] = $oldPeerPortID;
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
case 'connectionExplore':
|
case 'connectionExplore':
|
||||||
require_once '../includes/path_functions.php';
|
require_once '../includes/path_functions.php';
|
||||||
$validate->returnData['success'] = array();
|
$validate->returnData['success'] = array();
|
||||||
@ -173,40 +217,22 @@ if($_SERVER['REQUEST_METHOD'] == 'POST'){
|
|||||||
$clear = $value == 'clear' ? true : false;
|
$clear = $value == 'clear' ? true : false;
|
||||||
$peerPortID = '';
|
$peerPortID = '';
|
||||||
|
|
||||||
if($clear) {
|
foreach($value as $peerPortString) {
|
||||||
$elementID = $elementFace = $elementDepth = $elementPort = 0;
|
|
||||||
} else {
|
$peerPortArray = explode('-', $peerPortString);
|
||||||
$valueArray = explode('-', $value);
|
|
||||||
$elementID = $valueArray[1];
|
$elementID = $peerPortArray[1];
|
||||||
$elementFace = $valueArray[2];
|
$elementFace = $peerPortArray[2];
|
||||||
$elementDepth = $valueArray[3];
|
$elementDepth = $peerPortArray[3];
|
||||||
$elementPort = $valueArray[4];
|
$elementPort = $peerPortArray[4];
|
||||||
}
|
$element = (isset($qls->App->inventoryArray[$elementID][$elementFace][$elementDepth][$elementPort])) ? $qls->App->inventoryArray[$elementID][$elementFace][$elementDepth][$elementPort] : false;
|
||||||
|
|
||||||
$objID = $data['objID'];
|
$objID = $data['objID'];
|
||||||
$objFace = $data['objFace'];
|
$objFace = $data['objFace'];
|
||||||
$objDepth = $data['objDepth'];
|
$objDepth = $data['objDepth'];
|
||||||
$objPort = $data['objPort'];
|
$objPort = $data['objPort'];
|
||||||
|
$obj = (isset($qls->App->inventoryArray[$objID][$objFace][$objDepth][$objPort])) ? $qls->App->inventoryArray[$objID][$objFace][$objDepth][$objPort] : false;
|
||||||
|
|
||||||
if(loopDetected($qls, $objID, $objFace, $objDepth, $objPort, $elementID, $elementFace, $elementDepth, $elementPort)) {
|
|
||||||
$errMsg = 'Loop detected.';
|
|
||||||
array_push($validate->returnData['error'], $errMsg);
|
|
||||||
} else {
|
|
||||||
|
|
||||||
$query = $qls->SQL->select('*', 'app_inventory', '(a_object_id = '.$objID.' AND a_object_face = '.$objFace.' AND a_object_depth = '.$objDepth.' AND a_port_id = '.$objPort.') OR (b_object_id = '.$objID.' AND b_object_face = '.$objFace.' AND b_object_depth = '.$objDepth.' AND b_port_id = '.$objPort.')');
|
|
||||||
$objEntry = $qls->SQL->num_rows($query) ? $qls->SQL->fetch_assoc($query) : false;
|
|
||||||
|
|
||||||
if($clear) {
|
|
||||||
$elementEntry = false;
|
|
||||||
if($objEntry) {
|
|
||||||
$elementAttr = ($objEntry['a_object_id'] == $objID and $objEntry['a_object_face'] == $objFace and $objEntry['a_object_depth'] == $objDepth and $objEntry['a_port_id'] == $objPort) ? 'b' : 'a';
|
|
||||||
$peerPortID = '4-'.$objEntry[$elementAttr.'_object_id'].'-'.$objEntry[$elementAttr.'_object_face'].'-'.$objEntry[$elementAttr.'_object_depth'].'-'.$objEntry[$elementAttr.'_port_id'];
|
|
||||||
} else {
|
|
||||||
$peerPortID = '4-0-0-0-0';
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$query = $qls->SQL->select('*', 'app_inventory', '(a_object_id = '.$elementID.' AND a_object_face = '.$elementFace.' AND a_object_depth = '.$elementDepth.' AND a_port_id = '.$elementPort.') OR (b_object_id = '.$elementID.' AND b_object_face = '.$elementFace.' AND b_object_depth = '.$elementDepth.' AND b_port_id = '.$elementPort.')');
|
|
||||||
$elementEntry = $qls->SQL->num_rows($query) ? $qls->SQL->fetch_assoc($query) : false;
|
|
||||||
$peerPortID = '4-'.$elementID.'-'.$elementFace.'-'.$elementDepth.'-'.$elementPort;
|
$peerPortID = '4-'.$elementID.'-'.$elementFace.'-'.$elementDepth.'-'.$elementPort;
|
||||||
|
|
||||||
// Clear trunk if this is a trunked floorplan object
|
// Clear trunk if this is a trunked floorplan object
|
||||||
@ -226,66 +252,67 @@ if($_SERVER['REQUEST_METHOD'] == 'POST'){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Retrieve old peer port ID so it can have the "populated" class cleared
|
// Retrieve old peer port ID so it can have the "populated" class cleared
|
||||||
if(isset($qls->App->inventoryArray[$objID][$objFace][$objDepth][$objPort])) {
|
if($obj) {
|
||||||
$inventoryEntry = $qls->App->inventoryArray[$objID][$objFace][$objDepth][$objPort];
|
$oldPeerPortID = '4-'.$obj['id'].'-'.$obj['face'].'-'.$obj['depth'].'-'.$obj['port'];
|
||||||
$oldPeerPortID = '4-'.$inventoryEntry['id'].'-'.$inventoryEntry['face'].'-'.$inventoryEntry['depth'].'-'.$inventoryEntry['port'];
|
|
||||||
} else {
|
} else {
|
||||||
$oldPeerPortID = false;
|
$oldPeerPortID = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Find which ports are already connected
|
// Clear existing connections
|
||||||
if($objEntry and $elementEntry) {
|
if($obj and $element) {
|
||||||
$objAttr = ($objEntry['a_object_id'] == $objID and $objEntry['a_object_face'] == $objFace and $objEntry['a_object_depth'] == $objDepth and $objEntry['a_port_id'] == $objPort) ? 'a' : 'b';
|
|
||||||
$elementAttr = ($elementEntry['a_object_id'] == $elementID) ? 'a' : 'b';
|
$objRowID = $obj['rowID'];
|
||||||
|
$elementRowID = $element['rowID'];
|
||||||
|
|
||||||
// Are the ports connected to each other?
|
// Are the ports connected to each other?
|
||||||
if($objEntry['id'] == $elementEntry['id']) {
|
if($obj['rowID'] == $element['rowID']) {
|
||||||
$entryID = $objEntry['id'];
|
if($obj['localEndID'] or $obj['remoteEndID']) {
|
||||||
if($objEntry['a_id'] or $objEntry['b_id']) {
|
clearTableInventory($qls, 'a', $objRowID);
|
||||||
clearTableInventory($qls, 'a', $entryID);
|
clearTableInventory($qls, 'b', $objRowID);
|
||||||
clearTableInventory($qls, 'b', $entryID);
|
|
||||||
} else {
|
} else {
|
||||||
$qls->SQL->delete('app_inventory', array('id' => array('=', $entryID)));
|
$qls->SQL->delete('app_inventory', array('id' => array('=', $objRowID)));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if($objEntry['a_id'] or $objEntry['b_id']) {
|
if($obj['localEndID'] or $obj['remoteEndID']) {
|
||||||
clearTableInventory($qls, $objAttr, $objEntry['id']);
|
clearTableInventory($qls, $obj['localAttrPrefix'], $objRowID);
|
||||||
} else {
|
} else {
|
||||||
$qls->SQL->delete('app_inventory', array('id' => array('=', $objEntry['id'])));
|
$qls->SQL->delete('app_inventory', array('id' => array('=', $objRowID)));
|
||||||
}
|
}
|
||||||
|
|
||||||
if($elementEntry['a_id'] or $elementEntry['b_id']) {
|
if($element['localEndID'] or $element['remoteEndID']) {
|
||||||
clearTableInventory($qls, $elementAttr, $elementEntry['id']);
|
clearTableInventory($qls, $element['localAttrPrefix'], $elementRowID);
|
||||||
} else {
|
} else {
|
||||||
$qls->SQL->delete('app_inventory', array('id' => array('=', $elementEntry['id'])));
|
$qls->SQL->delete('app_inventory', array('id' => array('=', $elementRowID)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if($objEntry) {
|
} else if($obj) {
|
||||||
$objAttr = ($objEntry['a_object_id'] == $objID and $objEntry['a_object_face'] == $objFace and $objEntry['a_object_depth'] == $objDepth and $objEntry['a_port_id'] == $objPort) ? 'a' : 'b';
|
|
||||||
|
|
||||||
if($objEntry['a_id'] or $objEntry['b_id']) {
|
$objRowID = $obj['rowID'];
|
||||||
clearTableInventory($qls, $objAttr, $objEntry['id']);
|
|
||||||
|
if($obj['localEndID'] or $obj['remoteEndID']) {
|
||||||
|
clearTableInventory($qls, $obj['localAttrPrefix'], $objRowID);
|
||||||
} else {
|
} else {
|
||||||
$qls->SQL->delete('app_inventory', array('id' => array('=', $objEntry['id'])));
|
$qls->SQL->delete('app_inventory', array('id' => array('=', $objRowID)));
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if($elementEntry) {
|
} else if($element) {
|
||||||
$elementAttr = ($elementEntry['a_object_id'] == $elementID and $elementEntry['a_object_face'] == $elementFace and $elementEntry['a_object_depth'] == $elementDepth and $elementEntry['a_port_id'] == $elementPort) ? 'a' : 'b';
|
|
||||||
|
|
||||||
if($elementEntry['a_id'] or $elementEntry['b_id']) {
|
$elementRowID = $element['rowID'];
|
||||||
clearTableInventory($qls, $elementAttr, $elementEntry['id']);
|
|
||||||
|
if($element['localEndID'] or $element['remoteEndID']) {
|
||||||
|
clearTableInventory($qls, $element['localAttrPrefix'], $elementRowID);
|
||||||
} else {
|
} else {
|
||||||
$qls->SQL->delete('app_inventory', array('id' => array('=', $elementEntry['id'])));
|
$qls->SQL->delete('app_inventory', array('id' => array('=', $elementRowID)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Clear populated port entry
|
||||||
clearTablePopulated($qls, $objID, $objFace, $objDepth, $objPort);
|
clearTablePopulated($qls, $objID, $objFace, $objDepth, $objPort);
|
||||||
clearTablePopulated($qls, $elementID, $elementFace, $elementDepth, $elementPort);
|
clearTablePopulated($qls, $elementID, $elementFace, $elementDepth, $elementPort);
|
||||||
|
|
||||||
if(!$clear) {
|
// Insert new connection
|
||||||
insertTableInventory($qls, $objID, $objFace, $objDepth, $objPort, $elementID, $elementFace, $elementDepth, $elementPort);
|
insertTableInventory($qls, $objID, $objFace, $objDepth, $objPort, $elementID, $elementFace, $elementDepth, $elementPort);
|
||||||
|
|
||||||
// Log history
|
// Log history
|
||||||
@ -294,29 +321,11 @@ if($_SERVER['REQUEST_METHOD'] == 'POST'){
|
|||||||
$actionString = 'Added connection: <strong>'.$localPort.'</strong> to <strong>'.$remotePort.'</strong>';
|
$actionString = 'Added connection: <strong>'.$localPort.'</strong> to <strong>'.$remotePort.'</strong>';
|
||||||
$qls->App->logAction(3, 1, $actionString);
|
$qls->App->logAction(3, 1, $actionString);
|
||||||
|
|
||||||
} else {
|
|
||||||
|
|
||||||
// Log history
|
|
||||||
$localPort = $qls->App->generateObjectPortName($objID, $objFace, $objDepth, $objPort);
|
|
||||||
$remotePortData = $qls->App->inventoryArray[$objID][$objFace][$objDepth][$objPort];
|
|
||||||
$remoteObjID = $remotePortData['id'];
|
|
||||||
$remoteObjFace = $remotePortData['face'];
|
|
||||||
$remoteObjDepth = $remotePortData['depth'];
|
|
||||||
$remoteObjPort = $remotePortData['port'];
|
|
||||||
$remotePort = $qls->App->generateObjectPortName($remoteObjID, $remoteObjFace, $remoteObjDepth, $remoteObjPort);
|
|
||||||
$actionString = 'Deleted connection: <strong>'.$localPort.'</strong> to <strong>'.$remotePort.'</strong>';
|
|
||||||
$qls->App->logAction(3, 3, $actionString);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//include_once $_SERVER['DOCUMENT_ROOT'].'/includes/content-path.php';
|
|
||||||
|
|
||||||
//$validate->returnData['success']['pathFull'] = $qls->App->buildPathFull($path, false);
|
|
||||||
$validate->returnData['success']['peerPortID'] = $peerPortID;
|
$validate->returnData['success']['peerPortID'] = $peerPortID;
|
||||||
$validate->returnData['success']['oldPeerPortID'] = $oldPeerPortID;
|
$validate->returnData['success']['oldPeerPortID'] = $oldPeerPortID;
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -324,7 +333,7 @@ if($_SERVER['REQUEST_METHOD'] == 'POST'){
|
|||||||
}
|
}
|
||||||
|
|
||||||
function validate($data, &$validate, &$qls){
|
function validate($data, &$validate, &$qls){
|
||||||
$propertiesArray = array('connectorType', 'cableLength', 'cableMediaType', 'cableEditable', 'connectionScan', 'connectionExplore');
|
$propertiesArray = array('connectorType', 'cableLength', 'cableMediaType', 'cableEditable', 'connectionScan', 'connectionExplore', 'connectionExploreClear');
|
||||||
|
|
||||||
//Validate property
|
//Validate property
|
||||||
if($validate->validateInArray($data['property'], $propertiesArray, 'property type')) {
|
if($validate->validateInArray($data['property'], $propertiesArray, 'property type')) {
|
||||||
@ -377,19 +386,38 @@ function validate($data, &$validate, &$qls){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} else if ($data['property'] == 'connectionExploreClear') {
|
||||||
|
|
||||||
} else if ($data['property'] == 'connectionExplore') {
|
} else if ($data['property'] == 'connectionExplore') {
|
||||||
|
|
||||||
$remotePortArray = explode('-', $data['value']);
|
$remotePortDataArray = $data['value'];
|
||||||
$remoteID = $remotePortArray[1];
|
$remotePortArray = array();
|
||||||
$remoteFace = $remotePortArray[2];
|
if(is_array($remotePortDataArray)) {
|
||||||
$remoteDepth = $remotePortArray[3];
|
foreach($remotePortDataArray as $remotePortDataString) {
|
||||||
$remotePort = $remotePortArray[4];
|
$remotePortData = explode('-', $remotePortDataString);
|
||||||
|
$workingArray = array(
|
||||||
|
'remoteID' => $remotePortData[1],
|
||||||
|
'remoteFace' => $remotePortData[2],
|
||||||
|
'remoteDepth' => $remotePortData[3],
|
||||||
|
'remotePort' => $remotePortData[4]
|
||||||
|
);
|
||||||
|
array_push($remotePortArray, $workingArray);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$localID = $data['objID'];
|
$localID = $data['objID'];
|
||||||
$localFace = $data['objFace'];
|
$localFace = $data['objFace'];
|
||||||
$localDepth = $data['objDepth'];
|
$localDepth = $data['objDepth'];
|
||||||
$localPort = $data['objPort'];
|
$localPort = $data['objPort'];
|
||||||
|
|
||||||
|
foreach($remotePortArray as $remotePortData) {
|
||||||
|
|
||||||
|
$remoteID = $remotePortData['remoteID'];
|
||||||
|
$remoteFace = $remotePortData['remoteFace'];
|
||||||
|
$remoteDepth = $remotePortData['remoteDepth'];
|
||||||
|
$remotePort = $remotePortData['remotePort'];
|
||||||
|
|
||||||
|
// Validate port is not connected to itself
|
||||||
if($remoteID == $localID and $remoteFace == $localFace and $remoteDepth == $localDepth and $remotePort == $localPort) {
|
if($remoteID == $localID and $remoteFace == $localFace and $remoteDepth == $localDepth and $remotePort == $localPort) {
|
||||||
$errMsg = 'Cannot connect port to itself.';
|
$errMsg = 'Cannot connect port to itself.';
|
||||||
array_push($validate->returnData['error'], $errMsg);
|
array_push($validate->returnData['error'], $errMsg);
|
||||||
@ -402,6 +430,20 @@ function validate($data, &$validate, &$qls){
|
|||||||
);
|
);
|
||||||
$validate->validateTrunkedEndpoint($connectionPeerArray);
|
$validate->validateTrunkedEndpoint($connectionPeerArray);
|
||||||
|
|
||||||
|
// Validate no loops will result
|
||||||
|
if($qls->App->loopDetected($localID, $localFace, $localDepth, $localPort, $remoteID, $remoteFace, $remoteDepth, $remotePort)) {
|
||||||
|
$errMsg = 'Loop detected.';
|
||||||
|
array_push($validate->returnData['error'], $errMsg);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Does this action need to be confirmed?
|
||||||
|
if(!isset($data['confirmed'])) {
|
||||||
|
if (isset($qls->App->inventoryArray[$remoteID][$remoteFace][$remoteDepth][$remotePort])) {
|
||||||
|
$validate->returnData['data']['confirmMsg'] = 'Overwrite existing connection?';
|
||||||
|
$validate->returnData['confirm'] = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Validate entitlement
|
// Validate entitlement
|
||||||
$query = $qls->SQL->select('id', 'app_inventory', array('a_object_id' => array('>', 0), 'AND', 'b_object_id' => array('>', 0)));
|
$query = $qls->SQL->select('id', 'app_inventory', array('a_object_id' => array('>', 0), 'AND', 'b_object_id' => array('>', 0)));
|
||||||
$conNum = $qls->SQL->num_rows($query) + 1;
|
$conNum = $qls->SQL->num_rows($query) + 1;
|
||||||
@ -410,16 +452,9 @@ function validate($data, &$validate, &$qls){
|
|||||||
$errMsg = 'Exceeded entitled connection count.';
|
$errMsg = 'Exceeded entitled connection count.';
|
||||||
array_push($validate->returnData['error'], $errMsg);
|
array_push($validate->returnData['error'], $errMsg);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!isset($data['confirmed'])) {
|
|
||||||
if (isset($qls->App->inventoryArray[$remoteID][$remoteFace][$remoteDepth][$remotePort])) {
|
|
||||||
$validate->returnData['data']['confirmMsg'] = 'Overwrite existing connection?';
|
|
||||||
$validate->returnData['confirm'] = true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -14,7 +14,7 @@ $qls->Security->check_auth_page('operator.php');
|
|||||||
<link href="assets/plugins/datatables/responsive.bootstrap4.min.css" rel="stylesheet" type="text/css"/>
|
<link href="assets/plugins/datatables/responsive.bootstrap4.min.css" rel="stylesheet" type="text/css"/>
|
||||||
|
|
||||||
<?php require 'includes/header_end.php'; ?>
|
<?php require 'includes/header_end.php'; ?>
|
||||||
|
<?php require_once './includes/modals.php'; ?>
|
||||||
|
|
||||||
<!-- Page-Title -->
|
<!-- Page-Title -->
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|||||||
@ -1,47 +0,0 @@
|
|||||||
<?php
|
|
||||||
define('QUADODO_IN_SYSTEM', true);
|
|
||||||
require_once './includes/header.php';
|
|
||||||
require_once './includes/redirectToLogin.php';
|
|
||||||
$qls->Security->check_auth_page('administrator.php');
|
|
||||||
?>
|
|
||||||
|
|
||||||
<?php require 'includes/header_start.php'; ?>
|
|
||||||
|
|
||||||
<!-- DataTables -->
|
|
||||||
<link href="assets/plugins/datatables/dataTables.bootstrap4.min.css" rel="stylesheet" type="text/css"/>
|
|
||||||
<link href="assets/plugins/datatables/buttons.bootstrap4.min.css" rel="stylesheet" type="text/css"/>
|
|
||||||
<!-- Responsive datatable examples -->
|
|
||||||
<link href="assets/plugins/datatables/responsive.bootstrap4.min.css" rel="stylesheet" type="text/css"/>
|
|
||||||
|
|
||||||
<?php require 'includes/header_end.php'; ?>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- Page-Title -->
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-sm-12">
|
|
||||||
<h4 class="page-title">Cable Inventory</h4>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-sm-12">
|
|
||||||
<div class="card-box table-responsive">
|
|
||||||
<?php require_once './includes/content-demo_inventory.php';?>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div> <!-- end row -->
|
|
||||||
|
|
||||||
<?php require 'includes/footer_start.php' ?>
|
|
||||||
|
|
||||||
<!-- Required datatable js -->
|
|
||||||
<script src="assets/plugins/datatables/jquery.dataTables.min.js"></script>
|
|
||||||
<script src="assets/plugins/datatables/dataTables.bootstrap4.min.js"></script>
|
|
||||||
|
|
||||||
<!-- Responsive examples -->
|
|
||||||
<script src="assets/plugins/datatables/dataTables.responsive.min.js"></script>
|
|
||||||
<script src="assets/plugins/datatables/responsive.bootstrap4.min.js"></script>
|
|
||||||
|
|
||||||
<script src="assets/plugins/barcode/jquery.barcode.min.js"></script>
|
|
||||||
<script src="assets/pages/jquery.cable_manager.js"></script>
|
|
||||||
|
|
||||||
<?php require 'includes/footer_end.php' ?>
|
|
||||||
39
diagram.php
39
diagram.php
@ -13,44 +13,7 @@ $qls->Security->check_auth_page('user.php');
|
|||||||
<link href="assets/css/style-templates.css" rel="stylesheet" type="text/css"/>
|
<link href="assets/css/style-templates.css" rel="stylesheet" type="text/css"/>
|
||||||
|
|
||||||
<?php require 'includes/header_end.php'; ?>
|
<?php require 'includes/header_end.php'; ?>
|
||||||
|
<?php require_once './includes/modals.php'; ?>
|
||||||
<!-- object tree modal -->
|
|
||||||
<div id="objectTreeModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="objectTreeModal" aria-hidden="true">
|
|
||||||
<div class="modal-dialog">
|
|
||||||
<div class="modal-content">
|
|
||||||
<div class="modal-header">
|
|
||||||
<div title="Close">
|
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
|
|
||||||
<i class="zmdi zmdi-close"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<h4 class="modal-title" id="objectTreeModalLabel"></h4>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
|
||||||
<div id="alertMsgObjTree" class="m-t-15"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="modal-body">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-sm-12">
|
|
||||||
<div class="card-box">
|
|
||||||
<div id="objTree" class="navTree"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="modal-footer">
|
|
||||||
<button id="buttonObjectTreeModalCancel" type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">Cancel</button>
|
|
||||||
<button id="buttonObjectTreeModalAdd" type="button" class="btn btn-primary waves-effect waves-light">Add</button>
|
|
||||||
</div>
|
|
||||||
</div><!-- /.modal-content -->
|
|
||||||
</div><!-- /.modal-dialog -->
|
|
||||||
</div><!-- /.modal -->
|
|
||||||
|
|
||||||
<!-- Make server data available to client via hidden inputs -->
|
<!-- Make server data available to client via hidden inputs -->
|
||||||
<?php include_once('includes/content-build-serverData.php'); ?>
|
<?php include_once('includes/content-build-serverData.php'); ?>
|
||||||
|
|||||||
@ -24,96 +24,7 @@ $qls->Security->check_auth_page('operator.php');
|
|||||||
<link href="assets/plugins/jquery.filer/css/themes/jquery.filer-dragdropbox-theme.css" rel="stylesheet" />
|
<link href="assets/plugins/jquery.filer/css/themes/jquery.filer-dragdropbox-theme.css" rel="stylesheet" />
|
||||||
|
|
||||||
<?php require 'includes/header_end.php'; ?>
|
<?php require 'includes/header_end.php'; ?>
|
||||||
<?php require_once './includes/content-object_tree_modal.php'; ?>
|
<?php require_once './includes/modals.php'; ?>
|
||||||
|
|
||||||
<!-- image upload modal -->
|
|
||||||
<div id="modalImageUpload" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="modalLabelImageUpload" aria-hidden="true">
|
|
||||||
<div class="modal-dialog modal-lg">
|
|
||||||
<div class="modal-content">
|
|
||||||
<div class="modal-header">
|
|
||||||
<div title="Close">
|
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
|
|
||||||
<i class="zmdi zmdi-close"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<h4 class="modal-title" id="modalLabelImageUpload">Floorplan Image</h4>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
|
||||||
<div id="alertMsgImageUpload"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="modal-body">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-sm-12">
|
|
||||||
<div class="card-box">
|
|
||||||
<div class="p-20">
|
|
||||||
<div class="form-group clearfix">
|
|
||||||
<div id="containerFloorplanImage" class="col-sm-12 padding-left-0 padding-right-0">
|
|
||||||
<input type="file" name="files[]" id="fileFloorplanImage" multiple="multiple">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="modal-footer">
|
|
||||||
<button type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">Close</button>
|
|
||||||
</div>
|
|
||||||
</div><!-- /.modal-content -->
|
|
||||||
</div><!-- /.modal-dialog -->
|
|
||||||
</div><!-- /.modal -->
|
|
||||||
|
|
||||||
<!-- combined template modal -->
|
|
||||||
<div id="modalCreateCombinedTemplate" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="modalLabelCreateCombinedTemplate" aria-hidden="true">
|
|
||||||
<div class="modal-dialog modal-sm">
|
|
||||||
<div class="modal-content">
|
|
||||||
<div class="modal-header">
|
|
||||||
<div title="Close">
|
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
|
|
||||||
<i class="zmdi zmdi-close"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<h4 class="modal-title" id="modalLabelImageUpload">Create Combined Template</h4>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
|
||||||
<div id="alertMsgCreateCombinedTemplate"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="modal-body">
|
|
||||||
|
|
||||||
<!-- Name -->
|
|
||||||
<fieldset class="form-group">
|
|
||||||
<label>Name <i class="ion-help-circled" data-toggle="tooltip" data-placement="right" title="Alphanumeric characters as well as hyphens (-), underscores (_), forward slashes (\/), and backslashes (\)."></i></label>
|
|
||||||
<input id="inputCreateCombinedTemplateName" class="form-control" type="text" name="name" placeholder="New_Template" value="New_Template">
|
|
||||||
</fieldset>
|
|
||||||
|
|
||||||
<!-- Category -->
|
|
||||||
<fieldset class="form-group">
|
|
||||||
<label>Category <i class="ion-help-circled" data-toggle="tooltip" data-placement="right" title="Select a template category."></i></label>
|
|
||||||
<select id="inputCreateCombinedTemplateCategory" name="category" class="form-control">
|
|
||||||
<?php $qls->App->generateCategoryOptions(); ?>
|
|
||||||
</select>
|
|
||||||
</fieldset>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="modal-footer">
|
|
||||||
<button type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">Cancel</button>
|
|
||||||
<button id="buttonCreateCombinedTemplateModalSave" type="button" class="btn btn-primary waves-effect waves-light">Save</button>
|
|
||||||
</div>
|
|
||||||
</div><!-- /.modal-content -->
|
|
||||||
</div><!-- /.modal-dialog -->
|
|
||||||
</div><!-- /.modal -->
|
|
||||||
|
|
||||||
<!-- Make server data available to client via hidden inputs -->
|
<!-- Make server data available to client via hidden inputs -->
|
||||||
<?php include_once('includes/content-build-serverData.php'); ?>
|
<?php include_once('includes/content-build-serverData.php'); ?>
|
||||||
|
|||||||
130
explore.php
130
explore.php
@ -23,135 +23,7 @@ $qls->Security->check_auth_page('user.php');
|
|||||||
<link href="assets/plugins/ion-rangeslider/ion.rangeSlider.skinModern.css" rel="stylesheet" type="text/css"/>
|
<link href="assets/plugins/ion-rangeslider/ion.rangeSlider.skinModern.css" rel="stylesheet" type="text/css"/>
|
||||||
|
|
||||||
<?php require 'includes/header_end.php'; ?>
|
<?php require 'includes/header_end.php'; ?>
|
||||||
<?php require_once './includes/content-object_tree_modal.php'; ?>
|
<?php require_once './includes/modals.php'; ?>
|
||||||
|
|
||||||
<!-- sample modal content -->
|
|
||||||
<div id="modalPathFinder" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
|
|
||||||
<div class="modal-dialog modal-lg">
|
|
||||||
<div class="modal-content">
|
|
||||||
<div class="modal-header">
|
|
||||||
<div title="Close">
|
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
|
|
||||||
<i class="zmdi zmdi-close"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<h4 class="modal-title" id="myModalLabel">Find Path</h4>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
|
||||||
<div id="alertMsgModal"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="modal-body">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-sm-12">
|
|
||||||
<div class="card-box">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-sm-6">
|
|
||||||
<dl class="dl-horizontal row">
|
|
||||||
<dt class="col-sm-3">Local Port:</dt>
|
|
||||||
<dd id="pathFinderLocalPort" class="col-sm-9"></dd>
|
|
||||||
<dt class="col-sm-3">Remote Port:</dt>
|
|
||||||
<dd class="col-sm-9"><div id="pathFinderRemotePort"></div><div id="pathFinderTree" class="navTree m-b-30"></div></dd>
|
|
||||||
</dl>
|
|
||||||
</div>
|
|
||||||
<div class="col-sm-6">
|
|
||||||
<?php
|
|
||||||
echo '<input id="pathFinderMaxResults" type="hidden" value="'.PATH_FINDER_MAX_RESULTS.'">';
|
|
||||||
echo '<input id="pathFinderMaxResultsDefault" type="hidden" value="'.PATH_FINDER_MAX_RESULTS_DEFAULT.'">';
|
|
||||||
echo '<input id="pathFinderMaxDepth" type="hidden" value="'.PATH_FINDER_MAX_DEPTH.'">';
|
|
||||||
echo '<input id="pathFinderMaxDepthDefault" type="hidden" value="'.PATH_FINDER_MAX_DEPTH_DEFAULT.'">';
|
|
||||||
?>
|
|
||||||
<form class="form-horizontal">
|
|
||||||
<div class="form-group row">
|
|
||||||
<label for="rangeResults" class="col-sm-2 control-label"><b>Max Results</b><i class="ion-help-circled" data-toggle="tooltip" data-placement="right" title="Maximum number of paths to return for each media type."></i></label>
|
|
||||||
<div class="col-sm-10">
|
|
||||||
<input type="text" id="rangeResults">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group row">
|
|
||||||
<label for="rangeDepth" class="col-sm-2 control-label"><b>Max Depth</b><i class="ion-help-circled" data-toggle="tooltip" data-placement="right" title="Maximum number of cable jumpers for each path returned."></i></label>
|
|
||||||
<div class="col-sm-10">
|
|
||||||
<input type="text" id="rangeDepth">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div title="Run">
|
|
||||||
<button id="buttonPathFinderRun" class="btn btn-sm waves-effect waves-light btn-primary" type="button" disabled>
|
|
||||||
<span class="btn-label"><i class="fa fa-cogs"></i></span>
|
|
||||||
Find Paths
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-sm-6">
|
|
||||||
<div class="card-box">
|
|
||||||
<div class="card">
|
|
||||||
<div class="card-header">Path
|
|
||||||
</div>
|
|
||||||
<div class="card-block">
|
|
||||||
<blockquote class="card-blockquote">
|
|
||||||
<div class="table-responsive">
|
|
||||||
<table id="cablePathTable" class="table table-striped table-bordered">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>MediaType</th>
|
|
||||||
<th>Local</th>
|
|
||||||
<th>Adj.</th>
|
|
||||||
<th>Path</th>
|
|
||||||
<th>Total</th>
|
|
||||||
<!--th></th-->
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody id="cablePathTableBody">
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</blockquote>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-sm-6">
|
|
||||||
<div class="card-box">
|
|
||||||
<div class="card">
|
|
||||||
<div class="card-header">Path
|
|
||||||
<span>
|
|
||||||
<div class="btn-group pull-right">
|
|
||||||
<button type="button" class="btn btn-sm btn-custom dropdown-toggle waves-effect waves-light" data-toggle="dropdown" aria-expanded="false">Actions <span class="m-l-5"><i class="fa fa-cog"></i></span></button>
|
|
||||||
<div class="dropdown-menu">
|
|
||||||
<a id="printPathFinder" class="dropdown-item" href="#" ><i class="ion-map"></i></span> Print</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div class="card-block">
|
|
||||||
<blockquote class="card-blockquote">
|
|
||||||
<div id="containerCablePath"></div>
|
|
||||||
</blockquote>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="modal-footer">
|
|
||||||
<button type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">Close</button>
|
|
||||||
</div>
|
|
||||||
</div><!-- /.modal-content -->
|
|
||||||
</div><!-- /.modal-dialog -->
|
|
||||||
</div><!-- /.modal -->
|
|
||||||
|
|
||||||
<!-- Make server data available to client via hidden inputs -->
|
<!-- Make server data available to client via hidden inputs -->
|
||||||
<?php include_once('includes/content-build-serverData.php'); ?>
|
<?php include_once('includes/content-build-serverData.php'); ?>
|
||||||
|
|||||||
@ -289,7 +289,10 @@ var $qls;
|
|||||||
while($row = $this->qls->SQL->fetch_assoc($query)) {
|
while($row = $this->qls->SQL->fetch_assoc($query)) {
|
||||||
$this->inventoryAllArray[$row['id']] = $row;
|
$this->inventoryAllArray[$row['id']] = $row;
|
||||||
if($row['a_object_id'] != 0) {
|
if($row['a_object_id'] != 0) {
|
||||||
$this->inventoryArray[$row['a_object_id']][$row['a_object_face']][$row['a_object_depth']][$row['a_port_id']] = array(
|
if(!isset($this->inventoryArray[$row['a_object_id']][$row['a_object_face']][$row['a_object_depth']][$row['a_port_id']])) {
|
||||||
|
$this->inventoryArray[$row['a_object_id']][$row['a_object_face']][$row['a_object_depth']][$row['a_port_id']] = array();
|
||||||
|
}
|
||||||
|
array_push($this->inventoryArray[$row['a_object_id']][$row['a_object_face']][$row['a_object_depth']][$row['a_port_id']], array(
|
||||||
'rowID' => $row['id'],
|
'rowID' => $row['id'],
|
||||||
'id' => $row['b_object_id'],
|
'id' => $row['b_object_id'],
|
||||||
'face' => $row['b_object_face'],
|
'face' => $row['b_object_face'],
|
||||||
@ -299,10 +302,13 @@ var $qls;
|
|||||||
'localAttrPrefix' => 'a',
|
'localAttrPrefix' => 'a',
|
||||||
'remoteEndID' => $row['b_id'],
|
'remoteEndID' => $row['b_id'],
|
||||||
'remoteAttrPrefix' => 'b'
|
'remoteAttrPrefix' => 'b'
|
||||||
);
|
));
|
||||||
}
|
}
|
||||||
if($row['b_object_id'] != 0) {
|
if($row['b_object_id'] != 0) {
|
||||||
$this->inventoryArray[$row['b_object_id']][$row['b_object_face']][$row['b_object_depth']][$row['b_port_id']] = array(
|
if(!isset($this->inventoryArray[$row['b_object_id']][$row['b_object_face']][$row['b_object_depth']][$row['b_port_id']])) {
|
||||||
|
$this->inventoryArray[$row['b_object_id']][$row['b_object_face']][$row['b_object_depth']][$row['b_port_id']] = array();
|
||||||
|
}
|
||||||
|
array_push($this->inventoryArray[$row['b_object_id']][$row['b_object_face']][$row['b_object_depth']][$row['b_port_id']], array(
|
||||||
'rowID' => $row['id'],
|
'rowID' => $row['id'],
|
||||||
'id' => $row['a_object_id'],
|
'id' => $row['a_object_id'],
|
||||||
'face' => $row['a_object_face'],
|
'face' => $row['a_object_face'],
|
||||||
@ -312,7 +318,7 @@ var $qls;
|
|||||||
'localAttrPrefix' => 'b',
|
'localAttrPrefix' => 'b',
|
||||||
'remoteEndID' => $row['a_id'],
|
'remoteEndID' => $row['a_id'],
|
||||||
'remoteAttrPrefix' => 'a'
|
'remoteAttrPrefix' => 'a'
|
||||||
);
|
));
|
||||||
}
|
}
|
||||||
if($row['a_id'] != 0) {
|
if($row['a_id'] != 0) {
|
||||||
$this->inventoryByIDArray[$row['a_id']] = array(
|
$this->inventoryByIDArray[$row['a_id']] = array(
|
||||||
@ -1846,7 +1852,8 @@ var $qls;
|
|||||||
}
|
}
|
||||||
|
|
||||||
function clearInventoryTable($objID, $objFace, $objDepth, $objPort){
|
function clearInventoryTable($objID, $objFace, $objDepth, $objPort){
|
||||||
if($inventoryEntry = $this->inventoryArray[$objID][$objFace][$objDepth][$objPort]) {
|
if($inventory = $this->inventoryArray[$objID][$objFace][$objDepth][$objPort]) {
|
||||||
|
foreach($inventory as $inventoryEntryIndex => $inventoryEntry) {
|
||||||
$rowID = $inventoryEntry['rowID'];
|
$rowID = $inventoryEntry['rowID'];
|
||||||
if($inventoryEntry['localEndID'] === 0 and $inventoryEntry['remoteEndID'] === 0) {
|
if($inventoryEntry['localEndID'] === 0 and $inventoryEntry['remoteEndID'] === 0) {
|
||||||
// If this is an unmanaged connection, delete the entry
|
// If this is an unmanaged connection, delete the entry
|
||||||
@ -1861,11 +1868,12 @@ var $qls;
|
|||||||
$attrPrefix.'_port_id' => 0
|
$attrPrefix.'_port_id' => 0
|
||||||
);
|
);
|
||||||
$this->qls->SQL->update('app_inventory', $set, array('id' => array('=', $rowID)));
|
$this->qls->SQL->update('app_inventory', $set, array('id' => array('=', $rowID)));
|
||||||
if(isset($this->inventoryArray[$inventoryEntry['id']][$inventoryEntry['face']][$inventoryEntry['depth']][$inventoryEntry['port']])) {
|
if(isset($this->inventoryArray[$inventoryEntry['id']][$inventoryEntry['face']][$inventoryEntry['depth']][$inventoryEntry['port']][$inventoryEntryIndex])) {
|
||||||
$this->inventoryArray[$inventoryEntry['id']][$inventoryEntry['face']][$inventoryEntry['depth']][$inventoryEntry['port']]['id'] = 0;
|
$this->inventoryArray[$inventoryEntry['id']][$inventoryEntry['face']][$inventoryEntry['depth']][$inventoryEntry['port']][$inventoryEntryIndex]['id'] = 0;
|
||||||
$this->inventoryArray[$inventoryEntry['id']][$inventoryEntry['face']][$inventoryEntry['depth']][$inventoryEntry['port']]['face'] = 0;
|
$this->inventoryArray[$inventoryEntry['id']][$inventoryEntry['face']][$inventoryEntry['depth']][$inventoryEntry['port']][$inventoryEntryIndex]['face'] = 0;
|
||||||
$this->inventoryArray[$inventoryEntry['id']][$inventoryEntry['face']][$inventoryEntry['depth']][$inventoryEntry['port']]['depth'] = 0;
|
$this->inventoryArray[$inventoryEntry['id']][$inventoryEntry['face']][$inventoryEntry['depth']][$inventoryEntry['port']][$inventoryEntryIndex]['depth'] = 0;
|
||||||
$this->inventoryArray[$inventoryEntry['id']][$inventoryEntry['face']][$inventoryEntry['depth']][$inventoryEntry['port']]['port'] = 0;
|
$this->inventoryArray[$inventoryEntry['id']][$inventoryEntry['face']][$inventoryEntry['depth']][$inventoryEntry['port']][$inventoryEntryIndex]['port'] = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
unset($this->inventoryArray[$objID][$objFace][$objDepth][$objPort]);
|
unset($this->inventoryArray[$objID][$objFace][$objDepth][$objPort]);
|
||||||
@ -2532,19 +2540,21 @@ var $qls;
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Attr - code39
|
// Attr - code39
|
||||||
|
$code39 = 0;
|
||||||
|
$connectionArray = array();
|
||||||
if(isset($this->inventoryArray[$objID][$objFace][$objDepth][$portIndex])) {
|
if(isset($this->inventoryArray[$objID][$objFace][$objDepth][$portIndex])) {
|
||||||
$connection = $this->inventoryArray[$objID][$objFace][$objDepth][$portIndex];
|
$connectionArray = array();
|
||||||
|
foreach($this->inventoryArray[$objID][$objFace][$objDepth][$portIndex] as $connection) {
|
||||||
$inventoryID = $connection['localEndID'];
|
$inventoryID = $connection['localEndID'];
|
||||||
$code39 = $this->inventoryByIDArray[$inventoryID]['localEndCode39'];
|
$code39 = $this->inventoryByIDArray[$inventoryID]['localEndCode39'];
|
||||||
$attrAssocArray['data-code39'] = $code39;
|
|
||||||
|
|
||||||
// Connected Object GlobalID
|
// Connected Object GlobalID
|
||||||
$connectedGlobalID = 'port-4-'.$connection['id'].'-'.$connection['face'].'-'.$connection['depth'].'-'.$connection['port'];
|
$connectedGlobalID = 'port-4-'.$connection['id'].'-'.$connection['face'].'-'.$connection['depth'].'-'.$connection['port'];
|
||||||
$attrAssocArray['data-connected-global-id'] = $connectedGlobalID;
|
array_push($connectionArray, $connectedGlobalID);
|
||||||
} else {
|
|
||||||
$attrAssocArray['data-code39'] = 0;
|
|
||||||
$attrAssocArray['data-connected-global-id'] = 'none';
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
$attrAssocArray['data-code39'] = $code39;
|
||||||
|
$attrAssocArray['data-connected-global-id'] = base64_encode(json_encode($connectionArray));
|
||||||
|
|
||||||
// Attr - title
|
// Attr - title
|
||||||
$attrAssocArray['title'] = $this->generatePortName($portNameFormat, $portIndex, $portTotal);
|
$attrAssocArray['title'] = $this->generatePortName($portNameFormat, $portIndex, $portTotal);
|
||||||
@ -3110,4 +3120,50 @@ var $qls;
|
|||||||
return str_replace('‑', '-', $string);
|
return str_replace('‑', '-', $string);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function loopDetected($aID, $aFace, $aDepth, $aPort, $bID, $bFace, $bDepth, $bPort){
|
||||||
|
|
||||||
|
// If cable is connected to an object
|
||||||
|
if($aID != 0) {
|
||||||
|
|
||||||
|
// If object is trunked
|
||||||
|
if(isset($this->peerArray[$aID][$aFace][$aDepth])) {
|
||||||
|
$peerRecord = $this->peerArray[$aID][$aFace][$aDepth];
|
||||||
|
|
||||||
|
// If object's peer is not an endpoint
|
||||||
|
if(!$peerRecord['peerEndpoint']) {
|
||||||
|
$objID = $peerRecord['peerID'];
|
||||||
|
$objFace = $peerRecord['peerFace'];
|
||||||
|
$objDepth = $peerRecord['peerDepth'];
|
||||||
|
|
||||||
|
// If peer has cable connected
|
||||||
|
if(isset($this->inventoryArray[$objID][$objFace][$objDepth][$aPort])) {
|
||||||
|
|
||||||
|
foreach($this->inventoryArray[$objID][$objFace][$objDepth][$aPort] as $peerCable) {
|
||||||
|
$peerID = $peerCable['id'];
|
||||||
|
$peerFace = $peerCable['face'];
|
||||||
|
$peerDepth = $peerCable['depth'];
|
||||||
|
$peerPort = $peerCable['port'];
|
||||||
|
|
||||||
|
$loopDetected = $this->loopDetected($peerID, $peerFace, $peerDepth, $peerPort, $objID, $objFace, $objDepth, $aPort);
|
||||||
|
if($loopDetected) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
} else if($objID == $bID and $objFace == $bFace and $objDepth == $bDepth and $aPort == $bPort) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -1,37 +0,0 @@
|
|||||||
<!-- object tree modal -->
|
|
||||||
<div id="objectTreeModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="objectTreeModal" aria-hidden="true">
|
|
||||||
<div class="modal-dialog">
|
|
||||||
<div class="modal-content">
|
|
||||||
<div class="modal-header">
|
|
||||||
<div title="Close">
|
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
|
|
||||||
<i class="zmdi zmdi-close"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<h4 class="modal-title" id="objectTreeModalLabel"></h4>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
|
||||||
<div id="alertMsgObjTree" class="m-t-15"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="modal-body">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-sm-12">
|
|
||||||
<div class="card-box">
|
|
||||||
<div id="objTree" class="navTree"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="modal-footer">
|
|
||||||
<button id="buttonObjectTreeModalCancel" type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">Cancel</button>
|
|
||||||
<button id="buttonObjectTreeModalSave" type="button" class="btn btn-primary waves-effect waves-light">Save</button>
|
|
||||||
</div>
|
|
||||||
</div><!-- /.modal-content -->
|
|
||||||
</div><!-- /.modal-dialog -->
|
|
||||||
</div><!-- /.modal -->
|
|
||||||
@ -32,114 +32,3 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="aboutModal" class="modal fade bs-example-modal-lg" tabindex="-1" role="dialog" aria-labelledby="aboutModalLabel" aria-hidden="true" style="display: none;">
|
|
||||||
<div class="modal-dialog modal-lg">
|
|
||||||
<div class="modal-content">
|
|
||||||
<div class="modal-header">
|
|
||||||
<div title="Close">
|
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
|
|
||||||
<i class="zmdi zmdi-close"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<h4 class="modal-title" id="aboutModalLabel">About</h4>
|
|
||||||
</div>
|
|
||||||
<div id="aboutModalBody" class="modal-body">
|
|
||||||
<span><strong>Version:</strong></span> <?php echo PCM_VERSION; ?><br><br>
|
|
||||||
|
|
||||||
<strong>Changelog:</strong><br><br>
|
|
||||||
<?php
|
|
||||||
$handle = @fopen($_SERVER['DOCUMENT_ROOT'].'/CHANGELOG', 'r');
|
|
||||||
if ($handle) {
|
|
||||||
while (($buffer = fgets($handle, 4096)) !== false) {
|
|
||||||
echo $buffer.'<br>';
|
|
||||||
}
|
|
||||||
if (!feof($handle)) {
|
|
||||||
echo "Error: unexpected fgets() fail\n";
|
|
||||||
}
|
|
||||||
fclose($handle);
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
</div>
|
|
||||||
<div class="modal-footer">
|
|
||||||
<button type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">Close</button>
|
|
||||||
</div>
|
|
||||||
</div><!-- /.modal-content -->
|
|
||||||
</div><!-- /.modal-dialog -->
|
|
||||||
</div><!-- /.modal -->
|
|
||||||
|
|
||||||
<div id="confirmModal" style="z-index:2000;" class="modal fade bs-example-modal-sm" tabindex="-1" role="dialog" aria-labelledby="confirmModalLabel" aria-hidden="true" style="display: none;">
|
|
||||||
<div class="modal-dialog modal-sm">
|
|
||||||
<div class="modal-content">
|
|
||||||
<div class="modal-header">
|
|
||||||
<div title="Close">
|
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
|
|
||||||
<i class="zmdi zmdi-close"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<h4 class="modal-title" id="messagesModalLabel">Confirm</h4>
|
|
||||||
</div>
|
|
||||||
<div class="modal-body">
|
|
||||||
...
|
|
||||||
</div>
|
|
||||||
<div class="modal-footer">
|
|
||||||
<button id="btnConfirm" type="button" class="btn btn-danger waves-effect" data-dismiss="modal">Confirm</button>
|
|
||||||
<button type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">Cancel</button>
|
|
||||||
</div>
|
|
||||||
</div><!-- /.modal-content -->
|
|
||||||
</div><!-- /.modal-dialog -->
|
|
||||||
</div><!-- /.modal -->
|
|
||||||
|
|
||||||
<div id="notificationsModal" class="modal fade bs-example-modal-lg" tabindex="-1" role="dialog" aria-labelledby="notificationsModalLabel" aria-hidden="true" style="display: none;">
|
|
||||||
<div class="modal-dialog modal-lg">
|
|
||||||
<div class="modal-content">
|
|
||||||
<div class="modal-header">
|
|
||||||
<div title="Close">
|
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
|
|
||||||
<i class="zmdi zmdi-close"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<h4 class="modal-title" id="notificationsModalLabel">Notifications</h4>
|
|
||||||
</div>
|
|
||||||
<div id="notificationsModalBody" class="modal-body"></div>
|
|
||||||
<div class="modal-footer">
|
|
||||||
<button type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">Close</button>
|
|
||||||
</div>
|
|
||||||
</div><!-- /.modal-content -->
|
|
||||||
</div><!-- /.modal-dialog -->
|
|
||||||
</div><!-- /.modal -->
|
|
||||||
|
|
||||||
<div id="messagesModal" class="modal fade bs-example-modal-lg" tabindex="-1" role="dialog" aria-labelledby="messagesModalLabel" aria-hidden="true" style="display: none;">
|
|
||||||
<div class="modal-dialog modal-lg">
|
|
||||||
<div class="modal-content">
|
|
||||||
<div class="modal-header">
|
|
||||||
<div title="Close">
|
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
|
|
||||||
<i class="zmdi zmdi-close"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<h4 class="modal-title" id="messagesModalLabel">Messages</h4>
|
|
||||||
</div>
|
|
||||||
<div class="modal-body">
|
|
||||||
<div id="messagesModalBodyTable"></div>
|
|
||||||
<div id="messagesModalBodyMessage" style="display:none;">
|
|
||||||
<button id="messageModalButtonBack" type="button" class="btn btn-sm btn-secondary waves-effect">Back</button>
|
|
||||||
 
|
|
||||||
<div class="btn-group">
|
|
||||||
<button type="button" class="btn btn-sm btn-secondary waves-effect">Prev</button>
|
|
||||||
<button type="button" class="btn btn-sm btn-secondary waves-effect">Next</button>
|
|
||||||
</div>
|
|
||||||
 
|
|
||||||
<button type="button" class="btn btn-sm btn-danger waves-effect waves-light">Delete</button>
|
|
||||||
<hr>
|
|
||||||
<div id="messagesModalBodyMessageContent"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="modal-footer">
|
|
||||||
<button type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">Close</button>
|
|
||||||
</div>
|
|
||||||
</div><!-- /.modal-content -->
|
|
||||||
</div><!-- /.modal-dialog -->
|
|
||||||
</div><!-- /.modal -->
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
951
includes/modals.php
Executable file
951
includes/modals.php
Executable file
@ -0,0 +1,951 @@
|
|||||||
|
<?php
|
||||||
|
$page = basename($_SERVER['PHP_SELF']);
|
||||||
|
?>
|
||||||
|
|
||||||
|
<!-- Object Tree Modal -->
|
||||||
|
<div id="objectTreeModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="objectTreeModal" aria-hidden="true">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<div title="Close">
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
|
||||||
|
<i class="zmdi zmdi-close"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<h4 class="modal-title" id="objectTreeModalLabel"></h4>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
||||||
|
<div id="alertMsgObjTree" class="m-t-15"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-12">
|
||||||
|
<?php if($page == 'explore.php') { ?>
|
||||||
|
<div class="checkbox">
|
||||||
|
<input id="checkboxBreakoutCable" type="checkbox">
|
||||||
|
<label for="checkboxBreakoutCable">
|
||||||
|
Breakout Cable
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<?php } ?>
|
||||||
|
<div class="card-box">
|
||||||
|
<div id="objTree" class="navTree"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button id="buttonObjectTreeModalCancel" type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">Cancel</button>
|
||||||
|
<button id="buttonObjectTreeModalSave" type="button" class="btn btn-primary waves-effect waves-light">Save</button>
|
||||||
|
</div>
|
||||||
|
</div><!-- /.modal-content -->
|
||||||
|
</div><!-- /.modal-dialog -->
|
||||||
|
</div><!-- /.modal -->
|
||||||
|
|
||||||
|
<!-- Path Finder Modal -->
|
||||||
|
<div id="modalPathFinder" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
|
||||||
|
<div class="modal-dialog modal-lg">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<div title="Close">
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
|
||||||
|
<i class="zmdi zmdi-close"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<h4 class="modal-title" id="myModalLabel">Find Path</h4>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
||||||
|
<div id="alertMsgModal"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-12">
|
||||||
|
<div class="card-box">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-6">
|
||||||
|
<dl class="dl-horizontal row">
|
||||||
|
<dt class="col-sm-3">Local Port:</dt>
|
||||||
|
<dd id="pathFinderLocalPort" class="col-sm-9"></dd>
|
||||||
|
<dt class="col-sm-3">Remote Port:</dt>
|
||||||
|
<dd class="col-sm-9"><div id="pathFinderRemotePort"></div><div id="pathFinderTree" class="navTree m-b-30"></div></dd>
|
||||||
|
</dl>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-6">
|
||||||
|
<?php
|
||||||
|
echo '<input id="pathFinderMaxResults" type="hidden" value="'.PATH_FINDER_MAX_RESULTS.'">';
|
||||||
|
echo '<input id="pathFinderMaxResultsDefault" type="hidden" value="'.PATH_FINDER_MAX_RESULTS_DEFAULT.'">';
|
||||||
|
echo '<input id="pathFinderMaxDepth" type="hidden" value="'.PATH_FINDER_MAX_DEPTH.'">';
|
||||||
|
echo '<input id="pathFinderMaxDepthDefault" type="hidden" value="'.PATH_FINDER_MAX_DEPTH_DEFAULT.'">';
|
||||||
|
?>
|
||||||
|
<form class="form-horizontal">
|
||||||
|
<div class="form-group row">
|
||||||
|
<label for="rangeResults" class="col-sm-2 control-label"><b>Max Results</b><i class="ion-help-circled" data-toggle="tooltip" data-placement="right" title="Maximum number of paths to return for each media type."></i></label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<input type="text" id="rangeResults">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group row">
|
||||||
|
<label for="rangeDepth" class="col-sm-2 control-label"><b>Max Depth</b><i class="ion-help-circled" data-toggle="tooltip" data-placement="right" title="Maximum number of cable jumpers for each path returned."></i></label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<input type="text" id="rangeDepth">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div title="Run">
|
||||||
|
<button id="buttonPathFinderRun" class="btn btn-sm waves-effect waves-light btn-primary" type="button" disabled>
|
||||||
|
<span class="btn-label"><i class="fa fa-cogs"></i></span>
|
||||||
|
Find Paths
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-6">
|
||||||
|
<div class="card-box">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">Path
|
||||||
|
</div>
|
||||||
|
<div class="card-block">
|
||||||
|
<blockquote class="card-blockquote">
|
||||||
|
<div class="table-responsive">
|
||||||
|
<table id="cablePathTable" class="table table-striped table-bordered">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>MediaType</th>
|
||||||
|
<th>Local</th>
|
||||||
|
<th>Adj.</th>
|
||||||
|
<th>Path</th>
|
||||||
|
<th>Total</th>
|
||||||
|
<!--th></th-->
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody id="cablePathTableBody">
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</blockquote>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-6">
|
||||||
|
<div class="card-box">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">Path
|
||||||
|
<span>
|
||||||
|
<div class="btn-group pull-right">
|
||||||
|
<button type="button" class="btn btn-sm btn-custom dropdown-toggle waves-effect waves-light" data-toggle="dropdown" aria-expanded="false">Actions <span class="m-l-5"><i class="fa fa-cog"></i></span></button>
|
||||||
|
<div class="dropdown-menu">
|
||||||
|
<a id="printPathFinder" class="dropdown-item" href="#" ><i class="ion-map"></i></span> Print</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div class="card-block">
|
||||||
|
<blockquote class="card-blockquote">
|
||||||
|
<div id="containerCablePath"></div>
|
||||||
|
</blockquote>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">Close</button>
|
||||||
|
</div>
|
||||||
|
</div><!-- /.modal-content -->
|
||||||
|
</div><!-- /.modal-dialog -->
|
||||||
|
</div><!-- /.modal -->
|
||||||
|
|
||||||
|
<!-- Scan Modal -->
|
||||||
|
<div id="scanModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<div title="Close">
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
|
||||||
|
<i class="zmdi zmdi-close"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<h4 class="modal-title" id="myModalLabel">Scan Cable</h4>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
||||||
|
<div id="alertMsgScan"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-12">
|
||||||
|
<div class="card-box">
|
||||||
|
<?php
|
||||||
|
if($qls->user_info['scanMethod']) {
|
||||||
|
$labelText = 'Manual Scan:';
|
||||||
|
$manualDisplay = 'style="display:none;"';
|
||||||
|
$barcodeDisplay = '';
|
||||||
|
} else {
|
||||||
|
$labelText = 'Barcode Scan:';
|
||||||
|
$manualDisplay = '';
|
||||||
|
$barcodeDisplay = 'style="display:none;"';
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
|
||||||
|
<input id="scanMethod" type="hidden" value="<?php echo $qls->user_info['scanMethod']; ?>">
|
||||||
|
|
||||||
|
<div class="m-b-20">
|
||||||
|
<label><?php echo $labelText; ?></label>
|
||||||
|
<input id="manualCheckbox" type="checkbox" data-plugin="switchery" data-color="#f1b53d"/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="scannerContainer" <?php echo $barcodeDisplay; ?>>
|
||||||
|
<div id="flashContainer" style="display:none;" class="m-b-20">
|
||||||
|
<label>Flash:</label>
|
||||||
|
<input id="torchCheckbox" type="checkbox" data-plugin="switchery" data-color="#f1b53d"/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="scanner" style="position: relative; width: 100%; height: auto; overflow: hidden; text-align: center;" class="viewport"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="manualEntry" <?php echo $manualDisplay; ?>>
|
||||||
|
<form action="#">
|
||||||
|
<input id="manualEntryInput" type="text" class="form-control m-b-10" placeholder="Enter cable ID">
|
||||||
|
<button id="manualEntrySubmit" type="submit" class="btn btn-primary">Submit</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">Close</button>
|
||||||
|
</div>
|
||||||
|
</div><!-- /.modal-content -->
|
||||||
|
</div><!-- /.modal-dialog -->
|
||||||
|
</div><!-- /.modal -->
|
||||||
|
|
||||||
|
<!-- image upload modal -->
|
||||||
|
<div id="modalImageUpload" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="modalLabelImageUpload" aria-hidden="true">
|
||||||
|
<div class="modal-dialog modal-lg">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<div title="Close">
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
|
||||||
|
<i class="zmdi zmdi-close"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<h4 class="modal-title" id="modalLabelImageUpload">Floorplan Image</h4>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
||||||
|
<div id="alertMsgImageUpload"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-12">
|
||||||
|
<div class="card-box">
|
||||||
|
<div class="p-20">
|
||||||
|
<div class="form-group clearfix">
|
||||||
|
<div id="containerFloorplanImage" class="col-sm-12 padding-left-0 padding-right-0">
|
||||||
|
<input type="file" name="files[]" id="fileFloorplanImage" multiple="multiple">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">Close</button>
|
||||||
|
</div>
|
||||||
|
</div><!-- /.modal-content -->
|
||||||
|
</div><!-- /.modal-dialog -->
|
||||||
|
</div><!-- /.modal -->
|
||||||
|
|
||||||
|
<!-- combined template modal -->
|
||||||
|
<div id="modalCreateCombinedTemplate" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="modalLabelCreateCombinedTemplate" aria-hidden="true">
|
||||||
|
<div class="modal-dialog modal-sm">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<div title="Close">
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
|
||||||
|
<i class="zmdi zmdi-close"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<h4 class="modal-title" id="modalLabelImageUpload">Create Combined Template</h4>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
||||||
|
<div id="alertMsgCreateCombinedTemplate"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
|
||||||
|
<!-- Name -->
|
||||||
|
<fieldset class="form-group">
|
||||||
|
<label>Name <i class="ion-help-circled" data-toggle="tooltip" data-placement="right" title="Alphanumeric characters as well as hyphens (-), underscores (_), forward slashes (\/), and backslashes (\)."></i></label>
|
||||||
|
<input id="inputCreateCombinedTemplateName" class="form-control" type="text" name="name" placeholder="New_Template" value="New_Template">
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
<!-- Category -->
|
||||||
|
<fieldset class="form-group">
|
||||||
|
<label>Category <i class="ion-help-circled" data-toggle="tooltip" data-placement="right" title="Select a template category."></i></label>
|
||||||
|
<select id="inputCreateCombinedTemplateCategory" name="category" class="form-control">
|
||||||
|
<?php $qls->App->generateCategoryOptions(); ?>
|
||||||
|
</select>
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">Cancel</button>
|
||||||
|
<button id="buttonCreateCombinedTemplateModalSave" type="button" class="btn btn-primary waves-effect waves-light">Save</button>
|
||||||
|
</div>
|
||||||
|
</div><!-- /.modal-content -->
|
||||||
|
</div><!-- /.modal-dialog -->
|
||||||
|
</div><!-- /.modal -->
|
||||||
|
|
||||||
|
<!-- port name modal -->
|
||||||
|
<div id="portNameModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="portNameModal" aria-hidden="true">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<div title="Close">
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
|
||||||
|
<i class="zmdi zmdi-close"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<h4 class="modal-title">Port ID</h4>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
||||||
|
<div id="alertMsgPortName" class="m-t-15"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-12">
|
||||||
|
<div class="card-box">
|
||||||
|
|
||||||
|
<fieldset class="m-b-20">
|
||||||
|
<label>Port ID Fields:</label>
|
||||||
|
<div id="portNameFieldContainer" class="row"></div>
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
<fieldset class="m-b-20">
|
||||||
|
<button id="buttonAddPortNameField" type="button" class="btn btn-success waves-effect waves-light">
|
||||||
|
<span class="btn-label"><i class="fa fa-plus"></i>
|
||||||
|
</span>Add Field
|
||||||
|
</button>
|
||||||
|
<button id="buttonDeletePortNameField" type="button" class="btn btn-danger waves-effect waves-light">
|
||||||
|
<span class="btn-label"><i class="fa fa-minus"></i>
|
||||||
|
</span>Remove Field
|
||||||
|
</button>
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
<fieldset class="m-b-20">
|
||||||
|
<label>Field Properties:</label>
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td class="objectDetailAlignRight">
|
||||||
|
<strong>Type:  </strong>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<span id="detailPortNameType">
|
||||||
|
<select id="selectPortNameFieldType" class="form-control">
|
||||||
|
<option value="static">Static</option>
|
||||||
|
<option value="incremental">Incremental</option>
|
||||||
|
<option value="series">Series</option>
|
||||||
|
</select>
|
||||||
|
</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="objectDetailAlignRight">
|
||||||
|
<strong>Count:  </strong>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<span id="detailPortNameCount">
|
||||||
|
<input id="inputPortNameFieldCount" class="form-control" type="number" min="0">
|
||||||
|
</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="objectDetailAlignRight">
|
||||||
|
<strong>Order:  </strong>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<span id="detailPortNameOrder">
|
||||||
|
<select id="selectPortNameFieldOrder" class="form-control">
|
||||||
|
<option value="1">1st</option>
|
||||||
|
<option value="2">2nd</option>
|
||||||
|
</select>
|
||||||
|
</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
<fieldset class="m-b-20">
|
||||||
|
<label>Results:</label><br>
|
||||||
|
<div id="portNameDisplayConfig"></div>
|
||||||
|
</fieldset>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button id="buttonPortNameModalClose" type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">Close</button>
|
||||||
|
</div>
|
||||||
|
</div><!-- /.modal-content -->
|
||||||
|
</div><!-- /.modal-dialog -->
|
||||||
|
</div><!-- /.modal -->
|
||||||
|
|
||||||
|
<!-- template category modal -->
|
||||||
|
<div id="myModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="modelLabelTemplateCategory" aria-hidden="true">
|
||||||
|
<div class="modal-dialog modal-lg">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<div title="Close">
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
|
||||||
|
<i class="zmdi zmdi-close"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<h4 class="modal-title" id="modelLabelTemplateCategory">Manage Categories</h4>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
||||||
|
<div id="alertMsgCategory"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-6">
|
||||||
|
<div class="card-box">
|
||||||
|
<h4 class="header-title m-t-0 m-b-30">Create/Edit</h4>
|
||||||
|
<form id="manageCategories-Form">
|
||||||
|
<input id="inputCategoryID" type="hidden" name="id" value="0">
|
||||||
|
<input type="hidden" name="action" value="add">
|
||||||
|
<fieldset class="m-b-20">
|
||||||
|
<label>Name</label>
|
||||||
|
<input id="inputCategoryName" type="text" name="name" placeholder="Category Name" class="form-control">
|
||||||
|
</fieldset>
|
||||||
|
<fieldset class="m-b-20">
|
||||||
|
<label>Category Color</label>
|
||||||
|
<br><input id="color-picker" type='text' name='color'>
|
||||||
|
</fieldset>
|
||||||
|
<fieldset class="m-b-20">
|
||||||
|
<div class="checkbox">
|
||||||
|
<input id="inputCategoryDefault" type="checkbox" name="defaultOption">
|
||||||
|
<label for="inputCategoryDefault">
|
||||||
|
Default
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
<fieldset>
|
||||||
|
<button id="manageCategories-Save" type="button" class="btn btn-success waves-effect waves-light">
|
||||||
|
<span class="btn-label"><i class="fa fa-check"></i></span>
|
||||||
|
Save
|
||||||
|
</button>
|
||||||
|
</fieldset>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-6">
|
||||||
|
<div class="card-box">
|
||||||
|
<h4 class="header-title m-t-0 m-b-30">Current</h4>
|
||||||
|
<form id="manageCategoriesCurrent-Form">
|
||||||
|
<input id="inputCategoryCurrentID" type="hidden" name="id" value="0">
|
||||||
|
<input type="hidden" name="action" value="delete">
|
||||||
|
<fieldset>
|
||||||
|
<div id="categoryList">
|
||||||
|
<?php echo $categoryList; ?>
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
<fieldset class="m-t-20">
|
||||||
|
<button id="manageCategories-Delete" type="button" class="btn btn-danger waves-effect waves-light">
|
||||||
|
<span class="btn-label"><i class="fa fa-times"></i></span>
|
||||||
|
Delete
|
||||||
|
</button>
|
||||||
|
</fieldset>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">Close</button>
|
||||||
|
</div>
|
||||||
|
</div><!-- /.modal-content -->
|
||||||
|
</div><!-- /.modal-dialog -->
|
||||||
|
</div><!-- /.modal -->
|
||||||
|
|
||||||
|
<!-- template catalog modal -->
|
||||||
|
<div id="modalTemplateCatalog" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="modalLabelTemplateCatalog" aria-hidden="true">
|
||||||
|
<div class="modal-dialog modal-lg">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<div title="Close">
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
|
||||||
|
<i class="zmdi zmdi-close"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<h4 class="modal-title" id="modalLabelTemplateCatalog">Template Catalog</h4>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
||||||
|
<div id="alertMsgCatalog"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 col-xl-6">
|
||||||
|
<div class="card-box">
|
||||||
|
<h4 class="header-title m-t-0 m-b-30">Available Templates</h4>
|
||||||
|
|
||||||
|
<div id="templateCatalogAvailableContainer">
|
||||||
|
<h6>Name Filter:</h6>
|
||||||
|
<select id="templateCatalogFilter" multiple data-role="tagsinput"></select>
|
||||||
|
<div id="containerTemplateCatalog"></div>
|
||||||
|
</div>
|
||||||
|
<p class="m-t-10">
|
||||||
|
<mark>Don't see what you're looking for?</mark><br>
|
||||||
|
Email <ins>support@patchcablemgr.com</ins> with a link or description<br>
|
||||||
|
of the item and we'll add it to the catalog.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 col-xl-6">
|
||||||
|
<div class="card-box">
|
||||||
|
<h4 class="header-title m-t-0 m-b-30">Selected Template</h4>
|
||||||
|
<button id="buttonTemplateCatalogImport" type="button" class="btn btn-primary waves-effect waves-light m-b-10" disabled>
|
||||||
|
<span class="btn-label"><i class="fa fa-plus"></i>
|
||||||
|
</span>Import</button>
|
||||||
|
<div id="detailsContainer">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td class="objectDetailAlignRight">
|
||||||
|
<strong>Object Name:  </strong>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<span id="detailTemplateCatalogObjName" class="objTemplateCatalogDetail">-</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="objectDetailAlignRight">
|
||||||
|
<strong>Template Name:  </strong>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<span id="detailTemplateCatalogTemplateName" class="objTemplateCatalogDetail">-</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="objectDetailAlignRight">
|
||||||
|
<strong>Category:  </strong>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<span id="detailTemplateCatalogCategory" class="objTemplateCatalogDetail">-</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="objectDetailAlignRight" valign="top">
|
||||||
|
<strong>Trunked To:  </strong>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<span id="detailTemplateCatalogTrunkedTo" class="objTemplateCatalogDetail">-</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="objectDetailAlignRight">
|
||||||
|
<strong>Type:  </strong>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<span id="detailTemplateCatalogObjType" class="objTemplateCatalogDetail">-</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="objectDetailAlignRight">
|
||||||
|
<strong>Function:  </strong>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<span id="detailTemplateCatalogObjFunction" class="objTemplateCatalogDetail">-</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="objectDetailAlignRight">
|
||||||
|
<strong>RU Size:  </strong>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<span id="detailTemplateCatalogRUSize" class="objTemplateCatalogDetail">-</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="objectDetailAlignRight">
|
||||||
|
<strong>Mount Config:  </strong>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<span id="detailTemplateCatalogMountConfig" class="objTemplateCatalogDetail">-</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="objectDetailAlignRight">
|
||||||
|
<strong>Port Range:  </strong>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<span id="detailTemplateCatalogPortRange" class="objTemplateCatalogDetail">-</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="objectDetailAlignRight">
|
||||||
|
<strong>Port Type:  </strong>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<span id="detailTemplateCatalogPortType" class="objTemplateCatalogDetail">-</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="objectDetailAlignRight">
|
||||||
|
<strong>Media Type:  </strong>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<span id="detailTemplateCatalogMediaType" class="objTemplateCatalogDetail">-</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="objectDetailAlignRight">
|
||||||
|
<strong>Image:  </strong>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<span id="detailTemplateCatalogImage" class="objTemplateCatalogDetail">-</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">Close</button>
|
||||||
|
</div>
|
||||||
|
</div><!-- /.modal-content -->
|
||||||
|
</div><!-- /.modal-dialog -->
|
||||||
|
</div><!-- /.modal -->
|
||||||
|
|
||||||
|
<!-- image upload modal -->
|
||||||
|
<div id="modalImageUpload" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="modalLabelImageUpload" aria-hidden="true">
|
||||||
|
<div class="modal-dialog modal-lg">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<div title="Close">
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
|
||||||
|
<i class="zmdi zmdi-close"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<h4 class="modal-title" id="modalLabelImageUpload">Template Image</h4>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
||||||
|
<div id="alertMsgImageUpload"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-12">
|
||||||
|
<div class="card-box">
|
||||||
|
<div class="p-20">
|
||||||
|
<div class="form-group clearfix">
|
||||||
|
<div id="containerTemplateImage" class="col-sm-12 padding-left-0 padding-right-0">
|
||||||
|
<input type="file" name="files[]" id="fileTemplateImage" multiple="multiple">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">Close</button>
|
||||||
|
</div>
|
||||||
|
</div><!-- /.modal-content -->
|
||||||
|
</div><!-- /.modal-dialog -->
|
||||||
|
</div><!-- /.modal -->
|
||||||
|
|
||||||
|
<!-- delete template modal -->
|
||||||
|
<div id="modalTemplateDeleteConfirm" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="modalLabelTemplateDeleteConfirm" aria-hidden="true" style="display: none;">
|
||||||
|
<div class="modal-dialog modal-sm">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<div title="Close">
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
|
||||||
|
<i class="zmdi zmdi-close"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<h4 class="modal-title" id="modalLabelTemplateDeleteConfirm">Delete Template</h4>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
Delete <strong id="deleteTemplateName"></strong>?
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button id="confirmObjDelete" type="button" class="btn btn-secondary btn-danger waves-effect" data-toggle="modal" data-target="#modalTemplateDeleteConfirm">Confirm</button>
|
||||||
|
<button type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">Cancel</button>
|
||||||
|
</div>
|
||||||
|
</div><!-- /.modal-content -->
|
||||||
|
</div><!-- /.modal-dialog -->
|
||||||
|
</div><!-- /.modal -->
|
||||||
|
|
||||||
|
<!-- image upload modal -->
|
||||||
|
<div id="modalTemplateWhereUsed" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="modalLableTemplateWhereUsed" aria-hidden="true" style="display: none;">
|
||||||
|
<div class="modal-dialog modal-lg">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<div title="Close">
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
|
||||||
|
<i class="zmdi zmdi-close"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<h4 class="modal-title" id="modalLableTemplateWhereUsed">Where Used</h4>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body col-xs-12 col-sm-12 col-md-12 col-lg-12 col-xl-12">
|
||||||
|
<h4 id="whereUsedTemplateName"></h4>
|
||||||
|
<div id="whereUsedResults" class="col-xs-6 col-sm-6 col-md-6 col-lg-6 col-xl-6"></div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">Close</button>
|
||||||
|
</div>
|
||||||
|
</div><!-- /.modal-content -->
|
||||||
|
</div><!-- /.modal-dialog -->
|
||||||
|
</div><!-- /.modal -->
|
||||||
|
|
||||||
|
<div id="aboutModal" class="modal fade bs-example-modal-lg" tabindex="-1" role="dialog" aria-labelledby="aboutModalLabel" aria-hidden="true" style="display: none;">
|
||||||
|
<div class="modal-dialog modal-lg">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<div title="Close">
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
|
||||||
|
<i class="zmdi zmdi-close"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<h4 class="modal-title" id="aboutModalLabel">About</h4>
|
||||||
|
</div>
|
||||||
|
<div id="aboutModalBody" class="modal-body">
|
||||||
|
<span><strong>Version:</strong></span> <?php echo PCM_VERSION; ?><br><br>
|
||||||
|
|
||||||
|
<strong>Changelog:</strong><br><br>
|
||||||
|
<?php
|
||||||
|
$handle = @fopen($_SERVER['DOCUMENT_ROOT'].'/CHANGELOG', 'r');
|
||||||
|
if ($handle) {
|
||||||
|
while (($buffer = fgets($handle, 4096)) !== false) {
|
||||||
|
echo $buffer.'<br>';
|
||||||
|
}
|
||||||
|
if (!feof($handle)) {
|
||||||
|
echo "Error: unexpected fgets() fail\n";
|
||||||
|
}
|
||||||
|
fclose($handle);
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">Close</button>
|
||||||
|
</div>
|
||||||
|
</div><!-- /.modal-content -->
|
||||||
|
</div><!-- /.modal-dialog -->
|
||||||
|
</div><!-- /.modal -->
|
||||||
|
|
||||||
|
<div id="confirmModal" style="z-index:2000;" class="modal fade bs-example-modal-sm" tabindex="-1" role="dialog" aria-labelledby="confirmModalLabel" aria-hidden="true" style="display: none;">
|
||||||
|
<div class="modal-dialog modal-sm">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<div title="Close">
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
|
||||||
|
<i class="zmdi zmdi-close"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<h4 class="modal-title" id="messagesModalLabel">Confirm</h4>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
...
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button id="btnConfirm" type="button" class="btn btn-danger waves-effect" data-dismiss="modal">Confirm</button>
|
||||||
|
<button type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">Cancel</button>
|
||||||
|
</div>
|
||||||
|
</div><!-- /.modal-content -->
|
||||||
|
</div><!-- /.modal-dialog -->
|
||||||
|
</div><!-- /.modal -->
|
||||||
|
|
||||||
|
<div id="notificationsModal" class="modal fade bs-example-modal-lg" tabindex="-1" role="dialog" aria-labelledby="notificationsModalLabel" aria-hidden="true" style="display: none;">
|
||||||
|
<div class="modal-dialog modal-lg">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<div title="Close">
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
|
||||||
|
<i class="zmdi zmdi-close"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<h4 class="modal-title" id="notificationsModalLabel">Notifications</h4>
|
||||||
|
</div>
|
||||||
|
<div id="notificationsModalBody" class="modal-body"></div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">Close</button>
|
||||||
|
</div>
|
||||||
|
</div><!-- /.modal-content -->
|
||||||
|
</div><!-- /.modal-dialog -->
|
||||||
|
</div><!-- /.modal -->
|
||||||
|
|
||||||
|
<div id="messagesModal" class="modal fade bs-example-modal-lg" tabindex="-1" role="dialog" aria-labelledby="messagesModalLabel" aria-hidden="true" style="display: none;">
|
||||||
|
<div class="modal-dialog modal-lg">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<div title="Close">
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
|
||||||
|
<i class="zmdi zmdi-close"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<h4 class="modal-title" id="messagesModalLabel">Messages</h4>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<div id="messagesModalBodyTable"></div>
|
||||||
|
<div id="messagesModalBodyMessage" style="display:none;">
|
||||||
|
<button id="messageModalButtonBack" type="button" class="btn btn-sm btn-secondary waves-effect">Back</button>
|
||||||
|
 
|
||||||
|
<div class="btn-group">
|
||||||
|
<button type="button" class="btn btn-sm btn-secondary waves-effect">Prev</button>
|
||||||
|
<button type="button" class="btn btn-sm btn-secondary waves-effect">Next</button>
|
||||||
|
</div>
|
||||||
|
 
|
||||||
|
<button type="button" class="btn btn-sm btn-danger waves-effect waves-light">Delete</button>
|
||||||
|
<hr>
|
||||||
|
<div id="messagesModalBodyMessageContent"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">Close</button>
|
||||||
|
</div>
|
||||||
|
</div><!-- /.modal-content -->
|
||||||
|
</div><!-- /.modal-dialog -->
|
||||||
|
</div><!-- /.modal -->
|
||||||
|
|
||||||
|
<div id="removeUserModal" class="modal fade bs-example-modal-sm" tabindex="-1" role="dialog" aria-labelledby="removeUserModalLabel" aria-hidden="true" style="display: none;">
|
||||||
|
<div class="modal-dialog modal-sm">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<div title="Close">
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
|
||||||
|
<i class="zmdi zmdi-close"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<h4 class="modal-title" id="removeUserModalLabel">Remove User</h4>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
Delete: username?
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">Cancel</button>
|
||||||
|
<button type="button" class="btn btn-primary waves-effect waves-light">Ok</button>
|
||||||
|
</div>
|
||||||
|
</div><!-- /.modal-content -->
|
||||||
|
</div><!-- /.modal-dialog -->
|
||||||
|
</div><!-- /.modal -->
|
||||||
|
|
||||||
|
<div id="cancelEntitlementModal" class="modal fade bs-example-modal-sm" tabindex="-1" role="dialog" aria-labelledby="cancelEntitlementModalLabel" aria-hidden="true" style="display: none;">
|
||||||
|
<div class="modal-dialog modal-sm">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<div title="Close">
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
|
||||||
|
<i class="zmdi zmdi-close"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<h4 class="modal-title" id="cancelEntitlementModalLabel">Cancel Entitlement</h4>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
Confirm cancelation.
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button id="confirmEntitlementCancellation" type="button" class="btn btn-secondary btn-danger waves-effect" data-toggle="modal" data-target="#cancelEntitlementModal">Confirm</button>
|
||||||
|
<button type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">Cancel</button>
|
||||||
|
</div>
|
||||||
|
</div><!-- /.modal-content -->
|
||||||
|
</div><!-- /.modal-dialog -->
|
||||||
|
</div><!-- /.modal -->
|
||||||
|
|
||||||
|
<div id="importModal" class="modal fade bs-example-modal-lg" tabindex="-1" role="dialog" aria-labelledby="importModalLabel" aria-hidden="true" style="display: none;">
|
||||||
|
<div class="modal-dialog modal-lg">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<div title="Close">
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
|
||||||
|
<i class="zmdi zmdi-close"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<h4 class="modal-title" id="importModalLabel">Import</h4>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
||||||
|
<div id="alertMsgImport"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="p-20">
|
||||||
|
<div class="form-group clearfix">
|
||||||
|
<div class="col-sm-12 padding-left-0 padding-right-0">
|
||||||
|
<input type="file" name="files[]" id="fileDataImport" multiple="multiple">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">Close</button>
|
||||||
|
</div>
|
||||||
|
</div><!-- /.modal-content -->
|
||||||
|
</div><!-- /.modal-dialog -->
|
||||||
|
</div><!-- /.modal -->
|
||||||
@ -6,13 +6,15 @@ $qls->Security->check_auth_page('user.php');
|
|||||||
?>
|
?>
|
||||||
|
|
||||||
<?php require './includes/header_start.php'; ?>
|
<?php require './includes/header_start.php'; ?>
|
||||||
|
|
||||||
<!-- DataTables -->
|
<!-- DataTables -->
|
||||||
<link href="assets/plugins/datatables/dataTables.bootstrap4.min.css" rel="stylesheet" type="text/css"/>
|
<link href="assets/plugins/datatables/dataTables.bootstrap4.min.css" rel="stylesheet" type="text/css"/>
|
||||||
<link href="assets/plugins/datatables/buttons.bootstrap4.min.css" rel="stylesheet" type="text/css"/>
|
<link href="assets/plugins/datatables/buttons.bootstrap4.min.css" rel="stylesheet" type="text/css"/>
|
||||||
<!--Morris Chart CSS -->
|
<!--Morris Chart CSS -->
|
||||||
<link rel="stylesheet" href="assets/plugins/morris/morris.css">
|
<link rel="stylesheet" href="assets/plugins/morris/morris.css">
|
||||||
<?php require './includes/header_end.php'; ?>
|
|
||||||
|
|
||||||
|
<?php require './includes/header_end.php'; ?>
|
||||||
|
<?php require_once './includes/modals.php'; ?>
|
||||||
|
|
||||||
<!-- Page-Title -->
|
<!-- Page-Title -->
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|||||||
@ -7,7 +7,7 @@ $qls->Security->check_auth_page('user.php');
|
|||||||
|
|
||||||
<?php require 'includes/header_start.php'; ?>
|
<?php require 'includes/header_start.php'; ?>
|
||||||
<?php require 'includes/header_end.php'; ?>
|
<?php require 'includes/header_end.php'; ?>
|
||||||
|
<?php require_once './includes/modals.php'; ?>
|
||||||
|
|
||||||
<!-- Page-Title -->
|
<!-- Page-Title -->
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|||||||
73
scan.php
73
scan.php
@ -6,6 +6,7 @@ $qls->Security->check_auth_page('operator.php');
|
|||||||
?>
|
?>
|
||||||
|
|
||||||
<?php require 'includes/header_start.php'; ?>
|
<?php require 'includes/header_start.php'; ?>
|
||||||
|
|
||||||
<!-- JSTree css -->
|
<!-- JSTree css -->
|
||||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.3.8/themes/default/style.min.css" />
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.3.8/themes/default/style.min.css" />
|
||||||
|
|
||||||
@ -13,77 +14,7 @@ $qls->Security->check_auth_page('operator.php');
|
|||||||
<link type="text/css" href="assets/plugins/x-editable/css/bootstrap-editable.css" rel="stylesheet">
|
<link type="text/css" href="assets/plugins/x-editable/css/bootstrap-editable.css" rel="stylesheet">
|
||||||
|
|
||||||
<?php require 'includes/header_end.php'; ?>
|
<?php require 'includes/header_end.php'; ?>
|
||||||
<?php require_once './includes/content-object_tree_modal.php'; ?>
|
<?php require_once './includes/modals.php'; ?>
|
||||||
|
|
||||||
<!-- scan modal -->
|
|
||||||
<div id="scanModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
|
|
||||||
<div class="modal-dialog">
|
|
||||||
<div class="modal-content">
|
|
||||||
<div class="modal-header">
|
|
||||||
<div title="Close">
|
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
|
|
||||||
<i class="zmdi zmdi-close"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<h4 class="modal-title" id="myModalLabel">Scan Cable</h4>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
|
||||||
<div id="alertMsgScan"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="modal-body">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-sm-12">
|
|
||||||
<div class="card-box">
|
|
||||||
<?php
|
|
||||||
if($qls->user_info['scanMethod']) {
|
|
||||||
$labelText = 'Manual Scan:';
|
|
||||||
$manualDisplay = 'style="display:none;"';
|
|
||||||
$barcodeDisplay = '';
|
|
||||||
} else {
|
|
||||||
$labelText = 'Barcode Scan:';
|
|
||||||
$manualDisplay = '';
|
|
||||||
$barcodeDisplay = 'style="display:none;"';
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
|
|
||||||
<input id="scanMethod" type="hidden" value="<?php echo $qls->user_info['scanMethod']; ?>">
|
|
||||||
|
|
||||||
<div class="m-b-20">
|
|
||||||
<label><?php echo $labelText; ?></label>
|
|
||||||
<input id="manualCheckbox" type="checkbox" data-plugin="switchery" data-color="#f1b53d"/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="scannerContainer" <?php echo $barcodeDisplay; ?>>
|
|
||||||
<div id="flashContainer" style="display:none;" class="m-b-20">
|
|
||||||
<label>Flash:</label>
|
|
||||||
<input id="torchCheckbox" type="checkbox" data-plugin="switchery" data-color="#f1b53d"/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="scanner" style="position: relative; width: 100%; height: auto; overflow: hidden; text-align: center;" class="viewport"></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="manualEntry" <?php echo $manualDisplay; ?>>
|
|
||||||
<form action="#">
|
|
||||||
<input id="manualEntryInput" type="text" class="form-control m-b-10" placeholder="Enter cable ID">
|
|
||||||
<button id="manualEntrySubmit" type="submit" class="btn btn-primary">Submit</button>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="modal-footer">
|
|
||||||
<button type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">Close</button>
|
|
||||||
</div>
|
|
||||||
</div><!-- /.modal-content -->
|
|
||||||
</div><!-- /.modal-dialog -->
|
|
||||||
</div><!-- /.modal -->
|
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 col-xl-12">
|
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 col-xl-12">
|
||||||
|
|||||||
@ -7,7 +7,7 @@ $qls->Security->check_auth_page('user.php');
|
|||||||
|
|
||||||
<?php require 'includes/header_start.php'; ?>
|
<?php require 'includes/header_start.php'; ?>
|
||||||
<?php require 'includes/header_end.php'; ?>
|
<?php require 'includes/header_end.php'; ?>
|
||||||
|
<?php require_once './includes/modals.php'; ?>
|
||||||
|
|
||||||
<!-- Page-Title -->
|
<!-- Page-Title -->
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|||||||
429
templates.php
429
templates.php
@ -20,434 +20,7 @@ require_once './includes/content-templates.php';
|
|||||||
<link href="assets/plugins/jquery.filer/css/themes/jquery.filer-dragdropbox-theme.css" rel="stylesheet" />
|
<link href="assets/plugins/jquery.filer/css/themes/jquery.filer-dragdropbox-theme.css" rel="stylesheet" />
|
||||||
|
|
||||||
<?php require 'includes/header_end.php'; ?>
|
<?php require 'includes/header_end.php'; ?>
|
||||||
|
<?php require_once './includes/modals.php'; ?>
|
||||||
<!-- port name modal -->
|
|
||||||
<div id="portNameModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="portNameModal" aria-hidden="true">
|
|
||||||
<div class="modal-dialog">
|
|
||||||
<div class="modal-content">
|
|
||||||
<div class="modal-header">
|
|
||||||
<div title="Close">
|
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
|
|
||||||
<i class="zmdi zmdi-close"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<h4 class="modal-title">Port ID</h4>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
|
||||||
<div id="alertMsgPortName" class="m-t-15"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="modal-body">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-sm-12">
|
|
||||||
<div class="card-box">
|
|
||||||
|
|
||||||
<fieldset class="m-b-20">
|
|
||||||
<label>Port ID Fields:</label>
|
|
||||||
<div id="portNameFieldContainer" class="row"></div>
|
|
||||||
</fieldset>
|
|
||||||
|
|
||||||
<fieldset class="m-b-20">
|
|
||||||
<button id="buttonAddPortNameField" type="button" class="btn btn-success waves-effect waves-light">
|
|
||||||
<span class="btn-label"><i class="fa fa-plus"></i>
|
|
||||||
</span>Add Field
|
|
||||||
</button>
|
|
||||||
<button id="buttonDeletePortNameField" type="button" class="btn btn-danger waves-effect waves-light">
|
|
||||||
<span class="btn-label"><i class="fa fa-minus"></i>
|
|
||||||
</span>Remove Field
|
|
||||||
</button>
|
|
||||||
</fieldset>
|
|
||||||
|
|
||||||
<fieldset class="m-b-20">
|
|
||||||
<label>Field Properties:</label>
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<td class="objectDetailAlignRight">
|
|
||||||
<strong>Type:  </strong>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<span id="detailPortNameType">
|
|
||||||
<select id="selectPortNameFieldType" class="form-control">
|
|
||||||
<option value="static">Static</option>
|
|
||||||
<option value="incremental">Incremental</option>
|
|
||||||
<option value="series">Series</option>
|
|
||||||
</select>
|
|
||||||
</span>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="objectDetailAlignRight">
|
|
||||||
<strong>Count:  </strong>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<span id="detailPortNameCount">
|
|
||||||
<input id="inputPortNameFieldCount" class="form-control" type="number" min="0">
|
|
||||||
</span>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="objectDetailAlignRight">
|
|
||||||
<strong>Order:  </strong>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<span id="detailPortNameOrder">
|
|
||||||
<select id="selectPortNameFieldOrder" class="form-control">
|
|
||||||
<option value="1">1st</option>
|
|
||||||
<option value="2">2nd</option>
|
|
||||||
</select>
|
|
||||||
</span>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</fieldset>
|
|
||||||
|
|
||||||
<fieldset class="m-b-20">
|
|
||||||
<label>Results:</label><br>
|
|
||||||
<div id="portNameDisplayConfig"></div>
|
|
||||||
</fieldset>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="modal-footer">
|
|
||||||
<button id="buttonPortNameModalClose" type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">Close</button>
|
|
||||||
</div>
|
|
||||||
</div><!-- /.modal-content -->
|
|
||||||
</div><!-- /.modal-dialog -->
|
|
||||||
</div><!-- /.modal -->
|
|
||||||
|
|
||||||
<!-- template category modal -->
|
|
||||||
<div id="myModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="modelLabelTemplateCategory" aria-hidden="true">
|
|
||||||
<div class="modal-dialog modal-lg">
|
|
||||||
<div class="modal-content">
|
|
||||||
<div class="modal-header">
|
|
||||||
<div title="Close">
|
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
|
|
||||||
<i class="zmdi zmdi-close"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<h4 class="modal-title" id="modelLabelTemplateCategory">Manage Categories</h4>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
|
||||||
<div id="alertMsgCategory"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="modal-body">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-sm-6">
|
|
||||||
<div class="card-box">
|
|
||||||
<h4 class="header-title m-t-0 m-b-30">Create/Edit</h4>
|
|
||||||
<form id="manageCategories-Form">
|
|
||||||
<input id="inputCategoryID" type="hidden" name="id" value="0">
|
|
||||||
<input type="hidden" name="action" value="add">
|
|
||||||
<fieldset class="m-b-20">
|
|
||||||
<label>Name</label>
|
|
||||||
<input id="inputCategoryName" type="text" name="name" placeholder="Category Name" class="form-control">
|
|
||||||
</fieldset>
|
|
||||||
<fieldset class="m-b-20">
|
|
||||||
<label>Category Color</label>
|
|
||||||
<br><input id="color-picker" type='text' name='color'>
|
|
||||||
</fieldset>
|
|
||||||
<fieldset class="m-b-20">
|
|
||||||
<div class="checkbox">
|
|
||||||
<input id="inputCategoryDefault" type="checkbox" name="defaultOption">
|
|
||||||
<label for="inputCategoryDefault">
|
|
||||||
Default
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
</fieldset>
|
|
||||||
<fieldset>
|
|
||||||
<button id="manageCategories-Save" type="button" class="btn btn-success waves-effect waves-light">
|
|
||||||
<span class="btn-label"><i class="fa fa-check"></i></span>
|
|
||||||
Save
|
|
||||||
</button>
|
|
||||||
</fieldset>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-sm-6">
|
|
||||||
<div class="card-box">
|
|
||||||
<h4 class="header-title m-t-0 m-b-30">Current</h4>
|
|
||||||
<form id="manageCategoriesCurrent-Form">
|
|
||||||
<input id="inputCategoryCurrentID" type="hidden" name="id" value="0">
|
|
||||||
<input type="hidden" name="action" value="delete">
|
|
||||||
<fieldset>
|
|
||||||
<div id="categoryList">
|
|
||||||
<?php echo $categoryList; ?>
|
|
||||||
</div>
|
|
||||||
</fieldset>
|
|
||||||
<fieldset class="m-t-20">
|
|
||||||
<button id="manageCategories-Delete" type="button" class="btn btn-danger waves-effect waves-light">
|
|
||||||
<span class="btn-label"><i class="fa fa-times"></i></span>
|
|
||||||
Delete
|
|
||||||
</button>
|
|
||||||
</fieldset>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="modal-footer">
|
|
||||||
<button type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">Close</button>
|
|
||||||
</div>
|
|
||||||
</div><!-- /.modal-content -->
|
|
||||||
</div><!-- /.modal-dialog -->
|
|
||||||
</div><!-- /.modal -->
|
|
||||||
|
|
||||||
<!-- template catalog modal -->
|
|
||||||
<div id="modalTemplateCatalog" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="modalLabelTemplateCatalog" aria-hidden="true">
|
|
||||||
<div class="modal-dialog modal-lg">
|
|
||||||
<div class="modal-content">
|
|
||||||
<div class="modal-header">
|
|
||||||
<div title="Close">
|
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
|
|
||||||
<i class="zmdi zmdi-close"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<h4 class="modal-title" id="modalLabelTemplateCatalog">Template Catalog</h4>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
|
||||||
<div id="alertMsgCatalog"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="modal-body">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 col-xl-6">
|
|
||||||
<div class="card-box">
|
|
||||||
<h4 class="header-title m-t-0 m-b-30">Available Templates</h4>
|
|
||||||
|
|
||||||
<div id="templateCatalogAvailableContainer">
|
|
||||||
<h6>Name Filter:</h6>
|
|
||||||
<select id="templateCatalogFilter" multiple data-role="tagsinput"></select>
|
|
||||||
<div id="containerTemplateCatalog"></div>
|
|
||||||
</div>
|
|
||||||
<p class="m-t-10">
|
|
||||||
<mark>Don't see what you're looking for?</mark><br>
|
|
||||||
Email <ins>support@patchcablemgr.com</ins> with a link or description<br>
|
|
||||||
of the item and we'll add it to the catalog.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 col-xl-6">
|
|
||||||
<div class="card-box">
|
|
||||||
<h4 class="header-title m-t-0 m-b-30">Selected Template</h4>
|
|
||||||
<button id="buttonTemplateCatalogImport" type="button" class="btn btn-primary waves-effect waves-light m-b-10" disabled>
|
|
||||||
<span class="btn-label"><i class="fa fa-plus"></i>
|
|
||||||
</span>Import</button>
|
|
||||||
<div id="detailsContainer">
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<td class="objectDetailAlignRight">
|
|
||||||
<strong>Object Name:  </strong>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<span id="detailTemplateCatalogObjName" class="objTemplateCatalogDetail">-</span>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="objectDetailAlignRight">
|
|
||||||
<strong>Template Name:  </strong>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<span id="detailTemplateCatalogTemplateName" class="objTemplateCatalogDetail">-</span>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="objectDetailAlignRight">
|
|
||||||
<strong>Category:  </strong>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<span id="detailTemplateCatalogCategory" class="objTemplateCatalogDetail">-</span>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="objectDetailAlignRight" valign="top">
|
|
||||||
<strong>Trunked To:  </strong>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<span id="detailTemplateCatalogTrunkedTo" class="objTemplateCatalogDetail">-</span>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="objectDetailAlignRight">
|
|
||||||
<strong>Type:  </strong>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<span id="detailTemplateCatalogObjType" class="objTemplateCatalogDetail">-</span>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="objectDetailAlignRight">
|
|
||||||
<strong>Function:  </strong>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<span id="detailTemplateCatalogObjFunction" class="objTemplateCatalogDetail">-</span>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="objectDetailAlignRight">
|
|
||||||
<strong>RU Size:  </strong>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<span id="detailTemplateCatalogRUSize" class="objTemplateCatalogDetail">-</span>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="objectDetailAlignRight">
|
|
||||||
<strong>Mount Config:  </strong>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<span id="detailTemplateCatalogMountConfig" class="objTemplateCatalogDetail">-</span>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="objectDetailAlignRight">
|
|
||||||
<strong>Port Range:  </strong>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<span id="detailTemplateCatalogPortRange" class="objTemplateCatalogDetail">-</span>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="objectDetailAlignRight">
|
|
||||||
<strong>Port Type:  </strong>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<span id="detailTemplateCatalogPortType" class="objTemplateCatalogDetail">-</span>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="objectDetailAlignRight">
|
|
||||||
<strong>Media Type:  </strong>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<span id="detailTemplateCatalogMediaType" class="objTemplateCatalogDetail">-</span>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="objectDetailAlignRight">
|
|
||||||
<strong>Image:  </strong>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<span id="detailTemplateCatalogImage" class="objTemplateCatalogDetail">-</span>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="modal-footer">
|
|
||||||
<button type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">Close</button>
|
|
||||||
</div>
|
|
||||||
</div><!-- /.modal-content -->
|
|
||||||
</div><!-- /.modal-dialog -->
|
|
||||||
</div><!-- /.modal -->
|
|
||||||
|
|
||||||
<!-- image upload modal -->
|
|
||||||
<div id="modalImageUpload" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="modalLabelImageUpload" aria-hidden="true">
|
|
||||||
<div class="modal-dialog modal-lg">
|
|
||||||
<div class="modal-content">
|
|
||||||
<div class="modal-header">
|
|
||||||
<div title="Close">
|
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
|
|
||||||
<i class="zmdi zmdi-close"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<h4 class="modal-title" id="modalLabelImageUpload">Template Image</h4>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-12 col-sm-12 col-xs-12 col-md-12 col-xl-12">
|
|
||||||
<div id="alertMsgImageUpload"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="modal-body">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-sm-12">
|
|
||||||
<div class="card-box">
|
|
||||||
<div class="p-20">
|
|
||||||
<div class="form-group clearfix">
|
|
||||||
<div id="containerTemplateImage" class="col-sm-12 padding-left-0 padding-right-0">
|
|
||||||
<input type="file" name="files[]" id="fileTemplateImage" multiple="multiple">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="modal-footer">
|
|
||||||
<button type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">Close</button>
|
|
||||||
</div>
|
|
||||||
</div><!-- /.modal-content -->
|
|
||||||
</div><!-- /.modal-dialog -->
|
|
||||||
</div><!-- /.modal -->
|
|
||||||
|
|
||||||
<!-- delete template modal -->
|
|
||||||
<div id="modalTemplateDeleteConfirm" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="modalLabelTemplateDeleteConfirm" aria-hidden="true" style="display: none;">
|
|
||||||
<div class="modal-dialog modal-sm">
|
|
||||||
<div class="modal-content">
|
|
||||||
<div class="modal-header">
|
|
||||||
<div title="Close">
|
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
|
|
||||||
<i class="zmdi zmdi-close"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<h4 class="modal-title" id="modalLabelTemplateDeleteConfirm">Delete Template</h4>
|
|
||||||
</div>
|
|
||||||
<div class="modal-body">
|
|
||||||
Delete <strong id="deleteTemplateName"></strong>?
|
|
||||||
</div>
|
|
||||||
<div class="modal-footer">
|
|
||||||
<button id="confirmObjDelete" type="button" class="btn btn-secondary btn-danger waves-effect" data-toggle="modal" data-target="#modalTemplateDeleteConfirm">Confirm</button>
|
|
||||||
<button type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">Cancel</button>
|
|
||||||
</div>
|
|
||||||
</div><!-- /.modal-content -->
|
|
||||||
</div><!-- /.modal-dialog -->
|
|
||||||
</div><!-- /.modal -->
|
|
||||||
|
|
||||||
<!-- image upload modal -->
|
|
||||||
<div id="modalTemplateWhereUsed" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="modalLableTemplateWhereUsed" aria-hidden="true" style="display: none;">
|
|
||||||
<div class="modal-dialog modal-lg">
|
|
||||||
<div class="modal-content">
|
|
||||||
<div class="modal-header">
|
|
||||||
<div title="Close">
|
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
|
|
||||||
<i class="zmdi zmdi-close"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<h4 class="modal-title" id="modalLableTemplateWhereUsed">Where Used</h4>
|
|
||||||
</div>
|
|
||||||
<div class="modal-body col-xs-12 col-sm-12 col-md-12 col-lg-12 col-xl-12">
|
|
||||||
<h4 id="whereUsedTemplateName"></h4>
|
|
||||||
<div id="whereUsedResults" class="col-xs-6 col-sm-6 col-md-6 col-lg-6 col-xl-6"></div>
|
|
||||||
</div>
|
|
||||||
<div class="modal-footer">
|
|
||||||
<button type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">Close</button>
|
|
||||||
</div>
|
|
||||||
</div><!-- /.modal-content -->
|
|
||||||
</div><!-- /.modal-dialog -->
|
|
||||||
</div><!-- /.modal -->
|
|
||||||
|
|
||||||
<!-- Make server data available to client via hidden inputs -->
|
<!-- Make server data available to client via hidden inputs -->
|
||||||
<?php include_once('includes/content-build-serverData.php'); ?>
|
<?php include_once('includes/content-build-serverData.php'); ?>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user