diff --git a/module/product/css/dynamic.css b/module/product/css/dynamic.css new file mode 100644 index 0000000000..f46372e157 --- /dev/null +++ b/module/product/css/dynamic.css @@ -0,0 +1,20 @@ +#dynamics {padding: 10px 0;} +.dynamic {position: relative; padding-left: 170px;} +.dynamic-date {position: absolute; left: 0; top: 0; width: 150px; border: 2px solid #eee; border-radius: 4px; padding: 14px 20px; height: 58px;} +.dynamic-date:before {content: ' '; display: block; position: absolute; right: -22px; top: 26px; height: 2px; width: 20px; background-color: #eee;} +.dynamic-date > .date-label, +.dynamic-date > .date-text {font-size: 18px; display: block;} +.dynamic-date > .date-label + .date-text {font-size: 14px; line-height: 14px;} +.dynamic-date > .date-label {margin-top: -8px;} +.dynamic-date > .btn {position: absolute; right: 10px; top: 15px;} +.dynamic .timeline {border: 2px solid #eee; border-radius: 4px; margin-bottom: 20px; padding: 10px 20px 10px 100px; max-height: 800px; transition: max-height .2s; overflow: hidden;} +.dynamic .timeline-tag {left: -75px; font-size: 14px; color: #838A9D;} +.dynamic .timeline-text {color: #3C4353;} +.dynamic .text-muted {color: #838A9D;} +.dynamic .label-id {top: -1px;} +.dynamic.active .timeline, +.dynamic.active .dynamic-date {border-color: #00a9fc;} +.dynamic.active .dynamic-date:before {background-color: #00a9fc;} +.dynamic.collapsed .timeline {max-height: 58px;} +.dynamic.collapsed .timeline > li + li:after {display: none;} +.dynamic.collapsed .dynamic-btn > .icon:before {content: '\f0d7';} diff --git a/module/search/control.php b/module/search/control.php index f5f952177a..350be9d45f 100644 --- a/module/search/control.php +++ b/module/search/control.php @@ -106,6 +106,13 @@ class search extends control $query = $queryID ? $queryID : ''; $module = empty($module) ? $this->session->searchParams['module'] : $module; $queries = $this->search->getQueryPairs($module); - die(html::select('queryID', $queries, $query, 'onchange=executeQuery(this.value) class=form-control')); + + $html = ''; + foreach($queries as $queryID => $queryName) + { + if(empty($queryID)) continue; + $html .= html::a("###", $queryName . (common::hasPriv('search', 'deleteQuery') ? '' : ''), '', "class='label user-query' data-query-id='$queryID'"); + } + die($html); } } diff --git a/module/search/model.php b/module/search/model.php index 971285173e..7c970fff9e 100644 --- a/module/search/model.php +++ b/module/search/model.php @@ -322,6 +322,7 @@ class searchModel extends model public function deleteQuery($queryID) { $this->dao->delete()->from(TABLE_USERQUERY)->where('id')->eq($queryID)->andWhere('account')->eq($this->app->user->account)->exec(); + die('success'); } /** diff --git a/module/search/view/buildform.html.php b/module/search/view/buildform.html.php index 79da96a361..ecd9545efc 100644 --- a/module/search/view/buildform.html.php +++ b/module/search/view/buildform.html.php @@ -193,6 +193,7 @@ foreach($fieldParams as $fieldName => $param)

search->savedQuery;?>

$queryName):?> + ' : ''), '', "class='label user-query' data-query-id='$queryID'");?>
@@ -237,9 +238,14 @@ var setQueryTitle = 'search->setQueryTitle;?>'; var module = ''; var actionURL = ''; +function executeQuery(queryID) +{ + if(!queryID) return; + location.href = actionURL.replace('myQueryID', queryID); +} + $(function() { - var $searchForm = $('#searchForm'); $searchForm.find('select.chosen').chosen(); @@ -248,7 +254,7 @@ $(function() */ var loadQueries = window.loadQueries = function(queryID) { - $('#queryBox').load($.createLink('search', 'ajaxGetQuery', 'module=' + module + '&queryID=' + queryID)); + $('#userQueries div:first').load($.createLink('search', 'ajaxGetQuery', 'module=' + module + '&queryID=' + queryID)); }; /* diff --git a/module/story/view/activate.html.php b/module/story/view/activate.html.php index 80fb5de91e..5874cfef45 100644 --- a/module/story/view/activate.html.php +++ b/module/story/view/activate.html.php @@ -11,45 +11,48 @@ */ ?> -
-
- icons['story']);?> id;?> - createLink('story', 'view', "storyID=$story->id"), $story->title);?> - icons['activate']) . ' ' . $lang->story->activate;?> +
+
+
+

