101 lines
3.6 KiB
PHP
101 lines
3.6 KiB
PHP
<div id="importLinesModal" class="modal fade">
|
|
<div class="modal-dialog modal-lg modal-simple load-indicator">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<button type="button" class="close" data-dismiss="modal"><i class="icon icon-close"></i></button>
|
|
<h4 class="modal-title"><?php echo $lang->pasteText;?></h4>
|
|
</div>
|
|
<div class="modal-body">
|
|
<?php echo html::textarea('importLines', '', "class='form-control mgb-10' rows='10' placeholder='$lang->pasteTextInfo'")?>
|
|
</div>
|
|
<div class="modal-footer text-left">
|
|
<button type="button" class="btn btn-primary btn-wide" id="importLinesBtn"><?php echo $lang->save;?></button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<script>
|
|
$(function()
|
|
{
|
|
var $form = $('#batchCreateForm');
|
|
var batchForm = $form.data('zui.batchActionForm');
|
|
|
|
var rowTpl, $formTbody;
|
|
var createRow = function()
|
|
{
|
|
if(!rowTpl) rowTpl = $('#trTemp tbody').html();
|
|
if(!$formTbody) $formTbody = $form.find('table > tbody');
|
|
|
|
var lastIndex = parseInt($formTbody.find('tr:last > td:first').text());
|
|
var moduleArr = ['task', 'story', 'bug', 'testcase'];
|
|
if($.inArray(config.currentModule, moduleArr) >= 0 && config.currentMethod == 'batchcreate')
|
|
{
|
|
lastIndex = rowIndex;
|
|
rowIndex ++;
|
|
}
|
|
|
|
var $newRow = $(rowTpl.replace(/%s/g, lastIndex + 1));
|
|
$newRow.find('.chosen').chosen();
|
|
$newRow.find('.picker').remove()
|
|
$newRow.find('.picker-select').picker();
|
|
$newRow.find('.iframe').modalTrigger({iframe:true});
|
|
$newRow.find('[data-provide="colorpicker-later"]').colorPicker();
|
|
$newRow.datepickerAll();
|
|
$formTbody.append($newRow);
|
|
return $newRow;
|
|
};
|
|
|
|
var $importLines = $('#importLines');
|
|
$('#importLinesBtn').on('click', function()
|
|
{
|
|
var $modal = $('#importLinesModal');
|
|
var $dialog = $modal.find('.modal-dialog').addClass('loading');
|
|
|
|
setTimeout(function()
|
|
{
|
|
var importText = $importLines.val();
|
|
var lines = importText.split('\n');
|
|
var $lastRow, $firstRow;
|
|
$.each(lines, function(index, line)
|
|
{
|
|
line = $.trim(line);
|
|
if (!line.length) return;
|
|
if (!$lastRow)
|
|
{
|
|
$row = $form.find('tbody>tr .title-import').first().closest('tr');
|
|
if(!$row && batchForm) $row = batchForm.createRow();
|
|
}
|
|
else $row = $lastRow.next();
|
|
while ($row.length && $row.find('.title-import').val().length)
|
|
{
|
|
$row = $row.next();
|
|
}
|
|
if (!$row || !$row.length)
|
|
{
|
|
if (batchForm) $row = batchForm.createRow();
|
|
else $row = createRow();
|
|
}
|
|
$row.find('.title-import').val(line).addClass('highlight');
|
|
$lastRow = $row;
|
|
if(!$firstRow) $firstRow = $row;
|
|
});
|
|
$importLines.val('');
|
|
$dialog.removeClass('loading');
|
|
$modal.on('hidden.zui.modal', function()
|
|
{
|
|
$firstRow[0].scrollIntoView();
|
|
}).modal('hide');
|
|
setTimeout(function()
|
|
{
|
|
$form.find('.title-import.highlight').removeClass('highlight');
|
|
}, 3000);
|
|
}, 200);
|
|
});
|
|
|
|
$importLines.on('scroll', function()
|
|
{
|
|
$importLines.css('background-position-y', -$importLines.scrollTop() + 6);
|
|
});
|
|
});
|
|
</script>
|