You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

103 lines
3.9 KiB

{* $Id$ *}
{title}{tr}Organizer{/tr}{/title}
<div class="t_navbar mb-4 clearfix">
{button href="tiki-browse_categories.php?parentId=$parentId" _type="link" _icon_name="view" _text="{tr}Browse Categories{/tr}" _title="{tr}Browse the category system{/tr}"}
{if $tiki_p_admin_categories eq 'y'}
{button href="tiki-admin_categories.php?parentId=$parentId" _type="link" _icon_name="settings" _text="{tr}Admin Categories{/tr}" _title="{tr}Admin the Category System{/tr}"}
{/if}
</div>
{remarksbox title="{tr}Move objects between categories{/tr}"}
<ol>
<li>{tr}Click on the category name to display the list of objects in that category.{/tr}</li>
<li>{tr}Select the objects to affect. Controls will appear in the category browser.{/tr}</li>
<li>{tr}Use the plus and minus signs to add or remove the categories on selected objects.{/tr}</li>
</ol>
{/remarksbox}
<div class="category-browser">
{$tree}
</div>
{filter action="tiki-edit_categories.php" filter=$filter}{/filter}
<hr>
<div class="object-list">
<span class="h3">{tr}Object list result{/tr}</span>
<div class="mb-3 row">
<label class="col-sm-2 col-form-label col-form-label-sm">Filters applied</label>
<div class="col-sm-8">
<input class="form-control form-control-sm" disabled="disabled" value="{$filterString}">
</div>
</div>
{if $result && count($result)}
<span class="mb-auto">{tr}Select objects to change categorization:{/tr}</span>
<ol>
{foreach from=$result item=object}
<li{permission type=$object.type object=$object.object_id name="modify_object_categories"} class="available"{/permission}>
<input class="ms-20" type="checkbox" name="object[]" value="{$object.object_type|escape}:{$object.object_id|escape}">
{object_link type=$object.object_type id=$object.object_id}
</li>
{/foreach}
</ol>
{if $result->hasMore()}
<p>{tr}More results are available. Please refine the search criteria.{/tr}</p>
{/if}
<p>
<a class="select-all btn btn-link" href="#selectall">{tr}Select all{/tr}</a>
<a class="unselect-all btn btn-link" href="#unselectall">{tr}Unselect all{/tr}</a>
</p>
{else}
<span class="font-weight-bold">{tr}No results{/tr}</span>
{/if}
</div>
{jq}
function perform_selection_action(action, row) {
var objects = [], categId = $(row).find('a').data('categ'),
clicked = action === 'categorize' ? '.categ-add' : '.categ-remove';
$('.object-list :checked').each(function () {
objects.push($(this).val());
});
$('.control' + clicked, row).first().fadeTo(10, .20);
$.ajax({
type: 'POST',
url: $.service('category', action),
dataType: 'json',
data: {
categId: categId,
objects: objects,
ticket: $(row).find('span.control:first').data('ticket')
},
complete: function (data) {
location.href = location.href.replace(/#.*$/, "");
}
});
}
$('.categ-add')
.click(function () {
perform_selection_action('categorize', $(this).closest('li')[0]);
})
.addClass('ui-icon')
.addClass('ui-icon-circle-plus');
$('.categ-remove')
.click(function () {
perform_selection_action('uncategorize', $(this).closest('li')[0]);
})
.addClass('ui-icon')
.addClass('ui-icon-circle-minus');
$('.control').hide();
$('.object-list :checkbox').change(function () {
$('.control').toggle($('.object-list :checkbox:checked').length > 0);
});
$('.object-list li:not(.available) :checkbox').attr('disabled', true);
$('.select-all').click(function () {
$('.object-list :unchecked').prop('checked', true).change();
return false;
});
$('.unselect-all').click(function () {
$('.object-list :checked').prop('checked', false).change();
return false;
});
{/jq}