Merge branch 'master' of https://github.com/easysoft/zentaopms
This commit is contained in:
@@ -34,7 +34,7 @@ $lang->block->assignToMe = 'Assign To Me';
|
||||
$lang->block->lblFlowchart = 'Workflow';
|
||||
$lang->block->welcome = 'Welcome';
|
||||
|
||||
$lang->block->leftToday = 'Work for Today';
|
||||
$lang->block->leftToday = 'Works for Today';
|
||||
$lang->block->myTask = 'My Task';
|
||||
$lang->block->myStory = 'My Story';
|
||||
$lang->block->myBug = 'My Bug';
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
<tr>
|
||||
<?php for($i = 0; $i < 6; $i++):?>
|
||||
<?php if($i == 0):?>
|
||||
<th><span class="flowchart-title"><?php echo $lang->block->role?></span></th>
|
||||
<th style='width:110px;'><span class="flowchart-title"><?php echo $lang->block->role?></span></th>
|
||||
<?php else:?>
|
||||
<th><div><span class="flowchart-step bg-secondary"><?php echo $i?></span></div></th>
|
||||
<?php endif;?>
|
||||
|
||||
@@ -109,7 +109,7 @@ $lang->bug->resolvedByMe = 'ResolvedByMe';
|
||||
$lang->bug->closedByMe = 'ClosedByMe';
|
||||
$lang->bug->assignToNull = 'Unassigned';
|
||||
$lang->bug->unResolved = 'Unresolved';
|
||||
$lang->bug->toClosed = 'ToBeClosed';
|
||||
$lang->bug->toClosed = 'Unclosed';
|
||||
$lang->bug->unclosed = 'Active';
|
||||
$lang->bug->unconfirmed = 'UnConfirmed';
|
||||
$lang->bug->longLifeBugs = 'Pending';
|
||||
@@ -167,7 +167,7 @@ $lang->bug->remindTask = 'This Bug has been converted to Task. Do you
|
||||
$lang->bug->skipClose = 'Bug %s is not resolved. You cannot close it.';
|
||||
$lang->bug->applyTemplate = 'Template';
|
||||
$lang->bug->confirmDeleteTemplate = 'Do you want to delete this template?';
|
||||
$lang->bug->hasSubmittedTest = 'Development has submitted test application,';
|
||||
$lang->bug->hasSubmittedTest = 'Developer has submitted test task,';
|
||||
$lang->bug->nowToTest = 'Now to test';
|
||||
|
||||
/* 模板。*/
|
||||
@@ -252,8 +252,8 @@ $lang->bug->statusList['active'] = 'Active';
|
||||
$lang->bug->statusList['resolved'] = 'Resolved';
|
||||
$lang->bug->statusList['closed'] = 'Closed';
|
||||
|
||||
$lang->bug->confirmedList[1] = 'Yes';
|
||||
$lang->bug->confirmedList[0] = 'No';
|
||||
$lang->bug->confirmedList[1] = 'Confirmed';
|
||||
$lang->bug->confirmedList[0] = 'Unconfirmed';
|
||||
|
||||
$lang->bug->resolutionList[''] = '';
|
||||
$lang->bug->resolutionList['bydesign'] = 'As Design';
|
||||
|
||||
@@ -25,14 +25,15 @@ $lang->install->seeLatestRelease = 'View Latest Version';
|
||||
$lang->install->welcome = 'Thanks for choosing ZenTao Project Management Software!';
|
||||
$lang->install->license = 'ZenTao PMS is under Z PUBLIC LICENSE(ZPL) 1.2';
|
||||
$lang->install->desc = <<<EOT
|
||||
ZenTao Project Management Software is an Open Source software released under <a href='http://zpl.pub/page/zplv12.html' target='_blank'>ZPL</a> license. It integrates with Product Management, Project Management, QA Management, Document Management, To-Dos Management, Company Management etc. ZenTao is the best choice for software project management.
|
||||
ZenTao Project Management Software is an Open Source software released under <a href='http://zpl.pub/page/zplv12.html' target='_blank'>ZPL</a> license. It integrates with Product Management, Project Management, QA Management, Document Management, Todos Management, Company Management etc. ZenTao is the best choice for software project management.
|
||||
|
||||
ZenTao PMS is built on PHP + MySQL and based on ZenTaoPHP, an independent framework developed by our team. Third party developers/organizations can develop extensions or customize for your requirements.
|
||||
ZenTao PMS is built on PHP + MySQL and based on ZenTaoPHP framework, an independent framework developed by our team. Third party developers/organizations can develop extensions or customize for their requirements.
|
||||
EOT;
|
||||
$lang->install->links = <<<EOT
|
||||
ZenTao PMS is developed by <strong><a href='http://easysoft.ltd' target='_blank' class='text-danger'>Nature Easy Soft Co., LTD</a></strong>.
|
||||
Official Website <a href='http://www.zentao.pm' target='_blank'>http://www.zentao.pm</a>
|
||||
Technical Support <a href='http://www.zentao.pm/ask/' target='_blank'>http://www.zentao.pm/ask/</a>
|
||||
Official Website : <a href='http://www.zentao.pm' target='_blank'>http://www.zentao.pm</a>
|
||||
Technical Support : <a href='http://www.zentao.pm/forum/' target='_blank'>http://www.zentao.pm/forum/</a>
|
||||
WhatsApp Group : <a href='https://chat.whatsapp.com/B6pi6b3gv0S7x7jqMxwhbF' target='_blank'>https://chat.whatsapp.com/B6pi6b3gv0S7x7jqMxwhbF</a>
|
||||
Twitter: <a href='https://twitter.com/cneasysoft' target='_blank'>cneasysoft</a>
|
||||
|
||||
You are installing ZenTao <strong class='text-danger'>%s</strong> Version.
|
||||
@@ -97,7 +98,7 @@ $lang->install->dbName = 'Database Name';
|
||||
$lang->install->dbPrefix = 'Table Prefix';
|
||||
$lang->install->clearDB = 'Clean tables if already exist.';
|
||||
$lang->install->importDemoData = 'Import Demo Data';
|
||||
$lang->install->working = 'Working way';
|
||||
$lang->install->working = 'Work Mode';
|
||||
|
||||
$lang->install->requestTypes['GET'] = 'GET';
|
||||
$lang->install->requestTypes['PATH_INFO'] = 'PATH_INFO';
|
||||
@@ -167,7 +168,7 @@ $lang->install->login = 'Login ZenTao';
|
||||
$lang->install->register = 'Register in ZenTao';
|
||||
|
||||
$lang->install->joinZentao = <<<EOT
|
||||
<p>You have installed ZenTao %s.<strong class='text-danger'> Please delete install.php asap</strong>.</p><p>Note: In order to get the latest news of ZenTao, register in ZenTao(<a href='http://www.zentao.pm' class='alert-link' target='_blank'>www.zentao.pm</a>).</p>
|
||||
<p>You have installed ZenTao %s.<strong class='text-danger'> Please delete install.php asap</strong>.</p><p>Note: In order to get the latest news of ZenTao, please register in ZenTao(<a href='http://www.zentao.pm' class='alert-link' target='_blank'>www.zentao.pm</a>).</p>
|
||||
EOT;
|
||||
|
||||
$lang->install->product = array('chanzhi', 'ranzhi');
|
||||
|
||||
@@ -46,8 +46,8 @@
|
||||
<form method='post' target='hiddenwin'>
|
||||
<table class='table table-form mw-400px' style='margin: 0 auto'>
|
||||
<tr>
|
||||
<th class='w-100px'><?php echo $lang->install->company;?></th>
|
||||
<td><?php echo html::input('company', '', "class='form-control' autocomplete='off'");?></td>
|
||||
<th class='w-200px'><?php echo $lang->install->company;?></th>
|
||||
<td class='w-300px'><?php echo html::input('company', '', "class='form-control' autocomplete='off'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->install->working;?></th>
|
||||
|
||||
@@ -74,7 +74,7 @@ $lang->product->qa = 'QA';
|
||||
$lang->product->release = 'Release';
|
||||
$lang->product->latestDynamic = 'Dynamic';
|
||||
$lang->product->plan = 'Plan';
|
||||
$lang->product->iteration = 'Iteration';
|
||||
$lang->product->iteration = 'Version Iteration';
|
||||
$lang->product->iterationInfo = '%s Iterations';
|
||||
$lang->product->iterationView = 'Details';
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ $lang->project->product = $lang->project->products;
|
||||
$lang->project->readjustTime = 'Adjust project begin and end time';
|
||||
$lang->project->readjustTask = 'Adjust task start date and deadline';
|
||||
$lang->project->effort = 'Effort';
|
||||
$lang->project->relatedMember = 'Related Member';
|
||||
$lang->project->relatedMember = 'Team Members';
|
||||
|
||||
$lang->project->start = 'Start';
|
||||
$lang->project->activate = 'Activate';
|
||||
@@ -143,7 +143,7 @@ $lang->project->batchUnlinkStory = 'Batch Unlink Story';
|
||||
$lang->project->importTask = 'Import Tasks';
|
||||
$lang->project->importPlanStories = 'Link Story From Plan';
|
||||
$lang->project->importBug = 'Import Bugs';
|
||||
$lang->project->updateOrder = 'Order';
|
||||
$lang->project->updateOrder = 'Sort';
|
||||
$lang->project->tree = 'Tree';
|
||||
$lang->project->storyKanban = 'Story Kanban';
|
||||
$lang->project->storySort = 'Sort Story';
|
||||
@@ -175,7 +175,7 @@ $lang->project->groups['closedBy'] = 'By ClosedBy';
|
||||
$lang->project->groups['type'] = 'By Type';
|
||||
|
||||
$lang->project->groupFilter['story']['all'] = $lang->project->all;
|
||||
$lang->project->groupFilter['story']['linked'] = 'Task Linked to Story';
|
||||
$lang->project->groupFilter['story']['linked'] = 'Tasks Linked to Story';
|
||||
$lang->project->groupFilter['pri']['all'] = $lang->project->all;
|
||||
$lang->project->groupFilter['pri']['noset'] = 'Not set';
|
||||
$lang->project->groupFilter['assignedTo']['undone'] = 'Unfinished';
|
||||
|
||||
@@ -52,8 +52,8 @@
|
||||
<th><?php echo $lang->team->days;?></th>
|
||||
<th><?php echo $lang->team->hours;?></th>
|
||||
<th><?php echo $lang->team->totalHours;?></th>
|
||||
<th class='w-80px text-center'><?php echo $lang->team->limited;?></th>
|
||||
<th class='c-actions-1'><?php echo $lang->actions;?></th>
|
||||
<th class='w-100px text-center'><?php echo $lang->team->limited;?></th>
|
||||
<th class='c-actions-1 w-80px'><?php echo $lang->actions;?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
@@ -36,7 +36,7 @@ $lang->release->product = $lang->productCommon;
|
||||
$lang->release->branch = 'Platform/Branch';
|
||||
$lang->release->build = 'Build';
|
||||
$lang->release->name = 'Name';
|
||||
$lang->release->marker = 'Marker';
|
||||
$lang->release->marker = 'Milestone';
|
||||
$lang->release->date = 'Date';
|
||||
$lang->release->desc = 'Description';
|
||||
$lang->release->status = 'Status';
|
||||
|
||||
@@ -70,7 +70,9 @@ class search extends control
|
||||
$queryID = $this->search->saveQuery();
|
||||
if(!$queryID) die(js::error(dao::getError()));
|
||||
|
||||
die(js::closeModal('parent.parent', '', "function(){parent.parent.loadQueries($queryID)}"));
|
||||
$data = fixer::input('post')->get();
|
||||
$shortcut = empty($data->onMenuBar) ? 0 : 1;
|
||||
die(js::closeModal('parent.parent', '', "function(){parent.parent.loadQueries($queryID, $shortcut, '{$data->title}')}"));
|
||||
}
|
||||
$this->view->module = $module;
|
||||
$this->view->onMenuBar = $onMenuBar;
|
||||
@@ -109,7 +111,7 @@ class search extends control
|
||||
foreach($queries as $queryID => $queryName)
|
||||
{
|
||||
if(empty($queryID)) continue;
|
||||
$html .= html::a("###", $queryName . (common::hasPriv('search', 'deleteQuery') ? '<i class="icon icon-close"></i>' : ''), '', "class='label user-query' data-query-id='$queryID'");
|
||||
$html .= '<li>' . html::a("javascript:executeQuery({$queryID})", $queryName . (common::hasPriv('search', 'deleteQuery') ? '<i class="icon icon-close"></i>' : ''), '', "class='label user-query' data-query-id='$queryID'") . '</li>';
|
||||
}
|
||||
die($html);
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@ $lang->search->select = 'Stories/Tasks Filter';
|
||||
$lang->search->me = 'Me';
|
||||
$lang->search->noQuery = 'No query saved!';
|
||||
$lang->search->onMenuBar = 'Show in Menu';
|
||||
$lang->search->custom = 'Custom';
|
||||
|
||||
$lang->search->account = 'Account';
|
||||
$lang->search->module = 'Module';
|
||||
|
||||
@@ -24,6 +24,7 @@ $lang->search->select = '需求/任务筛选';
|
||||
$lang->search->me = '自己';
|
||||
$lang->search->noQuery = '还没有保存查询!';
|
||||
$lang->search->onMenuBar = '显示在菜单栏';
|
||||
$lang->search->custom = '自定义';
|
||||
|
||||
$lang->search->account = '用户名';
|
||||
$lang->search->module = '模块';
|
||||
|
||||
@@ -217,6 +217,7 @@ foreach($fieldParams as $fieldName => $param)
|
||||
</tbody>
|
||||
</table>
|
||||
</form>
|
||||
<?php js::set('searchCustom', $lang->search->custom);?>
|
||||
<script>
|
||||
var dtOptions =
|
||||
{
|
||||
@@ -250,9 +251,18 @@ $(function()
|
||||
/*
|
||||
* Load queries form
|
||||
*/
|
||||
var loadQueries = window.loadQueries = function(queryID)
|
||||
var loadQueries = window.loadQueries = function(queryID, shortcut, name)
|
||||
{
|
||||
$('#userQueries div:first').load($.createLink('search', 'ajaxGetQuery', 'module=' + module + '&queryID=' + queryID));
|
||||
$('#userQueries ul').load($.createLink('search', 'ajaxGetQuery', 'module=' + module + '&queryID=' + queryID));
|
||||
if(shortcut)
|
||||
{
|
||||
if($('#mainMenu .btn-toolbar.pull-left #query').size() == 0)
|
||||
{
|
||||
var html = '<div class="btn-group" id="query"><a href="javascript:;" data-toggle="dropdown" class="btn btn-link " style="border-radius: 2px;">' + searchCustom + ' <span class="caret"></span></a><ul class="dropdown-menu"></ul></div>';
|
||||
$('#mainMenu .btn-toolbar.pull-left #bysearchTab').before(html);
|
||||
}
|
||||
$('#mainMenu .btn-toolbar.pull-left #query ul.dropdown-menu').append("<li><a href='" + actionURL.replace('myQueryID', queryID) + "'>" + name + "</a></li>")
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -431,7 +441,7 @@ $(function()
|
||||
var $query = $(this).closest('.user-query');
|
||||
var queryId = $query.data('queryId');
|
||||
var deleteQueryLink = $.createLink('search', 'deleteQuery', 'queryID=' + queryId);
|
||||
$.getJSON(deleteQueryLink, function(data)
|
||||
$.get(deleteQueryLink, function(data)
|
||||
{
|
||||
if(data == 'success') $query.remove();
|
||||
});
|
||||
|
||||
@@ -36,7 +36,7 @@ $lang->story->caseCountAB = 'C';
|
||||
$lang->story->linkStory = 'Link';
|
||||
$lang->story->unlinkStory = 'UnLinked';
|
||||
$lang->story->export = "Export Data";
|
||||
$lang->story->zeroCase = "Story w/o cases";
|
||||
$lang->story->zeroCase = "Stories w/o cases";
|
||||
$lang->story->zeroTask = "Display stories w/o tasks";
|
||||
$lang->story->reportChart = "Report";
|
||||
$lang->story->copyTitle = "Copy Title";
|
||||
|
||||
@@ -117,7 +117,7 @@ $lang->task->noStory = 'No Story';
|
||||
$lang->task->noAssigned = 'Unassigned';
|
||||
$lang->task->noFinished = 'Unfinished';
|
||||
$lang->task->noClosed = 'Unclosed';
|
||||
$lang->task->yesterdayFinished = 'Finishied Yesterday';
|
||||
$lang->task->yesterdayFinished = 'Finished Yesterday';
|
||||
$lang->task->allTasks = 'All Tasks';
|
||||
|
||||
$lang->task->statusList[''] = '';
|
||||
|
||||
@@ -116,7 +116,7 @@ $lang->testcase->assignToMe = 'AssignedToMe';
|
||||
$lang->testcase->openedByMe = 'CreatedByMe';
|
||||
$lang->testcase->allCases = 'All';
|
||||
$lang->testcase->allTestcases = 'All Cases';
|
||||
$lang->testcase->needConfirm = 'Story Change';
|
||||
$lang->testcase->needConfirm = 'StoryChanged';
|
||||
$lang->testcase->bySearch = 'Search';
|
||||
$lang->testcase->unexecuted = 'Wait';
|
||||
|
||||
@@ -169,8 +169,8 @@ $lang->testcase->reviewResultList['pass'] = 'Pass';
|
||||
$lang->testcase->reviewResultList['clarify'] = 'Clarify';
|
||||
|
||||
$lang->testcase->groups[''] = 'Group ';
|
||||
$lang->testcase->groups['story'] = 'Story Group';
|
||||
$lang->testcase->groups['assignedTo'] = 'Assign Group';
|
||||
$lang->testcase->groups['story'] = 'Group by Story';
|
||||
$lang->testcase->groups['assignedTo'] = 'Group by Assignee';
|
||||
|
||||
$lang->testcase->statusList[''] = '';
|
||||
$lang->testcase->statusList['wait'] = 'Wait';
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->testtask->index = "Home";
|
||||
$lang->testtask->create = "Create Test";
|
||||
$lang->testtask->create = "Submit Test";
|
||||
$lang->testtask->reportChart = 'Report';
|
||||
$lang->testtask->delete = "Delete";
|
||||
$lang->testtask->view = "Overview";
|
||||
|
||||
@@ -89,7 +89,7 @@ if($config->global->flow == 'onlyTask' or $config->global->flow == 'onlyStory')
|
||||
|
||||
$lang->todo->confirmDelete = "Do you want to delete this Todo?";
|
||||
$lang->todo->thisIsPrivate = 'This is a private Todo';
|
||||
$lang->todo->lblDisableDate = 'Set later';
|
||||
$lang->todo->lblDisableDate = 'Set it later';
|
||||
$lang->todo->lblBeforeDays = "Create a todo %s days(s) earlier";
|
||||
$lang->todo->lblClickCreate = "Click to add a todo";
|
||||
$lang->todo->noTodo = 'No todos of this type.';
|
||||
|
||||
@@ -2247,7 +2247,13 @@ class upgradeModel extends model
|
||||
$this->dao->insert(TABLE_HISTORY)->set('`new`')->eq($action->actor)->set('`field`')->eq('closedBy')->set('`action`')->eq($action->id)->exec();
|
||||
$this->dao->insert(TABLE_HISTORY)->set('`new`')->eq($action->date)->set('`old`')->eq('0000-00-00 00:00:00')->set('`field`')->eq('closedDate')->set('`action`')->eq($action->id)->exec();
|
||||
$this->dao->update(TABLE_HISTORY)->set('`new`')->eq('closed')->where('`action`')->eq($action->id)->andWhere('field')->eq('status')->exec();
|
||||
$this->dao->update(TABLE_PROJECT)->set('`status`')->eq('closed')->set('`closedBy`')->eq($action->actor)->set('`closedDate`')->eq($action->date)->where('id')->eq($action->objectID)->exec();
|
||||
$this->dao->update(TABLE_PROJECT)
|
||||
->set('`status`')->eq('closed')
|
||||
->set('`closedBy`')->eq($action->actor)
|
||||
->set('`closedDate`')->eq($action->date)
|
||||
->where('id')->eq($action->objectID)
|
||||
->andWhere('status')->eq('done')
|
||||
->exec();
|
||||
}
|
||||
return !dao::isError();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user