Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html>
- <head>
- <title>Project Docs</title>
- </head>
- <style>
- .TopHeader{
- height: 75px;
- background-color: lightgrey;
- font-size: 24px;
- text-align: center;
- margin: auto;
- vertical-align: middle;
- border-width: 1;
- border-style: solid;
- border-color: grey;
- }
- .PortHeader{
- height: 50px;
- background-color: grey;
- font-size: 24px;
- text-align: center;
- margin: auto;
- vertical-align: middle;
- border-width: 1;
- border-style: solid;
- border-color: grey;
- }
- .body{
- position: absolute;
- top: 90px;
- right: 7px;
- left: 7px;
- bottom: 0px;
- display: flex;
- background-color: dodgerblue;
- }
- .sidebar{
- width: 35%;
- background-color: lightgreen;
- border-width: 1;
- border-style: solid;
- border-color: grey;
- }
- .PortDocArea{
- width: 65%;
- float:left;
- background-color: pink;
- }
- .container {
- display: flex;
- height: 100%;
- background: lightblue;
- flex-direction: column;
- }
- .scrollable-content {
- background: white;
- flex-grow: 1;
- overflow: auto;
- /* for Firefox */
- min-height: 0;
- }
- .column-body {
- margin-top: 1px;
- background-color: pink;
- overflow-y: auto;
- overflow-x: hidden;
- }
- .flexcontainer{
- display: flex;
- margin-left: : 3px;
- background-color: dodgerblue;
- border-width:1px;
- border-color: black;
- border-radius: 2px;
- height: 20px;
- }
- .flexcontainer > div {
- width: 35%;
- }
- .addBtn {
- margin-top: 5px;
- padding: 10px;
- width: 8%;
- background: #d9d9d9;
- color: #555;
- float: left;
- text-align: center;
- font-size: 16px;
- cursor: pointer;
- transition: 0.3s;
- border-radius: 3px;
- }
- .addBtn:hover {
- background-color: #bbb;
- }
- .close {
- position: relative;
- right: 0;
- top: 0;
- width: 73%;
- text-align: center;
- border-radius: 3px;
- }
- .close:hover {
- background-color: #f44336;
- color: white;
- }
- .close:nth-child(odd):hover {
- background-color: #f44336;
- color: white;
- }
- input {
- margin-top: 5px;
- margin-left: 1%;
- border: none;
- border-radius: 3px;
- width: 78%;
- padding: 10px;
- float: left;
- font-size: 16px;
- }
- ul, li {
- font-size: 16px;
- list-style: none;
- position: relative;
- background: grey;
- padding: 3px;
- display: block;
- border-color: black;
- border-radius: 4px;
- border-width: 2px;
- }
- .checked{
- background: #888;
- color: #fff;
- text-decoration: line-through;
- }
- ul, li:hover {
- font-size: 16px;
- list-style: none;
- position: relative;
- background: dodgerblue;
- padding: 3px;
- display: block;
- border-color: black;
- border-radius: 4px;
- border-width: 2px;
- }
- ul li:nth-child(odd) {
- background: lightgrey;
- }
- ul li:nth-child(odd):hover {
- background: dodgerblue;
- }
- </style>
- <body>
- <div class = "TopHeader">
- <div class="flexcontainer" style = "width: 100%; height: 100%; flex-direction: row; ">
- <div><input type="file" id="fileinput" style="width: 100%;"></div>
- <div><span type ="button" onclick='handleFileSelect()' style = "width:100%;">Load</span></div>
- <div><span onclick='SaveDataToFile()' style = "width:100%;">Save</span></div>
- <div id="container" style="float: left; height: 10%;"></div>
- <div><p>Date/Time <span id="DateTime"></span></p></div>
- </div>
- </div>
- <div class="body">
- <div class="sidebar">
- <div class="container">
- <div class="PortHeader" style="width: 98%; margin: 1px;">
- <input type="text" id="PortInput" placeholder="Port Name..." style="width: 80%">
- <span onclick="AddNewPort()" class="addBtn" style="margin-left: 3px;">Add</span>
- </div>
- <div class="flexcontainer" style="width: 99%; margin: 2px;">
- <div>Port</div>
- <div>ETA</div>
- <div style="text-align: right;">Advance Notice</div>
- </div>
- <div class="scrollable-content">
- <div class="column-body" style="width:6%; float: left; margin-left: 2px;">
- <ul id="PortCloseBttn"></ul>
- </div>
- <div class="column-body" style="width:47%; float: left; margin-left: 2px;">
- <ul id="PortsUL"></ul>
- </div>
- <div class="column-body" style="width: 30%; float: left; margin-left: 2px; text-align: center;">
- <ul id="PortsETAUL"></ul>
- </div>
- <div class="column-body" style="width: 9%; float: left; margin-left: 2px; text-align: center;">
- <ul id="PortsAdvNtcUL"></ul>
- </div>
- <div class="column-body" style="width: 5%; float: left; margin-left: 2px; font-size: 14px;">
- <ul id="PortDocsDetailUL"></ul>
- </div>
- </div>
- </div>
- </div>
- <div class="PortDocArea" style="border-width: 3px; border-color: black; border-style: solid;">
- <div class="container">
- <div class="flexcontainer" style="width: 99%; margin: 5px;height: 60px;">
- <div class="PortHeader" style="width: 50%; margin: 1px;">
- <input style="width: 80%;" type="text" id="PreArrivalDoc" placeholder="Pre-Arrival Doc...">
- <span onclick="addPreArrivalDocToList()" class="addBtn" style="margin-left: 3px;">Add</span>
- </div>
- <div class="PortHeader" style="width: 50%; margin: 1px;">
- <input style="width: 70%" type="text" id="ArrivalDoc" placeholder="Arrival Doc...">
- <input style="width: 4%" type="text" id="ArrivalDocCopies" placeholder=''>
- <span onclick="addArrivalDocToList()" class="addBtn" style="margin-left: 3px;">Add</span>
- </div>
- </div>
- <div class="flexcontainer" style="height: 100%">
- <div class="scrollable-content" style="background-color: lightgreen; width: 48%; float: left;">
- <div class="column-body" style="width:7%; float: left; margin-left: 2px;">
- <ul id="PreArrDocCloseBttn"></ul>
- </div>
- <div class="column-body" style="width:91%; float: left; margin-left: 5px;">
- <ul id="PreArrivalUL"></ul>
- </div>
- </div>
- <div class="scrollable-content" style="background-color: green;width: 48%; float: left;">
- <div class="column-body" style="width: 7%; float: left; margin-left: 5px;">
- <ul id="ArrivalDocCloseBttn"></ul>
- </div>
- <div class="column-body" style="width: 80%; float: left; margin-left: 5px;">
- <ul id="ArrivalUL"></ul>
- </div>
- <div class="column-body" style="width: 9%; float: left; margin-left: 5px;">
- <ul id="NCopies" style="width: 95%; float: left; text-align: center;"></ul>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <script>
- var PortsArray = [];
- var portIdx = -1;
- findIndx("PortCloseBttn", function(elementId, index) {
- //alert(elementId + " " + index);
- // splice here PortsArray
- cleanAllColumns()
- // redraw elements SideBar
- NewPort('Port Name Here', 'ETA Here', 'NCopies Here');
- })
- findIndx("PortDocsDetailUL", function(elementId, index) {
- alert(elementId + " " + index);
- portIdx = index
- console.log(portIdx);
- document.getElementById("PreArrDocCloseBttn").innerHTML = "";
- document.getElementById("PreArrivalUL").innerHTML = "";
- document.getElementById("ArrivalDocCloseBttn").innerHTML = "";
- document.getElementById("ArrivalUL").innerHTML = "";
- document.getElementById("NCopies").innerHTML = "";
- for (var i=0; i<PortsArray[portIdx].ListofPreArrivalDocs.length; i++){
- var iArrDoc=document.getElementById("PreArrivalUL").childNodes.length;
- var liPreArrDoc = document.createElement("li");
- var inputValue = PortsArray[portIdx].ListofPreArrivalDocs[i].Name;
- var tPreDoc = document.createTextNode(inputValue);
- liPreArrDoc.appendChild(tPreDoc);
- var liPreArrDocClose = document.createElement("li");
- liPreArrDocClose.className = "close"
- var txt = document.createTextNode("\u00D7");
- liPreArrDocClose.appendChild(txt);
- document.getElementById("PreArrDocCloseBttn").appendChild(liPreArrDocClose);
- document.getElementById("PreArrivalUL").appendChild(liPreArrDoc);
- document.getElementById("PreArrivalDoc").value = "";
- };
- for (var i=0; i<PortsArray[portIdx].ListofArrivalDocs.length; i++){
- var iArrDoc=document.getElementById("ArrivalUL").childNodes.length;
- var liArrDoc = document.createElement("li");
- var inputValueName = PortsArray[portIdx].ListofArrivalDocs[i].Name;
- var tArrDoc = document.createTextNode(inputValueName);
- liArrDoc.appendChild(tArrDoc);
- var liArrDocNCopies = document.createElement("li");
- var inputValueNCopies = PortsArray[portIdx].ListofArrivalDocs[i].NumberOfCopies;
- var tArrDoc = document.createTextNode(inputValueNCopies);
- liArrDocNCopies.appendChild(tArrDoc);
- var liArrDocClose = document.createElement("li");
- liArrDocClose.className = "close"
- var txt = document.createTextNode("\u00D7");
- liArrDocClose.appendChild(txt);
- document.getElementById("ArrivalDocCloseBttn").appendChild(liArrDocClose);
- document.getElementById("ArrivalUL").appendChild(liArrDoc);
- document.getElementById("NCopies").appendChild(liArrDocNCopies);
- document.getElementById("ArrivalDoc").value = "";
- }
- })
- findIndx("PreArrDocCloseBttn", function(elementId, index) {
- alert( portIdx + " " + index)
- document.getElementById("PreArrDocCloseBttn").innerHTML = "";
- document.getElementById("PreArrivalUL").innerHTML = "";
- DeleteRecord(PortsArray[portIdx].ListofPreArrivalDocs, index)
- for (var i=0; i<PortsArray[portIdx].ListofPreArrivalDocs.length; i++){
- var iArrDoc=document.getElementById("PreArrivalUL").childNodes.length;
- var liPreArrDoc = document.createElement("li");
- var inputValue = PortsArray[portIdx].ListofPreArrivalDocs[i].Name;
- var tPreDoc = document.createTextNode(inputValue);
- liPreArrDoc.appendChild(tPreDoc);
- var liPreArrDocClose = document.createElement("li");
- liPreArrDocClose.className = "close"
- var txt = document.createTextNode("\u00D7");
- liPreArrDocClose.appendChild(txt);
- document.getElementById("PreArrDocCloseBttn").appendChild(liPreArrDocClose);
- document.getElementById("PreArrivalUL").appendChild(liPreArrDoc);
- document.getElementById("PreArrivalDoc").value = "";
- };
- })
- findIndx("ArrivalDocCloseBttn" , function(elementId, index) {
- alert (portIdx + " " + index)
- DeleteRecord(PortsArray[portIdx].ListofArrivalDocs, index);
- document.getElementById("ArrivalDocCloseBttn").innerHTML = "";
- document.getElementById("ArrivalUL").innerHTML = "";
- document.getElementById("NCopies").innerHTML = "";
- for (var i=0; i<PortsArray[portIdx].ListofArrivalDocs.length; i++){
- var iArrDoc=document.getElementById("ArrivalUL").childNodes.length;
- var liArrDoc = document.createElement("li");
- var inputValueName = PortsArray[portIdx].ListofArrivalDocs[i].Name;
- var tArrDoc = document.createTextNode(inputValueName);
- liArrDoc.appendChild(tArrDoc);
- var liArrDocNCopies = document.createElement("li");
- var inputValueNCopies = PortsArray[portIdx].ListofArrivalDocs[i].NumberOfCopies;
- var tArrDoc = document.createTextNode(inputValueNCopies);
- liArrDocNCopies.appendChild(tArrDoc);
- var liArrDocClose = document.createElement("li");
- liArrDocClose.className = "close"
- var txt = document.createTextNode("\u00D7");
- liArrDocClose.appendChild(txt);
- document.getElementById("ArrivalDocCloseBttn").appendChild(liArrDocClose);
- document.getElementById("ArrivalUL").appendChild(liArrDoc);
- document.getElementById("NCopies").appendChild(liArrDocNCopies);
- document.getElementById("ArrivalDoc").value = "";
- }
- })
- var dt = new Date();
- document.getElementById("DateTime").innerHTML = ((dt.getFullYear())+"-"+("0"+(dt.getMonth()+1)).slice(-2)) +"-"+ (("0"+dt.getDate()).slice(-2)) +" "+ (("0"+dt.getHours()).slice(-2)) +":"+ (("0"+dt.getMinutes()).slice(-2));
- function findIndx(elementId, callback) {
- document.getElementById(elementId).onclick = function(event) {
- var list= this.getElementsByTagName("li");
- for (var i=0; i!= list.length; ++i) {
- if (list[i]==event.target) {
- if(callback) {
- callback(elementId, i)
- }
- return;
- };
- }
- };
- }
- function AddNewPort() {
- NewPort(document.getElementById('PortInput').value, 'YYYY-MM-DD HH:MM', 0)
- }
- function NewPort(pName, pETA, pAdvanceNotice) {
- var iPort=document.getElementById("PortsUL").childNodes.length;
- var liPort = document.createElement("li");
- var Portt = document.createTextNode(pName);
- liPort.appendChild(Portt);
- var liETA = document.createElement("li");
- var tETA = document.createTextNode(pETA);
- liETA.appendChild(tETA);
- var lipAdvanceNotice = document.createElement("li");
- var tpAdvanceNotice = document.createTextNode(pAdvanceNotice);
- lipAdvanceNotice.appendChild(tpAdvanceNotice);
- var liPortDocsDetail = document.createElement("li");
- var PortDocsDetailt = document.createTextNode("\u039E");
- liPortDocsDetail.appendChild(PortDocsDetailt);
- var liClose = document.createElement("li");
- liClose.className = "close"
- var txt = document.createTextNode("\u00D7");
- if (pName != '') {
- liClose.appendChild(txt);
- document.getElementById("PortCloseBttn").appendChild(liClose);
- document.getElementById("PortsUL").appendChild(liPort);
- document.getElementById("PortInput").value = "";
- document.getElementById("PortsETAUL").appendChild(liETA);
- document.getElementById("PortsAdvNtcUL").appendChild(lipAdvanceNotice);
- document.getElementById("PortDocsDetailUL").appendChild(liPortDocsDetail);
- } else {
- alert("You must write something!");
- }
- }
- function addPreArrivalDocToList(){
- var iArrDoc=document.getElementById("PreArrivalUL").childNodes.length;
- var liPreArrDoc = document.createElement("li");
- var inputValue = document.getElementById("PreArrivalDoc").value;
- var tPreDoc = document.createTextNode(inputValue);
- liPreArrDoc.appendChild(tPreDoc);
- var liPreArrDocClose = document.createElement("li");
- liPreArrDocClose.className = "close"
- var txt = document.createTextNode("\u00D7");
- liPreArrDocClose.appendChild(txt);
- if (inputValue!="") {
- document.getElementById("PreArrDocCloseBttn").appendChild(liPreArrDocClose);
- document.getElementById("PreArrivalUL").appendChild(liPreArrDoc);
- document.getElementById("PreArrivalDoc").value = "";
- var NewPreArrDocObj = {};
- NewPreArrDocObj.Name = inputValue;
- NewPreArrDocObj.Status = false;
- PortsArray[portIdx].ListofPreArrivalDocs.push(NewPreArrDocObj);
- }else{
- alert("Enter Name of Document!")
- }
- }
- function addArrivalDocToList(){
- var iPreArrDoc=document.getElementById("ArrivalUL").childNodes.length;
- var liDoc = document.createElement("li");
- var inputValueDocName = document.getElementById("ArrivalDoc").value;
- var DocNamet = document.createTextNode(inputValueDocName);
- liDoc.appendChild(DocNamet);
- var liCopies = document.createElement("li");
- var inputValueDocCopies = document.getElementById("ArrivalDocCopies").value;
- DocCopiest = document.createTextNode(inputValueDocCopies);
- liCopies.appendChild(DocCopiest);
- if (inputValueDocName===""||inputValueDocCopies==="") {alert("Document or Number of Copies not Entered!")
- }else{
- var liArrDocClose = document.createElement("li");
- liArrDocClose.className = "close"
- var txt = document.createTextNode("\u00D7");
- liArrDocClose.appendChild(txt);
- document.getElementById("ArrivalDocCloseBttn").appendChild(liArrDocClose);
- document.getElementById("ArrivalUL").appendChild(liDoc);
- liDoc.contentEditable = "true";
- document.getElementById("ArrivalDoc").value = "";
- document.getElementById("NCopies").appendChild(liCopies);
- liCopies.contentEditable = "true";
- document.getElementById("ArrivalDocCopies").value = "";
- var NewArrDocObj = {};
- NewArrDocObj.Name = inputValueDocName;
- NewArrDocObj.NumberOfCopies = inputValueDocCopies;
- NewArrDocObj.Status = false;
- PortsArray[portIdx].ListofArrivalDocs.push(NewArrDocObj);
- }
- }
- function handleFileSelect()
- {
- if (window.File && window.FileReader && window.FileList && window.Blob) {
- } else {
- alert('The File APIs are not fully supported in this browser.');
- return;
- }
- input = document.getElementById('fileinput');
- if (!input) {
- alert("Um, couldn't find the fileinput element.");
- }
- else if (!input.files) {
- alert("This browser doesn't seem to support the `files` property of file inputs.");
- }
- else if (!input.files[0]) {
- alert("Please select a file before clicking 'Load'");
- }
- else {
- file = input.files[0];
- fr = new FileReader();
- fr.onload = receivedText;
- fr.readAsText(file);
- }
- }
- function receivedText() {
- var result = JSON.parse(fr.result);
- PortsArray = result.PortsArray;
- console.log(PortsArray);
- updatePortlist(PortsArray);
- }
- function updatePortlist(updPortsArray){
- cleanAllColumns();
- for (var i=0; i<updPortsArray.length; i++){
- NewPort(updPortsArray[i].Name, updPortsArray[i].ETA, updPortsArray[i].DueTime);
- };
- }
- function SaveDataToFile (){
- var ObjToSave = {PortsArray};
- var data = "text/json;charset=utf-8," + encodeURIComponent(JSON.stringify(ObjToSave));
- var a = document.createElement('a');
- a.href = 'data:' + data;
- a.download = 'data.json';
- a.innerHTML = 'save JSON';
- var container = document.getElementById('container');
- document.getElementById("container").innerHTML = "";
- container.appendChild(a);
- }
- function cleanAllColumns(){
- document.getElementById("PortCloseBttn").innerHTML = "";
- document.getElementById("PortDocsDetailUL").innerHTML = "";
- document.getElementById("PortsUL").innerHTML = "";
- document.getElementById("PortsETAUL").innerHTML = "";
- document.getElementById("PortsAdvNtcUL").innerHTML = "";
- document.getElementById("PreArrDocCloseBttn").innerHTML = "";
- document.getElementById("PreArrivalUL").innerHTML = "";
- document.getElementById("ArrivalDocCloseBttn").innerHTML = "";
- document.getElementById("ArrivalUL").innerHTML = "";
- document.getElementById("NCopies").innerHTML = "";
- }
- function DeleteRecord(ArrayToModify, RecordToDelete){
- ArrayToModify.splice (RecordToDelete, 1);
- }
- </script>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement