+[% USE KohaSpan %]
[% INCLUDE 'doc-head-open.inc' %]
<title>Koha › Administration › Library groups</title>
[% INCLUDE 'doc-head-close.inc' %]
-<script type="text/javascript" src="[% interface %]/lib/jquery-treegrid/js/jquery.treegrid.min.js"></script>
-<script type="text/javascript" src="[% interface %]/lib/jquery-treegrid/js/jquery.treegrid.bootstrap2.js"></script>
-<link rel="stylesheet" href="[% interface %]/lib/jquery-treegrid/css/jquery.treegrid.css">
+<link href="[% interface %]/lib/jquery/plugins/treetable/stylesheets/jquery.treetable_[% KOHA_VERSION %].css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="[% interface %]/lib/jquery/plugins/treetable/jquery.treetable_[% KOHA_VERSION %].js"></script>
<script type="text/javascript">
//<![CDATA[
$(document).ready(function() {
- $('#library-groups').treegrid(
+ $('.library-groups').treetable(
{
- 'saveState': true
+ expandable: true,
+ initialState: 'expanded',
+ clickableNodeNames: true,
}
);
+
+ $('.add-group').on('click', function() {
+ var id = $(this).data('groupId');
+ add_group( id );
+ });
+
+ $('.edit-group').on('click', function() {
+ var id = $(this).data('groupId');
+ var parent_id = $(this).data('groupParentId');
+ var title = $(this).data('groupTitle');
+ var description = $(this).data('groupDescription');
+ var ft_hide_patron_info = $(this).data('groupFt_hide_patron_info');
+ var ft_search_groups_opac = $(this).data('groupFt_search_groups_opac');
+ var ft_search_groups_staff = $(this).data('groupFt_search_groups_staff');
+ edit_group( id, parent_id, title, description, ft_hide_patron_info, ft_search_groups_opac, ft_search_groups_staff );
+ });
+
+ $('.delete-group').on('click', function() {
+ var id = $(this).data('groupId');
+ var title = $(this).data('groupTitle');
+ delete_group( id, title );
+ });
+
+ $('.remove-library').on('click', function() {
+ var id = $(this).data('groupId');
+ var library = $(this).data('groupLibrary');
+ var parent_title = $(this).data('groupParentTitle');
+ remove_library( id, library, parent_title );
+ });
});
function add_group( parent_id ) {
$('#add-group-modal-title').focus();
});
+ $('#add-group-modal-ft_hide_patron_info').prop('checked', false);
+ $('#add-group-modal-ft_search_groups_opac').prop('checked', false);
+ $('#add-group-modal-ft_search_groups_staff').prop('checked', false);
+ if ( parent_id ) {
+ $('#root-group-features-add').hide();
+ } else {
+ $('#root-group-features-add').show();
+ }
$('#add-group-modal').modal('show');
}
- function edit_group( id, title, description ) {
+ function edit_group( id, parent_id, title, description, ft_hide_patron_info, ft_search_groups_opac, ft_search_groups_staff ) {
$('#edit-group-modal-id').val( id );
$('#edit-group-modal-title').val( title );
$('#edit-group-modal-description').val( description );
+ if ( parent_id ) {
+ $('#edit-group-modal-ft_hide_patron_info').prop('checked', false);
+ $('#edit-group-modal-ft_search_groups_opac').prop('checked', false);
+ $('#edit-group-modal-ft_search_groups_staff').prop('checked', false);
+ $('#root-group-features-edit').hide();
+ } else {
+ $('#edit-group-modal-ft_hide_patron_info').prop('checked', ft_hide_patron_info ? true : false );
+ $('#edit-group-modal-ft_search_groups_opac').prop('checked', ft_search_groups_opac ? true : false );
+ $('#edit-group-modal-ft_search_groups_staff').prop('checked', ft_search_groups_staff ? true : false );
+ $('#root-group-features-edit').show();
+ }
+
$('#edit-group-modal').on('shown', function() {
$('#edit-group-modal-title').focus();
});
$('#edit-group-modal').modal('show');
}
- function remove_library( id ) {
+ function delete_group( id, title ) {
+ $('#delete-group-modal-title').html(title);
+ $('#delete-group-modal-id').val( id );
+ $('#delete-group-modal').modal('show');
+ }
+
+ function remove_library( id, library, parent_title ) {
+ $('#remove-library-modal-library').html( library );
+ $('#remove-library-modal-group').html(parent_title);
$('#remove-library-modal-id').val( id );
$('#remove-library-modal').modal('show');
}
- function delete_group( id ) {
- $('#delete-group-modal-id').val( id );
- $('#delete-group-modal').modal('show');
- }
//]]>
</script>
</head>
<body id="admin_library_groups" class="admin">
[% INCLUDE 'header.inc' %]
-[% INCLUDE 'cities-admin-search.inc' %]
+[% INCLUDE 'cat-search.inc' %]
<div id="breadcrumbs">
<a href="/cgi-bin/koha/mainpage.pl">Home</a>
</div>
[% IF added %]
- <div class="dialog alert group-added">
+ <div class="dialog message group-added">
[% IF added.branchcode %]
- <i>[% added.library.branchname %]</i> added to group.
+ [% added.library.branchname | $KohaSpan class = 'name' %] added to group.
[% ELSE %]
- Group <i>[% added.title %]</i> created.
+ Group [% added.title | $KohaSpan class = 'name' %] created.
[% END %]
</div>
[% ELSIF deleted %]
- <div class="dialog alert group-deleted">
+ <div class="dialog message group-deleted">
[% IF deleted.title %]
- Group <i>[% deleted.title %]</i> has been deleted.
+ Group [% deleted.title | $KohaSpan class = 'name' %] has been deleted.
[% ELSE %]
- <i>[% deleted.library %]</i> has been removed from group.
+ [% deleted.library | $KohaSpan class = 'name' %] has been removed from group.
[% END %]
</div>
+[% ELSIF error_duplicate_title %]
+ <div class="dialog alert error-duplicate-group-title">
+ A group with the title [% error_duplicate_title | $KohaSpan class = 'name' %] already exists.
+ </div>
[% END %]
<div id="doc3" class="yui-t2">
<div class="yui-g">
<div id="toolbar" class="btn-toolbar">
<div class="btn-group">
- <a id="add-group-[% group.id %]" class="btn btn-small" href="#" onclick="add_group()">
- <i class="fa fa-plus-circle"></i> Add group
+ <a id="add-group-root" class="btn btn-default btn-sm add-group" href="#">
+ <i class="fa fa-plus"></i> Add group
</a>
</div>
</div>
</div>
[% FOREACH root_group IN root_groups %]
- <table id="library-groups" class="tree">
+ <table class="library-groups">
<tr>
<th> </th>
<th>Description</th>
+ <th>Features enabled</th>
<th> </th>
</tr>
[% PROCESS tree group=root_group %]
[% INCLUDE 'admin-menu.inc' %]
</div>
- <div id="add-group-modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="add-group-modal-label" aria-hidden="true">
+ <div id="add-group-modal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="add-group-modal-label" aria-hidden="true">
<form id="add-group-form" action="/cgi-bin/koha/admin/library_groups.pl" class="form-horizontal">
- <div class="modal-header">
- <h3 id="add-group-modal-label">Add group</h3>
- </div>
- <div class="modal-body">
- <input type="hidden" id="add-group-modal-parent-id" name="parent_id" value="" />
- <input type="hidden" id="add-group-modal-action" name="action" value="add">
-
- <p>
- <label for="title">Title: </label>
- <input type="text" name="title" id="add-group-modal-title" required="required" />
- <i>required</i>
- </p>
-
- <p>
- <label for="description">Description: </label>
- <input type="text" name="description" id="add-group-modal-description" />
- </p>
- </div>
- <div class="modal-footer">
- <button type="submit" class="btn btn-primary">Save</button>
- <button class="btn" data-dismiss="modal" aria-hidden="true">Cancel</button>
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <div class="modal-header">
+ <h3 id="add-group-modal-label">Add group</h3>
+ </div>
+ <div class="modal-body">
+ <input type="hidden" id="add-group-modal-parent-id" name="parent_id" value="" />
+ <input type="hidden" id="add-group-modal-action" name="action" value="add">
+
+ <p>
+ <label for="add-group-modal-title">Title: </label>
+ <input type="text" name="title" id="add-group-modal-title" required="required" />
+ <i>required</i>
+ </p>
+
+ <p>
+ <label for="add-group-modal-description">Description: </label>
+ <input type="text" name="description" id="add-group-modal-description" />
+ </p>
+ <div id="root-group-features-add">
+ <h3>Features</h3>
+ <div class="checkbox">
+ <label>
+ <input type="checkbox" name="ft_hide_patron_info" id="add-group-modal-ft_hide_patron_info" value="1" />
+ Limit patron data access by group
+ </label>
+ <p>
+ <label>
+ <input type="checkbox" name="ft_search_groups_opac" id="add-group-modal-ft_search_groups_opac" value="1" />
+ Use for OPAC search groups
+ </label>
+ <p>
+ <label>
+ <input type="checkbox" name="ft_search_groups_staff" id="add-group-modal-ft_search_groups_staff" value="1" />
+ Use for staff search groups
+ </label>
+ </div>
+ </div>
+ </div>
+ <div class="modal-footer">
+ <button type="submit" class="btn btn-primary">Save</button>
+ <button class="btn btn-default" data-dismiss="modal" aria-hidden="true">Cancel</button>
+ </div>
+ </div>
</div>
</form>
</div>
- <div id="edit-group-modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="edit-library-modal-label" aria-hidden="true">
+ <div id="edit-group-modal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="edit-library-modal-label" aria-hidden="true">
<form id="edit-group-form" action="/cgi-bin/koha/admin/library_groups.pl" class="form-horizontal">
- <div class="modal-header">
- <h3 id="edit-group-modal-label">Edit group</h3>
- </div>
- <div class="modal-body">
- <input type="hidden" id="edit-group-modal-id" name="id" value="" />
- <input type="hidden" id="edit-group-modal-action" name="action" value="edit" />
-
- <p>
- <label for="title">Title: </label>
- <input type="text" id="edit-group-modal-title" name="title" value="" required="required" />
- <i>required</i>
- </p>
-
- <p>
- <label for="description">Description: </label>
- <input type="text" id="edit-group-modal-description" name="description" value="" />
- </p>
- </div>
- <div class="modal-footer">
- <button type="submit" class="btn btn-primary">Update</button>
- <button class="btn" data-dismiss="modal" aria-hidden="true">Cancel</button>
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <div class="modal-header">
+ <h3 id="edit-group-modal-label">Edit group</h3>
+ </div>
+ <div class="modal-body">
+ <input type="hidden" id="edit-group-modal-id" name="id" value="" />
+ <input type="hidden" id="edit-group-modal-action" name="action" value="edit" />
+
+ <p>
+ <label for="edit-group-modal-title">Title: </label>
+ <input type="text" id="edit-group-modal-title" name="title" value="" required="required" />
+ <i>required</i>
+ </p>
+
+ <p>
+ <label for="edit-group-modal-description">Description: </label>
+ <input type="text" id="edit-group-modal-description" name="description" value="" />
+ </p>
+ <div id="root-group-features-edit">
+ <h3>Features</h3>
+ <div class="checkbox">
+ <label>
+ <input type="checkbox" id="edit-group-modal-ft_hide_patron_info" name="ft_hide_patron_info" value="1" />
+ Limit patron data access by group
+ </label>
+ <p>
+ <label>
+ <input type="checkbox" id="edit-group-modal-ft_search_groups_opac" name="ft_search_groups_opac" value="1" />
+ Use for OPAC search groups
+ </label>
+ <p>
+ <label>
+ <input type="checkbox" id="edit-group-modal-ft_search_groups_staff" name="ft_search_groups_staff" value="1" />
+ Use for staff search groups
+ </label>
+ </div>
+ </div>
+ </div>
+ <div class="modal-footer">
+ <button type="submit" class="btn btn-primary">Update</button>
+ <button class="btn btn-default" data-dismiss="modal" aria-hidden="true">Cancel</button>
+ </div>
+ </div>
</div>
</form>
</div>
- <div id="delete-group-modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="delete-group-modal-label" aria-hidden="true">
+ <div id="delete-group-modal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="delete-group-modal-label" aria-hidden="true">
<form action="/cgi-bin/koha/admin/library_groups.pl" />
- <input id="delete-group-modal-action" type="hidden" name="action" value="delete" />
- <input id="delete-group-modal-id" type="hidden" name="id" value="" />
- <div class="modal-header">
- <h3 id="delete-group-modal-label">Delete group or library</h3>
- </div>
- <div class="modal-body">
- Are you sure you want to delete this?
- </div>
- <div class="modal-footer">
- <button type="submit" class="btn btn-danger"><i class="fa fa-trash"></i> Delete</button>
- <button class="btn" data-dismiss="modal" aria-hidden="true">Cancel</button>
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <input id="delete-group-modal-action" type="hidden" name="action" value="delete" />
+ <input id="delete-group-modal-id" type="hidden" name="id" value="" />
+ <div class="modal-header">
+ <h3 id="delete-group-modal-label">Delete group</h3>
+ </div>
+ <div class="modal-body">
+ Are you sure you want to delete <span id="delete-group-modal-title" class="name"></span>?
+ </div>
+ <div class="modal-footer">
+ <button type="submit" class="btn btn-danger"><i class="fa fa-trash"></i> Delete</button>
+ <button class="btn btn-default" data-dismiss="modal" aria-hidden="true">Cancel</button>
+ </div>
+ </div>
</div>
</form>
</div>
- <div id="remove-library-modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="remove-library-modal-label" aria-hidden="true">
+ <div id="remove-library-modal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="remove-library-modal-label" aria-hidden="true">
<form action="/cgi-bin/koha/admin/library_groups.pl" />
- <input id="remove-library-modal-action" type="hidden" name="action" value="delete" />
- <input id="remove-library-modal-id" type="hidden" name="id" value="" />
- <div class="modal-header">
- <h3 id="remove-library-modal-label">Remove library from group</h3>
- </div>
- <div class="modal-body">
- Are you sure you want to remove this library?
- </div>
- <div class="modal-footer">
- <button type="submit" class="btn btn-danger"><i class="fa fa-minus-circle"></i> Remove</button>
- <button class="btn" data-dismiss="modal" aria-hidden="true">Cancel</button>
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <input id="remove-library-modal-action" type="hidden" name="action" value="delete" />
+ <input id="remove-library-modal-id" type="hidden" name="id" value="" />
+ <div class="modal-header">
+ <h3 id="remove-library-modal-label">Remove library from group</h3>
+ </div>
+ <div class="modal-body">
+ Are you sure you want to remove <span id="remove-library-modal-library" class="name"></span> from <span id="remove-library-modal-group" class="name"><span>?
+ </div>
+ <div class="modal-footer">
+ <button type="submit" class="btn btn-danger"><i class="fa fa-trash"></i> Remove</button>
+ <button class="btn btn-default" data-dismiss="modal" aria-hidden="true">Cancel</button>
+ </div>
+ </div>
</div>
</form>
</div>
[% INCLUDE 'intranet-bottom.inc' %]
[% BLOCK tree %]
- <tr class="treegrid-[% group.id %] treegrid-parent-[% group.parent_id %]">
+ <tr data-tt-id="[% group.id %]" data-tt-parent-id="[% group.parent_id %]">
<td>
[% IF group.branchcode %]
- <i class="fa fa-home"></i> [% group.branchcode %]
+ [% group.branchcode %]
[% ELSE %]
- <i class="fa fa-object-group"></i> [% group.title %]
+ [% group.title %]
[% END %]
</td>
<td>
[% group.description %]
[% END %]
</td>
+ <td>
+ [% UNLESS group.branchcode %]
+ <ul>
+ [% IF group.ft_hide_patron_info %]
+ <li>Hide patron's info for librarians outside of this group.</li>
+ [% END %]
+ [% IF group.ft_search_groups_opac %]
+ <li>Use for OPAC search groups</li>
+ [% END %]
+ [% IF group.ft_search_groups_staff %]
+ <li>Use for staff search groups</li>
+ [% END %]
+ </ul>
+ [% END %]
+ </td>
<td>
[% IF group.branchcode %]
- <button class="btn btn-small delete-library" onclick="remove_library([% group.id %])"><i class="fa fa-minus-circle"></i> Remove from group</button>
+ <button class="btn btn-default btn-sm remove-library" data-group-id="[% group.id %]" data-group-library="[% group.library.branchname %]" data-group-parent-title="[% group.parent.title %]" ><i class="fa fa-trash"></i> Remove from group</button>
[% ELSE %]
<div class="btn-group">
- <button class="btn btn-small dropdown-toggle" data-toggle="dropdown"><i class="fa fa-wrench"></i> Actions <span class="caret"></span></button>
+ <button class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown"><i class="fa fa-wrench"></i> Actions <span class="caret"></span></button>
<ul class="dropdown-menu">
<li>
- <a id="add-group-[% group.id %]" href="#" onclick="add_group([% group.id %])">
- <i class="fa fa-plus-circle"></i> Add sub-group
+ <a id="add-group-[% group.id %]" href="#" class="add-group" data-group-id="[% group.id %]">
+ <i class="fa fa-plus"></i> Add sub-group
</a>
</li>
<li>
- <a class="delete-group" id="delete-group-[% group.id %]" href="#" onclick="edit_group([% group.id %], '[% group.title | replace('\'', '\\\'') | html %]', '[% group.description | replace('\'', '\\\'') | html %]')">
- <i class="fa fa-edit"></i> Edit
+ <a class="edit-group" id="edit-group-[% group.id %]" href="#" class="edit-group" data-group-id="[% group.id %]" data-group-parent-id="[% group.parent_id %]" data-group-title="[% group.title | html %]" data-group-description="[% group.description | html %]" data-group-ft_hide_patron_info="[% group.ft_hide_patron_info | html %]" data-group-ft_search_groups_opac="[% group.ft_search_groups_opac | html %]" data-group-ft_search_groups_staff="[% group.ft_search_groups_staff | html %]" >
+ <i class="fa fa-pencil"></i> Edit
</a>
</li>
<li>
- <a class="delete-group" id="delete-group-[% group.id %]" href="#" onclick="delete_group([% group.id %])">
+ <a class="delete-group" id="delete-group-[% group.id %]" href="#" class="delete-group" data-group-id="[% group.id %]" data-group-title="[% group.title | html %]">
<i class="fa fa-trash"></i> Delete
</a>
</li>
</div>
<div class="btn-group">
- <button class="btn btn-small dropdown-toggle" data-toggle="dropdown"><i class="fa fa-home"></i> Add library <span class="caret"></span></button>
+ <button class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown"><i class="fa fa-plus"></i> Add library <span class="caret"></span></button>
<ul class="dropdown-menu">
[% FOREACH library IN group.libraries_not_direct_children %]
<li>