Skip to content

Commit

Permalink
Feature/745 creating providers frontend (#829)
Browse files Browse the repository at this point in the history
* fix typo permission

* add button to manage providers

* lege provider dialog

* provider grid in dialog

* make domutils dojo proof & add placehodler option

* create provider wip

* fix delete scope

* add ui logic for provider form

* save all fields correctly

* add validation & reset logic

* tweak ui

* add delay to grid refresh

* add edit provider logic
  • Loading branch information
cedrikv committed May 15, 2023
1 parent f0a5473 commit 62612ef
Show file tree
Hide file tree
Showing 13 changed files with 730 additions and 98 deletions.
1 change: 1 addition & 0 deletions atramhasis/static/admin/src/app/App.js
Expand Up @@ -81,6 +81,7 @@ define([
loadingContainer: this.appConfig.loadingContainer,
appContainer: this.appConfig.appContainer,
staticAppPath: this.appConfig.staticAppPath,
canCreateProviders: this.appConfig.canCreateProviders,
conceptSchemeController: this._controllers.conceptSchemeController,
conceptController: this._controllers.conceptController,
languageController: this._controllers.languageController,
Expand Down
32 changes: 27 additions & 5 deletions atramhasis/static/admin/src/app/controllers/ProviderController.js
Expand Up @@ -5,46 +5,68 @@ define([
'dojo/_base/declare',
'dojo/_base/lang',
'dojo/_base/array',
'dojo/request/xhr'
'dojo/request/xhr',
'dstore/Rest',
'dstore/Trackable'
], function (
declare,
lang,
array,
xhr
xhr,
Rest,
Trackable
) {
return declare( null, {

_baseUrl: '',
_target: '/providers',
_providerStore: null,
providerList: null,
TrackableRest: null,

constructor: function(args) {
console.debug('ProviderController::constructor');
declare.safeMixin(this, args);
this.providerList = [];
this.TrackableRest = declare([ Rest, Trackable ]);
},

getProviders: function(){
getProviders: function() {
console.debug('ProviderController::getProviders');
return xhr.get(this._target, {
handleAs: 'json',
headers: {'Content-Type': 'application/json', 'Accept': 'application/json'}
});
},

getProvider: function(uri){
getProvider: function(uri) {
console.debug('ProviderController::getProvider', uri);
var providerList = array.filter(this.providerList, function(item){
return item.conceptscheme_uri === uri;
});
return providerList.length > 0 ? providerList[0] : null;
},

getProviderStore: function () {
console.debug('ProviderController::getProviderStore');
if (!this._providerStore) {
this._providerStore = new this.TrackableRest({
target: this._baseUrl + this._target,
idProperty: 'id',
sortParam: 'sort',
useRangeHeaders: true,
accepts: 'application/json'
});
}
return this._providerStore;
},

loadProviders: function() {
console.debug('ProviderController::loadProviders');
return this.getProviders().then(lang.hitch(this, function (providers) {
this.providerList = providers;
}));
},
}
});
});

3 changes: 2 additions & 1 deletion atramhasis/static/admin/src/app/main.js
Expand Up @@ -13,7 +13,8 @@ define([
var appConfig = {
appContainer: dom.byId('appDiv'),
loadingContainer: dom.byId('loadingOverlay'),
staticAppPath: staticAppPath
staticAppPath: staticAppPath,
canCreateProviders: canCreateProviders
};

new App({appConfig: appConfig}).startup();
Expand Down
16 changes: 16 additions & 0 deletions atramhasis/static/admin/src/app/ui/AppUi.js
Expand Up @@ -26,6 +26,7 @@ define([
'./widgets/SlideMenu',
'./dialogs/ManageConceptDialog',
'./dialogs/ManageLanguagesDialog',
'./dialogs/ManageProvidersDialog',
'./dialogs/ImportConceptDialog',
'./dialogs/MergeConceptDialog',
'./dialogs/ManageSchemeDialog',
Expand Down Expand Up @@ -56,6 +57,7 @@ define([
SlideMenu,
ManageConceptDialog,
ManageLanguagesDialog,
ManageProvidersDialog,
ImportConceptDialog,
MergeConceptDialog,
ManageSchemeDialog,
Expand All @@ -66,6 +68,7 @@ define([
templateString: template,
loadingContainer: null,
staticAppPath: null,
canCreateProviders: null,
conceptSchemeController: null,
conceptController: null,
languageController: null,
Expand All @@ -76,6 +79,7 @@ define([
_slideMenu: null,
_manageConceptDialog: null,
_manageLanguagesDialog: null,
_manageProvidersDialog: null,
_importConceptDialog: null,
_mergeConceptDialog: null,
_selectedSchemeId: null,
Expand Down Expand Up @@ -112,6 +116,13 @@ define([
});
this._manageLanguagesDialog.startup();

this._manageProvidersDialog = new ManageProvidersDialog({
parentNode: this,
providerController: this.providerController,
languageController: this.languageController
});
this._manageProvidersDialog.startup();

this._importConceptDialog = new ImportConceptDialog({
externalSchemeStore: this.conceptSchemeController.getExternalSchemeStore(),
conceptSchemeController: this.conceptSchemeController
Expand Down Expand Up @@ -336,6 +347,11 @@ define([
this._manageLanguagesDialog.show();
},

_editProviders: function () {
console.debug('AppUi::_editProviders');
this._manageProvidersDialog.show();
},

_editConceptScheme: function (evt) {
evt.preventDefault();
this._showLoading('Loading concept scheme..')
Expand Down

0 comments on commit 62612ef

Please sign in to comment.