From 7292174f182bba027362946c0a4a47d3ba2534da Mon Sep 17 00:00:00 2001 From: Galen Charlton Date: Wed, 11 May 2016 13:17:55 -0400 Subject: [PATCH] webstaff: add server administration page This patch adds a landing page for Server Administration and code to embed all of the admin pages available under Serer Administration in the XUL staff client. TODO: * fix the permission groups editor so that it works when embedded in the web staff client * refactor admin/local/app.js and admin/server/app.js to unify some of the copy and pasting * replace the embedded legacy OU editor with a new angular one * fixes some CSS issues that make text hard to read in a few places Signed-off-by: Galen Charlton --- .../templates/staff/admin/server/index.tt2 | 15 ++++ .../templates/staff/admin/server/t_splash.tt2 | 78 ++++++++++++++++++ Open-ILS/src/templates/staff/navbar.tt2 | 6 ++ .../js/ui/default/staff/admin/server/app.js | 80 +++++++++++++++++++ 4 files changed, 179 insertions(+) create mode 100644 Open-ILS/src/templates/staff/admin/server/index.tt2 create mode 100644 Open-ILS/src/templates/staff/admin/server/t_splash.tt2 create mode 100644 Open-ILS/web/js/ui/default/staff/admin/server/app.js diff --git a/Open-ILS/src/templates/staff/admin/server/index.tt2 b/Open-ILS/src/templates/staff/admin/server/index.tt2 new file mode 100644 index 0000000000..362723af73 --- /dev/null +++ b/Open-ILS/src/templates/staff/admin/server/index.tt2 @@ -0,0 +1,15 @@ +[% + WRAPPER "staff/base.tt2"; + ctx.page_title = l("Server Administration"); + ctx.page_app = "egServerAdmin"; +%] + +[% BLOCK APP_JS %] + + + +[% END %] + +
+ +[% END %] diff --git a/Open-ILS/src/templates/staff/admin/server/t_splash.tt2 b/Open-ILS/src/templates/staff/admin/server/t_splash.tt2 new file mode 100644 index 0000000000..14319421c6 --- /dev/null +++ b/Open-ILS/src/templates/staff/admin/server/t_splash.tt2 @@ -0,0 +1,78 @@ + +
+
+ [% l('Server Administration') %] +
+
+ +
+ +[% + interfaces = [ + [ l('Actor Stat Cat Sip Fields'), "./admin/server/config/actor_sip_fields" ] + ,[ l('Age Hold Protect Rules'), "./admin/server/config/rule_age_hold_protect" ] + ,[ l('Asset Stat Cat Sip Fields'), "./admin/server/config/asset_sip_fields" ] + ,[ l('Authority Browse Axes'), "./admin/server/cat/authority/browse_axis" ] + ,[ l('Authority Control Sets'), "./admin/server/cat/authority/control_set" ] + ,[ l('Authority Thesauri'), "./admin/server/cat/authority/thesaurus" ] + ,[ l('Best-Hold Selection Sort Order'), "./admin/server/config/best_hold_order" ] + ,[ l('Billing Types'), "./admin/server/config/billing_type" ] + ,[ l('Booking Resource Attribute Maps'), "./admin/server/booking/resource_attr_map" ] + ,[ l('Booking Resource Attribute Values'), "./admin/server/booking/resource_attr_value" ] + ,[ l('Booking Resource Attributes'), "./admin/server/booking/resource_attr" ] + ,[ l('Booking Resource Types'), "./admin/server/booking/resource_type" ] + ,[ l('Booking Resources'), "./admin/server/booking/resource" ] + ,[ l('Call Number Prefixes'), "./admin/server/config/acn_prefix" ] + ,[ l('Call Number Suffixes'), "./admin/server/config/acn_suffix" ] + ,[ l('Circulation Duration Rules'), "./admin/server/config/rule_circ_duration" ] + ,[ l('Circulation Limit Groups'), "./admin/server/config/circ_limit_group" ] + ,[ l('Circulation Matchpoint Weights'), "./admin/server/config/circ_matrix_weights" ] + ,[ l('Circulation Max Fine Rules'), "./admin/server/config/rule_max_fine" ] + ,[ l('Circulation Modifiers'), "./admin/server/config/circ_modifier" ] + ,[ l('Circulation Recurring Fine Rules'), "./admin/server/config/rule_recurring_fine" ] + ,[ l('Copy Statuses'), "./admin/server/legacy/config/copy_status" ] + ,[ l('Custom Org Unit Trees'), "./admin/server/actor/org_unit_custom_tree" ] + ,[ l('Floating Groups'), "./admin/server/config/floating_groups" ] + ,[ l('Global Flags'), "./admin/server/config/global_flag" ] + ,[ l('Hard Due Date Changes'), "./admin/server/config/hard_due_date" ] + ,[ l('Hold Matchpoint Weights'), "./admin/server/config/hold_matrix_weights" ] + ,[ l('Import Match Sets'), "./admin/server/vandelay/match_set" ] + ,[ l('MARC Coded Value Maps'), "./admin/server/config/coded_value_map" ] + ,[ l('MARC Import Remove Fields'), "./admin/server/vandelay/import_bib_trash_group" ] + ,[ l('MARC Record Attributes'), "./admin/server/config/record_attr_definition" ] + ,[ l('MARC Search/Facet Class FTS Maps'), "./admin/server/config/metabib_class_ts_map" ] + ,[ l('MARC Search/Facet Classes'), "./admin/server/config/metabib_class" ] + ,[ l('MARC Search/Facet Field FTS Maps'), "./admin/server/config/metabib_field_ts_map" ] + ,[ l('MARC Search/Facet Fields'), "./admin/server/config/metabib_field" ] + ,[ l('Org Unit Proximity Adjustments'), "./admin/server/config/org_unit_proximity_adjustment" ] + ,[ l('Organization Types'), "./admin/server/legacy/actor/org_unit_type" ] + ,[ l('Org Unit Setting Types'), "./admin/server/config/org_unit_setting_type" ] + ,[ l('Organizational Units'), "./admin/server/legacy/actor/org_unit" ] + ,[ l('Permission Groups'), "./admin/server/legacy/permission/grp_tree" ] + ,[ l('Permissions'), "./admin/server/legacy/permission/perm_list" ] + ,[ l('Remote Accounts'), "./admin/server/config/remote_account" ] + ,[ l('SMS Carriers'), "./admin/server/config/sms_carrier" ] + ,[ l('User Activity Types'), "./admin/server/config/usr_activity_type" ] + ,[ l('User Setting Types'), "./admin/server/config/usr_setting_type" ] + ,[ l('Weights Association'), "./admin/server/config/weight_assoc" ] + ,[ l('Z39.50 Index Field Maps'), "./admin/server/config/z3950_index_field_map" ] + ,[ l('Z39.50 Servers'), "./admin/server/config/z3950_source" ] + ]; + + USE table(interfaces, rows=16); +%] + +[% FOREACH row = table.rows %] +
+ [% FOREACH item = row %][% IF item.1 %] + + [% END %][% END %] +
+[% END %] + +
diff --git a/Open-ILS/src/templates/staff/navbar.tt2 b/Open-ILS/src/templates/staff/navbar.tt2 index c4e765b08e..cce234b067 100644 --- a/Open-ILS/src/templates/staff/navbar.tt2 +++ b/Open-ILS/src/templates/staff/navbar.tt2 @@ -273,6 +273,12 @@ [% l('User Permission Editor') %] +
  • + + + [% l('Server Administration') %] + +
  • diff --git a/Open-ILS/web/js/ui/default/staff/admin/server/app.js b/Open-ILS/web/js/ui/default/staff/admin/server/app.js new file mode 100644 index 0000000000..a28987a0eb --- /dev/null +++ b/Open-ILS/web/js/ui/default/staff/admin/server/app.js @@ -0,0 +1,80 @@ +angular.module('egServerAdmin', + ['ngRoute', 'ui.bootstrap', 'egCoreMod','egUiMod']) + +.config(['$routeProvider','$locationProvider','$compileProvider', + function($routeProvider , $locationProvider , $compileProvider) { + + $locationProvider.html5Mode(true); + $compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|blob):/); + var resolver = {delay : function(egStartup) {return egStartup.go()}}; + + var eframe_template = + ''; + + // old-style Confiy + $routeProvider.when('/admin/server/legacy/:schema/:page', { + template: eframe_template, + controller: 'EmbedOldConifyCtl', + resolve : resolver + }); + + // Conify page handler (some authority admin interfaces live + // under global/cat/authority/) + $routeProvider.when('/admin/server/:module/:schema/:page', { + template: eframe_template, + controller: 'EmbedConifyCtl', + resolve : resolver + }); + + // Conify page handler + $routeProvider.when('/admin/server/:schema/:page', { + template: eframe_template, + controller: 'EmbedConifyCtl', + resolve : resolver + }); + + // default page + $routeProvider.otherwise({ + templateUrl : './admin/server/t_splash', + resolve : resolver + }); +}]) + +.controller('EmbedConifyCtl', + ['$scope','$routeParams','$location','egCore', +function($scope , $routeParams , $location , egCore) { + + $scope.funcs = { + ses : egCore.auth.token(), + } + var conify_path = '/eg/conify/global/' + + (angular.isDefined($routeParams.module) ? ($routeParams.module + '/') : '') + + $routeParams.schema + '/' + $routeParams.page; + + // embed URL must include protocol/domain or it will be loaded via + // push-state, resulting in an infinitely nested pages. + $scope.server_admin_url = + $location.absUrl().replace(/\/eg\/staff.*/, conify_path); + + console.log('Loading server admin URL: ' + $scope.server_admin_url); + +}]) + +.controller('EmbedOldConifyCtl', + ['$scope','$routeParams','$location','egCore', +function($scope , $routeParams , $location , egCore) { + + $scope.funcs = { + ses : egCore.auth.token(), + } + var conify_path = '/conify/global/' + + $routeParams.schema + '/' + $routeParams.page + '.html'; + + // embed URL must include protocol/domain or it will be loaded via + // push-state, resulting in an infinitely nested pages. + $scope.server_admin_url = + $location.absUrl().replace(/\/eg\/staff.*/, conify_path); + + console.log('Loading server admin URL: ' + $scope.server_admin_url); + +}]) -- 2.43.2