+ id;?> + createLink('story', 'view', "storyID=$story->id"), $story->title);?> + arrow . $lang->story->activate;?> +

+
+
+ + + + + + + + + + + + + + + + + +
story->assignedTo;?>closedBy, 'class="form-control chosen"');?>
story->status;?> + story->statusList['']); + unset($lang->story->statusList['closed']); + echo html::select('status', $lang->story->statusList, 'active', 'class="form-control chosen"'); + ?> +
story->comment;?>
+ icons['activate']) . ' ' . $lang->story->activate, '', 'btn btn-success'); + echo html::linkButton($lang->goback, $app->session->storyList ? $app->session->storyList : inlink('view', "storyID=$story->id")); + ?> +
+
+
+
-
- - - - - - - - - - - - - - - - - -
story->assignedTo;?>closedBy, 'class="form-control chosen"');?>
story->status;?> - story->statusList['']); - unset($lang->story->statusList['closed']); - echo html::select('status', $lang->story->statusList, 'active', 'class="form-control chosen"'); - ?> -
story->comment;?>
- icons['activate']) . ' ' . $lang->story->activate, '', 'btn btn-success'); - echo html::linkButton($lang->goback, $app->session->storyList ? $app->session->storyList : inlink('view', "storyID=$story->id")); - ?> -
-
-
- -
diff --git a/module/story/view/affected.html.php b/module/story/view/affected.html.php index 331ef30788..048dcbe10b 100644 --- a/module/story/view/affected.html.php +++ b/module/story/view/affected.html.php @@ -40,9 +40,9 @@ - + - + diff --git a/module/story/view/batchclose.html.php b/module/story/view/batchclose.html.php index 6dc947cbec..9e5a0d5849 100755 --- a/module/story/view/batchclose.html.php +++ b/module/story/view/batchclose.html.php @@ -11,53 +11,56 @@ */ ?> -
-
- icons['story']);?> - story->common . $lang->colon . $lang->story->batchClose;?> - icons['batchClose']);?> +
+
+

story->common . $lang->colon . $lang->story->batchClose;?>

+ +
+ +
"> +
bug->id;?>bug->id;?> bug->title;?>bug->status;?>bug->status;?> bug->openedBy;?> bug->resolvedBy;?> bug->resolution;?>
+ + + + + + + + + + $story):?> + + + + + + + + + + + +
idAB;?> story->title;?> story->status;?>story->closedReason;?> story->comment;?>
title;?>story->statusList[$story->status];?> + status == 'draft') unset($this->lang->story->reasonList['cancel']);?> + + + + + + +
+ story->reasonList, 'done', "class=form-control onchange=setDuplicateAndChild(this.value,$storyID) style='min-width: 70px'");?> + ' closedReason != 'duplicate') echo "style='display:none'";?>> + idAB}' autocomplete='off'");?> + ' closedReason != 'subdivided') echo "style='display:none'";?>> + idAB}' autocomplete='off'");?> +
+
+ + +
+ +
- -
- -
"> - - - - - - - - - - - $story):?> - - - - - - - - - -
idAB;?> story->title;?> story->status;?>story->closedReason;?> story->comment;?>
title;?>story->statusList[$story->status];?> - status == 'draft') unset($this->lang->story->reasonList['cancel']);?> - - - - - - -
- story->reasonList, 'done', "class=form-control onchange=setDuplicateAndChild(this.value,$storyID) style='min-width: 70px'");?> - ' closedReason != 'duplicate') echo "style='display:none'";?>> - idAB}' autocomplete='off'");?> - ' closedReason != 'subdivided') echo "style='display:none'";?>> - idAB}' autocomplete='off'");?> -
-
-
- diff --git a/module/story/view/batchedit.html.php b/module/story/view/batchedit.html.php index 427dd46b61..200eeacc7a 100644 --- a/module/story/view/batchedit.html.php +++ b/module/story/view/batchedit.html.php @@ -12,16 +12,17 @@ ?> lang->story->dittoNotice);?> -
-
- icons['story']);?> - icons['batchEdit']);?> story->common . $lang->colon . $lang->story->batchEdit;?> +
+
+

