graphdb-workbench 2.8.6-release → 2.8.8-TR1
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.e4f092fe2c6dd778826e.bundle.js +25 -0
- package/dist/{14.eb295a7dbdef17e720e6.bundle.js → 14.345e027a365e41418f3b.bundle.js} +1 -1
- package/dist/186.d2a7c6668b2f2198549a.bundle.js +1 -1
- package/dist/2.6684bcc4e367bcb9e628.bundle.js +2 -0
- package/dist/23.56301f1a97cc94310f2d.bundle.js +3 -0
- package/dist/337.014fd388adffc114eb88.bundle.js +1 -0
- package/dist/348.b09b5350639beca8034e.bundle.js +1 -1
- package/dist/354.474aa50f195477e48af9.bundle.js +1 -1
- package/dist/357.603fceaaeb0992019407.bundle.js +1 -1
- package/dist/358.5398b6635b1fc42b581a.bundle.js +1 -1
- package/dist/359.a2f8d884c46015ae98ed.bundle.js +1 -1
- package/dist/360.40b2c9f3610b0f8dea80.bundle.js +1 -1
- package/dist/361.91ac80c8c5586b0546a5.bundle.js +1 -1
- package/dist/391.45bf699afe7aba531cd9.bundle.js +1 -1
- package/dist/403.61a61ce1c12385533859.bundle.js +1 -1
- package/dist/404.b53dc0ad0aaedcf3f809.bundle.js +1 -1
- package/dist/405.eb8906e00f241da08275.bundle.js +1 -1
- package/dist/406.48298a2b9c49b99170f8.bundle.js +1 -1
- package/dist/407.56a20539c08f5d616640.bundle.js +1 -1
- package/dist/409.72d548b44e2f1c414a24.bundle.js +1 -1
- package/dist/41.8a09e7ba27f7614de053.bundle.js +1 -0
- package/dist/410.df9406357dc52e98d0c4.bundle.js +1 -1
- package/dist/411.3a8907f7c02b1e9581e2.bundle.js +1 -1
- package/dist/412.5feece7f4c5164d2eadb.bundle.js +1 -1
- package/dist/42.68cf9fea9586d95c7ef2.bundle.js +1 -0
- package/dist/43.53bafbaf1332f99c7e74.bundle.js +1 -1
- package/dist/61.f553a4c10a25b9af3cd7.bundle.js +1 -1
- package/dist/72.6f58ccfef39ec2ee9614.bundle.js +1 -1
- package/dist/{bundle.afb4910dc79ab08390d2.bundle.js → bundle.66ea1d16e0fa220667a8.bundle.js} +3 -3
- package/dist/index.html +3 -3
- package/dist/js/angular/core/directives/autocomplete/templates/autocomplete.html +1 -1
- package/dist/js/angular/core/directives/operations-statuses-monitor/templates/operations-statuses-monitor.html +1 -1
- package/dist/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html +1 -1
- package/dist/js/angular/core/directives/yasgui-component/templates/yasgui-component.html +1 -1
- package/dist/js/angular/core/templates/cookie-policy/cookie-consent.html +1 -1
- package/dist/js/angular/core/templates/cookie-policy/cookie-policy.html +1 -1
- package/dist/js/angular/security/templates/user.html +1 -1
- package/dist/js/angular/ttyg/templates/agent-list.html +1 -1
- package/dist/js/angular/ttyg/templates/agent-select-menu.html +1 -1
- package/dist/js/angular/ttyg/templates/chat-item-detail.html +1 -1
- package/dist/js/angular/ttyg/templates/chat-list.html +1 -1
- package/dist/js/angular/ttyg/templates/chat-panel.html +1 -1
- package/dist/js/angular/ttyg/templates/modal/agent-instructions-explain-modal.html +1 -1
- package/dist/js/angular/ttyg/templates/modal/agent-settings-modal.html +1 -1
- package/dist/js/angular/ttyg/templates/no-agents-view.html +1 -1
- package/dist/js/angular/ttyg/templates/ttyg.html +1 -1
- package/dist/license-checker.json +18 -18
- package/dist/pages/aclmanagement.html +2 -2
- 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 +1 -1
- 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 +8 -8
- package/dist/pages/graphs-visualizations.html +7 -7
- package/dist/pages/guides.html +1 -1
- package/dist/pages/import.html +2 -2
- package/dist/pages/jdbc-create.html +1 -1
- package/dist/pages/monitor/backup-and-restore.html +1 -1
- package/dist/pages/monitor/queries.html +1 -1
- package/dist/pages/monitor/resources.html +1 -1
- 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 +1 -1
- package/dist/pages/repository.html +1 -1
- package/dist/pages/similarity-indexes.html +1 -1
- package/dist/pages/sparql-editor.html +1 -1
- package/dist/pages/sparql-template-create.html +1 -1
- package/dist/pages/ux-test1.html +2 -2
- package/dist/pages/webapi.html +2 -2
- package/dist/res/swagger5/index.html +12 -12
- package/package.json +2 -2
- package/dist/0.96161a71bbc713b80446.bundle.js +0 -25
- package/dist/2.7a00d57e7b7e144dcbff.bundle.js +0 -2
- package/dist/23.09956e07d8bced216cbd.bundle.js +0 -3
- package/dist/337.2d3f0230cb9f7c8b47db.bundle.js +0 -1
- package/dist/41.d3e7306f7584fe4b2fce.bundle.js +0 -1
- package/dist/42.72228fed050c414ecc9c.bundle.js +0 -1
- /package/dist/{102.45b5d1a8c7bde79d0550.bundle.js → 102.fe653ba57ff2b81cdf07.bundle.js} +0 -0
- /package/dist/{31.f8289c5644144d405a7b.bundle.js → 31.614dbf7498a1552e355c.bundle.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[348],{468:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/cluster-nodes-configuration.css?v=2.8.6-release" rel="stylesheet"/>\n\n<div onto-loader-new ng-if="loader" class="create-cluster-loader" message="getLoaderMessage" size="100"></div>\n<div class="add-node-wrapper pull-right mb-1">\n <button ng-click="addNode()" ng-disabled="editedNodeIndex !== undefined"\n class="btn btn-primary add-node-btn"\n gdb-tooltip="{{\'cluster_management.update_cluster_group_dialog.actions.add_node_tooltip\' | translate}}">\n <i class="fa fa-plus"></i> {{\'cluster_management.update_cluster_group_dialog.actions.add_node\' |\n translate}}\n </button>\n</div>\n<div class="table-responsive">\n <form name="form" id="updateClusterGroupForm">\n <table class="cluster-group table table-striped table-hover cluster-group-table" aria-describedby="cluster group table">\n <thead>\n <tr class="labels-row">\n <th scope="col" class="index-column">\n {{\'cluster_management.update_cluster_group_dialog.column.index\' | translate}}\n </th>\n <th scope="col" class="location-column">\n {{\'cluster_management.update_cluster_group_dialog.column.location\' | translate}}\n </th>\n <th scope="col" class="info-column">\n {{\'cluster_management.update_cluster_group_dialog.column.info\' | translate}}\n </th>\n <th scope="col" class="status-column">\n {{\'cluster_management.update_cluster_group_dialog.column.status\' | translate}}\n </th>\n <th scope="col" class="empty-column"></th>\n <th scope="col" class="actions-column"></th>\n </tr>\n </thead>\n <tbody>\n <tr ng-if="!viewModel.length">\n <td colspan="5" class="no-data">\n {{\'cluster_management.update_cluster_group_dialog.messages.no_cluster\' | translate}}\n </td>\n </tr>\n\n <tr ng-repeat-start="node in viewModel track by $index" ng-if="0"></tr>\n <tr ng-if="$index !== editedNodeIndex" class="node preview-node-row" data-endpoint="{{node.endpoint}}"\n capture-height="$index"\n ng-class="{\'selected\': $index === selectedNode || $index === editedNodeIndex}">\n <td class="index-cell"><span ng-if="!node.isDeleted">{{node.index + 1}}</span></td>\n <td class="location-cell data" ng-class="{\'deleting\': node.isDeleted, \'adding\': !node.item.address}">\n <div class="location-item">\n {{node.item.endpoint}}\n </div>\n </td>\n <td class="info-cell data">\n <span ng-if="node.isLocal">\n {{\'cluster_management.update_cluster_group_dialog.current_node\' | translate}}<span ng-if="node.item.nodeState">, </span>\n </span>\n\n <span ng-if="node.item.nodeState">\n {{ (\'cluster_management.update_cluster_group_dialog.\' + node.item.nodeState.toLowerCase()) |\n translate }}\n </span>\n </td>\n <td class="status-cell data">\n <div ng-if="!node.item.address" class="adding">\n <i class="fa fa-circle-check status-icon"></i>\n {{\'cluster_management.update_cluster_group_dialog.new_node\' | translate}}\n </div>\n <div ng-if="node.isDeleted" class="deleting">\n <i class="fa fa-xmark status-icon"></i>\n {{\'cluster_management.update_cluster_group_dialog.deleted_node\' | translate}}\n </div>\n </td>\n <td class="empty-cell"></td>\n <td class="actions-cell">\n <div ng-if="editedNodeIndex === undefined && !node.isDeleted" class="actions-group">\n <button ng-click="deleteNode($index, node)" ng-disabled="!canDeleteNode"\n class="btn btn-link delete-node-btn secondary"\n gdb-tooltip="{{ canDeleteNode ? (\'cluster_management.update_cluster_group_dialog.actions.delete_node\' | translate) : (\'cluster_management.update_cluster_group_dialog.actions.cannot_delete_node\' | translate) }}"\n title-class="delete-node-tooltip">\n <i class="fa fa-xmark"></i>\n </button>\n <button ng-click="replaceNode($index, node)" class="btn btn-link replace-node-btn"\n gdb-tooltip="{{\'cluster_management.update_cluster_group_dialog.actions.replace_node\' | translate}}">\n <i class="fa fa-arrow-right-arrow-left"></i>\n </button>\n </div>\n <div ng-if="editedNodeIndex === undefined && node.isDeleted" class="actions-group">\n <button ng-click="restoreNode(node)"\n class="btn btn-link restore-node-btn secondary"\n gdb-tooltip="{{\'cluster_management.update_cluster_group_dialog.actions.restore_node\' | translate}}">\n <i class="fa fa-rotate-left"></i>\n </button>\n </div>\n </td>\n </tr>\n <tr ng-if="$index === editedNodeIndex" class="node edit-node-row" data-endpoint="{{node.endpoint}}"\n style="{{getRowHeight}}"\n ng-class="{\'selected table-info\': $index === editedNodeIndex}">\n <td class="index-cell"><span ng-if="!node.isDeleted">{{node.index + 1}}</span></td>\n <td class="data location-cell">\n <div class="autocomplete-container">\n <textarea type="text" name="location" required\n ng-model="node.endpoint"\n ng-change="filterSuggestions(node)"\n ng-blur="hideSuggestions(node)"\n ng-click="filterSuggestions(node)"\n auto-grow\n validate-url exclude="/repositories" exclude-protocol="ftp,ftps"\n validate-duplicate-url excluded-urls="clusterNodesEndpoints"\n allow-empty="false"\n autocomplete="off"\n class="form-control form-control-sm textarea-edit"\n uib-tooltip="{{\'remote.location.enter.url.msg\' | translate}}"\n tooltip-placement="top"\n placeholder="{{\'cluster_management.update_cluster_group_dialog.field_placeholders.location\' | translate}}">\n </textarea>\n <ul ng-show="suggestions.length > 0 && showDropdown" class="autocomplete-dropdown">\n <li ng-repeat="suggestion in suggestions"\n ng-mouseup="selectSuggestion(node, suggestion)">\n {{ suggestion }}\n </li>\n </ul>\n </div>\n </td>\n <td class="info-cell data">\n <span ng-if="node.isLocal">\n {{\'cluster_management.update_cluster_group_dialog.current_node\' | translate}}<span ng-if="node.item.nodeState">, </span>\n </span>\n\n <span ng-if="node.item.nodeState">\n {{ (\'cluster_management.update_cluster_group_dialog.\' + node.item.nodeState.toLowerCase()) |\n translate }}\n </span>\n </td>\n <td class="status-cell"></td>\n <td class="empty-cell"></td>\n <td class="actions-cell">\n <div class="crud-actions-group">\n <button ng-click="cancel()"\n class="btn btn-link cancel-node-replace-btn secondary"\n gdb-tooltip="{{\'cluster_management.update_cluster_group_dialog.actions.cancel\' | translate}}">\n <i class="fa fa-xmark"></i>\n </button>\n <button ng-click="saveNode(node.endpoint)"\n class="btn btn-link save-rule-btn"\n ng-disabled="!form.location.$valid"\n gdb-tooltip="{{form.location.$valid ? \'cluster_management.update_cluster_group_dialog.actions.add_node\' : \'cluster_management.update_cluster_group_dialog.messages.invalid_form\' | translate}}">\n <i class="fa fa-check"></i>\n </button>\n </div>\n </td>\n </tr>\n <tr ng-repeat-end ng-if="0"></tr>\n <tr ng-if="addNewLocation" class="node edit-node-row">\n <td class="index-cell"></td>\n <td class="data location-cell">\n <div class="autocomplete-container">\n <textarea type="text" name="location" required\n ng-model="newLocation.endpoint"\n ng-change="filterSuggestions(newLocation)"\n ng-blur="hideSuggestions(newLocation)"\n ng-click="filterSuggestions(newLocation)"\n auto-grow\n validate-url exclude="/repositories" exclude-protocol="ftp,ftps"\n validate-duplicate-url excluded-urls="clusterNodesEndpoints"\n allow-empty="false"\n autocomplete="off"\n class="form-control form-control-sm textarea-edit"\n uib-tooltip="{{\'remote.location.enter.url.msg\' | translate}}"\n tooltip-placement="top"\n placeholder="{{\'cluster_management.update_cluster_group_dialog.field_placeholders.location\' | translate}}">\n </textarea>\n <ul ng-show="suggestions.length > 0 && showDropdown" class="autocomplete-dropdown">\n <li ng-repeat="suggestion in suggestions"\n ng-mouseup="selectSuggestion(newLocation, suggestion)">\n {{ suggestion }}\n </li>\n </ul>\n </div>\n </td>\n <td class="info-cell data"></td>\n <td class="status-cell"></td>\n <td class="empty-cell"></td>\n <td class="actions-cell">\n <div class="crud-actions-group">\n <button ng-click="cancel()"\n class="btn btn-link cancel-node-replace-btn secondary"\n gdb-tooltip="{{\'cluster_management.update_cluster_group_dialog.actions.cancel\' | translate}}">\n <i class="fa fa-xmark"></i>\n </button>\n <button ng-click="saveNode(newLocation.endpoint)"\n class="btn btn-link save-rule-btn"\n ng-disabled="!form.location.$valid"\n gdb-tooltip="{{form.location.$valid ? \'cluster_management.update_cluster_group_dialog.actions.add_node\' : \'cluster_management.update_cluster_group_dialog.messages.invalid_form\' | translate}}">\n <i class="fa fa-check"></i>\n </button>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n <div class="errors">\n <div class="error-message"\n ng-show="form.location.$error.validUrl && !form.location.$pristine">\n * {{\'valid.remote.location.warning\' | translate}} http://server.example.com:7200/.\n </div>\n <div class="error-message"\n ng-show="form.location.$error.duplicateUrl && !form.location.$pristine">\n * {{\'duplicate.remote.location.warning\' | translate}}\n </div>\n <div ng-repeat="error in errors" class="error-message">\n {{error}}\n </div>\n </div>\n <div class="form-horizontal" ng-if="!hasCluster">\n <div class="form-group">\n <div class="indented-div">\n <span class="padding-label wrapper-div"\n gdb-tooltip="{{\'cluster_management.cluster_page.advanced_options_tooltip\' | translate}}">\n <button type="button"\n class="text-btn advanced-options-btn text-left"\n data-toggle="collapse"\n data-target="#advancedOptions">\n <i class="{{getAdvancedOptionsClass()}} advanced-options-toggle" aria-hidden="true"></i>\n {{\'cluster_management.cluster_page.advanced_options\' | translate}}\n </button>\n </span>\n </div>\n\n <div id="advancedOptions" class="collapse pb-1 pl-2">\n <div class="form-group">\n <div class="input-group"\n ng-class="{\'has-danger\': clusterConfigurationForm.electionMinTimeout.$invalid}">\n <label for="election-minimum-timeout" class="col-xs-4 col-form-label">{{\'cluster_management.cluster_configuration_properties.election_min_timeout\'\n | translate}}*</label>\n <div class="col-xs-8"\n gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.election_min_timeout_tooltip\' | translate}}">\n <input class="form-control" placeholder="{{\'required.field\' | translate}}"\n type="number" ng-model="clusterConfiguration.electionMinTimeout"\n required id="election-minimum-timeout" min="0" pattern="[0-9]+"\n name="electionMinTimeout">\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.electionMinTimeout.$error.required">\n {{\'required.field\' | translate}}\n </div>\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.electionMinTimeout.$error.pattern">\n {{\'cluster_management.cluster_page.errors.only_positive_integers\' | translate}}\n </div>\n </div>\n </div>\n </div>\n\n <div class="form-group">\n <div class="input-group"\n ng-class="{\'has-danger\': clusterConfigurationForm.electionRangeTimeout.$invalid}">\n <label for="election-range-timeout" class="col-xs-4 col-form-label">{{\'cluster_management.cluster_configuration_properties.election_range_timeout\'\n | translate}}*</label>\n <div class="col-xs-8"\n gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.election_range_timeout_tooltip\' | translate}}">\n <input class="form-control" placeholder="{{\'required.field\' | translate}}"\n type="number" ng-model="clusterConfiguration.electionRangeTimeout"\n required id="election-range-timeout" min="0" pattern="[0-9]+"\n name="electionRangeTimeout">\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.electionRangeTimeout.$error.required">\n {{\'required.field\' | translate}}\n </div>\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.electionRangeTimeout.$error.pattern">\n {{\'cluster_management.cluster_page.errors.only_positive_integers\' | translate}}\n </div>\n </div>\n </div>\n </div>\n\n <div class="form-group">\n <div class="input-group"\n ng-class="{\'has-danger\': clusterConfigurationForm.heartbeatInterval.$invalid}">\n <label for="heartbeat-interval" class="col-xs-4 col-form-label">{{\'cluster_management.cluster_configuration_properties.heartbeat_interval\'\n | translate}}*</label>\n <div class="col-xs-8"\n gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.heartbeat_interval_tooltip\' | translate}}">\n <input class="form-control" placeholder="{{\'required.field\' | translate}}"\n type="number" ng-model="clusterConfiguration.heartbeatInterval"\n required id="heartbeat-interval" min="0" pattern="[0-9]+"\n name="heartbeatInterval">\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.heartbeatInterval.$error.required">\n {{\'required.field\' | translate}}\n </div>\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.heartbeatInterval.$error.pattern">\n {{\'cluster_management.cluster_page.errors.only_positive_integers\' | translate}}\n </div>\n </div>\n </div>\n </div>\n\n <div class="form-group">\n <div class="input-group"\n ng-class="{\'has-danger\': clusterConfigurationForm.messageSizeKB.$invalid}">\n <label for="message-size" class="col-xs-4 col-form-label">{{\'cluster_management.cluster_configuration_properties.message_size_kb\'\n | translate}}*</label>\n <div class="col-xs-8"\n gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.message_size_kb_tooltip\' | translate}}">\n <input class="form-control" placeholder="{{\'required.field\' | translate}}"\n type="number" ng-model="clusterConfiguration.messageSizeKB"\n required id="message-size" min="0" pattern="[0-9]+" name="messageSizeKB">\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.messageSizeKB.$error.required">\n {{\'required.field\' | translate}}\n </div>\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.messageSizeKB.$error.pattern">\n {{\'cluster_management.cluster_page.errors.only_positive_integers\' | translate}}\n </div>\n </div>\n </div>\n </div>\n\n <div class="form-group">\n <div class="input-group"\n ng-class="{\'has-danger\': clusterConfigurationForm.verificationTimeout.$invalid}">\n <label for="verification-timeout" class="col-xs-4 col-form-label">{{\'cluster_management.cluster_configuration_properties.verification_timeout\'\n | translate}}*</label>\n <div class="col-xs-8"\n gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.verification_timeout_tooltip\' | translate}}">\n <input class="form-control" placeholder="{{\'required.field\' | translate}}"\n type="number" ng-model="clusterConfiguration.verificationTimeout"\n required id="verification-timeout" min="0" pattern="[0-9]+"\n name="verificationTimeout">\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.verificationTimeout.$error.required">\n {{\'required.field\' | translate}}\n </div>\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.verificationTimeout.$error.pattern">\n {{\'cluster_management.cluster_page.errors.only_positive_integers\' | translate}}\n </div>\n </div>\n </div>\n </div>\n <div class="form-group">\n <div class="input-group"\n ng-class="{\'has-danger\': clusterConfigurationForm.transactionLogMaximumSizeGB.$invalid}">\n <label for="verification-timeout" class="col-xs-4 col-form-label">{{\'cluster_management.cluster_configuration_properties.transaction_log_maximum_size_gb\'\n | translate}}*</label>\n <div class="col-xs-8"\n gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.transaction_log_maximum_size_gb_tooltip\' | translate}}">\n <input class="form-control" placeholder="{{\'required.field\' | translate}}"\n type="number" ng-model="clusterConfiguration.transactionLogMaximumSizeGB"\n required id="transaction-log-maximum-size-gb"\n pattern="-?[1-9][0-9]*(\\.[0-9]+)?" name="transaction_log_maximum_size_gb">\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.transactionLogMaximumSizeGB.$error.required">\n {{\'required.field\' | translate}}\n </div>\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.transactionLogMaximumSizeGB.$error.pattern">\n {{\'cluster_management.cluster_page.errors.small_transaction_log_max_size\' |\n translate}}\n </div>\n </div>\n </div>\n </div>\n <div class="form-group">\n <div class="input-group" ng-class="{\'has-danger\': clusterConfigurationForm.batchUpdateInterval.$invalid}">\n <label for="batch-update-interval" class="col-xs-4 col-form-label">\n {{\'cluster_management.cluster_configuration_properties.batch_update_interval\' | translate}}*\n </label>\n <div class="col-xs-8" gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.batch_update_interval_tooltip\' | translate}}">\n <input\n class="form-control"\n placeholder="{{\'required.field\' | translate}}"\n type="number"\n ng-model="clusterConfiguration.batchUpdateInterval"\n required\n id="batch-update-interval"\n min="0"\n name="batchUpdateInterval">\n <div class="form-control-feedback" ng-show="clusterConfigurationForm.batchUpdateInterval.$error.required">\n {{\'required.field\' | translate}}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </form>\n</div>\n';return __p}}}]);
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[348],{468:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/cluster-nodes-configuration.css?v=2.8.8-TR1" rel="stylesheet"/>\n\n<div onto-loader-new ng-if="loader" class="create-cluster-loader" message="getLoaderMessage" size="100"></div>\n<div class="add-node-wrapper pull-right mb-1">\n <button ng-click="addNode()" ng-disabled="editedNodeIndex !== undefined"\n class="btn btn-primary add-node-btn"\n gdb-tooltip="{{\'cluster_management.update_cluster_group_dialog.actions.add_node_tooltip\' | translate}}">\n <i class="fa fa-plus"></i> {{\'cluster_management.update_cluster_group_dialog.actions.add_node\' |\n translate}}\n </button>\n</div>\n<div class="table-responsive">\n <form name="form" id="updateClusterGroupForm">\n <table class="cluster-group table table-striped table-hover cluster-group-table" aria-describedby="cluster group table">\n <thead>\n <tr class="labels-row">\n <th scope="col" class="index-column">\n {{\'cluster_management.update_cluster_group_dialog.column.index\' | translate}}\n </th>\n <th scope="col" class="location-column">\n {{\'cluster_management.update_cluster_group_dialog.column.location\' | translate}}\n </th>\n <th scope="col" class="info-column">\n {{\'cluster_management.update_cluster_group_dialog.column.info\' | translate}}\n </th>\n <th scope="col" class="status-column">\n {{\'cluster_management.update_cluster_group_dialog.column.status\' | translate}}\n </th>\n <th scope="col" class="empty-column"></th>\n <th scope="col" class="actions-column"></th>\n </tr>\n </thead>\n <tbody>\n <tr ng-if="!viewModel.length">\n <td colspan="5" class="no-data">\n {{\'cluster_management.update_cluster_group_dialog.messages.no_cluster\' | translate}}\n </td>\n </tr>\n\n <tr ng-repeat-start="node in viewModel track by $index" ng-if="0"></tr>\n <tr ng-if="$index !== editedNodeIndex" class="node preview-node-row" data-endpoint="{{node.endpoint}}"\n capture-height="$index"\n ng-class="{\'selected\': $index === selectedNode || $index === editedNodeIndex}">\n <td class="index-cell"><span ng-if="!node.isDeleted">{{node.index + 1}}</span></td>\n <td class="location-cell data" ng-class="{\'deleting\': node.isDeleted, \'adding\': !node.item.address}">\n <div class="location-item">\n {{node.item.endpoint}}\n </div>\n </td>\n <td class="info-cell data">\n <span ng-if="node.isLocal">\n {{\'cluster_management.update_cluster_group_dialog.current_node\' | translate}}<span ng-if="node.item.nodeState">, </span>\n </span>\n\n <span ng-if="node.item.nodeState">\n {{ (\'cluster_management.update_cluster_group_dialog.\' + node.item.nodeState.toLowerCase()) |\n translate }}\n </span>\n </td>\n <td class="status-cell data">\n <div ng-if="!node.item.address" class="adding">\n <i class="fa fa-circle-check status-icon"></i>\n {{\'cluster_management.update_cluster_group_dialog.new_node\' | translate}}\n </div>\n <div ng-if="node.isDeleted" class="deleting">\n <i class="fa fa-xmark status-icon"></i>\n {{\'cluster_management.update_cluster_group_dialog.deleted_node\' | translate}}\n </div>\n </td>\n <td class="empty-cell"></td>\n <td class="actions-cell">\n <div ng-if="editedNodeIndex === undefined && !node.isDeleted" class="actions-group">\n <button ng-click="deleteNode($index, node)" ng-disabled="!canDeleteNode"\n class="btn btn-link delete-node-btn secondary"\n gdb-tooltip="{{ canDeleteNode ? (\'cluster_management.update_cluster_group_dialog.actions.delete_node\' | translate) : (\'cluster_management.update_cluster_group_dialog.actions.cannot_delete_node\' | translate) }}"\n title-class="delete-node-tooltip">\n <i class="fa fa-xmark"></i>\n </button>\n <button ng-click="replaceNode($index, node)" class="btn btn-link replace-node-btn"\n gdb-tooltip="{{\'cluster_management.update_cluster_group_dialog.actions.replace_node\' | translate}}">\n <i class="fa fa-arrow-right-arrow-left"></i>\n </button>\n </div>\n <div ng-if="editedNodeIndex === undefined && node.isDeleted" class="actions-group">\n <button ng-click="restoreNode(node)"\n class="btn btn-link restore-node-btn secondary"\n gdb-tooltip="{{\'cluster_management.update_cluster_group_dialog.actions.restore_node\' | translate}}">\n <i class="fa fa-rotate-left"></i>\n </button>\n </div>\n </td>\n </tr>\n <tr ng-if="$index === editedNodeIndex" class="node edit-node-row" data-endpoint="{{node.endpoint}}"\n style="{{getRowHeight}}"\n ng-class="{\'selected table-info\': $index === editedNodeIndex}">\n <td class="index-cell"><span ng-if="!node.isDeleted">{{node.index + 1}}</span></td>\n <td class="data location-cell">\n <div class="autocomplete-container">\n <textarea type="text" name="location" required\n ng-model="node.endpoint"\n ng-change="filterSuggestions(node)"\n ng-blur="hideSuggestions(node)"\n ng-click="filterSuggestions(node)"\n auto-grow\n validate-url exclude="/repositories" exclude-protocol="ftp,ftps"\n validate-duplicate-url excluded-urls="clusterNodesEndpoints"\n allow-empty="false"\n autocomplete="off"\n class="form-control form-control-sm textarea-edit"\n uib-tooltip="{{\'remote.location.enter.url.msg\' | translate}}"\n tooltip-placement="top"\n placeholder="{{\'cluster_management.update_cluster_group_dialog.field_placeholders.location\' | translate}}">\n </textarea>\n <ul ng-show="suggestions.length > 0 && showDropdown" class="autocomplete-dropdown">\n <li ng-repeat="suggestion in suggestions"\n ng-mouseup="selectSuggestion(node, suggestion)">\n {{ suggestion }}\n </li>\n </ul>\n </div>\n </td>\n <td class="info-cell data">\n <span ng-if="node.isLocal">\n {{\'cluster_management.update_cluster_group_dialog.current_node\' | translate}}<span ng-if="node.item.nodeState">, </span>\n </span>\n\n <span ng-if="node.item.nodeState">\n {{ (\'cluster_management.update_cluster_group_dialog.\' + node.item.nodeState.toLowerCase()) |\n translate }}\n </span>\n </td>\n <td class="status-cell"></td>\n <td class="empty-cell"></td>\n <td class="actions-cell">\n <div class="crud-actions-group">\n <button ng-click="cancel()"\n class="btn btn-link cancel-node-replace-btn secondary"\n gdb-tooltip="{{\'cluster_management.update_cluster_group_dialog.actions.cancel\' | translate}}">\n <i class="fa fa-xmark"></i>\n </button>\n <button ng-click="saveNode(node.endpoint)"\n class="btn btn-link save-rule-btn"\n ng-disabled="!form.location.$valid"\n gdb-tooltip="{{form.location.$valid ? \'cluster_management.update_cluster_group_dialog.actions.add_node\' : \'cluster_management.update_cluster_group_dialog.messages.invalid_form\' | translate}}">\n <i class="fa fa-check"></i>\n </button>\n </div>\n </td>\n </tr>\n <tr ng-repeat-end ng-if="0"></tr>\n <tr ng-if="addNewLocation" class="node edit-node-row">\n <td class="index-cell"></td>\n <td class="data location-cell">\n <div class="autocomplete-container">\n <textarea type="text" name="location" required\n ng-model="newLocation.endpoint"\n ng-change="filterSuggestions(newLocation)"\n ng-blur="hideSuggestions(newLocation)"\n ng-click="filterSuggestions(newLocation)"\n auto-grow\n validate-url exclude="/repositories" exclude-protocol="ftp,ftps"\n validate-duplicate-url excluded-urls="clusterNodesEndpoints"\n allow-empty="false"\n autocomplete="off"\n class="form-control form-control-sm textarea-edit"\n uib-tooltip="{{\'remote.location.enter.url.msg\' | translate}}"\n tooltip-placement="top"\n placeholder="{{\'cluster_management.update_cluster_group_dialog.field_placeholders.location\' | translate}}">\n </textarea>\n <ul ng-show="suggestions.length > 0 && showDropdown" class="autocomplete-dropdown">\n <li ng-repeat="suggestion in suggestions"\n ng-mouseup="selectSuggestion(newLocation, suggestion)">\n {{ suggestion }}\n </li>\n </ul>\n </div>\n </td>\n <td class="info-cell data"></td>\n <td class="status-cell"></td>\n <td class="empty-cell"></td>\n <td class="actions-cell">\n <div class="crud-actions-group">\n <button ng-click="cancel()"\n class="btn btn-link cancel-node-replace-btn secondary"\n gdb-tooltip="{{\'cluster_management.update_cluster_group_dialog.actions.cancel\' | translate}}">\n <i class="fa fa-xmark"></i>\n </button>\n <button ng-click="saveNode(newLocation.endpoint)"\n class="btn btn-link save-rule-btn"\n ng-disabled="!form.location.$valid"\n gdb-tooltip="{{form.location.$valid ? \'cluster_management.update_cluster_group_dialog.actions.add_node\' : \'cluster_management.update_cluster_group_dialog.messages.invalid_form\' | translate}}">\n <i class="fa fa-check"></i>\n </button>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n <div class="errors">\n <div class="error-message"\n ng-show="form.location.$error.validUrl && !form.location.$pristine">\n * {{\'valid.remote.location.warning\' | translate}} http://server.example.com:7200/.\n </div>\n <div class="error-message"\n ng-show="form.location.$error.duplicateUrl && !form.location.$pristine">\n * {{\'duplicate.remote.location.warning\' | translate}}\n </div>\n <div ng-repeat="error in errors" class="error-message">\n {{error}}\n </div>\n </div>\n <div class="form-horizontal" ng-if="!hasCluster">\n <div class="form-group">\n <div class="indented-div">\n <span class="padding-label wrapper-div"\n gdb-tooltip="{{\'cluster_management.cluster_page.advanced_options_tooltip\' | translate}}">\n <button type="button"\n class="text-btn advanced-options-btn text-left"\n data-toggle="collapse"\n data-target="#advancedOptions">\n <i class="{{getAdvancedOptionsClass()}} advanced-options-toggle" aria-hidden="true"></i>\n {{\'cluster_management.cluster_page.advanced_options\' | translate}}\n </button>\n </span>\n </div>\n\n <div id="advancedOptions" class="collapse pb-1 pl-2">\n <div class="form-group">\n <div class="input-group"\n ng-class="{\'has-danger\': clusterConfigurationForm.electionMinTimeout.$invalid}">\n <label for="election-minimum-timeout" class="col-xs-4 col-form-label">{{\'cluster_management.cluster_configuration_properties.election_min_timeout\'\n | translate}}*</label>\n <div class="col-xs-8"\n gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.election_min_timeout_tooltip\' | translate}}">\n <input class="form-control" placeholder="{{\'required.field\' | translate}}"\n type="number" ng-model="clusterConfiguration.electionMinTimeout"\n required id="election-minimum-timeout" min="0" pattern="[0-9]+"\n name="electionMinTimeout">\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.electionMinTimeout.$error.required">\n {{\'required.field\' | translate}}\n </div>\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.electionMinTimeout.$error.pattern">\n {{\'cluster_management.cluster_page.errors.only_positive_integers\' | translate}}\n </div>\n </div>\n </div>\n </div>\n\n <div class="form-group">\n <div class="input-group"\n ng-class="{\'has-danger\': clusterConfigurationForm.electionRangeTimeout.$invalid}">\n <label for="election-range-timeout" class="col-xs-4 col-form-label">{{\'cluster_management.cluster_configuration_properties.election_range_timeout\'\n | translate}}*</label>\n <div class="col-xs-8"\n gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.election_range_timeout_tooltip\' | translate}}">\n <input class="form-control" placeholder="{{\'required.field\' | translate}}"\n type="number" ng-model="clusterConfiguration.electionRangeTimeout"\n required id="election-range-timeout" min="0" pattern="[0-9]+"\n name="electionRangeTimeout">\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.electionRangeTimeout.$error.required">\n {{\'required.field\' | translate}}\n </div>\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.electionRangeTimeout.$error.pattern">\n {{\'cluster_management.cluster_page.errors.only_positive_integers\' | translate}}\n </div>\n </div>\n </div>\n </div>\n\n <div class="form-group">\n <div class="input-group"\n ng-class="{\'has-danger\': clusterConfigurationForm.heartbeatInterval.$invalid}">\n <label for="heartbeat-interval" class="col-xs-4 col-form-label">{{\'cluster_management.cluster_configuration_properties.heartbeat_interval\'\n | translate}}*</label>\n <div class="col-xs-8"\n gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.heartbeat_interval_tooltip\' | translate}}">\n <input class="form-control" placeholder="{{\'required.field\' | translate}}"\n type="number" ng-model="clusterConfiguration.heartbeatInterval"\n required id="heartbeat-interval" min="0" pattern="[0-9]+"\n name="heartbeatInterval">\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.heartbeatInterval.$error.required">\n {{\'required.field\' | translate}}\n </div>\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.heartbeatInterval.$error.pattern">\n {{\'cluster_management.cluster_page.errors.only_positive_integers\' | translate}}\n </div>\n </div>\n </div>\n </div>\n\n <div class="form-group">\n <div class="input-group"\n ng-class="{\'has-danger\': clusterConfigurationForm.messageSizeKB.$invalid}">\n <label for="message-size" class="col-xs-4 col-form-label">{{\'cluster_management.cluster_configuration_properties.message_size_kb\'\n | translate}}*</label>\n <div class="col-xs-8"\n gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.message_size_kb_tooltip\' | translate}}">\n <input class="form-control" placeholder="{{\'required.field\' | translate}}"\n type="number" ng-model="clusterConfiguration.messageSizeKB"\n required id="message-size" min="0" pattern="[0-9]+" name="messageSizeKB">\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.messageSizeKB.$error.required">\n {{\'required.field\' | translate}}\n </div>\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.messageSizeKB.$error.pattern">\n {{\'cluster_management.cluster_page.errors.only_positive_integers\' | translate}}\n </div>\n </div>\n </div>\n </div>\n\n <div class="form-group">\n <div class="input-group"\n ng-class="{\'has-danger\': clusterConfigurationForm.verificationTimeout.$invalid}">\n <label for="verification-timeout" class="col-xs-4 col-form-label">{{\'cluster_management.cluster_configuration_properties.verification_timeout\'\n | translate}}*</label>\n <div class="col-xs-8"\n gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.verification_timeout_tooltip\' | translate}}">\n <input class="form-control" placeholder="{{\'required.field\' | translate}}"\n type="number" ng-model="clusterConfiguration.verificationTimeout"\n required id="verification-timeout" min="0" pattern="[0-9]+"\n name="verificationTimeout">\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.verificationTimeout.$error.required">\n {{\'required.field\' | translate}}\n </div>\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.verificationTimeout.$error.pattern">\n {{\'cluster_management.cluster_page.errors.only_positive_integers\' | translate}}\n </div>\n </div>\n </div>\n </div>\n <div class="form-group">\n <div class="input-group"\n ng-class="{\'has-danger\': clusterConfigurationForm.transactionLogMaximumSizeGB.$invalid}">\n <label for="verification-timeout" class="col-xs-4 col-form-label">{{\'cluster_management.cluster_configuration_properties.transaction_log_maximum_size_gb\'\n | translate}}*</label>\n <div class="col-xs-8"\n gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.transaction_log_maximum_size_gb_tooltip\' | translate}}">\n <input class="form-control" placeholder="{{\'required.field\' | translate}}"\n type="number" ng-model="clusterConfiguration.transactionLogMaximumSizeGB"\n required id="transaction-log-maximum-size-gb"\n pattern="-?[1-9][0-9]*(\\.[0-9]+)?" name="transaction_log_maximum_size_gb">\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.transactionLogMaximumSizeGB.$error.required">\n {{\'required.field\' | translate}}\n </div>\n <div class="form-control-feedback"\n ng-show="clusterConfigurationForm.transactionLogMaximumSizeGB.$error.pattern">\n {{\'cluster_management.cluster_page.errors.small_transaction_log_max_size\' |\n translate}}\n </div>\n </div>\n </div>\n </div>\n <div class="form-group">\n <div class="input-group" ng-class="{\'has-danger\': clusterConfigurationForm.batchUpdateInterval.$invalid}">\n <label for="batch-update-interval" class="col-xs-4 col-form-label">\n {{\'cluster_management.cluster_configuration_properties.batch_update_interval\' | translate}}*\n </label>\n <div class="col-xs-8" gdb-tooltip="{{\'cluster_management.cluster_configuration_properties.batch_update_interval_tooltip\' | translate}}">\n <input\n class="form-control"\n placeholder="{{\'required.field\' | translate}}"\n type="number"\n ng-model="clusterConfiguration.batchUpdateInterval"\n required\n id="batch-update-interval"\n min="0"\n name="batchUpdateInterval">\n <div class="form-control-feedback" ng-show="clusterConfigurationForm.batchUpdateInterval.$error.required">\n {{\'required.field\' | translate}}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </form>\n</div>\n';return __p}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[354],{474:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/autocomplete-select.css?v=2.8.
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[354],{474:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/autocomplete-select.css?v=2.8.8-TR1" rel="stylesheet"/>\n\n<div class="autocomplete-select-wrapper">\n <div class="autocomplete-select">\n <div ng-hide="isMultiline">\n <input type="text" ng-model="searchInput" ng-change="onChange()" ng-keydown="onKeyDown($event)"\n ng-blur="onBlur()" ng-required="required"\n class="autocomplete-input autocomplete-editable" ng-class="styleClass" placeholder="{{placeholder}}">\n </div>\n <div ng-show="isMultiline">\n <textarea\n ng-model="searchInput"\n ng-change="onChange()"\n ng-keydown="onKeyDown($event)"\n ng-blur="onBlur()"\n ng-required="required"\n class="autocomplete-textarea autocomplete-editable" ng-class="styleClass"\n placeholder="{{placeholder}}"\n rows="{{initialRows}}">\n </textarea>\n </div>\n </div>\n <div class="autocomplete-results-wrapper card">\n <div ng-repeat="autoCompleteUriResult in autoCompleteUriResults track by $index"\n ng-click="selectResource(autoCompleteUriResult)"\n ng-mousemove="setActiveItemIndex($index)"\n ng-class="{active: activeSearchElm === $index, selected: selectedElementIndex === $index}"\n class="result-item">\n <p ng-bind-html="getResultItemHtml(autoCompleteUriResult)"></p>\n </div>\n </div>\n</div>\n';return __p}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[357],{477:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/operations-statuses-monitor.css?v=2.8.
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[357],{477:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/operations-statuses-monitor.css?v=2.8.8-TR1" rel="stylesheet"/>\n\n<div ng-if="activeOperations && activeOperations.operations && activeOperations.operations.length > 0"\n class="operations-statuses btn-group">\n <button type="button"\n class="btn btn-secondary operations-statuses-dropdown-toggle dropdown-toggle" data-toggle="dropdown"\n ng-if="operationsSummary && operationsSummary.length > 0"\n ng-class="{\n \'btn-fade-danger\': OPERATION_STATUS.CRITICAL === activeOperations.status,\n \'btn-fade-warning\': OPERATION_STATUS.WARNING === activeOperations.status\n }">\n <div class="operation-status-header" ng-repeat="operationGroup in operationsSummary">\n <div ng-class="{\n \'icon-import\': OPERATION_GROUP_TYPE.IMPORT_OPERATION === operationGroup.type,\n \'icon-exchange\': OPERATION_GROUP_TYPE.QUERIES_OPERATION === operationGroup.type,\n \'fa fa-archive\': OPERATION_GROUP_TYPE.BACKUP_AND_RESTORE_OPERATION === operationGroup.type,\n \'fa fa-sitemap\': OPERATION_GROUP_TYPE.CLUSTER_OPERATION === operationGroup.type,\n \'status-critical\': OPERATION_STATUS.CRITICAL === operationGroup.status,\n \'status-information\': OPERATION_STATUS.INFORMATION === operationGroup.status,\n \'status-warning\': OPERATION_STATUS.WARNING === operationGroup.status}">\n </div>\n <span ng-if="operationGroup.runningOperations" class="running-operation-count">\n <sup class="tag-info">{{operationGroup.runningOperations}}</sup>\n </span>\n </div>\n <span class="caret"></span>\n </button>\n <ul role="menu" class="dropdown-menu dropdown-menu-right">\n <div class="operations-statuses-content">\n <li ng-repeat="operationStatus in activeOperations.operations">\n <a class="operation-status-content btn btn-secondary row" target="_blank" ng-attr-href="{{operationStatus.monitoringViewUrl}}"\n ng-class="{\n \'status-critical\': OPERATION_STATUS.CRITICAL === operationStatus.status,\n \'status-information\': OPERATION_STATUS.INFORMATION === operationStatus.status,\n \'status-warning\': OPERATION_STATUS.WARNING === operationStatus.status\n }">\n <div class="operation-icon col-sm-1" ng-style="noPadding">\n <div ng-class="{\n \'icon-import\': OPERATION_TYPE.IMPORTS === operationStatus.type,\n \'icon-exchange\': OPERATION_TYPE.QUERIES === operationStatus.type || OPERATION_TYPE.UPDATES === operationStatus.type,\n \'fa fa-archive\': OPERATION_TYPE.BACKUP_RESTORE === operationStatus.type,\n \'fa fa-sitemap\': OPERATION_TYPE.CLUSTER_STATUS === operationStatus.type}">\n </div>\n </div>\n <div class="col-sm-8 operation-status-label">\n {{ \'global.operations_statuses.\' + operationStatus.titleLabelKey + \'.title\' | translate }}\n </div>\n <div class="operation-number col-sm-3">\n <div ng-if="operationStatus.runningOperationCount" class="operation-status-running-operation-count tag-info">\n {{operationStatus.runningOperationCount}}\n </div>\n </div>\n </a>\n </li>\n </div>\n </ul>\n</div>\n';return __p}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[358],{478:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/rdf-resource-search.css?v=2.8.
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[358],{478:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/rdf-resource-search.css?v=2.8.8-TR1" rel="stylesheet"/>\n\n<div ng-cloak>\n <div id="search-box"\n class="card search-rdf-input"\n ng-class="{\'show-rdf-search-box-visible\': showRdfSearchInput, \'show-rdf-search-box-invisible\': !showRdfSearchInput}"\n ng-keydown="onKeyDown($event)">\n <div class="card-block">\n <search-resource-input\n repository-namespaces="repositoryNamespaces"\n is-autocomplete-enabled="isAutocompleteEnabled"\n empty="empty"\n open-in-new-tab="true"\n preserve-search="true"\n radio-buttons="true"\n clear-input-icon="true">\n </search-resource-input>\n <button class="btn btn-link close-rdf-search-btn"\n gdb-tooltip="{{\'search.resource.close.msg\' | translate}}" tooltip-placement="bottom"\n ng-click="hideInput()">\n <i class="icon-close icon-2x" aria-hidden="true"></i>\n </button>\n </div>\n </div>\n <button class="btn btn-link search-rdf-btn"\n ng-if="!showRdfSearchInput"\n gdb-tooltip="{{\'search.resources.msg\' | translate}}"\n tooltip-placement="bottom"\n ng-click="showInput()">\n <i class="icon-search" aria-hidden="true"></i>\n </button>\n</div>\n';return __p}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[359],{479:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/lib/ontotext-yasgui-web-component.css?v=2.8.
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[359],{479:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/lib/ontotext-yasgui-web-component.css?v=2.8.8-TR1" rel="stylesheet">\n\n<ontotext-yasgui\n class="{{classToApply}}"\n ng-custom-element\n ngce-prop-config="ontotextYasguiConfig"\n ngce-prop-saved_query_config="savedQueryConfig"\n ngce-prop-language="language"\n ngce-on-create_saved_query="createSavedQuery($event)"\n ngce-on-update_saved_query="updateSavedQuery($event)"\n ngce-on-delete_saved_query="deleteSavedQuery($event)"\n ngce-on-share_saved_query="shareSavedQuery($event)"\n ngce-on-share_query="shareQuery($event)"\n ngce-on-query_share_link_copied="queryShareLinkCopied()"\n ngce-on-load_saved_queries="loadSavedQueries($event)"\n ngce-on-save_query_opened="saveQueryOpened($event)"\n ngce-on-output="output($event)">\n</ontotext-yasgui>\n';return __p}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[360],{480:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/cookie-policy.css?v=2.8.
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[360],{480:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/cookie-policy.css?v=2.8.8-TR1" rel="stylesheet"/>\n\n<div class="cookie-consent-modal" ng-show="showCookieConsent">\n <div class="cookie-consent-content">\n <span>{{\'cookie.cookie_consent\' | translate}} <a href="#" class="btn btn-link p-0"\n ng-click="showCookiePolicy()">{{\'cookie.cookie_policy_url_label\' | translate}}</a>.</span>\n <button class="btn btn-primary" ng-click="acceptConsent()">{{\'common.ok.btn\' | translate}}</button>\n </div>\n</div>\n';return __p}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[361],{481:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/cookie-policy.css?v=2.8.
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[361],{481:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/cookie-policy.css?v=2.8.8-TR1" rel="stylesheet"/>\n\n<div class="cookie-policy-modal">\n <div class="title">{{\'cookie.policy.title\' | translate}}</div>\n\n <div class="heading">{{\'cookie.policy.purpose_heading\' | translate}}</div>\n <div class="text">{{\'cookie.policy.purpose_text\' | translate}}</div>\n <div class="text mt-1">{{\'cookie.policy.purpose_enterprise_text\' | translate}}</div>\n\n <div class="heading">{{\'cookie.policy.privacy_commitment_heading\' | translate}}</div>\n <div class="text">{{\'cookie.policy.privacy_commitment_text\' | translate}}</div>\n <ul>\n <li>{{\'cookie.policy.privacy_commitment_1\' | translate}}</li>\n <li>{{\'cookie.policy.privacy_commitment_2\' | translate}}</li>\n </ul>\n\n <div class="heading">{{\'cookie.policy.cookies_heading\' | translate}}</div>\n <div class="text">{{\'cookie.policy.cookies_text\' | translate}}</div>\n\n <div class="heading">{{\'cookie.policy.manage_cookies_heading\' | translate}}</div>\n <div id="statistic-consent" class="toggle-group">\n <label><strong>{{\'cookie.policy.statistic_cookies\' | translate}}</strong></label>\n <span gdb-tooltip="{{\'cookie.policy.statistic_tooltip\' | translate}}" tooltip-placement="top"\n ng-click="toggleConsent(ConsentTypes.STATISTIC)"\n class="switch">\n <input type="checkbox" class="switch" ng-checked="cookieConsent.getStatisticConsent()"/>\n <label for="statistic-consent"></label>\n </span>\n </div>\n <div class="text">{{\'cookie.policy.statistic_text\' | translate}}</div>\n\n <div id="third-party-consent" class="toggle-group mt-1">\n <label><strong>{{\'cookie.policy.third_party_cookies\' | translate}}</strong></label>\n <span gdb-tooltip="{{\'cookie.policy.third_party_tooltip\' | translate}}" tooltip-placement="top"\n ng-click="toggleConsent(ConsentTypes.THIRD_PARTY)"\n class="switch">\n <input type="checkbox" class="switch" ng-checked="cookieConsent.thirdParty"/>\n <label for="third-party-consent"></label>\n </span>\n </div>\n <div class="text">{{\'cookie.policy.third_party_cookies_text\' | translate}}</div>\n\n <div class="text mt-1"><span>{{\'cookie.policy.change_cookies\' | translate}} <i>{{\'menu.setup.label\' | translate}} > {{\'menu.my.settings.label\' | translate}} > {{\'security.user.settings\' | translate}} > {{\'cookie.policy.change_cookies_location4\' | translate}}</i></span></div>\n\n <div class="text-right">\n <button class="btn btn-primary" ng-click="close()">{{\'common.close.btn\' | translate}}</button>\n </div>\n</div>\n';return __p}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[391],{511:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<script type="text/ng-template" id="popover-content-user.html">\n\t<h5>{{\'security.user.may\' | translate}}</h5>\n\t<ul>\n <li>{{\'security.use.gdb\' | translate}}</li>\n\t <li>{{\'security.grant.read.access\' | translate}}</li>\n\t\t<li>{{\'security.grant.read.write.access\' | translate}}</li>\n </ul>\n<\/script>\n\n<script type="text/ng-template" id="popover-content-repo-manager.html">\n\t<h5>{{\'security.repo.manager.may\' | translate}}</h5>\n\t<ul>\n\t\t<li>{{\'security.use.gdb\' | translate}}</li>\n\t\t<li>{{\'security.read.write.all.repos\' | translate}}</li>\n\t\t<li>{{\'security.create.edit.delete.repos\' | translate}}</li>\n\t\t<li>{{\'security.access.monitoring\' | translate}}</li>\n\t</ul>\n<\/script>\n\n<script type="text/ng-template" id="popover-content-admin.html">\n\t<h5>{{\'security.admin.may\' | translate}}</h5>\n\t<ul>\n\t\t<li>{{\'security.use.gdb\' | translate}}</li>\n\t\t<li>{{\'security.read.write.all.repos\' | translate}}</li>\n\t\t<li>{{\'security.create.edit.delete.repos\' | translate}}</li>\n\t\t<li>{{\'security.access.monitoring\' | translate}}</li>\n\t\t<li>{{\'security.attach.remote.locations\' | translate}}</li>\n\t\t<li>{{\'security.manage.users.access\' | translate}}</li>\n\t\t<li>{{\'security.manage.cluster\' | translate}}</li>\n\t\t<li>{{\'security.view.sys.info\' | translate}}</li>\n\t</ul>\n<\/script>\n\n<link href="css/lib/ng-tags-input/ng-tags-input.min.css?v=2.8.6-release" rel="stylesheet"/>\n\n<h1>\n {{pageTitle}}\n <page-info-tooltip></page-info-tooltip>\n</h1>\n\n<div id="wb-user" ng-hide="loader">\n\t<form name="form" class="form newUserForm userForm editUserContainer" ng-submit="submit()" novalidate>\n\t\t<div class="row">\n\t\t\t<div class="col-md-6 us-left-col">\n\t\t\t\t<div class="card login-credentials" ng-hide="isOverrideAuth() || !isLocalAuthentication()">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'view.login.title\' | translate}}</h3>\n\t\t\t\t\t\t<div class="form-group" ng-class="{\'has-danger\': usernameError}">\n\t\t\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t\t\t<span class="input-group-addon" gdb-tooltip="{{\'security.table.username\' | translate}}"><em class="icon-user icon-2x text-muted"></em></span>\n\t\t\t\t\t\t\t\t<input id="wb-user-username" placeholder="{{\'security.table.username\' | translate}}" name="username" class="form-control form-control-lg" type="text" ng-model="user.username" ng-readonly="mode !== \'add\'">\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div ng-show="usernameError" class="form-control-feedback">{{usernameError}}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="form-group" ng-class="{\'has-danger\': passwordError}">\n\t\t\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t\t\t<span class="input-group-addon" gdb-tooltip="{{\'security.password.placeholder\' | translate}}"><em class="icon-lock icon-2x text-muted"></em></span>\n\t\t\t\t\t\t\t\t<input id="wb-user-password" placeholder="{{passwordPlaceholder | translate}}" name="password" class="form-control form-control-lg" type="password"\tng-model="user.password" ng-hide="user.external || hasExternalAuthUser()" ng-readonly="noPassword">\n\t\t\t\t\t\t\t\t<span ng-show="user.external || hasExternalAuthUser()">{{\'security.auth.from.external.module\' | translate}}</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div ng-show="passwordError" class="form-control-feedback">{{passwordError}}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="form-group" ng-class="{\'has-danger\': confirmPasswordError}" ng-hide="user.external || hasExternalAuthUser()">\n\t\t\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t\t\t<span class="input-group-addon" gdb-tooltip="{{\'security.password.confirm\' | translate}}"><em class="icon-lock icon-2x text-muted"></em></span>\n\t\t\t\t\t\t\t\t<input id="wb-user-confirmpassword" placeholder="{{\'security.password.confirm\' | translate}}" name="password_confirm" class="form-control form-control-lg" type="password" ng-model="user.confirmpassword" ng-readonly="noPassword">\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div ng-show="confirmPasswordError" class="form-control-feedback">{{confirmPasswordError}}</div>\n\t\t\t\t\t\t</div>\n <div>\n <label class="d-block">\n <input type="checkbox" id="noPassword" ng-model="noPassword" ng-change="setNoPassword()">\n <span ng-show="mode === \'add\'">{{\'security.dont.set.password\' | translate}} </span>\n <span ng-show="mode !== \'add\'">{{\'security.unset.password\' | translate}} </span>\n </label>\n </div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div class="card sparql-editor-settings" id="user-settings">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.user.settings\' | translate}}</h3>\n\n\t\t\t\t\t\t<div id="sameas-on" class="mb-1">\n\t\t\t\t\t\t\t<span class="sameas-label">\n\t\t\t\t\t\t\t\t{{\'security.expand.sameAs.is\' | translate}}\n\t\t\t\t\t\t\t\t<span class="tag {{user.appSettings.DEFAULT_SAMEAS ? \'tag-primary\' : \'tag-default\'}}">\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_SAMEAS ? \'common.on.btn\' : \'common.off.btn\' | translate}}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span gdb-tooltip="{{shouldDisableSameAs() ? \'core.require.inferred\' : \'security.tooltip.click.me\' | translate}}" tooltip-placement="top"\n\t\t\t\t\t\t\t\t ng-click="user.appSettings.DEFAULT_SAMEAS = !user.appSettings.DEFAULT_SAMEAS"\n\t\t\t\t\t\t\t\t class="switch mr-0">\n\t\t\t\t\t\t\t\t<input id="sameAsCheck" type="checkbox" class="switch"\n ng-checked="user.appSettings.DEFAULT_SAMEAS"\n ng-disabled="shouldDisableSameAs()"/>\n\t\t\t\t\t\t\t\t<label for="sameas-on"></label>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t{{\'security.default.editor.graph\' | translate}}\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div id="inference-on" class="mb-1">\n\t\t\t\t\t\t\t<span class="inference-label">\n\t\t\t\t\t\t\t\t{{\'security.inference.is\' | translate}}\n\t\t\t\t\t\t\t\t<span class="tag {{user.appSettings.DEFAULT_INFERENCE ? \'tag-primary\' : \'tag-default\'}}">\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_INFERENCE ? \'common.on.btn\' : \'common.off.btn\' | translate}}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span gdb-tooltip="{{\'security.tooltip.click.me\' | translate}}" tooltip-placement="top"\n\t\t\t\t\t\t\t\t ng-click="user.appSettings.DEFAULT_INFERENCE = !user.appSettings.DEFAULT_INFERENCE"\n\t\t\t\t\t\t\t\t class="switch mr-0">\n\t\t\t\t\t\t\t\t<input type="checkbox" class="switch" ng-checked="user.appSettings.DEFAULT_INFERENCE"/>\n\t\t\t\t\t\t\t\t<label for="inference-on"></label>\n\t\t\t\t\t\t\t</span>\n {{\'security.default.editor.graph\' | translate}}\n\t\t\t\t\t\t</div>\n\n <div id="schema-on" class="mb-1">\n\t\t\t\t\t\t\t<span class="schema-label">\n\t\t\t\t\t\t\t\t{{\'security.show.schema\' | translate}}\n\t\t\t\t\t\t\t\t<span class="tag {{user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA ? \'tag-primary\' : \'tag-default\'}}">\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA ? \'common.on.btn\' : \'common.off.btn\' | translate}}\n\t\t\t\t\t\t\t\t</span>\n <span gdb-tooltip="{{\'security.tooltip.click.me\' | translate}}" tooltip-placement="top"\n ng-click="user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA = !user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA"\n class="switch mr-0">\n\t\t\t\t\t\t\t\t<input type="checkbox" class="switch" ng-checked="user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA"/>\n\t\t\t\t\t\t\t\t<label for="schema-on"></label>\n\t\t\t\t\t\t\t</span>\n {{\'security.default.visual.graph\' | translate}}\n\t\t\t\t\t\t\t</span>\n </div>\n\n\t\t\t\t\t\t<label class="d-block">\n\t\t\t\t\t\t\t<input type="checkbox" ng-model="user.appSettings.EXECUTE_COUNT" id="defaultCount" checked="appSettings.EXECUTE_COUNT">\n\t\t\t\t\t\t\t{{\'security.count.total.results\' | translate}}\n\t\t\t\t\t\t</label>\n\n\t\t\t\t\t\t<label class="d-block">\n\t\t\t\t\t\t\t<input type="checkbox" ng-model="user.appSettings.IGNORE_SHARED_QUERIES" id="ignore-shared" checked="appSettings.IGNORE_SHARED_QUERIES">\n\t\t\t\t\t\t\t{{\'security.ignore.shared.queries\' | translate}}\n\t\t\t\t\t\t</label>\n\n <label class="d-block" ng-if="showCookiePolicyLink">\n <button class="btn btn-secondary show-cookie-policy-btn" ng-click="showCookiePolicy($event)">{{\'cookie.cookie_policy_url_label\' | translate}}</button>\n </label>\n\n </div>\n\t\t\t\t</div>\n\n\t\t\t\t<div class="card" id="workbench-settings" ng-if="showWorkbenchSettings">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.workbench.settings.title\' | translate}}\n\t\t\t\t\t\t\t<em class="icon-info text-tertiary small" gdb-tooltip="{{\'security.workbench.settings.theme.tooltip\' | translate}}"></em></h3>\n\t\t\t\t\t\t<div>\n <div class="form-group">\n <label class="col-lg-2">{{\'security.workbench.settings.theme.label\' | translate}}</label>\n <div class="btn-group theme-selector-dropdown" uib-dropdown>\n <button type="button" class="btn btn-sm btn-secondary dropdown-toggle theme-selector-dropdown-btn" uib-dropdown-toggle>\n {{selectedTheme.label}}\n </button>\n <ul class="dropdown-menu" role="menu">\n <li ng-repeat="theme in themes">\n <a ng-click="setTheme(theme)" class="dropdown-item">{{theme.label}}</a>\n </li>\n </ul>\n </div>\n </div>\n\n <div class="form-group">\n <label class="col-lg-2">{{\'security.workbench.settings.theme.mode.label\' | translate}}</label>\n <div class="radio">\n <label class="px-1">\n <input type="radio" value="light" ng-model="workbenchSettings.mode" ng-change="setThemeMode()"/>\n {{\'security.workbench.settings.theme.mode.light\' | translate}}\n </label>\n <label class="px-1">\n <input type="radio" value="dark" ng-model="workbenchSettings.mode" ng-change="setThemeMode()"/>\n {{\'security.workbench.settings.theme.mode.dark\' | translate}}\n </label>\n </div>\n </div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class="col-md-6 us-right-col" ng-hide="!isLocalAuthentication()">\n\t\t\t\t<div class="card user-role" id="user-roles">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.user.role\' | translate}}</h3>\n\t\t\t\t\t\t<label class="mr-1"\n\t\t\t\t\t\t\t uib-popover-template="\'popover-content-user.html\'"\n\t\t\t\t\t\t\t popover-trigger="mouseenter"\n\t\t\t\t\t\t\t popover-placement="bottom">\n\t\t\t\t\t\t\t<input type="radio" ng-model="userType" id="roleUser" value="user" ng-disabled="hasEditRestrictions()" >\n\t\t\t\t\t\t\t{{\'security.user.label\' | translate}}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t\t<label class="mr-1"\n\t\t\t\t\t\t\t uib-popover-template="\'popover-content-repo-manager.html\'"\n\t\t\t\t\t\t\t popover-trigger="mouseenter"\n\t\t\t\t\t\t\t popover-placement="bottom">\n\t\t\t\t\t\t\t<input type="radio" ng-model="userType" id="roleRepoAdmin" value="repoManager" ng-disabled="hasEditRestrictions()">\n\t\t\t\t\t\t\t{{\'security.repo.manager.label\' | translate}}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t\t<label uib-popover-template="\'popover-content-admin.html\'"\n\t\t\t\t\t\t\t popover-trigger="mouseenter"\n\t\t\t\t\t\t\t popover-placement="bottom">\n\t\t\t\t\t\t\t<input type="radio" ng-model="userType" id="roleAdmin" value="admin" ng-disabled="hasEditRestrictions()">\n\t\t\t\t\t\t\t{{\'security.admin.label\' | translate}}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n <div class="card user-custom-roles" id="user-custom-roles">\n <div class="card-block">\n <h3>{{\'security.user.custom_role\' | translate}}</h3>\n <div class="input-group">\n <tags-input name="customRoleTag" class="wb-tags-input" ng-model="customRoles" min-length="1"\n ng-disabled="!isUser() || mode === \'settings\'"\n use-strings="true"\n add-on-space="true"\n add-on-comma="true"\n add-on-paste="true"\n replace-spaces-with-dashes="false"\n paste-split-pattern="[\\s+]"\n on-tag-adding="isCustomRoleValid($tag)"\n on-tag-added="addCustomRole($tag)"\n ng-keydown="checkUserInput($event)"\n ng-cut="removeErrorOnCut()"\n placeholder="{{\'security.user.add.custom_role.msg\' | translate}}"\n custom-prefix-tags-input></tags-input>\n <div class="small" ng-hide="isRoleValid">\n <small>{{\'security.user.role.too.short\' | translate}}</small>\n </div>\n <div class="small prefix-warning" ng-if="form.customRoleTag.$warning">\n <small>{{\'acl_management.rulestable.custom_prefix_warning.text\' | translate}}</small>\n </div>\n </div>\n </div>\n </div>\n\n\t\t\t\t<div id="user-repos" class="card user-repositories">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.repo.rights\' | translate}}</h3>\n\t\t\t\t\t\t<div class="has-danger">\n\t\t\t\t\t\t\t<p ng-show="repositoryCheckError" class="form-control-feedback">\n\t\t\t\t\t\t\t\t{{\'security.user.rights\' | translate}}\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</div>\n <div class="scrollable-table">\n <table class="table table-hover table-sm" aria-describedby="User rights table">\n <thead>\n <tr>\n <th id="repositoryIdColumn">{{\'security.repository.title\' | translate}}</th>\n <th id="readRightsColumn" class="text-xs-center"><em class="icon-eye icon-lg" gdb-tooltip="{{\'security.tooltip.read\' | translate}}"></em></th>\n <th id="writeRightColumn" class="text-xs-center"><em class="icon-edit icon-lg" gdb-tooltip="{{\'security.tooltip.write\' | translate}}"></em></th>\n </tr>\n <tr>\n <th>{{\'security.any.data.repo\' | translate}}\n <em class="icon-info text-tertiary" gdb-tooltip="{{\'security.data.repos\' | translate}}"></em>\n </th>\n <th class="text-xs-center">\n <input class="read" type="checkbox" ng-model="grantedAuthorities.READ_REPO[\'*\']" ng-checked="hasReadPermission(\'*\')" ng-disabled="readCheckDisabled(\'*\')" ng-click="setGrantedAuthorities()">\n </th>\n <th class="text-xs-center">\n <input class="write" type="checkbox" ng-model="grantedAuthorities.WRITE_REPO[\'*\']" ng-checked="hasWritePermission(\'*\')" ng-disabled="writeCheckDisabled(\'*\')" ng-click="setGrantedAuthorities()">\n </th>\n </tr>\n </thead>\n <tbody>\n <div>\n <tr ng-repeat="repository in getReadableRepositories() | orderBy: [\'location\', \'id\']">\n <td class="repository-name">{{repository.id}}<small> · {{repository.location ? repository.location : \'Local\'}}</small></td>\n <td class="text-xs-center read-rights"><input class="read" type="checkbox" ng-model="grantedAuthorities.READ_REPO[createUniqueKey(repository)]" ng-checked="hasReadPermission(repository)" ng-disabled="readCheckDisabled(repository)" ng-click="setGrantedAuthorities()"></td>\n <td class="text-xs-center write-rights"><input class="write" type="checkbox" ng-model="grantedAuthorities.WRITE_REPO[createUniqueKey(repository)]" ng-checked="hasWritePermission(repository)" ng-disabled="writeCheckDisabled(repository)" ng-click="setGrantedAuthorities()"></td>\n </tr>\n </div>\n </tbody>\n </table>\n </div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n </div>\n\t\t</div>\n\n\t\t<div class="text-right">\n <button id="wb-user-goBack" class="btn btn-secondary" type="button" ng-click="goBack()">{{\'common.cancel.btn\' | translate}}</button>\n <button id="wb-user-submit" class="btn btn-primary" type="submit" ng-disabled="!isRoleValid">{{saveButtonText}}</button>\n\t\t</div>\n\t</form>\n</div>\n<div class="ot-loader ot-main-loader" onto-loader size="50" ng-show="loader"></div>\n\n\n\n';return __p}}}]);
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[391],{511:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<script type="text/ng-template" id="popover-content-user.html">\n\t<h5>{{\'security.user.may\' | translate}}</h5>\n\t<ul>\n <li>{{\'security.use.gdb\' | translate}}</li>\n\t <li>{{\'security.grant.read.access\' | translate}}</li>\n\t\t<li>{{\'security.grant.read.write.access\' | translate}}</li>\n </ul>\n<\/script>\n\n<script type="text/ng-template" id="popover-content-repo-manager.html">\n\t<h5>{{\'security.repo.manager.may\' | translate}}</h5>\n\t<ul>\n\t\t<li>{{\'security.use.gdb\' | translate}}</li>\n\t\t<li>{{\'security.read.write.all.repos\' | translate}}</li>\n\t\t<li>{{\'security.create.edit.delete.repos\' | translate}}</li>\n\t\t<li>{{\'security.access.monitoring\' | translate}}</li>\n\t</ul>\n<\/script>\n\n<script type="text/ng-template" id="popover-content-admin.html">\n\t<h5>{{\'security.admin.may\' | translate}}</h5>\n\t<ul>\n\t\t<li>{{\'security.use.gdb\' | translate}}</li>\n\t\t<li>{{\'security.read.write.all.repos\' | translate}}</li>\n\t\t<li>{{\'security.create.edit.delete.repos\' | translate}}</li>\n\t\t<li>{{\'security.access.monitoring\' | translate}}</li>\n\t\t<li>{{\'security.attach.remote.locations\' | translate}}</li>\n\t\t<li>{{\'security.manage.users.access\' | translate}}</li>\n\t\t<li>{{\'security.manage.cluster\' | translate}}</li>\n\t\t<li>{{\'security.view.sys.info\' | translate}}</li>\n\t</ul>\n<\/script>\n\n<link href="css/lib/ng-tags-input/ng-tags-input.min.css?v=2.8.8-TR1" rel="stylesheet"/>\n\n<h1>\n {{pageTitle}}\n <page-info-tooltip></page-info-tooltip>\n</h1>\n\n<div id="wb-user" ng-hide="loader">\n\t<form name="form" class="form newUserForm userForm editUserContainer" ng-submit="submit()" novalidate>\n\t\t<div class="row">\n\t\t\t<div class="col-md-6 us-left-col">\n\t\t\t\t<div class="card login-credentials" ng-hide="isOverrideAuth() || !isLocalAuthentication()">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'view.login.title\' | translate}}</h3>\n\t\t\t\t\t\t<div class="form-group" ng-class="{\'has-danger\': usernameError}">\n\t\t\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t\t\t<span class="input-group-addon" gdb-tooltip="{{\'security.table.username\' | translate}}"><em class="icon-user icon-2x text-muted"></em></span>\n\t\t\t\t\t\t\t\t<input id="wb-user-username" placeholder="{{\'security.table.username\' | translate}}" name="username" class="form-control form-control-lg" type="text" ng-model="user.username" ng-readonly="mode !== \'add\'">\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div ng-show="usernameError" class="form-control-feedback">{{usernameError}}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="form-group" ng-class="{\'has-danger\': passwordError}">\n\t\t\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t\t\t<span class="input-group-addon" gdb-tooltip="{{\'security.password.placeholder\' | translate}}"><em class="icon-lock icon-2x text-muted"></em></span>\n\t\t\t\t\t\t\t\t<input id="wb-user-password" placeholder="{{passwordPlaceholder | translate}}" name="password" class="form-control form-control-lg" type="password"\tng-model="user.password" ng-hide="user.external || hasExternalAuthUser()" ng-readonly="noPassword">\n\t\t\t\t\t\t\t\t<span ng-show="user.external || hasExternalAuthUser()">{{\'security.auth.from.external.module\' | translate}}</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div ng-show="passwordError" class="form-control-feedback">{{passwordError}}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="form-group" ng-class="{\'has-danger\': confirmPasswordError}" ng-hide="user.external || hasExternalAuthUser()">\n\t\t\t\t\t\t\t<div class="input-group">\n\t\t\t\t\t\t\t\t<span class="input-group-addon" gdb-tooltip="{{\'security.password.confirm\' | translate}}"><em class="icon-lock icon-2x text-muted"></em></span>\n\t\t\t\t\t\t\t\t<input id="wb-user-confirmpassword" placeholder="{{\'security.password.confirm\' | translate}}" name="password_confirm" class="form-control form-control-lg" type="password" ng-model="user.confirmpassword" ng-readonly="noPassword">\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div ng-show="confirmPasswordError" class="form-control-feedback">{{confirmPasswordError}}</div>\n\t\t\t\t\t\t</div>\n <div>\n <label class="d-block">\n <input type="checkbox" id="noPassword" ng-model="noPassword" ng-change="setNoPassword()">\n <span ng-show="mode === \'add\'">{{\'security.dont.set.password\' | translate}} </span>\n <span ng-show="mode !== \'add\'">{{\'security.unset.password\' | translate}} </span>\n </label>\n </div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div class="card sparql-editor-settings" id="user-settings">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.user.settings\' | translate}}</h3>\n\n\t\t\t\t\t\t<div id="sameas-on" class="mb-1">\n\t\t\t\t\t\t\t<span class="sameas-label">\n\t\t\t\t\t\t\t\t{{\'security.expand.sameAs.is\' | translate}}\n\t\t\t\t\t\t\t\t<span class="tag {{user.appSettings.DEFAULT_SAMEAS ? \'tag-primary\' : \'tag-default\'}}">\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_SAMEAS ? \'common.on.btn\' : \'common.off.btn\' | translate}}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span gdb-tooltip="{{shouldDisableSameAs() ? \'core.require.inferred\' : \'security.tooltip.click.me\' | translate}}" tooltip-placement="top"\n\t\t\t\t\t\t\t\t ng-click="user.appSettings.DEFAULT_SAMEAS = !user.appSettings.DEFAULT_SAMEAS"\n\t\t\t\t\t\t\t\t class="switch mr-0">\n\t\t\t\t\t\t\t\t<input id="sameAsCheck" type="checkbox" class="switch"\n ng-checked="user.appSettings.DEFAULT_SAMEAS"\n ng-disabled="shouldDisableSameAs()"/>\n\t\t\t\t\t\t\t\t<label for="sameas-on"></label>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t{{\'security.default.editor.graph\' | translate}}\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div id="inference-on" class="mb-1">\n\t\t\t\t\t\t\t<span class="inference-label">\n\t\t\t\t\t\t\t\t{{\'security.inference.is\' | translate}}\n\t\t\t\t\t\t\t\t<span class="tag {{user.appSettings.DEFAULT_INFERENCE ? \'tag-primary\' : \'tag-default\'}}">\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_INFERENCE ? \'common.on.btn\' : \'common.off.btn\' | translate}}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span gdb-tooltip="{{\'security.tooltip.click.me\' | translate}}" tooltip-placement="top"\n\t\t\t\t\t\t\t\t ng-click="user.appSettings.DEFAULT_INFERENCE = !user.appSettings.DEFAULT_INFERENCE"\n\t\t\t\t\t\t\t\t class="switch mr-0">\n\t\t\t\t\t\t\t\t<input type="checkbox" class="switch" ng-checked="user.appSettings.DEFAULT_INFERENCE"/>\n\t\t\t\t\t\t\t\t<label for="inference-on"></label>\n\t\t\t\t\t\t\t</span>\n {{\'security.default.editor.graph\' | translate}}\n\t\t\t\t\t\t</div>\n\n <div id="schema-on" class="mb-1">\n\t\t\t\t\t\t\t<span class="schema-label">\n\t\t\t\t\t\t\t\t{{\'security.show.schema\' | translate}}\n\t\t\t\t\t\t\t\t<span class="tag {{user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA ? \'tag-primary\' : \'tag-default\'}}">\n\t\t\t\t\t\t\t\t\t{{user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA ? \'common.on.btn\' : \'common.off.btn\' | translate}}\n\t\t\t\t\t\t\t\t</span>\n <span gdb-tooltip="{{\'security.tooltip.click.me\' | translate}}" tooltip-placement="top"\n ng-click="user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA = !user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA"\n class="switch mr-0">\n\t\t\t\t\t\t\t\t<input type="checkbox" class="switch" ng-checked="user.appSettings.DEFAULT_VIS_GRAPH_SCHEMA"/>\n\t\t\t\t\t\t\t\t<label for="schema-on"></label>\n\t\t\t\t\t\t\t</span>\n {{\'security.default.visual.graph\' | translate}}\n\t\t\t\t\t\t\t</span>\n </div>\n\n\t\t\t\t\t\t<label class="d-block">\n\t\t\t\t\t\t\t<input type="checkbox" ng-model="user.appSettings.EXECUTE_COUNT" id="defaultCount" checked="appSettings.EXECUTE_COUNT">\n\t\t\t\t\t\t\t{{\'security.count.total.results\' | translate}}\n\t\t\t\t\t\t</label>\n\n\t\t\t\t\t\t<label class="d-block">\n\t\t\t\t\t\t\t<input type="checkbox" ng-model="user.appSettings.IGNORE_SHARED_QUERIES" id="ignore-shared" checked="appSettings.IGNORE_SHARED_QUERIES">\n\t\t\t\t\t\t\t{{\'security.ignore.shared.queries\' | translate}}\n\t\t\t\t\t\t</label>\n\n <label class="d-block" ng-if="showCookiePolicyLink">\n <button class="btn btn-secondary show-cookie-policy-btn" ng-click="showCookiePolicy($event)">{{\'cookie.cookie_policy_url_label\' | translate}}</button>\n </label>\n\n </div>\n\t\t\t\t</div>\n\n\t\t\t\t<div class="card" id="workbench-settings" ng-if="showWorkbenchSettings">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.workbench.settings.title\' | translate}}\n\t\t\t\t\t\t\t<em class="icon-info text-tertiary small" gdb-tooltip="{{\'security.workbench.settings.theme.tooltip\' | translate}}"></em></h3>\n\t\t\t\t\t\t<div>\n <div class="form-group">\n <label class="col-lg-2">{{\'security.workbench.settings.theme.label\' | translate}}</label>\n <div class="btn-group theme-selector-dropdown" uib-dropdown>\n <button type="button" class="btn btn-sm btn-secondary dropdown-toggle theme-selector-dropdown-btn" uib-dropdown-toggle>\n {{selectedTheme.label}}\n </button>\n <ul class="dropdown-menu" role="menu">\n <li ng-repeat="theme in themes">\n <a ng-click="setTheme(theme)" class="dropdown-item">{{theme.label}}</a>\n </li>\n </ul>\n </div>\n </div>\n\n <div class="form-group">\n <label class="col-lg-2">{{\'security.workbench.settings.theme.mode.label\' | translate}}</label>\n <div class="radio">\n <label class="px-1">\n <input type="radio" value="light" ng-model="workbenchSettings.mode" ng-change="setThemeMode()"/>\n {{\'security.workbench.settings.theme.mode.light\' | translate}}\n </label>\n <label class="px-1">\n <input type="radio" value="dark" ng-model="workbenchSettings.mode" ng-change="setThemeMode()"/>\n {{\'security.workbench.settings.theme.mode.dark\' | translate}}\n </label>\n </div>\n </div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class="col-md-6 us-right-col" ng-hide="!isLocalAuthentication()">\n\t\t\t\t<div class="card user-role" id="user-roles">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.user.role\' | translate}}</h3>\n\t\t\t\t\t\t<label class="mr-1"\n\t\t\t\t\t\t\t uib-popover-template="\'popover-content-user.html\'"\n\t\t\t\t\t\t\t popover-trigger="mouseenter"\n\t\t\t\t\t\t\t popover-placement="bottom">\n\t\t\t\t\t\t\t<input type="radio" ng-model="userType" id="roleUser" value="user" ng-disabled="hasEditRestrictions()" >\n\t\t\t\t\t\t\t{{\'security.user.label\' | translate}}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t\t<label class="mr-1"\n\t\t\t\t\t\t\t uib-popover-template="\'popover-content-repo-manager.html\'"\n\t\t\t\t\t\t\t popover-trigger="mouseenter"\n\t\t\t\t\t\t\t popover-placement="bottom">\n\t\t\t\t\t\t\t<input type="radio" ng-model="userType" id="roleRepoAdmin" value="repoManager" ng-disabled="hasEditRestrictions()">\n\t\t\t\t\t\t\t{{\'security.repo.manager.label\' | translate}}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t\t<label uib-popover-template="\'popover-content-admin.html\'"\n\t\t\t\t\t\t\t popover-trigger="mouseenter"\n\t\t\t\t\t\t\t popover-placement="bottom">\n\t\t\t\t\t\t\t<input type="radio" ng-model="userType" id="roleAdmin" value="admin" ng-disabled="hasEditRestrictions()">\n\t\t\t\t\t\t\t{{\'security.admin.label\' | translate}}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n <div class="card user-custom-roles" id="user-custom-roles">\n <div class="card-block">\n <h3>{{\'security.user.custom_role\' | translate}}</h3>\n <div class="input-group">\n <tags-input name="customRoleTag" class="wb-tags-input" ng-model="customRoles" min-length="1"\n ng-disabled="!isUser() || mode === \'settings\'"\n use-strings="true"\n add-on-space="true"\n add-on-comma="true"\n add-on-paste="true"\n replace-spaces-with-dashes="false"\n paste-split-pattern="[\\s+]"\n on-tag-adding="isCustomRoleValid($tag)"\n on-tag-added="addCustomRole($tag)"\n ng-keydown="checkUserInput($event)"\n ng-cut="removeErrorOnCut()"\n placeholder="{{\'security.user.add.custom_role.msg\' | translate}}"\n custom-prefix-tags-input></tags-input>\n <div class="small" ng-hide="isRoleValid">\n <small>{{\'security.user.role.too.short\' | translate}}</small>\n </div>\n <div class="small prefix-warning" ng-if="form.customRoleTag.$warning">\n <small>{{\'acl_management.rulestable.custom_prefix_warning.text\' | translate}}</small>\n </div>\n </div>\n </div>\n </div>\n\n\t\t\t\t<div id="user-repos" class="card user-repositories">\n\t\t\t\t\t<div class="card-block">\n\t\t\t\t\t\t<h3>{{\'security.repo.rights\' | translate}}</h3>\n\t\t\t\t\t\t<div class="has-danger">\n\t\t\t\t\t\t\t<p ng-show="repositoryCheckError" class="form-control-feedback">\n\t\t\t\t\t\t\t\t{{\'security.user.rights\' | translate}}\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</div>\n <div class="scrollable-table">\n <table class="table table-hover table-sm" aria-describedby="User rights table">\n <thead>\n <tr>\n <th id="repositoryIdColumn">{{\'security.repository.title\' | translate}}</th>\n <th id="readRightsColumn" class="text-xs-center"><em class="icon-eye icon-lg" gdb-tooltip="{{\'security.tooltip.read\' | translate}}"></em></th>\n <th id="writeRightColumn" class="text-xs-center"><em class="icon-edit icon-lg" gdb-tooltip="{{\'security.tooltip.write\' | translate}}"></em></th>\n </tr>\n <tr>\n <th>{{\'security.any.data.repo\' | translate}}\n <em class="icon-info text-tertiary" gdb-tooltip="{{\'security.data.repos\' | translate}}"></em>\n </th>\n <th class="text-xs-center">\n <input class="read" type="checkbox" ng-model="grantedAuthorities.READ_REPO[\'*\']" ng-checked="hasReadPermission(\'*\')" ng-disabled="readCheckDisabled(\'*\')" ng-click="setGrantedAuthorities()">\n </th>\n <th class="text-xs-center">\n <input class="write" type="checkbox" ng-model="grantedAuthorities.WRITE_REPO[\'*\']" ng-checked="hasWritePermission(\'*\')" ng-disabled="writeCheckDisabled(\'*\')" ng-click="setGrantedAuthorities()">\n </th>\n </tr>\n </thead>\n <tbody>\n <div>\n <tr ng-repeat="repository in getReadableRepositories() | orderBy: [\'location\', \'id\']">\n <td class="repository-name">{{repository.id}}<small> · {{repository.location ? repository.location : \'Local\'}}</small></td>\n <td class="text-xs-center read-rights"><input class="read" type="checkbox" ng-model="grantedAuthorities.READ_REPO[createUniqueKey(repository)]" ng-checked="hasReadPermission(repository)" ng-disabled="readCheckDisabled(repository)" ng-click="setGrantedAuthorities()"></td>\n <td class="text-xs-center write-rights"><input class="write" type="checkbox" ng-model="grantedAuthorities.WRITE_REPO[createUniqueKey(repository)]" ng-checked="hasWritePermission(repository)" ng-disabled="writeCheckDisabled(repository)" ng-click="setGrantedAuthorities()"></td>\n </tr>\n </div>\n </tbody>\n </table>\n </div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n </div>\n\t\t</div>\n\n\t\t<div class="text-right">\n <button id="wb-user-goBack" class="btn btn-secondary" type="button" ng-click="goBack()">{{\'common.cancel.btn\' | translate}}</button>\n <button id="wb-user-submit" class="btn btn-primary" type="submit" ng-disabled="!isRoleValid">{{saveButtonText}}</button>\n\t\t</div>\n\t</form>\n</div>\n<div class="ot-loader ot-main-loader" onto-loader size="50" ng-show="loader"></div>\n\n\n\n';return __p}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[403],{525:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/agent-list.css?v=2.8.
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[403],{525:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/agent-list.css?v=2.8.8-TR1" rel="stylesheet"/>\n\n<div class="agent-list-component">\n <div class="agents-filter-dropdown btn-group" uib-dropdown>\n <button type="button" uib-dropdown-toggle class="btn btn-outline-primary dropdown-toggle">\n <i class="fa-kit fa-gdb-repo-graphdb mr-1"></i>\n <span class="selected-filter">{{selectedAgentsFilter.label}}</span>\n <i class="fa fa-filter" gdb-tooltip="{{\'ttyg.agent.btn.filter.tooltip\' | translate}}"></i>\n </button>\n <ul class="dropdown-menu" role="menu">\n <li ng-repeat="filterModel in agentListFilterModel">\n <button type="button" class="dropdown-item" ng-click="onAgentsFilterChange(filterModel)"\n data-value="{{filterModel.label}}">\n {{filterModel.label}}\n </button>\n </li>\n </ul>\n </div>\n\n <div class="agent-list">\n <div ng-if="!agentList.agents.length" class="alert alert-warning">\n {{\'ttyg.agent.messages.no_agents\' | translate}}\n </div>\n\n <div ng-repeat="agent in agentList.filterableAgents">\n <div ng-if="!deletingAgent || deletingAgent.agentId !== agent.id" class="agent-item"\n ng-class="{\'selected\': agent.id === selectedAgent.id}">\n <div class="agent-info">\n <div class="agent-name">{{agent.name}}</div>\n <div class="related-repository">\n <i ng-if="!agent.isRepositoryDeleted" class="fa-kit fa-gdb-repo-graphdb"></i>\n <i ng-if="agent.isRepositoryDeleted"\n class="fa fa-triangle-exclamation text-warning agent-with-deleted-repository"\n gdb-tooltip="{{\'ttyg.agent.deleted_repository\' | translate}}">\n </i>\n {{agent.repositoryId}}\n </div>\n </div>\n <div class="btn-group">\n <button class="btn btn-link secondary btn-sm open-agent-actions-btn"\n data-toggle="dropdown" aria-expanded="false"\n ng-if="true"\n ng-click="openAgentActionMenu()"\n ng-disabled="false">\n <i class="fa fa-ellipsis"></i>\n </button>\n <div class="dropdown-menu dropdown-menu-right agent-actions-menu">\n <button class="dropdown-item edit-agent-btn" type="button" ng-click="onEditAgent(agent)">\n <i class="fa fa-gear"></i>\n <span>{{\'ttyg.agent.btn.edit_agent.label\' | translate}}</span>\n </button>\n <button class="dropdown-item clone-agent-btn" type="button" ng-click="onCloneAgent(agent)">\n <i class="fa fa-clone"></i>\n <span>{{\'ttyg.agent.btn.clone_agent.label\' | translate}}</span>\n </button>\n <div class="dropdown-divider"></div>\n <button class="dropdown-item delete-agent-btn" type="button" ng-click="onDeleteAgent(agent)">\n <i class="fa fa-trash-can"></i>\n <span>{{\'ttyg.agent.btn.delete_agent.label\' | translate}}</span>\n </button>\n </div>\n </div>\n </div>\n\n <div class="deleting-agent-loader" ng-if="deletingAgent.agentId === agent.id && deletingAgent.inProgress"\n onto-loader-fancy message="{{\'ttyg.agent.deleting_agent\' | translate}}"\n size="25"></div>\n </div>\n </div>\n</div>\n';return __p}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[404],{526:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/agent-select-menu.css?v=2.8.
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[404],{526:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/agent-select-menu.css?v=2.8.8-TR1" rel="stylesheet"/>\n\n<div class="btn-group agent-select-menu" uib-dropdown>\n <button type="button" class="btn dropdown-toggle-btn" uib-dropdown-toggle\n ng-attr-title="{{selectedAgent && !selectedAgent.isDeleted ? (selectedAgent.name + \' · \' + selectedAgent.repositoryId) : null}}">\n <span ng-if="!selectedAgent">{{\'ttyg.agent.agent_select_menu.no_selection_label\' | translate}}</span>\n <div ng-if="selectedAgent && !selectedAgent.isDeleted" class="selected-agent-option">\n <span class="agent-name">{{selectedAgent.name}}</span> ·\n <i ng-if="!selectedAgent.isRepositoryDeleted" class="fa-kit fa-gdb-repo-graphdb"></i>\n <i ng-if="selectedAgent.isRepositoryDeleted"\n class="fa fa-triangle-exclamation text-warning agent-with-deleted-repository"\n gdb-tooltip="{{\'ttyg.agent.deleted_repository\' | translate}}">\n </i>\n <span class="repository-id">{{selectedAgent.repositoryId}}</span>\n </div>\n <span ng-if="selectedAgent && selectedAgent.isDeleted" class="text-warning">\n <i class="fa fa-triangle-exclamation"></i>\n {{\'ttyg.agent.agent_select_menu.deleted_agent\' | translate}}\n </span>\n <span class="caret"></span>\n </button>\n <ul class="dropdown-menu" uib-dropdown-menu role="menu" aria-labelledby="single-button">\n <li ng-repeat="agentOption in agentOptionsList" role="menuitem" class="agent-menu-item"\n ng-class="{\'selected\': agentOption.selected}"\n ng-attr-title="{{agentOption.label}} · {{agentOption.data.agent.repositoryId}}">\n <a href="#"\n class="agent-option"\n ng-click="onAgentSelected(agentOption.data.agent)">\n <span class="agent-name">{{agentOption.label}}</span> ·\n <i ng-if="!agentOption.data.agent.isRepositoryDeleted" class="fa-kit fa-gdb-repo-graphdb"></i>\n <i ng-if="agentOption.data.agent.isRepositoryDeleted"\n class="fa fa-triangle-exclamation text-warning agent-with-deleted-repository"\n gdb-tooltip="{{\'ttyg.agent.deleted_repository\' | translate}}">\n </i>\n <span class="repository-id">{{agentOption.data.agent.repositoryId}}</span>\n </a>\n </li>\n </ul>\n</div>\n';return __p}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[405],{527:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/chat-item-details.css?v=2.8.
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[405],{527:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/chat-item-details.css?v=2.8.8-TR1" rel="stylesheet"/>\n\n<div class="chat-detail">\n <div class="user-message" ng-if="chatItemDetail.question">\n <div class="question alert-help"\n gdb-tooltip="{{ \'ttyg.chat_panel.labels.question_asked\' | translate : { date: getHumanReadableQuestionTimestamp(chatItemDetail.question.timestamp), time: (chatItemDetail.question.timestamp | date:\'HH:mm\') } }}">\n {{ chatItemDetail.question.message }}\n </div>\n </div>\n <div class="answers" ng-repeat="answer in chatItemDetail.answers">\n <div class="assistant">\n <div class="assistant-icon alert-help"\n gdb-tooltip="{{\'ttyg.chat_panel.labels.agent_name\' | translate : { agentName: agentNameByIdMap[chatItemDetail.agentId], date: getHumanReadableQuestionTimestamp(chatItemDetail.question.timestamp), time: (chatItemDetail.question.timestamp | date:\'HH:mm\') } }}">\n <i class="fa fa-lg fa-message-bot"></i>\n </div>\n <div class="assistant-message">\n <markdown-content class="answer" content="{{answer.message}}" options="markdownContentOptions"></markdown-content>\n <div class="actions" ng-class="{\'hidden-actions\': !explainResponseModel[answer.id].expanded && (!showActions || !$last)}">\n <button class="btn btn-link btn-sm regenerate-question-btn"\n ng-click="regenerateQuestion()"\n ng-disabled="disabled"\n gdb-tooltip="{{\'ttyg.chat_panel.btn.regenerate.tooltip\' | translate}}">\n <i class="fa fa-arrows-rotate"></i>\n </button>\n <copy-to-clipboard tooltip-text="ttyg.chat_panel.btn.copy_answer.tooltip"\n text-to-copy="{{answer.message}}"></copy-to-clipboard>\n <button class="btn btn-link btn-link-only-icons btn-sm explain-response-btn"\n ng-click="explainResponse(answer.id)"\n ng-disabled="disabled && !explainResponseModel[answer.id]"\n gdb-tooltip="{{\'ttyg.chat_panel.btn.explain_response.tooltip\' | translate}}">\n <i class="fa fa-wand-magic-sparkles"></i>\n <i class="fa fa-chevron-up toggle-explain-response-icon"\n ng-class="{expanded: explainResponseModel[answer.id] && explainResponseModel[answer.id].expanded}"></i>\n </button>\n </div>\n <div class="derived-answer-hint"\n ng-if="showActions && $last && explainResponseModel[answer.id].expanded">\n <div ng-bind-html="\'ttyg.chat_panel.btn.derive_answer.hint\' | translate | trustAsHtml"></div>\n <button class="btn btn-secondary deliver-answer-btn" ng-click="onAskHowAnswerWasDerived()">\n {{ \'ttyg.chat_panel.btn.derive_answer.label\' | translate }}\n </button>\n </div>\n <div ng-if="loadingExplainResponse[answer.id]" onto-loader-new size="40"></div>\n <div class="explain-responses" ng-if="explainResponseModel[answer.id] && explainResponseModel[answer.id].expanded">\n <div ng-if="!explainResponseModel[answer.id].queryMethods.items.length"\n class="explain-response">\n {{ \'ttyg.chat_panel.labels.explain_no_methods\' | translate }}\n </div>\n <div ng-if="explainResponseModel[answer.id].queryMethods.items"\n class="explain-response"\n ng-repeat="queryMethod in explainResponseModel[answer.id].queryMethods.items">\n <div class="explain-call">\n <div class="header" gdb-tooltip="">\n <div class="label">\n <span class="query-method" ng-bind-html="\'ttyg.chat_panel.labels.called\' | translate:{name: queryMethod.name} | trustAsHtml">\n </span>{{ \'ttyg.chat_panel.query_colon\' | translate }}\n <span class="query-method-details" ng-bind="(\'ttyg.chat_panel.query_desc.\' + queryMethod.name) | translate">\n </span>\n </div>\n <div ng-if="queryMethod.query" class="actions">\n <open-in-sparql-editor\n ng-if="queryMethod.queryType === ExplainQueryType.SPARQL"\n execute-query="{{!queryMethod.errorMessage}}"\n repository-id="{{repositoryId}}"\n query="{{queryMethod.query}}">\n </open-in-sparql-editor>\n <copy-to-clipboard tooltip-text="ttyg.chat_panel.btn.copy_{{ queryMethod.queryType }}.tooltip"\n text-to-copy="{{queryMethod.query}}"></copy-to-clipboard>\n </div>\n </div>\n <div class="query">\n <div ng-if="!queryMethod.query" class="mb-1">{{ \'ttyg.chat_panel.labels.no_query\' | translate }}</code></div>\n <pre ng-if="queryMethod.query"><code>{{queryMethod.query}}</code></pre>\n </div>\n <div ng-if="showRawQuery(queryMethod)" class="raw-query">\n <span class="label">{{\'ttyg.chat_panel.labels.raw_query\' | translate}}:</span>\n <span class="content">{{queryMethod.rawQuery}}</span>\n <copy-to-clipboard class="copy-to-clipboard-btn" tooltip-text="ttyg.chat_panel.btn.copy_raw_query.tooltip"\n text-to-copy="{{queryMethod.rawQuery}}"></copy-to-clipboard>\n </div>\n <div ng-if="queryMethod.errorMessage" class="alert no-icon alert-warning error-message">\n <div class="error-header">\n <div class="label">{{\'ttyg.chat_panel.labels.error_message\' | translate}}:</div>\n <copy-to-clipboard class="copy-to-clipboard-btn" tooltip-text="ttyg.chat_panel.btn.copy_error_message.tooltip"\n text-to-copy="{{queryMethod.errorMessage}}"></copy-to-clipboard>\n </div>\n <div class="error-content">{{queryMethod.errorMessage}}</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div ng-if="asking" onto-loader-new size="40"></div>\n</div>\n\n';return __p}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[406],{528:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/chat-list.css?v=2.8.
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[406],{528:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/chat-list.css?v=2.8.8-TR1" rel="stylesheet"/>\n\n<div class="chat-list-component">\n <div class="chat-list">\n <div ng-repeat="chatGroup in chatList.chatsByDay" class="chat-group">\n <label>{{ getHumanReadableChatGroupTimestamp(chatGroup.timestamp) }}</label>\n <ul>\n <li ng-repeat="chat in chatGroup.chats track by chat.hash" class="chat-item"\n ng-class="{\'selected\': chat.id === selectedChat.id, \'edited\': renamedChat && chat.id === renamedChat.id}">\n <div ng-if="!deletingChat || deletingChat.chatId !== chat.id" class="chat-detail">\n <div class="chat-name">\n <inline-editable-text\n field-name="name"\n source="chat"\n is-editing="chat.id && renamedChat && chat.id === renamedChat.id"\n on-save="onRenameChat(newText, source)"\n on-cancel="onCancelChatRenaming()"\n on-dblclick="onSelectChatForRenaming(chat)"\n on-click="onSelectChat(source)"\n title="{{chat.name}}"\n show-tooltip-on-overflow>\n </inline-editable-text>\n </div>\n <div ng-if="chat.id && (!renamedChat || chat.id !== renamedChat.id)" class="btn-group">\n <button class="btn btn-link secondary btn-sm open-chat-actions-btn"\n data-toggle="dropdown" aria-expanded="false"\n ng-if="true"\n ng-click="openChatActionMenu()"\n ng-disabled="false">\n <i class="fa fa-ellipsis"></i>\n </button>\n <div class="dropdown-menu dropdown-menu-right chat-actions-menu">\n <button class="dropdown-item export-chat-btn" type="button" ng-click="onExportChat(chat)">\n <i class="fa fa-arrow-down-to-line"></i>\n <span>{{\'ttyg.chat.btn.export_chat.label\' | translate}}</span>\n </button>\n <button class="dropdown-item rename-chat-btn" type="button" ng-click="onSelectChatForRenaming(chat)">\n <i class="fa fa-pen"></i>\n <span>{{\'ttyg.chat.btn.rename_chat.label\' | translate}}</span>\n </button>\n <div class="dropdown-divider"></div>\n <button class="dropdown-item delete-chat-btn" type="button" ng-click="onDeleteChat(chat)">\n <i class="fa fa-trash-can"></i>\n <span>{{\'ttyg.chat.btn.delete_chat.label\' | translate}}</span>\n </button>\n </div>\n </div>\n </div>\n\n <div class="deleting-chat-loader" ng-if="deletingChat && deletingChat.chatId === chat.id && deletingChat.inProgress"\n onto-loader-fancy message="{{\'ttyg.chat.deleting_chat\' | translate}}"\n size="25"></div>\n </li>\n </ul>\n </div>\n </div>\n</div>\n';return __p}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[407],{529:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/chat-panel.css?v=2.8.
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[407],{529:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/chat-panel.css?v=2.8.8-TR1" rel="stylesheet"/>\n\n<div class="chat-panel h-100" ng-class="chat.chatHistory.isEmpty() && !askingChatItem ? \'no-content\' : \'\'">\n\n <div class="chat-loading" ng-if="loadingChat" onto-loader-new size="40"></div>\n\n <div class="chat-details" ng-class="{\'hidden\': !chat}" ng-if="!loadingChat && !chat.chatHistory.isEmpty() || askingChatItem">\n <div ng-repeat="chatItemDetail in chat.chatHistory.items">\n\n \x3c!-- Before the first chat item is displayed, show the agent change info if the agent of the first response is different from the selected agent. --\x3e\n \x3c!-- <div class="alert alert-info agent-changed-info" ng-if="$first && selectedAgent && chatItemDetail.agentId !== selectedAgent.id"--\x3e\n \x3c!-- ng-bind-html="\'ttyg.chat_panel.messages.agent_changed_info\' | trnaslate: {agentName: getAgentName(chatItemDetail.agentId)} | trustAsHtml">--\x3e\n \x3c!-- </div>--\x3e\n\n \x3c!-- Before each chat item, except the first one, is displayed, show the agent change info if the currently used agent is different from the previous one. --\x3e\n <div class="alert alert-info agent-changed-info"\n ng-if="!$first && chatItemDetail.agentId !== chat.chatHistory.items[$index - 1].agentId"\n ng-bind-html="\'ttyg.chat_panel.messages.agent_changed_info\' | translate: {agentName: getAgentName(chatItemDetail.agentId)} | trustAsHtml">\n </div>\n\n <chat-item-detail\n chat-item-detail="chatItemDetail"\n show-actions="!waitingForLastMessage && $last"\n on-regenerate-question="regenerateQuestion(chatItem)"\n on-copy-answer-to-clipboard="copyAnswerToClipboard(chatItem)"\n on-ask-how-delivered-answer="onAskHowDeliveredAnswer(chatItem)"\n asking="!askingChatItem && waitingForLastMessage && $last"\n disabled="waitingForLastMessage">\n </chat-item-detail>\n </div>\n\n \x3c!-- After all chat items are displayed, show the agent change info if the selected agent is different from the one used in the last chat item. --\x3e\n <div class="alert alert-info agent-changed-info"\n ng-if="askingChatItem && selectedAgent && chat.chatHistory.items.length && chat.chatHistory.items[chat.chatHistory.items.length -1].agentId !== selectedAgent.id"\n ng-bind-html="\'ttyg.chat_panel.messages.agent_changed_info\' | translate: {agentName: getAgentName(selectedAgent.id)} | trustAsHtml">\n </div>\n <chat-item-detail ng-if="askingChatItem" chat-item-detail="askingChatItem"\n asking="!!askingChatItem"></chat-item-detail>\n </div>\n <div class="new-question mt-3 d-flex" ng-if="!loadingChat">\n <input class="form-control question-input" ng-model="chatItem.question.message" type="text"\n ng-disabled="waitingForLastMessage || loadingChat || !selectedAgent || selectedAgent.isDeleted"\n ng-keypress="onKeypressOnInput($event)">\n <button class="btn btn-primary ask-button"\n ng-disabled="!chatItem.question.message || !selectedAgent || selectedAgent.isDeleted || waitingForLastMessage || loadingChat"\n ng-click="ask()">\n <i class="fa fa-arrow-turn-left-up"></i>\n {{ \'ttyg.chat_panel.btn.ask.label \' | translate }}\n </button>\n </div>\n\n <div class="messages-hint text-muted" ng-if="!loadingChat && chat.chatHistory.isEmpty() && !waitingForLastMessage" ng-cloak>\n <div class="hint2" ng-bind="\'ttyg.chat_panel.hint2\' | translate"></div>\n <div class="hint1" ng-bind-html="\'ttyg.chat_panel.hint1\' | translate | trustAsHtml"></div>\n </div>\n</div>\n';return __p}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[409],{531:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/agent-instructions-explain-modal.css?v=2.8.
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[409],{531:function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<link href="css/ttyg/agent-instructions-explain-modal.css?v=2.8.8-TR1" rel="stylesheet"/>\n\n<div class="modal-header">\n <button type="button" class="close" ng-click="close()"></button>\n <h4 class="modal-title">{{\'ttyg.agent.instructions_explain_modal.title\' | translate}}</h4>\n</div>\n\n<div class="modal-body">\n <div class="instructions-explain">\n <div ng-repeat="instruction in agentInstructionsExplain" class="instruction" ng-class="{\'mb-2\': !$last}">\n <h5 class="instruction-title mb-0">\n <span\n uib-popover="{{\'ttyg.agent.instructions_explain_modal.instructions.\' + instruction.type + \'.description\' | translate}}"\n popover-trigger="mouseenter">{{\'ttyg.agent.instructions_explain_modal.instructions.\' + instruction.type + \'.label\' | translate}}</span>\n </h5>\n <h7 class="text-muted d-block">({{instruction.size}} characters)</h7>\n <pre class="instruction-content">{{instruction.content}}</pre>\n </div>\n </div>\n</div>\n\n<div class="modal-footer">\n <button type="button" class="btn btn-secondary" ng-click="onCloseAgentInstructionsExplainModal()">\n {{\'ttyg.agent.instructions_explain_modal.btn.close.label\' | translate}}\n </button>\n</div>\n';return __p}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(window.webpackJsonp=window.webpackJsonp||[]).push([[41,98,200,236,244,326],{102:function(e,r){function t(e,r){return{showToastMessageWithDelay:function(t){return new Promise(s=>{e.success(r.instant(t)),setTimeout(s,200)})}}}angular.module("graphdb.framework.utils.notifications",[]).factory("Notifications",t),t.$inject=["toastr","$translate"]},112:function(e,r,t){"use strict";t.r(r),t.d(r,"StartMode",(function(){return s})),t.d(r,"GraphsConfig",(function(){return a}));const s={QUERY:"query",NODE:"node",SEARCH:"search"};class a{constructor(e,r,t=s.SEARCH,a,i=!0,n=!0,o,u,p,c,d,h,g,y,l,f,Q,w,m,I,C){this._id=e,this._name=r,this._startMode=t,this._owner=a,this._startQueryIncludeInferred=i,this._startQuerySameAs=n,this._startGraphQuery=o,this._startIRI=u,this._startIRILabel=p,this._expandQuery=c,this._resourceQuery=d,this._predicateLabelQuery=h,this._resourcePropertiesQuery=g,this._shared=y,this._description=l,this._hint=f,this._startGraphQueryDescription=Q,this._expandQueryDescription=w,this._resourceQueryDescription=m,this._predicateLabelQueryDescription=I,this._resourcePropertiesQueryDescription=C}isStartMode(e){return this.startMode===e}isDefaultGraph(){return"Minimal"===this.name||"Advanced"===this.name}getPropertyDescription(e){return this[e+"Description"]}getQueryType(e){let r;return this.isStartMode(s.QUERY)&&1===e?r=this.startGraphQuery:2===e?r=this.expandQuery:3===e?r=this.resourceQuery:4===e?r=this.predicateLabelQuery:5===e&&(r=this.resourcePropertiesQuery),r||""}updateModel(e,r){return this.isStartMode(s.QUERY)&&1===r?this.startGraphQuery=e:2===r?this.expandQuery=e:3===r?this.resourceQuery=e:4===r?this.predicateLabelQuery=e:5===r&&(this.resourcePropertiesQuery=e),this}toSavePayload(){return{id:this.id,name:this.name,startMode:this.startMode,owner:this.owner,startQueryIncludeInferred:this.startQueryIncludeInferred,startQuerySameAs:this.startQuerySameAs,startGraphQuery:this.startGraphQuery,startIRI:this.startIRI,startIRILabel:this.startIRILabel,expandQuery:this.expandQuery,resourceQuery:this.resourceQuery,predicateLabelQuery:this.predicateLabelQuery,resourcePropertiesQuery:this.resourcePropertiesQuery,shared:this.shared,description:this.description,hint:this.hint}}get id(){return this._id}set id(e){this._id=e}get name(){return this._name}set name(e){this._name=e}get startMode(){return this._startMode}set startMode(e){this._startMode=e}get owner(){return this._owner}set owner(e){this._owner=e}get startQueryIncludeInferred(){return this._startQueryIncludeInferred}set startQueryIncludeInferred(e){this._startQueryIncludeInferred=e}get startQuerySameAs(){return this._startQuerySameAs}set startQuerySameAs(e){this._startQuerySameAs=e}get startGraphQuery(){return this._startGraphQuery}set startGraphQuery(e){this._startGraphQuery=e}get startIRI(){return this._startIRI}set startIRI(e){this._startIRI=e}get startIRILabel(){return this._startIRILabel}set startIRILabel(e){this._startIRILabel=e}get expandQuery(){return this._expandQuery}set expandQuery(e){this._expandQuery=e}get resourceQuery(){return this._resourceQuery}set resourceQuery(e){this._resourceQuery=e}get predicateLabelQuery(){return this._predicateLabelQuery}set predicateLabelQuery(e){this._predicateLabelQuery=e}get resourcePropertiesQuery(){return this._resourcePropertiesQuery}set resourcePropertiesQuery(e){this._resourcePropertiesQuery=e}get shared(){return this._shared}set shared(e){this._shared=e}get description(){return this._description}set description(e){this._description=e}get hint(){return this._hint}set hint(e){this._hint=e}get startGraphQueryDescription(){return this._startGraphQueryDescription}set startGraphQueryDescription(e){this._startGraphQueryDescription=e}get expandQueryDescription(){return this._expandQueryDescription}set expandQueryDescription(e){this._expandQueryDescription=e}get resourceQueryDescription(){return this._resourceQueryDescription}set resourceQueryDescription(e){this._resourceQueryDescription=e}get predicateLabelQueryDescription(){return this._predicateLabelQueryDescription}set predicateLabelQueryDescription(e){this._predicateLabelQueryDescription=e}get resourcePropertiesQueryDescription(){return this._resourcePropertiesQueryDescription}set resourcePropertiesQueryDescription(e){this._resourcePropertiesQueryDescription=e}}},133:function(e,r,t){"use strict";t.r(r),t.d(r,"mapGraphsConfigResponseToModel",(function(){return a})),t.d(r,"mapGraphConfigSampleToGraphConfig",(function(){return i})),t.d(r,"mapGraphConfigSamplesToGraphConfigs",(function(){return n}));var s=t(112);const a=e=>new s.GraphsConfig(e.id,e.name,e.startMode,e.owner,e.startQueryIncludeInferred,e.startQuerySameAs,e.startGraphQuery,e.startIRI,e.startIRILabel,e.expandQuery,e.resourceQuery,e.predicateLabelQuery,e.resourcePropertiesQuery,e.shared,e.description,e.hint),i=e=>new s.GraphsConfig(e.id,e.name,e.startMode,e.owner,e.startQueryIncludeInferred,e.startQuerySameAs,e.startGraphQuery,e.startIRI,e.startIRILabel,e.expandQuery,e.resourceQuery,e.predicateLabelQuery,e.resourcePropertiesQuery,e.shared,e.description,e.hint,e.startGraphQueryDescription,e.expandQueryDescription,e.resourceQueryDescription,e.predicateLabelQueryDescription,e.resourcePropertiesQueryDescription),n=e=>e.map(e=>i(e))},257:function(e,r,t){"use strict";t.r(r);t(102),t(13),t(23);var s=t(97),a=t(90),i=t(19),n=t(112),o=t(133),u=t(8);function p(e,r,t,p,c,d,h,g,y,l,f,Q,w,m,I,C,R){let _;r.newConfig=new n.GraphsConfig,r.revertConfig=void 0,r.page=1,r.totalPages=5,r.helpHidden=1===Q.get(w.HIDE_GRAPH_CONFIG_HELP),r.isUpdate=!1,r.shared=!1,r.canEditActiveRepo=r.canWriteActiveRepo(),r.samples=[],r.tabConfig={inference:r.newConfig.startQueryIncludeInferred,sameAs:r.newConfig.startQuerySameAs},r.isAutocompleteEnabled=void 0,r.repositoryNamespaces=void 0,r.tabsViewModel=[];const b=l.configName,E=d.getActiveRepository();r.toggleHelp=e=>{void 0===e&&(e=Q.get(w.HIDE_GRAPH_CONFIG_HELP)),1!==e?(Q.set(w.HIDE_GRAPH_CONFIG_HELP,1),r.helpHidden=!0):(Q.set(w.HIDE_GRAPH_CONFIG_HELP,0),r.helpHidden=!1)},r.fixedVisualCallback=(e,t)=>{r.newConfig.startIRI=e,r.newConfig.startIRILabel=t,_=!0},r.isDefaultGraph=e=>e.isDefaultGraph(),r.isUserGraph=e=>!e.isDefaultGraph(),r.getSampleName=(e,r)=>{if(!e)return"";const t=e.getPropertyDescription(r);return t||(e.id?"Copy of "+e.name:e.name)},r.createGraphConfig=e=>{y.createGraphConfig(e).success((async function(){await f.showToastMessageWithDelay("graphexplore.saved.new.config"),p.url("graphs-visualizations")})).error((function(e){c.error(getError(e),m.instant("graphexplore.error.could.not.create"))}))},r.updateGraphConfig=e=>{y.updateGraphConfig(e).success((async function(){await f.showToastMessageWithDelay("graphexplore.saved.config"),p.url("graphs-visualizations")})).error((function(e){c.error(getError(e),m.instant("graphexplore.error.could.not.save"))}))},r.goToPage=e=>{r.page!==e&&P(()=>{r.showEditor(),r.page=e})},r.goToPreviousPage=()=>{r.page>1&&r.goToPage(r.page-1),q()&&(_=!1)},r.goToNextPage=()=>{N(),r.newConfig.isStartMode(n.StartMode.NODE)&&!_||r.goToPage(r.page+1)},r.saveGraphConfig=()=>{N(),q()&&!_||(r.newConfig.startQueryIncludeInferred=r.tabConfig.inference,r.newConfig.startQuerySameAs=r.tabConfig.sameAs,r.newConfig.name&&(r.newConfig.name=r.newConfig.name.replace(/\s+/g," ").trim()),P(()=>{r.newConfig.name?(r.queryEditorIsDirty=!1,r.isUpdate?r.updateGraphConfig(r.newConfig.toSavePayload()):r.createGraphConfig(r.newConfig.toSavePayload())):L(m.instant("graphexplore.provide.config.name"))}))},r.setQuery=async e=>{const t=e||" ";(await S()).setQuery(t),r.markDirty()},r.markDirty=async()=>{if(r.revertConfig){const e=r.revertConfig.getQueryType(r.page),t=await G();r.queryEditorIsDirty=e!==t}},r.showEditor=()=>{r.viewMode="yasr",A(),M()},r.showPreview=()=>{r.viewMode="editor",D()},r.revertEditor=()=>{r.setQuery(r.revertConfig.getQueryType(r.page)),r.queryEditorIsDirty=!1};const S=()=>i.YasguiComponentDirectiveUtil.getOntotextYasguiElementAsync("#query-editor"),D=async(e,t)=>{const s=await S(),a=await s.getQueryType();if(t&&"SELECT"!==a&&"CONSTRUCT"!==a&&"DESCRIBE"!==a)return void c.warning(m.instant("query.editor.warning.msg"));"update"!==await s.getQueryMode()?r.queryIsRunning||(r.viewMode="editor",v()):c.warning(m.instant("cannot.execute.update.error"))},v=async()=>{(await S()).query(a.RenderingMode.YASR)},M=async()=>(await S()).changeRenderMode(a.RenderingMode.YASQE),G=async()=>(await S()).getQuery(),A=async()=>(await S()).abortQuery(),P=async e=>{const t=await(async()=>{const e=await S();let t=await e.getQuery();return t=t.trim(),r.newConfig.updateModel(t,r.page)})();1===r.page?t.isStartMode(n.StartMode.NODE)&&!t.startIRI?L(m.instant("graphexplore.select.start.node")):t.isStartMode(n.StartMode.QUERY)&&!t.startGraphQuery?L(m.instant("graphexplore.provide.query")):t.isStartMode(n.StartMode.QUERY)?T(e,t.startGraphQuery,"graph"):e():2===r.page?T(e,t.expandQuery,"construct",["node"]):3===r.page?T(e,t.resourceQuery,"tuple",["node"],[],["type","label","comment","rank"]):4===r.page?T(e,t.predicateLabelQuery,"tuple",["edge"],["label"]):5===r.page&&T(e,t.resourcePropertiesQuery,"tuple",["node"],["property","value"])},x=()=>{r.tabConfig.inference=r.newConfig.startQueryIncludeInferred,r.tabConfig.sameAs=r.newConfig.startQuerySameAs,r.setQuery(r.newConfig.getQueryType(r.page))},L=e=>{c.warning(e)},T=(e,r,t,s,a,i)=>{r?y.validateQuery(r,t,s,a,i).success(()=>{e()}).error(e=>{L(getError(e))}):e()},N=()=>{q()&&r.$broadcast("addStartFixedNodeAutomatically",{startIRI:r.newConfig.startIRI})},q=()=>1===r.page&&r.newConfig.isStartMode(n.StartMode.NODE),Y=()=>{y.getGraphConfigSamples().success((function(e){r.samples=Object(o.mapGraphConfigSamplesToGraphConfigs)(e).filter(e=>!e.id||r.newConfig.id!==e.id||(r.revertConfig=e,!1))})).error((function(e){c.error(getError(e),m.instant("graphexplore.error.graph.configs"))}))},$={endpoint:()=>"repositories/"+d.getActiveRepository(),showEditorTabs:!1,showToolbar:!1,showResultTabs:!1,showYasqeActionButtons:!1,yasqeActionButtons:i.INFERRED_AND_SAME_AS_BUTTONS_CONFIGURATION,showQueryButton:!1,initialQuery:" ",componentId:"graphs-config",render:a.RenderingMode.YASQE,maxPersistentResponseSize:0,showYasqeResizer:!1,yasqeMode:s.YasqeMode.PROTECTED,infer:r.newConfig.startQueryIncludeInferred,sameAs:r.newConfig.startQuerySameAs},U=(e,t,s)=>{r.queryIsRunning=e},O=()=>{window.removeEventListener("beforeunload",H),F.forEach(e=>e())},H=e=>{r.queryEditorIsDirty&&(e.returnValue=!0)},k=()=>{r.tabsViewModel=[{page:1,label:m.instant("starting.point.label"),type:"startGraphQuery"},{page:2,label:m.instant("graph.expansion"),type:"expandQuery"},{page:3,label:m.instant("node.basics"),type:"resourceQuery"},{page:4,label:m.instant("edge.basics"),type:"predicateLabelQuery"},{page:5,label:m.instant("node.extra"),type:"resourcePropertiesQuery"}]},F=[];F.push(C.onSelectedRepositoryIdUpdated(e=>{e?R.getNamespaces(e).then(e=>{r.repositoryNamespaces=e}).catch(e=>{const r=getError(e);c.error(r,m.instant("error.getting.namespaces.for.repo"))}):r.repositoryNamespaces=new u.NamespacesListModel})),F.push(C.onAutocompleteEnabledUpdated(e=>{r.isAutocompleteEnabled=e})),F.push(r.$on("$locationChangeStart",(e,t)=>{if(r.queryEditorIsDirty){e.preventDefault();((e,r,t,s)=>{I.openSimpleModal({title:e,message:r,warning:!0}).result.then((function(){angular.isFunction(t)&&t()}),(function(){angular.isFunction(s)&&s()}))})(m.instant("common.confirm"),m.instant("visual.config.warning.unsaved.changes"),()=>{O();const e=p.absUrl().length-p.url().length,r=t.substring(e);p.path(r)})}else O()})),F.push(r.$on("$destroy",O)),F.push(r.$watch(r.getActiveRepositoryObject,()=>{(r.newConfig.isStartMode(n.StartMode.QUERY)||r.page>1)&&(r.viewMode="yasr",A().then(M))})),F.push(e.$on("$translateChangeSuccess",()=>{k()})),window.addEventListener("beforeunload",H),r.$watch("newConfig.startMode",e=>{e===n.StartMode.QUERY&&x()}),r.$watch("page",e=>{(r.newConfig.isStartMode(n.StartMode.QUERY)||e>1)&&(r.showEditor(),x())}),k(),d.getPrefixes(E).then(e=>(e=>{const t=r.$watch((function(){return r.getActiveRepositoryObject()}),(function(a){if(a){r.canEditActiveRepo=r.canWriteActiveRepo();const a=angular.extend({},$,{prefixes:e,yasqeMode:r.canWriteActiveRepo()?s.YasqeMode.WRITE:s.YasqeMode.PROTECTED});r.yasguiConfig=a,t()}}))})(e)).finally(()=>U(!1)),b?(r.isUpdate=!0,y.getConfig(b).then((function(e){r.newConfig=e,Y()})).catch(e=>{c.error(getError(e),m.instant("created.connector",{name:b}))})):(r.isUpdate=!1,Y()),r.getActiveRepository()&&(U(!0,m.instant("common.refreshing.namespaces"),m.instant("common.extra.message")),d.getPrefixes(d.getActiveRepository()).then(e=>{r.namespaces=e}).catch((function(e){r.repositoryError=getError(e)})).finally((function(){U(!1)})))}angular.module("graphdb.framework.graphexplore.controllers.graphviz.config",["graphdb.framework.utils.notifications","graphdb.framework.utils.localstorageadapter","graphdb.core.services.workbench-context","graphdb.framework.core.services.rdf4j.repositories"]).controller("GraphConfigCtrl",p),p.$inject=["$rootScope","$scope","$timeout","$location","toastr","$repositories","SparqlRestService","$filter","GraphConfigRestService","$routeParams","Notifications","LocalStorageAdapter","LSKeys","$translate","ModalService","WorkbenchContextService","RDF4JRepositoriesService"]},90:function(e,r,t){"use strict";t.r(r),t.d(r,"RenderingMode",(function(){return s}));const s={YASGUI:"mode-yasgui",YASQE:"mode-yasqe",YASR:"mode-yasr"}},97:function(e,r,t){"use strict";t.r(r),t.d(r,"YasqeMode",(function(){return s}));const s={WRITE:"WRITE",READ:"READ",PROTECTED:"PROTECTED"}}}]);
|