--- /dev/null
+<eg-staff-banner bannerText="Server Administration" i18n-bannerText>
+</eg-staff-banner>
+
+<div class="container">
+ <eg-link-table columnCount="3">
+ <eg-link-table-link i18n-label label="Actor Stat Cat Sip Fields"
+ url="/eg/staff/admin/server/config/actor_sip_fields"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="Age Hold Protect Rules"
+ url="/eg/staff/admin/server/config/rule_age_hold_protect"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="Asset Stat Cat Sip Fields"
+ url="/eg/staff/admin/server/config/asset_sip_fields"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="Authority Browse Axes"
+ url="/eg/staff/admin/server/cat/authority/browse_axis"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="Authority Control Sets"
+ url="/eg/staff/admin/server/cat/authority/control_set"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="Authority Heading Fields"
+ url="/eg/staff/admin/server/authority/heading_field"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="Authority Thesauri"
+ url="/eg/staff/admin/server/cat/authority/thesaurus"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="Best-Hold Selection Sort Order"
+ url="/eg/staff/admin/server/config/best_hold_order"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="Billing Types"
+ url="./staff/admin/server/config/billing_type"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="Call Number Prefixes"
+ url="/eg/staff/admin/server/config/acn_prefix"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="Call Number Suffixes"
+ url="/eg/staff/admin/server/config/acn_suffix"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="Circulation Duration Rules"
+ url="/eg/staff/admin/server/config/rule_circ_duration"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="Circulation Limit Groups"
+ url="/eg/staff/admin/server/config/circ_limit_group"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="Circulation Matchpoint Weights"
+ url="/eg/staff/admin/server/config/circ_matrix_weights"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="Circulation Max Fine Rules"
+ url="/eg/staff/admin/server/config/rule_max_fine"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="Circulation Modifiers"
+ url="/eg/staff/admin/server/config/circ_modifier"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="Circulation Recurring Fine Rules"
+ url="/eg/staff/admin/server/config/rule_recurring_fine"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="Copy Statuses"
+ url="/eg/staff/admin/server/legacy/config/copy_status"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="Copy Tag Types"
+ url="/eg/staff/admin/server/config/copy_tag_type"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="Custom Org Unit Trees"
+ url="/eg/staff/admin/server/actor/org_unit_custom_tree"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="Floating Groups"
+ url="/eg/staff/admin/server/config/floating_groups"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="Global Flags"
+ url="/eg/staff/admin/server/config/global_flag"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="Hard Due Date Changes"
+ url="./staff/admin/server/config/hard_due_date"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="Hold Matchpoint Weights"
+ url="/eg/staff/admin/server/config/hold_matrix_weights"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="Import Match Sets"
+ url="/eg/staff/admin/server/vandelay/match_set"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="MARC Coded Value Maps"
+ url="/eg/staff/admin/server/config/coded_value_map"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="MARC Import Remove Fields"
+ url="/eg/staff/admin/server/vandelay/import_bib_trash_group"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="MARC Record Attributes"
+ url="/eg/staff/admin/server/config/record_attr_definition"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="MARC Search/Facet Class FTS Maps"
+ url="/eg/staff/admin/server/config/metabib_class_ts_map"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="MARC Search/Facet Classes"
+ url="/eg/staff/admin/server/config/metabib_class"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="MARC Search/Facet Field FTS Maps"
+ url="/eg/staff/admin/server/config/metabib_field_ts_map"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="MARC Search/Facet Fields"
+ url="/eg/staff/admin/server/config/metabib_field"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="MARC Tag Tables"
+ url="/eg/staff/admin/server/config/marc_field"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="Org Unit Proximity Adjustments"
+ url="/eg/staff/admin/server/config/org_unit_proximity_adjustment"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="Organization Types"
+ url="/eg/staff/admin/server/legacy/actor/org_unit_type"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="Org Unit Setting Types"
+ url="/eg/staff/admin/server/config/org_unit_setting_type"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="Organizational Units"
+ url="/eg/staff/admin/server/legacy/actor/org_unit"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="Permission Groups"
+ url="/eg/staff/admin/server/legacy/permission/grp_tree"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="Permissions"
+ url="/eg/staff/admin/server/legacy/permission/perm_list"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="Remote Accounts"
+ url="/eg/staff/admin/server/config/remote_account"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="SMS Carriers"
+ url="/eg/staff/admin/server/config/sms_carrier"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="User Activity Types"
+ url="/eg/staff/admin/server/config/usr_activity_type"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="User Setting Types"
+ url="/eg/staff/admin/server/config/usr_setting_type"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="Weights Association"
+ url="/eg/staff/admin/server/config/weight_assoc"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="Z39.50 Index Field Maps"
+ url="/eg/staff/admin/server/config/z3950_index_field_map"></eg-link-table-link>
+ <eg-link-table-link i18n-label label="Z39.50 Servers"
+ url="/eg/staff/admin/server/config/z3950_source"></eg-link-table-link>
+ </eg-link-table>
+</div>
--- /dev/null
+import {Component, Input, OnInit, AfterViewInit, Host} from '@angular/core';
+
+interface LinkTableLink {
+ label: string,
+ url: string
+}
+
+@Component({
+ selector: 'eg-link-table',
+ templateUrl: './link-table.component.html'
+})
+
+export class EgLinkTableComponent implements AfterViewInit {
+ @Input() columnCount: number;
+ links: LinkTableLink[];
+ rowBuckets: any[];
+ colList: number[];
+ colWidth: number;
+
+ constructor() {
+ this.links = [];
+ this.rowBuckets = [];
+ this.colList = [];
+ }
+
+ ngAfterViewInit() {
+ // table-ize the links
+ let rowCount = Math.ceil(this.links.length / this.columnCount);
+ this.colWidth = Math.floor(12 / this.columnCount); // Bootstrap 12-grid
+
+ for (let col = 0; col < this.columnCount; col++)
+ this.colList.push(col);
+
+ // Modifying values in AfterViewInit without other activity
+ // happening can result in the modified values not getting
+ // displayed until some action occurs. Modifing after
+ // via timeout works though.
+ setTimeout(() => {
+ for (let row = 0; row < rowCount; row++) {
+ this.rowBuckets[row] = [
+ this.links[row],
+ this.links[row + Number(rowCount)],
+ this.links[row + Number(rowCount * 2)]
+ ];
+ }
+ });
+ }
+}
+
+@Component({
+ selector: 'eg-link-table-link',
+ template: '<ng-template></ng-template>'
+})
+
+export class EgLinkTableLinkComponent implements OnInit {
+ @Input() label: string;
+ @Input() url: string;
+
+ constructor(@Host() private linkTable: EgLinkTableComponent) {}
+
+ ngOnInit() {
+ this.linkTable.links.push({
+ label : this.label,
+ url: this.url
+ });
+ }
+}
+
+