From 3d66ac9436ddd8b1929829972634c2e460600d22 Mon Sep 17 00:00:00 2001 From: Kirk Hess Date: Mon, 26 Mar 2018 16:07:01 -0400 Subject: [PATCH] code fixes, profile fixes --- builds/bfe.dev.js | 2 +- builds/bfe.js | 5172 +++++++++++------ index.html | 2 +- static/js/config-dev.js | 16 +- static/js/config-dev.js.old | 296 - static/js/config.js | 567 +- .../bibframe/BIBFRAME 2.0 Cartographic.json | 18 +- .../bibframe/BIBFRAME 2.0 Language.json | 2 +- .../bibframe/BIBFRAME 2.0 Monograph.json | 4 +- ...E 2.0 Moving Image: 35mm Feature Film.json | 4 +- ...BIBFRAME 2.0 Moving Image: BluRay DVD.json | 4 +- .../bibframe/BIBFRAME 2.0 Notated Music.json | 699 ++- .../bibframe/BIBFRAME 2.0 Rare Materials.json | 4 +- .../bibframe/BIBFRAME 2.0 Serial.json | 4 +- .../BIBFRAME 2.0 Sound Recording: Analog.json | 4 +- ...FRAME 2.0 Sound Recording: Audio CD-R.json | 4 +- ...IBFRAME 2.0 Sound Recording: Audio CD.json | 4 +- 17 files changed, 4625 insertions(+), 2181 deletions(-) delete mode 100755 static/js/config-dev.js.old diff --git a/builds/bfe.dev.js b/builds/bfe.dev.js index c175355..11dc368 100755 --- a/builds/bfe.dev.js +++ b/builds/bfe.dev.js @@ -5180,7 +5180,7 @@ bfe.define('src/lookups/rdafrequency', ['require', 'exports', 'module', 'src/loo exports.getResource = lcshared.getResource; }); -bfe.define(['require', 'exports', 'module', 'src/lookups/lcshared'], function(require, exports, module) { +bfe.define('src/lookups/rdaaspectration',['require', 'exports', 'module', 'src/lookups/lcshared'], function(require, exports, module) { var lcshared = require("src/lookups/lcshared"); var cache = []; exports.scheme = "http://rdaregistry.info/termList/AspectRatio"; diff --git a/builds/bfe.js b/builds/bfe.js index 5869893..11dc368 100755 --- a/builds/bfe.js +++ b/builds/bfe.js @@ -1,4 +1,5 @@ -/* bfe 2015-10-26 *//* ***** BEGIN LICENSE BLOCK ***** +/* bfe 2018-01-29 */ +/* ***** BEGIN LICENSE BLOCK ***** * Distributed under the BSD license: * * Copyright (c) 2010, Ajax.org B.V. @@ -27,173 +28,162 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * ***** END LICENSE BLOCK ***** */ - /** * Define a module along with a payload * @param module a name for the payload * @param payload a function to call with (require, exports, module) params */ - (function() { -var ACE_NAMESPACE = "bfe"; + var ACE_NAMESPACE = "bfe"; -var global = (function() { - return this; -})(); + var global = (function() { + return this; + })(); -if (!ACE_NAMESPACE && typeof requirejs !== "undefined") - return; + if (!ACE_NAMESPACE && typeof requirejs !== "undefined") + return; -var _define = function(module, deps, payload) { - if (typeof module !== 'string') { - if (_define.original) - _define.original.apply(window, arguments); - else { - console.error('dropping module because define wasn\'t a string.'); - console.trace(); + var _define = function(module, deps, payload) { + if (typeof module !== 'string') { + if (_define.original) + _define.original.apply(window, arguments); + else { + console.error('dropping module because define wasn\'t a string.'); + console.trace(); + } + return; } - return; - } - - if (arguments.length == 2) - payload = deps; - if (!_define.modules) { - _define.modules = {}; - _define.payloads = {}; - } - - _define.payloads[module] = payload; - _define.modules[module] = null; -}; + if (arguments.length === 2) + payload = deps; -/** - * Get at functionality define()ed using the function above - */ -var _require = function(parentId, module, callback) { - if (Object.prototype.toString.call(module) === "[object Array]") { - var params = []; - for (var i = 0, l = module.length; i < l; ++i) { - var dep = lookup(parentId, module[i]); - if (!dep && _require.original) - return _require.original.apply(window, arguments); - params.push(dep); - } - if (callback) { - callback.apply(null, params); + if (!_define.modules) { + _define.modules = {}; + _define.payloads = {}; } - } - else if (typeof module === 'string') { - var payload = lookup(parentId, module); - if (!payload && _require.original) - return _require.original.apply(window, arguments); - if (callback) { - callback(); - } + _define.payloads[module] = payload; + _define.modules[module] = null; + }; - return payload; - } - else { - if (_require.original) - return _require.original.apply(window, arguments); - } -}; + /** + * Get at functionality define()ed using the function above + */ + var _require = function(parentId, module, callback) { + if (Object.prototype.toString.call(module) === "[object Array]") { + var params = []; + for (var i = 0, l = module.length; i < l; ++i) { + var dep = lookup(parentId, module[i]); + if (!dep && _require.original) + return _require.original.apply(window, arguments); + params.push(dep); + } + if (callback) { + callback.apply(null, params); + } + } else if (typeof module === 'string') { + var payload = lookup(parentId, module); + if (!payload && _require.original) + return _require.original.apply(window, arguments); -var normalizeModule = function(parentId, moduleName) { - // normalize plugin requires - if (moduleName.indexOf("!") !== -1) { - var chunks = moduleName.split("!"); - return normalizeModule(parentId, chunks[0]) + "!" + normalizeModule(parentId, chunks[1]); - } - // normalize relative requires - if (moduleName.charAt(0) == ".") { - var base = parentId.split("/").slice(0, -1).join("/"); - moduleName = base + "/" + moduleName; + if (callback) { + callback(); + } - while(moduleName.indexOf(".") !== -1 && previous != moduleName) { - var previous = moduleName; - moduleName = moduleName.replace(/\/\.\//, "/").replace(/[^\/]+\/\.\.\//, ""); + return payload; + } else { + if (_require.original) + return _require.original.apply(window, arguments); + } + }; + + var normalizeModule = function(parentId, moduleName) { + // normalize plugin requires + if (moduleName.indexOf("!") !== -1) { + var chunks = moduleName.split("!"); + return normalizeModule(parentId, chunks[0]) + "!" + normalizeModule(parentId, chunks[1]); + } + // normalize relative requires + if (moduleName.charAt(0) === ".") { + var base = parentId.split("/").slice(0, -1).join("/"); + moduleName = base + "/" + moduleName; + + while (moduleName.indexOf(".") !== -1 && previous !== moduleName) { + var previous = moduleName; + moduleName = moduleName.replace(/\/\.\//, "/").replace(/[^\/]+\/\.\.\//, ""); + } } - } - return moduleName; -}; + return moduleName; + }; -/** - * Internal function to lookup moduleNames and resolve them by calling the - * definition function if needed. - */ -var lookup = function(parentId, moduleName) { - - moduleName = normalizeModule(parentId, moduleName); - - var module = _define.modules[moduleName]; - if (!module) { - module = _define.payloads[moduleName]; - if (typeof module === 'function') { - var exports = {}; - var mod = { - id: moduleName, - uri: '', - exports: exports, - packaged: true - }; + /** + * Internal function to lookup moduleNames and resolve them by calling the + * definition function if needed. + */ + var lookup = function(parentId, moduleName) { + + moduleName = normalizeModule(parentId, moduleName); + + var module = _define.modules[moduleName]; + if (!module) { + module = _define.payloads[moduleName]; + if (typeof module === 'function') { + var exports = {}; + var mod = { + id: moduleName, + uri: '', + exports: exports, + packaged: true + }; + + var req = function(module, callback) { + return _require(moduleName, module, callback); + }; + + var returnValue = module(req, exports, mod); + exports = returnValue || mod.exports; + _define.modules[moduleName] = exports; + delete _define.payloads[moduleName]; + } + module = _define.modules[moduleName] = exports || module; + } + return module; + }; - var req = function(module, callback) { - return _require(moduleName, module, callback); - }; + function exportAce(ns) { + var require = function(module, callback) { + return _require("", module, callback); + }; - var returnValue = module(req, exports, mod); - exports = returnValue || mod.exports; - _define.modules[moduleName] = exports; - delete _define.payloads[moduleName]; + var root = global; + if (ns) { + if (!global[ns]) + global[ns] = {}; + root = global[ns]; } - module = _define.modules[moduleName] = exports || module; - } - return module; -}; - -function exportAce(ns) { - var require = function(module, callback) { - return _require("", module, callback); - }; - - var root = global; - if (ns) { - if (!global[ns]) - global[ns] = {}; - root = global[ns]; - } - if (!root.define || !root.define.packaged) { - _define.original = root.define; - root.define = _define; - root.define.packaged = true; - } + if (!root.define || !root.define.packaged) { + _define.original = root.define; + root.define = _define; + root.define.packaged = true; + } - if (!root.require || !root.require.packaged) { - _require.original = root.require; - root.require = require; - root.require.packaged = true; + if (!root.require || !root.require.packaged) { + _require.original = root.require; + root.require = require; + root.require.packaged = true; + } } -} -exportAce(ACE_NAMESPACE); + exportAce(ACE_NAMESPACE); })(); -bfe.define('src/bfe', ['require', 'exports', 'module' , 'src/lib/jquery-2.1.0.min', 'src/lib/json', 'src/lib/lodash.min', 'src/lib/bootstrap.min', 'src/lib/typeahead.jquery.min', 'src/bfestore', 'src/bfelogging', 'src/lookups/lcnames', 'src/lookups/lcsubjects', 'src/lookups/lcgenreforms', 'src/lookups/lcworks', 'src/lookups/lcinstances', 'src/lookups/lcorganizations', 'src/lookups/lccountries', 'src/lookups/lcgacs', 'src/lookups/lclanguages', 'src/lookups/lcidentifiers', 'src/lookups/lctargetaudiences', 'src/lookups/iso6391', 'src/lookups/iso6392', 'src/lookups/iso6395', 'src/lookups/rdacontenttypes', 'src/lookups/rdamediatypes', 'src/lookups/rdacarriers','src/lookups/rdamodeissue', 'src/lookups/lcrelators','src/lookups/lcperformanceMediums','src/lookups/rdamusnotation','src/lookups/rdaformatnotemus','src/lookups/rdaaspectratio', 'src/lookups/rdagenmopic', 'src/lib/aceconfig'], function(require, exports, module) { - require("src/lib/jquery-2.1.0.min"); - require("src/lib/json"); - require("src/lib/lodash.min"); // collection/object/array manipulation - require("src/lib/bootstrap.min"); // modals - require("src/lib/typeahead.jquery.min"); - // require("lib/rdf_store_min"); - +bfe.define('src/bfe', ['require', 'exports', 'module', 'src/bfestore', 'src/bfelogging', 'src/lib/aceconfig'], function(require, exports, module) { var editorconfig = {}; var bfestore = require("src/bfestore"); var bfelog = require("src/bfelogging"); @@ -203,28 +193,21 @@ bfe.define('src/bfe', ['require', 'exports', 'module' , 'src/lib/jquery-2.1.0.mi var startingPoints = []; var formTemplates = []; //var lookups = []; - + var tabIndices = 1; - - var loadtemplates = []; + + //var loadtemplates = []; var loadtemplatesANDlookupsCount = 0; var loadtemplatesANDlookupsCounter = 0; - + var lookupstore = []; var lookupcache = []; - + var editordiv; - - var forms = []; - var ms_ie = false; - var ua = window.navigator.userAgent; - var old_ie = ua.indexOf('MSIE '); - var new_ie = ua.indexOf('Trident/'); + var csrf; - if ((old_ie > -1) || (new_ie > -1)) { - ms_ie = true; - } + var forms = []; var lookups = { "http://id.loc.gov/authorities/names": { @@ -251,84 +234,44 @@ bfe.define('src/bfe', ['require', 'exports', 'module' , 'src/lib/jquery-2.1.0.mi "name": "Organizations", "load": require("src/lookups/lcorganizations") }, - "http://id.loc.gov/vocabulary/countries": { - "name": "Countries", - "load": require("src/lookups/lccountries") - }, - "http://id.loc.gov/vocabulary/geographicAreas": { - "name": "GeographicAreas", - "load": require("src/lookups/lcgacs") - }, - "http://id.loc.gov/vocabulary/languages": { - "name": "Languages", - "load": require("src/lookups/lclanguages") - }, - "http://id.loc.gov/vocabulary/identifiers": { - "name": "Identifiers", - "load": require("src/lookups/lcidentifiers") - }, - "http://id.loc.gov/vocabulary/targetAudiences": { - "name": "Audiences", - "load": require("src/lookups/lctargetaudiences") - }, - "http://id.loc.gov/vocabulary/iso639-1": { - "name": "ISO639-1", - "load": require("src/lookups/iso6391") - }, - "http://id.loc.gov/vocabulary/iso639-2": { - "name": "ISO639-2", - "load": require("src/lookups/iso6392") - }, - "http://id.loc.gov/vocabulary/iso639-5": { - "name": "ISO639-5", - "load": require("src/lookups/iso6395") - }, - "http://id.loc.gov/vocabulary/contentTypes": { - "name": "RDA-Content-Types", - "load": require("src/lookups/rdacontenttypes") + "http://id.loc.gov/vocabulary/relators": { + "name": "Relators", + "load": require("src/lookups/relators") }, - "http://id.loc.gov/vocabulary/mediaTypes": { - "name": "RDA-Media-Types", - "load": require("src/lookups/rdamediatypes") + "http://rdaregistry.info/termList/FormatNoteMus": { + "name": "RDA-Format-Musical-Notation", + "load": require("src/lookups/rdaformatnotemus") }, - "http://id.loc.gov/vocabulary/carriers": { - "name": "RDA-Carriers", - "load": require("src/lookups/rdacarriers") + "http://rdaregistry.info/termList/RDAMediaType": { + "name": "RDA-Media-Type", + "load": require("src/lookups/rdamediatype") }, - "http://id.loc.gov/ml38281/vocabulary/rda/ModeIssue": { - "name": "RDA-Mode-of-Issuance", + "http://rdaregistry.info/termList/ModeIssue": { + "name": "RDA-Mode-Issue", "load": require("src/lookups/rdamodeissue") }, - "http://id.loc.gov/vocabulary/relators": { - "name": "RDA-Relators", - "load": require("src/lookups/lcrelators") - }, - "http://id.loc.gov/authorities/performanceMediums": { - "name": "Performance-Mediums", - "load": require("src/lookups/lcperformanceMediums") + "http://rdaregistry.info/termList/RDACarrierType": { + "name": "RDA-Carrier-Type", + "load": require("src/lookups/rdacarriertype") }, - "http://id.loc.gov/ml38281/vocabulary/rda/MusNotation": { - "name": "RDA-Form-Musical-Notation", - "load": require("src/lookups/rdamusnotation") + "http://rdaregistry.info/termList/RDAContentType": { + "name": "RDA-Content-Type", + "load": require("src/lookups/rdacontenttype") }, - "http://rdaregistry.info/termList/FormatNoteMus": { - "name": "RDA-Format-Musical-Notation", - "load": require("src/lookups/rdaformatnotemus") + "http://rdaregistry.info/termList/frequency": { + "name": "RDA-Frequency", + "load": require("src/lookups/rdafrequency") }, - "http://id.loc.gov/ml38281/vocabulary/rda/AspectRatio":{ + "http://www.rdaregistry.info/termList/AspectRatio": { "name": "RDA-Aspect-Ratio", - "load": require("src/lookups/rdaaspectratio") + "load": require("src/lookups/rdaaspectration") }, - "http://id.loc.gov/ml38281/vocabulary/rda/genMoPic":{ - "name": "RDA-Generation-of-Motion-Picture", - "load": require("src/lookups/rdagenmopic") - }, - "http://id.loc.gov/vocabulary/classSchemes":{ - "name": "Class-Schemes", - "load": require("src/loookups/classschemes") + "http://www.rdaregistry.info/termList/RDAGeneration": { + "name": "RDA-Generation", + "load": require("src/lookups/rdageneration") } }; - + /* The following two bits of code come from the Ace Editor code base. Included here to make 'building' work correctly. See: @@ -336,22 +279,22 @@ bfe.define('src/bfe', ['require', 'exports', 'module' , 'src/lib/jquery-2.1.0.mi */ exports.aceconfig = require("src/lib/aceconfig"); /** - * Provides access to require in packed noconflict mode - * @param {String} moduleName - * @returns {Object} - * - **/ + * Provides access to require in packed noconflict mode + * @param {String} moduleName + * @returns {Object} + * + **/ exports.require = require; - + exports.setConfig = function(config) { - + editorconfig = config; - + // Set up logging bfelog.init(editorconfig); - - for (var i=0; i < config.profiles.length; i++) { - file = config.profiles[i]; + + for (var i = 0; i < config.profiles.length; i++) { + var file = config.profiles[i]; bfelog.addMsg(new Error(), "INFO", "Loading profile: " + config.profiles[i]); $.ajax({ type: "GET", @@ -359,236 +302,752 @@ bfe.define('src/bfe', ['require', 'exports', 'module' , 'src/lib/jquery-2.1.0.mi async: false, url: file, success: function(data) { - $("#bfeditor-loader").width($("#bfeditor-loader").width()+5+"%"); + $("#bfeditor-loader").width($("#bfeditor-loader").width() + 5 + "%"); profiles.push(data); - for (var rt=0; rt < data.Profile.resourceTemplates.length; rt++) { + for (var rt = 0; rt < data.Profile.resourceTemplates.length; rt++) { resourceTemplates.push(data.Profile.resourceTemplates[rt]); } }, - error: function(XMLHttpRequest, textStatus, errorThrown) { + error: function(XMLHttpRequest, textStatus, errorThrown) { bfelog.addMsg(new Error(), "ERROR", "FAILED to load profile: " + file); bfelog.addMsg(new Error(), "ERROR", "Request status: " + textStatus + "; Error msg: " + errorThrown); } }); } - + if (config.lookups !== undefined) { loadtemplatesANDlookupsCount = loadtemplatesANDlookupsCount + Object.keys(config.lookups).length; - for (k in config.lookups) { - var lu = config.lookups[k]; + config.lookups.foreach(function(lu) { bfelog.addMsg(new Error(), "INFO", "Loading lookup: " + lu.load); require([lu.load], function(r) { setLookup(r); }); - } + }); } if (editorconfig.baseURI === undefined) { editorconfig.baseURI = window.location.protocol + "//" + window.location.host + "/"; } bfelog.addMsg(new Error(), "INFO", "baseURI is " + editorconfig.baseURI); - + if (config.load !== undefined) { loadtemplatesANDlookupsCount = loadtemplatesANDlookupsCount + config.load.length; - config.load.forEach(function(l){ - var useguid = guid(); - var loadtemplate = {}; + config.load.forEach(function(l) { var tempstore = []; - loadtemplate.templateGUID = useguid; - loadtemplate.resourceTemplateID = l.templateID; - loadtemplate.resourceURI = l.defaulturi; - loadtemplate.embedType = "page"; - loadtemplate.data = tempstore; - loadtemplates.push(loadtemplate); + l.templateID.forEach(function(lt) { + var useguid = guid(); + var loadtemplate = {}; + loadtemplate.templateGUID = useguid; + loadtemplate.resourceTemplateID = lt; + loadtemplate.resourceURI = l.defaulturi; + loadtemplate.embedType = "page"; + loadtemplate.data = tempstore; + loadtemplates.push(loadtemplate); + }); if (l.source !== undefined && l.source.location !== undefined && l.source.requestType !== undefined) { $.ajax({ url: l.source.location, dataType: l.source.requestType, - success: function (data) { + success: function(data) { bfelog.addMsg(new Error(), "INFO", "Fetched external source baseURI" + l.source.location); bfelog.addMsg(new Error(), "DEBUG", "Source data", data); - /* - OK, so I would /like/ to just use rdfstore here - but it is treating literals identified using @value - within JSON objects as resources. It gives them blank nodes. - This does not seem right and I don't have time to - investigate. - So, will parse the JSONLD myself, dagnabbit. - NOTE: it totally expects JSONLD expanded form. - */ + tempstore = bfestore.jsonld2store(data); - tempstore.forEach(function(t){ - if (t.p == "http://www.w3.org/1999/02/22-rdf-syntax-ns#type" && t.otype == "uri" && t.s == l.defaulturi.replace('ml38281/', '')) { - t.rtID = l.templateID; - } - }); - loadtemplate.data = tempstore; + //loadtemplate.data = tempstore; cbLoadTemplates(); - /* - store.load('application/ld+json', data, function(success){ - if (success) console.log("Loaded data for " + l.defaulturi); - var useguid = guid(); - var loadtemplate = {}; - var query = 'SELECT * WHERE { <' + l.defaulturi.replace('ml38281/', '') + '> ?p ?o}'; - console.log("Query is " + query); - store.execute(query, function(success, results) { - // process results - if (success) { - console.log(results); - var tempstore = []; - results.forEach(function(t){ - var tguid = guid(); - var triple = {}; - triple.guid = tguid; - if (t.o.value == "http://www.w3.org/1999/02/22-rdf-syntax-ns#type") { - triple.rtID = rt.id; - } - triple.s = l.defaulturi.replace('ml38281/', ''); - triple.p = t.p.value; - triple.o = t.o.value; - if (t.o.token == "uri") { - triple.otype = "uri"; - } else if (t.o.token == "blank") { - triple.otype = "uri"; - } else { - triple.otype = "literal"; - triple.olang = "en"; - } - //console.log(triple); - tempstore.push(triple); - }); - loadtemplate.id = useguid; - loadtemplate.rtID = l.templateID; - loadtemplate.defaulturi = l.defaulturi.replace('ml38281/', ''); - loadtemplate.data = tempstore; - loadtemplates.push(loadtemplate); - console.log("finished query store"); - cbLoadTemplates(); - } - }); - }); - */ }, - error: function(XMLHttpRequest, textStatus, errorThrown) { + error: function(XMLHttpRequest, textStatus, errorThrown) { bfelog.addMsg(new Error(), "ERROR", "FAILED to load external source: " + l.source.location); bfelog.addMsg(new Error(), "ERROR", "Request status: " + textStatus + "; Error msg: " + errorThrown); } }); + } else { cbLoadTemplates(); } }); } - } - - exports.fulleditor = function (config, id) { - - editordiv = document.getElementById(id); + }; + + exports.fulleditor = function(config, id) { - var $menudiv = $('
', {id: "bfeditor-menudiv", class: "col-md-2 sidebar"}); - var $formdiv = $('
', {id: "bfeditor-formdiv", class: "col-md-10 main"}); + editordiv = document.getElementById(id); + var $containerdiv = $('

Bibframe Editor Workspace

'); + var $tabul = $(''); + $tabul.append('
  • Browse
  • '); + $tabul.append('
  • Editor
  • '); + $tabul.append('
  • Load Work
  • '); + $tabul.append('
  • Load IBC
  • '); + $containerdiv.append($tabul); + + var $tabcontentdiv = $('
    '); + var $browsediv = $('

    '); + var $creatediv = $('

    '); + var $loaddiv = $('

    '); + var $loadibcdiv = $('

    '); + + var $menudiv = $('
    ', { + id: "bfeditor-menudiv", + class: "col-md-2 sidebar" + }); + var $formdiv = $('
    ', { + id: "bfeditor-formdiv", + class: "col-md-10 main" + }); //var optiondiv = $('
    ', {id: "bfeditor-optiondiv", class: "col-md-2"}); - var $rowdiv = $('
    ', {class: "row"}); - + var $rowdiv = $('
    ', { + class: "row" + }); + var $loader = $('


    Loading...

    \
    \ 80% Complete\
    \
    '); + if ($.fn.dataTable.isDataTable('#table_id')) { + var table = $('#table_id').DataTable(); + } else { + var $datatable = $('
    idnametitleLCCNcommentmodifiededit
    '); + var table = $(function() { + $('#table_id').DataTable({ + "initComplete": function (settings, json) { + if (window.location.hash !== ""){ + $('#table_id').DataTable().search(window.location.hash.split("#")[1]).draw(); + } + }, + "processing": true, + "paging": true, + "ajax": { + "url": config.url + "/verso/api/bfs", + "dataSrc": "", + "headers": { + 'Access-Control-Allow-Origin': '*', + 'Content-Type':'application/json', + 'Access-Control-Allow-Methods': 'DELETE, HEAD, GET, OPTIONS, POST, PUT', + 'Access-Control-Allow-Headers': 'Content-Type, Content-Range, Content-Disposition, Content-Description', + 'Access-Control-Max-Age': '1728000' + } + }, + "columns": [{ + "data": "id" + }, + { + "data": "name", + "render": function(data, type, full, meta){ + try { + + retval = mintResource(data); + + if (retval === "eundefined"){ + retval = data; + } + + } catch (e) { + + retval = data; + + } + + return retval; + } + }, + { + "data": "rdf", + "render": function(data, type, full, meta) { + var retval = "No Title"; + if (_.some(data, "http://id.loc.gov/ontologies/bibframe/title")) { + text = _.find(data, "http://id.loc.gov/ontologies/bibframe/title")["http://id.loc.gov/ontologies/bibframe/title"]; + //return text["http://id.loc.gov/ontologies/bibframe/title"][0]["@value"]; + if (text !== undefined) + _.each(text, function(el){ + if (el["@id"] !== undefined) { + id = el["@id"] + title = _.where(data, { + "@id": id + }); + + if (_.has(title[0], "http://id.loc.gov/ontologies/bibframe/mainTitle")) + retval = title[0]["http://id.loc.gov/ontologies/bibframe/mainTitle"][0]["@value"]; + else if (_.has(title[0], "http://www.w3.org/2000/01/rdf-schema#label")) + retval = title[0]["http://www.w3.org/2000/01/rdf-schema#label"][0]["@value"]; + } + }); + } else if (_.some(data, "http://www.loc.gov/mads/rdf/v1#authoritativeLabel")) { + retval = _.find(data, "http://www.loc.gov/mads/rdf/v1#authoritativeLabel")["http://www.loc.gov/mads/rdf/v1#authoritativeLabel"][0]["@value"] + if (retval === undefined) + retval = _.find(data, "http://www.loc.gov/mads/rdf/v1#authoritativeLabel")["http://www.w3.org/2000/01/rdf-schema#label"][0]["@value"] + } else { + retval = "No Title"; + } + return retval; + } + }, + { + "data": "rdf", + "render": function(data, type, full, meta) { + var text = "N/A"; + var lccns = _.filter(data, function(el) { + if (!_.isEmpty(el["@type"])){ + if (el["@type"][0] === "http://id.loc.gov/ontologies/bibframe/Lccn"){ + if (_.has(el, ["http://www.w3.org/1999/02/22-rdf-syntax-ns#value"])) + if (!_.isEmpty(el["http://www.w3.org/1999/02/22-rdf-syntax-ns#value"][0]["@value"])) + return el["http://www.w3.org/1999/02/22-rdf-syntax-ns#value"][0]["@value"]; + } + } + }); + if (!_.isEmpty(lccns)){ + if (lccns.length === 1) { + text = lccns[0]["http://www.w3.org/1999/02/22-rdf-syntax-ns#value"][0]["@value"]; + } else { + for(i=0; i < lccns.length; i++){ + if (!lccns[i]["http://www.w3.org/1999/02/22-rdf-syntax-ns#value"][0]["@value"].startsWith("n")) + text = lccns[i]["http://www.w3.org/1999/02/22-rdf-syntax-ns#value"][0]["@value"]; + } + } + } + console.log(full.id); + if (text !== "N/A" && full.status === "published" || full.status === "success"){ + var ldsurl = config.basedbURI + "/loc.natlib.instances.e" + text.trim() + "0001"; + + if (text.trim().startsWith("n")){ + ldsurl = config.basedbURI + "/loc.natlib.works." + text.trim().replace(/\s+/g,''); + } + + var lccn = text.trim(); + var table = new $.fn.dataTable.Api( meta.settings ); + var cell = table.cell(meta.row, meta.col); + if (full.status === "success"){ + cell.node().innerHTML = "" + lccn + ""; + $(cell.node()).css('background-color', 'lightgreen'); + } else { + if (new Date(new Date(full.modified).getTime() + 60000) > new Date()){ + $(cell.node()).css('background-color', 'yellow'); + } else { + $(cell.node()).css('background-color', 'lightcoral'); + } + /*$.ajax({ + type: "HEAD", + async: true, + data: { uri: ldsurl }, + url: config.url + "/profile-edit/server/checkuri", + }).done(function(data){ + cell.node().innerHTML = "" + lccn + ""; + $(cell.node()).css('background-color', 'lightgreen'); + }).fail(function(data, text){ + if (full.status === "published"){ + $(cell.node()).css('background-color', 'lightcoral'); + } + });*/ + } + } else { + //$(cell.node()).css('background-color', 'lightcoral'); + console.log(full.message); + } + + return text; + } + }, + { + "data": "rdf", + "render": function(data, type, full, meta) { + var text = ""; + if (_.filter(data, function(el) { + return el["http://id.loc.gov/ontologies/bflc/metadataAssigner"] + }).length > 0) + text = _.filter(data, function(el) { + return el["http://id.loc.gov/ontologies/bflc/metadataAssigner"] + })[0]["http://id.loc.gov/ontologies/bflc/metadataAssigner"][0]["@value"]; + return text.length > 60 ? text.substr(0, 58) + "..." : text; + } + }, + { + "data": "modified", + "width": "10%", + "render": function(data, type, row) { + var d = new Date(data); + //Month first + + var hr = d.getHours(); + var min = d.getMinutes(); + var ampm = "a"; + if (min<10) + min = "0"+min; + if (hr>=12){ + ampm = "p"; + } + if (hr > 12){ + hr-=12; + } + return (d.getMonth() + 1) + '-' + d.getDate() + '-' + d.getFullYear() + ' ' + hr + ':' + min + ampm; + } + }, + { + "data": "url", + "width": "10%", + "searchable": false, + "filterable": false, + "sortable": false, + "render": function(td, cellData, rowData, row) { + // return 'edit'; + + return '
    \ + \ +
    ' + }, + "createdCell": function(td, cellData, rowData, row, col) { + + if(rowData.status === "success" || rowData.status === "published") + $(td).find("#bfeditor-delete"+rowData.id).attr("disabled", "disabled"); + + var useguid = guid(); + var loadtemplate = {}; + var tempstore = []; + + bfestore.store = []; + bfestore.loadtemplates = []; + + //default + //var spoints = editorconfig.startingPoints[0].menuItems[0]; + if (rowData.profile !== "profile:bf2:Load:Work" && rowData.profile !== "profile:bf2:IBC:Instance"){ + var menuIndex = _.findIndex(_(editorconfig.startingPoints).chain().find({ + menuItems: [{ + useResourceTemplates: [rowData.profile] + }] + }).value().menuItems, { + useResourceTemplates: [rowData.profile] + }) + var spoints = _(editorconfig.startingPoints).chain().find({ + menuItems: [{ + useResourceTemplates: [rowData.profile] + }] + }).value().menuItems[menuIndex] + } else if (rowData.profile === "profile:bf2:Load:Work"){ + var spoints = { label: "Loaded Work", + type: ["http://id.loc.gov/ontologies/bibframe/Work"], + useResourceTemplates:["profile:bf2:Load:Work"] + }; + } else if (rowData.profile === "profile:bf2:IBC:Instance") { + + var spoints = { label: "IBC", + type: ["http://id.loc.gov/ontologies/bibframe/Instance"], + useResourceTemplates:["profile:bf2:IBC:Instance"] + }; + + } + + var bTypes = []; + /*rowData.rdf.forEach(function(t){ + if(t["@type"] !== undefined && t["@type"].length > 0 && t["@id"].indexOf("_:b")){ + //console.log(t["@id"] + " " +t["@type"][0]); + bTypes.push(t["@type"][0]); + } else { + //console.log(); + } + }); + + findRt = _.where(editorconfig.startingPoints, { menuItems:[{type:bTypes}] }) + if (findRt[0] !== undefined){ + spoints = _.where(editorconfig.startingPoints, { menuItems:[{type:bTypes}] })[0].menuItems[0]; + } + */ + var temptemplates = []; + spoints.useResourceTemplates.forEach(function(l) { + var useguid = guid(); + var loadtemplate = {}; + loadtemplate.templateGUID = rowData.name; + loadtemplate.resourceTemplateID = l; + //loadtemplate.resourceURI = cellData; + //loadtemplate.resourceURI = whichrt(loadtemplate, editorconfig.baseURI) + loadTemplate.templateGUID;//editorconfig.baseURI + useguid; + loadtemplate.embedType = "page"; + loadtemplate.data = []; + temptemplates.push(loadtemplate); + }); + + $(td).find("#bfeditor-retrieve" + rowData.id).click(function() { + if (editorconfig.retrieve.callback !== undefined) { + //loadtemplates = temptemplates; + bfestore.loadtemplates = temptemplates; + //editorconfig.retrieve.callback(cellData,bfestore, bfelog, cbLoadTemplates); + bfestore.store = []; + bfestore.state = "edit"; + tempstore = bfestore.jsonld2store(rowData.rdf); + bfestore.name = rowData.name; + bfestore.created = rowData.created; + bfestore.url = rowData.url; + bfestore.profile = rowData.profile; + $('[href=#create]').tab('show'); + if($('#bfeditor-messagediv').length){ + $('#bfeditor-messagediv').remove(); + $('#bfeditor-formdiv').show(); + $('#save-btn').remove(); + $('#bfeditor-previewPanel').remove(); + } + cbLoadTemplates(); + window.location.hash = mintResource(rowData.name); + } else { + //retrieve disabled + } + }); + + $(td).append($('
    ')); + + $(td).find("#bfeditor-deleteConfirmButton" + rowData.id).click(function() { + if (editorconfig.deleteId.callback !== undefined) { + editorconfig.deleteId.callback(rowData.id, editorconfig.getCSRF.callback(), bfelog); + var table = $('#table_id').DataTable(); + //table.row($(this).parents('tr')).remove().draw(); + bfestore.store = []; + //table.ajax.reload(); + } else { + //delete disabled + } + }); + + $(td).find("#bfeditor-deleteConfirm" + rowData.id).on('hidden.bs.modal', function() { + var table = $('#table_id').DataTable(); + bfestore.store = []; + table.ajax.reload(); + }); + } + } + ] + }); + }); + $browsediv.append($datatable); + } + $formdiv.append($loader); + $menudiv.append("

    Create Resource

    "); $rowdiv.append($menudiv); - $formdiv.append("

    Dashboard

    ", {class: "page-header"}); $rowdiv.append($formdiv); //rowdiv.append(optiondiv); - $(editordiv).append($rowdiv); - - this.setConfig(config); - - for (var h=0; h < config.startingPoints.length; h++) { - var sp = config.startingPoints[h]; - var $menuul = $('
      ', {class: "nav nav-sidebar"}); - var menuheadingul = null; - if (typeof sp.menuGroup !== undefined && sp.menuGroup !== "") { - $menuheading = $('
    • '); - $menuheadingul = $(''); - $menuheading.append($menuheadingul); - $menuul.append($menuheading); - } - for (var i=0; i < sp.menuItems.length; i++) { - var $li = $('
    • '); - var $a = $('', {href: "#", id: "sp-" + h + "_" + i}); - $a.html(sp.menuItems[i].label); - $a.click(function(){ - menuSelect(this.id); - }); - $li.append($a); - if ( $menuheadingul !== null ) { - $menuheadingul.append($li); - } else { - $menuul.append($li); - } - } - $menudiv.append($menuul); - } + $creatediv.append($rowdiv); + + $loaddiv.append($('\ +
      \ +
      \ +
      \ + \ +
      \ + \ +
      ')); + + $loaddiv.find("#bfeditor-loaduri").click(function() { + //var loadtemplates = []; + + var spoints = { label: "Loaded Work", + type: ["http://id.loc.gov/ontologies/bibframe/Work"], + useResourceTemplates:["profile:bf2:Monograph:Work"] + }; + + bfeditor.bfestore.store = []; + bfeditor.bfestore.name = guid(); + bfeditor.bfestore.created = new Date().toUTCString(); + bfeditor.bfestore.url = config.url + "/verso/api/bfs?filter=%7B%22name%22%3A%20%22" + bfeditor.bfestore.name + "%22%7D"; + bfeditor.bfestore.state = "loaduri"; + bfeditor.bfestore.profile = spoints.useResourceTemplates[0]; + loadtemplatesCount = spoints.useResourceTemplates.length; - // Debug div - if (editorconfig.logging !== undefined && editorconfig.logging.level !== undefined && editorconfig.logging.level == "DEBUG") { - var $debugdiv = $('
      '); - $(editordiv).append($debugdiv); - var $debugpre = $('#bfeditor-debug'); - $debugpre.html(JSON.stringify(profiles, undefined, " ")); - } - - var $footer = $('