+ story->common . $lang->colon . $lang->story->batchEdit;?> icons['product']) . ' ' . $lang->story->product . $lang->colon . ' ' . $productName;?> -
- -
+

+
+ createLink('custom', 'ajaxSaveCustomFields', 'module=story§ion=custom&key=batchEditFields')?> +
@@ -34,7 +35,7 @@ foreach(explode(',', $showFields) as $field) if($field)$visibleFields[$field] = ''; } ?> -
"> +"> @@ -136,6 +137,4 @@ foreach(explode(',', $showFields) as $field)
-createLink('custom', 'ajaxSaveCustomFields', 'module=story§ion=custom&key=batchEditFields')?> - diff --git a/module/story/view/bugs.html.php b/module/story/view/bugs.html.php index 3048cb253f..2ee49e27eb 100644 --- a/module/story/view/bugs.html.php +++ b/module/story/view/bugs.html.php @@ -1,12 +1,12 @@ -
-
- icons['report']);?> - story->bugs;?> +
+
+

+ icons['report']);?> + story->bugs;?> +

-
-
-
+
@@ -35,6 +35,6 @@
- +
diff --git a/module/story/view/cases.html.php b/module/story/view/cases.html.php index 70c0e4df2c..587304e73b 100644 --- a/module/story/view/cases.html.php +++ b/module/story/view/cases.html.php @@ -1,16 +1,16 @@ -
-
- icons['report']);?> - story->cases;?> +
+
+

+ icons['report']);?> + story->cases;?> +

-
-
-
+
- + @@ -35,6 +35,6 @@
idAB;?> idAB;?> testcase->title;?> priAB;?> testcase->type;?>
- +
diff --git a/module/story/view/change.html.php b/module/story/view/change.html.php index 7288906cd4..d603a78f92 100644 --- a/module/story/view/change.html.php +++ b/module/story/view/change.html.php @@ -11,67 +11,69 @@ */ ?> -
-
-
- icons['story']);?> id;?> - createLink('story', 'view', "storyID=$story->id"), $story->title);?> - icons['change']) . ' ' . $lang->story->change;?> +
+
+
+

+ id;?> + createLink('story', 'view', "storyID=$story->id"), $story->title);?> + arrow . ' ' . $lang->story->change;?> +

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
story->reviewedBy;?> +
+ assignedTo, 'class="form-control chosen"');?> + story->checkForceReview()):?> + + story->needNotReview, '', "id='needNotReview' {$needReview}");?> + + +
+
story->title;?>title, 'class="form-control"');?>
story->spec;?>spec), 'rows=8 class="form-control"');?>story->specTemplate;?>
story->verify;?>verify), 'rows=6 class="form-control"');?>
story->comment;?>
attatch;?>fetch('file', 'buildform');?>
story->checkAffection;?>
+ lastEditedDate); + echo html::submitButton('', '', 'btn btn-wide btn-primary'); + echo html::linkButton($lang->goback, $app->session->storyList ? $app->session->storyList : inlink('view', "storyID=$story->id"), '', '', 'btn btn-wide'); + ?> +
+
+
+
+
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
story->reviewedBy;?> -
- assignedTo, 'class="form-control chosen"');?> - story->checkForceReview()):?> - - story->needNotReview, '', "id='needNotReview' {$needReview}");?> - - -
-
story->title;?>title, 'class="form-control"');?>
story->spec;?>spec), 'rows=8 class="form-control"');?>story->specTemplate;?>
story->verify;?>verify), 'rows=6 class="form-control"');?>
story->comment;?>
attatch;?>fetch('file', 'buildform');?>
story->checkAffection;?>
- lastEditedDate); - echo html::submitButton(); - echo html::linkButton($lang->goback, $app->session->storyList ? $app->session->storyList : inlink('view', "storyID=$story->id")); - ?> -
-
-
-
-
diff --git a/module/story/view/close.html.php b/module/story/view/close.html.php index ca2cc3884e..8a9c389b26 100644 --- a/module/story/view/close.html.php +++ b/module/story/view/close.html.php @@ -11,15 +11,15 @@ */ ?> -
-
-
+
+
+

