本文整理汇总了PHP中common::createChanges方法的典型用法代码示例。如果您正苦于以下问题:PHP common::createChanges方法的具体用法?PHP common::createChanges怎么用?PHP common::createChanges使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类common
的用法示例。
在下文中一共展示了common::createChanges方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: update
/**
* Update a release.
*
* @param int $releaseID
* @access public
* @return void
*/
public function update($releaseID)
{
$oldRelease = $this->getByID($releaseID);
$release = fixer::input('post')->stripTags('name')->setDefault('stories', '')->setDefault('bugs', '')->join('stories', ',')->join('bugs', ',')->get();
$this->dao->update(TABLE_RELEASE)->data($release)->autoCheck()->batchCheck($this->config->release->edit->requiredFields, 'notempty')->check('name', 'unique', "id != {$releaseID}")->where('id')->eq((int) $releaseID)->exec();
$this->dao->update(TABLE_STORY)->set('stage')->eq('released')->where('id')->in($release->stories)->exec();
if (!dao::isError()) {
return common::createChanges($oldRelease, $release);
}
}
示例2: update
public function update($assetID)
{
$skipFields = '';
$skipFields .= $this->loadModel('custom')->dealWithCustomArrayField();
$oldAsset = $this->getAssetById($assetID);
$now = helper::now();
$address = fixer::input('post')->get('address');
$extendaddress = fixer::input('post')->get('extendaddress');
$devicenumber = fixer::input('post')->get('devicenumber');
$code = fixer::input('post')->get('code');
$module = $this->loadModel('info')->getAllChildId(fixer::input('post')->cleanInt('module')->setDefault('module', 0)->get('module'), 'asset');
$result1 = $this->dao->select('*')->from(TABLE_INFOASSET)->where('address')->eq($extendaddress)->andWhere('address')->ne('IP Format Error')->andWhere('address')->ne('Conflict!')->andWhere('address')->ne('')->beginIF($module)->andWhere('module')->in($module)->fi()->fetchAll();
$result2 = $this->dao->select('*')->from(TABLE_INFOASSET)->where('extendaddress')->eq($address)->andWhere('extendaddress')->ne('IP Format Error')->andWhere('extendaddress')->ne('Conflict!')->andWhere('extendaddress')->ne('')->beginIF($module)->andWhere('module')->in($module)->fi()->fetchAll();
$asset = fixer::input('post')->cleanInt('module')->setDefault('module', 0)->add('lastEditedBy', $this->app->user->account)->add('lastEditedDate', $now)->setDefault('lenddate', '0000-00-00')->setDefault('returndate', '0000-00-00')->setDefault('product', '0')->setDefault('project', '0')->setIF(!(strlen(trim($extendaddress)) == 0) && !validater::checkIP($extendaddress), 'extendaddress', 'IP Format Error')->setIF(!(strlen(trim($address)) == 0) && !validater::checkIP($address), 'address', 'IP Format Error')->removeIF(trim($address) == trim($extendaddress), 'extendaddress')->setIF($result1, 'extendaddress', 'Conflict!')->setIF($result2, 'address', 'Conflict!')->get();
$condition = "`lib` = '{$asset->lib}' AND module = '{$asset->module}' and id != '{$assetID}'";
$conditionaddress = $condition . " and address != 'IP Format Error' and address != 'Conflict!'";
$conditionextaddress = $condition . " and extendaddress != 'IP Format Error' and extendaddress != 'Conflict!'";
$this->dao->update(TABLE_INFOASSET)->data($asset)->autoCheck($skipFields)->batchCheck($this->config->asset->edit->requiredFields, 'notempty')->check('hostname', 'unique', $condition)->checkIF(!(strlen(trim($address)) == 0), 'address', 'unique', $conditionaddress)->checkIF(!(strlen(trim($extendaddress)) == 0), 'extendaddress', 'unique', $conditionextaddress)->checkIF(!(strlen(trim($devicenumber)) == 0), 'devicenumber', 'unique', $condition)->checkIF(!(strlen(trim($code)) == 0), 'code', 'unique', $condition)->where('id')->eq((int) $assetID)->exec();
$asset->editedCount = $asset->editedCount - 1;
if (!dao::isError()) {
return common::createChanges($oldAsset, $asset);
}
}
示例3: updateLib
public function updateLib($libID, $type)
{
$libID = (int) $libID;
$oldLib = $this->getLibById($libID);
$lib = fixer::input('post')->stripTags('name')->add('type', $type)->setIF('$defaultlib==on', 'defaultlib', '1')->setIF('$defaultlib==off', 'defaultlib', '0')->get();
//检测默认库
$oldDefaultLibID = $this->getDefaultLibId();
if ($libID == $oldDefaultLibID) {
$lib->defaultlib = 1;
} else {
if ($lib->defaultlib = 1) {
$this->clearDefaultLib($type);
}
}
$condition = "type = '{$type}' and id != '{$libID}'";
$this->dao->update(TABLE_INFOLIB)->data($lib)->autoCheck()->batchCheck($this->config->info->editLib->requiredFields, 'notempty')->check('name', 'unique', $condition)->where('id')->eq($libID)->exec();
if (!dao::isError()) {
return common::createChanges($oldLib, $lib);
}
}
示例4: update
/**
* Update a test task.
*
* @param int $taskID
* @access public
* @return void
*/
public function update($taskID)
{
$oldTask = $this->getById($taskID);
$task = fixer::input('post')->stripTags('name')->get();
$this->dao->update(TABLE_TESTTASK)->data($task)->autoCheck()->batchcheck($this->config->testtask->edit->requiredFields, 'notempty')->where('id')->eq($taskID)->exec();
if (!dao::isError()) {
return common::createChanges($oldTask, $task);
}
}
示例5: assign
/**
* Assign a bug to a user again.
*
* @param int $bugID
* @access public
* @return void
*/
public function assign($bugID)
{
$now = helper::now();
$oldBug = $this->getById($bugID);
$bug = fixer::input('post')->setDefault('lastEditedBy', $this->app->user->account)->setDefault('lastEditedDate', $now)->remove('comment')->get();
$this->dao->update(TABLE_BUG)->data($bug)->autoCheck()->where('id')->eq($bugID)->exec();
if (!dao::isError()) {
return common::createChanges($oldBug, $bug);
}
}
示例6: batchClose
/**
* Batch close story.
*
* @access public
* @return void
*/
public function batchClose()
{
/* Init vars. */
$stories = array();
$allChanges = array();
$now = helper::now();
$storyIDList = $this->post->storyIDList ? $this->post->storyIDList : array();
/* Adjust whether the post data is complete, if not, remove the last element of $storyIDList. */
if ($this->session->showSuhosinInfo) {
array_pop($storyIDList);
}
if (!empty($storyIDList)) {
foreach ($storyIDList as $storyID) {
$oldStory = $this->getById($storyID);
$story->lastEditedBy = $this->app->user->account;
$story->lastEditedDate = $now;
$story->closedBy = $this->app->user->account;
$story->closedDate = $now;
$story->assignedTo = 'closed';
$story->assignedDate = $now;
$story->status = 'closed';
$story->closedReason = $this->post->closedReasons[$storyID];
$story->duplicateStory = $this->post->duplicateStoryIDList[$storyID] ? $this->post->duplicateStoryIDList[$storyID] : $oldStory->duplicateStory;
$story->childStories = $this->post->childStoriesIDList[$storyID] ? $this->post->childStoriesIDList[$storyID] : $oldStory->childStories;
if ($story->closedReason == 'done') {
$story->stage = 'released';
}
if ($story->closedReason != 'done') {
$story->plan = 0;
}
$stories[$storyID] = $story;
unset($story);
}
foreach ($stories as $storyID => $story) {
$oldStory = $this->getById($storyID);
$this->dao->update(TABLE_STORY)->data($story)->autoCheck()->batchCheck($this->config->story->close->requiredFields, 'notempty')->checkIF($story->closedReason == 'duplicate', 'duplicateStory', 'notempty')->checkIF($story->closedReason == 'subdivided', 'childStories', 'notempty')->where('id')->eq($storyID)->exec();
if (!dao::isError()) {
$allChanges[$storyID] = common::createChanges($oldStory, $story);
} else {
die(js::error('story#' . $storyID . dao::getError(true)));
}
}
}
return $allChanges;
}
示例7: close
/**
* Close product.
*
* @param int $productID.
* @access public
* @return void
*/
public function close($productID)
{
$oldProduct = $this->getById($productID);
$now = helper::now();
$product = fixer::input('post')->setDefault('status', 'closed')->remove('comment')->get();
$this->dao->update(TABLE_PRODUCT)->data($product)->autoCheck()->where('id')->eq((int) $productID)->exec();
if (!dao::isError()) {
return common::createChanges($oldProduct, $product);
}
}
示例8: createFromImport
/**
* Create from import
*
* @param int $productID
* @access public
* @return void
*/
public function createFromImport($productID)
{
$this->loadModel('action');
$this->loadModel('story');
$this->loadModel('file');
$now = helper::now();
$data = fixer::input('post')->get();
if (!empty($_POST['id'])) {
$oldSteps = $this->dao->select('t2.*')->from(TABLE_CASE)->alias('t1')->leftJoin(TABLE_CASESTEP)->alias('t2')->on('t1.id = t2.case')->where('t1.id')->in($_POST['id'])->andWhere('t1.product')->eq($productID)->andWhere('t1.version=t2.version')->orderBy('t2.id')->fetchGroup('case');
$oldCases = $this->dao->select('*')->from(TABLE_CASE)->where('id')->in($_POST['id'])->fetchAll('id');
}
$cases = array();
foreach ($data->product as $key => $product) {
$caseData = new stdclass();
$caseData->product = $product;
$caseData->module = $data->module[$key];
$caseData->story = (int) $data->story[$key];
$caseData->title = $data->title[$key];
$caseData->pri = (int) $data->pri[$key];
$caseData->type = $data->type[$key];
$caseData->status = $data->status[$key];
$caseData->stage = join(',', $data->stage[$key]);
$caseData->frequency = 1;
$caseData->precondition = $data->precondition[$key];
if (isset($this->config->testcase->create->requiredFields)) {
$requiredFields = explode(',', $this->config->testcase->create->requiredFields);
foreach ($requiredFields as $requiredField) {
$requiredField = trim($requiredField);
if (empty($caseData->{$requiredField})) {
die(js::alert(sprintf($this->lang->testcase->noRequire, $key, $this->lang->testcase->{$requiredField})));
}
}
}
$cases[$key] = $caseData;
}
foreach ($cases as $key => $caseData) {
if (!empty($_POST['id'][$key])) {
$caseID = $data->id[$key];
$stepChanged = false;
$steps = array();
$oldStep = isset($oldSteps[$caseID]) ? $oldSteps[$caseID] : array();
$oldCase = $oldCases[$caseID];
/* Remove the empty setps in post. */
$steps = array();
if (isset($_POST['desc'][$key])) {
foreach ($this->post->desc[$key] as $id => $desc) {
$desc = trim($desc);
if (empty($desc)) {
continue;
}
$step = new stdclass();
$step->desc = $desc;
$step->expect = trim($this->post->expect[$key][$id]);
$steps[] = $step;
}
}
/* If step count changed, case changed. */
if (!$oldStep != !$steps or count($oldStep) != count($steps)) {
$stepChanged = true;
} else {
/* Compare every step. */
foreach ($oldStep as $id => $oldStep) {
if (trim($oldStep->desc) != trim($steps[$id]->desc) or trim($oldStep->expect) != $steps[$id]->expect) {
$stepChanged = true;
break;
}
}
}
$version = $stepChanged ? $oldCase->version + 1 : $oldCase->version;
$caseData->version = $version;
$changes = common::createChanges($oldCase, $caseData);
if (!$changes and !$stepChanged) {
continue;
}
if ($changes or $stepChanged) {
$caseData->lastEditedBy = $this->app->user->account;
$caseData->lastEditedDate = $now;
$this->dao->update(TABLE_CASE)->data($caseData)->where('id')->eq($caseID)->autoCheck()->exec();
if ($stepChanged) {
foreach ($steps as $id => $step) {
$step = (array) $step;
if (empty($step['desc'])) {
continue;
}
$stepData = new stdclass();
$stepData->case = $caseID;
$stepData->version = $version;
$stepData->desc = htmlspecialchars($step['desc']);
$stepData->expect = htmlspecialchars($step['expect']);
$this->dao->insert(TABLE_CASESTEP)->data($stepData)->autoCheck()->exec();
}
}
$oldCase->steps = $this->joinStep($oldStep);
//.........这里部分代码省略.........
示例9: batchUpdate
/**
* Batch update todos.
*
* @access public
* @return array
*/
public function batchUpdate()
{
$todos = array();
$allChanges = array();
$data = fixer::input('post')->get();
$todoIDList = $this->post->todoIDList ? $this->post->todoIDList : array();
/* Adjust whether the post data is complete, if not, remove the last element of $todoIDList. */
if ($this->session->showSuhosinInfo) {
array_pop($taskIDList);
}
if (!empty($todoIDList)) {
/* Initialize todos from the post data. */
foreach ($todoIDList as $todoID) {
$todo = new stdclass();
$todo->date = $data->dates[$todoID];
$todo->type = $data->types[$todoID];
$todo->pri = $data->pris[$todoID];
$todo->status = $data->status[$todoID];
$todo->name = $todo->type == 'custom' ? $data->names[$todoID] : '';
$todo->begin = $data->begins[$todoID];
$todo->end = $data->ends[$todoID];
if ($todo->type == 'task') {
$todo->idvalue = isset($data->tasks[$todoID]) ? $data->tasks[$todoID] : 0;
}
if ($todo->type == 'bug') {
$todo->idvalue = isset($data->bugs[$todoID]) ? $data->bugs[$todoID] : 0;
}
$todos[$todoID] = $todo;
}
foreach ($todos as $todoID => $todo) {
$oldTodo = $this->getById($todoID);
if ($oldTodo->type != 'custom') {
$oldTodo->name = '';
}
$this->dao->update(TABLE_TODO)->data($todo)->autoCheck()->checkIF($todo->type == 'custom', $this->config->todo->edit->requiredFields, 'notempty')->checkIF($todo->type == 'bug', 'idvalue', 'notempty')->checkIF($todo->type == 'task', 'idvalue', 'notempty')->where('id')->eq($todoID)->exec();
if ($oldTodo->status != 'done' and $todo->status == 'done') {
$this->loadModel('action')->create('todo', $todoID, 'finished', '', 'done');
}
if (!dao::isError()) {
$allChanges[$todoID] = common::createChanges($oldTodo, $todo);
} else {
die(js::error('todo#' . $todoID . dao::getError(true)));
}
}
}
return $allChanges;
}
示例10: batchUpdate
/**
* Batch update plan.
*
* @param int $productID
* @access public
* @return array
*/
public function batchUpdate($productID)
{
$data = fixer::input('post')->get();
$oldPlans = $this->getByIDList($data->id);
$plans = array();
foreach ($data->id as $planID) {
$plan = new stdclass();
$plan->title = $data->title[$planID];
$plan->begin = $data->begin[$planID];
$plan->end = $data->end[$planID];
if (empty($plan->title)) {
die(js::alert(sprintf($this->lang->productplan->errorNoTitle, $planID)));
}
if (empty($plan->begin)) {
die(js::alert(sprintf($this->lang->productplan->errorNoBegin, $planID)));
}
if (empty($plan->end)) {
die(js::alert(sprintf($this->lang->productplan->errorNoEnd, $planID)));
}
if ($plan->begin > $plan->end) {
die(js::alert(sprintf($this->lang->productplan->beginGeEnd, $planID)));
}
$plans[$planID] = $plan;
}
$changes = array();
foreach ($plans as $planID => $plan) {
$change = common::createChanges($oldPlans[$planID], $plan);
if ($change) {
$this->dao->update(TABLE_PRODUCTPLAN)->data($plan)->autoCheck()->where('id')->eq($planID)->exec();
if (dao::isError()) {
die(js::error(dao::getError()));
}
$changes[$planID] = $change;
}
}
return $changes;
}
示例11: importBug
/**
* Import task from Bug.
*
* @param int $projectID
* @access public
* @return void
*/
public function importBug($projectID)
{
$this->loadModel('bug');
$bugLang = $this->app->loadLang('bug');
$this->loadModel('task');
$this->loadModel('story');
$now = helper::now();
$BugToTasks = fixer::input('post')->get();
foreach ($BugToTasks->import as $key => $value) {
$bug = $this->bug->getById($key);
$task->project = $projectID;
$task->story = $bug->story;
$task->storyVersion = $bug->story;
$task->fromBug = $key;
$task->name = $bug->title;
$task->type = 'devel';
$task->pri = $BugToTasks->pri[$key];
$task->consumed = 0;
$task->status = 'wait';
$task->statusCustom = strpos(taskModel::CUSTOM_STATUS_ORDER, 'wait') + 1;
$task->desc = $bugLang->bug->resolve . ':' . '#' . html::a(helper::createLink('bug', 'view', "bugID={$key}"), sprintf('%03d', $key));
$task->openedDate = $now;
$task->openedBy = $this->app->user->account;
if (!empty($BugToTasks->estimate[$key])) {
$task->estimate = $BugToTasks->estimate[$key];
$task->left = $task->estimate;
}
if (!empty($BugToTasks->assignedTo[$key])) {
$task->assignedTo = $BugToTasks->assignedTo[$key];
$task->assignedDate = $now;
}
$this->dao->insert(TABLE_TASK)->data($task)->checkIF($BugToTasks->estimate[$key] != '', 'estimate', 'float')->exec();
if (dao::isError()) {
echo js::error(dao::getError());
die(js::reload('parent'));
}
$taskID = $this->dao->lastInsertID();
if ($task->story != false) {
$this->story->setStage($task->story);
}
$actionID = $this->loadModel('action')->create('task', $taskID, 'Opened', '');
$mails[$key]->taskID = $taskID;
$mails[$key]->actionID = $actionID;
$this->action->create('bug', $key, 'Totask', '', $taskID);
$this->dao->update(TABLE_BUG)->set('toTask')->eq($taskID)->where('id')->eq($key)->exec();
if ($task->assignedTo and $task->assignedTo != $bug->assignedTo) {
$newBug = new stdClass();
$newBug->lastEditedBy = $this->app->user->account;
$newBug->lastEditedDate = $now;
$newBug->assignedTo = $task->assignedTo;
$newBug->assignedDate = $now;
$this->dao->update(TABLE_BUG)->data($newBug)->where('id')->eq($key)->exec();
if (dao::isError()) {
die(js::error(dao::getError()));
}
$changes = common::createChanges($bug, $newBug);
$actionID = $this->action->create('bug', $key, 'Assigned', '', $newBug->assignedTo);
$this->action->logHistory($actionID, $changes);
}
}
return $mails;
}
示例12: update
/**
* Update a release.
*
* @param int $releaseID
* @access public
* @return void
*/
public function update($releaseID)
{
$oldRelease = $this->getByID($releaseID);
$branch = $oldRelease->branch;
if ($oldRelease->build != $this->post->build) {
$branch = $this->dao->select('branch')->from(TABLE_BUILD)->where('id')->eq($this->post->build)->fetch('branch');
}
$release = fixer::input('post')->stripTags($this->config->release->editor->edit['id'], $this->config->allowedTags)->add('branch', (int) $branch)->remove('files,labels,allchecker')->get();
$release = $this->loadModel('file')->processEditor($release, $this->config->release->editor->edit['id']);
$this->dao->update(TABLE_RELEASE)->data($release)->autoCheck()->batchCheck($this->config->release->edit->requiredFields, 'notempty')->check('name', 'unique', "id != {$releaseID} AND product = {$release->product} AND deleted = '0'")->where('id')->eq((int) $releaseID)->exec();
if (!dao::isError()) {
return common::createChanges($oldRelease, $release);
}
}
示例13: batchUpdate
/**
* Batch update testcases.
*
* @access public
* @return array
*/
public function batchUpdate()
{
$cases = array();
$allChanges = array();
$now = helper::now();
$caseIDList = $this->post->caseIDList;
/* Adjust whether the post data is complete, if not, remove the last element of $caseIDList. */
if ($this->session->showSuhosinInfo) {
array_pop($caseIDList);
}
/* Initialize cases from the post data.*/
foreach ($caseIDList as $caseID) {
$case->lastEditedBy = $this->app->user->account;
$caee->lastEditedDate = $now;
$case->pri = $this->post->pris[$caseID];
$case->status = $this->post->statuses[$caseID];
$case->module = $this->post->modules[$caseID];
$case->title = htmlspecialchars($this->post->titles[$caseID]);
$case->type = $this->post->types[$caseID];
$case->stage = implode(',', $this->post->stages[$caseID]);
$cases[$caseID] = $case;
unset($case);
}
/* Update cases. */
foreach ($cases as $caseID => $case) {
$oldCase = $this->getByID($caseID);
$this->dao->update(TABLE_CASE)->data($case)->autoCheck()->batchCheck($this->config->testcase->edit->requiredFields, 'notempty')->where('id')->eq($caseID)->exec();
if (!dao::isError()) {
unset($oldCase->steps);
$allChanges[$caseID] = common::createChanges($oldCase, $case);
} else {
die(js::error('case#' . $caseID . dao::getError(true)));
}
}
return $allChanges;
}
示例14: close
/**
* Close testtask.
*
* @access public
* @return void
*/
public function close($taskID)
{
$oldTesttask = $this->getById($taskID);
$testtask = fixer::input('post')->setDefault('status', 'done')->stripTags($this->config->testtask->editor->close['id'], $this->config->allowedTags)->remove('comment')->get();
$this->dao->update(TABLE_TESTTASK)->data($testtask)->autoCheck()->where('id')->eq((int) $taskID)->exec();
if (!dao::isError()) {
return common::createChanges($oldTesttask, $testtask);
}
}
示例15: batchUpdate
/**
* Batch update plan.
*
* @param int $productID
* @access public
* @return array
*/
public function batchUpdate($productID)
{
$data = fixer::input('post')->skipSpecial('desc')->get();
$oldPlans = $this->getByIDList($data->id);
$this->app->loadClass('purifier', true);
$config = HTMLPurifier_Config::createDefault();
$config->set('Cache.DefinitionImpl', null);
$purifier = new HTMLPurifier($config);
$plans = array();
foreach ($data->id as $planID) {
$plan = new stdclass();
$plan->title = $data->title[$planID];
$plan->desc = $purifier->purify($data->desc[$planID]);
$plan->begin = $data->begin[$planID];
$plan->end = $data->end[$planID];
if (empty($plan->title)) {
die(js::alert(sprintf($this->lang->productplan->errorNoTitle, $planID)));
}
if (empty($plan->begin)) {
die(js::alert(sprintf($this->lang->productplan->errorNoBegin, $planID)));
}
if (empty($plan->end)) {
die(js::alert(sprintf($this->lang->productplan->errorNoEnd, $planID)));
}
if ($plan->begin > $plan->end) {
die(js::alert(sprintf($this->lang->productplan->beginGeEnd, $planID)));
}
$plans[$planID] = $plan;
}
$changes = array();
foreach ($plans as $planID => $plan) {
$change = common::createChanges($oldPlans[$planID], $plan);
if ($change) {
$this->dao->update(TABLE_PRODUCTPLAN)->data($plan)->autoCheck()->where('id')->eq($planID)->exec();
if (dao::isError()) {
die(js::error(dao::getError()));
}
$changes[$planID] = $change;
}
}
return $changes;
}