diff --git a/VERSION b/VERSION index 072e6075b0..aca1f7a170 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -10.0.beta +10.0.alpha diff --git a/config/config.php b/config/config.php index 29b8779a8b..e0fdaa0492 100644 --- a/config/config.php +++ b/config/config.php @@ -16,7 +16,7 @@ if(!class_exists('config')){class config{}} if(!function_exists('getWebRoot')){function getWebRoot(){}} /* 基本设置。Basic settings. */ -$config->version = '10.0.beta'; // ZenTaoPHP的版本。 The version of ZenTaoPHP. Don't change it. +$config->version = '10.0.alpha'; // ZenTaoPHP的版本。 The version of ZenTaoPHP. Don't change it. $config->charset = 'UTF-8'; // ZenTaoPHP的编码。 The encoding of ZenTaoPHP. $config->cookieLife = time() + 2592000; // Cookie的生存时间。The cookie life time. $config->timezone = 'Asia/Shanghai'; // 时区设置。 The time zone setting, for more see http://www.php.net/manual/en/timezones.php. diff --git a/db/update10.0.beta.sql b/db/update9.8.3.sql similarity index 100% rename from db/update10.0.beta.sql rename to db/update9.8.3.sql diff --git a/module/branch/lang/en.php b/module/branch/lang/en.php index 4e3208250c..2b68dcc5f9 100644 --- a/module/branch/lang/en.php +++ b/module/branch/lang/en.php @@ -3,6 +3,7 @@ $lang->branch->common = 'Branch'; $lang->branch->manage = 'Manage a Branch'; $lang->branch->sort = 'Sort'; $lang->branch->delete = 'Delete Branch'; +$lang->branch->add = 'Add'; $lang->branch->manageTitle = '%s Management'; $lang->branch->all = 'All'; diff --git a/module/bug/js/browse.js b/module/bug/js/browse.js index 9e704131eb..07b9ece2ef 100644 --- a/module/bug/js/browse.js +++ b/module/bug/js/browse.js @@ -1,36 +1,34 @@ -$(document).ready(function() +$(function() { if(browseType == 'bysearch') ajaxGetSearchForm(); if($('#bugList thead th.w-title').width() < 150) $('#bugList thead th.w-title').width(150); if(flow == 'onlyTest') { - $('#modulemenu > .nav').append($('#featurebar > .submenu').html()); toggleSearch(); - $(".export").modalTrigger({width:650, type:'iframe'}); - $('#modulemenu > .nav > li').removeClass('active'); - $('#modulemenu > .nav > li[data-id=' + browseType + ']').addClass('active'); + $('#subNavbar > .nav > li').removeClass('active'); + $('#subNavbar > .nav > li[data-id=' + browseType + ']').addClass('active'); - var navWidth = $('#modulemenu > .nav').width(); + var navWidth = $('#subNavbar > .nav').width(); var leftWidth = 0; var rightWidth = 0; - $rightNav = $('#modulemenu > .nav > li.right'); + $rightNav = $('#subNavbar > .nav > li.right'); rightLength = $rightNav.length; for(i = 0; i < rightLength; i++) rightWidth += $rightNav.eq(i).width(); - var maxWidth = navWidth - $('#modulemenu > .nav > #bysearchTab').width() - rightWidth - 100; + var maxWidth = navWidth - $('#subNavbar > .nav > #bysearchTab').width() - rightWidth - 100; - $('#modulemenu > .nav > li:not(.right)').each(function() + $('#subNavbar > .nav > li:not(.right)').each(function() { if(leftWidth > maxWidth) { if($(this).attr('id') != 'moreMenus' && $(this).attr('id') != 'bysearchTab') { - $('#moreMenus').removeClass('hidden'); - $('#moreMenus > ul').append($(this)[0]); + $('#subNavbar').removeClass('hidden'); + $('#subNavbar > ul').append($(this)[0]); } } else diff --git a/module/bug/view/edit.html.php b/module/bug/view/edit.html.php index 828ba9f44c..30969d7b84 100644 --- a/module/bug/view/edit.html.php +++ b/module/bug/view/edit.html.php @@ -65,10 +65,13 @@ js::set('oldResolvedBuild' , $bug->resolvedBuild); -
fetch('file', 'buildform');?>
+
+
files;?>
+
fetch('file', 'buildform');?>
+
- lastEditedDate); echo html::submitButton('', '', 'btn btn-wide btn-primary'); $browseLink = $app->session->bugList != false ? $app->session->bugList : inlink('browse', "productID=$bug->product"); @@ -98,7 +101,7 @@ js::set('oldResolvedBuild' , $bug->resolvedBuild); bug->module;?>
- resolvedBuild); type != 'designchange') unset($lang->bug->typeList['designchange']); diff --git a/module/common/lang/en.php b/module/common/lang/en.php index 5fffaea4f4..3202635893 100644 --- a/module/common/lang/en.php +++ b/module/common/lang/en.php @@ -244,7 +244,7 @@ $lang->project->subMenu->list->tree = 'Tree View|project|tree|projectID=%s' $lang->project->subMenu->qa = new stdclass(); $lang->project->subMenu->qa->bug = 'Bug|project|bug|projectID=%s'; $lang->project->subMenu->qa->build = array('link' => 'Build|project|build|projectID=%s', 'subModule' => 'build'); -$lang->project->subMenu->qa->testtask = array('link' => 'Test Task|project|testtask|projectID=%s', 'subModule' => 'testreport'); +$lang->project->subMenu->qa->testtask = array('link' => 'Test Task|project|testtask|projectID=%s', 'subModule' => 'testreport,testtask'); $lang->project->subMenu->action = new stdclass(); $lang->project->subMenu->action->dynamic = 'Dynamic|project|dynamic|projectID=%s'; diff --git a/module/common/lang/zh-cn.php b/module/common/lang/zh-cn.php index d2972083e9..acadfbb153 100644 --- a/module/common/lang/zh-cn.php +++ b/module/common/lang/zh-cn.php @@ -244,7 +244,7 @@ $lang->project->subMenu->list->tree = '树状图|project|tree|projectID=%s' $lang->project->subMenu->qa = new stdclass(); $lang->project->subMenu->qa->bug = 'Bug|project|bug|projectID=%s'; $lang->project->subMenu->qa->build = array('link' => '版本|project|build|projectID=%s', 'subModule' => 'build'); -$lang->project->subMenu->qa->testtask = array('link' => '测试单|project|testtask|projectID=%s', 'subModule' => 'testreport'); +$lang->project->subMenu->qa->testtask = array('link' => '测试单|project|testtask|projectID=%s', 'subModule' => 'testreport,testtask'); $lang->project->subMenu->action = new stdclass(); $lang->project->subMenu->action->dynamic = '动态|project|dynamic|projectID=%s'; diff --git a/module/company/view/browse.html.php b/module/company/view/browse.html.php index f037d4dfde..2118e729a2 100644 --- a/module/company/view/browse.html.php +++ b/module/company/view/browse.html.php @@ -114,7 +114,7 @@ js::set('confirmDelete', $lang->user->confirmDelete); diff --git a/module/doc/lang/en.php b/module/doc/lang/en.php index ced9d1739e..f503f5dd1a 100644 --- a/module/doc/lang/en.php +++ b/module/doc/lang/en.php @@ -43,13 +43,21 @@ $lang->doc->download = 'Download'; $lang->doc->acl = 'Right'; $lang->doc->groups = 'Groups'; $lang->doc->users = 'Users'; +$lang->doc->item = 'Item'; +$lang->doc->searchResult = 'Search Result'; $lang->doc->moduleDoc = 'By Module'; $lang->doc->searchDoc = 'Search'; +$lang->doc->fast = 'Fast access'; $lang->doc->allDoc = 'All'; $lang->doc->openedByMe = 'My'; $lang->doc->orderByOpen = 'Recently Added'; -$lang->doc->orderByEdit = 'Recently Modifie'; +$lang->doc->orderByEdit = 'Recently Modified'; +$lang->doc->orderByVisit = 'Recently Visited'; +$lang->doc->todayEdited = 'Today Modified'; +$lang->doc->pastEdited = 'Past Modified'; +$lang->doc->myDoc = 'My Doc'; +$lang->doc->myCollection = 'My Collection'; /* 方法列表。*/ $lang->doc->index = 'Home'; @@ -65,6 +73,7 @@ $lang->doc->editType = 'Edit'; $lang->doc->deleteType = 'Delete'; $lang->doc->addType = 'Add'; $lang->doc->childType = 'Child'; +$lang->doc->collect = 'Collect'; $lang->doc->libName = 'Name'; $lang->doc->libType = 'Category'; @@ -109,11 +118,7 @@ $lang->doc->contentTypeList['markdown'] = 'MarkDown'; $lang->doc->browseType = 'Categories'; $lang->doc->browseTypeList['list'] = 'List'; -$lang->doc->browseTypeList['menu'] = 'Menu'; -$lang->doc->browseTypeList['tree'] = 'Tree'; -$lang->doc->browseTypeList['card'] = 'Card'; - -$lang->doc->orderByOpen = 'Recently Added'; +$lang->doc->browseTypeList['grid'] = 'Card'; $lang->doc->fastMenuList['byediteddate'] = 'Recently Modified'; //$lang->doc->fastMenuList['visiteddate'] = 'Recently Visited'; diff --git a/module/extension/lang/en.php b/module/extension/lang/en.php index 2af84fa41e..dab8600538 100644 --- a/module/extension/lang/en.php +++ b/module/extension/lang/en.php @@ -105,6 +105,7 @@ $lang->extension->errorDownloadPathNotWritable = 'Extensiond ownload path extension->errorPackageFileExists = '%s has existed in the download path.
Please %s it again, CLICK HERE
'; $lang->extension->errorDownloadFailed = 'Download failed. Please try it again. If still not OK, try to download it manually and upload it to install.'; $lang->extension->errorMd5Checking = 'Incomplete File. Please download it again. If still not OK, try to download it manually and upload it to install.'; +$lang->extension->errorCheckIncompatible = 'Incompatible with this version of ZenTao. It may not be used %s later.
You can choose to force%s or cancel
'; $lang->extension->errorFileConflicted = '
%s
is conflicted with others. Choose Override or Cancel
'; $lang->extension->errorPackageNotFound = '%s is not found. Downloading might be failed. Please download it again.'; $lang->extension->errorTargetPathNotWritable = '%s is not writable.'; diff --git a/module/group/lang/resource.php b/module/group/lang/resource.php index 3fe33652bb..6867315868 100644 --- a/module/group/lang/resource.php +++ b/module/group/lang/resource.php @@ -691,6 +691,7 @@ $lang->resource->doc->allLibs = 'allLibs'; $lang->resource->doc->objectLibs = 'objectLibs'; $lang->resource->doc->showFiles = 'showFiles'; $lang->resource->doc->sort = 'sort'; +$lang->resource->doc->collect = 'collect'; //$lang->resource->doc->diff = 'diff'; $lang->doc->methodOrder[0] = 'index'; @@ -706,6 +707,7 @@ $lang->doc->methodOrder[45] = 'allLibs'; $lang->doc->methodOrder[50] = 'showFiles'; $lang->doc->methodOrder[55] = 'objectLibs'; $lang->doc->methodOrder[60] = 'sort'; +$lang->doc->methodOrder[65] = 'collect'; //$lang->doc->methodOrder[55] = 'diff'; /* mail. */ diff --git a/module/project/js/managemembers.js b/module/project/js/managemembers.js index c3b51f2dad..82257a19d8 100644 --- a/module/project/js/managemembers.js +++ b/module/project/js/managemembers.js @@ -13,11 +13,11 @@ function setRole(account, roleID) roleOBJ.val(role) // set the role. } -function addItem() +function addItem(obj) { var item = $('#addItem').html().replace(/%i%/g, i); - $('#teamForm table tbody').append('' + item + ''); - var accounts = $('#submit').closest('table').find('tr.addedItem:last').find('select:first') + $(obj).closest('tr').after('' + item + ''); + var accounts = $('#hours' + i).closest('tr').find('select:first') accounts.trigger('liszt:updated'); accounts.chosen(); i ++; diff --git a/module/project/lang/en.php b/module/project/lang/en.php index 9914171d1c..1605ad42dc 100644 --- a/module/project/lang/en.php +++ b/module/project/lang/en.php @@ -23,6 +23,7 @@ $lang->project->days = 'Man-Day'; $lang->project->day = 'day'; $lang->project->workHour = 'Hour(s)'; $lang->project->totalHours = 'Working Hour(s)'; +$lang->project->totalDays = 'Working Day(s)'; $lang->project->status = 'Status'; $lang->project->desc = 'Desc'; $lang->project->owner = 'Owner'; @@ -56,6 +57,8 @@ $lang->project->delayed = 'Delayed'; $lang->project->product = $lang->project->products; $lang->project->readjustTime = 'Adjust project begin and end time'; $lang->project->readjustTask = 'Adjust task start date and deadline'; +$lang->project->effort = 'Effort'; +$lang->project->relatedMember = 'Related Member'; $lang->project->start = 'Start'; $lang->project->activate = 'Activate'; @@ -118,6 +121,7 @@ $lang->project->burnData = 'Burndown Data'; $lang->project->fixFirst = 'Edit Man-hour of 1st Day'; $lang->project->team = 'Team Member'; $lang->project->doc = 'Doc'; +$lang->project->doclib = 'Doc Library'; $lang->project->manageProducts = 'Link ' . $lang->productCommon; $lang->project->linkStory = 'Link Story'; $lang->project->linkStoryByPlan = 'Link Story From Plan'; @@ -187,6 +191,8 @@ $lang->project->aboveAllProject = "All the above {$lang->projectCommon}"; /* 页面提示。*/ $lang->project->selectProject = "Select {$lang->projectCommon}"; $lang->project->beginAndEnd = 'Duration'; +$lang->project->begin = 'Begin'; +$lang->project->end = 'End'; $lang->project->lblStats = 'Man-Hour Summary(h) : '; $lang->project->stats = '%s Available, %s Total Estimated, %s Cost, %s Left.'; $lang->project->taskSummary = "Tasks on this page : %s Total, %s Wait, %s Doing;     Hours : %s Est., %s Cost, %s Left."; @@ -246,6 +252,8 @@ $lang->project->charts->burn->graph->formatNumber = 0; $lang->project->charts->burn->graph->animation = 0; $lang->project->charts->burn->graph->rotateNames = 1; $lang->project->charts->burn->graph->showValues = 0; +$lang->project->charts->burn->graph->reference = 'Reference'; +$lang->project->charts->burn->graph->actuality = 'Actuality'; $lang->project->placeholder = new stdclass(); $lang->project->placeholder->code = 'Abbreviation of project name'; diff --git a/module/project/view/managemembers.html.php b/module/project/view/managemembers.html.php index ecf3a99786..c0efa66c44 100644 --- a/module/project/view/managemembers.html.php +++ b/module/project/view/managemembers.html.php @@ -58,8 +58,7 @@ team->limitedList, $member->limited);?> - - + @@ -76,7 +75,7 @@ team->limitedList, 'no');?> - + @@ -95,7 +94,7 @@ team->limitedList, 'no');?> - + @@ -114,15 +113,15 @@ team->limitedList, 'no');?> - + + -
@@ -139,7 +138,7 @@ team->limitedList, $member->realname ? $member->limited : 'no');?> - + diff --git a/module/project/view/team.html.php b/module/project/view/team.html.php index 900981e28c..a52de7a8c0 100644 --- a/module/project/view/team.html.php +++ b/module/project/view/team.html.php @@ -31,7 +31,7 @@
-
+ diff --git a/module/search/lang/en.php b/module/search/lang/en.php index 0868ec317f..7c005f8309 100644 --- a/module/search/lang/en.php +++ b/module/search/lang/en.php @@ -17,7 +17,7 @@ $lang->search->group1 = 'Group 1'; $lang->search->group2 = 'Group 2'; $lang->search->buildForm = 'Search Form'; $lang->search->buildQuery = 'Execute Query'; -$lang->search->saveQuery = 'Save Query'; +$lang->search->savedQuery = 'Save Query'; $lang->search->deleteQuery = 'Delete Query'; $lang->search->setQueryTitle = 'Enter the query title. Save it After searching.'; $lang->search->select = 'Stories/Tasks Filter'; diff --git a/module/task/css/create.css b/module/task/css/create.css index e69de29bb2..ce475de180 100644 --- a/module/task/css/create.css +++ b/module/task/css/create.css @@ -0,0 +1 @@ +#copyButton {width: 56px; background-color: #f1f1f1; opacity: 1;} /*Adjust for task #4151;*/ diff --git a/module/task/js/create.js b/module/task/js/create.js index cd27e25ae8..d52f937445 100644 --- a/module/task/js/create.js +++ b/module/task/js/create.js @@ -75,6 +75,7 @@ function setPreview() { $('#preview').addClass('hidden'); $('#copyButton').addClass('hidden'); + $('div.colorpicker').css('right', '1px');//Adjust for task #4151; } else { @@ -84,6 +85,7 @@ function setPreview() $('#preview').removeClass('hidden'); $('#preview a').attr('href', storyLink); $('#copyButton').removeClass('hidden'); + $('div.colorpicker').css('right', '57px');//Adjust for task #4151; } setAfter(); diff --git a/module/task/lang/en.php b/module/task/lang/en.php index fc98f44e11..69eeef69c1 100644 --- a/module/task/lang/en.php +++ b/module/task/lang/en.php @@ -110,13 +110,15 @@ $lang->task->parentAB = 'Parent Task'; $lang->task->lblPri = 'P'; $lang->task->lblHour = '(h)'; -$lang->task->ditto = 'Ditto'; -$lang->task->dittoNotice = "This Task does not belong to the Project as the previous one does!"; -$lang->task->selectAllUser = 'All'; -$lang->task->noStory = 'No Story'; -$lang->task->noAssigned = 'Unassigned'; -$lang->task->noFinished = 'Unfinished'; -$lang->task->noClosed = 'Unclosed'; +$lang->task->ditto = 'Ditto'; +$lang->task->dittoNotice = "This Task does not belong to the Project as the previous one does!"; +$lang->task->selectAllUser = 'All'; +$lang->task->noStory = 'No Story'; +$lang->task->noAssigned = 'Unassigned'; +$lang->task->noFinished = 'Unfinished'; +$lang->task->noClosed = 'Unclosed'; +$lang->task->yesterdayFinished = 'Finishied Yesterday'; +$lang->task->allTasks = 'All Tasks'; $lang->task->statusList[''] = ''; $lang->task->statusList['wait'] = 'Wait'; diff --git a/module/task/view/create.html.php b/module/task/view/create.html.php index 800896dde0..31b58f0ef1 100644 --- a/module/task/view/create.html.php +++ b/module/task/view/create.html.php @@ -66,13 +66,13 @@
task->name;?> -
+
- +
name, "class='form-control' autocomplete='off' required");?> config->global->flow != 'onlyTask'):?> diff --git a/module/task/view/edit.html.php b/module/task/view/edit.html.php index 97c8ecd5e7..62b10dc45a 100644 --- a/module/task/view/edit.html.php +++ b/module/task/view/edit.html.php @@ -30,26 +30,31 @@
-
-
-
-
- - - +
+
task->name;?>
+
+
+
'> +
+
+ + + +
+ name, 'class="form-control task-name" autocomplete="off" placeholder="' . $lang->task->name . '"');?> +
+ children) and empty($task->parent) and $task->type != 'affair'):?> + +
+ team) ? '' : 'checked';?> /> + +
+
+
- name, 'class="form-control task-name" autocomplete="off" placeholder="' . $lang->task->name . '"');?>
- children) and empty($task->parent) and $task->type != 'affair'):?> - -
- team) ? '' : 'checked';?> /> - -
-
-
diff --git a/module/testcase/js/browse.js b/module/testcase/js/browse.js index 8314bf1fb0..665a02bfb2 100644 --- a/module/testcase/js/browse.js +++ b/module/testcase/js/browse.js @@ -21,20 +21,18 @@ function confirmBatchDelete(actionLink) return false; } -$(document).ready(function() +$(function() { if(browseType == 'bysearch') ajaxGetSearchForm(); if($('#caseList thead th.w-title').width() < 150) $('#caseList thead th.w-title').width(150); if(flow == 'onlyTest') { - $('#modulemenu > .nav').append($('#mainMenu > .pull-left.btn-toolbar').html()); - toggleSearch(); $('.export').modalTrigger({width:650, type:'iframe', afterShown: setCheckedCookie}) - $('#modulemenu > .nav > li').removeClass('active'); - $('#modulemenu > .nav > li[data-id=' + browseType + ']').addClass('active'); + $('#subNavbar > .nav > li').removeClass('active'); + $('#subNavbar > .nav > li[data-id=' + browseType + ']').addClass('active'); } }); diff --git a/module/testcase/lang/en.php b/module/testcase/lang/en.php index 81fbdbd179..8c807fd686 100644 --- a/module/testcase/lang/en.php +++ b/module/testcase/lang/en.php @@ -190,8 +190,8 @@ $lang->testcase->noFunction = 'Iconv and mb_convert_encoding is not found. $lang->testcase->noRequire = "Row %s has“%s”which is a required field and it should not be blank."; $lang->testcase->noLibrary = "No library exists. Please create one first."; $lang->testcase->mustChooseResult = 'Review result is required.'; -$lang->testcase->noCase = 'No Case. You could '; $lang->testcase->noModule = '
You have no modules
Manage now
'; +$lang->testcase->noCase = 'No Case. You could '; $lang->testcase->searchStories = 'Enter to searcu Story'; $lang->testcase->selectLib = 'Select Library'; diff --git a/module/testcase/view/edit.html.php b/module/testcase/view/edit.html.php index 0cb2574e07..38d55cfc5f 100644 --- a/module/testcase/view/edit.html.php +++ b/module/testcase/view/edit.html.php @@ -117,8 +117,9 @@
testcase->legendComment;?>
-
- fetch('file', 'buildform');?> +
+
files;?>
+
fetch('file', 'buildform');?>
lastEditedDate);?> diff --git a/module/todo/lang/en.php b/module/todo/lang/en.php index 547bc569cd..676a55002b 100644 --- a/module/todo/lang/en.php +++ b/module/todo/lang/en.php @@ -94,17 +94,10 @@ $lang->todo->lblClickCreate = "Clict to add todo"; $lang->todo->noTodo = 'No this type of Todo.'; $lang->todo->noAssignedTo = "The AssignedTo user can't be empty."; -$lang->todo->periods['today'] = 'Today'; -$lang->todo->periods['yesterday'] = 'Yesterday'; -$lang->todo->periods['thisWeek'] = 'ThisWeek'; -$lang->todo->periods['lastWeek'] = 'LastWeek'; -$lang->todo->periods['thisMonth'] = 'ThisMonth'; -$lang->todo->periods['lastmonth'] = 'LastMonth'; -$lang->todo->periods['thisSeason'] = 'ThisQuarter'; +$lang->todo->periods['all'] = 'All'; $lang->todo->periods['thisYear'] = 'ThisYear'; $lang->todo->periods['future'] = 'Pending'; $lang->todo->periods['before'] = 'Unfinished'; -$lang->todo->periods['all'] = 'All'; $lang->todo->periods['cycle'] = 'Cycle'; $lang->todo->action = new stdclass(); diff --git a/module/tree/view/ajaxgetdropmenu.html.php b/module/tree/view/ajaxgetdropmenu.html.php index 199b24fecd..67a1cdd893 100644 --- a/module/tree/view/ajaxgetdropmenu.html.php +++ b/module/tree/view/ajaxgetdropmenu.html.php @@ -6,6 +6,11 @@ $module) { + if(empty($module)) + { + $module = '/'; + $modulesPinyin[$module] = ''; + } echo html::a(sprintf($link, $productID, $moduleID), $module, '', "data-key='{$modulesPinyin[$module]}'"); } ?>