Bug 32924: Add the ability to filter agreement by logged in user
This patch adds a new filter checkbox at the top of the agreement list
"Show only mine" that will display agreements linked with the logged in
user.
Test plan:
Create several agreements, add your current logged in user to some of
them
On the agreement list view us the new checkbox to filter the agreements
and see those where you are involved in.
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 2adcd3b828
)
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
This commit is contained in:
parent
278d0bf18a
commit
3879855db9
3 changed files with 29 additions and 1 deletions
|
@ -270,6 +270,13 @@ __PACKAGE__->many_to_many("packages", "erm_eholdings_packages_agreements", "pack
|
|||
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2022-11-11 11:52:09
|
||||
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:N93LnvdKirtuV6BSrTGzVg
|
||||
|
||||
__PACKAGE__->has_many(
|
||||
"user_roles",
|
||||
"Koha::Schema::Result::ErmUserRole",
|
||||
{ "foreign.agreement_id" => "self.agreement_id" },
|
||||
{ cascade_copy => 0, cascade_delete => 0 },
|
||||
);
|
||||
|
||||
__PACKAGE__->add_columns(
|
||||
'+is_perpetual' => { is_boolean => 1 }
|
||||
);
|
||||
|
|
|
@ -42,6 +42,8 @@
|
|||
|
||||
const logged_in_user_lists = [% To.json(logged_in_user.virtualshelves.unblessed) | $raw %];
|
||||
|
||||
const logged_in_user = [% To.json(logged_in_user.unblessed) | $raw %];
|
||||
|
||||
</script>
|
||||
|
||||
[% Asset.js("js/vue/dist/erm.js") | $raw %]
|
||||
|
|
|
@ -17,6 +17,14 @@
|
|||
:config="fp_config"
|
||||
/>
|
||||
|
||||
<label for="by_mine_filter">{{ $__("Show mine only") }}:</label>
|
||||
<input
|
||||
type="checkbox"
|
||||
id="by_mine_filter"
|
||||
v-model="filters.by_mine"
|
||||
@keyup.enter="filter_table"
|
||||
/>
|
||||
|
||||
<input
|
||||
@click="filter_table"
|
||||
id="filter_table"
|
||||
|
@ -61,6 +69,7 @@ export default {
|
|||
table_id,
|
||||
setConfirmationDialog,
|
||||
setMessage,
|
||||
logged_in_user,
|
||||
}
|
||||
},
|
||||
data: function () {
|
||||
|
@ -72,6 +81,7 @@ export default {
|
|||
by_expired: this.$route.query.by_expired || false,
|
||||
max_expiration_date:
|
||||
this.$route.query.max_expiration_date || "",
|
||||
by_mine: this.$route.query.by_mine || false,
|
||||
},
|
||||
before_route_entered: false,
|
||||
building_table: false,
|
||||
|
@ -178,7 +188,9 @@ export default {
|
|||
let datatable_url = this.datatable_url
|
||||
let default_search = this.$route.query.q
|
||||
let actions = this.before_route_entered ? "edit_delete" : "select"
|
||||
let filters = this.filters
|
||||
let table_id = this.table_id
|
||||
let logged_in_user = this.logged_in_user
|
||||
|
||||
window["vendors"] = this.vendors.map(e => {
|
||||
e["_id"] = e["id"]
|
||||
|
@ -203,11 +215,17 @@ export default {
|
|||
{ _id: 1, _str: _("Yes") },
|
||||
]
|
||||
|
||||
let additional_filters = {
|
||||
"user_roles.user_id": function () {
|
||||
return filters.by_mine ? logged_in_user.borrowernumber : ""
|
||||
},
|
||||
}
|
||||
const table = $("#" + table_id).kohaTable(
|
||||
{
|
||||
ajax: {
|
||||
url: datatable_url,
|
||||
},
|
||||
embed: ["user_roles"],
|
||||
order: [[0, "asc"]],
|
||||
autoWidth: false,
|
||||
search: { search: default_search },
|
||||
|
@ -455,7 +473,8 @@ export default {
|
|||
},
|
||||
},
|
||||
agreement_table_settings,
|
||||
1
|
||||
1,
|
||||
additional_filters
|
||||
)
|
||||
},
|
||||
},
|
||||
|
|
Loading…
Reference in a new issue