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.
 
 
 
 
 
 

118 lines
7.7 KiB

{* $Id$ *}
<div class="item-link" id="il{$field.ins_id}">
{if $data.selectMultipleValues}
<input type="hidden" name="{$field.ins_id}_old" value="{$field.value|escape}" />
{/if}
{if $data.displayFieldsListType === 'table'}
{wikiplugin _name=trackerlist _compactArguments_=$data.trackerListOptions}{/wikiplugin}
{if $field.options_map.addItems and $data.createTrackerItems}
{if $data.predefined}
<div class="mb-3 row">
<div class="input-group col-sm-6">
<select name="addaction" class="form-select">
<option value="">{$field.options_map.addItems|escape}</option>
{foreach key=itemId item=label from=$data.predefined}
<option value="{$itemId}">{$label|escape}</option>
{/foreach}
</select>
<a class="btn btn-primary insert-tracker-item" href="{service controller=tracker action=insert_item trackerId=$field.options_map.trackerId next=$data.next|escape}">{tr}OK{/tr}</a>
</div>
</div>
{else}
<a class="btn btn-primary insert-tracker-item" href="{service controller=tracker action=insert_item trackerId=$field.options_map.trackerId next=$data.next|escape}">{tr}{$field.options_map.addItems|escape}{/tr}</a>
{/if}
{if $field.options_map.preSelectFieldThere}
<a class="btn btn-primary update-tracker-links" href="{service controller=tracker action=link_items trackerId=$field.options_map.trackerId next=$data.next|escape}">{tr}Update{/tr}</a>
{jq}
var preselectedValue = function() {
var preselectedEl = $("#il{{$field.ins_id}}").closest('form').find('[name=ins_{{$field.options_map.preSelectFieldHere}}]');
return preselectedEl.length > 0 ? preselectedEl.val() : $("#il{{$field.ins_id}}").closest('form').find('#trackerinput_{{$field.options_map.preSelectFieldHere}}').text();
}
$("#il{{$field.ins_id}}").find('.insert-tracker-item').on('click', function() {
var itemId = $('#il{{$field.ins_id}} select[name=addaction]').val();
if( itemId ) {
$(this).attr('href', "tiki-ajax_services.php?controller=tracker&action=clone_item&trackerId={{$field.options_map.trackerId}}&next={{$data.next|escape}}&itemId="+itemId+'&ins_{{$field.options_map.preSelectFieldThere}}='+tiki_encodeURIComponent(preselectedValue()));
} else {
$(this).attr('href', "tiki-ajax_services.php?controller=tracker&action=insert_item&trackerId={{$field.options_map.trackerId}}&next={{$data.next|escape}}&ins_{{$field.options_map.preSelectFieldThere}}="+tiki_encodeURIComponent(preselectedValue()));
}
});
$("#il{{$field.ins_id}}").find('.update-tracker-links').on('click', function(e) {
e.preventDefault();
$.ajax({
url: this.href,
data: {
items: $('input[name="{{$field.ins_id}}[]"]:checked').map(function(i, el){ return $(el).val(); }).toArray(),
linkField: {{$field.options_map.preSelectFieldThere|json_encode}},
linkValue: preselectedValue(),
trackerlistParams: {{$data.trackerListOptions|json_encode}}
},
success: function(data) {
$('#il{{$field.ins_id}} .ts-wrapperdiv').replaceWith(JSON.parse(data));
$("#il{{$field.ins_id}} a[data-type=trackeritem]").clickModal({});
}
})
});
{/jq}
{/if}
{jq}
$("#il{{$field.ins_id}}")
.find('.insert-tracker-item')
.clickModal({
success: function (data) {
var displayed = {{$data.list|json_encode}};
var row = '<tr>';
if( {{$data.trackerListOptions.checkbox|json_encode}} ) {
row += '<td><input type="checkbox" class="{{$field.ins_id}}-checkbox" name="{{$field.ins_id}}[]" value="'+( data.created ? data.created : data.itemId )+'" checked /></td>';
}
$.each(displayed, function(fieldId, permName) {
if( $('#il{{$field.ins_id}} th').filter(function(i, el){ return $(el).hasClass('field'+fieldId); }).length > 0 ) {
row += '<td>'+data.processedFields[permName]+'</td>';
}
});
row += '</tr>';
$row = $(row);
$('#il{{$field.ins_id}} table')
.find('tbody').append($row)
.trigger('addRows', [$row, true]);
$.closeModal();
}
});
$("#il{{$field.ins_id}} a[data-type=trackeritem]").clickModal({});
{/jq}
{/if}
{else}
<select name="{$field.ins_id}{if $data.selectMultipleValues}[]{/if}" {if $data.preselection and $data.crossSelect neq 'y'}disabled="disabled"{/if} {if $data.selectMultipleValues}multiple="multiple"{/if} class="form-select">
{if $field.isMandatory ne 'y' || empty($field.value)}
<option value=""></option>
{/if}
{foreach key=id item=label from=$data.list}
<option value="{$id|escape}" {if $data.preselection and !$field.value and $data.preselection eq $id or (($data.selectMultipleValues and is_array($field.value) and in_array($id, $field.value) or $field.value eq $id))}selected="selected"{/if}>
{$label}
</option>
{/foreach}
</select>
{if $field.options_map.addItems and $data.createTrackerItems}
<a class="btn btn-primary insert-tracker-item" href="{service controller=tracker action=insert_item trackerId=$field.options_map.trackerId next=$data.next|escape}" data-href="{service controller=tracker action=insert_item trackerId=$field.options_map.trackerId next=$data.next|escape}">{tr}{$field.options_map.addItems|escape}{/tr}</a>
{if $field.options_map.preSelectFieldThere}
{jq}
$("#il{{$field.ins_id}}").find('.insert-tracker-item').on('click', function() {
$(this).attr('href', $(this).data('href')+'&ins_{{$field.options_map.preSelectFieldThere}}='+$('#ins_{{$field.options_map.preSelectFieldHere}}').val());
});
{/jq}
{/if}
{jq}
$("select[name='{{$field.ins_id}}{{if $data.selectMultipleValues}[]{/if}}']").parent().find(".insert-tracker-item").clickModal({
success: function (data) {
var $select = $("select[name='{{$field.ins_id}}{{if $data.selectMultipleValues}[]{/if}}']");
$('<option>')
.attr('value', data.itemId)
.text(data.{{if not empty($data.otherFieldPermName)}fields.{$data.otherFieldPermName}{else}itemTitle{/if}})
.appendTo($select);
$select.val(data.itemId).trigger("change.select2").trigger("change");
$.closeModal();
}
});
{/jq}
{/if}
{/if}
</div>