Adds subtasking (#443) including:
* priority, start/due dates, progress, estimate, spent time roll-up to parent issues * descendant issues tree displayed on the issue view with context menu support * issue tree display on the gantt chart * issue tree copy on project copy * unlimited nesting Defining subtasks requires the new permission 'Manage subtasks'. Subtasks can not belong to a different project than the parent task. Implementation is based on scoped nested sets for fast reads and updates. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3573 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
1 parent
e109c9b6b6
commit
8e3d1b694a
28 files changed
+855
-93
No files matched your search
@@ -237,6 +237,13 @@ p.breadcrumb { font-size: 0.9em; margin: 4px 0 4px 0;}
|
||||
p.subtitle { font-size: 0.9em; margin: -6px 0 12px 0; font-style: italic; }
|
||||
p.footnote { font-size: 0.9em; margin-top: 0px; margin-bottom: 0px; }
|
||||
|
||||
div.issue div.subject div div { padding-left: 16px; }
|
||||
div.issue div.subject p {margin: 0; margin-bottom: 0.1em; font-size: 90%; color: #999;}
|
||||
div.issue div.subject>div>p { margin-top: 0.5em; }
|
||||
div.issue div.subject h3 {margin: 0; margin-bottom: 0.1em;}
|
||||
|
||||
#issue_tree table.issues { border: 0; }
|
||||
|
||||
fieldset.collapsible { border-width: 1px 0 0 0; font-size: 0.9em; }
|
||||
fieldset.collapsible legend { padding-left: 16px; background: url(../images/arrow_expanded.png) no-repeat 0% 40%; cursor:pointer; }
|
||||
fieldset.collapsible.collapsed legend { background-image: url(../images/arrow_collapsed.png); }
|
||||
@@ -588,8 +595,7 @@ button.tab-right {
|
||||
/***** Auto-complete *****/
|
||||
div.autocomplete {
|
||||
position:absolute;
|
||||
width:250px;
|
||||
background-color:white;
|
||||
width:400px;
|
||||
margin:0;
|
||||
padding:0;
|
||||
}
|
||||
@@ -598,23 +604,26 @@ div.autocomplete ul {
|
||||
margin:0;
|
||||
padding:0;
|
||||
}
|
||||
div.autocomplete ul li.selected { background-color: #ffb;}
|
||||
div.autocomplete ul li {
|
||||
list-style-type:none;
|
||||
display:block;
|
||||
margin:0;
|
||||
margin:-1px 0 0 0;
|
||||
padding:2px;
|
||||
cursor:pointer;
|
||||
font-size: 90%;
|
||||
border-bottom: 1px solid #ccc;
|
||||
border: 1px solid #ccc;
|
||||
border-left: 1px solid #ccc;
|
||||
border-right: 1px solid #ccc;
|
||||
background-color:white;
|
||||
}
|
||||
div.autocomplete ul li.selected { background-color: #ffb;}
|
||||
div.autocomplete ul li span.informal {
|
||||
font-size: 80%;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
#parent_issue_candidates ul li {width: 500px;}
|
||||
|
||||
/***** Diff *****/
|
||||
.diff_out { background: #fcc; }
|
||||
.diff_in { background: #cfc; }
|
||||
@@ -741,6 +750,12 @@ background-image:url('../images/close_hl.png');
|
||||
.task_late { background:#f66 url(../images/task_late.png); border: 1px solid #f66; }
|
||||
.task_done { background:#66f url(../images/task_done.png); border: 1px solid #66f; }
|
||||
.task_todo { background:#aaa url(../images/task_todo.png); border: 1px solid #aaa; }
|
||||
|
||||
.task_todo.parent { background: #888; border: 1px solid #888; height: 6px;}
|
||||
.task_late.parent, .task_done.parent { height: 3px;}
|
||||
.task_todo.parent .left { position: absolute; background: url(../images/task_parent_end.png) no-repeat 0 0; width: 8px; height: 16px; margin-left: -5px; left: 0px; top: -1px;}
|
||||
.task_todo.parent .right { position: absolute; background: url(../images/task_parent_end.png) no-repeat 0 0; width: 8px; height: 16px; margin-right: -5px; right: 0px; top: -1px;}
|
||||
|
||||
.milestone { background-image:url(../images/milestone.png); background-repeat: no-repeat; border: 0; }
|
||||
|
||||
/***** Icons *****/
|
||||
|
||||
Reference in new issue
Block a user