graphdb-workbench 2.3.0-TR6 → 2.3.0-TR8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{0.15196c70676b993db356.bundle.js → 0.48f0a08c129cab95f345.bundle.js} +3 -3
- package/dist/0.48f0a08c129cab95f345.bundle.js.map +1 -0
- package/dist/108.7199f12abac98c8182cd.bundle.js +2 -0
- package/dist/108.7199f12abac98c8182cd.bundle.js.map +1 -0
- package/dist/{11.e3c940aa59365084050b.bundle.js → 11.4928d8d13ff46f3872bb.bundle.js} +2 -2
- package/dist/11.4928d8d13ff46f3872bb.bundle.js.map +1 -0
- package/dist/129.c42b901c27e8de081b82.bundle.js +2 -0
- package/dist/129.c42b901c27e8de081b82.bundle.js.map +1 -0
- package/dist/148.45985ae23de642595544.bundle.js +1 -1
- package/dist/148.45985ae23de642595544.bundle.js.map +1 -1
- package/dist/20.4eb25ede434dc329ecf1.bundle.js +1 -1
- package/dist/20.4eb25ede434dc329ecf1.bundle.js.map +1 -1
- package/dist/{21.dd1a8782fa1bea210dc2.bundle.js → 21.b8c57ce9c9688adcf29c.bundle.js} +2 -2
- package/dist/21.b8c57ce9c9688adcf29c.bundle.js.map +1 -0
- package/dist/{25.c2d2c79cbb29e36a4cce.bundle.js → 25.dad934ee482c9b825245.bundle.js} +2 -2
- package/dist/25.dad934ee482c9b825245.bundle.js.map +1 -0
- package/dist/27.fef157d9275358c9f1a0.bundle.js +1 -1
- package/dist/27.fef157d9275358c9f1a0.bundle.js.map +1 -1
- package/dist/{3.d06a0ca122c78522c911.bundle.js → 3.d4e2ee6def5774b8b495.bundle.js} +2 -2
- package/dist/3.d4e2ee6def5774b8b495.bundle.js.map +1 -0
- package/dist/33.fde8076c81c87c25c367.bundle.js +1 -1
- package/dist/33.fde8076c81c87c25c367.bundle.js.map +1 -1
- package/dist/{39.0eebc4b972cff879c1c9.bundle.js → 39.ecdfa8a15c661473c246.bundle.js} +2 -2
- package/dist/39.ecdfa8a15c661473c246.bundle.js.map +1 -0
- package/dist/40.10f42e3f6d8d87bd3221.bundle.js +1 -1
- package/dist/40.10f42e3f6d8d87bd3221.bundle.js.map +1 -1
- package/dist/5.5e565a2f6404b3c60148.bundle.js +2 -0
- package/dist/5.5e565a2f6404b3c60148.bundle.js.map +1 -0
- package/dist/62.eff529f903ab72e57c23.bundle.js +2 -0
- package/dist/62.eff529f903ab72e57c23.bundle.js.map +1 -0
- package/dist/94.94158487a9024ff3a623.bundle.js +1 -1
- package/dist/94.94158487a9024ff3a623.bundle.js.map +1 -1
- package/dist/{bundle.00cc9035be8b524d4240.bundle.js → bundle.0cdc9c2787cb0740de6d.bundle.js} +3 -3
- package/dist/bundle.0cdc9c2787cb0740de6d.bundle.js.map +1 -0
- package/dist/css/yasr.custom.css +9 -7
- package/dist/i18n/locale-en.json +2 -1
- package/dist/i18n/locale-fr.json +2 -1
- package/dist/index.html +4 -4
- package/dist/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html +1 -1
- package/dist/{main.59e407d8a8b46a1a9bad.css → main.c29920c7f6f6ecb00cae.css} +1 -1
- package/dist/pages/autocomplete.html +1 -1
- package/dist/pages/choose-repository-type.html +1 -1
- package/dist/pages/cluster-management/clusterInfo.html +3 -3
- package/dist/pages/create-index.html +4 -4
- package/dist/pages/dependencies.html +1 -1
- package/dist/pages/domainRangeInfo.html +2 -2
- package/dist/pages/edit.html +1 -1
- package/dist/pages/explore.html +1 -1
- package/dist/pages/export.html +1 -1
- package/dist/pages/find.html +1 -1
- package/dist/pages/graph-config/saveGraphConfig.html +11 -11
- package/dist/pages/graphs-visualizations.html +7 -7
- package/dist/pages/guides.html +1 -1
- package/dist/pages/import.html +1 -1
- package/dist/pages/jdbc-create.html +5 -5
- package/dist/pages/monitor/queries.html +1 -1
- package/dist/pages/monitor/resources.html +2 -2
- package/dist/pages/namespaces.html +2 -2
- package/dist/pages/plugins.html +1 -1
- package/dist/pages/rdfClassHierarchyInfo.html +7 -7
- package/dist/pages/rdfrank.html +2 -2
- package/dist/pages/repositories.html +2 -2
- package/dist/pages/repository.html +2 -2
- package/dist/pages/similarity-indexes.html +1 -1
- package/dist/pages/sparql-template-create.html +5 -5
- package/dist/pages/sparql.html +3 -3
- package/dist/pages/webapi.html +2 -2
- package/dist/plugins.js +2 -1
- package/dist/res/swagger/index.html +27 -27
- package/package.json +1 -1
- package/dist/0.15196c70676b993db356.bundle.js.map +0 -1
- package/dist/108.d415d719be3fc3a428f4.bundle.js +0 -2
- package/dist/108.d415d719be3fc3a428f4.bundle.js.map +0 -1
- package/dist/11.e3c940aa59365084050b.bundle.js.map +0 -1
- package/dist/129.02e23389a50348366a13.bundle.js +0 -2
- package/dist/129.02e23389a50348366a13.bundle.js.map +0 -1
- package/dist/21.dd1a8782fa1bea210dc2.bundle.js.map +0 -1
- package/dist/25.c2d2c79cbb29e36a4cce.bundle.js.map +0 -1
- package/dist/3.d06a0ca122c78522c911.bundle.js.map +0 -1
- package/dist/39.0eebc4b972cff879c1c9.bundle.js.map +0 -1
- package/dist/5.b0829613ef25834bf1ab.bundle.js +0 -2
- package/dist/5.b0829613ef25834bf1ab.bundle.js.map +0 -1
- package/dist/62.35e111a570b5e038fdea.bundle.js +0 -2
- package/dist/62.35e111a570b5e038fdea.bundle.js.map +0 -1
- package/dist/bundle.00cc9035be8b524d4240.bundle.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///./src/js/angular/utils/notifications.js","webpack:///./src/js/angular/graphexplore/controllers/graphs-config.controller.js"],"names":["Notifications","toastr","$translate","showToastMessageWithDelay","message","Promise","r","success","instant","setTimeout","angular","module","factory","$inject","GraphConfigCtrl","$scope","$timeout","$location","$repositories","SparqlRestService","$filter","GraphConfigRestService","AutocompleteRestService","$routeParams","RDF4JRepositoriesRestService","LocalStorageAdapter","LSKeys","selectedFixedNodeChanged","page","totalPages","helpHidden","get","HIDE_GRAPH_CONFIG_HELP","toggleHelp","value","undefined","set","fixedVisualCallback","uri","label","newConfig","startIRI","startIRILabel","isDefaultGraph","sample","name","isUserGraph","getSampleName","property","extra","id","configName","showInvalidMsg","warning","getQueryForCurrentPage","config","query","startMode","startGraphQuery","expandQuery","resourceQuery","predicateLabelQuery","resourcePropertiesQuery","isDefined","initForConfig","checkAutocompleteStatus","getAutocompletePromise","getGraphConfigSamples","data","samples","_","filter","s","revertConfig","error","getError","createGraphConfig","async","url","updateGraphConfig","$on","getNamespacesPromise","getNamespaces","getActiveRepository","validateQueryWithCallback","successCallback","queryType","params","all","oneOf","validateQuery","broadcastAddStartFixedNodeEvent","checkPageAndMode","$broadcast","validateCurrentPage","updateModel","goToPage","nextPage","showEditor","notoolbar","goToPreviousPage","goToNextPage","saveGraphConfig","startQueryIncludeInferred","currentQuery","inference","startQuerySameAs","sameAs","isUpdate","window","editor","getValue","trim","setQuery","setValue","updateDirty","q1","q2","queryEditorIsDirty","updateEditor","isActiveRepoOntopType","nocount","loadTab","selectTab","xhr","abort","viewMode","showPreview","outputType","runQuery","revertEditor","$watch","shared","encodeQuery","encodeURIComponent","getConfig","defaultTabConfig","saveQueryToLocal","currentQueryTab","setLoader","isRunning","progressMessage","extraMessage","yasrInnerContainer","element","document","getElementById","queryIsRunning","queryStartTime","Date","now","countTimeouted","addClass","removeClass","$$phase","$apply","fixSizesOnHorizontalViewModeSwitch","verticalViewParam","visibleWindowHeight","innerHeight","documentElement","clientHeight","body","verticalView","orientationViewMode","newHeight","querySelector","getBoundingClientRect","style","height","noPadding","minHeight","paddingRight","paddingLeft","timer","cancel","yasr","container","resize","showHideEditor","$","tab","changePage","explain","executedQueryTab","getQueryType","getQueryMode","explainRequested","currentTabConfig","resultsCount","resetCurrentTabConfig","getRepositoryNamespaces","usedPrefixes","results","bindings","forEach","e","prefix","namespace","namespaces","repositoryError","finally","addKnownPrefixes","JSON","stringify","msg","getExistingTabId","existingTabId","tabsData","item","offset","allResultsCount","pageSize","timeFinished","timeTook","sizeDelta","css","getQueryID","attr","queryExists","tabs","saveTab","idx","i","length","findTabIndexByID","addNewTab","callback","tabName","savedQuery","changePagination","toggleSampleQueries","querySelected","tabId","getLoaderMessage","timeSeconds","timeHuman","getHumanReadableSeconds","changeViewMode","tabID","remove","focusQueryEditor","find","is","focus","on","$watchCollection","tabEvent","relatedTarget","target","copy","showSampleQueries","sampleQueries","getResultsDescription","getUpdateDescription","getStaleWarningMessage","controller"],"mappings":"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","file":"39.0eebc4b972cff879c1c9.bundle.js","sourcesContent":["angular\n .module('graphdb.framework.utils.notifications', [])\n .factory('Notifications', Notifications);\n\nNotifications.$inject = ['toastr', '$translate'];\n\nfunction Notifications(toastr, $translate) {\n return {\n showToastMessageWithDelay\n };\n\n /**\n * This method will show message with tiny delay and only after completion\n * of latter redirection to \"graphs-visualizations\" page will happen.\n * @param {string} message The message to be displayed.\n * @return {Promise<any>}\n */\n function showToastMessageWithDelay(message) {\n return new Promise((r) => {\n toastr.success($translate.instant(message));\n setTimeout(r, 200);\n });\n }\n}\n","import 'angular/utils/notifications';\nimport 'angular/utils/local-storage-adapter';\n\nangular\n .module('graphdb.framework.graphexplore.controllers.graphviz.config', [\n 'graphdb.framework.utils.notifications',\n 'graphdb.framework.utils.localstorageadapter'\n ])\n .controller('GraphConfigCtrl', GraphConfigCtrl);\n\nGraphConfigCtrl.$inject = ['$scope', '$timeout', '$location', 'toastr', '$repositories', 'SparqlRestService', '$filter', 'GraphConfigRestService', 'AutocompleteRestService', '$routeParams', 'Notifications', 'RDF4JRepositoriesRestService', 'LocalStorageAdapter', 'LSKeys', '$translate'];\n\nfunction GraphConfigCtrl($scope, $timeout, $location, toastr, $repositories, SparqlRestService, $filter, GraphConfigRestService, AutocompleteRestService, $routeParams, Notifications, RDF4JRepositoriesRestService, LocalStorageAdapter, LSKeys, $translate) {\n\n $scope.page = 1;\n $scope.totalPages = 5;\n\n $scope.helpHidden = LocalStorageAdapter.get(LSKeys.HIDE_GRAPH_CONFIG_HELP) === 1;\n\n $scope.toggleHelp = function (value) {\n if (value === undefined) {\n value = LocalStorageAdapter.get(LSKeys.HIDE_GRAPH_CONFIG_HELP);\n }\n if (value !== 1) {\n LocalStorageAdapter.set(LSKeys.HIDE_GRAPH_CONFIG_HELP, 1);\n $scope.helpHidden = true;\n } else {\n LocalStorageAdapter.set(LSKeys.HIDE_GRAPH_CONFIG_HELP, 0);\n $scope.helpHidden = false;\n }\n };\n\n var selectedFixedNodeChanged;\n $scope.fixedVisualCallback = function (uri, label) {\n $scope.newConfig.startIRI = uri;\n $scope.newConfig.startIRILabel = label;\n selectedFixedNodeChanged = true;\n };\n\n $scope.isDefaultGraph = function (sample) {\n return (sample.name === 'Minimal' || sample.name === 'Advanced');\n };\n\n $scope.isUserGraph = function (sample) {\n return !$scope.isDefaultGraph(sample);\n };\n\n $scope.getSampleName = function (sample, property) {\n const extra = sample[property + 'Description'];\n if (extra) {\n // Sample has description, use it\n return extra;\n } else {\n // Sample is a copy of existing config, prepend Copy of to name\n return sample.id ? 'Copy of ' + sample.name : sample.name;\n }\n };\n\n const getGraphConfigSamples = function () {\n GraphConfigRestService.getGraphConfigSamples()\n .success(function (data) {\n $scope.samples = _.filter(data, function (s) {\n // Skip the currently edited config from samples and store it into a revert variable\n if (!s.id || $scope.newConfig.id !== s.id) {\n return true;\n } else {\n $scope.revertConfig = s;\n return false;\n }\n });\n }).error(function (data) {\n toastr.error(getError(data), $translate.instant('graphexplore.error.graph.configs'));\n });\n };\n\n const configName = $routeParams.configName;\n $scope.newConfig = {startQueryIncludeInferred: true, startQuerySameAs: true};\n $scope.newConfig.startMode = 'search';\n $scope.isUpdate = false;\n $scope.shared = false;\n\n $scope.encodeQuery = function (query) {\n return encodeURIComponent(query);\n };\n\n function showInvalidMsg(message) {\n toastr.warning(message);\n }\n\n if (configName) {\n $scope.isUpdate = true;\n GraphConfigRestService.getConfig(configName)\n .success(function (data) {\n $scope.newConfig = data;\n initForConfig();\n })\n .error(function (data) {\n toastr.error(getError(data), $translate.instant('created.connector', {name: configName}));\n });\n } else {\n $scope.isUpdate = false;\n initForConfig();\n }\n\n function getQueryForCurrentPage(config) {\n let query;\n\n if (config.startMode === 'query' && $scope.page === 1) {\n query = config.startGraphQuery;\n } else if ($scope.page === 2) {\n query = config.expandQuery;\n } else if ($scope.page === 3) {\n query = config.resourceQuery;\n } else if ($scope.page === 4) {\n query = config.predicateLabelQuery;\n } else if ($scope.page === 5) {\n query = config.resourcePropertiesQuery;\n }\n\n return angular.isDefined(query) ? query : '';\n }\n\n function initForConfig() {\n getGraphConfigSamples();\n $scope.createGraphConfig = function () {\n GraphConfigRestService.createGraphConfig($scope.newConfig)\n .success(async function () {\n await Notifications.showToastMessageWithDelay('graphexplore.saved.new.config');\n $location.url('graphs-visualizations');\n }).error(function (data) {\n toastr.error(getError(data), $translate.instant('graphexplore.error.could.not.create'));\n });\n };\n\n $scope.updateGraphConfig = function () {\n GraphConfigRestService.updateGraphConfig($scope.newConfig)\n .success(async function () {\n await Notifications.showToastMessageWithDelay('graphexplore.saved.config');\n $location.url('graphs-visualizations');\n }).error(function (data) {\n toastr.error(getError(data), $translate.instant('graphexplore.error.could.not.save'));\n });\n };\n\n function checkAutocompleteStatus() {\n $scope.getAutocompletePromise = AutocompleteRestService.checkAutocompleteStatus();\n }\n\n $scope.$on('autocompleteStatus', function() {\n checkAutocompleteStatus();\n });\n\n checkAutocompleteStatus();\n $scope.getNamespacesPromise = RDF4JRepositoriesRestService.getNamespaces($scope.getActiveRepository());\n\n const validateQueryWithCallback = function (successCallback, query, queryType, params, all, oneOf) {\n if (!query) {\n successCallback();\n } else {\n GraphConfigRestService.validateQuery(query, queryType, params, all, oneOf)\n .success(function () {\n successCallback();\n }).error(function (data) {\n showInvalidMsg(getError(data));\n });\n }\n };\n\n $scope.validateCurrentPage = function (successCallback) {\n $scope.updateModel();\n\n if ($scope.page === 1) {\n if ($scope.newConfig.startMode === 'node' && !$scope.newConfig.startIRI) {\n showInvalidMsg($translate.instant('graphexplore.select.start.node'));\n } else if ($scope.newConfig.startMode === 'query' && !$scope.newConfig.startGraphQuery) {\n showInvalidMsg($translate.instant('graphexplore.provide.query'));\n } else if ($scope.newConfig.startMode === 'query') {\n validateQueryWithCallback(successCallback, $scope.newConfig.startGraphQuery, 'graph')\n } else {\n successCallback();\n }\n } else if ($scope.page === 2) {\n validateQueryWithCallback(successCallback, $scope.newConfig.expandQuery, 'construct', ['node'])\n } else if ($scope.page === 3) {\n validateQueryWithCallback(successCallback, $scope.newConfig.resourceQuery, 'tuple', ['node'], [], ['type', 'label', 'comment', 'rank']);\n } else if ($scope.page === 4) {\n validateQueryWithCallback(successCallback, $scope.newConfig.predicateLabelQuery, 'tuple', ['edge'], ['label']);\n } else if ($scope.page === 5) {\n validateQueryWithCallback(successCallback, $scope.newConfig.resourcePropertiesQuery, 'tuple', ['node'], ['property', 'value']);\n }\n };\n\n $scope.goToPage = function (nextPage) {\n if ($scope.page === nextPage) {\n // already there\n return;\n }\n\n $scope.validateCurrentPage(function () {\n $scope.showEditor();\n $scope.page = nextPage;\n $scope.notoolbar = $scope.page !== 1;\n });\n };\n\n $scope.goToPreviousPage = function () {\n if ($scope.page > 1) {\n $scope.goToPage($scope.page - 1);\n }\n\n if (checkPageAndMode()) {\n selectedFixedNodeChanged = false;\n }\n };\n\n $scope.goToNextPage = function () {\n broadcastAddStartFixedNodeEvent();\n if ($scope.newConfig.startMode !== 'node' || selectedFixedNodeChanged) {\n $scope.goToPage($scope.page + 1);\n }\n };\n\n function broadcastAddStartFixedNodeEvent() {\n if (checkPageAndMode()) {\n $scope.$broadcast('addStartFixedNodeAutomatically', {startIRI: $scope.newConfig.startIRI});\n }\n }\n\n function checkPageAndMode() {\n return $scope.page === 1 && $scope.newConfig.startMode === 'node';\n }\n\n $scope.saveGraphConfig = function () {\n broadcastAddStartFixedNodeEvent();\n\n if (checkPageAndMode() && !selectedFixedNodeChanged) {\n return;\n }\n\n $scope.newConfig.startQueryIncludeInferred = $scope.currentQuery.inference;\n $scope.newConfig.startQuerySameAs = $scope.currentQuery.sameAs;\n\n $scope.validateCurrentPage(function () {\n if (!$scope.newConfig.name) {\n showInvalidMsg($translate.instant('graphexplore.provide.config.name'));\n return;\n }\n $scope.isUpdate ? $scope.updateGraphConfig($scope.newConfig) : $scope.createGraphConfig($scope.newConfig);\n });\n };\n\n $scope.updateModel = function () {\n const query = window.editor.getValue().trim();\n if ($scope.newConfig.startMode === 'query' && $scope.page === 1) {\n $scope.newConfig.startGraphQuery = query;\n } else if ($scope.page === 2) {\n $scope.newConfig.expandQuery = query;\n } else if ($scope.page === 3) {\n $scope.newConfig.resourceQuery = query;\n } else if ($scope.page === 4) {\n $scope.newConfig.predicateLabelQuery = query;\n } else if ($scope.page === 5) {\n $scope.newConfig.resourcePropertiesQuery = query;\n }\n };\n\n // Called when user clicks on a sample query\n $scope.setQuery = function (query) {\n // Hack for YASQE bug\n window.editor.setValue(query ? query : ' ');\n };\n\n $scope.updateDirty = function () {\n if ($scope.revertConfig) {\n const q1 = getQueryForCurrentPage($scope.revertConfig);\n const q2 = window.editor.getValue().trim();\n $scope.queryEditorIsDirty = q1 !== q2;\n }\n };\n\n // Updates the position of the query editor to match the current div placeholder\n // and sets the editor's query to the relevant query from the model.\n $scope.updateEditor = function () {\n $timeout(function () {\n $scope.currentQuery.query = getQueryForCurrentPage($scope.newConfig);\n // // Check for ontop repository and override nocount property (it's default value is false)\n if ($repositories.isActiveRepoOntopType()) {\n $scope.nocount = true;\n }\n $scope.currentQuery.inference = $scope.newConfig.startQueryIncludeInferred;\n $scope.currentQuery.sameAs = $scope.newConfig.startQuerySameAs;\n loadTab();\n selectTab($scope.currentQuery.id);\n }, 100);\n\n };\n\n $scope.showEditor = function () {\n if (window.editor && window.editor.xhr) {\n window.editor.xhr.abort();\n }\n $scope.viewMode = 'yasr';\n };\n\n $scope.showPreview = function () {\n // For some reason YASR gets confused and sets this to rawResponse\n // if we execute a CONSTRUCT and then a SELECT. This makes sure it's always table.\n $scope.currentQuery.outputType = 'table';\n $scope.runQuery();\n };\n\n $scope.revertEditor = function () {\n $scope.setQuery(getQueryForCurrentPage($scope.revertConfig));\n };\n\n // Trigger for showing the editor and moving it to the right position\n $scope.$watch('newConfig.startMode', function (value) {\n if (value === 'query') {\n $timeout(function () {\n $scope.updateEditor();\n }, 0);\n }\n });\n\n // Trigger for showing the editor and moving it to the right position\n $scope.$watch('page', function (value) {\n if ($scope.newConfig.startMode === 'query' || value > 1) {\n $timeout(function () {\n $scope.showEditor();\n $scope.updateEditor();\n }, 0);\n }\n });\n }\n\n // DOWN HERE WE KEEP EVERYTHING PURELY QUERY EDITOR (MOSTLY BORROWED FROM query-editor.controller.js)\n // But Why? Can't we reuse it instead of borrow?\n\n const defaultTabConfig = {\n id: '1',\n name: '',\n query: 'select * where { \\n' +\n '\\t?s ?p ?o .\\n' +\n '} limit 100 \\n',\n inference: $scope.newConfig.startQueryIncludeInferred,\n sameAs: $scope.newConfig.startQuerySameAs\n };\n\n $scope.resetCurrentTabConfig = function () {\n $scope.currentTabConfig = {\n pageSize: 100, // page limit 100 as this is only used for preview\n page: 1,\n allResultsCount: 0,\n resultsCount: 0\n };\n };\n\n $scope.queryExists = false;\n\n $scope.resetCurrentTabConfig();\n\n $scope.tabsData = $scope.tabs = [defaultTabConfig];\n\n // query tab operations\n $scope.saveTab = saveTab;\n $scope.loadTab = loadTab;\n $scope.addNewTab = addNewTab;\n\n // query operations\n $scope.runQuery = runQuery;\n $scope.getNamespaces = getNamespaces;\n $scope.changePagination = changePagination;\n $scope.toggleSampleQueries = toggleSampleQueries;\n $scope.addKnownPrefixes = addKnownPrefixes;\n $scope.getExistingTabId = getExistingTabId;\n $scope.querySelected = querySelected;\n $scope.saveQueryToLocal = saveQueryToLocal;\n\n $scope.setLoader = setLoader;\n $scope.getLoaderMessage = getLoaderMessage;\n\n // query editor and results orientation\n $scope.fixSizesOnHorizontalViewModeSwitch = fixSizesOnHorizontalViewModeSwitch;\n $scope.changeViewMode = changeViewMode;\n $scope.showHideEditor = showHideEditor;\n $scope.focusQueryEditor = focusQueryEditor;\n $scope.orientationViewMode = true;\n\n // start of repository actions\n\n function saveQueryToLocal(currentQueryTab) {\n }\n\n function setLoader(isRunning, progressMessage, extraMessage) {\n const yasrInnerContainer = angular.element(document.getElementById('yasr-inner'));\n $scope.queryIsRunning = isRunning;\n if (isRunning) {\n $scope.queryStartTime = Date.now();\n $scope.countTimeouted = false;\n $scope.progressMessage = progressMessage;\n $scope.extraMessage = extraMessage;\n yasrInnerContainer.addClass('hide');\n } else {\n $scope.progressMessage = '';\n $scope.extraMessage = '';\n yasrInnerContainer.removeClass('hide');\n }\n // We might call this from angular or outside angular so take care of applying the scope.\n if ($scope.$$phase === null) {\n $scope.$apply();\n }\n }\n\n function getLoaderMessage() {\n const timeSeconds = (Date.now() - $scope.queryStartTime) / 1000;\n const timeHuman = $scope.getHumanReadableSeconds(timeSeconds);\n let message;\n\n if ($scope.progressMessage) {\n message = $scope.progressMessage + '... ' + timeHuman;\n } else {\n message = $translate.instant('common.running.operation', {timeHuman: timeHuman});\n }\n if ($scope.extraMessage && timeSeconds > 10) {\n message += '\\n' + $scope.extraMessage;\n }\n\n return message;\n }\n\n\n // start of query editor results orientation operations\n function fixSizesOnHorizontalViewModeSwitch(verticalViewParam) {\n function visibleWindowHeight() {\n return window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight || 0;\n }\n\n const codemirrorWrapperSelector = '.CodeMirror-wrap';\n const verticalView = verticalViewParam;\n if (!$scope.orientationViewMode) {\n $scope.noPadding = {paddingRight: 15, paddingLeft: 0};\n\n // window.editor is undefined if no repo is selected\n if (window.editor && document.querySelector(codemirrorWrapperSelector)) {\n let newHeight = visibleWindowHeight() - (document.querySelector(codemirrorWrapperSelector).getBoundingClientRect().top);\n newHeight -= 40;\n document.querySelector(codemirrorWrapperSelector).style.height = newHeight + 'px';\n document.getElementById('yasr').style.minHeight = newHeight + 'px';\n } else {\n let timer;\n if (verticalView) {\n timer = $timeout(function () {\n $scope.fixSizesOnHorizontalViewModeSwitch(verticalView)\n }, 100);\n } else {\n timer = $timeout($scope.fixSizesOnHorizontalViewModeSwitch, 100);\n }\n\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n }\n } else {\n if ($scope.viewMode === 'yasr') {\n let newHeight = visibleWindowHeight() - (document.querySelector(codemirrorWrapperSelector).getBoundingClientRect().top);\n newHeight -= 40;\n document.querySelector(codemirrorWrapperSelector).style.height = newHeight + 'px';\n } else {\n $scope.noPadding = {};\n document.querySelector(codemirrorWrapperSelector).style.height = '';\n }\n document.getElementById('yasr').style.minHeight = '';\n }\n if (window.yasr && window.yasr.container) {\n $timeout(function () {\n window.yasr.container.resize();\n }, 100);\n }\n }\n\n if (!$scope.orientationViewMode) {\n showHideEditor();\n }\n\n function changeViewMode(tabID) {\n $scope.viewMode = 'none';\n $scope.orientationViewMode = !$scope.orientationViewMode;\n fixSizesOnHorizontalViewModeSwitch();\n $('.dataTables_filter').remove();\n $('.resultsTable').remove();\n $timeout(function () {\n loadTab();\n selectTab(tabID);\n }, 100);\n }\n\n function showHideEditor() {\n fixSizesOnHorizontalViewModeSwitch(true);\n }\n\n function focusQueryEditor() {\n if (!angular.element(document).find('.editable-input').is(':focus')) {\n angular.element(document).find('.CodeMirror textarea:first-child').focus();\n }\n }\n\n function selectTab(id) {\n $timeout(function () {\n $('a[data-id = \"' + id + '\"]').tab('show');\n }, 0);\n }\n\n // start of query operations\n function runQuery(changePage, explain) {\n $scope.executedQueryTab = $scope.currentQuery;\n if (explain && !(window.editor.getQueryType() === 'SELECT' || window.editor.getQueryType() === 'CONSTRUCT')) {\n toastr.warning($translate.instant('query.editor.warning.msg'));\n return;\n }\n\n if (window.editor.getQueryMode() === 'update') {\n toastr.warning($translate.instant('cannot.execute.update.error'));\n return;\n }\n\n $scope.explainRequested = explain;\n if (!$scope.queryIsRunning) {\n if (changePage) {\n $scope.currentTabConfig.resultsCount = 0;\n } else {\n $scope.resetCurrentTabConfig();\n }\n\n // Hides the editor and shows the yasr results\n $scope.viewMode = 'editor';\n if ($scope.orientationViewMode) {\n $scope.fixSizesOnHorizontalViewModeSwitch()\n }\n\n setLoader(true, $translate.instant('evaluating.query.msg'));\n window.editor.query();\n }\n }\n\n function getNamespaces() {\n // Signals the namespaces are to be fetched => loader will be shown\n setLoader(true, $translate.instant('common.refreshing.namespaces'), $translate.instant('common.extra.message'));\n RDF4JRepositoriesRestService.getRepositoryNamespaces()\n .success(function (data) {\n const usedPrefixes = {};\n data.results.bindings.forEach(function (e) {\n usedPrefixes[e.prefix.value] = e.namespace.value;\n });\n $scope.namespaces = usedPrefixes;\n })\n .error(function (data) {\n $scope.repositoryError = getError(data);\n })\n .finally(function () {\n // Signals namespaces were fetched => loader will be hidden\n setLoader(false);\n });\n }\n\n function changePagination() {\n runQuery(true, $scope.explainRequested);\n }\n\n if ($scope.getActiveRepository()) {\n getNamespaces();\n }\n\n $scope.$on('$destroy', function () {\n window.editor = null;\n window.yasr = null;\n });\n\n function toggleSampleQueries() {\n }\n\n // Add known prefixes\n function addKnownPrefixes() {\n SparqlRestService.addKnownPrefixes(JSON.stringify(window.editor.getValue()))\n .success(function (data) {\n if (angular.isDefined(window.editor) && angular.isDefined(data) && data !== window.editor.getValue()) {\n window.editor.setValue(data);\n }\n })\n .error(function (data) {\n let msg = getError(data);\n toastr.error(msg, $translate.instant('common.add.known.prefixes.error'));\n return true;\n });\n }\n\n $('textarea').on('paste', function () {\n $timeout(function () {\n addKnownPrefixes();\n }, 0);\n });\n\n function querySelected(query) {\n const tabId = getExistingTabId(query);\n $scope.toggleSampleQueries();\n if (!angular.isDefined(tabId)) {\n $scope.addNewTab(null, query.name, query.body);\n } else {\n selectTab(tabId);\n }\n }\n\n function getExistingTabId(query) {\n let existingTabId = undefined;\n angular.forEach($scope.tabsData, function (item) {\n if (item.name === query.name && item.query === query.body) {\n existingTabId = item.id;\n return item;\n }\n });\n\n return existingTabId;\n }\n\n // end of query operations\n\n // start of query tab operations\n function findTabIndexByID(id) {\n for (let i = 0; i < $scope.tabsData.length; i++) {\n const tab = $scope.tabsData[i];\n if (tab.id === id) {\n return i;\n }\n }\n }\n\n $scope.$watchCollection('[currentQuery.inference, currentQuery.sameAs]', function () {\n saveQueryToLocal($scope.currentQuery);\n });\n\n function saveTab(id) {\n const idx = findTabIndexByID(id);\n // Tab was deleted, don't try to save it's state\n if (idx === undefined) {\n return {};\n }\n const tab = $scope.tabsData[idx];\n $scope.saveQueryToLocal(tab);\n return tab;\n }\n\n function addNewTab(callback, tabName, savedQuery) {\n }\n\n function loadTab() {\n $scope.tabsData = [$scope.currentQuery];\n\n let tab = $scope.currentQuery;\n\n if ($scope.currentQuery.query == null || $scope.currentQuery.query === '') {\n // hack for YASQE bug\n window.editor.setValue(' ');\n } else {\n window.editor.setValue($scope.currentQuery.query);\n }\n\n $timeout(function () {\n $scope.currentTabConfig = {};\n $scope.currentTabConfig.queryType = tab.queryType;\n $scope.currentTabConfig.resultsCount = tab.resultsCount;\n\n $scope.currentTabConfig.offset = tab.offset;\n $scope.currentTabConfig.allResultsCount = tab.allResultsCount;\n $scope.currentTabConfig.page = tab.page;\n $scope.currentTabConfig.pageSize = tab.pageSize;\n\n $scope.currentTabConfig.timeFinished = tab.timeFinished;\n $scope.currentTabConfig.timeTook = tab.timeTook;\n $scope.currentTabConfig.sizeDelta = tab.sizeDelta;\n $scope.$apply();\n }, 0);\n\n //Remove padding of yasr so it will be aligned with sparql editor\n $('#yasr').css('padding', '0');\n }\n\n function getQueryID(element) {\n return $(element).attr('data-id');\n }\n\n $scope.$on('tabAction', function (e, tabEvent) {\n if (tabEvent.relatedTarget) {\n $scope.saveTab(getQueryID(tabEvent.relatedTarget));\n }\n $scope.loadTab(getQueryID(tabEvent.target));\n });\n\n $scope.$on('deleteAllexeptSelected', function (e, tabs) {\n $scope.tabsData = tabs;\n $scope.tabs = tabs;\n });\n // end of query tab operations\n\n $scope.currentQuery = angular.copy(defaultTabConfig);\n // $scope.state = {};\n $scope.showSampleQueries = false;\n $scope.savedQuery = {};\n $scope.sampleQueries = {};\n\n $scope.getResultsDescription = function () {\n };\n\n $scope.getUpdateDescription = function () {\n };\n\n $scope.getStaleWarningMessage = function () {\n }\n\n}\n"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[5,110],{61:function(e,t,o){"use strict";o.r(t),o.d(t,"STATIC_RULESETS",(function(){return i})),o.d(t,"REPOSITORY_TYPES",(function(){return n})),o.d(t,"FILENAME_PATTERN",(function(){return r})),o.d(t,"NUMBER_PATTERN",(function(){return a}));const i=[{id:"empty",name:"No inference"},{id:"rdfs-optimized",name:"RDFS (Optimized)"},{id:"rdfs",name:"RDFS"},{id:"rdfsplus-optimized",name:"RDFS-Plus (Optimized)"},{id:"owl-horst-optimized",name:"OWL-Horst (Optimized)"},{id:"owl-horst",name:"OWL-Horst"},{id:"owl2-ql-optimized",name:"OWL2-QL (Optimized)"},{id:"owl2-ql",name:"OWL2-QL"},{id:"owl-max-optimized",name:"OWL-Max (Optimized)"},{id:"owl-max",name:"OWL-Max"},{id:"owl2-rl-optimized",name:"OWL2-RL (Optimized)"},{id:"owl2-rl",name:"OWL2-RL"}],n={graphdbRepo:"graphdb",free:"free",eeWorker:"worker",eeMaster:"master",ontop:"ontop",se:"se",fedx:"fedx"},r=new RegExp("^[a-zA-Z0-9-_]+$"),a=new RegExp("^[0-9]+$")},66:function(e,t,o){"use strict";o.r(t),o.d(t,"getFileName",(function(){return r}));var i=o(61),n=o(0);const r=function(e){let t=e.lastIndexOf("/");-1===t&&(t=e.lastIndexOf("\\"));let o=e;return-1!==t&&(o=o.substring(t+1)),o},a=function(e){e&&(e.queryTimeout&&(e.queryTimeout.value=parseInt(e.queryTimeout.value)),e.queryLimitResults&&e.validationResultsLimitTotal&&e.validationResultsLimitPerConstraint?(e.queryLimitResults.value=parseInt(e.queryLimitResults.value),e.validationResultsLimitTotal.value=parseInt(e.validationResultsLimitTotal.value),e.validationResultsLimitPerConstraint.value=parseInt(e.validationResultsLimitPerConstraint.value)):e.leftJoinWorkerThreads&&e.boundJoinBlockSize&&e.joinWorkerThreads&&e.unionWorkerThreads&&(e.leftJoinWorkerThreads.value=parseInt(e.leftJoinWorkerThreads.value),e.boundJoinBlockSize.value=parseInt(e.boundJoinBlockSize.value),e.joinWorkerThreads.value=parseInt(e.joinWorkerThreads.value),e.unionWorkerThreads.value=parseInt(e.unionWorkerThreads.value)))},s=function(){const e=document.getElementById("shaclOptions");if(e){const t=e.getAttribute("aria-expanded");if(t&&"true"===t)return"fa fa-angle-down"}return"fa fa-angle-right"},l=function(e,t){e.queryTimeout&&(t.isInvalidQueryTimeout=!i.NUMBER_PATTERN.test(e.queryTimeout.value)),e.validationResultsLimitTotal&&e.validationResultsLimitPerConstraint&&e.queryLimitResults?(t.isInvalidValidationResultsLimitTotal=!i.NUMBER_PATTERN.test(e.validationResultsLimitTotal.value),t.isInvalidValidationResultsLimitPerConstraint=!i.NUMBER_PATTERN.test(e.validationResultsLimitPerConstraint.value),t.isInvalidQueryLimit=!i.NUMBER_PATTERN.test(e.queryLimitResults.value)):e.leftJoinWorkerThreads&&e.boundJoinBlockSize&&e.joinWorkerThreads&&e.unionWorkerThreads&&(t.isInvalidLeftJoinWorkerThreads=!i.NUMBER_PATTERN.test(e.leftJoinWorkerThreads.value),t.isInvalidBoundJoinBlockSize=!i.NUMBER_PATTERN.test(e.boundJoinBlockSize.value),t.isInvalidJoinWorkerThreads=!i.NUMBER_PATTERN.test(e.joinWorkerThreads.value),t.isInvalidUnionWorkerThreads=!i.NUMBER_PATTERN.test(e.unionWorkerThreads.value))},c=function(e,t){return"isInvalidQueryLimit"===e?t.instant("invalid.query.limit"):"isInvalidQueryTimeout"===e?t.instant("invalid.query.timeout"):"isInvalidValidationResultsLimitTotal"===e?t.instant("invalid.validation.results.limit.total"):"isInvalidValidationResultsLimitPerConstraint"===e?t.instant("invalid.validation.results.limit.per.constraint"):"isInvalidJoinWorkerThreads"===e?t.instant("invalid.join.worker.threads"):"isInvalidLeftJoinWorkerThreads"===e?t.instant("invalid.left.join.worker.threads"):"isInvalidUnionWorkerThreads"===e?t.instant("invalid.union.worker.threads"):"isInvalidBoundJoinBlockSize"===e?t.instant("invalid.bound.join.block.size"):void 0},d=function(e,t){const o=Object.keys(e),i=Object.values(e);for(let e=0;e<o.length;e++)if(i[e])return c(o[e],t);return""},u=function(e){return"https://graphdb.ontotext.com/documentation/"+e.productShortVersion},p=function(e){return e.getLocations().then(e=>e.filter(e=>!e.errorMsg&&!e.degradedReason))};function f(e,t,o,r,a,s,l,c,d,u,p,f,m){e.loader=!0,e.isLocationInactive=function(t){return!t.active||!e.hasActiveLocation()};const v=f.defer();function y(){return a.getLocations(v).then(t=>{e.locations=t}).finally(()=>e.loader=!1)}e.hasActiveLocation=function(){return a.hasActiveLocation()},e.getActiveLocation=function(){return a.getActiveLocation()},e.getLocationError=function(){return a.getLocationError()},e.getDegradedReason=function(){return a.getDegradedReason()},e.getRepositories=function(){return a.getRepositories()},e.isRepoActive=function(e){return a.isRepoActive(e)},e.deleteLocation=function(t){s.openSimpleModal({title:p.instant("location.confirm.detach"),message:p.instant("location.confirm.detach.warning",{uri:t}),warning:!0}).result.then((function(){e.loader=!0,a.deleteLocation(t).finally(()=>y())}))},e.addLocationHttp=function(t){e.loader=!0,c.addLocation(t).success((function(){a.init()})).error((function(e){const t=getError(e);r.error(t,p.instant("common.error"))})).finally(()=>y())},e.addLocation=function(){o.open({templateUrl:"js/angular/templates/modal/add-location.html",windowClass:"addLocationDialog",controller:"AddLocationCtrl"}).result.then((function(t){e.addLocationHttp(t)}))},e.editLocationHttp=function(t){e.loader=!0,c.editLocation(t).success((function(){a.init()})).error((function(e){const t=getError(e);r.error(t,p.instant("common.error"))})).finally(()=>y())},e.editLocation=function(t){o.open({templateUrl:"js/angular/templates/modal/edit-location.html",controller:"EditLocationCtrl",resolve:{location:function(){return t}}}).result.then((function(t){e.editLocationHttp(t)}),(function(){}))},e.setRepository=function(e){a.setRepository(e)},e.deleteRepository=function(t){s.openSimpleModal({title:p.instant("common.confirm.delete"),message:Object(n.decodeHTML)(p.instant("delete.repo.warning.msg",{repositoryId:t.id})),warning:!0}).result.then((function(){e.loader=!0,a.deleteRepository(t).finally(()=>{y(),e.loader=!1}),function(e){const t="dependencies-selectedGraph-"+e.id,o="classHierarchy-selectedGraph-"+e.id;angular.forEach(d.keys(),(function(e){(e.startsWith(o)||e.startsWith(t))&&d.remove(e)}))}(t)}))},e.restartRepository=function(t){s.openSimpleModal({title:p.instant("confirm.restart.repo"),message:Object(n.decodeHTML)(p.instant("confirm.restart.repo.warning.msg",{repositoryId:t.id})),warning:!0}).result.then((function(){e.loader=!0,a.restartRepository(t).finally(()=>y())}))},e.toggleDefaultRepository=function(t){e.getDefaultRepository()===t?a.setDefaultRepository(null):a.setDefaultRepository(t)},e.getDefaultRepository=function(){return a.getDefaultRepository()},e.getRepositoryDownloadLink=function(e){let t=`rest/repositories/${e.id}${e.type===i.REPOSITORY_TYPES.ontop?"/download-zip":"/download-ttl"}?location=${e.location}`;const o=l.getAuthToken();return o&&(t=`${t}&authToken=${encodeURIComponent(o)}`),t},e.copyToClipboard=function(e){s.openCopyToClipboardModal(e)},e.fromFile=function(){o.open({templateUrl:"js/angular/templates/modal/upload-repository-config.html",controller:"UploadRepositoryConfigCtrl"}).result.then((function(){a.init()}))},e.openActiveLocationSettings=function(){o.open({templateUrl:"js/angular/settings/modal/location-settings.html",controller:"ActiveLocationSettingsCtrl"})},y();const R=u((function(){m.isActive()&&!t.guidePaused||(a.initQuick(),y())}),5e3);e.$on("$destroy",(function(){u.cancel(R),v&&v.resolve()})),e.getRepositoriesFromLocation=function(e){return a.getRepositoriesFromLocation(e)}}function m(e,t,o,i,n){e.upload=function(t){t&&t.length&&(e.uploadFile=t[0])},e.ok=function(){e.uploadFile&&(e.uploadFileLoader=!0,o.upload({url:"rest/repositories",method:"POST",data:{config:e.uploadFile}}).success((function(){e.uploadFileLoader=!1,t.close()})).error((function(t){const o=getError(t);i.error(o,n.instant("common.error")),e.uploadFileLoader=!1})))},e.cancel=function(){t.dismiss("cancel")}}function v(e,t,o,i,n){e.newLocation={uri:"",authType:"none",username:"",password:"",active:!1},e.docBase=u(i),e.isValidLocation=function(){return(e.newLocation.uri.length<6||0===e.newLocation.uri.indexOf("http:")||0===e.newLocation.uri.indexOf("https:"))&&e.newLocation.uri.indexOf("/repositories")<=-1},e.ok=function(){e.newLocation?t.close(e.newLocation):o.error(n.instant("location.cannot.be.empty.error"))},e.cancel=function(){t.dismiss("cancel")}}function y(e,t,o,i){e.editedLocation=angular.copy(o),e.docBase=u(i),e.ok=function(){t.close(e.editedLocation)},e.cancel=function(){t.dismiss("cancel")}}function R(e,t){e.repositoryTypes=i.REPOSITORY_TYPES,e.chooseRepositoryType=function(e){t.path(`${t.path()}/${e}`)}}function T(e,t,o,n,r,c,u,f,m){var v;e.rulesets=i.STATIC_RULESETS.slice(),e.repositoryTypes=i.REPOSITORY_TYPES,e.params=u,e.repositoryType=u.repositoryType,e.enable=!0,e.loader=!0,e.pageTitle=m.instant("view.create.repo.title"),e.repositoryInfo={id:"",params:{},title:"",type:"",location:""},e.invalidValues={isInvalidQueryTimeout:!1,isInvalidQueryLimit:!1,isInvalidLeftJoinWorkerThreads:!1,isInvalidBoundJoinBlockSize:!1,isInvalidJoinWorkerThreads:!1,isInvalidUnionWorkerThreads:!1,isInvalidValidationResultsLimitPerConstraint:!1,isInvalidValidationResultsLimitTotal:!1},p(o).then(t=>{e.locations=t}),e.changedLocation=function(){e.$broadcast("changedLocation")},e.getConfig=function(o){f.getRepositoryConfiguration(o).then((function(t){const o=t.data;var i;e.repositoryInfo.params=o.params,e.repositoryInfo.type=o.type,a(e.repositoryInfo.params),(i=e.repositoryInfo.params)&&i.member&&(i.member.value=[]),e.loader=!1,r((function(){angular.element(document).find("#id").focus()}),50)})).catch((function(o){const i=getError(o);t.error(i,m.instant("common.error")),e.loader=!1}))},e.repositoryType&&(function(t){return e.isEnterprise()&&t===i.REPOSITORY_TYPES.graphdbRepo}(v=e.repositoryType)||function(t){return!e.isFreeEdition()&&!e.isEnterprise()&&t===i.REPOSITORY_TYPES.graphdbRepo}(v)||function(t){return e.isFreeEdition()&&t===i.REPOSITORY_TYPES.graphdbRepo}(v)||function(e){return e===i.REPOSITORY_TYPES.ontop}(v)||function(e){return e===i.REPOSITORY_TYPES.fedx}(v))?(e.repositoryInfo.type=e.repositoryType,e.getConfig(e.repositoryType),function(t){switch(t){case i.REPOSITORY_TYPES.graphdbRepo:e.pageTitle=m.instant("view.create.repo.title",{repoType:"GraphDB"});break;case i.REPOSITORY_TYPES.ontop:e.pageTitle=m.instant("view.create.repo.title",{repoType:"Ontop Virtual SPARQL"});break;case i.REPOSITORY_TYPES.fedx:e.pageTitle=m.instant("view.create.repo.title",{repoType:"FedX Virtual SPARQL"})}}(e.repositoryType)):n.path("/repository/create"),e.hasActiveLocation=function(){return o.hasActiveLocation()},e.activeLocation=function(){return o.getActiveLocation()};let y=!1;e.uploadRuleset=function(o){o&&o.length&&(e.uploadFile=o[0],e.uploadFileLoader=!0,c.upload({url:"rest/repositories/ruleset/upload",data:{ruleset:e.uploadFile,location:e.repositoryInfo.location}}).progress((function(e){})).success((function(o){if(o.success){const t=e.uploadFile.name,i={id:o.fileLocation,name:"Custom: "+t};e.rulesetPie?e.rulesets[0]=i:e.rulesets.unshift(i),e.rulesetPie=o.fileLocation,e.rulesetPieFile=t,e.repositoryInfo.params.ruleset.value=e.rulesetPie}else t.error(o.errorMessage),y=!0;e.uploadFileLoader=!1})).error((function(o){const i=getError(o);t.error(i,m.instant("common.error")),e.uploadFile="",e.uploadFileLoader=!1})))},e.noMembersError=function(){t.error(m.instant("fedx.create.repo.no.members.warning"))},e.goBackToPreviousLocation=function(){angular.isDefined(u.previous)?(delete n.$$search.previous,n.path("/")):n.path("/repository")},e.createRepoHttp=function(){e.loader=!0,f.createRepository(e.repositoryInfo).then((function(){return t.success(m.instant("created.repo.success.msg",{repoId:e.repositoryInfo.id})),o.init()})).then(()=>e.goBackToPreviousLocation()).catch((function(e){const o=getError(e.data);t.error(o,m.instant("common.error"))})).finally(()=>{e.loader=!1})},e.createRepo=function(){if(!e.repositoryInfo.id)return void t.error(m.instant("empty.repoid.warning"));e.isInvalidRepoName=!i.FILENAME_PATTERN.test(e.repositoryInfo.id),l(e.repositoryInfo.params,e.invalidValues);const o=d(e.invalidValues,m);y?t.error(m.instant("invalid.ruleset.file.error")):e.isInvalidRepoName?t.error(m.instant("wrong.repo.name.error")):"fedx"===e.repositoryType&&0===e.repositoryInfo.params.member.value.length?e.noMembersError():o?t.error(o):e.createRepoHttp()},e.rulesetWarning=function(){const t=e.repositoryInfo.params;return void 0===t||void 0===t.ruleset||void 0===t.disableSameAs?"":0===t.ruleset.value.indexOf("owl")&&"true"===t.disableSameAs.value?m.instant("repoTooltips.rulesetWarnings.needsSameAs"):0===t.ruleset.value.indexOf("rdfs")&&"false"===t.disableSameAs.value?m.instant("repoTooltips.rulesetWarnings.doesntNeedSameAs"):t.ruleset.value===e.rulesetPie?m.instant("repoTooltips.rulesetWarnings.customRuleset"):""},e.validateNumberInput=function(){l(e.repositoryInfo.params,e.invalidValues)},e.getShaclOptionsClass=function(){return s()},e.autofocusId="autofocus"}function g(e,t,o,i,n,r){i&&o.getRepositoryFileContent(i).success((function(t){e.fileContent=t})).error((function(e){const t=getError(e);n.error(t,r.instant("common.error"))})),e.ok=function(){t.close({content:e.fileContent,fileLocation:i})},e.cancel=function(){t.dismiss("cancel")}}function I(e,t,o,c,u,f,m,v){e.rulesets=i.STATIC_RULESETS.slice(),e.repositoryTypes=i.REPOSITORY_TYPES,e.editRepoPage=!0,e.canEditRepoId=!1,e.params=t,e.loader=!0,e.repositoryInfo={},e.repositoryInfo.id=e.params.repositoryId,e.repositoryInfo.location=e.params.location,e.repositoryInfo.restartRequested=!1,e.repositoryType="",e.saveRepoId=e.params.repositoryId,e.pageTitle=v.instant("view.edit.repo.title",{repositoryId:e.params.repositoryId}),e.invalidValues={isInvalidQueryTimeout:!1,isInvalidQueryLimit:!1,isInvalidLeftJoinWorkerThreads:!1,isInvalidBoundJoinBlockSize:!1,isInvalidJoinWorkerThreads:!1,isInvalidUnionWorkerThreads:!1,isInvalidValidationResultsLimitPerConstraint:!1,isInvalidValidationResultsLimitTotal:!1},e.hasActiveLocation=function(){return c.hasActiveLocation()},e.$watch(e.hasActiveLocation,(function(){e.hasActiveLocation&&p(c).then(t=>(e.locations=t,m.getRepository(e.repositoryInfo))).then((function(t){const o=t.data;if(angular.isDefined(o.params.ruleset)){let t=!1;if(angular.forEach(e.rulesets,(function(e){e.id===o.params.ruleset.value&&(t=!0)})),o.params.ruleset&&!t){const t=r(o.params.ruleset.value);e.rulesets.unshift({id:o.params.ruleset.value,name:"Custom: "+t})}}e.repositoryInfo=o,e.setRepositoryType(o.type),a(e.repositoryInfo.params),e.repositoryInfo.saveId=e.saveRepoId,e.loader=!1})).catch((function(i){const r=i.data,a=i.status,s=t.repositoryId;let l;l=404===a&&"system"!==s?Object(n.decodeHTML)(v.instant("edit.repo.error.not.exists",{repositoryId:s})):404===a&&"system"===s?Object(n.decodeHTML)(v.instant("edit.system.repo.warning")):getError(r),o.error(l,v.instant("common.error"),{allowHtml:!0}),404===a?setTimeout((function(){e.loader=!1,u.path("repository")}),1e3):e.loader=!1}))})),e.setRepositoryType=function(t){e.repositoryType=t},e.noMembersError=function(){o.error(v.instant("fedx.create.repo.no.members.warning"))},e.editRepoHttp=function(){e.loader=!0,m.editRepository(e.repositoryInfo.saveId,e.repositoryInfo).success((function(){o.success(v.instant("edit.repo.success.msg",{saveId:e.repositoryInfo.saveId})),c.init().finally(()=>e.goBackToPreviousLocation()),e.repositoryInfo.saveId===e.repositoryInfo.id&&e.repositoryInfo.restartRequested&&c.restartRepository(e.repositoryInfo)})).error((function(t){const i=getError(t);o.error(i,v.instant("common.error")),e.loader=!1}))},e.editRepository=function(){e.isInvalidRepoName=!i.FILENAME_PATTERN.test(e.repositoryInfo.id),l(e.repositoryInfo.params,e.invalidValues);const t=d(e.invalidValues,v);let r=Object(n.decodeHTML)(v.instant("edit.repo.save.changes.msg",{repoId:e.repositoryInfo.id}));e.repositoryInfo.saveId!==e.repositoryInfo.id?r+=Object(n.decodeHTML)(v.instant("edit.repo.rename.changes.msg")):e.repositoryInfo.restartRequested?r+=Object(n.decodeHTML)(v.instant("edit.repo.restart.requested.msg")):r+=Object(n.decodeHTML)(v.instant("edit.repo.restart.needed.msg")),e.isInvalidRepoName?o.error(v.instant("wrong.repo.name.error")):"fedx"===e.repositoryType&&0===e.repositoryInfo.params.member.value.length?e.noMembersError():t?o.error(t):f.openSimpleModal({title:v.instant("common.confirm.save"),message:r,warning:!0}).result.then((function(){e.editRepoHttp()}))},e.editRepositoryId=function(){let t=Object(n.decodeHTML)(v.instant("edit.repo.id.warning.msg"));e.isEnterprise()&&(t+=Object(n.decodeHTML)(v.instant("edit.repo.id.cluster.warning.msg"))),f.openSimpleModal({title:v.instant("confirm.enable.edit"),message:t,warning:!0}).result.then((function(){e.canEditRepoId=!0}))},e.goBackToPreviousLocation=function(){angular.isDefined(t.previous)?(delete u.$$search.previous,u.path("/")):u.path("/repository")},e.validateNumberInput=function(){l(e.repositoryInfo.params,e.invalidValues)},e.getShaclOptionsClass=function(){return s()}}angular.module("graphdb.framework.repositories.controllers",["ngCookies","ui.bootstrap","graphdb.framework.core.services.repositories","graphdb.framework.utils.localstorageadapter","toastr","ngFileUpload"]).controller("LocationsAndRepositoriesCtrl",f).controller("AddLocationCtrl",v).controller("EditLocationCtrl",y).controller("ChooseRepositoryCtrl",R).controller("AddRepositoryCtrl",T).controller("EditRepositoryCtrl",I).controller("EditRepositoryFileCtrl",g).controller("UploadRepositoryConfigCtrl",m),f.$inject=["$scope","$rootScope","$uibModal","toastr","$repositories","ModalService","$jwtAuth","LocationsRestService","LocalStorageAdapter","$interval","$translate","$q","GuidesService"],m.$inject=["$scope","$uibModalInstance","Upload","toastr","$translate"],v.$inject=["$scope","$uibModalInstance","toastr","productInfo","$translate"],y.$inject=["$scope","$uibModalInstance","location","productInfo"],R.$inject=["$scope","$location"],T.$inject=["$scope","toastr","$repositories","$location","$timeout","Upload","$routeParams","RepositoriesRestService","$translate"],g.$inject=["$scope","$uibModalInstance","RepositoriesRestService","file","toastr","$translate"],I.$inject=["$scope","$routeParams","toastr","$repositories","$location","ModalService","RepositoriesRestService","$translate"]}}]);
|
|
2
|
-
//# sourceMappingURL=5.b0829613ef25834bf1ab.bundle.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///./src/js/angular/repositories/repository.constants.js","webpack:///./src/js/angular/repositories/controllers.js"],"names":["STATIC_RULESETS","id","name","REPOSITORY_TYPES","graphdbRepo","free","eeWorker","eeMaster","ontop","se","fedx","FILENAME_PATTERN","RegExp","NUMBER_PATTERN","getFileName","path","lastIdx","lastIndexOf","substring","parseNumberParamsIfNeeded","params","queryTimeout","value","parseInt","queryLimitResults","validationResultsLimitTotal","validationResultsLimitPerConstraint","leftJoinWorkerThreads","boundJoinBlockSize","joinWorkerThreads","unionWorkerThreads","getShaclOptionsClass","optionsModule","document","getElementById","isAriaExpanded","getAttribute","validateNumberFields","invalidValues","isInvalidQueryTimeout","test","isInvalidValidationResultsLimitTotal","isInvalidValidationResultsLimitPerConstraint","isInvalidQueryLimit","isInvalidLeftJoinWorkerThreads","isInvalidBoundJoinBlockSize","isInvalidJoinWorkerThreads","isInvalidUnionWorkerThreads","getInvalidParameterErrorMessage","param","$translate","instant","checkInvalidValues","invalidValuesKeys","Object","keys","invalidValuesVal","values","i","length","getDocBase","productInfo","productShortVersion","getFilteredLocations","$repositories","getLocations","then","locations","filter","location","errorMsg","degradedReason","LocationsAndRepositoriesCtrl","$scope","$rootScope","$uibModal","toastr","ModalService","$jwtAuth","LocationsRestService","LocalStorageAdapter","$interval","$q","GuidesService","loader","isLocationInactive","active","hasActiveLocation","getLocationsAbortRequestPromise","defer","finally","getActiveLocation","getLocationError","getDegradedReason","getRepositories","isRepoActive","repo","deleteLocation","uri","openSimpleModal","title","message","warning","result","addLocationHttp","dataAddLocation","addLocation","success","init","error","data","msg","getError","open","templateUrl","windowClass","controller","editLocationHttp","dataEditLocation","editLocation","resolve","setRepository","deleteRepository","repository","repositoryId","cashedDependenciesGraphPrefix","cashedClassHierarchyGraphPrefix","angular","forEach","key","startsWith","remove","removeCachedGraphsOnDelete","restartRepository","toggleDefaultRepository","getDefaultRepository","setDefaultRepository","getRepositoryDownloadLink","url","type","token","getAuthToken","encodeURIComponent","copyToClipboard","openCopyToClipboardModal","fromFile","openActiveLocationSettings","timer","isActive","guidePaused","initQuick","$on","cancel","getRepositoriesFromLocation","locationId","UploadRepositoryConfigCtrl","$uibModalInstance","Upload","upload","files","uploadFile","ok","uploadFileLoader","method","config","close","dismiss","AddLocationCtrl","newLocation","docBase","isValidLocation","indexOf","EditLocationCtrl","editedLocation","copy","ChooseRepositoryCtrl","$location","repositoryTypes","chooseRepositoryType","repoType","AddRepositoryCtrl","$timeout","$routeParams","RepositoriesRestService","repositoryType","rulesets","slice","enable","pageTitle","repositoryInfo","changedLocation","$broadcast","getConfig","getRepositoryConfiguration","resp","member","element","find","focus","catch","isEnterprise","isValidEERepository","isFreeEdition","isValidSERepository","isValidFRRepository","isValidOntopRepository","isValidFedXRepository","setPageTitle","activeLocation","isInvalidPieFile","uploadRuleset","ruleset","progress","evt","fileName","newValue","fileLocation","rulesetPie","unshift","rulesetPieFile","errorMessage","noMembersError","goBackToPreviousLocation","isDefined","previous","$$search","createRepoHttp","createRepository","repoId","createRepo","isInvalidRepoName","rulesetWarning","pp","undefined","disableSameAs","validateNumberInput","autofocusId","EditRepositoryFileCtrl","file","getRepositoryFileContent","fileContent","content","EditRepositoryCtrl","editRepoPage","canEditRepoId","restartRequested","saveRepoId","$watch","getRepository","response","ifRulesetExists","item","setRepositoryType","saveId","status","toastrMsg","allowHtml","setTimeout","editRepoHttp","editRepository","modalMsg","editRepositoryId","module","$inject"],"mappings":"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","file":"5.b0829613ef25834bf1ab.bundle.js","sourcesContent":["export const STATIC_RULESETS = [\n {id: 'empty', name: 'No inference'},\n {id: 'rdfs-optimized', name: 'RDFS (Optimized)'},\n {id: 'rdfs', name: 'RDFS'},\n {id: 'rdfsplus-optimized', name: 'RDFS-Plus (Optimized)'},\n {id: 'owl-horst-optimized', name: 'OWL-Horst (Optimized)'},\n {id: 'owl-horst', name: 'OWL-Horst'},\n {id: 'owl2-ql-optimized', name: 'OWL2-QL (Optimized)'},\n {id: 'owl2-ql', name: 'OWL2-QL'},\n {id: 'owl-max-optimized', name: 'OWL-Max (Optimized)'},\n {id: 'owl-max', name: 'OWL-Max'},\n {id: 'owl2-rl-optimized', name: 'OWL2-RL (Optimized)'},\n {id: 'owl2-rl', name: 'OWL2-RL'},\n\n];\n\nexport const REPOSITORY_TYPES = {graphdbRepo: 'graphdb', free: 'free', eeWorker: 'worker', eeMaster: 'master', ontop: 'ontop', se: 'se', fedx: 'fedx'};\nexport const FILENAME_PATTERN = new RegExp('^[a-zA-Z0-9-_]+$');\nexport const NUMBER_PATTERN = new RegExp('^[0-9]+$');\n","import {\n FILENAME_PATTERN,\n NUMBER_PATTERN,\n REPOSITORY_TYPES,\n STATIC_RULESETS\n} from \"./repository.constants\";\nimport {decodeHTML} from \"../../../app\";\n\nexport const getFileName = function (path) {\n let lastIdx = path.lastIndexOf('/');\n if (lastIdx === -1) {\n lastIdx = path.lastIndexOf('\\\\');\n }\n let name = path;\n if (lastIdx !== -1) {\n name = name.substring(lastIdx + 1);\n }\n return name;\n};\n\nconst parseNumberParamsIfNeeded = function (params) {\n if (params) {\n if (params.queryTimeout) {\n params.queryTimeout.value = parseInt(params.queryTimeout.value);\n }\n if (params.queryLimitResults && params.validationResultsLimitTotal && params.validationResultsLimitPerConstraint) {\n // Parse parameters properly to number\n params.queryLimitResults.value = parseInt(params.queryLimitResults.value);\n params.validationResultsLimitTotal.value = parseInt(params.validationResultsLimitTotal.value);\n params.validationResultsLimitPerConstraint.value = parseInt(params.validationResultsLimitPerConstraint.value);\n } else if (params.leftJoinWorkerThreads && params.boundJoinBlockSize && params.joinWorkerThreads && params.unionWorkerThreads) {\n params.leftJoinWorkerThreads.value = parseInt(params.leftJoinWorkerThreads.value);\n params.boundJoinBlockSize.value = parseInt(params.boundJoinBlockSize.value);\n params.joinWorkerThreads.value = parseInt(params.joinWorkerThreads.value);\n params.unionWorkerThreads.value = parseInt(params.unionWorkerThreads.value);\n }\n }\n};\n\nconst parseMemberParamIfNeeded = function (param) {\n if (param && param.member) {\n param.member.value = [];\n }\n};\n\nconst getShaclOptionsClass = function () {\n const optionsModule = document.getElementById('shaclOptions');\n\n if (optionsModule) {\n const isAriaExpanded = optionsModule.getAttribute('aria-expanded');\n if (isAriaExpanded && isAriaExpanded === 'true') {\n return 'fa fa-angle-down';\n }\n }\n return 'fa fa-angle-right';\n};\n\nconst validateNumberFields = function (params, invalidValues) {\n if (params.queryTimeout) {\n invalidValues.isInvalidQueryTimeout = !NUMBER_PATTERN.test(params.queryTimeout.value);\n }\n if (params.validationResultsLimitTotal && params.validationResultsLimitPerConstraint && params.queryLimitResults) {\n invalidValues.isInvalidValidationResultsLimitTotal = !NUMBER_PATTERN.test(params.validationResultsLimitTotal.value);\n invalidValues.isInvalidValidationResultsLimitPerConstraint = !NUMBER_PATTERN.test(params.validationResultsLimitPerConstraint.value);\n invalidValues.isInvalidQueryLimit = !NUMBER_PATTERN.test(params.queryLimitResults.value);\n } else if (params.leftJoinWorkerThreads && params.boundJoinBlockSize && params.joinWorkerThreads\n && params.unionWorkerThreads) {\n invalidValues.isInvalidLeftJoinWorkerThreads = !NUMBER_PATTERN.test(params.leftJoinWorkerThreads.value);\n invalidValues.isInvalidBoundJoinBlockSize = !NUMBER_PATTERN.test(params.boundJoinBlockSize.value);\n invalidValues.isInvalidJoinWorkerThreads = !NUMBER_PATTERN.test(params.joinWorkerThreads.value);\n invalidValues.isInvalidUnionWorkerThreads = !NUMBER_PATTERN.test(params.unionWorkerThreads.value);\n }\n};\n\nconst getInvalidParameterErrorMessage = function (param, $translate) {\n if (param === \"isInvalidQueryLimit\") {\n return $translate.instant('invalid.query.limit');\n } else if (param === \"isInvalidQueryTimeout\") {\n return $translate.instant('invalid.query.timeout');\n } else if (param === \"isInvalidValidationResultsLimitTotal\") {\n return $translate.instant('invalid.validation.results.limit.total');\n } else if (param === \"isInvalidValidationResultsLimitPerConstraint\") {\n return $translate.instant('invalid.validation.results.limit.per.constraint');\n } else if (param === \"isInvalidJoinWorkerThreads\") {\n return $translate.instant('invalid.join.worker.threads');\n } else if (param === \"isInvalidLeftJoinWorkerThreads\") {\n return $translate.instant('invalid.left.join.worker.threads');\n } else if (param === \"isInvalidUnionWorkerThreads\") {\n return $translate.instant('invalid.union.worker.threads');\n } else if (param === \"isInvalidBoundJoinBlockSize\") {\n return $translate.instant('invalid.bound.join.block.size');\n }\n};\n\nconst checkInvalidValues = function (invalidValues, $translate) {\n const invalidValuesKeys = Object.keys(invalidValues);\n const invalidValuesVal = Object.values(invalidValues);\n\n for (let i = 0; i < invalidValuesKeys.length; i++) {\n if (invalidValuesVal[i]) {\n return getInvalidParameterErrorMessage(invalidValuesKeys[i], $translate);\n }\n }\n return '';\n};\n\nconst getDocBase = function (productInfo) {\n return `https://graphdb.ontotext.com/documentation/${productInfo.productShortVersion}`;\n};\nconst filterLocations = function (result) {\n return result.filter((location) => !location.errorMsg && !location.degradedReason);\n};\n\n/**\n * Gets the remote locations that are error free and without degraded reason\n * @param {*} $repositories the repositories service\n * @return {[] | Promise} returns the locations as array or a promise of the array\n */\nconst getFilteredLocations = function ($repositories) {\n // Don't allow the user to create repository on location with error or degradeded reason\n return $repositories.getLocations().then((locations) => filterLocations(locations));\n};\n\nconst modules = [\n 'ngCookies',\n 'ui.bootstrap',\n 'graphdb.framework.core.services.repositories',\n 'graphdb.framework.utils.localstorageadapter',\n 'toastr',\n 'ngFileUpload'\n];\n\nangular.module('graphdb.framework.repositories.controllers', modules)\n .controller('LocationsAndRepositoriesCtrl', LocationsAndRepositoriesCtrl)\n .controller('AddLocationCtrl', AddLocationCtrl)\n .controller('EditLocationCtrl', EditLocationCtrl)\n .controller('ChooseRepositoryCtrl', ChooseRepositoryCtrl)\n .controller('AddRepositoryCtrl', AddRepositoryCtrl)\n .controller('EditRepositoryCtrl', EditRepositoryCtrl)\n .controller('EditRepositoryFileCtrl', EditRepositoryFileCtrl)\n .controller('UploadRepositoryConfigCtrl', UploadRepositoryConfigCtrl);\n\nLocationsAndRepositoriesCtrl.$inject = ['$scope', '$rootScope', '$uibModal', 'toastr', '$repositories', 'ModalService', '$jwtAuth', 'LocationsRestService',\n 'LocalStorageAdapter', '$interval', '$translate', '$q', 'GuidesService'];\n\nfunction LocationsAndRepositoriesCtrl($scope, $rootScope, $uibModal, toastr, $repositories, ModalService, $jwtAuth, LocationsRestService,\n LocalStorageAdapter, $interval, $translate, $q, GuidesService) {\n $scope.loader = true;\n\n $scope.isLocationInactive = function (location) {\n return !location.active || !$scope.hasActiveLocation();\n };\n\n const getLocationsAbortRequestPromise = $q.defer();\n //Get locations\n function getLocations() {\n return $repositories.getLocations(getLocationsAbortRequestPromise)\n .then((locations) => {\n $scope.locations = locations;\n })\n .finally(() => $scope.loader = false);\n }\n\n $scope.hasActiveLocation = function () {\n return $repositories.hasActiveLocation();\n };\n\n $scope.getActiveLocation = function () {\n return $repositories.getActiveLocation();\n };\n\n $scope.getLocationError = function () {\n return $repositories.getLocationError();\n };\n\n $scope.getDegradedReason = function () {\n return $repositories.getDegradedReason();\n };\n\n $scope.getRepositories = function () {\n return $repositories.getRepositories();\n };\n\n $scope.isRepoActive = function (repo) {\n return $repositories.isRepoActive(repo);\n };\n\n //Delete location\n $scope.deleteLocation = function (uri) {\n ModalService.openSimpleModal({\n title: $translate.instant('location.confirm.detach'),\n message: $translate.instant('location.confirm.detach.warning', {uri: uri}),\n warning: true\n }).result\n .then(function () {\n $scope.loader = true;\n $repositories.deleteLocation(uri).finally(() => getLocations());\n });\n };\n\n //Add new location\n\n $scope.addLocationHttp = function (dataAddLocation) {\n $scope.loader = true;\n LocationsRestService.addLocation(dataAddLocation)\n .success(function () {\n //Reload locations and repositories\n $repositories.init();\n })\n .error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('common.error'));\n })\n .finally(() => getLocations());\n };\n\n $scope.addLocation = function () {\n $uibModal.open({\n templateUrl: 'js/angular/templates/modal/add-location.html',\n windowClass: 'addLocationDialog',\n controller: 'AddLocationCtrl'\n }).result\n .then(function (dataAddLocation) {\n $scope.addLocationHttp(dataAddLocation);\n });\n };\n\n //Edit location\n $scope.editLocationHttp = function (dataEditLocation) {\n $scope.loader = true;\n LocationsRestService.editLocation(dataEditLocation)\n .success(function () {\n //Reload locations and repositories\n $repositories.init();\n })\n .error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('common.error'));\n })\n .finally(() => getLocations());\n };\n\n $scope.editLocation = function (location) {\n const modalInstance = $uibModal.open({\n templateUrl: 'js/angular/templates/modal/edit-location.html',\n controller: 'EditLocationCtrl',\n resolve: {\n location: function () {\n return location;\n }\n }\n });\n\n modalInstance.result.then(function (dataEditLocation) {\n $scope.editLocationHttp(dataEditLocation);\n }, function () {\n });\n };\n\n //Change repository\n $scope.setRepository = function (repo) {\n $repositories.setRepository(repo);\n };\n\n //Delete repository\n $scope.deleteRepository = function (repository) {\n ModalService.openSimpleModal({\n title: $translate.instant('common.confirm.delete'),\n message: decodeHTML($translate.instant('delete.repo.warning.msg', {repositoryId: repository.id})),\n warning: true\n }).result\n .then(function () {\n $scope.loader = true;\n $repositories.deleteRepository(repository)\n .finally(() => {\n getLocations();\n $scope.loader = false;\n });\n removeCachedGraphsOnDelete(repository);\n });\n };\n\n $scope.restartRepository = function (repository) {\n ModalService.openSimpleModal({\n title: $translate.instant('confirm.restart.repo'),\n message: decodeHTML($translate.instant('confirm.restart.repo.warning.msg', {repositoryId: repository.id})),\n warning: true\n }).result\n .then(function () {\n $scope.loader = true;\n $repositories.restartRepository(repository).finally(() => getLocations());\n });\n };\n\n $scope.toggleDefaultRepository = function (repositoryId) {\n if ($scope.getDefaultRepository() === repositoryId) {\n // unset\n $repositories.setDefaultRepository(null);\n } else {\n // set\n $repositories.setDefaultRepository(repositoryId);\n }\n };\n\n $scope.getDefaultRepository = function () {\n return $repositories.getDefaultRepository();\n };\n\n /* Unused, data urls don't behave well in all browsers, avoid them when possible\n $scope.getRepoTurtleConfig = function (repository) {\n function downloadRepoConfig(repoTurtleConfig, repository) {\n $('.download-turtle-config')\n .mouseup(function () {\n $(this)\n .attr('href', repoTurtleConfig)\n .attr('download', repository.id + '-config.ttl')\n });\n }\n\n $repositories.getRepositoryTurtleConfig(repository)\n .success(function (response) {\n var repoTurtleConfigDownload = 'data:application/octet-stream;charset=utf-8;base64,'\n + btoa(unescape(encodeURIComponent(response)));\n downloadRepoConfig(repoTurtleConfigDownload, repository);\n })\n .error(function () {\n toastr.error('Error getting repository configuration for '' + repository.id + ''');\n });\n };\n */\n\n $scope.getRepositoryDownloadLink = function (repository) {\n let url = `rest/repositories/${repository.id}${(repository.type === REPOSITORY_TYPES.ontop ? '/download-zip'\n : '/download-ttl')}?location=${repository.location}`;\n const token = $jwtAuth.getAuthToken();\n if (token) {\n url = `${url}&authToken=${encodeURIComponent(token)}`;\n }\n return url;\n };\n\n ///Copy to clipboard popover options\n $scope.copyToClipboard = function (uri) {\n ModalService.openCopyToClipboardModal(uri);\n };\n\n $scope.fromFile = function () {\n const modalInstance = $uibModal.open({\n templateUrl: 'js/angular/templates/modal/upload-repository-config.html',\n controller: 'UploadRepositoryConfigCtrl'\n });\n modalInstance.result.then(function () {\n $repositories.init();\n });\n };\n\n //Delete repository\n $scope.openActiveLocationSettings = function () {\n $uibModal.open({\n templateUrl: 'js/angular/settings/modal/location-settings.html',\n controller: 'ActiveLocationSettingsCtrl'\n });\n };\n\n getLocations();\n const timer = $interval(function () {\n if (GuidesService.isActive() && !$rootScope.guidePaused) {\n // Don't refresh list while a guide is active\n return;\n }\n\n // Update repositories state\n $repositories.initQuick();\n getLocations();\n }, 5000);\n\n $scope.$on('$destroy', function () {\n $interval.cancel(timer);\n // If there is a getLocations request in progress, abort it so the service can properly clear flags\n if (getLocationsAbortRequestPromise) {\n getLocationsAbortRequestPromise.resolve();\n }\n });\n\n function removeCachedGraphsOnDelete(repo) {\n const cashedDependenciesGraphPrefix = `dependencies-selectedGraph-${repo.id}`;\n const cashedClassHierarchyGraphPrefix = `classHierarchy-selectedGraph-${repo.id}`;\n angular.forEach(LocalStorageAdapter.keys(), function (key) {\n // remove everything but the hide prefixes setting, it should always persist\n if (key.startsWith(cashedClassHierarchyGraphPrefix) || key.startsWith(cashedDependenciesGraphPrefix)) {\n LocalStorageAdapter.remove(key);\n }\n });\n }\n\n $scope.getRepositoriesFromLocation = function (locationId) {\n return $repositories.getRepositoriesFromLocation(locationId);\n };\n}\n\nUploadRepositoryConfigCtrl.$inject = ['$scope', '$uibModalInstance', 'Upload', 'toastr', '$translate'];\n\nfunction UploadRepositoryConfigCtrl($scope, $uibModalInstance, Upload, toastr, $translate) {\n $scope.upload = function (files) {\n if (files && files.length) {\n $scope.uploadFile = files[0];\n }\n };\n $scope.ok = function () {\n if ($scope.uploadFile) {\n $scope.uploadFileLoader = true;\n Upload.upload({\n url: 'rest/repositories',\n method: 'POST',\n data: {config: $scope.uploadFile}\n })\n .success(function () {\n $scope.uploadFileLoader = false;\n $uibModalInstance.close();\n })\n .error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('common.error'));\n $scope.uploadFileLoader = false;\n });\n }\n };\n $scope.cancel = function () {\n $uibModalInstance.dismiss('cancel');\n };\n}\n\nAddLocationCtrl.$inject = ['$scope', '$uibModalInstance', 'toastr', 'productInfo', '$translate'];\n\nfunction AddLocationCtrl($scope, $uibModalInstance, toastr, productInfo, $translate) {\n\n $scope.newLocation = {\n 'uri': '',\n 'authType': 'none',\n 'username': '',\n 'password': '',\n 'active': false\n };\n $scope.docBase = getDocBase(productInfo);\n\n $scope.isValidLocation = function () {\n return ($scope.newLocation.uri.length < 6 ||\n $scope.newLocation.uri.indexOf('http:') === 0 || $scope.newLocation.uri.indexOf('https:') === 0)\n && $scope.newLocation.uri.indexOf('/repositories') <= -1;\n };\n\n $scope.ok = function () {\n if (!$scope.newLocation) {\n toastr.error($translate.instant('location.cannot.be.empty.error'));\n return;\n }\n $uibModalInstance.close($scope.newLocation);\n };\n\n $scope.cancel = function () {\n $uibModalInstance.dismiss('cancel');\n };\n}\n\nEditLocationCtrl.$inject = ['$scope', '$uibModalInstance', 'location', 'productInfo'];\n\nfunction EditLocationCtrl($scope, $uibModalInstance, location, productInfo) {\n\n $scope.editedLocation = angular.copy(location);\n $scope.docBase = getDocBase(productInfo);\n\n $scope.ok = function () {\n $uibModalInstance.close($scope.editedLocation);\n };\n\n $scope.cancel = function () {\n $uibModalInstance.dismiss('cancel');\n };\n}\n\nChooseRepositoryCtrl.$inject = ['$scope', '$location'];\n\nfunction ChooseRepositoryCtrl($scope, $location) {\n $scope.repositoryTypes = REPOSITORY_TYPES;\n $scope.chooseRepositoryType = function (repoType) {\n $location.path(`${$location.path()}/${repoType}`);\n };\n}\n\nAddRepositoryCtrl.$inject = ['$scope', 'toastr', '$repositories', '$location', '$timeout', 'Upload', '$routeParams',\n 'RepositoriesRestService', '$translate'];\n\nfunction AddRepositoryCtrl($scope, toastr, $repositories, $location, $timeout, Upload, $routeParams, RepositoriesRestService, $translate) {\n $scope.rulesets = STATIC_RULESETS.slice();\n $scope.repositoryTypes = REPOSITORY_TYPES;\n $scope.params = $routeParams;\n $scope.repositoryType = $routeParams.repositoryType;\n $scope.enable = true;\n\n $scope.loader = true;\n $scope.pageTitle = $translate.instant('view.create.repo.title');\n $scope.repositoryInfo = {\n id: '',\n params: {},\n title: '',\n type: '',\n location: ''\n };\n\n $scope.invalidValues = {\n isInvalidQueryTimeout: false,\n isInvalidQueryLimit: false,\n isInvalidLeftJoinWorkerThreads: false,\n isInvalidBoundJoinBlockSize: false,\n isInvalidJoinWorkerThreads: false,\n isInvalidUnionWorkerThreads: false,\n isInvalidValidationResultsLimitPerConstraint: false,\n isInvalidValidationResultsLimitTotal: false\n };\n\n getFilteredLocations($repositories)\n .then((locations) => {\n $scope.locations = locations;\n });\n\n $scope.changedLocation = function () {\n $scope.$broadcast('changedLocation');\n };\n\n function isValidEERepository(repositoryType) {\n return $scope.isEnterprise() && (repositoryType === REPOSITORY_TYPES.graphdbRepo);\n }\n\n function isValidSERepository(repositoryType) {\n return !$scope.isFreeEdition() && !$scope.isEnterprise() && repositoryType === REPOSITORY_TYPES.graphdbRepo;\n }\n\n function isValidFRRepository(repositoryType) {\n return $scope.isFreeEdition() && repositoryType === REPOSITORY_TYPES.graphdbRepo;\n }\n\n function isValidOntopRepository(repositoryType) {\n return repositoryType === REPOSITORY_TYPES.ontop;\n }\n\n function isValidFedXRepository(repositoryType) {\n return repositoryType === REPOSITORY_TYPES.fedx;\n }\n\n function isRepositoryTypeValid(repositoryType) {\n return isValidEERepository(repositoryType) || isValidSERepository(repositoryType)\n || isValidFRRepository(repositoryType) || isValidOntopRepository(repositoryType)\n || isValidFedXRepository(repositoryType);\n }\n\n function setPageTitle(repositoryType) {\n switch (repositoryType) {\n case REPOSITORY_TYPES.graphdbRepo:\n $scope.pageTitle = $translate.instant('view.create.repo.title', {repoType: 'GraphDB'});\n break;\n case REPOSITORY_TYPES.ontop:\n $scope.pageTitle = $translate.instant('view.create.repo.title', {repoType: 'Ontop Virtual SPARQL'});\n break;\n case REPOSITORY_TYPES.fedx:\n $scope.pageTitle = $translate.instant('view.create.repo.title', {repoType: 'FedX Virtual SPARQL'});\n break;\n }\n }\n\n $scope.getConfig = function (repoType) {\n RepositoriesRestService.getRepositoryConfiguration(repoType).then(function (resp) {\n const data = resp.data;\n $scope.repositoryInfo.params = data.params;\n $scope.repositoryInfo.type = data.type;\n parseNumberParamsIfNeeded($scope.repositoryInfo.params);\n parseMemberParamIfNeeded($scope.repositoryInfo.params);\n $scope.loader = false;\n // The clean way is the \"autofocus\" attribute and we use it but it doesn't seem to\n // work in all browsers because of the way dynamic content is handled so give it another\n // try here.\n $timeout(function () {\n // Focus the ID field\n angular.element(document).find('#id').focus();\n }, 50);\n }).catch(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('common.error'));\n $scope.loader = false;\n });\n };\n\n if ($scope.repositoryType && isRepositoryTypeValid($scope.repositoryType)) {\n $scope.repositoryInfo.type = $scope.repositoryType;\n $scope.getConfig($scope.repositoryType);\n setPageTitle($scope.repositoryType);\n } else {\n $location.path('/repository/create');\n }\n\n $scope.hasActiveLocation = function () {\n return $repositories.hasActiveLocation();\n };\n\n $scope.activeLocation = function () {\n return $repositories.getActiveLocation();\n };\n\n let isInvalidPieFile = false;\n $scope.uploadRuleset = function (files) {\n if (files && files.length) {\n $scope.uploadFile = files[0];\n $scope.uploadFileLoader = true;\n Upload.upload({\n url: 'rest/repositories/ruleset/upload',\n data: {ruleset: $scope.uploadFile, location: $scope.repositoryInfo.location}\n }).progress(function (evt) {\n /*\t\t\t\t\t\tvar progressPercentage = parseInt(100.0 * evt.loaded / evt.total);\n console.log('progress: ' + progressPercentage + '% ' + evt.config.file.name);*/\n }).success(function (data) {\n if (!data.success) {\n toastr.error(data.errorMessage);\n isInvalidPieFile = true;\n } else {\n const fileName = $scope.uploadFile.name;\n const newValue = {id: data.fileLocation, name: 'Custom: ' + fileName};\n if ($scope.rulesetPie) {\n // file was previously uploaded\n $scope.rulesets[0] = newValue;\n } else {\n // file uploaded for the first time\n $scope.rulesets.unshift(newValue);\n }\n $scope.rulesetPie = data.fileLocation;\n $scope.rulesetPieFile = fileName;\n $scope.repositoryInfo.params.ruleset.value = $scope.rulesetPie;\n }\n $scope.uploadFileLoader = false;\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('common.error'));\n $scope.uploadFile = '';\n $scope.uploadFileLoader = false;\n });\n }\n };\n\n $scope.noMembersError = function () {\n toastr.error($translate.instant('fedx.create.repo.no.members.warning'));\n };\n\n $scope.goBackToPreviousLocation = function () {\n if (angular.isDefined($routeParams.previous)) {\n delete $location.$$search.previous;\n $location.path('/');\n } else {\n $location.path('/repository');\n }\n };\n\n $scope.createRepoHttp = function () {\n $scope.loader = true;\n RepositoriesRestService.createRepository($scope.repositoryInfo)\n .then(function () {\n toastr.success($translate.instant('created.repo.success.msg', {repoId: $scope.repositoryInfo.id}));\n return $repositories.init();\n })\n .then(() => $scope.goBackToPreviousLocation())\n .catch(function (error) {\n const msg = getError(error.data);\n toastr.error(msg, $translate.instant('common.error'));\n })\n .finally(() => {\n $scope.loader = false;\n });\n };\n\n $scope.createRepo = function () {\n if (!$scope.repositoryInfo.id) {\n toastr.error($translate.instant('empty.repoid.warning'));\n return;\n }\n\n $scope.isInvalidRepoName = !FILENAME_PATTERN.test($scope.repositoryInfo.id);\n validateNumberFields($scope.repositoryInfo.params, $scope.invalidValues);\n const invalidValues = checkInvalidValues($scope.invalidValues, $translate);\n\n if (isInvalidPieFile) {\n toastr.error($translate.instant('invalid.ruleset.file.error'));\n } else if ($scope.isInvalidRepoName) {\n toastr.error($translate.instant('wrong.repo.name.error'));\n } else if ($scope.repositoryType === \"fedx\" && $scope.repositoryInfo.params.member.value.length === 0) {\n $scope.noMembersError();\n } else if (invalidValues) {\n toastr.error(invalidValues);\n } else {\n $scope.createRepoHttp();\n }\n };\n\n $scope.rulesetWarning = function () {\n const pp = $scope.repositoryInfo.params;\n if (pp === undefined || pp.ruleset === undefined || pp.disableSameAs === undefined) {\n return '';\n }\n\n if (pp.ruleset.value.indexOf('owl') === 0 && pp.disableSameAs.value === 'true') {\n return $translate.instant('repoTooltips.rulesetWarnings.needsSameAs');\n } else if (pp.ruleset.value.indexOf('rdfs') === 0 && pp.disableSameAs.value === 'false') {\n return $translate.instant('repoTooltips.rulesetWarnings.doesntNeedSameAs');\n } else if (pp.ruleset.value === $scope.rulesetPie) {\n return $translate.instant('repoTooltips.rulesetWarnings.customRuleset');\n } else {\n return '';\n }\n };\n\n $scope.validateNumberInput = function () {\n validateNumberFields($scope.repositoryInfo.params, $scope.invalidValues);\n };\n\n $scope.getShaclOptionsClass = function () {\n return getShaclOptionsClass();\n };\n //TODO - check if repositoryID exist\n\n // Request auto-focus of the ID input when creating a repo (but not when editing)\n $scope.autofocusId = 'autofocus';\n}\n\nEditRepositoryFileCtrl.$inject = ['$scope', '$uibModalInstance', 'RepositoriesRestService', 'file', 'toastr', '$translate'];\n\nfunction EditRepositoryFileCtrl($scope, $uibModalInstance, RepositoriesRestService, file, toastr, $translate) {\n\n if (file) {\n RepositoriesRestService.getRepositoryFileContent(file).success(function (data) {\n $scope.fileContent = data;\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('common.error'));\n });\n }\n\n $scope.ok = function () {\n $uibModalInstance.close({\n content: $scope.fileContent,\n fileLocation: file\n });\n };\n\n $scope.cancel = function () {\n $uibModalInstance.dismiss('cancel');\n };\n}\n\nEditRepositoryCtrl.$inject = ['$scope', '$routeParams', 'toastr', '$repositories', '$location', 'ModalService', 'RepositoriesRestService',\n '$translate'];\n\nfunction EditRepositoryCtrl($scope, $routeParams, toastr, $repositories, $location, ModalService, RepositoriesRestService, $translate) {\n\n $scope.rulesets = STATIC_RULESETS.slice();\n $scope.repositoryTypes = REPOSITORY_TYPES;\n\n $scope.editRepoPage = true;\n $scope.canEditRepoId = false;\n $scope.params = $routeParams;\n $scope.loader = true;\n $scope.repositoryInfo = {};\n $scope.repositoryInfo.id = $scope.params.repositoryId;\n $scope.repositoryInfo.location = $scope.params.location;\n $scope.repositoryInfo.restartRequested = false;\n $scope.repositoryType = '';\n $scope.saveRepoId = $scope.params.repositoryId;\n $scope.pageTitle = $translate.instant('view.edit.repo.title', {repositoryId: $scope.params.repositoryId});\n $scope.invalidValues = {\n isInvalidQueryTimeout: false,\n isInvalidQueryLimit: false,\n isInvalidLeftJoinWorkerThreads: false,\n isInvalidBoundJoinBlockSize: false,\n isInvalidJoinWorkerThreads: false,\n isInvalidUnionWorkerThreads: false,\n isInvalidValidationResultsLimitPerConstraint: false,\n isInvalidValidationResultsLimitTotal: false\n };\n $scope.hasActiveLocation = function () {\n return $repositories.hasActiveLocation();\n };\n\n $scope.$watch($scope.hasActiveLocation, function () {\n if ($scope.hasActiveLocation) {\n // Should get locations before getting repository info\n getFilteredLocations($repositories).then((locations) => {\n $scope.locations = locations;\n return RepositoriesRestService.getRepository($scope.repositoryInfo);\n })\n .then(function (response) {\n const data = response.data;\n if (angular.isDefined(data.params.ruleset)) {\n let ifRulesetExists = false;\n angular.forEach($scope.rulesets, function (item) {\n if (item.id === data.params.ruleset.value) {\n ifRulesetExists = true;\n }\n });\n if (data.params.ruleset && !ifRulesetExists) {\n const name = getFileName(data.params.ruleset.value);\n $scope.rulesets.unshift({id: data.params.ruleset.value, name: 'Custom: ' + name});\n }\n }\n $scope.repositoryInfo = data;\n $scope.setRepositoryType(data.type);\n parseNumberParamsIfNeeded($scope.repositoryInfo.params);\n $scope.repositoryInfo.saveId = $scope.saveRepoId;\n $scope.loader = false;\n })\n .catch(function (response) {\n const data = response.data;\n const status = response.status;\n const repositoryId = $routeParams.repositoryId;\n let toastrMsg;\n\n if (status === 404 && repositoryId !== 'system') {\n toastrMsg = decodeHTML($translate.instant('edit.repo.error.not.exists', {repositoryId}));\n } else if (status === 404 && repositoryId === 'system') {\n toastrMsg = decodeHTML($translate.instant('edit.system.repo.warning'));\n } else {\n toastrMsg = getError(data);\n }\n\n toastr.error(toastrMsg, $translate.instant('common.error'), {allowHtml: true});\n\n if (status === 404) {\n setTimeout(function () {\n $scope.loader = false;\n $location.path('repository');\n }, 1000);\n } else {\n $scope.loader = false;\n }\n });\n }\n });\n\n $scope.setRepositoryType = function (type) {\n $scope.repositoryType = type;\n };\n\n $scope.noMembersError = function () {\n toastr.error($translate.instant('fedx.create.repo.no.members.warning'));\n };\n\n $scope.editRepoHttp = function () {\n $scope.loader = true;\n RepositoriesRestService.editRepository($scope.repositoryInfo.saveId, $scope.repositoryInfo)\n .success(function () {\n toastr.success($translate.instant('edit.repo.success.msg', {saveId: $scope.repositoryInfo.saveId}));\n $repositories.init().finally(() => $scope.goBackToPreviousLocation());\n if ($scope.repositoryInfo.saveId === $scope.repositoryInfo.id && $scope.repositoryInfo.restartRequested) {\n $repositories.restartRepository($scope.repositoryInfo);\n }\n }).error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('common.error'));\n $scope.loader = false;\n });\n };\n\n $scope.editRepository = function () {\n $scope.isInvalidRepoName = !FILENAME_PATTERN.test($scope.repositoryInfo.id);\n validateNumberFields($scope.repositoryInfo.params, $scope.invalidValues);\n const invalidValues = checkInvalidValues($scope.invalidValues, $translate);\n let modalMsg = decodeHTML($translate.instant('edit.repo.save.changes.msg', {repoId: $scope.repositoryInfo.id}));\n if ($scope.repositoryInfo.saveId !== $scope.repositoryInfo.id) {\n modalMsg += decodeHTML($translate.instant('edit.repo.rename.changes.msg'));\n } else if ($scope.repositoryInfo.restartRequested) {\n modalMsg += decodeHTML($translate.instant('edit.repo.restart.requested.msg'));\n } else {\n modalMsg += decodeHTML($translate.instant('edit.repo.restart.needed.msg'));\n }\n if ($scope.isInvalidRepoName) {\n toastr.error($translate.instant('wrong.repo.name.error'));\n } else if ($scope.repositoryType === \"fedx\" && $scope.repositoryInfo.params.member.value.length === 0) {\n $scope.noMembersError();\n } else if (invalidValues) {\n toastr.error(invalidValues);\n } else {\n ModalService.openSimpleModal({\n title: $translate.instant('common.confirm.save'),\n message: modalMsg,\n warning: true\n }).result\n .then(function () {\n $scope.editRepoHttp();\n });\n }\n };\n\n $scope.editRepositoryId = function () {\n let msg = decodeHTML($translate.instant('edit.repo.id.warning.msg'));\n if ($scope.isEnterprise()) {\n msg += decodeHTML($translate.instant('edit.repo.id.cluster.warning.msg'));\n }\n ModalService.openSimpleModal({\n title: $translate.instant('confirm.enable.edit'),\n message: msg,\n warning: true\n }).result.then(function () {\n $scope.canEditRepoId = true;\n });\n };\n\n $scope.goBackToPreviousLocation = function () {\n if (angular.isDefined($routeParams.previous)) {\n delete $location.$$search.previous;\n $location.path('/');\n } else {\n $location.path('/repository');\n }\n };\n\n $scope.validateNumberInput = function () {\n validateNumberFields($scope.repositoryInfo.params, $scope.invalidValues);\n };\n\n $scope.getShaclOptionsClass = function () {\n return getShaclOptionsClass();\n };\n}\n"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[62],{56:function(e,t,n){"use strict";n.r(t);n(5),n(17);var r=n(0);function i(e,t,n,i,o,a,s,u,c,d,l,g,y,f,p){const m={id:"1",name:"",query:"select * where { \n\t?s ?p ?o .\n} limit 100 \n",inference:!0,sameAs:!0};let h,T;function w(t){!function(){if(i.isActiveRepoOntopType())return;const t=document.getElementById("sameAs");!t||e.currentQuery.inference||t.disabled?e.currentQuery.inference&&t.disabled&&(t.removeAttribute("disabled"),e.currentQuery.sameAs=h.appSettings.DEFAULT_SAMEAS):(t.disabled=!0,e.currentQuery.sameAs=!1)}(),e.tabs.forEach((function(n,r){n.id===t.id&&(e.tabs[r].query=t.query,i.isActiveRepoOntopType()||(e.tabs[r].inference=t.inference,e.tabs[r].sameAs=t.sameAs))})),y.set(f.TABS_STATE,e.tabs)}function b(t,n,r,i){const o=angular.element(document.getElementById("yasr-inner"));e.queryIsRunning=t,t?(e.queryStartTime=Date.now(),e.countTimeouted=!1,e.progressMessage=n,e.extraMessage=r,e.noLoaderTimer=i,o.addClass("hide")):(e.progressMessage="",e.extraMessage="",e.noLoaderTimer=!1,e.currentTrackAlias=null,e.abortRequested=!1,o.removeClass("hide")),null===e.$$phase&&e.$apply()}function C(n){function r(){return window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight||0}if(e.orientationViewMode){if("yasr"===e.viewMode){let e=r()-document.querySelector(".CodeMirror-wrap").getBoundingClientRect().top;e-=40,document.querySelector(".CodeMirror-wrap").style.height=e+"px"}else e.noPadding={},document.querySelector(".CodeMirror-wrap").style.height="";document.getElementById("yasr").style.minHeight=""}else if(e.noPadding={paddingRight:15,paddingLeft:0},window.editor&&document.querySelector(".CodeMirror-wrap")){let e=r()-document.querySelector(".CodeMirror-wrap").getBoundingClientRect().top;e-=40,document.querySelector(".CodeMirror-wrap").style.height=e+"px",document.getElementById("yasr").style.minHeight=e+"px"}else{let r;r=t(n?function(){e.fixSizesOnHorizontalViewModeSwitch(n)}:e.fixSizesOnHorizontalViewModeSwitch,100),e.$on("$destroy",(function(){t.cancel(r)}))}window.yasr&&window.yasr.container&&t((function(){window.yasr.container.resize()}),100)}function S(){C(!0)}function q(t,n){n.newRepo&&(e.tabsData=y.get(f.TABS_STATE),e.tabsData.forEach((function(e){e.yasrData=void 0,e.queryType=void 0,e.resultsCount=0,e.allResultsCount=0,e.sizeDelta=void 0})),y.set(f.TABS_STATE,e.tabsData),e.tabs=e.tabsData,e.currentQuery={},e.errorMessage=null,e.repositoryError=null)}function E(e){t((function(){$('a[data-id = "'+e+'"]').tab("show")}),0)}function v(r,o){if(e.executedQueryTab=e.currentQuery,o){if("SELECT"!==window.editor.getQueryType()&&"CONSTRUCT"!==window.editor.getQueryType())return void n.warning(p.instant("query.editor.warning.msg"));if(i.isActiveRepoOntopType())return void n.warning(p.instant("query.editor.virtual.repo.warning.msg"))}if(e.explainRequested=o,!e.queryIsRunning){if(r?e.currentTabConfig.resultsCount=0:e.resetCurrentTabConfig(),e.lastRunQueryMode=window.editor.getQueryMode(),"update"===e.lastRunQueryMode&&i.isActiveRepoOntopType())return void n.warning(p.instant("query.editor.virtual.repo.update.warning.msg"));if(b(!0,"update"===e.lastRunQueryMode?p.instant("query.editor.executing.update"):p.instant("query.editor.evaluating.query")),"none"!==e.viewMode){e.viewMode="none",e.orientationViewMode&&e.fixSizesOnHorizontalViewModeSwitch();const n=t(window.editor.query,500);e.$on("$destroy",(function(){t.cancel(n)}))}else window.editor.query()}}function Q(){e.showSampleQueries=!e.showSampleQueries,e.showSampleQueries?s.getSavedQueries().success((function(t){e.sampleQueries=t,$("#sampleQueriesCollapse").collapse("show").width("300px")})).error((function(e){const t=getError(e);n.error(t,p.instant("query.editor.get.saved.queries.error"))})):$("#sampleQueriesCollapse").collapse("hide")}function M(t){let n=void 0;return e.tabsData.forEach((function(e){if(e.name===t.name&&e.query===t.body)return n=e.id,e})),n}function A(t){return function(n,r,i){e.savedQuery={name:n,query:r||window.editor.getValue(),shared:i},$(t).modal("show")}}function D(t){for(let n=0;n<e.tabsData.length;n++){if(e.tabsData[n].id===t)return n}}e.getPrincipal=function(){return d.getPrincipal().then(t=>{h=t,function(e,t){m.inference=t.appSettings.DEFAULT_INFERENCE,m.sameAs=t.appSettings.DEFAULT_SAMEAS,e.skipCountQuery=!t.appSettings.EXECUTE_COUNT,e.ignoreSharedQueries=t.appSettings.IGNORE_SHARED_QUERIES,e.tabsData=e.tabs=y.get(f.TABS_STATE)||[m],e.$watchCollection("[currentQuery.inference, currentQuery.sameAs]",(function(e,t,n){w(n.currentQuery)})),e.$on("repositoryIsSet",q)}(e,h)})},e.getPrincipal(),this.hint=document.createElement("span"),this.hint.innerHTML=p.instant("query.editor.autocomplete.hint"),this.hint.style.fontSize="12px",this.hint.style.color="gray",this.hint.style.backgroundColor="white",this.hint.style.position="absolute",this.hint.style.zIndex="3",this.hint.style.paddingLeft="12px",e.$watch((function(){return angular.element(".CodeMirror-hints").length}),e=>{if(e){const e=angular.element(".CodeMirror-hints")[0].getBoundingClientRect();document.body.appendChild(this.hint),this.hint.style.top=e.top-20+"px",this.hint.style.left=e.right-this.hint.offsetWidth-12+"px"}else this.hint&&this.hint.parentNode&&this.hint.parentNode.removeChild(this.hint)}),e.resetCurrentTabConfig=function(){e.currentTabConfig={pageSize:1e3,page:1,allResultsCount:0,resultsCount:0}},e.queryExists=!1,e.resetCurrentTabConfig(),e.saveTab=function(t){const n=D(t);if(void 0===n)return{};const r=e.tabsData[n];return e.saveQueryToLocal(r),r},e.loadTab=function(n){e.tabsData=y.get(f.TABS_STATE)||[m];const r=D(n),o=e.tabsData[r];o.yasrData&&b(!0,p.instant("query.editor.render.results.msg"),null,!0);t((function(){""===e.currentQuery.query&&(e.currentQuery.query=" "),t((function(){window.editor.setValue(e.currentQuery.query),e.yasr.updateDownloadDropdown(),e.$broadcast("tabLoaded",e.currentQuery.id),e.yasr.options.output=o.outputType,o.yasrData&&(o.yasrData.customError?(e.yasr.results={getException:function(){return o.yasrData.customError}},b(!1)):t((function(){e.setYasrResponse(o.yasrData,o.textStatus,o.jqXhrOrErrorString),b(!1),$(".yasr_btnGroup li:nth-child(2)").hasClass("active")&&t((function(){$(".yasr_btnGroup li:nth-child(2) a").get(0).click()}),0)}),0))}),0)}),0),y.set(f.TABS_STATE_CURRENT_ID,n),e.currentQuery=o,t((function(){e.currentTabConfig={},e.currentTabConfig.queryType=o.queryType,e.currentTabConfig.resultsCount=o.resultsCount,e.currentTabConfig.offset=o.offset,e.currentTabConfig.allResultsCount=o.allResultsCount,e.currentTabConfig.allResultsCountExact=o.allResultsCountExact,e.currentTabConfig.page=o.page,e.currentTabConfig.pageSize=o.pageSize,e.currentTabConfig.timeFinished=o.timeFinished,e.currentTabConfig.timeTook=o.timeTook,e.currentTabConfig.sizeDelta=o.sizeDelta,e.currentTabConfig.customUpdateMessage=o.customUpdateMessage,e.currentTabConfig.errorMessage=o.errorMessage,e.currentTabConfig.warningMessage=o.warningMessage,e.$apply()}),0),$("#yasr").css("padding","0"),T||(T=setInterval(_,200));!function(){const t=i.isActiveRepoOntopType(),n=i.isActiveRepoFedXType();(function(e){const t=document.getElementById("sameAs"),n=document.getElementById("inference");t&&(t.disabled=!!e);n&&(n.disabled=!!e)})(t),e.nocount=!(!t&&!n)||!h.appSettings.EXECUTE_COUNT,t&&(e.currentQuery.inference=!0,e.currentQuery.sameAs=!0)}()},e.addNewTab=function(n,r,i){if(!z(!0))return;let o;o=r||i?{id:"1",name:r,query:i,inference:h.appSettings.DEFAULT_INFERENCE,sameAs:h.appSettings.DEFAULT_SAMEAS}:{id:"1",name:"",query:"select * where { \n\t?s ?p ?o .\n} limit 100 \n",inference:h.appSettings.DEFAULT_INFERENCE,sameAs:h.appSettings.DEFAULT_SAMEAS};R++;const a=""+R;e.tabsData=e.tabs;const s=o;s.id=a,e.tabsData.push(s),y.set(f.TABS_STATE_MAXID,R),y.set(f.TABS_STATE,e.tabsData);const u=Array.prototype.slice.call(arguments,1);t((function(){e.$apply(),E(a),n&&n.apply(this,u)}),0),e.tabs=e.tabsData},e.isTabChangeOk=z,e.runQuery=v,e.abortCurrentQuery=function(){g.deleteQuery(e.currentTrackAlias,i.getActiveRepository()).success((function(){e.abortRequested=!0}))},e.editQuery=function(t){o.open({templateUrl:"js/angular/core/directives/queryeditor/templates/query-sample.html",controller:"QuerySampleModalCtrl",resolve:{data:function(){return{title:p.instant("query.editor.edit.saved.query",{name:t.name}),query:t,edit:!0,okButtonText:p.instant("common.save.btn")}}}}).result.then((function(r){const i={name:r.name,body:r.body,shared:r.shared};t.name!==r.name?s.addNewSavedQuery(i).success((function(){e.deleteQueryHttp(t.name,!0)})).error((function(e){const t=getError(e);n.error(t,p.instant("query.editor.edit.saved.query.error"))})):s.editSavedQuery(i).success((function(){$("#editQueryContainer").modal("hide"),e.toggleSampleQueries(),n.success(p.instant("query.editor.edit.saved.query.success.msg",{name:t.name}))})).error((function(e){const t=getError(e);n.error(t,p.instant("query.editor.edit.saved.query.error"))}))}))},e.getNamespaces=function(){b(!0,p.instant("common.refreshing.namespaces"),p.instant("common.extra.message")),e.namespacesLoading=!0,l.getRepositoryNamespaces().success((function(t){const n={};t.results.bindings.forEach((function(e){n[e.prefix.value]=e.namespace.value})),e.namespaces=n})).error((function(t){e.repositoryError=getError(t)})).finally((function(){b(!1),e.namespacesLoading=!1}))},e.changePagination=function(){v(!0,e.explainRequested)},e.toggleSampleQueries=Q,e.addKnownPrefixes=function(){s.addKnownPrefixes(JSON.stringify(window.editor.getValue())).success((function(e){angular.isDefined(window.editor)&&angular.isDefined(e)&&e!==window.editor.getValue()&&window.editor.setValue(e)})).error((function(e){const t=getError(e);return n.error(t,p.instant("common.add.known.prefixes.error")),!0}))},e.getExistingTabId=M,e.querySelected=function(t){const n=M(t);e.toggleSampleQueries(),e.isTabChangeOk(!1)&&(e.highlightNextTabChange=!0,angular.isDefined(n)?E(n):e.addNewTab(null,t.name,t.body))},e.deleteQuery=function(t){a.openSimpleModal({title:p.instant("common.confirm"),message:p.instant("query.editor.delete.saved.query.warning.msg",{savedQueryName:t}),warning:!0}).result.then((function(){e.deleteQueryHttp(t)}))},e.deleteQueryHttp=function(t,r){s.deleteSavedQuery(t).success((function(){e.toggleSampleQueries(),r||n.success(p.instant("query.editor.delete.saved.query.success.msg",{savedQueryName:t}))})).error((function(e){const t=getError(e);n.error(t,p.instant("query.editor.delete.saved.query.error"))}))},e.saveQuery=function(t,n){o.open({templateUrl:"js/angular/core/directives/queryeditor/templates/query-sample.html",controller:"QuerySampleModalCtrl",resolve:{data:function(){return{title:p.instant("query.editor.create.saved.query.msg"),query:{name:t.name,body:t.query,shared:t.shared},edit:!1,okButtonText:p.instant("common.create.btn"),queryExists:n,existingQueryErrMsg:Object(r.decodeHTML)(p.instant("query.sample.existing.query.warning",{name:t.name}))}}}}).result.then((function(t){e.saveQueryHttp(t)}),(function(){}))},e.saveQueryHttp=function(t){s.addNewSavedQuery(t).success((function(){n.success(p.instant("query.editor.save.saved.query.success.msg",{name:t.name}))})).error((function(r,i){const o=getError(r);n.error(o,p.instant("query.editor.create.saved.query.error"));let a=!1;409===i&&(a=!0),t.query=t.body,e.saveQuery(t,a)}))},e.saveQueryToLocal=w,e.setLoader=b,e.getLoaderMessage=function(){const t=(Date.now()-e.queryStartTime)/1e3;let n="",r="";e.noLoaderTimer||(n=e.getHumanReadableSeconds(t));r=e.progressMessage?p.instant("query.editor.progress.msg",{progressMessage:e.progressMessage,timeHuman:n}):p.instant("common.running.operation",{timeHuman:n});e.extraMessage&&t>10&&(r+=p.instant("query.editor.extra.msg",{extraMessage:e.extraMessage}));return r},e.fixSizesOnHorizontalViewModeSwitch=C,e.changeViewMode=function(){e.viewMode="none",e.orientationViewMode=!e.orientationViewMode,y.set(f.VIEW_MODE,e.orientationViewMode),C()},e.showHideEditor=S,e.focusQueryEditor=function(){angular.element(document).find(".editable-input").is(":focus")||angular.element(document).find(".CodeMirror textarea:first-child").focus()},e.orientationViewMode=!y.get(f.VIEW_MODE)||"true"===y.get(f.VIEW_MODE),e.viewMode="none",e.getActiveRepository=function(){return i.getActiveRepository()},e.getActiveRepositoryNoError=function(){if(!e.repositoryError)return i.getActiveRepository()},e.orientationViewMode||S(),window.onbeforeunload=function(){e.currentQuery&&e.saveTab(e.currentQuery.id),y.set(f.TABS_STATE,e.tabs)},e.$on("$destroy",(function(){e.currentQuery&&e.saveTab(e.currentQuery.id),y.set(f.TABS_STATE,e.tabs),clearInterval(T)})),e.$on("$destroy",(function(){clearInterval(T),window.editor=null,window.yasr=null})),$(document).mouseup((function(t){const n=$("#sampleQueriesCollapse");!n.is(t.target)&&0===n.has(t.target).length&&e.showSampleQueries&&Q()}));let R=y.get(f.TABS_STATE_MAXID)||1;function x(e){return $(e).attr("data-id")}function _(){if(e.currentTabConfig.resultsCount>=0){const e=$(".saveAsDropDown");e.length>0&&!window.editor.queryValid?yasr.header.find(".saveAsDropDown").remove():0===e.length&&window.editor.queryValid&&yasr.updateDownloadDropdown()}}function z(t){return!(e.queryIsRunning&&!e.namespacesLoading)||(t?n.info(p.instant("query.editor.new.tab.running.query.warning.msg")):n.info(p.instant("query.editor.tab.switching.running.query.warning.msg")),!1)}e.highlightNextTabChange=!1,e.$on("tabAction",(function(n,r){r.relatedTarget&&(t.cancel(r.relatedTarget.timer),$(r.relatedTarget).css("color",""),e.saveTab(x(r.relatedTarget))),e.loadTab(x(r.target));const i=["var(--onto-orange)","","var(--onto-orange)"],o=[400,400,400];if(e.highlightNextTabChange){e.highlightNextTabChange=!1;let n=0;$(r.target).css("color",i[n]);const a=function(){n++,n<i.length?($(r.target).css("color",i[n]),r.target.timer=t(a,o[n])):$(r.target).css("color","")};t(a,o[n])}})),e.$on("deleteAllexeptSelected",(function(t,n){e.tabsData=n,e.tabs=n})),e.currentQuery={},e.showSampleQueries=!1,e.savedQuery={},e.sampleQueries={},e.editQueryModal=A("#editQueryContainer"),e.deleteQueryModal=A("#confirmDeleteContainer"),e.saveQueryModal=A("#saveQueryContainer"),e.getResultsDescription=function(){let t;if(0===e.currentTabConfig.resultsCount)t="No results.";else{const n=(e.currentTabConfig.page-1)*e.currentTabConfig.pageSize+Math.min(e.currentTabConfig.resultsCount,e.currentTabConfig.pageSize);t=p.instant("query.editor.showing.results.from.msg")+u("currency")(e.currentTabConfig.offset,"",0)+p.instant("query.editor.to")+u("currency")(n,"",0),e.currentTabConfig.allResultsCount>0&&(t+=p.instant(e.currentTabConfig.allResultsCountExact?"query.editor.of":"query.editor.of.at.least"),t+=u("currency")(e.currentTabConfig.allResultsCount,"",0)),t+="."}return t},e.getUpdateDescription=function(){return e.currentTabConfig.customUpdateMessage?p.instant(e.currentTabConfig.customUpdateMessage.msg,{name:e.currentTabConfig.customUpdateMessage.name}):void 0===e.currentTabConfig.sizeDelta?"":e.currentTabConfig.sizeDelta<0?p.instant("yasr.removed.statements.result.msg",{sizeDelta:Math.abs(e.currentTabConfig.sizeDelta)}):e.currentTabConfig.sizeDelta>0?p.instant("yasr.added.statements.result.msg",{sizeDelta:e.currentTabConfig.sizeDelta}):p.instant("yasr.statements.no.change.msg")},e.getStaleWarningMessage=function(){const t=60*Math.round((Date.now()-e.currentTabConfig.timeFinished)/6e4);if(t>=3600)return p.instant("yasr.stale.result.msg",{secondsAgo:e.getHumanReadableSeconds(t)})};const N=function(){};angular.element(c).bind("resize",N),e.$on("$destroy",(function(){angular.element(c).unbind("resize",N)}))}function o(e,t,n,r){n.queryExists&&(e.queryExists=!0),e.query=angular.copy(n.query),e.title=n.title,e.edit=n.edit,e.okButtonText=n.okButtonText,e.existingQueryErrMsg=r.trustAsHtml(n.existingQueryErrMsg),e.ok=function(){e.form.$valid&&t.close(e.query)},e.cancel=function(){t.dismiss("cancel")}}angular.module("graphdb.framework.core.directives.queryeditor.controllers",["graphdb.framework.utils.localstorageadapter","graphdb.framework.rest.sparql.service"]).controller("QueryEditorCtrl",i).controller("QuerySampleModalCtrl",o),i.$inject=["$scope","$timeout","toastr","$repositories","$uibModal","ModalService","SparqlRestService","$filter","$window","$jwtAuth","RDF4JRepositoriesRestService","MonitoringRestService","LocalStorageAdapter","LSKeys","$translate"],o.$inject=["$scope","$uibModalInstance","data","$sce"]}}]);
|
|
2
|
-
//# sourceMappingURL=62.35e111a570b5e038fdea.bundle.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///./src/js/angular/core/directives/queryeditor/query-editor.controller.js"],"names":["QueryEditorCtrl","$scope","$timeout","toastr","$repositories","$uibModal","ModalService","SparqlRestService","$filter","$window","$jwtAuth","RDF4JRepositoriesRestService","MonitoringRestService","LocalStorageAdapter","LSKeys","$translate","defaultTabConfig","id","name","query","inference","sameAs","principal","checkQueryIntervalId","saveQueryToLocal","currentQueryTab","isActiveRepoOntopType","sameAsBtn","document","getElementById","currentQuery","disabled","removeAttribute","appSettings","DEFAULT_SAMEAS","shouldDisableSameAs","tabs","forEach","tab","index","set","TABS_STATE","setLoader","isRunning","progressMessage","extraMessage","noTimer","yasrInnerContainer","angular","element","queryIsRunning","queryStartTime","Date","now","countTimeouted","noLoaderTimer","addClass","currentTrackAlias","abortRequested","removeClass","$$phase","$apply","fixSizesOnHorizontalViewModeSwitch","verticalView","visibleWindowHeight","window","innerHeight","documentElement","clientHeight","body","orientationViewMode","viewMode","newHeight","querySelector","getBoundingClientRect","style","height","noPadding","minHeight","paddingRight","paddingLeft","editor","timer","$on","cancel","yasr","container","resize","showHideEditor","deleteCachedSparqlResults","foo","params","newRepo","tabsData","get","item","yasrData","undefined","queryType","resultsCount","allResultsCount","sizeDelta","errorMessage","repositoryError","selectTab","$","runQuery","changePage","explain","executedQueryTab","getQueryType","warning","instant","explainRequested","currentTabConfig","resetCurrentTabConfig","lastRunQueryMode","getQueryMode","toggleSampleQueries","showSampleQueries","getSavedQueries","success","data","sampleQueries","collapse","width","error","msg","getError","getExistingTabId","existingTabId","showModal","modalSelector","shared","savedQuery","getValue","modal","findTabIndexByID","i","length","getPrincipal","then","response","scope","DEFAULT_INFERENCE","skipCountQuery","EXECUTE_COUNT","ignoreSharedQueries","IGNORE_SHARED_QUERIES","$watchCollection","newVal","oldVal","initTabs","this","hint","createElement","innerHTML","fontSize","color","backgroundColor","position","zIndex","$watch","newValue","elRect","appendChild","top","left","right","offsetWidth","parentNode","removeChild","pageSize","page","queryExists","saveTab","idx","loadTab","setValue","updateDownloadDropdown","$broadcast","options","output","outputType","customError","results","getException","setYasrResponse","textStatus","jqXhrOrErrorString","hasClass","click","TABS_STATE_CURRENT_ID","offset","allResultsCountExact","timeFinished","timeTook","customUpdateMessage","warningMessage","css","setInterval","showOrHideSaveAsDropDown","isOntop","isFedX","isActiveRepoFedXType","inferenceBtn","handleSameAsAndInferenceBtns","nocount","overrideSameAsInferenceAndNoCountIfNeeded","addNewTab","callback","tabName","isTabChangeOk","maxID","newID","newTab","push","TABS_STATE_MAXID","callbackArgs","Array","prototype","slice","call","arguments","apply","abortCurrentQuery","deleteQuery","getActiveRepository","editQuery","open","templateUrl","controller","resolve","title","edit","okButtonText","result","queryModal","addNewSavedQuery","deleteQueryHttp","editSavedQuery","getNamespaces","namespacesLoading","getRepositoryNamespaces","usedPrefixes","bindings","e","prefix","value","namespace","namespaces","finally","changePagination","addKnownPrefixes","JSON","stringify","isDefined","querySelected","tabId","highlightNextTabChange","savedQueryName","openSimpleModal","message","deleteSavedQuery","saveQuery","existingQueryErrMsg","saveQueryHttp","status","getLoaderMessage","timeSeconds","timeHuman","getHumanReadableSeconds","changeViewMode","VIEW_MODE","focusQueryEditor","find","is","focus","getActiveRepositoryNoError","onbeforeunload","clearInterval","mouseup","event","target","has","getQueryID","attr","$saveAsDropDown","queryValid","header","remove","isNew","info","tabEvent","relatedTarget","colors","times","highlightFun","editQueryModal","deleteQueryModal","saveQueryModal","getResultsDescription","desc","currentPageEnd","Math","min","getUpdateDescription","abs","getStaleWarningMessage","secondsAgo","round","bind","unbind","QuerySampleModalCtrl","$uibModalInstance","$sce","copy","trustAsHtml","ok","form","$valid","close","dismiss","module","$inject"],"mappings":"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","file":"62.35e111a570b5e038fdea.bundle.js","sourcesContent":["import 'angular/utils/local-storage-adapter';\nimport 'angular/rest/sparql.rest.service';\nimport {decodeHTML} from \"../../../../../app\";\n\nangular\n .module('graphdb.framework.core.directives.queryeditor.controllers', [\n 'graphdb.framework.utils.localstorageadapter',\n 'graphdb.framework.rest.sparql.service'\n ])\n .controller('QueryEditorCtrl', QueryEditorCtrl)\n .controller('QuerySampleModalCtrl', QuerySampleModalCtrl);\n\nQueryEditorCtrl.$inject = ['$scope', '$timeout', 'toastr', '$repositories', '$uibModal', 'ModalService', 'SparqlRestService', '$filter', '$window', '$jwtAuth', 'RDF4JRepositoriesRestService', 'MonitoringRestService', 'LocalStorageAdapter', 'LSKeys', '$translate'];\n\nfunction QueryEditorCtrl($scope, $timeout, toastr, $repositories, $uibModal, ModalService, SparqlRestService, $filter, $window, $jwtAuth, RDF4JRepositoriesRestService, MonitoringRestService, LocalStorageAdapter, LSKeys, $translate) {\n const defaultTabConfig = {\n id: \"1\",\n name: '',\n query: 'select * where { \\n' +\n '\\t?s ?p ?o .\\n' +\n '} limit 100 \\n',\n inference: true,\n sameAs: true\n };\n\n let principal;\n // Wrapped in function for ease of testing\n $scope.getPrincipal = function () {\n return $jwtAuth.getPrincipal()\n .then((response) => {\n principal = response;\n initTabs($scope, principal);\n });\n };\n\n $scope.getPrincipal();\n let checkQueryIntervalId;\n\n function initTabs(scope, principal) {\n defaultTabConfig.inference = principal.appSettings.DEFAULT_INFERENCE;\n defaultTabConfig.sameAs = principal.appSettings.DEFAULT_SAMEAS;\n\n scope.skipCountQuery = !principal.appSettings.EXECUTE_COUNT;\n scope.ignoreSharedQueries = principal.appSettings.IGNORE_SHARED_QUERIES;\n scope.tabsData = scope.tabs = LocalStorageAdapter.get(LSKeys.TABS_STATE) || [defaultTabConfig];\n\n scope.$watchCollection('[currentQuery.inference, currentQuery.sameAs]', function (newVal, oldVal, scope) {\n saveQueryToLocal(scope.currentQuery);\n });\n\n scope.$on('repositoryIsSet', deleteCachedSparqlResults);\n }\n\n this.hint = document.createElement(\"span\");\n this.hint.innerHTML = $translate.instant('query.editor.autocomplete.hint');\n this.hint.style.fontSize = \"12px\";\n this.hint.style.color = \"gray\";\n this.hint.style.backgroundColor = \"white\";\n this.hint.style.position = \"absolute\";\n this.hint.style.zIndex = \"3\";\n this.hint.style.paddingLeft = 12 + \"px\";\n\n $scope.$watch(function() {\n return angular.element('.CodeMirror-hints').length;\n }, (newValue) => {\n if (newValue) {\n const elRect = angular.element('.CodeMirror-hints')[0].getBoundingClientRect();\n document.body.appendChild(this.hint);\n this.hint.style.top = elRect.top - 20 + \"px\";\n this.hint.style.left = elRect.right - this.hint.offsetWidth - 12 + \"px\";\n } else {\n this.hint && this.hint.parentNode && this.hint.parentNode.removeChild(this.hint);\n }\n });\n\n $scope.resetCurrentTabConfig = function () {\n $scope.currentTabConfig = {\n pageSize: 1000,\n page: 1,\n allResultsCount: 0,\n resultsCount: 0\n };\n };\n\n $scope.queryExists = false;\n\n $scope.resetCurrentTabConfig();\n\n // query tab operations\n $scope.saveTab = saveTab;\n $scope.loadTab = loadTab;\n $scope.addNewTab = addNewTab;\n $scope.isTabChangeOk = isTabChangeOk;\n\n // query operations\n $scope.runQuery = runQuery;\n $scope.abortCurrentQuery = abortCurrentQuery;\n $scope.editQuery = editQuery;\n $scope.getNamespaces = getNamespaces;\n $scope.changePagination = changePagination;\n $scope.toggleSampleQueries = toggleSampleQueries;\n $scope.addKnownPrefixes = addKnownPrefixes;\n $scope.getExistingTabId = getExistingTabId;\n $scope.querySelected = querySelected;\n $scope.deleteQuery = deleteQuery;\n $scope.deleteQueryHttp = deleteQueryHttp;\n $scope.saveQuery = saveQuery;\n $scope.saveQueryHttp = saveQueryHttp;\n $scope.saveQueryToLocal = saveQueryToLocal;\n\n $scope.setLoader = setLoader;\n $scope.getLoaderMessage = getLoaderMessage;\n\n // query editor and results orientation\n $scope.fixSizesOnHorizontalViewModeSwitch = fixSizesOnHorizontalViewModeSwitch;\n $scope.changeViewMode = changeViewMode;\n $scope.showHideEditor = showHideEditor;\n $scope.focusQueryEditor = focusQueryEditor;\n $scope.orientationViewMode = LocalStorageAdapter.get(LSKeys.VIEW_MODE) ? LocalStorageAdapter.get(LSKeys.VIEW_MODE) === \"true\" : true;\n $scope.viewMode = 'none';\n\n // start of repository actions\n // FIXME: do we need this??\n // $scope.getActiveRepository();\n $scope.getActiveRepository = function () {\n // same as getActiveRepository() but takes into account repo errors\n return $repositories.getActiveRepository();\n };\n\n $scope.getActiveRepositoryNoError = function () {\n if (!$scope.repositoryError) {\n return $repositories.getActiveRepository();\n }\n };\n\n function saveQueryToLocal(currentQueryTab) {\n shouldDisableSameAs();\n $scope.tabs.forEach(function (tab, index) {\n if (tab.id === currentQueryTab.id) {\n $scope.tabs[index].query = currentQueryTab.query;\n // Don't store inference and sameAs values for Ontop repository,\n // because they are overridden afterwards to true\n if (!$repositories.isActiveRepoOntopType()) {\n $scope.tabs[index].inference = currentQueryTab.inference;\n $scope.tabs[index].sameAs = currentQueryTab.sameAs;\n }\n }\n });\n LocalStorageAdapter.set(LSKeys.TABS_STATE, $scope.tabs);\n }\n\n function setLoader(isRunning, progressMessage, extraMessage, noTimer) {\n const yasrInnerContainer = angular.element(document.getElementById(\"yasr-inner\"));\n $scope.queryIsRunning = isRunning;\n if (isRunning) {\n $scope.queryStartTime = Date.now();\n $scope.countTimeouted = false;\n $scope.progressMessage = progressMessage;\n $scope.extraMessage = extraMessage;\n $scope.noLoaderTimer = noTimer;\n yasrInnerContainer.addClass(\"hide\");\n } else {\n $scope.progressMessage = \"\";\n $scope.extraMessage = \"\";\n $scope.noLoaderTimer = false;\n $scope.currentTrackAlias = null;\n $scope.abortRequested = false;\n yasrInnerContainer.removeClass(\"hide\");\n }\n // We might call this from angular or outside angular so take care of applying the scope.\n if ($scope.$$phase === null) {\n $scope.$apply();\n }\n }\n\n function getLoaderMessage() {\n const timeSeconds = (Date.now() - $scope.queryStartTime) / 1000;\n let timeHuman = \"\";\n let message = \"\";\n\n if (!$scope.noLoaderTimer) {\n timeHuman = $scope.getHumanReadableSeconds(timeSeconds);\n }\n\n if ($scope.progressMessage) {\n message = $translate.instant('query.editor.progress.msg', {progressMessage: $scope.progressMessage, timeHuman: timeHuman});\n } else {\n message = $translate.instant('common.running.operation', {timeHuman: timeHuman});\n }\n if ($scope.extraMessage && timeSeconds > 10) {\n message += $translate.instant('query.editor.extra.msg', {extraMessage: $scope.extraMessage});\n }\n\n return message;\n }\n\n // start of query editor results orientation operations\n function fixSizesOnHorizontalViewModeSwitch(verticalView) {\n function visibleWindowHeight() {\n return window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight || 0;\n }\n\n if (!$scope.orientationViewMode) {\n $scope.noPadding = {paddingRight: 15, paddingLeft: 0};\n\n // window.editor is undefined if no repo is selected\n if (window.editor && document.querySelector('.CodeMirror-wrap')) {\n let newHeight = visibleWindowHeight() - (document.querySelector('.CodeMirror-wrap').getBoundingClientRect().top);\n newHeight -= 40;\n document.querySelector('.CodeMirror-wrap').style.height = newHeight + 'px';\n document.getElementById('yasr').style.minHeight = newHeight + 'px';\n //window.editor.refresh();\n } else {\n let timer;\n if (verticalView) {\n timer = $timeout(function () {\n $scope.fixSizesOnHorizontalViewModeSwitch(verticalView);\n }, 100);\n } else {\n timer = $timeout($scope.fixSizesOnHorizontalViewModeSwitch, 100);\n }\n\n $scope.$on(\"$destroy\", function () {\n $timeout.cancel(timer);\n });\n }\n } else {\n if ($scope.viewMode === 'yasr') {\n let newHeight = visibleWindowHeight() - (document.querySelector('.CodeMirror-wrap').getBoundingClientRect().top);\n newHeight -= 40;\n document.querySelector('.CodeMirror-wrap').style.height = newHeight + 'px';\n //window.editor.refresh();\n } else {\n $scope.noPadding = {};\n document.querySelector('.CodeMirror-wrap').style.height = '';\n //window.editor.refresh();\n }\n document.getElementById('yasr').style.minHeight = '';\n }\n if (window.yasr && window.yasr.container) {\n $timeout(function () {\n window.yasr.container.resize();\n }, 100);\n }\n }\n\n if (!$scope.orientationViewMode) {\n showHideEditor();\n }\n\n function changeViewMode() {\n $scope.viewMode = 'none';\n $scope.orientationViewMode = !$scope.orientationViewMode;\n LocalStorageAdapter.set(LSKeys.VIEW_MODE, $scope.orientationViewMode);\n fixSizesOnHorizontalViewModeSwitch();\n }\n\n function showHideEditor() {\n fixSizesOnHorizontalViewModeSwitch(true);\n }\n\n function focusQueryEditor() {\n if (!angular.element(document).find('.editable-input').is(\":focus\")) {\n angular.element(document).find('.CodeMirror textarea:first-child').focus();\n }\n }\n\n // end of query editor results orientation operations\n\n function deleteCachedSparqlResults(foo, params) {\n if (params.newRepo) {\n $scope.tabsData = LocalStorageAdapter.get(LSKeys.TABS_STATE);\n $scope.tabsData.forEach(function (item) {\n item.yasrData = undefined;\n item.queryType = undefined;\n item.resultsCount = 0;\n item.allResultsCount = 0;\n item.sizeDelta = undefined;\n });\n\n LocalStorageAdapter.set(LSKeys.TABS_STATE, $scope.tabsData);\n $scope.tabs = $scope.tabsData;\n\n // The repository is changed. Remove error messages as well, if any\n $scope.currentQuery = {};\n $scope.errorMessage = null;\n $scope.repositoryError = null;\n }\n }\n\n function selectTab(id) {\n $timeout(function () {\n $('a[data-id = \"' + id + '\"]').tab('show');\n }, 0);\n }\n\n window.onbeforeunload = function () {\n if ($scope.currentQuery) {\n $scope.saveTab($scope.currentQuery.id);\n }\n LocalStorageAdapter.set(LSKeys.TABS_STATE, $scope.tabs);\n };\n\n $scope.$on('$destroy', function () {\n if ($scope.currentQuery) {\n $scope.saveTab($scope.currentQuery.id);\n }\n LocalStorageAdapter.set(LSKeys.TABS_STATE, $scope.tabs);\n clearInterval(checkQueryIntervalId);\n });\n\n // start of query operations\n function runQuery(changePage, explain) {\n $scope.executedQueryTab = $scope.currentQuery ;\n if (explain) {\n if (!(window.editor.getQueryType() === 'SELECT' || window.editor.getQueryType() === 'CONSTRUCT')) {\n toastr.warning($translate.instant('query.editor.warning.msg'));\n return;\n }\n\n if ($repositories.isActiveRepoOntopType()) {\n toastr.warning($translate.instant('query.editor.virtual.repo.warning.msg'));\n return;\n }\n }\n\n $scope.explainRequested = explain;\n if (!$scope.queryIsRunning) {\n if (changePage) {\n $scope.currentTabConfig.resultsCount = 0;\n } else {\n $scope.resetCurrentTabConfig();\n }\n\n $scope.lastRunQueryMode = window.editor.getQueryMode();\n\n if ($scope.lastRunQueryMode === 'update' && $repositories.isActiveRepoOntopType()) {\n toastr.warning($translate.instant('query.editor.virtual.repo.update.warning.msg'));\n return;\n }\n\n setLoader(true, $scope.lastRunQueryMode === 'update' ? $translate.instant('query.editor.executing.update') : $translate.instant('query.editor.evaluating.query'));\n if ($scope.viewMode !== 'none') {\n $scope.viewMode = 'none';\n if ($scope.orientationViewMode) {\n $scope.fixSizesOnHorizontalViewModeSwitch();\n }\n const timer = $timeout(window.editor.query, 500);\n $scope.$on('$destroy', function () {\n $timeout.cancel(timer);\n });\n } else {\n window.editor.query();\n }\n }\n }\n\n function abortCurrentQuery() {\n MonitoringRestService.deleteQuery($scope.currentTrackAlias, $repositories.getActiveRepository())\n .success(function () {\n $scope.abortRequested = true;\n });\n }\n\n function getNamespaces() {\n // Signals the namespaces are to be fetched => loader will be shown\n setLoader(true, $translate.instant('common.refreshing.namespaces'), $translate.instant('common.extra.message'));\n $scope.namespacesLoading = true;\n\n RDF4JRepositoriesRestService.getRepositoryNamespaces()\n .success(function (data) {\n const usedPrefixes = {};\n data.results.bindings.forEach(function (e) {\n usedPrefixes[e.prefix.value] = e.namespace.value;\n });\n $scope.namespaces = usedPrefixes;\n })\n .error(function (data) {\n $scope.repositoryError = getError(data);\n })\n .finally(function () {\n // Signals namespaces were fetched => loader will be hidden\n setLoader(false);\n $scope.namespacesLoading = false;\n });\n }\n\n function changePagination() {\n runQuery(true, $scope.explainRequested);\n }\n\n $scope.$on(\"$destroy\", function () {\n clearInterval(checkQueryIntervalId);\n window.editor = null;\n window.yasr = null;\n });\n\n function toggleSampleQueries() {\n $scope.showSampleQueries = !$scope.showSampleQueries;\n if ($scope.showSampleQueries) {\n SparqlRestService.getSavedQueries()\n .success(function (data) {\n $scope.sampleQueries = data;\n $('#sampleQueriesCollapse').collapse('show').width('300px');\n })\n .error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('query.editor.get.saved.queries.error'));\n });\n } else {\n $('#sampleQueriesCollapse').collapse('hide');\n }\n }\n\n // Hide the sample queries when the user clicks somewhere else in the UI.\n $(document).mouseup(function (event) {\n const container = $('#sampleQueriesCollapse');\n if (!container.is(event.target) // if the target of the click isn't the container..\n && container.has(event.target).length === 0 //... nor a descendant of the container\n && $scope.showSampleQueries) {\n toggleSampleQueries();\n }\n });\n\n // Add known prefixes\n function addKnownPrefixes() {\n SparqlRestService.addKnownPrefixes(JSON.stringify(window.editor.getValue()))\n .success(function (data) {\n if (angular.isDefined(window.editor) && angular.isDefined(data) && data !== window.editor.getValue()) {\n window.editor.setValue(data);\n }\n })\n .error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('common.add.known.prefixes.error'));\n return true;\n });\n }\n\n function querySelected(query) {\n const tabId = getExistingTabId(query);\n $scope.toggleSampleQueries();\n\n if ($scope.isTabChangeOk(false)) {\n $scope.highlightNextTabChange = true;\n if (!angular.isDefined(tabId)) {\n $scope.addNewTab(null, query.name, query.body);\n } else {\n selectTab(tabId);\n }\n }\n }\n\n function getExistingTabId(query) {\n let existingTabId = undefined;\n $scope.tabsData.forEach(function (item) {\n if (item.name === query.name && item.query === query.body) {\n existingTabId = item.id;\n return item;\n }\n });\n return existingTabId;\n }\n\n function editQuery(query) {\n const modalInstance = $uibModal.open({\n templateUrl: 'js/angular/core/directives/queryeditor/templates/query-sample.html',\n controller: 'QuerySampleModalCtrl',\n resolve: {\n data: function () {\n return {\n title: $translate.instant('query.editor.edit.saved.query', {name: query.name}),\n query: query,\n edit: true,\n okButtonText: $translate.instant('common.save.btn')\n };\n }\n }\n });\n\n modalInstance.result.then(function (queryModal) {\n const data = {\n name: queryModal.name,\n body: queryModal.body,\n shared: queryModal.shared\n };\n if (query.name !== queryModal.name) {\n SparqlRestService.addNewSavedQuery(data)\n .success(function () {\n $scope.deleteQueryHttp(query.name, true);\n })\n .error(function (error) {\n const msg = getError(error);\n toastr.error(msg, $translate.instant('query.editor.edit.saved.query.error'));\n });\n } else {\n SparqlRestService.editSavedQuery(data)\n .success(function () {\n $('#editQueryContainer').modal('hide');\n $scope.toggleSampleQueries();\n toastr.success($translate.instant('query.editor.edit.saved.query.success.msg', {name: query.name}));\n })\n .error(function (error) {\n const msg = getError(error);\n toastr.error(msg, $translate.instant('query.editor.edit.saved.query.error'));\n });\n }\n });\n }\n\n function deleteQueryHttp(savedQueryName, edit) {\n SparqlRestService.deleteSavedQuery(savedQueryName)\n .success(function () {\n $scope.toggleSampleQueries();\n if (!edit) {\n toastr.success($translate.instant('query.editor.delete.saved.query.success.msg', {savedQueryName: savedQueryName}));\n }\n })\n .error(function (data) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('query.editor.delete.saved.query.error'));\n });\n }\n\n function deleteQuery(savedQueryName) {\n ModalService.openSimpleModal({\n title: $translate.instant('common.confirm'),\n message: $translate.instant('query.editor.delete.saved.query.warning.msg', {savedQueryName: savedQueryName}),\n warning: true\n }).result\n .then(function () {\n $scope.deleteQueryHttp(savedQueryName);\n });\n }\n\n function saveQueryHttp(query) {\n SparqlRestService.addNewSavedQuery(query)\n .success(function () {\n toastr.success($translate.instant('query.editor.save.saved.query.success.msg', {name: query.name}));\n })\n .error(function (data, status) {\n const msg = getError(data);\n toastr.error(msg, $translate.instant('query.editor.create.saved.query.error'));\n let queryExists = false;\n if (status === 409) {\n queryExists = true;\n }\n query.query = query.body;\n $scope.saveQuery(query, queryExists);\n });\n }\n\n function saveQuery(query, queryExists) {\n const modalInstance = $uibModal.open({\n templateUrl: 'js/angular/core/directives/queryeditor/templates/query-sample.html',\n controller: 'QuerySampleModalCtrl',\n resolve: {\n data: function () {\n return {\n title: $translate.instant('query.editor.create.saved.query.msg'),\n query: {name: query.name, body: query.query, shared: query.shared},\n edit: false,\n okButtonText: $translate.instant('common.create.btn'),\n queryExists: queryExists,\n existingQueryErrMsg: decodeHTML($translate.instant('query.sample.existing.query.warning', {name: query.name}))\n };\n }\n }\n });\n\n modalInstance.result.then(function (query) {\n $scope.saveQueryHttp(query);\n }, function () {\n });\n }\n\n // end of query operations\n\n function showModal(modalSelector) {\n return function (name, query, shared) {\n $scope.savedQuery = {\n name: name,\n query: query || window.editor.getValue(),\n shared: shared\n };\n $(modalSelector).modal('show');\n };\n }\n\n\n // start of query tab operations\n function findTabIndexByID(id) {\n for (let i = 0; i < $scope.tabsData.length; i++) {\n const tab = $scope.tabsData[i];\n if (tab.id === id) {\n return i;\n }\n }\n }\n\n function saveTab(id) {\n const idx = findTabIndexByID(id);\n // Tab was deleted, don't try to save it's state\n if (idx === undefined) {\n return {};\n }\n const tab = $scope.tabsData[idx];\n //tab.query = window.editor.getValue();\n $scope.saveQueryToLocal(tab);\n return tab;\n }\n\n let maxID = LocalStorageAdapter.get(LSKeys.TABS_STATE_MAXID) || 1;\n\n function addNewTab(callback, tabName, savedQuery) { // optional callback to call after tab has been added\n if (!isTabChangeOk(true)) {\n return;\n }\n let defaultTabConfig;\n if (tabName || savedQuery) {\n defaultTabConfig = {\n id: \"1\",\n name: tabName,\n query: savedQuery,\n inference: principal.appSettings.DEFAULT_INFERENCE,\n sameAs: principal.appSettings.DEFAULT_SAMEAS\n };\n } else {\n defaultTabConfig = {\n id: \"1\",\n name: '',\n query: 'select * where { \\n' +\n '\\t?s ?p ?o .\\n' +\n '} limit 100 \\n',\n inference: principal.appSettings.DEFAULT_INFERENCE,\n sameAs: principal.appSettings.DEFAULT_SAMEAS\n };\n }\n\n maxID++;\n const newID = '' + maxID;\n $scope.tabsData = $scope.tabs;\n\n const newTab = defaultTabConfig;\n newTab.id = newID;\n\n $scope.tabsData.push(newTab);\n\n LocalStorageAdapter.set(LSKeys.TABS_STATE_MAXID, maxID);\n LocalStorageAdapter.set(LSKeys.TABS_STATE, $scope.tabsData);\n const callbackArgs = Array.prototype.slice.call(arguments, 1); // skip one argument, i.e. the callback itself\n $timeout(function () {\n $scope.$apply();\n selectTab(newID);\n if (callback) {\n callback.apply(this, callbackArgs);\n }\n }, 0);\n $scope.tabs = $scope.tabsData;\n }\n\n function loadTab(id) {\n $scope.tabsData = LocalStorageAdapter.get(LSKeys.TABS_STATE) || [defaultTabConfig];\n\n // find available tab\n const idx = findTabIndexByID(id);\n const tab = $scope.tabsData[idx];\n\n if (tab.yasrData) {\n setLoader(true, $translate.instant('query.editor.render.results.msg'), null, true);\n }\n\n // set query in editor available on the current tab\n $timeout(function () {\n if ($scope.currentQuery.query === '') {\n $scope.currentQuery.query = \" \";\n }\n $timeout(function () {\n window.editor.setValue($scope.currentQuery.query);\n $scope.yasr.updateDownloadDropdown();\n $scope.$broadcast('tabLoaded', $scope.currentQuery.id);\n\n // set query results in query results sections after\n // previous query execution. Yasr response rendering depends on the\n // query type of window.editor!\n $scope.yasr.options.output = tab.outputType; // this may be undefined, that's fine!\n if (tab.yasrData) {\n if (tab.yasrData.customError) {\n // Our injected custom (not real HTTP) error\n $scope.yasr.results = {\n getException: function () {\n return tab.yasrData.customError;\n }\n };\n setLoader(false);\n } else {\n // Real YASR result\n $timeout(function () {\n $scope.setYasrResponse(tab.yasrData, tab.textStatus, tab.jqXhrOrErrorString);\n setLoader(false);\n if ($('.yasr_btnGroup li:nth-child(2)').hasClass(\"active\")) {\n $timeout(function () {\n $('.yasr_btnGroup li:nth-child(2) a').get(0).click();\n }, 0);\n }\n }, 0);\n }\n }\n }, 0);\n }, 0);\n\n\n // persist current tab id in local storage\n LocalStorageAdapter.set(LSKeys.TABS_STATE_CURRENT_ID, id);\n\n $scope.currentQuery = tab;\n\n $timeout(function () {\n $scope.currentTabConfig = {};\n $scope.currentTabConfig.queryType = tab.queryType;\n $scope.currentTabConfig.resultsCount = tab.resultsCount;\n\n $scope.currentTabConfig.offset = tab.offset;\n $scope.currentTabConfig.allResultsCount = tab.allResultsCount;\n $scope.currentTabConfig.allResultsCountExact = tab.allResultsCountExact;\n $scope.currentTabConfig.page = tab.page;\n $scope.currentTabConfig.pageSize = tab.pageSize;\n\n $scope.currentTabConfig.timeFinished = tab.timeFinished;\n $scope.currentTabConfig.timeTook = tab.timeTook;\n $scope.currentTabConfig.sizeDelta = tab.sizeDelta;\n $scope.currentTabConfig.customUpdateMessage = tab.customUpdateMessage;\n $scope.currentTabConfig.errorMessage = tab.errorMessage;\n $scope.currentTabConfig.warningMessage = tab.warningMessage;\n\n $scope.$apply();\n }, 0);\n\n //Remove paddign of yasr so it will be aligned with sparql editor\n $('#yasr').css('padding', '0');\n\n if (!checkQueryIntervalId) {\n checkQueryIntervalId = setInterval(showOrHideSaveAsDropDown, 200);\n }\n overrideSameAsInferenceAndNoCountIfNeeded();\n }\n\n function getQueryID(element) {\n return $(element).attr('data-id');\n }\n\n function showOrHideSaveAsDropDown() {\n // If selected tab has results and query in editor controller is invalid save as\n // dropdown menu will be removed and on fixing query latter will be added\n if ($scope.currentTabConfig.resultsCount >= 0) {\n const $saveAsDropDown = $('.saveAsDropDown');\n if ($saveAsDropDown.length > 0 && !window.editor.queryValid) {\n yasr.header.find('.saveAsDropDown').remove();\n } else if ($saveAsDropDown.length === 0 && window.editor.queryValid) {\n yasr.updateDownloadDropdown();\n }\n }\n }\n\n function isTabChangeOk(isNew) {\n if ($scope.queryIsRunning && !$scope.namespacesLoading) {\n if (isNew) {\n toastr.info($translate.instant('query.editor.new.tab.running.query.warning.msg'));\n } else {\n toastr.info($translate.instant('query.editor.tab.switching.running.query.warning.msg'));\n }\n\n return false;\n }\n\n return true;\n }\n\n // Raise this flag to provide visual feedback to the user the next time a tab changes\n // (either manually or by the system). See GDB-1983.\n $scope.highlightNextTabChange = false;\n $scope.$on('tabAction', function (e, tabEvent) {\n if (tabEvent.relatedTarget) {\n // Cancel any highlight timer that might have been left by the last highlight\n $timeout.cancel(tabEvent.relatedTarget.timer);\n $(tabEvent.relatedTarget).css('color', '');\n\n $scope.saveTab(getQueryID(tabEvent.relatedTarget));\n }\n\n $scope.loadTab(getQueryID(tabEvent.target));\n\n // These arrays define how the tab change will be visually enhanced.\n // colors contains the colors to set to the tab name,\n // while times defines the times in milliseconds to keep each color.\n // Once we cycle through the arrays we restore the default color.\n const colors = ['var(--onto-orange)', '', 'var(--onto-orange)'];\n const times = [400, 400, 400];\n if ($scope.highlightNextTabChange) {\n $scope.highlightNextTabChange = false;\n let index = 0;\n $(tabEvent.target).css('color', colors[index]);\n const highlightFun = function () {\n index++;\n if (index < colors.length) {\n $(tabEvent.target).css('color', colors[index]);\n tabEvent.target.timer = $timeout(highlightFun, times[index]);\n } else {\n $(tabEvent.target).css('color', '');\n }\n };\n $timeout(highlightFun, times[index]);\n }\n });\n\n $scope.$on('deleteAllexeptSelected', function (e, tabs) {\n $scope.tabsData = tabs;\n $scope.tabs = tabs;\n });\n // end of query tab operations\n\n $scope.currentQuery = {};\n // $scope.state = {};\n $scope.showSampleQueries = false;\n $scope.savedQuery = {};\n $scope.sampleQueries = {};\n $scope.editQueryModal = showModal('#editQueryContainer');\n $scope.deleteQueryModal = showModal('#confirmDeleteContainer');\n $scope.saveQueryModal = showModal('#saveQueryContainer');\n\n $scope.getResultsDescription = function () {\n let desc;\n if ($scope.currentTabConfig.resultsCount === 0) {\n desc = \"No results.\";\n } else {\n const currentPageEnd = ($scope.currentTabConfig.page - 1) * $scope.currentTabConfig.pageSize\n + Math.min($scope.currentTabConfig.resultsCount, $scope.currentTabConfig.pageSize);\n desc = $translate.instant('query.editor.showing.results.from.msg') + $filter('currency')($scope.currentTabConfig.offset, '', 0)\n + $translate.instant('query.editor.to') + $filter('currency')(currentPageEnd, '', 0);\n if ($scope.currentTabConfig.allResultsCount > 0) {\n // Unsure total results count \"of at least\" happens if counting timed out or\n // counting was disabled and we got at least $pageSize + 1 results for the current page.\n // It may reset become exact when we navigate and reach the end of results.\n desc += $translate.instant(($scope.currentTabConfig.allResultsCountExact\n ? 'query.editor.of' : 'query.editor.of.at.least'));\n desc += $filter('currency')($scope.currentTabConfig.allResultsCount, '', 0);\n }\n desc += \".\";\n }\n\n return desc;\n };\n\n $scope.getUpdateDescription = function () {\n if ($scope.currentTabConfig.customUpdateMessage) {\n return $translate.instant($scope.currentTabConfig.customUpdateMessage.msg, {name: $scope.currentTabConfig.customUpdateMessage.name});\n } else if ($scope.currentTabConfig.sizeDelta === undefined) {\n return '';\n } else if ($scope.currentTabConfig.sizeDelta < 0) {\n return $translate.instant('yasr.removed.statements.result.msg', {sizeDelta: Math.abs($scope.currentTabConfig.sizeDelta)});\n } else if ($scope.currentTabConfig.sizeDelta > 0) {\n return $translate.instant('yasr.added.statements.result.msg', {sizeDelta: $scope.currentTabConfig.sizeDelta});\n } else {\n return $translate.instant('yasr.statements.no.change.msg');\n }\n };\n\n $scope.getStaleWarningMessage = function () {\n const secondsAgo = Math.round((Date.now() - $scope.currentTabConfig.timeFinished) / 60000) * 60;\n if (secondsAgo >= 3600) { // must be at least an hour\n return $translate.instant('yasr.stale.result.msg', {secondsAgo: $scope.getHumanReadableSeconds(secondsAgo)});\n }\n };\n\n const resize = function () {\n // $scope.fixSizesOnHorizontalViewModeSwitch();\n };\n\n angular.element($window).bind('resize', resize);\n\n $scope.$on('$destroy', function () {\n angular.element($window).unbind('resize', resize);\n });\n\n /**\n * In case of Ontop repository, sameAs, inference and nocount are\n * overridden to true and #sameAs and #inference buttons are disabled, In case of FedX repo nocount is overridden\n */\n function overrideSameAsInferenceAndNoCountIfNeeded() {\n const isOntop = $repositories.isActiveRepoOntopType();\n const isFedX = $repositories.isActiveRepoFedXType();\n handleSameAsAndInferenceBtns(isOntop);\n\n $scope.nocount = (isOntop || isFedX) ? true : !principal.appSettings.EXECUTE_COUNT;\n if (isOntop) {\n $scope.currentQuery.inference = true;\n $scope.currentQuery.sameAs = true;\n }\n }\n\n function handleSameAsAndInferenceBtns(isOntop) {\n const sameAsBtn = document.getElementById('sameAs');\n const inferenceBtn = document.getElementById('inference');\n\n if (sameAsBtn) {\n sameAsBtn.disabled = !!isOntop;\n }\n\n if (inferenceBtn) {\n inferenceBtn.disabled = !!isOntop;\n }\n }\n\n // The sameAs is meaningless without inference.\n // Set its value to false and disable button\n function shouldDisableSameAs() {\n // don't try to override sameAs if repository is Ontop type\n if ($repositories.isActiveRepoOntopType()) {\n return;\n }\n const sameAsBtn = document.getElementById('sameAs');\n if (sameAsBtn && !$scope.currentQuery.inference && !sameAsBtn.disabled) {\n sameAsBtn.disabled = true;\n $scope.currentQuery.sameAs = false;\n } else if ($scope.currentQuery.inference && sameAsBtn.disabled) {\n sameAsBtn.removeAttribute('disabled');\n $scope.currentQuery.sameAs = principal.appSettings.DEFAULT_SAMEAS;\n }\n }\n}\n\nQuerySampleModalCtrl.$inject = ['$scope', '$uibModalInstance', 'data', '$sce'];\n\nfunction QuerySampleModalCtrl($scope, $uibModalInstance, data, $sce) {\n if (data.queryExists) {\n $scope.queryExists = true;\n }\n $scope.query = angular.copy(data.query);\n $scope.title = data.title;\n $scope.edit = data.edit;\n $scope.okButtonText = data.okButtonText;\n $scope.existingQueryErrMsg = $sce.trustAsHtml(data.existingQueryErrMsg);\n $scope.ok = function () {\n if ($scope.form.$valid) {\n $uibModalInstance.close($scope.query);\n }\n };\n\n $scope.cancel = function () {\n $uibModalInstance.dismiss('cancel');\n };\n}\n"],"sourceRoot":""}
|