diff options
Diffstat (limited to 'dgbuilder/public/red/ui/library.js')
-rw-r--r-- | dgbuilder/public/red/ui/library.js | 370 |
1 files changed, 0 insertions, 370 deletions
diff --git a/dgbuilder/public/red/ui/library.js b/dgbuilder/public/red/ui/library.js deleted file mode 100644 index 0c803bf0..00000000 --- a/dgbuilder/public/red/ui/library.js +++ /dev/null @@ -1,370 +0,0 @@ -/** - * Copyright 2013 IBM Corp. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - **/ -RED.library = (function() { - - - function loadFlowLibrary() { - $.getJSON("library/flows",function(data) { - //console.log(data); - - var buildMenu = function(data,root) { - var i; - var li; - var a; - var ul = document.createElement("ul"); - ul.id = "btn-import-library-submenu"; - ul.className = "dropdown-menu"; - if (data.d) { - for (i in data.d) { - if (data.d.hasOwnProperty(i)) { - li = document.createElement("li"); - li.className = "dropdown-submenu pull-left"; - a = document.createElement("a"); - a.href="#"; - a.innerHTML = i; - li.appendChild(a); - li.appendChild(buildMenu(data.d[i],root+(root!==""?"/":"")+i)); - ul.appendChild(li); - } - } - } - if (data.f) { - for (i in data.f) { - if (data.f.hasOwnProperty(i)) { - li = document.createElement("li"); - a = document.createElement("a"); - a.href="#"; - a.innerHTML = data.f[i]; - a.flowName = root+(root!==""?"/":"")+data.f[i]; - a.onclick = function() { - $.get('library/flows/'+this.flowName, function(data) { - RED.view.importNodes(data); - }); - }; - li.appendChild(a); - ul.appendChild(li); - } - } - } - return ul; - }; - var menu = buildMenu(data,""); - //TODO: need an api in RED.menu for this - $("#btn-import-library-submenu").replaceWith(menu); - }); - } - loadFlowLibrary(); - - - - function createUI(options) { - var libraryData = {}; - var selectedLibraryItem = null; - var libraryEditor = null; - - function buildFileListItem(item) { - var li = document.createElement("li"); - li.onmouseover = function(e) { $(this).addClass("list-hover"); }; - li.onmouseout = function(e) { $(this).removeClass("list-hover"); }; - return li; - } - - function buildFileList(root,data) { - var ul = document.createElement("ul"); - var li; - for (var i=0;i<data.length;i++) { - var v = data[i]; - if (typeof v === "string") { - // directory - li = buildFileListItem(v); - li.onclick = (function () { - var dirName = v; - return function(e) { - var bcli = $('<li class="active"><span class="divider">/</span> <a href="#">'+dirName+'</a></li>'); - $("a",bcli).click(function(e) { - $(this).parent().nextAll().remove(); - $.getJSON("library/"+options.url+root+dirName,function(data) { - $("#node-select-library").children().first().replaceWith(buildFileList(root+dirName+"/",data)); - }); - e.stopPropagation(); - }); - var bc = $("#node-dialog-library-breadcrumbs"); - $(".active",bc).removeClass("active"); - bc.append(bcli); - $.getJSON("library/"+options.url+root+dirName,function(data) { - $("#node-select-library").children().first().replaceWith(buildFileList(root+dirName+"/",data)); - }); - } - })(); - li.innerHTML = '<i class="fa fa-folder"></i> '+v+"</i>"; - ul.appendChild(li); - } else { - // file - li = buildFileListItem(v); - li.innerHTML = v.name; - li.onclick = (function() { - var item = v; - return function(e) { - $(".list-selected",ul).removeClass("list-selected"); - $(this).addClass("list-selected"); - $.get("library/"+options.url+root+item.fn, function(data) { - selectedLibraryItem = item; - libraryEditor.setText(data); - }); - } - })(); - ul.appendChild(li); - } - } - return ul; - } - -/* -//Commented this portion as is not used by the DGBuilder application - $('#node-input-name').addClass('input-append-left').css("width","65%").after( - '<div class="btn-group" style="margin-left: 0px;">'+ - '<button id="node-input-'+options.type+'-lookup" class="btn input-append-right" data-toggle="dropdown"><i class="fa fa-book"></i> <i class="fa fa-caret-down"></i></button>'+ - '<ul class="dropdown-menu pull-right" role="menu">'+ - '<li><a id="node-input-'+options.type+'-menu-open-library" tabindex="-1" href="#">Open Library...</a></li>'+ - '<li><a id="node-input-'+options.type+'-menu-save-library" tabindex="-1" href="#">Save to Library...</a></li>'+ - '</ul></div>' - ); - - - - $('#node-input-'+options.type+'-menu-open-library').click(function(e) { - $("#node-select-library").children().remove(); - var bc = $("#node-dialog-library-breadcrumbs"); - bc.children().first().nextAll().remove(); - libraryEditor.setText(''); - - $.getJSON("library/"+options.url,function(data) { - $("#node-select-library").append(buildFileList("/",data)); - $("#node-dialog-library-breadcrumbs a").click(function(e) { - $(this).parent().nextAll().remove(); - $("#node-select-library").children().first().replaceWith(buildFileList("/",data)); - e.stopPropagation(); - }); - $( "#node-dialog-library-lookup" ).dialog( "open" ); - }); - - e.preventDefault(); - }); - - $('#node-input-'+options.type+'-menu-save-library').click(function(e) { - //var found = false; - var name = $("#node-input-name").val().replace(/(^\s*)|(\s*$)/g,""); - - //var buildPathList = function(data,root) { - // var paths = []; - // if (data.d) { - // for (var i in data.d) { - // var dn = root+(root==""?"":"/")+i; - // var d = { - // label:dn, - // files:[] - // }; - // for (var f in data.d[i].f) { - // d.files.push(data.d[i].f[f].fn.split("/").slice(-1)[0]); - // } - // paths.push(d); - // paths = paths.concat(buildPathList(data.d[i],root+(root==""?"":"/")+i)); - // } - // } - // return paths; - //}; - $("#node-dialog-library-save-folder").attr("value",""); - - var filename = name.replace(/[^\w-]/g,"-"); - if (filename === "") { - filename = "unnamed-"+options.type; - } - $("#node-dialog-library-save-filename").attr("value",filename+".js"); - - //var paths = buildPathList(libraryData,""); - //$("#node-dialog-library-save-folder").autocomplete({ - // minLength: 0, - // source: paths, - // select: function( event, ui ) { - // $("#node-dialog-library-save-filename").autocomplete({ - // minLength: 0, - // source: ui.item.files - // }); - // } - //}); - - $( "#node-dialog-library-save" ).dialog( "open" ); - e.preventDefault(); - }); - require(["orion/editor/edit"], function(edit) { - libraryEditor = edit({ - parent:document.getElementById('node-select-library-text'), - lang:"js", - readonly: true - }); - }); - - - $( "#node-dialog-library-lookup" ).dialog({ - title: options.type+" library", - modal: true, - autoOpen: false, - width: 800, - height: 450, - buttons: [ - { - text: "Ok", - click: function() { - if (selectedLibraryItem) { - for (var i=0;i<options.fields.length;i++) { - var field = options.fields[i]; - $("#node-input-"+field).val(selectedLibraryItem[field]); - } - options.editor.setText(libraryEditor.getText()); - } - $( this ).dialog( "close" ); - } - }, - { - text: "Cancel", - click: function() { - $( this ).dialog( "close" ); - } - } - ], - open: function(e) { - var form = $("form",this); - form.height(form.parent().height()-30); - $("#node-select-library-text").height("100%"); - $(".form-row:last-child",form).children().height(form.height()-60); - }, - resize: function(e) { - var form = $("form",this); - form.height(form.parent().height()-30); - $(".form-row:last-child",form).children().height(form.height()-60); - } - }); - - */ - function saveToLibrary(overwrite) { - var name = $("#node-input-name").val().replace(/(^\s*)|(\s*$)/g,""); - if (name === "") { - name = "Unnamed "+options.type; - } - var filename = $("#node-dialog-library-save-filename").val().replace(/(^\s*)|(\s*$)/g,""); - var pathname = $("#node-dialog-library-save-folder").val().replace(/(^\s*)|(\s*$)/g,""); - if (filename === "" || !/.+\.js$/.test(filename)) { - RED.notify("Invalid filename","warning"); - return; - } - var fullpath = pathname+(pathname===""?"":"/")+filename; - if (!overwrite) { - //var pathnameParts = pathname.split("/"); - //var exists = false; - //var ds = libraryData; - //for (var pnp in pathnameParts) { - // if (ds.d && pathnameParts[pnp] in ds.d) { - // ds = ds.d[pathnameParts[pnp]]; - // } else { - // ds = null; - // break; - // } - //} - //if (ds && ds.f) { - // for (var f in ds.f) { - // if (ds.f[f].fn == fullpath) { - // exists = true; - // break; - // } - // } - //} - //if (exists) { - // $("#node-dialog-library-save-type").html(options.type); - // $("#node-dialog-library-save-name").html(fullpath); - // $("#node-dialog-library-save-confirm").dialog( "open" ); - // return; - //} - } - var queryArgs = []; - for (var i=0;i<options.fields.length;i++) { - var field = options.fields[i]; - if (field == "name") { - queryArgs.push("name="+encodeURIComponent(name)); - } else { - queryArgs.push(encodeURIComponent(field)+"="+encodeURIComponent($("#node-input-"+field).val())); - } - } - var queryString = queryArgs.join("&"); - - var text = options.editor.getText(); - $.post("library/"+options.url+'/'+fullpath+"?"+queryString,text,function() { - RED.notify("Saved "+options.type,"success"); - }); - } - $( "#node-dialog-library-save-confirm" ).dialog({ - title: "Save to library", - modal: true, - autoOpen: false, - width: 530, - height: 230, - buttons: [ - { - text: "Ok", - click: function() { - saveToLibrary(true); - $( this ).dialog( "close" ); - } - }, - { - text: "Cancel", - click: function() { - $( this ).dialog( "close" ); - } - } - ] - }); - $( "#node-dialog-library-save" ).dialog({ - title: "Save to library", - modal: true, - autoOpen: false, - width: 530, - height: 230, - buttons: [ - { - text: "Ok", - click: function() { - saveToLibrary(false); - $( this ).dialog( "close" ); - } - }, - { - text: "Cancel", - click: function() { - $( this ).dialog( "close" ); - } - } - ] - }); - - } - - return { - create: createUI, - loadFlowLibrary: loadFlowLibrary - } -})(); - - |