</class>
- <class
- id="uvfs"
- controller="open-ils.cstore open-ils.pcrud"
- oils_obj:fieldmapper="url_verify::filter_set"
- oils_persist:tablename="url_verify.filter_set"
- reporter:label="URL Verification Filter Set"
- >
- <fields oils_persist:primary="id" oils_persist:sequence="url_verify.url_verification_id_seq">
- <field reporter:label="ID" name="id" reporter:datatype="id"/>
- <field reporter:label="Name" name="name" reporter:datatype="text"/>
+ <class
+ id="cfdi"
+ controller="open-ils.cstore open-ils.pcrud"
+ oils_obj:fieldmapper="config::filter_dialog_interface"
+ oils_persist:tablename="config.filter_dialog_interface"
+ reporter:label="FilterDialog Interface">
+ <fields oils_persist:primary="key" oils_persist:sequence="config.filter_dialog_interface_pkey">
+ <field reporter:label="Interface Key" name="key" reporter:datatype="text" />
+ <field reporter:label="Description" name="description" reporter:datatype="text" />
+ </fields>
+ <links>
+ <link field="filter_sets" reltype="has_many" key="interface" map="" class="cfdfs"/>
+ </links>
+ <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+ <actions>
+ <retrieve />
+ </actions>
+ </permacrud>
+ </class>
+
+ <class
+ id="cfdfs"
+ controller="open-ils.cstore open-ils.pcrud"
+ oils_obj:fieldmapper="config::filter_dialog_filter_set"
+ oils_persist:tablename="config.filter_dialog_filter_set"
+ reporter:label="FilterDialog Filter Set">
+ <fields oils_persist:primary="id" oils_persist:sequence="config.filter_dialog_filter_set_pkey">
+ <field reporter:label="ID" name="id" reporter:datatype="id"/>
+ <field reporter:label="Name" name="name" reporter:datatype="text"/>
<field reporter:label="Owning Library" name="owning_lib" reporter:datatype="org_unit"/>
<field reporter:label="Creator" name="creator" reporter:datatype="link"/>
- <field reporter:label="Create Time" name="create_time" reporter:datatype="timestamp"/>
- <field reporter:label="Filter" name="filter" reporter:datatype="text"/>
- </fields>
-
- <links>
- <link field="owning_lib" reltype="has_a" key="id" map="" class="aou"/>
- <link field="creator" reltype="has_a" key="id" map="" class="au"/>
- </links>
-
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="URL_VERIFY" context_field="owning_lib"/>
- <retrieve permission="URL_VERIFY" context_field="owning_lib"/>
- <update permission="URL_VERIFY" context_field="owning_lib"/>
- <delete permission="URL_VERIFY" context_field="owning_lib"/>
- </actions>
- </permacrud>
+ <field reporter:label="Interface" name="interface" reporter:datatype="link"/>
+ <field reporter:label="Create Time" name="create_time" reporter:datatype="timestamp"/>
+ <field reporter:label="Filters" name="filters" reporter:datatype="text"/>
+ </fields>
+ <links>
+ <link field="owning_lib" reltype="has_a" key="id" map="" class="aou"/>
+ <link field="creator" reltype="has_a" key="id" map="" class="au"/>
+ <link field="interface" reltype="has_a" key="key" map="" class="cfdi"/>
+ </links>
+ <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+ <actions>
+ <create permission="SAVED_FILTER_DIALOG_FILTERS" context_field="owning_lib"/>
+ <retrieve permission="SAVED_FILTER_DIALOG_FILTERS" context_field="owning_lib"/>
+ <update permission="SAVED_FILTER_DIALOG_FILTERS" context_field="owning_lib"/>
+ <delete permission="SAVED_FILTER_DIALOG_FILTERS" context_field="owning_lib"/>
+ </actions>
+ </permacrud>
- </class>
+ </class>
<class id="cmrtm" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::marc21_rec_type_map" oils_persist:tablename="config.marc21_rec_type_map" reporter:label="MARC21 Record Type Map" oils_persist:field_safe="true">
<fields oils_persist:primary="code">
(COALESCE(ewho,''), COALESCE (ewhat,''), COALESCE(ehow,''));
+CREATE TABLE config.filter_dialog_interface (
+ key TEXT PRIMARY KEY,
+ description TEXT
+);
+
+CREATE TABLE config.filter_dialog_filter_set (
+ id SERIAL PRIMARY KEY,
+ name TEXT NOT NULL,
+ owning_lib INT NOT NULL, -- REFERENCES actor.org_unit (id) DEFERRABLE INITIALLY DEFERRED,
+ creator INT NOT NULL, -- REFERENCES actor.usr (id) DEFERRABLE INITIALLY DEFERRED,
+ create_time TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
+ interface TEXT NOT NULL REFERENCES config.filter_dialog_interface (key) DEFERRABLE INITIALLY DEFERRED,
+ filters TEXT NOT NULL, -- CHECK (evergreen.is_json(filters))
+ CONSTRAINT cfdfs_name_once_per_lib UNIQUE (name, owning_lib)
+);
+
+
COMMIT;
ALTER TABLE config.org_unit_setting_type_log ADD CONSTRAINT config_org_unit_setting_type_log_fkey FOREIGN KEY (org) REFERENCES actor.org_unit (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED;
+ALTER TABLE config.filter_dialog_filter_set
+ ADD CONSTRAINT config_filter_dialog_filter_set_owning_lib_fkey
+ FOREIGN KEY (owning_lib) REFERENCES actor.org_unit (id)
+ ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED;
+
+ALTER TABLE config.filter_dialog_filter_set
+ ADD CONSTRAINT config_filter_dialog_filter_set_creator_fkey
+ FOREIGN KEY (creator) REFERENCES actor.usr (id)
+ ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED;
+
+ALTER TABLE config.filter_dialog_filter_set
+ ADD CONSTRAINT config_filter_dialog_filter_set_filters_check
+ CHECK (evergreen.is_json(filters))
COMMIT;
redirect_to INT REFERENCES url_verify.url (id) DEFERRABLE INITIALLY DEFERRED -- if redirected
);
-CREATE TABLE url_verify.filter_set (
+CREATE TABLE config.filter_dialog_interface (
+ key TEXT PRIMARY KEY,
+ description TEXT
+);
+
+CREATE TABLE config.filter_dialog_filter_set (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL,
owning_lib INT NOT NULL REFERENCES actor.org_unit (id) DEFERRABLE INITIALLY DEFERRED,
creator INT NOT NULL REFERENCES actor.usr (id) DEFERRABLE INITIALLY DEFERRED,
create_time TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
- filter TEXT NOT NULL,
- CONSTRAINT uvfs_name_once_per_lib UNIQUE (name, owning_lib)
+ interface TEXT NOT NULL REFERENCES config.filter_dialog_interface (key) DEFERRABLE INITIALLY DEFERRED,
+ filters TEXT NOT NULL CHECK (evergreen.is_json(filters)),
+ CONSTRAINT cfdfs_name_once_per_lib UNIQUE (name, owning_lib)
);
COMMIT;