Merge branch 'master' of github.com:easysoft/zentaopms

This commit is contained in:
xia0ta0
2013-08-02 08:19:20 +08:00
62 changed files with 370 additions and 242 deletions
+13 -4
View File
@@ -34,7 +34,8 @@ class admin extends control
$this->app->loadLang('misc');
$this->view->title = $this->lang->admin->common;
$this->view->title = $this->lang->admin->common;
$this->view->position[] = $this->lang->admin->index;
$this->display();
}
@@ -69,8 +70,11 @@ class admin extends control
}
die($response);
}
$this->view->register = $this->admin->getRegisterInfo();
$this->view->sn = $this->config->global->sn;
$this->view->title = $this->lang->admin->register->caption;
$this->view->position[] = $this->lang->admin->register->caption;
$this->view->register = $this->admin->getRegisterInfo();
$this->view->sn = $this->config->global->sn;
$this->display();
}
@@ -93,7 +97,10 @@ class admin extends control
}
die($response);
}
$this->view->sn = $this->config->global->sn;
$this->view->title = $this->lang->admin->bind->caption;
$this->view->position[] = $this->lang->admin->bind->caption;
$this->view->sn = $this->config->global->sn;
$this->display();
}
@@ -170,6 +177,8 @@ class admin extends control
die(js::locate(inLink('index'), 'parent'));
}
$this->view->title = $this->lang->admin->clearData;
$this->view->position[] = $this->lang->admin->clearData;
$this->display();
}
+6 -4
View File
@@ -199,7 +199,9 @@ class bug extends control
}
$this->bug->setMenu($this->products, $productID);
$this->view->title = $this->products[$productID] . $this->lang->colon . $this->lang->bug->common;
$this->view->title = $this->products[$productID] . $this->lang->colon . $this->lang->bug->common . $this->lang->colon . $this->lang->bug->reportChart;
$this->view->position[] = html::a($this->createLink('bug', 'browse', "productID=$productID"), $this->products[$productID]);
$this->view->position[] = $this->lang->bug->reportChart;
$this->view->productID = $productID;
$this->view->browseType = $browseType;
$this->view->moduleID = $moduleID;
@@ -491,7 +493,7 @@ class bug extends control
$this->bug->setMenu($this->products, $productID);
/* Set header and position. */
$this->view->title = $this->products[$productID] . $this->lang->colon . $this->lang->bug->edit;
$this->view->title = $this->lang->bug->edit . "BUG #$bug->id $bug->title - " . $this->products[$productID];
$this->view->position[] = html::a($this->createLink('bug', 'browse', "productID=$productID"), $this->products[$productID]);
$this->view->position[] = $this->lang->bug->edit;
@@ -566,7 +568,7 @@ class bug extends control
/* Set product menu. */
$this->bug->setMenu($this->products, $productID);
$this->view->title = $product->name . $this->lang->colon . $this->lang->bug->batchEdit;
$this->view->title = $product->name . $this->lang->colon . "BUG" . $this->lang->bug->batchEdit;
$this->view->position[] = html::a($this->createLink('bug', 'browse', "productID=$productID"), $this->products[$productID]);
}
/* The bugs of my. */
@@ -576,7 +578,7 @@ class bug extends control
$this->lang->set('menugroup.bug', 'my');
$this->lang->bug->menuOrder = $this->lang->my->menuOrder;
$this->loadModel('my')->setMenu();
$this->view->title = $this->lang->bug->batchEdit;
$this->view->title = "BUG" . $this->lang->bug->batchEdit;
}
/* Initialize vars.*/
$bugs = $this->dao->select('*')->from(TABLE_BUG)->where('id')->in($bugIDList)->fetchAll('id');
+14 -8
View File
@@ -44,13 +44,16 @@ class build extends control
$bugs = $this->bug->getProjectBugs($projectID);
/* Assign. */
$this->view->title = $this->lang->build->create;
$this->view->products = $this->project->getProducts($projectID);
$this->view->projectID = $projectID;
$this->view->users = $this->user->getPairs('nodeleted');
$this->view->stories = $stories;
$this->view->bugs = $bugs;
$this->view->orderBy = $orderBy;
$project = $this->loadModel('project')->getById($projectID);
$this->view->title = $project->name . $this->lang->colon . $this->lang->build->create;
$this->view->position[] = html::a($this->createLink('project', 'task', "projectID=$projectID"), $project->name);
$this->view->position[] = $this->lang->build->create;
$this->view->products = $this->project->getProducts($projectID);
$this->view->projectID = $projectID;
$this->view->users = $this->user->getPairs('nodeleted');
$this->view->stories = $stories;
$this->view->bugs = $bugs;
$this->view->orderBy = $orderBy;
$this->display();
}
@@ -89,7 +92,9 @@ class build extends control
$bugs = $this->bug->getProjectBugs($build->project);
/* Assign. */
$this->view->title = $this->lang->build->edit;
$project = $this->loadModel('project')->getById($build->project);
$this->view->title = $project->name . $this->lang->colon . $this->lang->build->edit;
$this->view->position[] = html::a($this->createLink('project', 'task', "projectID=$build->project"), $project->name);
$this->view->position[] = $this->lang->build->edit;
$this->view->products = $this->project->getProducts($build->project);
$this->view->build = $build;
@@ -127,6 +132,7 @@ class build extends control
/* Assign. */
$projects = $this->project->getPairs();
$this->view->title = "BUILD #$build->id $build->name - " . $projects[$build->project];
$this->view->position[] = html::a($this->createLink('project', 'task', "projectID=$build->project"), $projects[$build->project]);
$this->view->position[] = $this->lang->build->view;
$this->view->products = $this->project->getProducts($build->project);
$this->view->users = $this->loadModel('user')->getPairs('noletter');
View File
View File
View File
View File
View File
View File
View File
View File
Regular → Executable
View File
View File
View File
View File
View File
View File
Regular → Executable
View File
View File
View File
View File
View File
View File
+2 -5
View File
@@ -67,9 +67,6 @@ class company extends control
$this->config->company->browse->search['queryID'] = $queryID;
$this->config->company->browse->search['params']['dept']['values'] = array('' => '') + $this->dept->getOptionMenu();
$title = $this->lang->company->index . $this->lang->colon . $this->lang->dept->common;
$position[] = $this->lang->dept->common;
if($type == 'bydept')
{
$childDeptIds = $this->dept->getAllChildID($deptID);
@@ -93,8 +90,8 @@ class company extends control
$users = $this->loadModel('user')->getByQuery($this->session->userQuery, $pager, $orderBy);
}
$this->view->title = $title;
$this->view->position = $position;
$this->view->title = $this->lang->company->index . $this->lang->colon . $this->lang->dept->common;
$this->view->position[] = $this->lang->dept->common;
$this->view->users = $users;
$this->view->searchForm = $this->fetch('search', 'buildForm', $this->config->company->browse->search);
$this->view->deptTree = $this->dept->getTreeMenu($rooteDeptID = 0, array('deptModel', 'createMemberLink'));
+1 -1
View File
@@ -69,7 +69,7 @@ js::set('confirmDelete', $lang->user->confirmDelete);
<td><?php echo $user->phone;?></td>
<td><?php if($user->qq) echo html::a("tencent://message/?uin=$user->qq", $user->qq);?></td>
<td><?php echo $user->join;?></td>
<td><?php echo date('Y-m-d', $user->last);?></td>
<td><?php if($user->last) echo date('Y-m-d', $user->last);?></td>
<td><?php echo $user->visits;?></td>
<td class='a-left'>
<?php
+16 -7
View File
@@ -20,7 +20,8 @@ class convert extends control
public function index()
{
$this->convert->saveState();
$this->view->title = $this->lang->convert->common;
$this->view->title = $this->lang->convert->common;
$this->view->position[] = $this->lang->convert->common;
$this->display();
}
@@ -32,7 +33,9 @@ class convert extends control
*/
public function selectSource()
{
$this->view->title = $this->lang->convert->common . $this->lang->colon;
$this->view->title = $this->lang->convert->common . $this->lang->colon . $this->lang->convert->start;
$this->view->position[] = $this->lang->convert->common;
$this->view->position[] = $this->lang->convert->start;
$this->display();
}
@@ -53,7 +56,9 @@ class convert extends control
}
list($sourceName, $version) = explode('_', $this->post->source);
$setFunc = "set$sourceName";
$this->view->title = $this->lang->convert->setting;
$this->view->title = $this->lang->convert->common . $this->lang->colon . $this->lang->convert->setting;
$this->view->position[] = $this->lang->convert->common;
$this->view->position[] = $this->lang->convert->setting;
$this->view->source = $sourceName;
$this->view->version = $version;
$this->view->setting = $this->fetch('convert', $setFunc, "version=$version");
@@ -102,7 +107,9 @@ class convert extends control
public function checkConfig()
{
$checkFunc = 'check' . $this->post->source;
$this->view->title = $this->lang->convert->checkConfig;
$this->view->title = $this->lang->convert->common . $this->lang->colon . $this->lang->convert->checkConfig;
$this->view->position[] = $this->lang->convert->common;
$this->view->position[] = $this->lang->convert->checkConfig;
$this->view->source = $this->post->source;
$this->view->checkResult = $this->fetch('convert', $checkFunc, "version={$this->post->version}");
$this->display();
@@ -184,9 +191,11 @@ class convert extends control
public function execute()
{
$convertFunc = 'convert' . $this->post->source;
$this->view->title = $this->lang->convert->execute;
$this->view->source = $this->post->source;
$this->view->version = $this->post->version;
$this->view->title = $this->lang->convert->common . $this->lang->colon . $this->lang->convert->execute;
$this->view->position[] = $this->lang->convert->common;
$this->view->position[] = $this->lang->convert->execute;
$this->view->source = $this->post->source;
$this->view->version = $this->post->version;
$this->view->executeResult = $this->fetch('convert', $convertFunc, "version={$this->post->version}");
$this->display();
+2 -5
View File
@@ -34,12 +34,9 @@ class dept extends control
*/
public function browse($deptID = 0)
{
$title = $this->lang->dept->manage . $this->lang->colon . $this->app->company->name;
$position[] = $this->lang->dept->manage;
$parentDepts = $this->dept->getParents($deptID);
$this->view->title = $title;
$this->view->position = $position;
$this->view->title = $this->lang->dept->manage . $this->lang->colon . $this->app->company->name;
$this->view->position[] = $this->lang->dept->manage;
$this->view->deptID = $deptID;
$this->view->depts = $this->dept->getTreeMenu($rootDeptID = 0, array('deptmodel', 'createManageLink'));
$this->view->parentDepts = $parentDepts;
+2 -2
View File
@@ -64,7 +64,7 @@ class doc extends control
$this->session->set('docList', $this->app->getURI(true));
/* Set header and position. */
$this->view->title = $this->lang->doc->index . $this->lang->colon . $this->libs[$libID];
$this->view->title = $this->lang->doc->common . $this->lang->colon . $this->libs[$libID];
$this->view->position[] = $this->libs[$libID];
/* Load pager. */
@@ -351,7 +351,7 @@ class doc extends control
$moduleOptionMenu = $this->tree->getOptionMenu($libID, 'customdoc', $startModuleID = 0);
}
$this->view->title = $this->libs[$libID] . $this->lang->colon . $this->lang->doc->create;
$this->view->title = $this->libs[$libID] . $this->lang->colon . $this->lang->doc->edit;
$this->view->position[] = html::a($this->createLink('doc', 'browse', "libID=$libID"), $this->libs[$libID]);
$this->view->position[] = $this->lang->doc->edit;
+7 -3
View File
@@ -88,6 +88,7 @@ class extension extends control
}
$this->view->title = $this->lang->extension->obtain;
$this->view->position[] = $this->lang->extension->obtain;
$this->view->moduleTree = $this->extension->getModulesByAPI();
$this->view->extensions = $extensions;
$this->view->installeds = $this->extension->getLocalExtensions('installed');
@@ -382,7 +383,8 @@ class extension extends control
$this->extension->copyPackageFiles($extension);
$this->extension->updateExtension($extension, array('status' => 'installed'));
$this->view->title = $this->lang->extension->activateFinished;
$this->view->title = $this->lang->extension->activateFinished;
$this->view->position[] = $this->lang->extension->activateFinished;
$this->display();
}
@@ -397,7 +399,8 @@ class extension extends control
{
$this->extension->updateExtension($extension, array('status' => 'deactivated'));
$this->view->removeCommands = $this->extension->removePackage($extension);
$this->view->title = $this->lang->extension->deactivateFinished;
$this->view->title = $this->lang->extension->deactivateFinished;
$this->view->position[] = $this->lang->extension->deactivateFinished;
$this->display();
}
@@ -433,7 +436,8 @@ class extension extends control
public function erase($extension)
{
$this->view->removeCommands = $this->extension->erasePackage($extension);
$this->view->title = $this->lang->extension->eraseFinished;
$this->view->title = $this->lang->extension->eraseFinished;
$this->view->position[] = $this->lang->extension->eraseFinished;
$this->display();
}
View File
View File
View File
Regular → Executable
View File
View File
View File
View File
View File
View File
+4 -2
View File
@@ -147,7 +147,8 @@ class group extends control
$groupPrivs = $this->group->getPrivs($groupID);
$this->view->title = $this->lang->company->common . $this->lang->colon . $group->name . $this->lang->colon . $this->lang->group->managePriv;
$this->view->position[] = $group->name . $this->lang->colon . $this->lang->group->managePriv;
$this->view->position[] = $group->name;
$this->view->position[] = $this->lang->group->managePriv;
/* Join changelog when be equal or greater than this version.*/
$realVersion = str_replace('_', '.', $version);
@@ -205,7 +206,8 @@ class group extends control
$otherUsers = array_diff_assoc($allUsers, $groupUsers);
$title = $this->lang->company->common . $this->lang->colon . $group->name . $this->lang->colon . $this->lang->group->manageMember;
$position[] = $group->name . $this->lang->colon . $this->lang->group->manageMember;
$position[] = $group->name;
$position[] = $this->lang->group->manageMember;
$this->view->title = $title;
$this->view->position = $position;
+4 -4
View File
@@ -46,7 +46,7 @@ class mail extends control
die(js::locate(inlink('edit'), 'parent'));
}
$this->view->title = $this->lang->mail->detect;
$this->view->title = $this->lang->mail->common . $this->lang->colon . $this->lang->mail->detect;
$this->view->position[] = html::a(inlink('index'), $this->lang->mail->common);
$this->view->position[] = $this->lang->mail->detect;
@@ -79,7 +79,7 @@ class mail extends control
$this->locate(inlink('detect'));
}
$this->view->title = $this->lang->mail->edit;
$this->view->title = $this->lang->mail->common . $this->lang->colon . $this->lang->mail->edit;
$this->view->position[] = html::a(inlink('index'), $this->lang->mail->common);
$this->view->position[] = $this->lang->mail->edit;
@@ -119,7 +119,7 @@ class mail extends control
$this->session->set('mailConfig', '');
$this->view->title = $this->lang->mail->save;
$this->view->title = $this->lang->mail->common . $this->lang->colon . $this->lang->mail->save;
$this->view->position[] = html::a(inlink('index'), $this->lang->mail->common);
$this->view->position[] = $this->lang->mail->save;
@@ -152,7 +152,7 @@ class mail extends control
die(js::alert($this->lang->mail->successSended));
}
$this->view->title = $this->lang->mail->test;
$this->view->title = $this->lang->mail->common . $this->lang->colon . $this->lang->mail->test;
$this->view->position[] = html::a(inlink('index'), $this->lang->mail->common);
$this->view->position[] = $this->lang->mail->test;
$this->view->users = $this->dao->select('account, CONCAT(realname, " ", email) AS email' )->from(TABLE_USER)->where('email')->ne('')->orderBy('account')->fetchPairs();
+1 -1
View File
@@ -82,7 +82,7 @@ class my extends control
if($this->app->getViewType() == 'mhtml') $recPerPage = 10;
$pager = pager::init($recTotal, $recPerPage, $pageID);
/* The header and position. */
/* The title and position. */
$this->view->title = $this->lang->my->common . $this->lang->colon . $this->lang->my->todo;
$this->view->position[] = $this->lang->my->todo;
+8 -3
View File
@@ -52,6 +52,7 @@ class product extends control
$this->app->loadLang('my');
$this->view->title = $this->lang->product->allProduct;
$this->view->position[] = $this->lang->product->allProduct;
$this->view->productStats = $this->product->getStats();
$this->view->productID = $productID;
$this->display();
@@ -72,8 +73,10 @@ class product extends control
$this->app->loadLang('my');
$this->view->projectStats = $this->loadModel('project')->getProjectStats($status, $productID);
$this->view->title = $this->products[$productID] . $this->lang->colon . $this->lang->product->project;
$this->view->productID = $productID;
$this->view->title = $this->products[$productID] . $this->lang->colon . $this->lang->product->project;
$this->view->position[] = $this->products[$productID];
$this->view->position[] = $this->lang->product->project;
$this->view->productID = $productID;
$this->display();
}
@@ -114,6 +117,7 @@ class product extends control
/* Set header and position. */
$this->view->title = $this->products[$productID]. $this->lang->colon . $this->lang->product->browse;
$this->view->position[] = $this->products[$productID];
$this->view->position[] = $this->lang->product->browse;
/* Load pager. */
$this->app->loadClass('pager', $static = true);
@@ -314,7 +318,7 @@ class product extends control
$product->desc = $this->loadModel('file')->setImgSize($product->desc);
if(!$product) die(js::error($this->lang->notFound) . js::locate('back'));
$this->view->title = $product->name . ' - ' . $this->lang->product->view;
$this->view->title = $product->name . $this->lang->colon . $this->lang->product->view;
$this->view->position[] = html::a($this->createLink($this->moduleName, 'browse'), $product->name);
$this->view->position[] = $this->lang->product->view;
$this->view->product = $product;
@@ -433,6 +437,7 @@ class product extends control
/* The header and position. */
$this->view->title = $this->products[$productID] . $this->lang->colon . $this->lang->product->dynamic;
$this->view->position[] = html::a($this->createLink($this->moduleName, 'browse'), $this->products[$productID]);
$this->view->position[] = $this->lang->product->dynamic;
/* Assign. */
+8 -4
View File
@@ -44,8 +44,10 @@ class productplan extends control
}
$this->commonAction($product);
$lastPlan = $this->productplan->getLast($product);
$this->view->title = $this->lang->productplan->create;
$this->view->title = $this->view->product->name . $this->lang->colon . $this->lang->productplan->create;
$this->view->begin = $lastPlan ? $lastPlan->end : '';
$this->display();
}
@@ -72,7 +74,7 @@ class productplan extends control
$plan = $this->productplan->getByID($planID);
$this->commonAction($plan->product);
$this->view->title = $this->lang->productplan->edit;
$this->view->title = $this->view->product->name . $this->lang->colon . $this->lang->productplan->edit;
$this->view->position[] = $this->lang->productplan->edit;
$this->view->plan = $plan;
$this->display();
@@ -215,7 +217,8 @@ class productplan extends control
$allStories = $this->story->getProductStories($this->view->product->id, $moduleID = '0', $status = 'draft,active,changed');
}
$this->view->title = $this->lang->productplan->linkStory;
$this->view->title = $plan->title . $this->lang->colon . $this->lang->productplan->linkStory;
$this->view->position[] = html::a($this->createLink('plan', 'view', "planID=$plan->id"), $plan->title);
$this->view->position[] = $this->lang->productplan->linkStory;
$this->view->allStories = $allStories;
$this->view->planStories= $this->story->getPlanStories($planID);
@@ -330,7 +333,8 @@ class productplan extends control
$allBugs= $this->loadModel('bug')->getAllBugs($this->view->product->id, $projects, 'id_desc');
}
$this->view->title = $this->lang->productplan->linkBug;
$this->view->title = $plan->title . $this->lang->colon . $this->lang->productplan->linkBug;
$this->view->position[] = html::a($this->createLink('plan', 'view', "planID=$plan->id"), $plan->title);
$this->view->position[] = $this->lang->productplan->linkBug;
$this->view->allBugs = $allBugs;
$this->view->planBugs = $this->bug->getPlanBugs($planID);
+16
View File
@@ -28,6 +28,22 @@ class productplanModel extends model
return $plan;
}
/**
* Get last plan.
*
* @param int $productID
* @access public
* @return void
*/
public function getLast($productID)
{
return $this->dao->select('*')->from(TABLE_PRODUCTPLAN)
->where('deleted')->eq(0)
->andWhere('product')->eq($productID)
->orderBy('end desc')
->fetch();
}
/**
* Get list
*
+1 -1
View File
@@ -27,7 +27,7 @@
</tr>
<tr>
<th class='rowhead'><?php echo $lang->productplan->begin;?></th>
<td><?php echo html::input('begin', '', "class='text-3 date'");?></td>
<td><?php echo html::input('begin', $begin, "class='text-3 date'");?></td>
</tr>
<tr>
<th class='rowhead'><?php echo $lang->productplan->end;?></th>
+58 -24
View File
@@ -46,6 +46,7 @@ class project extends control
$this->app->loadLang('my');
$this->view->title = $this->lang->project->allProject;
$this->view->position[] = $this->lang->project->allProject;
$this->view->projectStats = $this->project->getProjectStats($status);
$this->view->projectID = $projectID;
@@ -477,6 +478,7 @@ class project extends control
/* Assign. */
$this->view->title = $title;
$this->view->position = $position;
$this->view->pager = $pager;
$this->view->bugs = $bugs;
$this->view->recTotal = $pager->recTotal;
@@ -662,11 +664,12 @@ class project extends control
/**
* Browse burndown chart of a project.
*
* @param int $projectID
* @param int $projectID
* @param string $type
* @access public
* @return void
*/
public function burn($projectID = 0)
public function burn($projectID = 0, $type = 'noweekend')
{
$this->loadModel('report');
$project = $this->commonAction($projectID);
@@ -678,38 +681,61 @@ class project extends control
$position[] = html::a($this->createLink('project', 'browse', "projectID=$projectID"), $project->name);
$position[] = $this->lang->project->burn;
/* Create charts by flash. */
//$dataXML = $this->report->createSingleXML($this->project->getBurnData($project->id), $this->lang->project->charts->burn->graph, $this->lang->report->singleColor);
//$charts = $this->report->createJSChart('line', $dataXML, 700, 350);
/* Get date list. */
if($projectInfo->days <= $maxDays)
{
$dateList = $this->project->getDateList($projectInfo->begin, $projectInfo->end, $type);
}
else
{
$today = date('Y-m-d');
if($today > $projectInfo->end)
{
$begin = $projectInfo->begin;
$end = date('Y-m-d', strtotime($projectInfo->begin) + 30 * 24 * 3600);
}
else
{
$endDays = helper::diffDate($projectInfo->end, $today);
$endDays = $endDays > 15 ? 15 : $endDays;
$beginDays = $endDays > 15 ? 15 : (30 - $endDays);
/* Create charts by flot. */
$sets = $this->project->getBurnDataFlot($project->id);
$count = count($sets);
$dataJSON = $this->report->createSingleJSON($sets);
$begin = date('Y-m-d', strtotime("-$beginDays days"));
$begin = $begin > $projectInfo->begin ? $begin : $projectInfo->begin;
$end = date('Y-m-d', strtotime("+$endDays days"));
$end = $end > $projectInfo->end ? $projectInfo->end : $end;
}
$dateList = $this->project->getDateList($begin, $end, $type);
}
$limitJSON = '[]';
$baselineJSON = '[]';
$beginMicTime = $this->project->getMicTime($projectInfo->begin);
$endMicTime = $this->project->getMicTime($projectInfo->end);
$maxDayMicTime = $this->project->getMicTime(strtotime($projectInfo->begin) + $maxDays * 24 * 3600);
$minDayMicTime = $this->project->getMicTime(time() - $maxDays * 24 * 3600);
if($projectInfo->days <= $maxDays)
{
$limitJSON = "[[$beginMicTime, 0], [$endMicTime, 0]]";
$firstBurn = reset($sets);
$firstTime = isset($firstBurn->value) ? $firstBurn->value : 0;
$baselineJSON = "[[$beginMicTime, $firstTime], [$endMicTime, 0]]";
$days = count($dateList) - 1;
$rate = $firstTime / $days;
$baselineJSON = '[';
foreach($dateList as $i => $date) $baselineJSON .='[' . $i . ',' . ($days - $i) * $rate . '],';
$baselineJSON = rtrim($baselineJSON, ',') . ']';
}
elseif($count <= $maxDays)
else
{
$limitJSON = "[[$beginMicTime, 0], [$maxDayMicTime, 0]]";
$limitJSON = '[';
foreach($dateList as $i => $date) $limitJSON .= "[$i, 0],";
$limitJSON = rtrim($limitJSON, ',') . ']';
}
$flotJSON['data'] = $dataJSON;
$flotJSON['limit'] = $limitJSON;
$flotJSON['baseline'] = $baselineJSON;
$sets = $this->project->getBurnDataFlot($project->id, $maxDays);
$charts = $this->report->createJSChartFlot($project->name, $flotJSON, $count, 900, 400);
$flotJSON['data'] = $this->report->createSingleJSON($sets, $dateList);
$flotJSON['limit'] = $limitJSON;
$flotJSON['baseline'] = $baselineJSON;
$flotJSON['dateList'] = json_encode($dateList);
$flotJSON['ticks'] = json_encode(array_keys($dateList));
$charts = $this->report->createJSChartFlot($project->name, $flotJSON, 900, 400);
/* Assign. */
$this->view->title = $title;
@@ -717,6 +743,7 @@ class project extends control
$this->view->tabID = 'burn';
$this->view->charts = $charts;
$this->view->projectID = $projectID;
$this->view->type = $type;
$this->display();
}
@@ -783,7 +810,7 @@ class project extends control
$this->session->set('docList', $this->app->getURI(true));
$project = $this->dao->findById($projectID)->from(TABLE_PROJECT)->fetch();
$this->view->title = $this->lang->project->doc;
$this->view->title = $project->name . $this->lang->colon . $this->lang->project->doc;
$this->view->position[] = html::a($this->createLink($this->moduleName, 'browse'), $project->name);
$this->view->position[] = $this->lang->project->doc;
$this->view->project = $project;
@@ -973,6 +1000,7 @@ class project extends control
}
$this->view->title = $this->view->project->name . $this->lang->colon .$this->lang->project->start;
$this->view->position[] = html::a($this->createLink('project', 'browse', "projectID=$projectID"), $this->view->project->name);
$this->view->position[] = $this->lang->project->start;
$this->display();
}
@@ -1003,6 +1031,7 @@ class project extends control
}
$this->view->title = $this->view->project->name . $this->lang->colon .$this->lang->project->putoff;
$this->view->position[] = html::a($this->createLink('project', 'browse', "projectID=$projectID"), $this->view->project->name);
$this->view->position[] = $this->lang->project->putoff;
$this->display();
}
@@ -1033,6 +1062,7 @@ class project extends control
}
$this->view->title = $this->view->project->name . $this->lang->colon .$this->lang->project->suspend;
$this->view->position[] = html::a($this->createLink('project', 'browse', "projectID=$projectID"), $this->view->project->name);
$this->view->position[] = $this->lang->project->suspend;
$this->display();
}
@@ -1063,6 +1093,7 @@ class project extends control
}
$this->view->title = $this->view->project->name . $this->lang->colon .$this->lang->project->activate;
$this->view->position[] = html::a($this->createLink('project', 'browse', "projectID=$projectID"), $this->view->project->name);
$this->view->position[] = $this->lang->project->activate;
$this->display();
}
@@ -1092,8 +1123,9 @@ class project extends control
die(js::locate($this->createLink('project', 'view', "projectID=$projectID"), 'parent'));
}
$this->view->title = $this->view->project->name . $this->lang->colon .$this->lang->project->suspend;
$this->view->position[] = $this->lang->project->suspend;
$this->view->title = $this->view->project->name . $this->lang->colon .$this->lang->project->close;
$this->view->position[] = html::a($this->createLink('project', 'browse', "projectID=$projectID"), $this->view->project->name);
$this->view->position[] = $this->lang->project->close;
$this->display();
}
@@ -1113,6 +1145,7 @@ class project extends control
$this->project->setMenu($this->projects, $project->id);
$this->view->title = $this->lang->project->view;
$this->view->position[] = html::a($this->createLink('project', 'browse', "projectID=$projectID"), $project->name);
$this->view->position[] = $this->view->title;
$this->view->project = $project;
@@ -1528,6 +1561,7 @@ class project extends control
/* The header and position. */
$project = $this->project->getByID($projectID);
$this->view->title = $project->name . $this->lang->colon . $this->lang->project->dynamic;
$this->view->position[] = html::a($this->createLink('project', 'browse', "projectID=$projectID"), $project->name);
$this->view->position[] = $this->lang->project->dynamic;
/* Assign. */
+2
View File
@@ -194,6 +194,8 @@ $lang->project->linkStory = 'Link story';
$lang->project->createTask = 'Create task';
$lang->project->goback = 'Go back';
$lang->project->linkProduct = 'Select product to link...';
$lang->project->withWeekend = 'Show weekend';
$lang->project->noWeekend = 'Remove weekend';
/* Report. */
$lang->project->charts = new stdclass();
+2
View File
@@ -194,6 +194,8 @@ $lang->project->linkStory = '关联需求';
$lang->project->createTask = '添加任务';
$lang->project->goback = '返回项目首页';
$lang->project->linkProduct = '选择产品关联...';
$lang->project->withWeekend = '显示周末';
$lang->project->noWeekend = '去除周末';
/* 统计。*/
$lang->project->charts = new stdclass();
+34 -14
View File
@@ -1303,7 +1303,6 @@ class projectModel extends model
if($count > $itemCounts) break;
if($date > $project->end) continue;
$set->name = $this->getMicTime($set->name);
$burnData[$date] = $set;
$count++;
}
@@ -1312,19 +1311,6 @@ class projectModel extends model
return $burnData;
}
/**
* Get microsecond from date.
*
* @param string|int $date
* @access public
* @return void
*/
public function getMicTime($date)
{
if(is_numeric($date)) return (string)$date . '000';
return (string)strtotime("$date UTC") . '000';
}
/**
* Process burndown datas when the sets is smaller than the itemCounts.
*
@@ -1495,4 +1481,38 @@ class projectModel extends model
if($extra != '') $link = helper::createLink($module, $method, "projectID=%s&type=$extra");
return $link;
}
/**
* Get no weekend date
*
* @param string $begin
* @param string $end
* @param string $type
* @access public
* @return array
*/
public function getDateList($begin, $end, $type)
{
$dateList = array();
$date = $begin;
while($date <= $end)
{
$timestamp = strtotime($date);
if($type == 'noweekend')
{
$weekDay = date('w', $timestamp);
if($weekDay == 6 or $weekDay == 0)
{
$date = date('Y-m-d', $timestamp + 24 * 3600);
continue;
}
}
$dateList[] = $date;
$date = date('Y-m-d', $timestamp + 24 * 3600);
}
return $dateList;
}
}
+1
View File
@@ -17,6 +17,7 @@
<?php
echo $charts;
common::printLink('project', 'computeBurn', 'reload=yes', $lang->project->computeBurn, 'hiddenwin');
echo html::a(inlink('burn', "projectID=$projectID&type=" . ($type == 'noweekend' ? 'withweekend' : 'noweekend')), ($type == 'noweekend' ? $lang->project->withWeekend : $lang->project->noWeekend));
echo $lang->project->howToUpdateBurn;
?>
</div>
+2 -2
View File
@@ -67,7 +67,7 @@ class release extends control
unset($builds['trunk']);
$this->commonAction($productID);
$this->view->title = $this->lang->release->create;
$this->view->title = $this->view->product->name . $this->lang->colon . $this->lang->release->edit;
$this->view->position[] = $this->lang->release->create;
$this->view->builds = $builds;
$this->view->productID = $productID;
@@ -115,7 +115,7 @@ class release extends control
$bugs = array();
}
$this->view->title = $this->lang->release->edit;
$this->view->title = $this->view->product->name . $this->lang->colon . $this->lang->release->edit;
$this->view->position[] = $this->lang->release->edit;
$this->view->release = $release;
$this->view->build = $build;
+26 -21
View File
@@ -30,9 +30,10 @@ class report extends control
*/
public function projectDeviation()
{
$this->view->title = $this->lang->report->projectDeviation;
$this->view->projects = $this->report->getProjects();
$this->view->submenu = 'project';
$this->view->title = $this->lang->report->projectDeviation;
$this->view->position[] = $this->lang->report->projectDeviation;
$this->view->projects = $this->report->getProjects();
$this->view->submenu = 'project';
$this->display();
}
@@ -47,10 +48,11 @@ class report extends control
$this->app->loadLang('product');
$this->app->loadLang('productplan');
$this->app->loadLang('story');
$this->view->title = $this->lang->report->productInfo;
$this->view->products = $this->report->getProducts();
$this->view->users = $this->loadModel('user')->getPairs('noletter|noclosed');
$this->view->submenu = 'product';
$this->view->title = $this->lang->report->productInfo;
$this->view->position[] = $this->lang->report->productInfo;
$this->view->products = $this->report->getProducts();
$this->view->users = $this->loadModel('user')->getPairs('noletter|noclosed');
$this->view->submenu = 'product';
$this->display();
}
@@ -81,12 +83,13 @@ class report extends control
{
$end = date('Y-m-d', strtotime($end));
}
$this->view->title = $this->lang->report->bugSummary;
$this->view->begin = $begin;
$this->view->end = $end;
$this->view->bugs = $this->report->getBugs($begin, $end);
$this->view->users = $this->loadModel('user')->getPairs('noletter|noclosed|nodeleted');
$this->view->submenu = 'test';
$this->view->title = $this->lang->report->bugSummary;
$this->view->position[] = $this->lang->report->bugSummary;
$this->view->begin = $begin;
$this->view->end = $end;
$this->view->bugs = $this->report->getBugs($begin, $end);
$this->view->users = $this->loadModel('user')->getPairs('noletter|noclosed|nodeleted');
$this->view->submenu = 'test';
$this->display();
}
@@ -98,10 +101,11 @@ class report extends control
*/
public function bugAssign()
{
$this->view->title = $this->lang->report->bugAssign;
$this->view->submenu = 'test';
$this->view->assigns = $this->report->getBugAssign();
$this->view->users = $this->loadModel('user')->getPairs('noletter|noclosed|nodeleted');
$this->view->title = $this->lang->report->bugAssign;
$this->view->position[] = $this->lang->report->bugAssign;
$this->view->submenu = 'test';
$this->view->assigns = $this->report->getBugAssign();
$this->view->users = $this->loadModel('user')->getPairs('noletter|noclosed|nodeleted');
$this->display();
}
@@ -113,10 +117,11 @@ class report extends control
*/
public function workload()
{
$this->view->title = $this->lang->report->workload;
$this->view->workload = $this->report->getWorkload();
$this->view->users = $this->loadModel('user')->getPairs('noletter|noclosed|nodeleted');
$this->view->submenu = 'staff';
$this->view->title = $this->lang->report->workload;
$this->view->position[] = $this->lang->report->workload;
$this->view->workload = $this->report->getWorkload();
$this->view->users = $this->loadModel('user')->getPairs('noletter|noclosed|nodeleted');
$this->view->submenu = 'staff';
$this->display();
}
+10 -20
View File
@@ -77,18 +77,18 @@ $chartID.render("$divID");
EOT;
}
public function createJSChartFlot($projectName, $flotJSON, $count, $width = 'auto', $height = 500)
public function createJSChartFlot($projectName, $flotJSON, $width = 'auto', $height = 500)
{
$this->app->loadLang('project');
$this->app->loadConfig('project');
$jsRoot = $this->app->getWebRoot() . 'js/';
$width = $width . 'px';
$height = $height . 'px';
$maxDays = $this->config->project->maxBurnDay;
$dataJSON = $flotJSON['data'];
$limitJSON = $flotJSON['limit'];
$baselineJSON = $flotJSON['baseline'];
$dateListJSON = $flotJSON['dateList'];
$ticksJSON = $flotJSON['ticks'];
return <<<EOT
<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="{$jsRoot}jquery/flot/excanvas.min.js"></script><![endif]-->
<script language="javascript" type="text/javascript" src="{$jsRoot}jquery/flot/jquery.flot.min.js"></script>
@@ -100,6 +100,8 @@ $(function ()
var data = $dataJSON;
var limit = $limitJSON;
var baseline = $baselineJSON;
var dateList = $dateListJSON;
var ticks = $ticksJSON;
function showTooltip(x, y, contents)
{
$('<div id="tooltip">' + contents + '</div>').css
@@ -113,26 +115,14 @@ $(function ()
'background-color': '#fee',
opacity: 0.80
}).appendTo("body").fadeIn(200);
}
}
if($count < $maxDays)
{
var options = {
series: {lines:{show: true, lineWidth: 2}, points: {show: true},hoverable: true},
legend: {noColumns: 1},
grid: { hoverable: true, clickable: true },
xaxis: {mode: "time", timeformat: "%m-%d", tickSize:[1, "day"]},
xaxis: { ticks:ticks, tickFormatter: function(val) {tick = new Date(dateList[val]);;if(dateList[val] != undefined){return (tick.getMonth() + 1) + '-' + tick.getDate()}else{return ''}}},
yaxis: {mode: null, min: 0, minTickSize: [1, "day"]}};
}
else
{
var options = {
series: {lines:{show: true, lineWidth: 5}, points: {show: true},hoverable: true},
legend: {noColumns: 1},
grid: { hoverable: true, clickable: true },
xaxis: {mode: "time", timeformat: "%m-%d", ticks:$maxDays, minTickSize:[1, "day"]},
yaxis: {mode: null, min: 0, minTickSize: [1, "day"]}};
}
var placeholder = $("#placeholder");
$("#placeholder").bind("plotselected", function (event, ranges)
@@ -216,12 +206,12 @@ EOT;
return $data;
}
public function createSingleJSON($sets)
public function createSingleJSON($sets, $dateList)
{
$data = '[';
foreach($sets as $set)
foreach($dateList as $i => $date)
{
$data .= "[$set->name, $set->value],";
if(isset($sets[$date]))$data .= "[$i, {$sets[$date]->value}],";
}
$data = rtrim($data, ',');
$data .= ']';
+11 -3
View File
@@ -9,8 +9,10 @@ class sso extends control
*/
public function browse()
{
$this->view->title = $this->lang->sso->browse;
$this->view->auths = $this->sso->getAuths();
$this->view->title = $this->lang->sso->common . $lang->colon . $this->lang->sso->browse;
$this->view->position[] = $this->lang->sso->common;
$this->view->position[] = $this->lang->sso->browse;
$this->view->auths = $this->sso->getAuths();
$this->display();
}
@@ -32,7 +34,9 @@ class sso extends control
if(dao::isError()) die(js::error(dao::getError()));
die(js::locate(inlink('browse'), 'parent'));
}
$this->view->title = $this->lang->sso->create;
$this->view->title = $this->lang->sso->common . $this->lang->colon . $this->lang->sso->create;
$this->view->position[] = $this->lang->sso->common;
$this->view->position[] = $this->lang->sso->create;
$this->view->key = $this->sso->createKey();
$this->display();
}
@@ -56,6 +60,10 @@ class sso extends control
die(js::locate(inlink('browse'), 'parent'));
}
$this->view->title = $this->lang->sso->common . $this->lang->colon . $this->lang->sso->edit;
$this->view->position[] = $this->lang->sso->common;
$this->view->position[] = $this->lang->sso->edit;
$this->view->auth = $this->sso->getAuth($code);
$this->view->code = $code;
$this->display();
+21 -11
View File
@@ -145,6 +145,7 @@ class story extends control
$this->view->title = $product->name . $this->lang->colon . $this->lang->story->create;
$this->view->position[] = html::a($this->createLink('product', 'browse', "product=$productID"), $product->name);
$this->view->position[] = $this->lang->story->common;
$this->view->position[] = $this->lang->story->create;
$this->view->products = $products;
$this->view->users = $users;
@@ -207,9 +208,10 @@ class story extends control
$plans = $this->loadModel('productplan')->getPairs($productID, 'unexpired');
$plans['same'] = $this->lang->story->same;
$this->view->title = $product->name . $this->lang->colon . $this->lang->story->create;
$this->view->title = $product->name . $this->lang->colon . $this->lang->story->batchCreate;
$this->view->position[] = html::a($this->createLink('product', 'browse', "product=$productID"), $product->name);
$this->view->position[] = $this->lang->story->create;
$this->view->position[] = $this->lang->story->common;
$this->view->position[] = $this->lang->story->batchCreate;
$this->view->products = $products;
$this->view->moduleID = $moduleID;
$this->view->moduleOptionMenu = $moduleOptionMenu;
@@ -244,6 +246,7 @@ class story extends control
/* Assign. */
$this->view->position[] = html::a($this->createLink('product', 'browse', "product=$product->id"), $product->name);
$this->view->position[] = $this->lang->story->common;
$this->view->product = $product;
$this->view->products = $products;
$this->view->story = $story;
@@ -279,7 +282,7 @@ class story extends control
/* Assign. */
$story = $this->story->getById($storyID, 0, true);
$this->view->title = $this->view->product->name . $this->lang->colon . $this->lang->story->edit . $this->lang->colon . $this->view->story->title;
$this->view->title = $this->lang->story->edit . "STORY" . $this->lang->colon . $this->view->story->title;
$this->view->position[] = $this->lang->story->edit;
$this->view->story = $story;
$this->view->users = $this->user->getPairs('nodeleted|pofirst', "$story->assignedTo,$story->openedBy,$story->closedBy");
@@ -362,6 +365,7 @@ class story extends control
$this->app->session->set('showSuhosinInfo', $showSuhosinInfo);
if($showSuhosinInfo) $this->view->suhosinInfo = $this->lang->suhosinInfo;
$this->view->position[] = html::a($this->createLink('product', 'browse', "product=$product->id"), $product->name);
$this->view->position[] = $this->lang->story->common;
$this->view->position[] = $this->lang->story->batchEdit;
$this->view->users = $this->loadModel('user')->getPairs('nodeleted');
@@ -408,7 +412,7 @@ class story extends control
$this->app->loadLang('project');
/* Assign. */
$this->view->title = $this->view->product->name . $this->lang->colon . $this->lang->story->change . $this->lang->colon . $this->view->story->title;
$this->view->title = $this->lang->story->change . "STORY" . $this->lang->colon . $this->view->story->title;
$this->view->users = $this->user->getPairs('nodeleted|pofirst', $this->view->story->assignedTo);
$this->view->position[] = $this->lang->story->change;
$this->display();
@@ -438,7 +442,7 @@ class story extends control
$this->commonAction($storyID);
/* Assign. */
$this->view->title = $this->view->product->name . $this->lang->colon . $this->lang->story->activate . $this->lang->colon . $this->view->story->title;
$this->view->title = $this->lang->story->activate . "STORY" . $this->lang->colon . $this->view->story->title;
$this->view->users = $this->user->getPairs('nodeleted|pofirst', $this->view->story->closedBy);
$this->view->position[] = $this->lang->story->activate;
$this->display();
@@ -472,6 +476,7 @@ class story extends control
$title = "STORY #$story->id $story->title - $product->name";
$position[] = html::a($this->createLink('product', 'browse', "product=$product->id"), $product->name);
$position[] = $this->lang->story->common;
$position[] = $this->lang->story->view;
$this->view->title = $title;
@@ -549,9 +554,10 @@ class story extends control
if($story->status == 'draft' and $story->version == 1) unset($this->lang->story->reviewResultList['revert']);
if($story->status == 'changed') unset($this->lang->story->reviewResultList['reject']);
$this->view->title = $product->name . $this->lang->colon . $this->lang->story->view . $this->lang->colon . $story->title;
$this->view->title = $this->lang->story->review . "STORY" . $this->lang->colon . $story->title;
$this->view->position[] = html::a($this->createLink('product', 'browse', "product=$product->id"), $product->name);
$this->view->position[] = $this->lang->story->view;
$this->view->position[] = $this->lang->story->common;
$this->view->position[] = $this->lang->story->review;
$this->view->product = $product;
$this->view->story = $story;
@@ -616,9 +622,10 @@ class story extends control
/* Set the closed reason options. */
if($story->status == 'draft') unset($this->lang->story->reasonList['cancel']);
$this->view->title = $product->name . $this->lang->colon . $this->lang->close . $this->lang->colon . $story->title;
$this->view->title = $this->lang->story->close . "STORY" . $this->lang->colon . $story->title;
$this->view->position[] = html::a($this->createLink('product', 'browse', "product=$product->id"), $product->name);
$this->view->position[] = $this->lang->close;
$this->view->position[] = $this->lang->story->common;
$this->view->position[] = $this->lang->story->close;
$this->view->product = $product;
$this->view->story = $story;
@@ -663,7 +670,8 @@ class story extends control
{
$this->product->setMenu($this->product->getPairs('nodeleted'), $productID);
$product = $this->product->getByID($productID);
$this->view->title = $product->name . $this->lang->colon . $this->lang->story->batchClose;
$this->view->position[] = html::a($this->createLink('product', 'browse', "product=$product->id"), $product->name);
$this->view->title = $product->name . $this->lang->colon . $this->lang->story->batchClose;
}
/* The stories of a project. */
elseif($projectID)
@@ -916,7 +924,9 @@ class story extends control
$this->products = $this->product->getPairs();
$this->product->setMenu($this->products, $productID);
$this->view->title = $this->products[$productID] . $this->lang->colon . $this->lang->story->common;
$this->view->title = $this->products[$productID] . $this->lang->colon . $this->lang->story->reportChart;
$this->view->position[] = $this->products[$productID];
$this->view->position[] = $this->lang->story->reportChart;
$this->view->productID = $productID;
$this->view->browseType = $browseType;
$this->view->moduleID = $moduleID;
+15 -9
View File
@@ -115,6 +115,7 @@ class task extends control
$title = $project->name . $this->lang->colon . $this->lang->task->create;
$position[] = html::a($taskLink, $project->name);
$position[] = $this->lang->task->common;
$position[] = $this->lang->task->create;
$this->view->title = $title;
@@ -162,9 +163,10 @@ class task extends control
$stories = $this->story->getProjectStoryPairs($projectID);
$members = $this->project->getTeamMemberPairs($projectID, 'nodeleted');
$title = $project->name . $this->lang->colon . $this->lang->task->create;
$title = $project->name . $this->lang->colon . $this->lang->task->batchCreate;
$position[] = html::a($taskLink, $project->name);
$position[] = $this->lang->task->create;
$position[] = $this->lang->task->common;
$position[] = $this->lang->task->batchCreate;
$this->view->title = $title;
$this->view->position = $position;
@@ -192,7 +194,6 @@ class task extends control
/* Set menu. */
$this->project->setMenu($this->project->getPairs(), $this->view->project->id);
$this->view->position[] = html::a($this->createLink('project', 'browse', "project={$this->view->task->project}"), $this->view->project->name);
}
/**
@@ -249,7 +250,8 @@ class task extends control
$this->view->projects = array($this->view->project->id => $this->view->project->name) + $noclosedProjects;
if(!isset($members[$this->view->task->assignedTo])) $members[$this->view->task->assignedTo] = $this->view->task->assignedTo;
$this->view->title = $this->lang->task->edit;
$this->view->title = $this->lang->task->edit . 'TASK' . $this->lang->colon . $this->view->task->name;
$this->view->position[] = $this->lang->task->common;
$this->view->position[] = $this->lang->task->edit;
$this->view->stories = $this->story->getProjectStoryPairs($this->view->project->id);
$this->view->users = $this->loadModel('user')->getPairs('nodeleted|noletter', "{$this->view->task->openedBy},{$this->view->task->canceledBy},{$this->view->task->closedBy}");
@@ -308,10 +310,11 @@ class task extends control
$this->project->setMenu($this->project->getPairs(), $project->id);
$members = $this->project->getTeamMemberPairs($projectID, 'nodeleted');
$members = $members + array('closed' => 'Closed');
$this->view->title = $project->name . $this->lang->colon . $this->lang->task->batchEdit;
$this->view->project = $project;
$this->view->modules = $this->tree->getOptionMenu($projectID, $viewType = 'task');
$this->view->members = $members;
$this->view->title = $project->name . $this->lang->colon . $this->lang->task->batchEdit;
$this->view->position[] = html::a($this->createLink('project', 'browse', "project=$project->id"), $project->name);
$this->view->project = $project;
$this->view->modules = $this->tree->getOptionMenu($projectID, $viewType = 'task');
$this->view->members = $members;
}
/* The tasks of my. */
else
@@ -395,7 +398,8 @@ class task extends control
$title = "TASK#$task->id $task->name / $project->name";
$position[] = html::a($this->createLink('project', 'browse', "projectID=$task->project"), $project->name);
$position[] = $task->name;
$position[] = $this->lang->task->common;
$position[] = $this->lang->task->view;
$this->view->title = $title;
$this->view->position = $position;
@@ -882,6 +886,8 @@ class task extends control
$this->project->setMenu($this->project->getPairs(), $projectID);
$this->projects = $this->project->getPairs();
$this->view->title = $this->projects[$projectID] . $this->lang->colon . $this->lang->task->report->common;
$this->view->position[] = $this->projects[$projectID];
$this->view->position[] = $this->lang->task->report->common;
$this->view->projectID = $projectID;
$this->view->browseType = $browseType;
$this->view->checkedCharts = $this->post->charts ? join(',', $this->post->charts) : '';
+4
View File
@@ -249,6 +249,7 @@ class testcase extends control
$title = $this->products[$productID] . $this->lang->colon . $this->lang->testcase->create;
$position[] = html::a($this->createLink('testcase', 'browse', "productID=$productID"), $this->products[$productID]);
$position[] = $this->lang->testcase->common;
$position[] = $this->lang->testcase->create;
$this->view->title = $title;
@@ -305,6 +306,7 @@ class testcase extends control
$title = $this->products[$productID] . $this->lang->colon . $this->lang->testcase->batchCreate;
$position[] = html::a($this->createLink('testcase', 'browse', "productID=$productID"), $this->products[$productID]);
$position[] = $this->lang->testcase->common;
$position[] = $this->lang->testcase->batchCreate;
$this->view->title = $title;
@@ -339,6 +341,7 @@ class testcase extends control
$this->view->title = "CASE #$case->id $case->title - " . $this->products[$productID];
$this->view->position[] = html::a($this->createLink('testcase', 'browse', "productID=$productID"), $this->products[$productID]);
$this->view->position[] = $this->lang->testcase->common;
$this->view->position[] = $this->lang->testcase->view;
$this->view->case = $case;
@@ -398,6 +401,7 @@ class testcase extends control
$currentModuleID = $case->module;
$title = $this->products[$productID] . $this->lang->colon . $this->lang->testcase->edit;
$position[] = html::a($this->createLink('testcase', 'browse', "productID=$productID"), $this->products[$productID]);
$position[] = $this->lang->testcase->common;
$position[] = $this->lang->testcase->edit;
/* Set menu. */
+9 -1
View File
@@ -149,6 +149,7 @@ class testtask extends control
$this->view->title = $this->products[$productID] . $this->lang->colon . $this->lang->testtask->create;
$this->view->position[] = html::a($this->createLink('testtask', 'browse', "productID=$productID"), $this->products[$productID]);
$this->view->position[] = $this->lang->testtask->common;
$this->view->position[] = $this->lang->testtask->create;
if($projectID != 0)
@@ -181,6 +182,7 @@ class testtask extends control
$this->view->title = "TASK #$task->id $task->name/" . $this->products[$productID];
$this->view->position[] = html::a($this->createLink('testtask', 'browse', "productID=$productID"), $this->products[$productID]);
$this->view->position[] = $this->lang->testtask->common;
$this->view->position[] = $this->lang->testtask->view;
$this->view->productID = $productID;
@@ -290,6 +292,7 @@ class testtask extends control
$this->view->title = $this->products[$productID] . $this->lang->colon . $this->lang->testtask->cases;
$this->view->position[] = html::a($this->createLink('testtask', 'browse', "productID=$productID"), $this->products[$productID]);
$this->view->position[] = $this->lang->testtask->common;
$this->view->position[] = $this->lang->testtask->cases;
$this->view->productID = $productID;
@@ -341,6 +344,7 @@ class testtask extends control
$this->view->title = $this->products[$productID] . $this->lang->colon . $this->lang->testtask->edit;
$this->view->position[] = html::a($this->createLink('testtask', 'browse', "productID=$productID"), $this->products[$productID]);
$this->view->position[] = $this->lang->testtask->common;
$this->view->position[] = $this->lang->testtask->edit;
$this->view->task = $task;
@@ -384,6 +388,7 @@ class testtask extends control
$this->view->testtask = $testtask;
$this->view->title = $testtask->name . $this->lang->colon . $this->lang->testtask->start;
$this->view->position[] = $this->lang->testtask->common;
$this->view->position[] = $this->lang->testtask->start;
$this->view->actions = $actions;
$this->display();
@@ -422,6 +427,7 @@ class testtask extends control
$this->view->testtask = $this->testtask->getById($taskID);
$this->view->title = $testtask->name . $this->lang->colon . $this->lang->close;
$this->view->position[] = $this->lang->testtask->common;
$this->view->position[] = $this->lang->close;
$this->view->actions = $actions;
$this->display();
@@ -501,8 +507,9 @@ class testtask extends control
/* Save session. */
$this->testtask->setMenu($this->products, $productID);
$this->view->title = $this->products[$productID] . $this->lang->colon . $this->lang->testtask->linkCase;
$this->view->title = $task->name . $this->lang->colon . $this->lang->testtask->linkCase;
$this->view->position[] = html::a($this->createLink('testtask', 'browse', "productID=$productID"), $this->products[$productID]);
$this->view->position[] = $this->lang->testtask->common;
$this->view->position[] = $this->lang->testtask->linkCase;
/* Get cases. */
@@ -690,6 +697,7 @@ class testtask extends control
$this->view->caseIDList = $caseIDList;
$this->view->productID = $productID;
$this->view->title = $this->lang->testtask->batchRun;
$this->view->position[] = $this->lang->testtask->common;
$this->view->position[] = $this->lang->testtask->batchRun;
$this->display();
}
+19 -25
View File
@@ -55,15 +55,13 @@ class todo extends control
die(js::locate($this->createLink('my', 'todo', "type=$date"), 'parent'));
}
$title = $this->lang->my->common . $this->lang->colon . $this->lang->todo->create;
$position[] = $this->lang->todo->create;
$this->view->title = $title;
$this->view->position = $position;
$this->view->date = strftime("%Y-%m-%d", strtotime($date));
$this->view->times = date::buildTimeList($this->config->todo->times->begin, $this->config->todo->times->end, $this->config->todo->times->delta);
$this->view->time = date::now();
$this->display();
$this->view->title = $this->lang->todo->common . $this->lang->colon . $this->lang->todo->create;
$this->view->position[] = $this->lang->todo->common;
$this->view->position[] = $this->lang->todo->create;
$this->view->date = strftime("%Y-%m-%d", strtotime($date));
$this->view->time = date::buildTimeList($this->config->todo->times->begin, $this->config->todo->times->end, $this->config->todo->times->delta);
$this->view->time = date::now();
$this->display();
}
/**
@@ -95,14 +93,12 @@ class todo extends control
die(js::locate($this->createLink('my', 'todo', "type=$date"), 'parent'));
}
$title = $this->lang->my->common . $this->lang->colon . $this->lang->todo->create;
$position[] = $this->lang->todo->create;
$this->view->title = $title;
$this->view->position = $position;
$this->view->date = (int)$date == 0 ? $date : date('Y-m-d', strtotime($date));
$this->view->times = date::buildTimeList($this->config->todo->times->begin, $this->config->todo->times->end, $this->config->todo->times->delta);
$this->view->time = date::now();
$this->view->title = $this->lang->todo->common . $this->lang->colon . $this->lang->todo->batchCreate;
$this->view->position[] = $this->lang->todo->common;
$this->view->position[] = $this->lang->todo->batchCreate;
$this->view->date = (int)$date == 0 ? $date : date('Y-m-d', strtotime($date));
$this->view->times = date::buildTimeList($this->config->todo->times->begin, $this->config->todo->times->end, $this->config->todo->times->delta);
$this->view->time = date::now();
$this->display();
}
@@ -134,13 +130,11 @@ class todo extends control
if($todo->private and $this->app->user->account != $todo->account) die('private');
$todo->date = strftime("%Y-%m-%d", strtotime($todo->date));
$title = $this->lang->my->common . $this->lang->colon . $this->lang->todo->edit;
$position[] = $this->lang->todo->edit;
$this->view->title = $title;
$this->view->position = $position;
$this->view->times = date::buildTimeList($this->config->todo->times->begin, $this->config->todo->times->end, $this->config->todo->times->delta);
$this->view->todo = $todo;
$this->view->title = $this->lang->todo->common . $this->lang->colon . $this->lang->todo->edit;
$this->view->position[] = $this->lang->todo->common;
$this->view->position[] = $this->lang->todo->edit;
$this->view->times = date::buildTimeList($this->config->todo->times->begin, $this->config->todo->times->end, $this->config->todo->times->delta);
$this->view->todo = $todo;
$this->display();
}
@@ -195,7 +189,7 @@ class todo extends control
$this->app->session->set('showSuhosinInfo', $showSuhosinInfo);
/* Assign. */
$title = $this->lang->my->common . $this->lang->colon . $this->lang->todo->batchEdit;
$title = $this->lang->todo->common . $this->lang->colon . $this->lang->todo->batchEdit;
$position[] = $this->lang->todo->common;
$position[] = $this->lang->todo->batchEdit;
+46 -55
View File
@@ -75,20 +75,17 @@ class user extends control
$this->user->setMenu($this->user->getPairs('noempty|noclosed|nodeleted'), $account);
$this->view->userList = $this->user->setUserList($this->user->getPairs('noempty|noclosed|nodeleted'), $account);
$title = $this->lang->company->orgView . $this->lang->colon . $this->lang->user->todo;
$position[] = $this->lang->user->todo;
$this->view->title = $title;
$this->view->position = $position;
$this->view->tabID = 'todo';
$this->view->date = $date;
$this->view->todos = $todos;
$this->view->user = $user;
$this->view->account = $account;
$this->view->type = $type;
$this->view->status = $status;
$this->view->orderBy = $orderBy;
$this->view->pager = $pager;
$this->view->title = $this->lang->user->common . $this->lang->colon . $this->lang->user->todo;
$this->view->position[] = $this->lang->user->todo;
$this->view->tabID = 'todo';
$this->view->date = $date;
$this->view->todos = $todos;
$this->view->user = $user;
$this->view->account = $account;
$this->view->type = $type;
$this->view->status = $status;
$this->view->orderBy = $orderBy;
$this->view->pager = $pager;
$this->display();
}
@@ -156,16 +153,14 @@ class user extends control
$this->view->userList = $this->user->setUserList($this->user->getPairs('noempty|noclosed|nodeleted'), $account);
/* Assign. */
$title = $this->lang->user->common . $this->lang->colon . $this->lang->user->task;
$position[] = $this->lang->user->task;
$this->view->title = $title;
$this->view->position = $position;
$this->view->tabID = 'task';
$this->view->tasks = $this->loadModel('task')->getUserTasks($account, $type, 0, $pager);
$this->view->type = $type;
$this->view->account = $account;
$this->view->user = $this->dao->findByAccount($account)->from(TABLE_USER)->fetch();
$this->view->pager = $pager;
$this->view->title = $this->lang->user->common . $this->lang->colon . $this->lang->user->task;
$this->view->position[] = $this->lang->user->task;
$this->view->tabID = 'task';
$this->view->tasks = $this->loadModel('task')->getUserTasks($account, $type, 0, $pager);
$this->view->type = $type;
$this->view->account = $account;
$this->view->user = $this->dao->findByAccount($account)->from(TABLE_USER)->fetch();
$this->view->pager = $pager;
$this->display();
}
@@ -199,18 +194,15 @@ class user extends control
/* Load the lang of bug module. */
$this->app->loadLang('bug');
$title = $this->lang->user->common . $this->lang->colon . $this->lang->user->bug;
$position[] = $this->lang->user->bug;
$this->view->title = $title;
$this->view->position = $position;
$this->view->tabID = 'bug';
$this->view->bugs = $this->loadModel('bug')->getUserBugs($account, $type, $orderBy, 0, $pager);
$this->view->account = $account;
$this->view->type = $type;
$this->view->user = $this->dao->findByAccount($account)->from(TABLE_USER)->fetch();
$this->view->users = $this->user->getPairs('noletter');
$this->view->pager = $pager;
$this->view->title = $this->lang->user->common . $this->lang->colon . $this->lang->user->bug;
$this->view->position[] = $this->lang->user->bug;
$this->view->tabID = 'bug';
$this->view->bugs = $this->loadModel('bug')->getUserBugs($account, $type, $orderBy, 0, $pager);
$this->view->account = $account;
$this->view->type = $type;
$this->view->user = $this->dao->findByAccount($account)->from(TABLE_USER)->fetch();
$this->view->users = $this->user->getPairs('noletter');
$this->view->pager = $pager;
$this->display();
}
@@ -245,7 +237,6 @@ class user extends control
$this->view->title = $this->lang->user->common . $this->lang->colon . $this->lang->user->testTask;
$this->view->position[] = $this->lang->user->testTask;
$this->view->tasks = $this->loadModel('testtask')->getByUser($account, $pager, $orderBy);
$this->view->users = $this->user->getPairs('noletter');
$this->view->account = $account;
$this->view->recTotal = $recTotal;
@@ -334,14 +325,12 @@ class user extends control
$this->user->setMenu($this->user->getPairs('noempty|noclosed|nodeleted'), $account);
$this->view->userList = $this->user->setUserList($this->user->getPairs('noempty|noclose|nodeleted'), $account);
$title = $this->lang->user->common . $this->lang->colon . $this->lang->user->project;
$position[] = $this->lang->user->project;
$this->view->title = $title;
$this->view->position = $position;
$this->view->tabID = 'project';
$this->view->projects = $this->user->getProjects($account);
$this->view->account = $account;
$this->view->user = $this->dao->findByAccount($account)->from(TABLE_USER)->fetch();
$this->view->title = $this->lang->user->common . $this->lang->colon . $this->lang->user->project;
$this->view->position[] = $this->lang->user->project;
$this->view->tabID = 'project';
$this->view->projects = $this->user->getProjects($account);
$this->view->account = $account;
$this->view->user = $this->dao->findByAccount($account)->from(TABLE_USER)->fetch();
$this->display();
}
@@ -362,6 +351,7 @@ class user extends control
$user = $this->user->getById($account);
$this->view->title = "USER #$user->id $user->account/" . $this->lang->user->profile;
$this->view->position[] = $this->lang->user->common;
$this->view->position[] = $this->lang->user->profile;
$this->view->account = $account;
$this->view->user = $user;
@@ -527,11 +517,9 @@ class user extends control
$this->lang->user->menu = $this->lang->company->menu;
$this->lang->user->menuOrder = $this->lang->company->menuOrder;
$title = $this->lang->company->common . $this->lang->colon . $this->lang->user->batchEdit;
$position[] = $this->lang->user->edit;
$this->view->title = $title;
$this->view->position = $position;
$this->view->depts = $this->dept->getOptionMenu();
$this->view->title = $this->lang->company->common . $this->lang->colon . $this->lang->user->batchEdit;
$this->view->position[] = $this->lang->user->batchEdit;
$this->view->depts = $this->dept->getOptionMenu();
$this->display();
}
@@ -798,8 +786,8 @@ class user extends control
$this->view->orderBy = $orderBy;
$this->view->pager = $pager;
$this->view->title = $this->lang->company->common . $this->lang->colon . $this->lang->company->dynamic;
$this->view->position[] = $this->lang->company->dynamic;
$this->view->title = $this->lang->user->common . $this->lang->colon . $this->lang->user->dynamic;
$this->view->position[] = $this->lang->user->dynamic;
/* Assign. */
$this->view->period = $period;
@@ -861,9 +849,12 @@ class user extends control
$this->view->list = $list;
}
$this->view->lists = $this->user->getContactLists($this->app->user->account);
$this->view->users = $users;
$this->view->mode = $mode;
$this->view->title = $this->lang->company->common . $this->lang->colon . $this->lang->user->manageContacts;
$this->view->position[] = $this->lang->company->common;
$this->view->position[] = $this->lang->user->manageContacts;
$this->view->lists = $this->user->getContactLists($this->app->user->account);
$this->view->users = $users;
$this->view->mode = $mode;
$this->display();
}
+1 -1
View File
@@ -13,7 +13,7 @@
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/tablesorter.html.php';?>
<?php include './featurebar.html.php';?>
<table class='cont-lt1'>
<table class='cont-lt1 fixed'>
<tr valign='top'>
<td class='side'>
<div class='box-title'><?php echo $lang->user->dynamic;?></div>
+4 -2
View File
@@ -66,6 +66,7 @@ class webapp extends control
}
$this->view->title = $this->lang->webapp->common . $this->lang->colon . $this->lang->webapp->obtain;
$this->view->position[] = $this->lang->webapp->obtain;
$this->view->moduleTree = $this->webapp->getModulesByAPI();
$this->view->webapps = $webapps;
$this->view->installeds = $this->webapp->getLocalApps('appid');
@@ -115,8 +116,9 @@ class webapp extends control
$this->webapp->setMenu();
$this->view->title = $this->lang->webapp->common . $this->lang->colon . $this->lang->webapp->create;
$this->view->modules = $this->loadModel('tree')->getOptionMenu(0, 'webapp');
$this->view->title = $this->lang->webapp->common . $this->lang->colon . $this->lang->webapp->create;
$this->view->position[] = $this->lang->webapp->create;
$this->view->modules = $this->loadModel('tree')->getOptionMenu(0, 'webapp');
$this->display();
}