github.com/cayleygraph/cayley@v0.7.7/static/js/cayley_write.js (about) 1 // Copyright 2014 The Cayley Authors. All rights reserved. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 $(function() { 16 17 18 var alertFail = function(text) { 19 $("#alertBox").text(text) 20 $("#alertBox").addClass("alert-danger").fadeIn(300).delay(2000).fadeOut(300).queue(function(){ $(this).removeClass("alert-danger")}); 21 } 22 23 var alertSucceed = function(text) { 24 $("#alertBox").text(text) 25 $("#alertBox").addClass("alert-success").fadeIn(300).delay(2000).fadeOut(300).queue(function(){ $(this).removeClass("alert-success")}); 26 } 27 28 var checkQuad = function(t) { 29 if (t.subject == "") { 30 alertFail("Need a subject") 31 return false 32 } 33 if (t.predicate == "") { 34 alertFail("Need a predicate") 35 return false 36 } 37 if (t.object == "") { 38 alertFail("Need an object") 39 return false 40 } 41 return true 42 } 43 44 $("#sbWrite").addClass("active"); 45 46 $("#add_quad").click(function() { 47 var quad = { 48 subject: $("#subject").val(), 49 predicate: $("#predicate").val(), 50 object: $("#object").val(), 51 label: $("#label").val() 52 } 53 if (!checkQuad(quad)) { 54 return 55 } 56 $.post("/api/v1/write", JSON.stringify([quad])) 57 .done(function(return_data){ 58 alertSucceed("Wrote a quad!") 59 }) 60 .fail(function(jqxhr) { 61 var data = $.parseJSON(jqxhr.responseText) 62 alertFail(data.error) 63 }) 64 }) 65 66 $("#delete_quad").click(function() { 67 var quad = { 68 subject: $("#rsubject").val(), 69 predicate: $("#rpredicate").val(), 70 object: $("#robject").val(), 71 label: $("#rlabel").val() 72 } 73 if (!checkQuad(quad)) { 74 return 75 } 76 $.post("/api/v1/delete", JSON.stringify([quad])) 77 .done(function(return_data){ 78 alertSucceed("Deleted a quad!") 79 }) 80 .fail(function(jqxhr) { 81 var data = $.parseJSON(jqxhr.responseText) 82 alertFail(data.error) 83 }) 84 }) 85 86 var upload = null 87 88 var uploadProgress = function(event) { 89 if (event.lengthComputable) { 90 var percentComplete = Math.round(event.loaded * 100 / event.total); 91 $("#alertBox").text("Uploaded " + percentComplete.toString() + "%") 92 } else { 93 $("#alertBox").text("Uploading...") 94 } 95 } 96 97 var uploadComplete = function(event) { 98 stopAndReset(); 99 var data = $.parseJSON(upload.responseText) 100 $("#alertBox").text("Upload complete! " + data.result); 101 $("#alertBox").removeClass("alert-info").addClass("alert-success") 102 .delay(2000).fadeOut(300) 103 .queue(function () { 104 $("#write_file").fadeIn(30); 105 $("#alertBox").removeClass("alert-success"); 106 }) 107 upload = null 108 } 109 110 var uploadCanceled = function(event) { 111 upload = null 112 stopAndReset(); 113 $("#alertBox").text("Upload canceled!") 114 $("#alertBox").removeClass("alert-info").addClass("alert-danger") 115 .delay(2000).fadeOut(300) 116 .queue(function () { 117 $("#write_file").fadeIn(30); 118 $("#alertBox").removeClass("alert-danger"); 119 }) 120 } 121 122 var uploadFailed = function(event) { 123 upload = null 124 stopAndReset(); 125 $("#alertBox").text("Upload failed!") 126 $("#alertBox").removeClass("alert-info").addClass("alert-danger") 127 .delay(2000).fadeOut(300) 128 .queue(function () { 129 $("#write_file").fadeIn(30); 130 $("#alertBox").removeClass("alert-danger"); 131 }) 132 } 133 134 $("#write_file").click(function() { 135 try { 136 animate(); 137 var fd = new FormData() 138 fd.append("NQuadFile", document.getElementById("nquad_file").files[0]) 139 var xhr = new XMLHttpRequest() 140 upload = xhr 141 $("#write_file").fadeOut(30); 142 $("#alertBox").addClass("alert-info").fadeIn(300); 143 xhr.upload.addEventListener("progress", uploadProgress, false); 144 xhr.addEventListener("load", uploadComplete, false); 145 xhr.addEventListener("error", uploadFailed, false); 146 xhr.addEventListener("abort", uploadCanceled, false); 147 xhr.open("POST", "/api/v1/write/file/nquad"); 148 xhr.send(fd); 149 150 } catch(err) { 151 $("#alertBox").removeClass("alert-info"); 152 stopAndReset(); 153 alertFail(err) 154 $("#write_file").fadeIn(30); 155 } 156 }) 157 158 });