graphdb-workbench 2.1.0-RC1 → 2.1.0-RC2
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/11.7d07164f552bc27c327e.bundle.js +1 -1
- package/dist/11.7d07164f552bc27c327e.bundle.js.map +1 -1
- package/dist/134.674fc334ea03aadba240.bundle.js +1 -1
- package/dist/134.674fc334ea03aadba240.bundle.js.map +1 -1
- package/dist/18.b39247b09bf69883801d.bundle.js +1 -1
- package/dist/18.b39247b09bf69883801d.bundle.js.map +1 -1
- package/dist/25.e39c618ca1d1636339cf.bundle.js +1 -1
- package/dist/25.e39c618ca1d1636339cf.bundle.js.map +1 -1
- package/dist/30.aa58eb05e16cb046b2bc.bundle.js +1 -1
- package/dist/30.aa58eb05e16cb046b2bc.bundle.js.map +1 -1
- package/dist/31.27bb6cb77874c106bdf3.bundle.js +1 -1
- package/dist/31.27bb6cb77874c106bdf3.bundle.js.map +1 -1
- package/dist/{5.53c0a20d56d6828fa504.bundle.js → 5.e6ebc1c858a5b922c8fb.bundle.js} +2 -2
- package/dist/5.e6ebc1c858a5b922c8fb.bundle.js.map +1 -0
- package/dist/73.86adae641bf117fce3fe.bundle.js +2 -0
- package/dist/73.86adae641bf117fce3fe.bundle.js.map +1 -0
- package/dist/75.9923d34e550b5358194c.bundle.js +2 -0
- package/dist/75.9923d34e550b5358194c.bundle.js.map +1 -0
- package/dist/77.4e84abd9b025b1812617.bundle.js +2 -0
- package/dist/77.4e84abd9b025b1812617.bundle.js.map +1 -0
- package/dist/78.b8fa389df60b30d1df18.bundle.js +2 -0
- package/dist/78.b8fa389df60b30d1df18.bundle.js.map +1 -0
- package/dist/82.5546d65e41f31a410b86.bundle.js +1 -1
- package/dist/82.5546d65e41f31a410b86.bundle.js.map +1 -1
- package/dist/{bundle.cca41098c7f6b7b6d221.bundle.js → bundle.49773f8bd1b7acd52299.bundle.js} +18 -18
- package/dist/bundle.49773f8bd1b7acd52299.bundle.js.map +1 -0
- package/dist/i18n/locale-en.json +8 -6
- package/dist/i18n/locale-fr.json +7 -6
- package/dist/index.html +3 -3
- package/dist/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html +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 +3 -3
- 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 +44 -17
- package/dist/res/swagger/index.html +27 -27
- package/package.json +1 -1
- package/dist/5.53c0a20d56d6828fa504.bundle.js.map +0 -1
- package/dist/73.cc31681a2d4d7c0fe2ba.bundle.js +0 -2
- package/dist/73.cc31681a2d4d7c0fe2ba.bundle.js.map +0 -1
- package/dist/75.f3535bf8818b4fe6d4ba.bundle.js +0 -2
- package/dist/75.f3535bf8818b4fe6d4ba.bundle.js.map +0 -1
- package/dist/77.4c80919e2b84b3b99cb9.bundle.js +0 -2
- package/dist/77.4c80919e2b84b3b99cb9.bundle.js.map +0 -1
- package/dist/78.be1f229c9fa413560a77.bundle.js +0 -2
- package/dist/78.be1f229c9fa413560a77.bundle.js.map +0 -1
- package/dist/bundle.cca41098c7f6b7b6d221.bundle.js.map +0 -1
package/dist/plugins.js
CHANGED
|
@@ -551,6 +551,9 @@ PluginRegistry.add('guide.step', [
|
|
|
551
551
|
guideBlockName: 'enable-autocomplete',
|
|
552
552
|
getSteps: (options, services) => {
|
|
553
553
|
const GuideUtils = services.GuideUtils;
|
|
554
|
+
const toastr = services.toastr;
|
|
555
|
+
const $translate = services.$translate;
|
|
556
|
+
const $interpolate = services.$interpolate;
|
|
554
557
|
options.mainAction = 'enable-autocomplete';
|
|
555
558
|
|
|
556
559
|
return [
|
|
@@ -566,14 +569,14 @@ PluginRegistry.add('guide.step', [
|
|
|
566
569
|
content: 'guide.step_plugin.enable-autocomplete.content',
|
|
567
570
|
url: '/autocomplete',
|
|
568
571
|
elementSelector: GuideUtils.getGuideElementSelector('autocompleteCheckbox'),
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
572
|
+
onNextValidate: (step) => {
|
|
573
|
+
|
|
574
|
+
if (!GuideUtils.isVisible()) {
|
|
575
|
+
GuideUtils.noNextErrorToast(toastr, $translate, $interpolate,
|
|
576
|
+
'guide.step_plugin.enable-autocomplete.error', options);
|
|
577
|
+
return false;
|
|
578
|
+
}
|
|
579
|
+
return true;
|
|
577
580
|
}
|
|
578
581
|
}, options)
|
|
579
582
|
},
|
|
@@ -582,7 +585,8 @@ PluginRegistry.add('guide.step', [
|
|
|
582
585
|
options: angular.extend({}, {
|
|
583
586
|
content: 'guide.step_plugin.enable-autocomplete.status_info.content',
|
|
584
587
|
url: '/autocomplete',
|
|
585
|
-
elementSelector: GuideUtils.getGuideElementSelector('autocompleteStatus')
|
|
588
|
+
elementSelector: GuideUtils.getGuideElementSelector('autocompleteStatus'),
|
|
589
|
+
canBePaused: false
|
|
586
590
|
}, options)
|
|
587
591
|
}
|
|
588
592
|
]
|
|
@@ -760,6 +764,7 @@ PluginRegistry.add('guide.step', [
|
|
|
760
764
|
);
|
|
761
765
|
}
|
|
762
766
|
|
|
767
|
+
const importSettingsButtonSelector = GuideUtils.getGuideElementSelector('import-settings-import-button');
|
|
763
768
|
steps.push(...[
|
|
764
769
|
{
|
|
765
770
|
guideBlockName: 'clickable-element',
|
|
@@ -792,12 +797,25 @@ PluginRegistry.add('guide.step', [
|
|
|
792
797
|
guideBlockName: 'clickable-element',
|
|
793
798
|
options: angular.extend({}, {
|
|
794
799
|
content: 'guide.step_plugin.import_rdf_file.import-settings.import.button.content',
|
|
795
|
-
elementSelector:
|
|
800
|
+
elementSelector: importSettingsButtonSelector,
|
|
796
801
|
placement: 'top',
|
|
797
|
-
onPreviousClick: (
|
|
802
|
+
onPreviousClick: () => new Promise(function (resolve) {
|
|
798
803
|
GuideUtils.clickOnGuideElement('import-settings-cancel-button')()
|
|
799
804
|
.then(() => resolve());
|
|
800
805
|
}),
|
|
806
|
+
beforeShowPromise: () => new Promise(function (resolve, reject) {
|
|
807
|
+
services.GuideUtils.deferredShow(300)()
|
|
808
|
+
.then(() => {
|
|
809
|
+
services.GuideUtils.waitFor(importSettingsButtonSelector, 3)
|
|
810
|
+
.then(() => {
|
|
811
|
+
resolve();
|
|
812
|
+
})
|
|
813
|
+
.catch((error) => {
|
|
814
|
+
services.toastr.error(services.$translate.instant('guide.unexpected.error.message'));
|
|
815
|
+
reject(error);
|
|
816
|
+
});
|
|
817
|
+
});
|
|
818
|
+
}),
|
|
801
819
|
onNextClick: () => GuideUtils.clickOnGuideElement('import-settings-import-button')(),
|
|
802
820
|
canBePaused: false
|
|
803
821
|
}, options)
|
|
@@ -808,10 +826,10 @@ PluginRegistry.add('guide.step', [
|
|
|
808
826
|
content: 'guide.step_plugin.import_status_info.content',
|
|
809
827
|
url: '/import',
|
|
810
828
|
elementSelector: GuideUtils.getGuideElementSelector('import-status-info'),
|
|
811
|
-
onPreviousClick: (
|
|
829
|
+
onPreviousClick: () => new Promise(function (resolve) {
|
|
812
830
|
GuideUtils.clickOnGuideElement('import-file-' + options.resourceFile)()
|
|
813
|
-
.then(() => resolve())
|
|
814
|
-
})
|
|
831
|
+
.then(() => resolve());
|
|
832
|
+
})
|
|
815
833
|
}, options)
|
|
816
834
|
}
|
|
817
835
|
]);
|
|
@@ -960,6 +978,7 @@ PluginRegistry.add('guide.step', [
|
|
|
960
978
|
const GuideUtils = services.GuideUtils;
|
|
961
979
|
options.mainAction = 'select-repository';
|
|
962
980
|
|
|
981
|
+
let repositoryButtonSelector = GuideUtils.getGuideElementSelector(`repository-${options.repositoryId}-button`);
|
|
963
982
|
return [{
|
|
964
983
|
guideBlockName: 'clickable-element',
|
|
965
984
|
options: angular.extend({}, {
|
|
@@ -972,8 +991,17 @@ PluginRegistry.add('guide.step', [
|
|
|
972
991
|
guideBlockName: 'clickable-element',
|
|
973
992
|
options: angular.extend({}, {
|
|
974
993
|
content: 'guide.step_plugin.select-repository.content',
|
|
975
|
-
elementSelector:
|
|
976
|
-
|
|
994
|
+
elementSelector: repositoryButtonSelector,
|
|
995
|
+
beforeShowPromise: () => new Promise(function (resolve, reject) {
|
|
996
|
+
services.GuideUtils.waitFor(repositoryButtonSelector, 1)
|
|
997
|
+
.then(() => resolve())
|
|
998
|
+
.catch((error) => {
|
|
999
|
+
services.toastr.error(services.$translate.instant('guide.unexpected.error.message'));
|
|
1000
|
+
reject(error);
|
|
1001
|
+
});
|
|
1002
|
+
}),
|
|
1003
|
+
onNextClick: (guide) => GuideUtils.clickOnGuideElement(`repository-${options.repositoryId}-button`)().then(() => guide.next()),
|
|
1004
|
+
canBePaused: false
|
|
977
1005
|
}, options)
|
|
978
1006
|
}
|
|
979
1007
|
];
|
|
@@ -1008,7 +1036,6 @@ PluginRegistry.add('guide.step', [
|
|
|
1008
1036
|
guideBlockName: 'clickable-element',
|
|
1009
1037
|
options: angular.extend({}, {
|
|
1010
1038
|
content: 'guide.step-intro.table-graph',
|
|
1011
|
-
skipPoint: true,
|
|
1012
1039
|
scrollToHandler: GuideUtils.scrollToTop,
|
|
1013
1040
|
elementSelector: GuideUtils.getSparqlResultsSelectorForIri(options.iri),
|
|
1014
1041
|
onNextClick: (guide, step) => {
|
|
@@ -3,37 +3,37 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
5
|
<title>Swagger UI</title>
|
|
6
|
-
<link rel="icon" type="image/png" href="images/favicon-32x32.png?v=2.1.0-
|
|
7
|
-
<link rel="icon" type="image/png" href="images/favicon-16x16.png?v=2.1.0-
|
|
8
|
-
<link href='../../css/common.css?v=2.1.0-
|
|
9
|
-
<link href='css/reset.css?v=2.1.0-
|
|
10
|
-
<link href='css/screen.css?v=2.1.0-
|
|
11
|
-
<link href='css/onto-theme.css?v=2.1.0-
|
|
12
|
-
<link href='css/reset.css?v=2.1.0-
|
|
13
|
-
<link href='css/print.css?v=2.1.0-
|
|
14
|
-
<link href='css/onto-theme.css?v=2.1.0-
|
|
6
|
+
<link rel="icon" type="image/png" href="images/favicon-32x32.png?v=2.1.0-RC2" sizes="32x32"/>
|
|
7
|
+
<link rel="icon" type="image/png" href="images/favicon-16x16.png?v=2.1.0-RC2" sizes="16x16"/>
|
|
8
|
+
<link href='../../css/common.css?v=2.1.0-RC2' media='screen' rel='stylesheet' type='text/css'/>
|
|
9
|
+
<link href='css/reset.css?v=2.1.0-RC2' media='screen' rel='stylesheet' type='text/css'/>
|
|
10
|
+
<link href='css/screen.css?v=2.1.0-RC2' media='screen' rel='stylesheet' type='text/css'/>
|
|
11
|
+
<link href='css/onto-theme.css?v=2.1.0-RC2' media='screen' rel='stylesheet' type='text/css'/>
|
|
12
|
+
<link href='css/reset.css?v=2.1.0-RC2' media='print' rel='stylesheet' type='text/css'/>
|
|
13
|
+
<link href='css/print.css?v=2.1.0-RC2' media='print' rel='stylesheet' type='text/css'/>
|
|
14
|
+
<link href='css/onto-theme.css?v=2.1.0-RC2' media='print' rel='stylesheet' type='text/css'/>
|
|
15
15
|
|
|
16
|
-
<script src='lib/object-assign-pollyfill.js?v=2.1.0-
|
|
17
|
-
<script src='lib/jquery-3.4.1.min.js?v=2.1.0-
|
|
18
|
-
<script src='lib/jquery.slideto.min.js?v=2.1.0-
|
|
19
|
-
<script src='lib/jquery.wiggle.min.js?v=2.1.0-
|
|
16
|
+
<script src='lib/object-assign-pollyfill.js?v=2.1.0-RC2' type='text/javascript'></script>
|
|
17
|
+
<script src='lib/jquery-3.4.1.min.js?v=2.1.0-RC2' type='text/javascript'></script>
|
|
18
|
+
<script src='lib/jquery.slideto.min.js?v=2.1.0-RC2' type='text/javascript'></script>
|
|
19
|
+
<script src='lib/jquery.wiggle.min.js?v=2.1.0-RC2' type='text/javascript'></script>
|
|
20
20
|
|
|
21
|
-
<script src="lib/jquery-migrate-1.4.1.min.js?v=2.1.0-
|
|
22
|
-
<script src='lib/jquery.ba-bbq.min.js?v=2.1.0-
|
|
23
|
-
<script src='lib/handlebars.min-v4.7.3.js?v=2.1.0-
|
|
24
|
-
<script src='lib/lodash.min.js?v=2.1.0-
|
|
25
|
-
<script src='lib/backbone-min.js?v=2.1.0-
|
|
26
|
-
<script src='swagger-ui.js?v=2.1.0-
|
|
27
|
-
<script src='lib/highlight.9.1.0.pack.js?v=2.1.0-
|
|
28
|
-
<script src='lib/highlight.9.1.0.pack_extended.js?v=2.1.0-
|
|
29
|
-
<script src='lib/jsoneditor.min.js?v=2.1.0-
|
|
30
|
-
<script src='lib/marked.js?v=2.1.0-
|
|
31
|
-
<script src='lib/swagger-oauth.js?v=2.1.0-
|
|
21
|
+
<script src="lib/jquery-migrate-1.4.1.min.js?v=2.1.0-RC2"></script>
|
|
22
|
+
<script src='lib/jquery.ba-bbq.min.js?v=2.1.0-RC2' type='text/javascript'></script>
|
|
23
|
+
<script src='lib/handlebars.min-v4.7.3.js?v=2.1.0-RC2' type='text/javascript'></script>
|
|
24
|
+
<script src='lib/lodash.min.js?v=2.1.0-RC2' type='text/javascript'></script>
|
|
25
|
+
<script src='lib/backbone-min.js?v=2.1.0-RC2' type='text/javascript'></script>
|
|
26
|
+
<script src='swagger-ui.js?v=2.1.0-RC2' type='text/javascript'></script>
|
|
27
|
+
<script src='lib/highlight.9.1.0.pack.js?v=2.1.0-RC2' type='text/javascript'></script>
|
|
28
|
+
<script src='lib/highlight.9.1.0.pack_extended.js?v=2.1.0-RC2' type='text/javascript'></script>
|
|
29
|
+
<script src='lib/jsoneditor.min.js?v=2.1.0-RC2' type='text/javascript'></script>
|
|
30
|
+
<script src='lib/marked.js?v=2.1.0-RC2' type='text/javascript'></script>
|
|
31
|
+
<script src='lib/swagger-oauth.js?v=2.1.0-RC2' type='text/javascript'></script>
|
|
32
32
|
|
|
33
33
|
<!-- Some basic translations -->
|
|
34
|
-
<!-- <script src='lang/translator.js?v=2.1.0-
|
|
35
|
-
<!-- <script src='lang/ru.js?v=2.1.0-
|
|
36
|
-
<!-- <script src='lang/en.js?v=2.1.0-
|
|
34
|
+
<!-- <script src='lang/translator.js?v=2.1.0-RC2' type='text/javascript'></script> -->
|
|
35
|
+
<!-- <script src='lang/ru.js?v=2.1.0-RC2' type='text/javascript'></script> -->
|
|
36
|
+
<!-- <script src='lang/en.js?v=2.1.0-RC2' type='text/javascript'></script> -->
|
|
37
37
|
|
|
38
38
|
<script type="text/javascript">
|
|
39
39
|
$(function () {
|
package/package.json
CHANGED
|
@@ -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","$modal","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","$modalInstance","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","member","element","find","focus","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","catch","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.53c0a20d56d6828fa504.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', '$modal', 'toastr', '$repositories', 'ModalService', '$jwtAuth', 'LocationsRestService',\n 'LocalStorageAdapter', '$interval', '$translate', '$q', 'GuidesService'];\n\nfunction LocationsAndRepositoriesCtrl($scope, $rootScope, $modal, 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 $modal.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 = $modal.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).finally(() => {\n getLocations();\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 = $modal.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 $modal.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', '$modalInstance', 'Upload', 'toastr', '$translate'];\n\nfunction UploadRepositoryConfigCtrl($scope, $modalInstance, 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 $modalInstance.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 $modalInstance.dismiss('cancel');\n };\n}\n\nAddLocationCtrl.$inject = ['$scope', '$modalInstance', 'toastr', 'productInfo', '$translate'];\n\nfunction AddLocationCtrl($scope, $modalInstance, 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 $modalInstance.close($scope.newLocation);\n };\n\n $scope.cancel = function () {\n $modalInstance.dismiss('cancel');\n };\n}\n\nEditLocationCtrl.$inject = ['$scope', '$modalInstance', 'location', 'productInfo'];\n\nfunction EditLocationCtrl($scope, $modalInstance, location, productInfo) {\n\n $scope.editedLocation = angular.copy(location);\n $scope.docBase = getDocBase(productInfo);\n\n $scope.ok = function () {\n $modalInstance.close($scope.editedLocation);\n };\n\n $scope.cancel = function () {\n $modalInstance.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).success(function (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 }).error(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 $repositories.init().finally(() => $scope.goBackToPreviousLocation());\n })\n .catch(function (error) {\n const msg = getError(error.data);\n toastr.error(msg, $translate.instant('common.error'));\n })\n .finally(() => $scope.loader = false);\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', '$modalInstance', 'RepositoriesRestService', 'file', 'toastr', '$translate'];\n\nfunction EditRepositoryFileCtrl($scope, $modalInstance, 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 $modalInstance.close({\n content: $scope.fileContent,\n fileLocation: file\n });\n };\n\n $scope.cancel = function () {\n $modalInstance.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.id);\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([[73],{114:function(e,t){PluginRegistry.add("guide.step",[{guideBlockName:"enable-autocomplete",getSteps:(e,t)=>{const o=t.GuideUtils;return e.mainAction="enable-autocomplete",[{guideBlockName:"click-main-menu",options:angular.extend({},{menu:"autocomplete",showIntro:!0},e)},{guideBlockName:"clickable-element",options:angular.extend({},{content:"guide.step_plugin.enable-autocomplete.content",url:"/autocomplete",elementSelector:o.getGuideElementSelector("autocompleteCheckbox"),onNextClick:e=>{o.waitFor(o.getGuideElementSelector("autocompleteCheckbox"," input"),3,!1).then(e=>{e.is(":checked")||o.clickOnGuideElement("autocompleteCheckbox")()}),e.next()}},e)},{guideBlockName:"read-only-element",options:angular.extend({},{content:"guide.step_plugin.enable-autocomplete.status_info.content",url:"/autocomplete",elementSelector:o.getGuideElementSelector("autocompleteStatus")},e)}]}}])}}]);
|
|
2
|
-
//# sourceMappingURL=73.cc31681a2d4d7c0fe2ba.bundle.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///./src/js/angular/guides/steps/complex/enable-autocomplete/plugin.js"],"names":["PluginRegistry","add","guideBlockName","getSteps","options","services","GuideUtils","mainAction","angular","extend","menu","showIntro","content","url","elementSelector","getGuideElementSelector","onNextClick","guide","waitFor","then","autocompleteCheckbox","is","clickOnGuideElement","next"],"mappings":"4EAAAA,eAAeC,IAAI,aAAc,CAC7B,CACIC,eAAgB,sBAChBC,SAAU,CAACC,EAASC,KAChB,MAAMC,EAAaD,EAASC,WAG5B,OAFAF,EAAQG,WAAa,sBAEd,CACH,CACIL,eAAgB,kBAChBE,QAASI,QAAQC,OAAO,GAAI,CACxBC,KAAM,eACNC,WAAW,GACZP,IACJ,CACHF,eAAgB,oBAChBE,QAASI,QAAQC,OAAO,GAAI,CACxBG,QAAS,gDACTC,IAAK,gBACLC,gBAAiBR,EAAWS,wBAAwB,wBACpDC,YAAcC,IACVX,EAAWY,QAAQZ,EAAWS,wBAAwB,uBAAwB,UAAW,GAAG,GACvFI,KAAKC,IACGA,EAAqBC,GAAG,aACzBf,EAAWgB,oBAAoB,uBAA/BhB,KAGZW,EAAMM,SAEXnB,IAEH,CACIF,eAAgB,oBAChBE,QAASI,QAAQC,OAAO,GAAI,CACxBG,QAAS,4DACTC,IAAK,gBACLC,gBAAiBR,EAAWS,wBAAwB,uBACrDX","file":"73.cc31681a2d4d7c0fe2ba.bundle.js","sourcesContent":["PluginRegistry.add('guide.step', [\n {\n guideBlockName: 'enable-autocomplete',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n options.mainAction = 'enable-autocomplete';\n\n return [\n {\n guideBlockName: 'click-main-menu',\n options: angular.extend({}, {\n menu: 'autocomplete',\n showIntro: true\n }, options)\n }, {\n guideBlockName: 'clickable-element',\n options: angular.extend({}, {\n content: 'guide.step_plugin.enable-autocomplete.content',\n url: '/autocomplete',\n elementSelector: GuideUtils.getGuideElementSelector('autocompleteCheckbox'),\n onNextClick: (guide) => {\n GuideUtils.waitFor(GuideUtils.getGuideElementSelector('autocompleteCheckbox', ' input'), 3, false)\n .then(autocompleteCheckbox => {\n if (!autocompleteCheckbox.is(':checked')) {\n GuideUtils.clickOnGuideElement('autocompleteCheckbox')();\n }\n });\n guide.next();\n }\n }, options)\n },\n {\n guideBlockName: 'read-only-element',\n options: angular.extend({}, {\n content: 'guide.step_plugin.enable-autocomplete.status_info.content',\n url: '/autocomplete',\n elementSelector: GuideUtils.getGuideElementSelector('autocompleteStatus')\n }, options)\n }\n ]\n }\n }\n]);\n"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[75],{116:function(e,t){PluginRegistry.add("guide.step",[{guideBlockName:"import-rdf-file",getSteps:(e,t)=>{const i=t.GuideUtils,n=t.toastr,o=t.$translate,l=t.$interpolate;e.mainAction="import-file";const r=[{guideBlockName:"click-main-menu",options:angular.extend({},{menu:"import",showIntro:!0},e)}];return e.resourcePath&&r.push({guideBlockName:"download-guide-resource",options:angular.extend({},{title:""},e)}),r.push({guideBlockName:"clickable-element",options:angular.extend({},{content:"guide.step_plugin.import_rdf_file.content",url:"/import",elementSelector:i.getGuideElementSelector("uploadRdfFileButton"),onNextValidate:()=>!!$(i.getGuideElementSelector("import-file-"+e.resourceFile)).length||(i.noNextErrorToast(n,o,l,"guide.step_plugin.import_rdf_file.file-must-be-uploaded",e),!1)},e)},{guideBlockName:"clickable-element",options:angular.extend({},{content:"guide.step_plugin.import_rdf_file.import-file.button.content",elementSelector:i.getGuideElementSelector("import-file-"+e.resourceFile),url:"/import",placement:"left",onNextClick:()=>i.clickOnGuideElement("import-file-"+e.resourceFile)()},e)},{guideBlockName:"clickable-element",options:angular.extend({},{content:"guide.step_plugin.import_rdf_file.import-settings.import.button.content",elementSelector:i.getGuideElementSelector("import-settings-import-button"),placement:"top",onPreviousClick:e=>new Promise((function(e){i.clickOnGuideElement("import-settings-cancel-button")().then(()=>e())})),onNextClick:()=>i.clickOnGuideElement("import-settings-import-button")(),canBePaused:!1},e)},{guideBlockName:"read-only-element",options:angular.extend({},{content:"guide.step_plugin.import_status_info.content",url:"/import",elementSelector:i.getGuideElementSelector("import-status-info"),onPreviousClick:t=>new Promise((function(t){i.clickOnGuideElement("import-file-"+e.resourceFile)().then(()=>t())}))},e)}),r}}])}}]);
|
|
2
|
-
//# sourceMappingURL=75.f3535bf8818b4fe6d4ba.bundle.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///./src/js/angular/guides/steps/complex/import-rdf-file/plugin.js"],"names":["PluginRegistry","add","guideBlockName","getSteps","options","services","GuideUtils","toastr","$translate","$interpolate","mainAction","steps","angular","extend","menu","showIntro","resourcePath","push","title","content","url","elementSelector","getGuideElementSelector","onNextValidate","$","resourceFile","length","noNextErrorToast","placement","onNextClick","clickOnGuideElement","onPreviousClick","guide","Promise","resolve","then","canBePaused"],"mappings":"4EAAAA,eAAeC,IAAI,aAAc,CAC7B,CACIC,eAAgB,kBAChBC,SAAU,CAACC,EAASC,KAChB,MAAMC,EAAaD,EAASC,WACtBC,EAASF,EAASE,OAClBC,EAAaH,EAASG,WACtBC,EAAeJ,EAASI,aAC9BL,EAAQM,WAAa,cAErB,MAAMC,EAAQ,CACV,CACIT,eAAgB,kBAChBE,QAASQ,QAAQC,OAAO,GAAI,CACxBC,KAAM,SACNC,WAAW,GACZX,KAuEX,OAnEIA,EAAQY,cACRL,EAAMM,KACF,CACIf,eAAgB,0BAChBE,QAASQ,QAAQC,OAAO,GAAI,CACxBK,MAAO,IACRd,KAKfO,EAAMM,KACF,CACIf,eAAgB,oBAChBE,QAASQ,QAAQC,OAAO,GAAI,CACxBM,QAAS,4CACTC,IAAK,UACLC,gBAAiBf,EAAWgB,wBAAwB,uBACpDC,eAAgB,MACPC,EAAElB,EAAWgB,wBAAwB,eAAiBlB,EAAQqB,eAAeC,SAC9EpB,EAAWqB,iBAAiBpB,EAAQC,EAAYC,EAC5C,0DAA2DL,IACxD,IAKhBA,IAEP,CACIF,eAAgB,oBAChBE,QAASQ,QAAQC,OAAO,GAAI,CACxBM,QAAS,+DACTE,gBAAiBf,EAAWgB,wBAAwB,eAAiBlB,EAAQqB,cAC7EL,IAAK,UACLQ,UAAW,OACXC,YAAa,IAAMvB,EAAWwB,oBAAoB,eAAiB1B,EAAQqB,aAAxDnB,IACpBF,IAEP,CACIF,eAAgB,oBAChBE,QAASQ,QAAQC,OAAO,GAAI,CACxBM,QAAS,0EACTE,gBAAiBf,EAAWgB,wBAAwB,iCACpDM,UAAW,MACXG,gBAAkBC,GAAU,IAAIC,SAAQ,SAAUC,GAC9C5B,EAAWwB,oBAAoB,gCAA/BxB,GACK6B,KAAK,IAAMD,QAEpBL,YAAa,IAAMvB,EAAWwB,oBAAoB,gCAA/BxB,GACnB8B,aAAa,GACdhC,IAEP,CACIF,eAAgB,oBAChBE,QAASQ,QAAQC,OAAO,GAAI,CACxBM,QAAS,+CACTC,IAAK,UACLC,gBAAiBf,EAAWgB,wBAAwB,sBACpDS,gBAAkBC,GAAU,IAAIC,SAAQ,SAAUC,GAC9C5B,EAAWwB,oBAAoB,eAAiB1B,EAAQqB,aAAxDnB,GACK6B,KAAK,IAAMD,SAErB9B,KAIJO","file":"75.f3535bf8818b4fe6d4ba.bundle.js","sourcesContent":["PluginRegistry.add('guide.step', [\n {\n guideBlockName: 'import-rdf-file',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n const toastr = services.toastr;\n const $translate = services.$translate;\n const $interpolate = services.$interpolate;\n options.mainAction = 'import-file';\n\n const steps = [\n {\n guideBlockName: 'click-main-menu',\n options: angular.extend({}, {\n menu: 'import',\n showIntro: true\n }, options)\n }\n ];\n\n if (options.resourcePath) {\n steps.push(\n {\n guideBlockName: 'download-guide-resource',\n options: angular.extend({}, {\n title: ''\n }, options)\n }\n );\n }\n\n steps.push(...[\n {\n guideBlockName: 'clickable-element',\n options: angular.extend({}, {\n content: 'guide.step_plugin.import_rdf_file.content',\n url: '/import',\n elementSelector: GuideUtils.getGuideElementSelector('uploadRdfFileButton'),\n onNextValidate: () => {\n if (!$(GuideUtils.getGuideElementSelector('import-file-' + options.resourceFile)).length) {\n GuideUtils.noNextErrorToast(toastr, $translate, $interpolate,\n 'guide.step_plugin.import_rdf_file.file-must-be-uploaded', options);\n return false;\n } else {\n return true;\n }\n }\n }, options)\n },\n {\n guideBlockName: 'clickable-element',\n options: angular.extend({}, {\n content: 'guide.step_plugin.import_rdf_file.import-file.button.content',\n elementSelector: GuideUtils.getGuideElementSelector('import-file-' + options.resourceFile),\n url: '/import',\n placement: 'left',\n onNextClick: () => GuideUtils.clickOnGuideElement('import-file-' + options.resourceFile)()\n }, options)\n },\n {\n guideBlockName: 'clickable-element',\n options: angular.extend({}, {\n content: 'guide.step_plugin.import_rdf_file.import-settings.import.button.content',\n elementSelector: GuideUtils.getGuideElementSelector('import-settings-import-button'),\n placement: 'top',\n onPreviousClick: (guide) => new Promise(function (resolve) {\n GuideUtils.clickOnGuideElement('import-settings-cancel-button')()\n .then(() => resolve());\n }),\n onNextClick: () => GuideUtils.clickOnGuideElement('import-settings-import-button')(),\n canBePaused: false\n }, options)\n },\n {\n guideBlockName: 'read-only-element',\n options: angular.extend({}, {\n content: 'guide.step_plugin.import_status_info.content',\n url: '/import',\n elementSelector: GuideUtils.getGuideElementSelector('import-status-info'),\n onPreviousClick: (guide) => new Promise(function (resolve) {\n GuideUtils.clickOnGuideElement('import-file-' + options.resourceFile)()\n .then(() => resolve())\n }),\n }, options)\n }\n ]);\n\n return steps;\n }\n }\n]);\n"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[77],{118:function(e,t){PluginRegistry.add("guide.step",[{guideBlockName:"select-repository-dropdown",getSteps:(e,t)=>{const o=t.GuideUtils;return e.mainAction="select-repository",[{guideBlockName:"clickable-element",options:angular.extend({},{skipPoint:!0,content:"guide.step_plugin.choose-repository.content",elementSelector:o.getGuideElementSelector("repositoriesGroupButton"),onNextClick:e=>o.clickOnGuideElement("repositoriesGroupButton")().then(()=>e.next())},e)},{guideBlockName:"clickable-element",options:angular.extend({},{content:"guide.step_plugin.select-repository.content",elementSelector:o.getGuideElementSelector(`repository-${e.repositoryId}-button`),onNextClick:t=>o.clickOnGuideElement(`repository-${e.repositoryId}-button`)().then(()=>t.next())},e)}]}},{guideBlockName:"select-repository-plug",getSteps:(e,t)=>{const o=t.GuideUtils;return[{guideBlockName:"clickable-element",options:angular.extend({},{content:"guide.step_plugin.select-repository-plug.content",elementSelector:o.getGuideElementSelector(`repository-${e.repositoryId}-plug`),onNextClick:o.getGuideElementSelector(`repository-${e.repositoryId}-plug`)},e)}]}}])}}]);
|
|
2
|
-
//# sourceMappingURL=77.4c80919e2b84b3b99cb9.bundle.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///./src/js/angular/guides/steps/complex/select-repository/plugin.js"],"names":["PluginRegistry","add","guideBlockName","getSteps","options","services","GuideUtils","mainAction","angular","extend","skipPoint","content","elementSelector","getGuideElementSelector","onNextClick","guide","clickOnGuideElement","then","next","repositoryId"],"mappings":"4EAAAA,eAAeC,IAAI,aAAc,CAC7B,CACIC,eAAgB,6BAChBC,SAAU,CAACC,EAASC,KAChB,MAAMC,EAAaD,EAASC,WAG5B,OAFAF,EAAQG,WAAa,oBAEd,CAAC,CACJL,eAAgB,oBAChBE,QAASI,QAAQC,OAAO,GAAI,CACxBC,WAAW,EACXC,QAAS,8CACTC,gBAAiBN,EAAWO,wBAAwB,2BACpDC,YAAcC,GAAUT,EAAWU,oBAAoB,0BAA/BV,GAA4DW,KAAK,IAAMF,EAAMG,SACtGd,IACJ,CACCF,eAAgB,oBAChBE,QAASI,QAAQC,OAAO,GAAI,CACxBE,QAAS,8CACTC,gBAAiBN,EAAWO,wBAAwB,cAAcT,EAAQe,uBAC1EL,YAAcC,GAAUT,EAAWU,oBAAoB,cAAcZ,EAAQe,sBAArDb,GAA8EW,KAAK,IAAMF,EAAMG,SACxHd,OAKf,CACIF,eAAgB,yBAChBC,SAAU,CAACC,EAASC,KAChB,MAAMC,EAAaD,EAASC,WAC5B,MAAO,CAAC,CACJJ,eAAgB,oBAChBE,QAASI,QAAQC,OAAO,GAAI,CACxBE,QAAS,mDACTC,gBAAiBN,EAAWO,wBAAwB,cAAcT,EAAQe,qBAC1EL,YAAaR,EAAWO,wBAAwB,cAAcT,EAAQe,sBACvEf","file":"77.4c80919e2b84b3b99cb9.bundle.js","sourcesContent":["PluginRegistry.add('guide.step', [\n {\n guideBlockName: 'select-repository-dropdown',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n options.mainAction = 'select-repository';\n\n return [{\n guideBlockName: 'clickable-element',\n options: angular.extend({}, {\n skipPoint: true,\n content: 'guide.step_plugin.choose-repository.content',\n elementSelector: GuideUtils.getGuideElementSelector('repositoriesGroupButton'),\n onNextClick: (guide) => GuideUtils.clickOnGuideElement('repositoriesGroupButton')().then(() => guide.next())\n }, options)\n }, {\n guideBlockName: 'clickable-element',\n options: angular.extend({}, {\n content: 'guide.step_plugin.select-repository.content',\n elementSelector: GuideUtils.getGuideElementSelector(`repository-${options.repositoryId}-button`),\n onNextClick: (guide) => GuideUtils.clickOnGuideElement(`repository-${options.repositoryId}-button`)().then(() => guide.next())\n }, options)\n }\n ];\n }\n },\n {\n guideBlockName: 'select-repository-plug',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n return [{\n guideBlockName: 'clickable-element',\n options: angular.extend({}, {\n content: 'guide.step_plugin.select-repository-plug.content',\n elementSelector: GuideUtils.getGuideElementSelector(`repository-${options.repositoryId}-plug`),\n onNextClick: GuideUtils.getGuideElementSelector(`repository-${options.repositoryId}-plug`)\n }, options)\n }\n ];\n }\n }\n]);\n"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[78],{119:function(e,t){PluginRegistry.add("guide.step",[{guideBlockName:"table-graph-explore",getSteps:(e,t)=>{const l=t.GuideUtils;e.mainAction="table-graph";const n=[{guideBlockName:"clickable-element",options:angular.extend({},{content:"guide.step-intro.table-graph",skipPoint:!0,scrollToHandler:l.scrollToTop,elementSelector:l.getSparqlResultsSelectorForIri(e.iri),onNextClick:(e,t)=>{l.waitFor(t.elementSelector,3).then(()=>$(t.elementSelector).trigger("click")).then(()=>e.next())}},e)},{guideBlockName:"read-only-element",options:angular.extend({},{content:"guide.step_plugin.table-graph-overview",scrollToHandler:l.scrollToTop,elementSelector:l.getSparqlResultsSelector(),placement:"top"},e)}];return angular.isArray(e.subSteps)&&e.subSteps.forEach(t=>{"link"===t.type?n.push({guideBlockName:"clickable-element",options:angular.extend({},{content:"guide.step_plugin.table-graph-link",elementSelector:l.getSparqlResultsSelectorForIri(t.iri),onNextClick:(e,t)=>{l.waitFor(t.elementSelector,3).then(()=>$(t.elementSelector).trigger("click")).then(()=>e.next())}},angular.extend({},e,t))}):"role"===t.type?n.push({guideBlockName:"clickable-element",options:angular.extend({},{content:"guide.step_plugin.table-graph-role",elementSelector:l.getGuideElementSelector("role-"+t.role),onNextClick:(e,t)=>{l.waitFor(t.elementSelector,3).then(()=>$(t.elementSelector).trigger("click")).then(()=>e.next())}},angular.extend({},e,t))}):"visual"===t.type?(n.push({guideBlockName:"clickable-element",options:angular.extend({},{content:"guide.step_plugin.table-graph-visual",elementSelector:l.getGuideElementSelector("explore-visual"),onNextClick:(e,t)=>{l.waitFor(t.elementSelector,3).then(()=>$(t.elementSelector).trigger("click"))}},angular.extend({},e,t))}),n.push({guideBlockName:"read-only-element",options:angular.extend({},{content:"guide.step_plugin.visual_graph_intro.content",extraContent:t.extraContentVisualIntro,url:"/graphs-visualizations",elementSelector:".graph-visualization",placement:"left",canBePaused:!1,forceReload:!0,onNextClick:(e,t)=>{window.history.back(),e.next()}},angular.extend({},e,t))})):"row"===t.type?n.push({guideBlockName:"read-only-element",options:angular.extend({},{elementSelector:l.getSparqlResultsSelectorForRow(t.row)},angular.extend({},e,t))}):"table"===t.type&&n.push({guideBlockName:"read-only-element",options:angular.extend({},{elementSelector:l.getSparqlResultsSelector()},angular.extend({},e,t))})}),n}}])}}]);
|
|
2
|
-
//# sourceMappingURL=78.be1f229c9fa413560a77.bundle.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///./src/js/angular/guides/steps/complex/table-graph/plugin.js"],"names":["PluginRegistry","add","guideBlockName","getSteps","options","services","GuideUtils","mainAction","steps","angular","extend","content","skipPoint","scrollToHandler","scrollToTop","elementSelector","getSparqlResultsSelectorForIri","iri","onNextClick","guide","step","waitFor","then","$","trigger","next","getSparqlResultsSelector","placement","isArray","subSteps","forEach","subStep","type","push","getGuideElementSelector","role","extraContent","extraContentVisualIntro","url","canBePaused","forceReload","window","history","back","getSparqlResultsSelectorForRow","row"],"mappings":"4EAAAA,eAAeC,IAAI,aAAc,CAC7B,CACIC,eAAgB,sBAChBC,SAAU,CAACC,EAASC,KAChB,MAAMC,EAAaD,EAASC,WAC5BF,EAAQG,WAAa,cAErB,MAAMC,EAAQ,CACV,CACIN,eAAgB,oBAChBE,QAASK,QAAQC,OAAO,GAAI,CACxBC,QAAS,+BACTC,WAAW,EACXC,gBAAiBP,EAAWQ,YAC5BC,gBAAiBT,EAAWU,+BAA+BZ,EAAQa,KACnEC,YAAa,CAACC,EAAOC,KACjBd,EAAWe,QAAQD,EAAKL,gBAAiB,GACpCO,KAAK,IAAMC,EAAEH,EAAKL,iBAAiBS,QAAQ,UAC3CF,KAAK,IAAMH,EAAMM,UAE3BrB,IACJ,CACCF,eAAgB,oBAChBE,QAASK,QAAQC,OAAO,GAAI,CACxBC,QAAS,yCACTE,gBAAiBP,EAAWQ,YAC5BC,gBAAiBT,EAAWoB,2BAC5BC,UAAW,OACZvB,KA8EX,OA1EIK,QAAQmB,QAAQxB,EAAQyB,WACxBzB,EAAQyB,SAASC,QAASC,IACD,SAAjBA,EAAQC,KACRxB,EAAMyB,KAAK,CACP/B,eAAgB,oBAChBE,QAASK,QAAQC,OAAO,GAAI,CACxBC,QAAS,qCACTI,gBAAiBT,EAAWU,+BAA+Be,EAAQd,KACnEC,YAAa,CAACC,EAAOC,KACjBd,EAAWe,QAAQD,EAAKL,gBAAiB,GACpCO,KAAK,IAAMC,EAAEH,EAAKL,iBAAiBS,QAAQ,UAC3CF,KAAK,IAAMH,EAAMM,UAE3BhB,QAAQC,OAAO,GAAIN,EAAS2B,MAEX,SAAjBA,EAAQC,KACfxB,EAAMyB,KAAK,CACP/B,eAAgB,oBAChBE,QAASK,QAAQC,OAAO,GAAI,CACxBC,QAAS,qCACTI,gBAAiBT,EAAW4B,wBAAwB,QAAUH,EAAQI,MACtEjB,YAAa,CAACC,EAAOC,KACjBd,EAAWe,QAAQD,EAAKL,gBAAiB,GACpCO,KAAK,IAAMC,EAAEH,EAAKL,iBAAiBS,QAAQ,UAC3CF,KAAK,IAAMH,EAAMM,UAE3BhB,QAAQC,OAAO,GAAIN,EAAS2B,MAEX,WAAjBA,EAAQC,MACfxB,EAAMyB,KAAK,CACP/B,eAAgB,oBAChBE,QAASK,QAAQC,OAAO,GAAI,CACxBC,QAAS,uCACTI,gBAAiBT,EAAW4B,wBAAwB,kBACpDhB,YAAa,CAACC,EAAOC,KACjBd,EAAWe,QAAQD,EAAKL,gBAAiB,GACpCO,KAAK,IAAMC,EAAEH,EAAKL,iBAAiBS,QAAQ,YAErDf,QAAQC,OAAO,GAAIN,EAAS2B,MAEnCvB,EAAMyB,KAAK,CACP/B,eAAgB,oBAChBE,QAASK,QAAQC,OAAO,GAAI,CACxBC,QAAS,+CACTyB,aAAcL,EAAQM,wBACtBC,IAAK,yBACLvB,gBAAiB,uBACjBY,UAAW,OACXY,aAAa,EACbC,aAAa,EACbtB,YAAa,CAACC,EAAOC,KACjBqB,OAAOC,QAAQC,OACfxB,EAAMM,SAEXhB,QAAQC,OAAO,GAAIN,EAAS2B,OAEX,QAAjBA,EAAQC,KACfxB,EAAMyB,KAAK,CACP/B,eAAgB,oBAChBE,QAASK,QAAQC,OAAO,GAAI,CACxBK,gBAAiBT,EAAWsC,+BAA+Bb,EAAQc,MACpEpC,QAAQC,OAAO,GAAIN,EAAS2B,MAEX,UAAjBA,EAAQC,MACfxB,EAAMyB,KAAK,CACP/B,eAAgB,oBAChBE,QAASK,QAAQC,OAAO,GAAI,CACxBK,gBAAiBT,EAAWoB,4BAC7BjB,QAAQC,OAAO,GAAIN,EAAS2B,QAMxCvB","file":"78.be1f229c9fa413560a77.bundle.js","sourcesContent":["PluginRegistry.add('guide.step', [\n {\n guideBlockName: 'table-graph-explore',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n options.mainAction = 'table-graph';\n\n const steps = [\n {\n guideBlockName: 'clickable-element',\n options: angular.extend({}, {\n content: 'guide.step-intro.table-graph',\n skipPoint: true,\n scrollToHandler: GuideUtils.scrollToTop,\n elementSelector: GuideUtils.getSparqlResultsSelectorForIri(options.iri),\n onNextClick: (guide, step) => {\n GuideUtils.waitFor(step.elementSelector, 3)\n .then(() => $(step.elementSelector).trigger('click'))\n .then(() => guide.next());\n }\n }, options)\n }, {\n guideBlockName: 'read-only-element',\n options: angular.extend({}, {\n content: 'guide.step_plugin.table-graph-overview',\n scrollToHandler: GuideUtils.scrollToTop,\n elementSelector: GuideUtils.getSparqlResultsSelector(),\n placement: 'top'\n }, options)\n }\n ];\n\n if (angular.isArray(options.subSteps)) {\n options.subSteps.forEach((subStep) => {\n if (subStep.type === 'link') {\n steps.push({\n guideBlockName: 'clickable-element',\n options: angular.extend({}, {\n content: 'guide.step_plugin.table-graph-link',\n elementSelector: GuideUtils.getSparqlResultsSelectorForIri(subStep.iri),\n onNextClick: (guide, step) => {\n GuideUtils.waitFor(step.elementSelector, 3)\n .then(() => $(step.elementSelector).trigger('click'))\n .then(() => guide.next());\n }\n }, angular.extend({}, options, subStep))\n });\n } else if (subStep.type === 'role') {\n steps.push({\n guideBlockName: 'clickable-element',\n options: angular.extend({}, {\n content: 'guide.step_plugin.table-graph-role',\n elementSelector: GuideUtils.getGuideElementSelector('role-' + subStep.role),\n onNextClick: (guide, step) => {\n GuideUtils.waitFor(step.elementSelector, 3)\n .then(() => $(step.elementSelector).trigger('click'))\n .then(() => guide.next());\n }\n }, angular.extend({}, options, subStep))\n });\n } else if (subStep.type === 'visual') {\n steps.push({\n guideBlockName: 'clickable-element',\n options: angular.extend({}, {\n content: 'guide.step_plugin.table-graph-visual',\n elementSelector: GuideUtils.getGuideElementSelector('explore-visual'),\n onNextClick: (guide, step) => {\n GuideUtils.waitFor(step.elementSelector, 3)\n .then(() => $(step.elementSelector).trigger('click'));\n }\n }, angular.extend({}, options, subStep))\n });\n steps.push({\n guideBlockName: 'read-only-element',\n options: angular.extend({}, {\n content: 'guide.step_plugin.visual_graph_intro.content',\n extraContent: subStep.extraContentVisualIntro,\n url: '/graphs-visualizations',\n elementSelector: '.graph-visualization',\n placement: 'left',\n canBePaused: false,\n forceReload: true,\n onNextClick: (guide, step) => {\n window.history.back();\n guide.next();\n }\n }, angular.extend({}, options, subStep))\n });\n } else if (subStep.type === 'row') {\n steps.push({\n guideBlockName: 'read-only-element',\n options: angular.extend({}, {\n elementSelector: GuideUtils.getSparqlResultsSelectorForRow(subStep.row)\n }, angular.extend({}, options, subStep))\n });\n } else if (subStep.type === 'table') {\n steps.push({\n guideBlockName: 'read-only-element',\n options: angular.extend({}, {\n elementSelector: GuideUtils.getSparqlResultsSelector()\n }, angular.extend({}, options, subStep))\n });\n }\n });\n }\n\n return steps;\n }\n }\n]);\n"],"sourceRoot":""}
|