Merge branch 'master' of https://github.com/easysoft/zentaopms
This commit is contained in:
@@ -60,15 +60,7 @@ class control extends baseControl
|
||||
$viewFile = (!empty($siteExtViewFile) and file_exists($siteExtViewFile)) ? $siteExtViewFile : $viewFile;
|
||||
if(!is_file($viewFile))
|
||||
{
|
||||
if($this->config->debug === false)
|
||||
{
|
||||
die(js::locate($this->createLink('misc','ajaxerror', ".mhtml"), 'parent'));
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->app->triggerError("the view file $viewFile not found", __FILE__, __LINE__, $exit = true);
|
||||
}
|
||||
|
||||
die(js::error($this->lang->notPage) . js::locate('back'));
|
||||
}
|
||||
|
||||
$commonExtHookFiles = glob($viewExtPath['common'] . $this->devicePrefix . $methodName . ".*.{$viewType}.hook.php");
|
||||
|
||||
+20
-20
@@ -27,7 +27,7 @@ $lang->login = 'Login';
|
||||
$lang->help = 'Help';
|
||||
$lang->aboutZenTao = 'ZenTao';
|
||||
$lang->profile = 'Profile';
|
||||
$lang->changePassword = 'Password';
|
||||
$lang->changePassword = 'Change Password';
|
||||
$lang->runInfo = "<div class='row'><div class='u-1 a-center' id='debugbar'>Time %s MS, Memory %s KB, Query %s. </div></div>";
|
||||
$lang->agreement = "I have read and agreed to the terms and conditions of <a href='http://zpl.pub/page/zplv12.html' target='_blank'> Z PUBLIC LICENSE 1.2 </a>. <span class='text-danger'>Without authorization, I should not remove, hide or cover any logos/links of ZenTao.</span>";
|
||||
$lang->designedByAIUX = "<a href='http://aiuxstudio.com/' class='link-aiux' target='_blank'>Designed by <strong>AIUX</strong></a>";
|
||||
@@ -69,20 +69,20 @@ $lang->expand = 'Expand';
|
||||
$lang->collapse = 'Collapse';
|
||||
$lang->saveSuccess = 'Saved';
|
||||
$lang->fail = 'Fail';
|
||||
$lang->addFiles = 'Add';
|
||||
$lang->addFiles = 'Added Files';
|
||||
$lang->files = 'Files ';
|
||||
$lang->pasteText = 'Paste';
|
||||
$lang->uploadImages = 'Upload';
|
||||
$lang->timeout = 'Timeout. Pease check your connection, or try it again!';
|
||||
$lang->repairTable = 'Database table might be damaged. Execute phpmyadmin or myisamchk to fix it.';
|
||||
$lang->uploadImages = 'Upload Image';
|
||||
$lang->timeout = 'Timeout. Check your newtwork connections, or try it again!';
|
||||
$lang->repairTable = 'Database table might be damaged. Run phpmyadmin or myisamchk to fix it.';
|
||||
$lang->duplicate = '%s has the same title as a file title existed.';
|
||||
$lang->ipLimited = "<html><head><meta http-equiv='Content-Type' content='text/html; charset=utf-8' /></head><body>Sorry, your current IP is restricted. PLease contact your Administer to grant your permissions.</body></html>";
|
||||
$lang->unfold = '+';
|
||||
$lang->fold = '-';
|
||||
$lang->homepage = 'Set Home';
|
||||
$lang->noviceTutorial = 'Rookie Tutorial';
|
||||
$lang->noviceTutorial = 'Tutorial';
|
||||
$lang->changeLog = 'Change Log';
|
||||
$lang->manual = 'Manual';
|
||||
$lang->manual = 'User Manual';
|
||||
$lang->manualUrl = 'https://www.zentao.pm/book/zentaomanual/zentao-installation-11.html';
|
||||
$lang->customMenu = 'Custom Menu';
|
||||
$lang->customField = 'Custom Field';
|
||||
@@ -95,8 +95,8 @@ $lang->nextShortcutKey = '[Shortcut:→]';
|
||||
$lang->backShortcutKey = '[Shortcut:Alt+↑]';
|
||||
|
||||
$lang->select = 'Select';
|
||||
$lang->selectAll = 'All';
|
||||
$lang->selectReverse = 'Reverse';
|
||||
$lang->selectAll = 'Select All';
|
||||
$lang->selectReverse = 'Select Inverse';
|
||||
$lang->loading = 'Loading...';
|
||||
$lang->notFound = 'Not found!';
|
||||
$lang->showAll = '[[Show All]]';
|
||||
@@ -189,7 +189,7 @@ $lang->my->menu->bug = array('link' => 'Bug|my|bug|', 'subModule' =
|
||||
$lang->my->menu->testtask = array('link' => 'Test|my|testtask|', 'subModule' => 'testcase,testtask', 'alias' => 'testcase');
|
||||
$lang->my->menu->story = array('link' => 'Story|my|story|', 'subModule' => 'story');
|
||||
$lang->my->menu->myProject = "{$lang->projectCommon}|my|project|";
|
||||
$lang->my->menu->dynamic = 'Dynamic|my|dynamic|';
|
||||
$lang->my->menu->dynamic = 'Dynamics|my|dynamic|';
|
||||
$lang->my->menu->profile = array('link' => 'Profile|my|profile', 'alias' => 'editprofile');
|
||||
$lang->my->menu->changePassword = 'Password|my|changepassword';
|
||||
$lang->my->menu->manageContacts = 'Contact|my|managecontacts';
|
||||
@@ -212,7 +212,7 @@ $lang->product->menu->plan = array('link' => 'Plan|productplan|browse|produc
|
||||
$lang->product->menu->release = array('link' => 'Release|release|browse|productID=%s', 'subModule' => 'release');
|
||||
$lang->product->menu->roadmap = 'Roadmap|product|roadmap|productID=%s';
|
||||
$lang->product->menu->project = "{$lang->projectCommon}|product|project|status=all&productID=%s";
|
||||
$lang->product->menu->dynamic = 'Dynamic|product|dynamic|productID=%s';
|
||||
$lang->product->menu->dynamic = 'Dynamics|product|dynamic|productID=%s';
|
||||
$lang->product->menu->doc = array('link' => 'Doc|doc|objectLibs|type=product&objectID=%s&from=product', 'subModule' => 'doc');
|
||||
$lang->product->menu->branch = '@branch@|branch|manage|productID=%s';
|
||||
$lang->product->menu->module = 'Module|tree|browse|productID=%s&view=story';
|
||||
@@ -236,7 +236,7 @@ $lang->project->menu = new stdclass();
|
||||
|
||||
$lang->project->menu->task = array('link' => 'Task|project|task|projectID=%s', 'subModule' => 'task,tree', 'alias' => 'importtask,importbug');
|
||||
$lang->project->menu->kanban = array('link' => 'Kanban|project|kanban|projectID=%s');
|
||||
$lang->project->menu->burn = array('link' => 'Burndown|project|burn|projectID=%s');
|
||||
$lang->project->menu->burn = array('link' => 'Burndown Chart|project|burn|projectID=%s');
|
||||
$lang->project->menu->list = array('link' => 'More|project|grouptask|projectID=%s', 'alias' => 'grouptask,tree', 'class' => 'dropdown dropdown-hover');
|
||||
$lang->project->menu->story = array('link' => 'Story|project|story|projectID=%s', 'subModule' => 'story', 'alias' => 'linkstory,storykanban');
|
||||
$lang->project->menu->qa = array('link' => 'Test|project|bug|projectID=%s', 'subModule' => 'bug,build,testtask', 'alias' => 'build,testtask', 'class' => 'dropdown dropdown-hover');
|
||||
@@ -373,7 +373,7 @@ $lang->admin->menu = new stdclass();
|
||||
$lang->admin->menu->index = array('link' => 'Home|admin|index', 'alias' => 'register,certifytemail,certifyztmobile,ztcompany');
|
||||
$lang->admin->menu->message = array('link' => 'Message|message|index', 'subModule' => 'message,mail,webhook');
|
||||
$lang->admin->menu->custom = array('link' => 'Custom|custom|set', 'subModule' => 'custom');
|
||||
$lang->admin->menu->sso = array('link' => 'Integrate|admin|sso');
|
||||
$lang->admin->menu->sso = array('link' => 'Integration|admin|sso');
|
||||
|
||||
$lang->admin->menu->dev = array('link' => 'Develop|dev|api', 'alias' => 'db', 'subModule' => 'dev,editor,entry');
|
||||
$lang->admin->menu->data = array('link' => 'Data|backup|index', 'subModule' => 'backup,action');
|
||||
@@ -397,7 +397,7 @@ $lang->admin->subMenu->dev->entry = array('link' => 'Entry|entry|browse', 'subM
|
||||
|
||||
$lang->admin->subMenu->data = new stdclass();
|
||||
$lang->admin->subMenu->data->backup = array('link' => 'Backup|backup|index', 'subModule' => 'backup');
|
||||
$lang->admin->subMenu->data->trash = 'Recycle|action|trash';
|
||||
$lang->admin->subMenu->data->trash = 'Recycle Bin|action|trash';
|
||||
|
||||
$lang->admin->subMenu->system = new stdclass();
|
||||
$lang->admin->subMenu->system->cron = array('link' => 'Cron|cron|index', 'subModule' => 'cron');
|
||||
@@ -471,23 +471,23 @@ $lang->error = new stdclass();
|
||||
$lang->error->companyNotFound = "The domain %s cannot be found!";
|
||||
$lang->error->length = array("『%s』length error. It should be『%s』", "『%s』length should be <=『%s』and >『%s』.");
|
||||
$lang->error->reg = "『%s』format error. It should be『%s』.";
|
||||
$lang->error->unique = "『%s』『%s』exists. Go to Admin->Recycle to restore it, if you are sure it is deleted.";
|
||||
$lang->error->unique = "『%s』『%s』exists. Go to Admin->Recycle Bin to restore it, if you are sure it is deleted.";
|
||||
$lang->error->gt = "『%s』should be >『%s』.";
|
||||
$lang->error->ge = "『%s』should be >=『%s』.";
|
||||
$lang->error->notempty = "『%s』should not be blank.";
|
||||
$lang->error->empty = "『%s』should be null.";
|
||||
$lang->error->equal = "『%s』has to be『%s』.";
|
||||
$lang->error->int = array("『%s』should be numbers", "『%s』should be 『%s-%s』.");
|
||||
$lang->error->float = "『%s』should have numbers, decimals.";
|
||||
$lang->error->float = "『%s』should have numbers, or decimals.";
|
||||
$lang->error->email = "『%s』should be valid Email.";
|
||||
$lang->error->date = "『%s』should be valid date.";
|
||||
$lang->error->datetime = "『%s』should be valid date.";
|
||||
$lang->error->code = "『%s』should be letters or numbers.";
|
||||
$lang->error->account = "『%s』should be letters or numbers of three or more.";
|
||||
$lang->error->account = "『%s』should be >= 3 letters or numbers.";
|
||||
$lang->error->passwordsame = "Passwords should be consistent.";
|
||||
$lang->error->passwordrule = "Password should abide by rules. It should be at least 6 characters.";
|
||||
$lang->error->passwordrule = "Password should conform to rules. It should be >= 6 characters.";
|
||||
$lang->error->accessDenied = 'Access is denied.';
|
||||
$lang->error->pasteImg = 'Image is not allowed to paste in your browser!';
|
||||
$lang->error->pasteImg = 'Images are not allowed to be pasted in your browser!';
|
||||
$lang->error->noData = 'No data.';
|
||||
$lang->error->editedByOther = 'This record might have been changed. Please refresh and try to edit again!';
|
||||
$lang->error->tutorialData = 'No data can be imported in tutorial mode. Please quit tutorial first!';
|
||||
@@ -532,7 +532,7 @@ $lang->searchMore = "More results:";
|
||||
<<<<<<< HEAD
|
||||
<<<<<<< HEAD
|
||||
$lang->chooseUsersToMail = "Choose users that will be notified.";
|
||||
$lang->browserNotice = 'Your current browser might not display· the best effect. Please use Chrome, Firefox, IE9+, Opera or Safari.';
|
||||
$lang->browserNotice = 'The browser you currently use might not get the best browsing results. It is recommended that you use Chrome, Firefox, IE9+, Opera or Safari.';
|
||||
=======
|
||||
$lang->chooseUsersToMail = "Choose users to be notified.";
|
||||
$lang->browserNotice = 'Your current browser might not display the best effect. Use Chrome, Firefox, IE9+, Opera or Safari.';
|
||||
|
||||
@@ -99,6 +99,7 @@ $lang->selectAll = '全选';
|
||||
$lang->selectReverse = '反选';
|
||||
$lang->loading = '稍候...';
|
||||
$lang->notFound = '抱歉,您访问的对象并不存在!';
|
||||
$lang->notPage = '抱歉,您访问的功能正在开发中!';
|
||||
$lang->showAll = '[[全部显示]]';
|
||||
|
||||
$lang->future = '未来';
|
||||
|
||||
@@ -14,7 +14,7 @@ $lang->company->index = "Home";
|
||||
$lang->company->edit = "Edit Company";
|
||||
$lang->company->view = "Company Information";
|
||||
$lang->company->browse = "User List";
|
||||
$lang->company->dynamic = "Dynamic";
|
||||
$lang->company->dynamic = "Dynamics";
|
||||
$lang->company->orgView = 'View';
|
||||
|
||||
$lang->company->name = 'Name';
|
||||
|
||||
@@ -14,8 +14,8 @@ $lang->convert->index = 'Home';
|
||||
|
||||
$lang->convert->start = 'Start';
|
||||
$lang->convert->desc = <<<EOT
|
||||
<p>Welcome to the System Conversion Wizard, this program will assist you to convert data to ZenTao PMS.</p>
|
||||
<strong>There is certain risk of conversion, so it is strongly recommended that you back up your databse and relavant files before conversion, and make sure no one is operating on either systems.</strong>
|
||||
<p>Welcome to the System Conversion Wizard, this program will assist you to convert data to ZenTao.</p>
|
||||
<strong>There are risks in the conversion, so it is strongly recommended that you back up your databse and relavant files before conversion, and make sure that no one is using either system.</strong>
|
||||
EOT;
|
||||
|
||||
$lang->convert->setConfig = 'Source Config';
|
||||
@@ -31,7 +31,7 @@ $lang->convert->mustSelectSource = "You must select a source system.";
|
||||
|
||||
$lang->convert->direction = "{$lang->projectCommon} converted to";
|
||||
$lang->convert->questionTypeOfRedmine = 'Type in Redmine';
|
||||
$lang->convert->aimTypeOfZentao = 'Convert to Type in Zentao';
|
||||
$lang->convert->aimTypeOfZentao = 'Convert to Type in ZenTao';
|
||||
|
||||
$lang->convert->directionList['bug'] = 'Bug';
|
||||
$lang->convert->directionList['task'] = 'Task';
|
||||
@@ -51,17 +51,17 @@ $lang->convert->dbPort = 'Server Port';
|
||||
$lang->convert->dbUser = 'Database User Name';
|
||||
$lang->convert->dbPassword = 'Database Password';
|
||||
$lang->convert->dbName = 'Database used in %s';
|
||||
$lang->convert->dbCharset = '%s Database Code';
|
||||
$lang->convert->dbCharset = '%s Database Coding';
|
||||
$lang->convert->dbPrefix = '%s Table Prefix';
|
||||
$lang->convert->installPath = '%s Installed path';
|
||||
$lang->convert->installPath = '%s Installation Root Directory';
|
||||
|
||||
$lang->convert->checkDB = 'Database';
|
||||
$lang->convert->checkTable = 'Table';
|
||||
$lang->convert->checkPath = 'Installed Path';
|
||||
$lang->convert->checkPath = 'Installation Path';
|
||||
|
||||
$lang->convert->execute = 'Convert';
|
||||
$lang->convert->item = 'Item Converted';
|
||||
$lang->convert->count = 'Count';
|
||||
$lang->convert->count = 'No.';
|
||||
$lang->convert->info = 'Info';
|
||||
|
||||
$lang->convert->bugfree = new stdclass();
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?php
|
||||
$lang->cron->common = 'Scheduled Task';
|
||||
$lang->cron->common = 'Cron';
|
||||
$lang->cron->index = 'Home';
|
||||
$lang->cron->list = 'Tasks';
|
||||
$lang->cron->list = 'Task';
|
||||
$lang->cron->create = 'Add';
|
||||
$lang->cron->edit = 'Edit';
|
||||
$lang->cron->delete = 'Delete';
|
||||
@@ -17,7 +17,7 @@ $lang->cron->dow = 'Week';
|
||||
$lang->cron->command = 'Command';
|
||||
$lang->cron->status = 'Status';
|
||||
$lang->cron->type = 'Type';
|
||||
$lang->cron->remark = 'Remark';
|
||||
$lang->cron->remark = 'Comment';
|
||||
$lang->cron->lastTime = 'Last Executed';
|
||||
|
||||
$lang->cron->turnonList['1'] = 'On';
|
||||
@@ -33,11 +33,11 @@ $lang->cron->typeList['system'] = 'System Command';
|
||||
$lang->cron->toggleList['start'] = 'Activate';
|
||||
$lang->cron->toggleList['stop'] = 'Deactivate';
|
||||
|
||||
$lang->cron->confirmDelete = 'Do you want to delete the Scheduled Task?';
|
||||
$lang->cron->confirmTurnon = 'Do you want to truncoff the Cron?';
|
||||
$lang->cron->confirmDelete = 'Do you want to delete the cron?';
|
||||
$lang->cron->confirmTurnon = 'Do you want to turn off the Cron?';
|
||||
$lang->cron->introduction = <<<EOD
|
||||
<p>Scheduled Task can do scheduled execution, such as update burndown chart, backup, etc.</p>
|
||||
<p>This function need to be improved, so it is turned off by default.</p>
|
||||
<p>Cron is to perform scheduled actions, such as update burndown chart, backup, etc.</p>
|
||||
<p>Features of Cron need to be improved, so it is turned off by default.</p>
|
||||
EOD;
|
||||
$lang->cron->confirmOpen = <<<EOD
|
||||
<p>Do you want to turn it on?<a href="%s" target='hiddenwin'><strong>Turn On Scheduled Task<strong></a></p>
|
||||
@@ -49,5 +49,5 @@ $lang->cron->notice->h = 'Range:0-23';
|
||||
$lang->cron->notice->dom = 'Range:1-31';
|
||||
$lang->cron->notice->mon = 'Range:1-12';
|
||||
$lang->cron->notice->dow = 'Range:0-6';
|
||||
$lang->cron->notice->help = 'Note:If server restarted, or Scheduled Task is not working, it means Scheduled Task has stopped. You can restart it by clicking 【Restart】 or reload this page. If the last execution time in changed, it means the Task is running.';
|
||||
$lang->cron->notice->help = 'Note:If the server is restarted, or the Cron is not working, it means the Cron has stopped. You can restart it by clicking 【Restart】 or refresh this page. If the last execution time is changed, it means the Cron is running.';
|
||||
$lang->cron->notice->errorRule = '"%s" is not valid';
|
||||
|
||||
@@ -50,9 +50,9 @@ $lang->custom->bug->fields['severityList'] = 'Severity';
|
||||
$lang->custom->bug->fields['osList'] = 'OS';
|
||||
$lang->custom->bug->fields['browserList'] = 'Browser';
|
||||
$lang->custom->bug->fields['typeList'] = 'Type';
|
||||
$lang->custom->bug->fields['resolutionList'] = 'Resolution';
|
||||
$lang->custom->bug->fields['resolutionList'] = 'Solution';
|
||||
$lang->custom->bug->fields['statusList'] = 'Status';
|
||||
$lang->custom->bug->fields['longlife'] = 'Longlife days';
|
||||
$lang->custom->bug->fields['longlife'] = 'Pending Days';
|
||||
|
||||
$lang->custom->testcase = new stdClass();
|
||||
$lang->custom->testcase->fields['priList'] = 'Priority';
|
||||
@@ -82,12 +82,12 @@ $lang->custom->system = array('flow', 'working', 'required', 'score');
|
||||
$lang->custom->block->fields['closed'] = 'Closed Block';
|
||||
|
||||
$lang->custom->currentLang = 'Current Language';
|
||||
$lang->custom->allLang = 'All Language';
|
||||
$lang->custom->allLang = 'All Languages';
|
||||
|
||||
$lang->custom->confirmRestore = 'Do you want to reset the settings?';
|
||||
$lang->custom->confirmRestore = 'Do you want to reset?';
|
||||
|
||||
$lang->custom->notice = new stdclass();
|
||||
$lang->custom->notice->userFieldNotice = 'Control whether the above fields are displayed on the user-related page, and leave it blank to display all';
|
||||
$lang->custom->notice->userFieldNotice = 'Control whether the above fields are displayed on the user-related page. Leave it blank and it will display all.';
|
||||
$lang->custom->notice->canNotAdd = 'It will be calculated, so customization is not enabled.';
|
||||
$lang->custom->notice->forceReview = '%s Review is required for certain committers.';
|
||||
$lang->custom->notice->forceNotReview = "%s Review is NOT required for certain committers.";
|
||||
@@ -136,7 +136,7 @@ $lang->custom->workingList['onlyTest'] = 'Test Management';
|
||||
$lang->custom->workingList['onlyStory'] = 'Story Management';
|
||||
$lang->custom->workingList['onlyTask'] = 'Task Management';
|
||||
|
||||
$lang->custom->menuTip = 'Click to show/hide navigation bar. Drag to swtich display order.';
|
||||
$lang->custom->menuTip = 'Click to show/hide the navigation bar. Drag to swtich display order.';
|
||||
$lang->custom->saveFail = 'Failed to save!';
|
||||
|
||||
$lang->custom->scoreStatus[0] = 'Off';
|
||||
|
||||
@@ -10,10 +10,10 @@
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->dept->common = 'Department';
|
||||
$lang->dept->manageChild = "Department";
|
||||
$lang->dept->manageChild = "Child Dept";
|
||||
$lang->dept->edit = "Edit";
|
||||
$lang->dept->delete = "Delete";
|
||||
$lang->dept->parent = "Parent";
|
||||
$lang->dept->parent = "Parent Dept";
|
||||
$lang->dept->manager = "Manager";
|
||||
$lang->dept->name = "Department Name";
|
||||
$lang->dept->browse = "Manage";
|
||||
|
||||
@@ -28,15 +28,15 @@ $lang->dev->tableList = array();
|
||||
$lang->dev->tableList['action'] = 'Action';
|
||||
$lang->dev->tableList['bug'] = 'Bug';
|
||||
$lang->dev->tableList['build'] = 'Build';
|
||||
$lang->dev->tableList['burn'] = 'Burndown';
|
||||
$lang->dev->tableList['burn'] = 'Burndown Chart';
|
||||
$lang->dev->tableList['case'] = 'Test Case';
|
||||
$lang->dev->tableList['casestep'] = 'Case Step';
|
||||
$lang->dev->tableList['company'] = 'Company';
|
||||
$lang->dev->tableList['config'] = 'Config';
|
||||
$lang->dev->tableList['config'] = 'Configuration';
|
||||
$lang->dev->tableList['custom'] = 'Custom';
|
||||
$lang->dev->tableList['dept'] = 'Dept';
|
||||
$lang->dev->tableList['doc'] = 'Doc';
|
||||
$lang->dev->tableList['doclib'] = 'Doc Lib';
|
||||
$lang->dev->tableList['dept'] = 'Department';
|
||||
$lang->dev->tableList['doc'] = 'Document';
|
||||
$lang->dev->tableList['doclib'] = 'Doc Library';
|
||||
$lang->dev->tableList['effort'] = 'Effort';
|
||||
$lang->dev->tableList['extension'] = 'Extension';
|
||||
$lang->dev->tableList['file'] = 'File';
|
||||
|
||||
+16
-16
@@ -18,7 +18,7 @@ $lang->doc->lib = 'Library';
|
||||
$lang->doc->module = 'Module';
|
||||
$lang->doc->title = 'Title';
|
||||
$lang->doc->digest = 'Summary';
|
||||
$lang->doc->comment = 'Remark';
|
||||
$lang->doc->comment = 'Comment';
|
||||
$lang->doc->type = 'Type';
|
||||
$lang->doc->content = 'Text';
|
||||
$lang->doc->keywords = 'Tags';
|
||||
@@ -31,7 +31,7 @@ $lang->doc->editedDate = 'Edited ';
|
||||
$lang->doc->version = 'Version';
|
||||
$lang->doc->basicInfo = 'Basic Info';
|
||||
$lang->doc->deleted = 'Deleted';
|
||||
$lang->doc->fileObject = 'The Object';
|
||||
$lang->doc->fileObject = 'Linked Object';
|
||||
$lang->doc->whiteList = 'White List';
|
||||
$lang->doc->contentType = 'Format';
|
||||
$lang->doc->separator = "<i class='icon-angle-right'></i>";
|
||||
@@ -152,16 +152,16 @@ $lang->doc->customObjectLibs['customFiles'] = 'Show Custom Library';
|
||||
$lang->doc->orderLib = 'Library order settings';
|
||||
$lang->doc->customShowLibs = 'Library display settings';
|
||||
$lang->doc->customShowLibsList['zero'] = 'Display empty library';
|
||||
$lang->doc->customShowLibsList['children'] = 'Display sub-category documents';
|
||||
$lang->doc->customShowLibsList['unclosed'] = 'Only display projects that are not closed';
|
||||
$lang->doc->customShowLibsList['children'] = 'Display child-category documents';
|
||||
$lang->doc->customShowLibsList['unclosed'] = 'Display unclosed projects only';
|
||||
|
||||
$lang->doc->confirmDelete = "Do you want to delete this document?";
|
||||
$lang->doc->confirmDeleteLib = "Do you want to delete this Doc Lib?";
|
||||
$lang->doc->errorEditSystemDoc = "Ssytem document library doesn't have to be changed.";
|
||||
$lang->doc->errorEditSystemDoc = "You don't have to change sytem document library.";
|
||||
$lang->doc->errorEmptyProduct = "No {$lang->productCommon}. It cannot be created.";
|
||||
$lang->doc->errorEmptyProject = "No {$lang->projectCommon}. It cannot be created.";
|
||||
$lang->doc->errorMainSysLib = "This library cannot be deleted.";
|
||||
$lang->doc->accessDenied = "Access denied!";
|
||||
$lang->doc->accessDenied = "Access is denied!";
|
||||
$lang->doc->versionNotFount = 'It does not exist in this build.';
|
||||
$lang->doc->noDoc = 'No docs. ';
|
||||
$lang->doc->cannotCreateOffice = 'Sorry, %s can only be created in ZenTao Enterprise. Contact renee@easysoft.ltd to try ZenTao Enterprise.';
|
||||
@@ -170,17 +170,17 @@ $lang->doc->noEditedDoc = 'You have not edited any document.';
|
||||
$lang->doc->noOpenedDoc = 'You have not created any document.';
|
||||
$lang->doc->noCollectedDoc = 'You have not collected any document.';
|
||||
|
||||
$lang->doc->noticeAcl['lib']['product']['default'] = 'Users with privileges to access the selected products have access to it.';
|
||||
$lang->doc->noticeAcl['lib']['product']['custom'] = 'Users with privileges to access the selected products or users in the whiltelist have access to visit it.';
|
||||
$lang->doc->noticeAcl['lib']['project']['default'] = 'Users with privileges to access the selected projects have access to it.';
|
||||
$lang->doc->noticeAcl['lib']['project']['custom'] = 'Users with privileges to access the selected projects or users in the whiltelist have access to it.';
|
||||
$lang->doc->noticeAcl['lib']['custom']['open'] = 'All users have access to it.';
|
||||
$lang->doc->noticeAcl['lib']['custom']['custom'] = 'Users in the whitelist have access to it.';
|
||||
$lang->doc->noticeAcl['lib']['custom']['private'] = 'Only the one who created it has access to it.';
|
||||
$lang->doc->noticeAcl['lib']['product']['default'] = 'Users with privileges to access the selected products can access it.';
|
||||
$lang->doc->noticeAcl['lib']['product']['custom'] = 'Users with privileges to access the selected products or users in the whiltelist can access it.';
|
||||
$lang->doc->noticeAcl['lib']['project']['default'] = 'Users with privileges to access the selected projects can access it.';
|
||||
$lang->doc->noticeAcl['lib']['project']['custom'] = 'Users with privileges to access the selected projects or users in the whiltelist can access it.';
|
||||
$lang->doc->noticeAcl['lib']['custom']['open'] = 'All users can access it.';
|
||||
$lang->doc->noticeAcl['lib']['custom']['custom'] = 'Users in the whitelist can access it.';
|
||||
$lang->doc->noticeAcl['lib']['custom']['private'] = 'Only the one who created it can access it.';
|
||||
|
||||
$lang->doc->noticeAcl['doc']['open'] = 'Users with privileges to access the doc lib which the doc belongs to have access to it.';
|
||||
$lang->doc->noticeAcl['doc']['custom'] = 'Users in the whiltelist have access to visit it.';
|
||||
$lang->doc->noticeAcl['doc']['private'] = 'Only the one who created it has access to it.';
|
||||
$lang->doc->noticeAcl['doc']['custom'] = 'Users in the whiltelist can access it.';
|
||||
$lang->doc->noticeAcl['doc']['private'] = 'Only the one who created it can access it.';
|
||||
|
||||
$lang->doc->placeholder = new stdclass();
|
||||
$lang->doc->placeholder->url = 'Url';
|
||||
@@ -214,4 +214,4 @@ $lang->doclib->tabList['product'] = $lang->productCommon;
|
||||
$lang->doclib->tabList['project'] = $lang->projectCommon;
|
||||
$lang->doclib->tabList['custom'] = 'Custom';
|
||||
|
||||
$lang->doclib->nameList['custom'] = 'Doc lib name';
|
||||
$lang->doclib->nameList['custom'] = 'Custom Name';
|
||||
|
||||
@@ -193,8 +193,4 @@ class misc extends control
|
||||
$this->view->detailed = $detailed;
|
||||
$this->display();
|
||||
}
|
||||
public function ajaxerror()
|
||||
{
|
||||
$this->display();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,386 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* The view file of task module of ZenTaoPMS.
|
||||
*
|
||||
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
|
||||
* @license ZPL (http://zpl.pub/page/zplv12.html)
|
||||
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
|
||||
* @package task
|
||||
* @version $Id: view.html.php 4808 2013-06-17 05:48:13Z zhujinyonging@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php include '../../common/view/kindeditor.html.php';?>
|
||||
<?php $browseLink = $app->session->taskList != false ? $app->session->taskList : $this->createLink('project', 'browse', "projectID=$task->project");?>
|
||||
<?php js::set('sysurl', common::getSysUrl());?>
|
||||
<div id="mainMenu" class="clearfix">
|
||||
<div class="btn-toolbar pull-left">
|
||||
<?php if(!isonlybody()):?>
|
||||
<?php echo html::a($browseLink, '<i class="icon icon-back icon-sm"></i> ' . $lang->goback, '', "class='btn btn-secondary'");?>
|
||||
<div class="divider"></div>
|
||||
<?php endif;?>
|
||||
<div class="page-title">
|
||||
<span class="label label-id"><?php echo $task->id?></span>
|
||||
<span class="text" title='<?php echo $task->name;?>' style='color: <?php echo $task->color; ?>'>
|
||||
<?php if($task->parent > 0) echo '<span class="label label-badge label-primary no-margin">' . $this->lang->task->childrenAB . '</span>';?>
|
||||
<?php if(!empty($task->team)) echo '<span class="label label-badge label-primary no-margin">' . $this->lang->task->multipleAB . '</span>';?>
|
||||
<?php if($task->parent > 0) echo isset($task->parentName) ? html::a(inlink('view', "taskID={$task->parent}"), $task->parentName) . ' / ' : '';?><?php echo $task->name;?>
|
||||
</span>
|
||||
<?php if($task->deleted):?>
|
||||
<span class='label label-danger'><?php echo $lang->task->deleted;?></span>
|
||||
<?php endif;?>
|
||||
<?php if($task->fromBug != 0):?>
|
||||
<small><?php echo html::icon($lang->icons['bug']) . " {$lang->task->fromBug}$lang->colon$task->fromBug";?></small>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
</div>
|
||||
<?php if(!isonlybody()):?>
|
||||
<div class="btn-toolbar pull-right">
|
||||
<?php
|
||||
$checkObject = new stdclass();
|
||||
$checkObject->project = $task->project;
|
||||
$link = $this->createLink('task', 'create', "project={$task->project}&storyID={$task->story}&moduleID={$task->module}");
|
||||
if(common::hasPriv('task', 'create', $checkObject)) echo html::a($link, "<i class='icon icon-plus'></i> {$lang->task->create}", '', "class='btn btn-primary'");
|
||||
?>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
<div id="mainContent" class="main-row">
|
||||
<div class="main-col col-8">
|
||||
<div class="cell">
|
||||
<div class="detail">
|
||||
<div class="detail-title"><?php echo $lang->task->legendDesc;?></div>
|
||||
<div class="detail-content article-content">
|
||||
<?php echo !empty($task->desc) ? $task->desc : "<div class='text-center text-muted'>" . $lang->noData . '</div>';?>
|
||||
</div>
|
||||
</div>
|
||||
<?php if($project->type != 'ops'):?>
|
||||
<?php if($task->fromBug != 0):?>
|
||||
<div class="detail">
|
||||
<div class="detail-title"><?php echo $lang->bug->steps;?></div>
|
||||
<div class="detail-content article-content">
|
||||
<?php echo !empty($task->bugSteps) ? $task->bugSteps : "<div class='text-center text-muted'>" . $lang->noData . '</div>';?>
|
||||
</div>
|
||||
</div>
|
||||
<?php elseif($task->story):?>
|
||||
<div class="detail">
|
||||
<div class='detail-title'><?php echo $lang->task->storySpec;?></div>
|
||||
<div class='detail-content article-content'>
|
||||
<?php echo (!empty($task->storySpec) || !empty($task->storyFiles)) ? $task->storySpec : "<div class='text-center text-muted'>" . $lang->noData . '</div>';?>
|
||||
</div>
|
||||
<?php echo $this->fetch('file', 'printFiles', array('files' => $task->storyFiles, 'fieldset' => 'false'));?>
|
||||
</div>
|
||||
<div class='detail'>
|
||||
<div class='detail-title'><?php echo $lang->task->storyVerify;?></div>
|
||||
<div class='detail-content article-content'>
|
||||
<?php echo !empty($task->storyVerify) ? $task->storyVerify : "<div class='text-center text-muted'>" . $lang->noData . '</div>';?>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
<?php if(isset($task->cases) and $task->cases):?>
|
||||
<div class='detail'>
|
||||
<div class='detail-title'><?php echo $lang->task->case;?></div>
|
||||
<div class='detail-content article-content'>
|
||||
<ul class='list-unstyled'>
|
||||
<?php foreach($task->cases as $caseID => $case) echo '<li>' . html::a($this->createLink('testcase', 'view', "caseID=$caseID", '', true), "#$caseID " . $case, '', "data-toggle='modal' data-type='iframe' data-width='90%'") . '</li>';?>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
<?php endif;?>
|
||||
<?php if(!empty($task->children)):?>
|
||||
<div class='detail'>
|
||||
<div class='detail-title'><?php echo $this->lang->task->children;?></div>
|
||||
<div class='detail-content article-content'>
|
||||
<table class='table table-hover table-fixed'>
|
||||
<thead>
|
||||
<tr class='text-center'>
|
||||
<th class='w-50px'> <?php echo $lang->task->id;?></th>
|
||||
<th class='w-40px'> <?php echo $lang->task->lblPri;?></th>
|
||||
<th> <?php echo $lang->task->name;?></th>
|
||||
<th class='w-100px'><?php echo $lang->task->deadline;?></th>
|
||||
<th class='w-80px'> <?php echo $lang->task->assignedTo;?></th>
|
||||
<th class='w-80px'> <?php echo $lang->task->status;?></th>
|
||||
<th class='w-60px visible-lg'><?php echo $lang->task->consumedAB . $lang->task->lblHour;?></th>
|
||||
<th class='w-60px visible-lg'><?php echo $lang->task->leftAB . $lang->task->lblHour;?></th>
|
||||
<th class='w-170px'><?php echo $lang->actions;?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach($task->children as $child):?>
|
||||
<tr class='text-center'>
|
||||
<td><?php echo $child->id;?></td>
|
||||
<td>
|
||||
<?php
|
||||
echo "<span class='pri-" . $child->pri . "'>";
|
||||
echo $child->pri == '0' ? '' : zget($this->lang->task->priList, $child->pri, $child->pri);
|
||||
echo "</span>";
|
||||
?>
|
||||
</td>
|
||||
<td class='text-left' title='<?php echo $child->name;?>'><a class="iframe" data-width="90%" href="<?php echo $this->createLink('task', 'view', "taskID=$child->id", '', true); ?>"><?php echo $child->name;?></a></td>
|
||||
<td><?php echo $child->deadline;?></td>
|
||||
<td><?php if(isset($users[$child->assignedTo])) echo $users[$child->assignedTo];?></td>
|
||||
<td><?php echo zget($lang->task->statusList, $child->status);?></td>
|
||||
<td class='visible-lg'><?php echo $child->consumed;?></td>
|
||||
<td class='visible-lg'><?php echo $child->left;?></td>
|
||||
<td class='c-actions'>
|
||||
<?php
|
||||
common::printIcon('task', 'assignTo', "projectID=$child->project&taskID=$child->id", $child, 'list', '', '', 'iframe showinonlybody', true);
|
||||
common::printIcon('task', 'start', "taskID=$child->id", $child, 'list', '', '', 'iframe showinonlybody', true);
|
||||
common::printIcon('task', 'activate', "taskID=$child->id", $child, 'list', '', '', 'iframe showinonlybody', true);
|
||||
common::printIcon('task', 'recordEstimate', "taskID=$child->id", $child, 'list', 'time', '', 'iframe showinonlybody', true);
|
||||
common::printIcon('task', 'finish', "taskID=$child->id", $child, 'list', '', '', 'iframe showinonlybody', true);
|
||||
common::printIcon('task', 'close', "taskID=$child->id", $child, 'list', '', '', 'iframe showinonlybody', true);
|
||||
common::printIcon('task', 'edit', "taskID=$child->id", $child, 'list');
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach;?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
<?php echo $this->fetch('file', 'printFiles', array('files' => $task->files, 'fieldset' => 'true'));?>
|
||||
<?php $actionFormLink = $this->createLink('action', 'comment', "objectType=task&objectID=$task->id");?>
|
||||
<?php include '../../common/view/action.html.php';?>
|
||||
</div>
|
||||
<div class='main-actions'>
|
||||
<div class="btn-toolbar">
|
||||
<?php common::printBack($browseLink);?>
|
||||
<?php if(!isonlybody()) echo "<div class='divider'></div>";?>
|
||||
<?php if(!$task->deleted):?>
|
||||
<?php
|
||||
common::printIcon('task', 'assignTo', "projectID=$task->project&taskID=$task->id", $task, 'button', '', '', 'iframe', true, '', empty($task->team) ? $lang->task->assignTo : $lang->task->transfer);
|
||||
common::printIcon('task', 'start', "taskID=$task->id", $task, 'button', '', '', 'iframe showinonlybody', true);
|
||||
common::printIcon('task', 'restart', "taskID=$task->id", $task, 'button', '', '', 'iframe showinonlybody', true);
|
||||
common::printIcon('task', 'recordEstimate', "taskID=$task->id", $task, 'button', '', '', 'iframe showinonlybody', true);
|
||||
common::printIcon('task', 'pause', "taskID=$task->id", $task, 'button', '', '', 'iframe showinonlybody', true);
|
||||
common::printIcon('task', 'finish', "taskID=$task->id", $task, 'button', '', '', 'iframe showinonlybody text-success', true);
|
||||
common::printIcon('task', 'activate', "taskID=$task->id", $task, 'button', '', '', 'iframe showinonlybody text-success', true);
|
||||
common::printIcon('task', 'close', "taskID=$task->id", $task, 'button', '', '', 'iframe showinonlybody', true);
|
||||
common::printIcon('task', 'cancel', "taskID=$task->id", $task, 'button', '', '', 'iframe showinonlybody', true);
|
||||
|
||||
if(!isonlybody()) echo "<div class='divider'></div>";
|
||||
if(empty($task->team) or empty($task->children)) common::printIcon('task', 'batchCreate', "project=$task->project&storyID=$task->story&moduleID=$task->module&taskID=$task->id", $task, 'button','plus','','','','',' ');
|
||||
common::printIcon('task', 'edit', "taskID=$task->id", $task, 'button', '', '', 'showinonlybody');
|
||||
common::printIcon('task', 'create', "productID=0&storyID=0&moduleID=0&taskID=$task->id", $task, 'button', 'copy');
|
||||
common::printIcon('task', 'delete', "projectID=$task->project&taskID=$task->id", $task, 'button', 'trash', 'hiddenwin');
|
||||
|
||||
if($task->parent > 0) echo html::a(helper::createLink('task', 'view', "taskID=$task->parent"), "<i class='icon icon-chevron-double-up'></i>", '', "class='btn btn-link' title='{$lang->task->parent}'");
|
||||
?>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="side-col col-4">
|
||||
<div class="cell">
|
||||
<div class='tabs'>
|
||||
<ul class='nav nav-tabs'>
|
||||
<li class='active'><a href='#legendBasic' data-toggle='tab'><?php echo $lang->task->legendBasic;?></a></li>
|
||||
<li><a href='#legendLife' data-toggle='tab'><?php echo $lang->task->legendLife;?></a></li>
|
||||
<?php if(!empty($task->team)) :?>
|
||||
<li><a href='#legendTeam' data-toggle='tab'><?php echo $lang->task->team;?></a></li>
|
||||
<?php endif;?>
|
||||
</ul>
|
||||
<div class='tab-content'>
|
||||
<div class='tab-pane active' id='legendBasic'>
|
||||
<table class="table table-data">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th><?php echo $lang->task->project;?></th>
|
||||
<td><?php if(!common::printLink('project', 'view', "projectID=$task->project", $project->name)) echo $project->name;?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->task->module;?></th>
|
||||
<?php
|
||||
$moduleTitle = '';
|
||||
ob_start();
|
||||
if(empty($modulePath))
|
||||
{
|
||||
$moduleTitle .= '/';
|
||||
echo "/";
|
||||
}
|
||||
else
|
||||
{
|
||||
if($product)
|
||||
{
|
||||
$moduleTitle .= $product->name . '/';
|
||||
echo $product->name . $lang->arrow;
|
||||
}
|
||||
foreach($modulePath as $key => $module)
|
||||
{
|
||||
$moduleTitle .= $module->name;
|
||||
if(!common::printLink('project', 'task', "projectID=$task->project&browseType=byModule¶m=$module->id", $module->name)) echo $module->name;
|
||||
if(isset($modulePath[$key + 1]))
|
||||
{
|
||||
$moduleTitle .= '/';
|
||||
echo $lang->arrow;
|
||||
}
|
||||
}
|
||||
}
|
||||
$printModule = ob_get_contents();
|
||||
ob_end_clean();
|
||||
?>
|
||||
<td title='<?php echo $moduleTitle?>'><?php echo $printModule?></td>
|
||||
</tr>
|
||||
<tr class='nofixed'>
|
||||
<th><?php echo $lang->task->story;?></th>
|
||||
<td>
|
||||
<?php
|
||||
if(!$task->storyTitle) echo $lang->noData;
|
||||
if($task->storyTitle and !common::printLink('story', 'view', "storyID=$task->story", $task->storyTitle, '', "class='iframe' data-width='80%'", true, true)) echo $task->storyTitle;
|
||||
if($task->needConfirm)
|
||||
{
|
||||
echo "(<span class='warning'>{$lang->story->changed}</span> ";
|
||||
echo html::a($this->createLink('task', 'confirmStoryChange', "taskID=$task->id"), $lang->confirm, 'hiddenwin', "class='btn btn-mini btn-info'");
|
||||
echo ")";
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php if($task->fromBug):?>
|
||||
<tr>
|
||||
<th><?php echo $lang->task->fromBug;?></th>
|
||||
<td><?php echo html::a($this->createLink('bug', 'view', "bugID=$task->fromBug", '', true), "#$task->fromBug " . $fromBug->title, '', "class='iframe' data-width='80%'");?></td>
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
<tr>
|
||||
<th><?php echo $lang->task->assignedTo;?></th>
|
||||
<td><?php echo $task->assignedTo ? $task->assignedToRealName . $lang->at . $task->assignedDate : $lang->noData;?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->task->type;?></th>
|
||||
<td><?php echo $lang->task->typeList[$task->type];?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->task->status;?></th>
|
||||
<td><span class='status-task status-<?php echo $task->status;?>'><span class="label label-dot"></span> <?php echo zget($lang->task->statusList, $task->status);?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->task->progress;?></th>
|
||||
<td><?php echo $task->progress . '%';?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->task->pri;?></th>
|
||||
<td><span class='label-pri <?php echo 'label-pri-' . $task->pri;?>' title='<?php echo zget($lang->task->priList, $task->pri);?>'><?php echo $task->pri == '0' ? $lang->noData : zget($lang->task->priList, $task->pri)?></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->task->mailto;?></th>
|
||||
<td>
|
||||
<?php
|
||||
$mailto = explode(',', str_replace(' ', '', $task->mailto));
|
||||
if(empty($mailto))
|
||||
{
|
||||
echo $lang->noData;
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach($mailto as $account) echo ' ' . zget($users, $account, $account);
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class='tab-pane' id='legendLife'>
|
||||
<?php $widthClass = $app->getClientLang() == 'en' ? 'w-100px' : 'w-70px';?>
|
||||
<table class='table table-data'>
|
||||
<tr>
|
||||
<th class='<?php echo $widthClass;?>'><?php echo $lang->task->openedBy;?></th>
|
||||
<td><?php echo $task->openedBy ? zget($users, $task->openedBy, $task->openedBy) . $lang->at . $task->openedDate : $lang->noData;?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->task->finishedBy;?></th>
|
||||
<td><?php echo ($task->finishedBy) ? zget($users, $task->finishedBy, $task->finishedBy) . $lang->at . $task->finishedDate : $lang->noData;?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->task->canceledBy;?></th>
|
||||
<td><?php echo $task->canceledBy ? zget($users, $task->canceledBy, $task->canceledBy) . $lang->at . $task->canceledDate : $lang->noData;?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->task->closedBy;?></th>
|
||||
<td><?php echo $task->closedBy ? zget($users, $task->closedBy, $task->closedBy) . $lang->at . $task->closedDate : $lang->noData;?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->task->closedReason;?></th>
|
||||
<td><?php echo $task->closedReason ? $lang->task->reasonList[$task->closedReason] : $lang->noData;?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->task->lastEdited;?></th>
|
||||
<td><?php echo $task->lastEditedBy ? zget($users, $task->lastEditedBy, $task->lastEditedBy) . $lang->at . $task->lastEditedDate : $lang->noData;?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class='tab-pane' id='legendTeam'>
|
||||
<table class='table table-data'>
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?php echo $lang->task->team?></th>
|
||||
<th class='text-center'><?php echo $lang->task->estimate?></th>
|
||||
<th class='text-center'><?php echo $lang->task->consumed?></th>
|
||||
<th class='text-center'><?php echo $lang->task->left?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<?php foreach($task->team as $member):?>
|
||||
<tr class='text-center'>
|
||||
<td class='text-left'><?php echo zget($users, $member->account)?></td>
|
||||
<td><?php echo $member->estimate?></td>
|
||||
<td><?php echo $member->consumed?></td>
|
||||
<td><?php echo $member->left?></td>
|
||||
</tr>
|
||||
<?php endforeach;?>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='cell'>
|
||||
<details class="detail" open>
|
||||
<summary class="detail-title"><?php echo $lang->task->legendEffort;?></summary>
|
||||
<div class="detail-content">
|
||||
<table class='table table-data'>
|
||||
<?php $widthClass = $app->getClientLang() == 'en' ? 'w-90px' : 'w-70px';?>
|
||||
<tr class='<?php echo $widthClass;?>'>
|
||||
<th><?php echo $lang->task->estimate;?></th>
|
||||
<td><?php echo $task->estimate . $lang->workingHour;?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->task->consumed;?></th>
|
||||
<td><?php echo round($task->consumed, 2) . $lang->workingHour;?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->task->left;?></th>
|
||||
<td><?php echo $task->left . $lang->workingHour;?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->task->estStarted;?></th>
|
||||
<td><?php echo $task->estStarted;?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->task->realStarted;?></th>
|
||||
<td><?php echo $task->realStarted; ?> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->task->deadline;?></th>
|
||||
<td>
|
||||
<?php
|
||||
echo $task->deadline;
|
||||
if(isset($task->delay)) printf($lang->task->delayWarning, $task->delay);
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</details>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="mainActions" class='main-actions'>
|
||||
<?php common::printPreAndNext($preAndNext);?>
|
||||
</div>
|
||||
<?php include '../../common/view/syntaxhighlighter.html.php';?>
|
||||
<?php include '../../common/view/footer.html.php';?>
|
||||
Reference in New Issue
Block a user