* improve UI of task views.

This commit is contained in:
Catouse
2018-05-29 19:03:33 +08:00
parent 6d3b51c826
commit 30554aafe3
7 changed files with 142 additions and 105 deletions
-69
View File
@@ -1,69 +0,0 @@
/* If left = 0, warning. */
function checkLeft()
{
value = $("#left").val();
if(isNaN(parseInt(value)) || value == 0)
{
if(confirm(confirmFinish))
{
return true;
}
else
{
return false;
}
}
}
$(document).on('click', '.btn-move-up, .btn-move-down', function()
{
var $this = $(this);
if($this.hasClass('btn-move-up'))
{
$(this).parents('tr').prev().before($(this).parents('tr'));
}
else
{
$this.parents('tr').next().after($(this).parents('tr'));
}
$('.btn-move-up, .btn-move-down').removeClass('disabled').removeAttr('disabled');
adjustSortBtn();
});
function adjustSortBtn()
{
$('.btn-move-up:first').addClass('disabled').attr('disabled', 'disabled');
$('.btn-move-down:last').addClass('disabled').attr('disabled', 'disabled');
}
$('#modalTeam .btn').click(function()
{
var team = '';
var time = 0;
$('[name*=team]').each(function()
{
if($(this).find('option:selected').text() != '')
{
team += ' ' + $(this).find('option:selected').text();
}
estimate = parseFloat($(this).parents('td').next('td').find('[name*=teamEstimate]').val());
if(!isNaN(estimate))
{
time += estimate;
}
$('#teamMember').val(team).attr('title', team);
$('#estimate').val(time);
})
});
$(document).on('click', 'a.btn-move-add', function()
{
var html = $("#modalTeam table.table tbody tr:last").html();
$("#modalTeam table.table tbody tr:last").after('<tr>' + html + '</tr>');
$("#modalTeam table.table tbody tr:last").prev().find('.btn-move-down').removeClass('disabled').removeAttr('disabled');
adjustSortBtn();
});
+52 -2
View File
@@ -192,8 +192,58 @@ $(document).ready(function()
$('#estimate').attr('readonly', false);
}
});
$("[href='#modalTeam']").click(function()
/* Init task team manage dialog */
var $taskTeamEditor = $('#taskTeamEditor').batchActionForm(
{
adjustSortBtn();
idStart: 0,
idEnd: 5,
chosen: true,
datetimepicker: false,
colorPicker: false,
});
var taskTeamEditor = $taskTeamEditor.data('zui.batchActionForm');
var adjustButtons = function()
{
$taskTeamEditor.find('.btn-move-up.disabled,.btn-move-down.disabled,.btn-delete.disabled').removeClass('disabled').attr('disabled', null);
$taskTeamEditor.find('.btn-move-up:first').addClass('disabled').attr('disabled', 'disabled');
$taskTeamEditor.find('.btn-move-down:last').addClass('disabled').attr('disabled', 'disabled');
var $deleteBtn = $taskTeamEditor.find('.btn-delete');
if ($deleteBtn.length == 1) $deleteBtn.addClass('disabled').attr('disabled', 'disabled');
};
$taskTeamEditor.on('click', '.btn-add', function()
{
var $newRow = taskTeamEditor.createRow(null, $(this).closest('tr'));
$newRow.addClass('highlight');
setTimeout(function()
{
$newRow.removeClass('highlight');
}, 1600);
adjustButtons();
}).on('click', '.btn-delete', function()
{
var $row = $(this).closest('tr');
$row.addClass('highlight').fadeOut(700, function()
{
$row.remove();
adjustButtons();
});
}).on('click', '.btn-move-up, .btn-move-down', function()
{
var $this = $(this);
if($this.hasClass('btn-move-up'))
{
$(this).parents('tr').prev().before($(this).parents('tr'));
}
else
{
$this.parents('tr').next().after($(this).parents('tr'));
}
adjustButtons();
});;
adjustButtons();
});
+58 -10
View File
@@ -15,8 +15,8 @@ function loadAll(projectID)
{
if(!changeProjectConfirmed)
{
firstChoice = confirm(confirmChangeProject);
changeProjectConfirmed = true; // Only notice the user one time.
firstChoice = confirm(confirmChangeProject);
changeProjectConfirmed = true; // Only notice the user one time.
}
if(changeProjectConfirmed && firstChoice)
{
@@ -40,7 +40,7 @@ function loadAll(projectID)
*/
function loadModuleMenu(projectID)
{
link = createLink('tree', 'ajaxGetOptionMenu', 'rootID=' + projectID + '&viewtype=task');
var link = createLink('tree', 'ajaxGetOptionMenu', 'rootID=' + projectID + '&viewtype=task');
$('#moduleIdBox').load(link, function(){$('#module').chosen(defaultChosenOptions);});
}
@@ -53,7 +53,7 @@ function loadModuleMenu(projectID)
*/
function loadProjectStories(projectID)
{
link = createLink('story', 'ajaxGetProjectStories', 'projectID=' + projectID + '&productID=0&branch=0&moduleID=0&storyID=' + oldStoryID);
var link = createLink('story', 'ajaxGetProjectStories', 'projectID=' + projectID + '&productID=0&branch=0&moduleID=0&storyID=' + oldStoryID);
$('#storyIdBox').load(link, function(){$('#story').chosen(defaultChosenOptions);});
}
@@ -66,17 +66,12 @@ function loadProjectStories(projectID)
*/
function loadProjectMembers(projectID)
{
link = createLink('project', 'ajaxGetMembers', 'projectID=' + projectID + '&assignedTo=' + oldAssignedTo);
var link = createLink('project', 'ajaxGetMembers', 'projectID=' + projectID + '&assignedTo=' + oldAssignedTo);
$('#assignedToIdBox').load(link, function(){$('#assignedToIdBox').find('select').chosen(defaultChosenOptions)});
}
/* empty function. */
function setPreview(){}
$(".btn[data-toggle='modalTeam']").click(function()
{
$('#modalTeam').modal('show')
adjustSortBtn();
});
$(document).ready(function()
{
@@ -93,4 +88,57 @@ $(document).ready(function()
$('#teamTr').addClass('hidden');
}
});
/* Init task team manage dialog */
var $taskTeamEditor = $('#taskTeamEditor').batchActionForm(
{
idStart: 0,
idEnd: 5,
chosen: true,
datetimepicker: false,
colorPicker: false,
});
var taskTeamEditor = $taskTeamEditor.data('zui.batchActionForm');
var adjustButtons = function()
{
$taskTeamEditor.find('.btn-move-up.disabled,.btn-move-down.disabled,.btn-delete.disabled').removeClass('disabled').attr('disabled', null);
$taskTeamEditor.find('.btn-move-up:first').addClass('disabled').attr('disabled', 'disabled');
$taskTeamEditor.find('.btn-move-down:last').addClass('disabled').attr('disabled', 'disabled');
var $deleteBtn = $taskTeamEditor.find('.btn-delete');
if ($deleteBtn.length == 1) $deleteBtn.addClass('disabled').attr('disabled', 'disabled');
};
$taskTeamEditor.on('click', '.btn-add', function()
{
var $newRow = taskTeamEditor.createRow(null, $(this).closest('tr'));
$newRow.addClass('highlight');
setTimeout(function()
{
$newRow.removeClass('highlight');
}, 1600);
adjustButtons();
}).on('click', '.btn-delete', function()
{
var $row = $(this).closest('tr');
$row.addClass('highlight').fadeOut(700, function()
{
$row.remove();
adjustButtons();
});
}).on('click', '.btn-move-up, .btn-move-down', function()
{
var $this = $(this);
if($this.hasClass('btn-move-up'))
{
$(this).parents('tr').prev().before($(this).parents('tr'));
}
else
{
$this.parents('tr').next().after($(this).parents('tr'));
}
adjustButtons();
});;
adjustButtons();
});
+9
View File
@@ -0,0 +1,9 @@
/* If left = 0, warning. */
function checkLeft()
{
value = $("#left").val();
if(isNaN(parseInt(value)) || value == 0)
{
return confirm(confirmFinish);
}
}
+7 -8
View File
@@ -180,10 +180,9 @@
<h4 class='modal-title'><?php echo $lang->task->team;?></h4>
</div>
<div class='modal-content with-padding'>
<table class="table table-form">
<table class="table table-form" id='taskTeamEditor'>
<tbody>
<?php for($i = 0; $i < 5; $i++):?>
<tr>
<tr class='template'>
<td><?php echo html::select("team[]", $members, '', "class='form-control chosen'");?></td>
<td>
<div class='input-group'>
@@ -191,13 +190,13 @@
<span class='input-group-addon'><?php echo $lang->task->hour;?></span>
</div>
</td>
<td class='w-90px'>
<a class='btn btn-move-add btn-icon btn-sm'><i class='icon-plus'></i></a>
<a class='btn btn-move-up btn-sm btn-icon'><i class='icon-arrow-up'></i></a>
<a class='btn btn-move-down btn-sm btn-icon'><i class='icon-arrow-down'></i></a>
<td class='w-130px'>
<button type='button' class='btn btn-link btn-sm btn-icon btn-move-up'><i class='icon-arrow-up'></i></button>
<button type='button' class='btn btn-link btn-sm btn-icon btn-move-down'><i class='icon-arrow-down'></i></button>
<button type="button" class="btn btn-link btn-sm btn-icon btn-add"><i class="icon icon-plus"></i></button>
<button type="button" class="btn btn-link btn-sm btn-icon btn-delete"><i class="icon icon-trash"></i></button>
</td>
</tr>
<?php endfor;?>
</tbody>
<tfoot>
<tr>
+14 -14
View File
@@ -107,7 +107,7 @@
</tr>
<tr class='<?php echo empty($task->team) ? 'hidden' : ''?>' id='teamTr'>
<th><?php echo $lang->task->team;?></th>
<td><?php echo html::a('javascript:;', $lang->task->team, '', "class='form-control btn' data-toggle='modalTeam'");?></td>
<td><?php echo html::a('#modalTeam', $lang->task->team, '', "class='form-control btn' data-toggle='modal'");?></td>
</tr>
<tr>
<th><?php echo $lang->task->type;?></th>
@@ -217,7 +217,7 @@
</button>
<h4 class="modal-title"><?php echo $lang->task->team?></h4>
</div>
<div class="modal-content with-padding">
<div class="modal-content with-padding" id='taskTeamEditor'>
<table class='table table-form'>
<tbody>
<?php foreach($task->team as $member):?>
@@ -233,15 +233,15 @@
<?php echo html::input("teamLeft[]", $member->left, "class='form-control text-center' placeholder='{$lang->task->hour}'")?>
</div>
</td>
<td class='w-90px'>
<a href='javascript:;' class='btn btn-icon btn-move-up btn-sm'><i class='icon-arrow-up'></i></a>
<a href='javascript:;' class='btn btn-icon btn-move-down btn-sm'><i class='icon-arrow-down'></i></a>
<td class='w-130px'>
<button type='button' class='btn btn-link btn-sm btn-icon btn-move-up'><i class='icon-arrow-up'></i></button>
<button type='button' class='btn btn-link btn-sm btn-icon btn-move-down'><i class='icon-arrow-down'></i></button>
<button type="button" class="btn btn-link btn-sm btn-icon btn-add"><i class="icon icon-plus"></i></button>
</td>
</tr>
<?php endforeach;?>
<?php for($i = 0; $i < 5; $i++):?>
<tr>
<td class='w-150px'><?php echo html::select("team[]", $members, '', "class='form-control chosen'")?></td>
<tr class='template'>
<td class='w-250px'><?php echo html::select("team[]", $members, '', "class='form-control chosen'")?></td>
<td>
<div class='input-group'>
<span class='input-group-addon'><?php echo $lang->task->estimate?></span>
@@ -252,16 +252,16 @@
<?php echo html::input("teamLeft[]", '', "class='form-control text-center' placeholder='{$lang->task->hour}'")?>
</div>
</td>
<td class='w-90px'>
<a class='btn btn-move-add btn-icon btn-sm'><i class='icon-plus'></i></a>
<a class='btn btn-icon btn-move-up btn-sm'><i class='icon-arrow-up'></i></a>
<a class='btn btn-icon btn-move-down btn-sm'><i class='icon-arrow-down'></i></a>
<td class='w-130px'>
<button type='button' class='btn btn-link btn-sm btn-icon btn-move-up'><i class='icon-arrow-up'></i></button>
<button type='button' class='btn btn-link btn-sm btn-icon btn-move-down'><i class='icon-arrow-down'></i></button>
<button type="button" class="btn btn-link btn-sm btn-icon btn-add"><i class="icon icon-plus"></i></button>
<button type="button" class="btn btn-link btn-sm btn-icon btn-delete"><i class="icon icon-trash"></i></button>
</td>
</tr>
<?php endfor;?>
</tbody>
<tfoot>
<tr><td colspan='3' class='text-center'><?php echo html::a('javascript:void(0)', $lang->confirm, '', "class='btn btn-primary' data-dismiss='modal'");?></td></tr>
<tr><td colspan='3' class='text-center form-actions'><?php echo html::a('javascript:void(0)', $lang->confirm, '', "class='btn btn-primary btn-wide' data-dismiss='modal'");?></td></tr>
</tfoot>
</table>
</div>
File diff suppressed because one or more lines are too long