icons['story']);?> id;?> createLink('story', 'view', "storyID=$story->id"), $story->title);?> - story->close;?> -

+ arrow . $lang->story->close;?> +
-
+ @@ -46,7 +46,7 @@
story->closedReason;?>
-
+
diff --git a/module/story/view/edit.html.php b/module/story/view/edit.html.php index 34c6a131e1..18a72bb565 100644 --- a/module/story/view/edit.html.php +++ b/module/story/view/edit.html.php @@ -11,20 +11,21 @@ */ ?> -
-
-
+
+ +
+

icons['story']);?> id;?> createLink('story', 'view', "storyID=$story->id"), $story->title, '', 'class="story-title"');?> - icons['edit']) . ' ' . $lang->story->edit;?> -

-
+ arrow . ' ' . $lang->story->edit;?> + +
save)?>
-
-
-
+
+
+
@@ -50,15 +51,15 @@
lastEditedDate); - echo html::submitButton($lang->save); - echo html::linkButton($lang->goback, $app->session->storyList ? $app->session->storyList : inlink('view', "storyID=$story->id")); + echo html::submitButton($lang->save, '', 'btn btn-wide btn-primary'); + echo html::linkButton($lang->goback, $app->session->storyList ? $app->session->storyList : inlink('view', "storyID=$story->id"), 'self', '', 'btn btn-wide'); ?>
-
-
+
+
story->legendBasicInfo;?> @@ -235,4 +236,5 @@ + diff --git a/module/story/view/linkstory.html.php b/module/story/view/linkstory.html.php index 9fa77c4cf6..1f3433b725 100644 --- a/module/story/view/linkstory.html.php +++ b/module/story/view/linkstory.html.php @@ -11,21 +11,26 @@ */ ?> -
-
-
+
+
+

icons['story']);?> id;?> createLink('story', 'view', "storyID=$story->id"), $story->title);?> - story->linkStory;?> -

-
+ arrow . $lang->story->linkStory;?> +
-
-
+
+ +
- + @@ -39,34 +44,32 @@ createLink('story', 'view', "storyID=$story2Link->id");?> - - + - - - - - - - - -
idAB;?> +
+ +
+ idAB;?> +
priAB;?> story->product;?> story->title;?>
- - id));?> + +
+ + + id));?> +
story->priList, $story2Link->pri, $story2Link->pri)?>'>story->priList, $story2Link->pri, $story2Link->pri);?> createLink('product', 'browse', "productID=$story2Link->product&branch=$story2Link->branch"), $products[$story2Link->product], '_blank');?> title, '_blank');?> planTitle;?>openedBy];?>openedBy);?> estimate;?>
-
- -
-
+ +
-
-
-
- icons['story']);?> id;?> - createLink('story', 'view', "storyID=$story->id"), $story->title);?> - icons['review']) . ' ' . $lang->story->review;?> +
+
+
+

+ id;?> + createLink('story', 'view', "storyID=$story->id"), $story->title);?> + arrow . $lang->story->review;?> +

