@@ -, +, @@
---
.../js/src/admin/components/datepicker.vue | 33 ++
.../admin/policy/components/policyMain.vue | 351 ++++++++++++++++++
.../admin/policy/components/policySidebar.vue | 102 +++++
.../admin/policy/components/policyTags.vue | 68 ++++
.../prog/js/src/admin/policy/main.d.ts | 22 ++
.../prog/js/src/admin/policy/main.ts | 73 ++++
6 files changed, 649 insertions(+)
create mode 100644 koha-tmpl/intranet-tmpl/prog/js/src/admin/components/datepicker.vue
create mode 100644 koha-tmpl/intranet-tmpl/prog/js/src/admin/policy/components/policyMain.vue
create mode 100644 koha-tmpl/intranet-tmpl/prog/js/src/admin/policy/components/policySidebar.vue
create mode 100644 koha-tmpl/intranet-tmpl/prog/js/src/admin/policy/components/policyTags.vue
create mode 100644 koha-tmpl/intranet-tmpl/prog/js/src/admin/policy/main.d.ts
create mode 100644 koha-tmpl/intranet-tmpl/prog/js/src/admin/policy/main.ts
--- a/koha-tmpl/intranet-tmpl/prog/js/src/admin/components/datepicker.vue
+++ a/koha-tmpl/intranet-tmpl/prog/js/src/admin/components/datepicker.vue
@@ -0,0 +1,33 @@
+
+
+
+
--- a/koha-tmpl/intranet-tmpl/prog/js/src/admin/policy/components/policyMain.vue
+++ a/koha-tmpl/intranet-tmpl/prog/js/src/admin/policy/components/policyMain.vue
@@ -0,0 +1,351 @@
+
+
+
+
+
{{group.title}}
+
+
+
+
+
+ {{group.description}}
+
+
+
+
+
+
--- a/koha-tmpl/intranet-tmpl/prog/js/src/admin/policy/components/policySidebar.vue
+++ a/koha-tmpl/intranet-tmpl/prog/js/src/admin/policy/components/policySidebar.vue
@@ -0,0 +1,102 @@
+
+
+
+
--- a/koha-tmpl/intranet-tmpl/prog/js/src/admin/policy/components/policyTags.vue
+++ a/koha-tmpl/intranet-tmpl/prog/js/src/admin/policy/components/policyTags.vue
@@ -0,0 +1,68 @@
+
+
+
+
+
Libraries
+
+
+
+
+ {{get_name('lib', lib)}}
+
+
+
+
+
+
+
Patron categories
+
+
+
+
+ {{get_name('cat', cat)}}
+
+
+
+
+
+
+
Item types
+
+
+
+
+ {{get_name('itype', itype)}}
+
+
+
+
+
+
+
--- a/koha-tmpl/intranet-tmpl/prog/js/src/admin/policy/main.d.ts
+++ a/koha-tmpl/intranet-tmpl/prog/js/src/admin/policy/main.d.ts
@@ -0,0 +1,22 @@
+declare function _ (text: string, ...params: any[]): string
+declare function $ (text: string, ...params: any[]): any
+declare function validate_date (date: string, obj: object): void
+declare function is_valid_date (date: string): boolean
+
+type KOHA = {
+ BRANCHES: object,
+ ITEM_TYPES: object,
+ PATRON_CATEGORIES: object
+}
+
+declare interface String {
+ format(...string):string
+}
+
+type HUMANMSG = {
+ displayMsg(string, any): void,
+ displayAlert(string, any): void
+}
+
+declare var Koha: KOHA
+ declare var humanMsg:HUMANMSG
--- a/koha-tmpl/intranet-tmpl/prog/js/src/admin/policy/main.ts
+++ a/koha-tmpl/intranet-tmpl/prog/js/src/admin/policy/main.ts
@@ -0,0 +1,73 @@
+///
+
+import {createApp} from "vue/dist/vue.esm-bundler";
+// @ts-ignore
+import PolicySidebar from "./components/policySidebar.vue";
+// @ts-ignore
+import PolicyMain from "./components/policyMain.vue";
+// @ts-ignore
+import PolicyTags from "./components/policyTags.vue";
+
+
+createApp({
+ template: `
+
+
+
{{title}}
+
+
+
+
+
+
+
+
+ `,
+ data() {
+ return {
+ title: _('Circulation, fines, and holds rules'),
+ current: {},
+ selected: {},
+ doSave: false,
+ doClear: false,
+ edited: [],
+ saved: false
+ }
+ },
+ computed: {
+ libraries() {
+ const libs = Object.keys(Koha.BRANCHES).map(code => {
+ return {code, name: Koha.BRANCHES[code].branchname, show: true}
+ })
+ return [{code: '', name: _('All libraries'), show: true}].concat(libs)
+ },
+ categories() {
+ const cats = Object.keys(Koha.PATRON_CATEGORIES).map(code => {
+ return {code, name: Koha.PATRON_CATEGORIES[code].description, show: true}
+ })
+ return [{code: '', name: _('All categories'), show: true}].concat(cats)
+ },
+ itemtypes() {
+ const itypes = Object.keys(Koha.ITEM_TYPES).map(code => {
+ return {code, name: Koha.ITEM_TYPES[code].description, show: true}
+ })
+ return [{code: '', name: _('All item types'), show: true}].concat(itypes)
+ }
+ },
+ methods: {
+ setEdited(edited) {
+ this.edited = edited
+ this.doSave = false
+ this.doClear = false
+ }
+ },
+ components: {
+ PolicySidebar,
+ PolicyMain,
+ PolicyTags
+ }
+}).mount("#vue-base");
--