+
+ + + + + + + + + + + + + + + + + + + + + + status == 'changed' or ($story->status == 'draft' and $story->version > 1)):?> + + + + + + + + + + + + + + + + + + + + + + + + + +
story->reviewedDate;?>
story->reviewResult;?>story->reviewResultList, '', 'class=form-control onchange="switchShow(this.value)"');?>
story->rejectedReason;?>story->reasonList, '', 'class=form-control onchange="setStory(this.value)"');?>
story->duplicateStory;?>
story->childStories;?>
story->preVersion;?>version - 1, 1), range($story->version - 1, 1)), $story->version - 1);?>
story->assignedTo;?>lastEditedBy ? $story->lastEditedBy : $story->openedBy, "class='form-control chosen'");?>
story->reviewedBy;?>user->account, "class='form-control' multiple data-placeholder='{$lang->story->chosen->reviewedBy}'");?>
story->comment;?>
story->checkAffection;?>
+ + goback, $app->session->storyList ? $app->session->storyList : inlink('view', "storyID=$story->id"));?> +
+
+
+
-
- - - - - - - - - - - - - - - - - - - - - - status == 'changed' or ($story->status == 'draft' and $story->version > 1)):?> - - - - - - - - - - - - - - - - - - - - - - - - - -
story->reviewedDate;?>
story->reviewResult;?>story->reviewResultList, '', 'class=form-control onchange="switchShow(this.value)"');?>
story->rejectedReason;?>story->reasonList, '', 'class=form-control onchange="setStory(this.value)"');?>
story->duplicateStory;?>
story->childStories;?>
story->preVersion;?>version - 1, 1), range($story->version - 1, 1)), $story->version - 1);?>
story->assignedTo;?>lastEditedBy ? $story->lastEditedBy : $story->openedBy, "class='form-control chosen'");?>
story->reviewedBy;?>user->account, "class='form-control' multiple data-placeholder='{$lang->story->chosen->reviewedBy}'");?>
story->comment;?>
story->checkAffection;?>
- - goback, $app->session->storyList ? $app->session->storyList : inlink('view', "storyID=$story->id"));?> -
-
-
-
diff --git a/module/story/view/tasks.html.php b/module/story/view/tasks.html.php index affda6a4c3..bf6632eac2 100644 --- a/module/story/view/tasks.html.php +++ b/module/story/view/tasks.html.php @@ -2,14 +2,14 @@ include '../../common/view/header.lite.html.php'; include '../../common/view/chart.html.php'; ?> -
-
- icons['report']);?> - story->tasks;?> +
+
+

+ icons['report']);?> + story->tasks;?> +

-
-
-
+
@@ -45,6 +45,6 @@ include '../../common/view/chart.html.php';
- +
diff --git a/module/story/view/zerocase.html.php b/module/story/view/zerocase.html.php index e7f9522f95..d9445bb681 100644 --- a/module/story/view/zerocase.html.php +++ b/module/story/view/zerocase.html.php @@ -12,13 +12,18 @@ ?> -
-
- +
+ +
- + @@ -28,7 +33,7 @@ - + @@ -37,25 +42,28 @@ $viewLink = $this->createLink('story', 'view', "storyID=$story->id"); $canView = common::hasPriv('story', 'view'); ?> - - + - + - - - + + - - - - -
idAB);?> +
+ +
+ idAB);?> +
priAB);?> story->title);?> story->planAB);?>story->estimateAB);?> statusAB);?> story->stageAB);?>actions;?>actions;?>
- - id)); else printf('%03d', $story->id);?> +
+
+ + + id);?> +
story->priList, $story->pri, $story->pri);?>'>story->priList, $story->pri, $story->pri)?>pri;?>'>story->priList, $story->pri)?> title);?> planTitle;?> story->sourceList[$story->source];?> openedBy];?> assignedTo];?> estimate;?>story->statusList[$story->status];?>story->stageList[$story->stage];?> + story->statusList, $story->status);?>story->stageList, $story->stage);?> id}"; - common::printIcon('story', 'change', $vars, $story, 'list', 'random'); - common::printIcon('story', 'review', $vars, $story, 'list', 'search'); + common::printIcon('story', 'change', $vars, $story, 'list', 'fork'); + common::printIcon('story', 'review', $vars, $story, 'list', 'glasses'); common::printIcon('story', 'close', $vars, $story, 'list', 'off'); common::printIcon('story', 'edit', $vars, $story, 'list', 'pencil'); common::printIcon('story', 'createCase', "productID=$story->product&module=0&from=¶m=0&$vars", $story, 'list', 'sitemap'); @@ -64,90 +72,71 @@
-
- - - createLink('story', 'batchEdit', "productID=$productID&projectID=0"); - ?> -
- edit, "onclick=\"setFormAction('$actionLink')\" $disabled");?> - - -
- -
-
+ + +
+
diff --git a/module/todo/view/edit.html.php b/module/todo/view/edit.html.php index 35cf1677bb..3cad6c1b03 100644 --- a/module/todo/view/edit.html.php +++ b/module/todo/view/edit.html.php @@ -15,11 +15,6 @@
-