Almirah 0.4.2 → 0.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/almirah +2 -2
- data/lib/almirah/doc_fabric.rb +7 -0
- data/lib/almirah/doc_items/blockquote.rb +15 -16
- data/lib/almirah/doc_items/code_block.rb +19 -21
- data/lib/almirah/doc_items/controlled_paragraph.rb +2 -2
- data/lib/almirah/doc_items/controlled_table.rb +11 -11
- data/lib/almirah/doc_items/controlled_table_row.rb +15 -18
- data/lib/almirah/doc_items/doc_footer.rb +10 -13
- data/lib/almirah/doc_items/doc_item.rb +2 -2
- data/lib/almirah/doc_items/heading.rb +1 -1
- data/lib/almirah/doc_items/image.rb +25 -27
- data/lib/almirah/doc_items/markdown_list.rb +2 -2
- data/lib/almirah/doc_items/markdown_table.rb +9 -2
- data/lib/almirah/doc_items/scope_table.rb +188 -0
- data/lib/almirah/doc_items/text_line.rb +26 -22
- data/lib/almirah/doc_items/todo_block.rb +15 -16
- data/lib/almirah/doc_items/work_item.rb +129 -0
- data/lib/almirah/doc_parser.rb +14 -8
- data/lib/almirah/doc_types/base_document.rb +21 -5
- data/lib/almirah/doc_types/coverage.rb +3 -3
- data/lib/almirah/doc_types/critical_chain_page.rb +218 -0
- data/lib/almirah/doc_types/decision.rb +152 -7
- data/lib/almirah/doc_types/decision_grouping.rb +17 -0
- data/lib/almirah/doc_types/decisions_overview.rb +591 -31
- data/lib/almirah/doc_types/implementation.rb +98 -98
- data/lib/almirah/doc_types/index.rb +11 -12
- data/lib/almirah/doc_types/persistent_document.rb +1 -1
- data/lib/almirah/doc_types/planning_dates.rb +17 -0
- data/lib/almirah/doc_types/protocol.rb +16 -20
- data/lib/almirah/doc_types/source_file.rb +1 -1
- data/lib/almirah/doc_types/traceability.rb +124 -133
- data/lib/almirah/dom/doc_section.rb +1 -1
- data/lib/almirah/navigation_pane.rb +9 -13
- data/lib/almirah/project/critical_chain.rb +117 -0
- data/lib/almirah/project/doc_linker.rb +4 -4
- data/lib/almirah/project/fever_chart.rb +94 -0
- data/lib/almirah/project/project_data.rb +8 -2
- data/lib/almirah/project/work_item_scheduler.rb +166 -0
- data/lib/almirah/project/working_calendar.rb +112 -0
- data/lib/almirah/project.rb +146 -9
- data/lib/almirah/project_configuration.rb +126 -29
- data/lib/almirah/project_template.rb +6 -6
- data/lib/almirah/project_utility.rb +3 -5
- data/lib/almirah/search/specifications_db.rb +2 -2
- data/lib/almirah/source_file_parser.rb +2 -3
- data/lib/almirah/templates/css/main.css +160 -0
- data/lib/almirah/templates/scripts/main.js +3 -1
- data/lib/almirah.rb +1 -2
- metadata +11 -2
|
@@ -77,6 +77,9 @@ table.markdown_table td{
|
|
|
77
77
|
table.markdown_table tr.current_status td {
|
|
78
78
|
background-color: #ffffee;
|
|
79
79
|
}
|
|
80
|
+
table.markdown_table td.scope_date {
|
|
81
|
+
white-space: nowrap;
|
|
82
|
+
}
|
|
80
83
|
table.controlled{
|
|
81
84
|
border: 1px solid #e4e4e4;
|
|
82
85
|
border-collapse: collapse;
|
|
@@ -144,6 +147,163 @@ table.controlled td.item_text{
|
|
|
144
147
|
max-width: 100%;
|
|
145
148
|
max-height: 300px;
|
|
146
149
|
}
|
|
150
|
+
.workitem_gantt {
|
|
151
|
+
--gantt-owner-width: 120px;
|
|
152
|
+
--gantt-day-width: 26px;
|
|
153
|
+
--gantt-month-h: 18px;
|
|
154
|
+
overflow: auto;
|
|
155
|
+
max-height: 420px;
|
|
156
|
+
margin-bottom: 16px;
|
|
157
|
+
border: 1px solid #e1e4e8;
|
|
158
|
+
}
|
|
159
|
+
.workitem_gantt .gantt_grid {
|
|
160
|
+
display: grid;
|
|
161
|
+
gap: 0;
|
|
162
|
+
width: max-content;
|
|
163
|
+
padding: 4px;
|
|
164
|
+
}
|
|
165
|
+
.workitem_gantt .gantt_corner,
|
|
166
|
+
.workitem_gantt .gantt_owner,
|
|
167
|
+
.workitem_gantt .gantt_owner_tracking,
|
|
168
|
+
.workitem_gantt .gantt_band_corner,
|
|
169
|
+
.workitem_gantt .gantt_buffer {
|
|
170
|
+
position: sticky;
|
|
171
|
+
left: 0;
|
|
172
|
+
background: #fff;
|
|
173
|
+
padding: 2px 8px;
|
|
174
|
+
font-weight: 600;
|
|
175
|
+
white-space: nowrap;
|
|
176
|
+
border-right: 1px solid #e1e4e8;
|
|
177
|
+
z-index: 2;
|
|
178
|
+
}
|
|
179
|
+
.workitem_gantt .gantt_corner {
|
|
180
|
+
top: 0;
|
|
181
|
+
border-bottom: 1px solid #bbb;
|
|
182
|
+
z-index: 3;
|
|
183
|
+
}
|
|
184
|
+
.workitem_gantt .gantt_month_head {
|
|
185
|
+
position: sticky;
|
|
186
|
+
top: 0;
|
|
187
|
+
background: #fff;
|
|
188
|
+
text-align: center;
|
|
189
|
+
font-size: 11px;
|
|
190
|
+
font-weight: 600;
|
|
191
|
+
color: #57606a;
|
|
192
|
+
border-bottom: 1px solid #e1e4e8;
|
|
193
|
+
border-left: 1px solid #d0d7de;
|
|
194
|
+
white-space: nowrap;
|
|
195
|
+
overflow: hidden;
|
|
196
|
+
z-index: 1;
|
|
197
|
+
}
|
|
198
|
+
.workitem_gantt .gantt_day_head {
|
|
199
|
+
position: sticky;
|
|
200
|
+
top: var(--gantt-month-h);
|
|
201
|
+
background: #fff;
|
|
202
|
+
text-align: center;
|
|
203
|
+
font-size: 11px;
|
|
204
|
+
color: #57606a;
|
|
205
|
+
border-bottom: 1px solid #bbb;
|
|
206
|
+
z-index: 1;
|
|
207
|
+
}
|
|
208
|
+
/* Weekday-holiday highlight in the Chart.js palette red (ADR-205 amendment):
|
|
209
|
+
the column carries the buffer bar's diagonal stripe texture, in red; the
|
|
210
|
+
header stays a solid tint so the day number reads. */
|
|
211
|
+
.workitem_gantt .gantt_day_head.gantt_nonworking { background: rgba(255, 99, 132, 0.22); color: #b23a52; }
|
|
212
|
+
.workitem_gantt .gantt_day_head.gantt_friday { background: rgb(225, 241, 250); }
|
|
213
|
+
.workitem_gantt .gantt_nonworking_col {
|
|
214
|
+
background: repeating-linear-gradient(45deg,
|
|
215
|
+
rgba(255, 99, 132, 0.20), rgba(255, 99, 132, 0.20) 5px,
|
|
216
|
+
rgba(255, 99, 132, 0.07) 5px, rgba(255, 99, 132, 0.07) 10px);
|
|
217
|
+
}
|
|
218
|
+
.workitem_gantt .gantt_friday_col { background: rgb(225, 241, 250); }
|
|
219
|
+
.workitem_gantt .gantt_bar,
|
|
220
|
+
.workitem_gantt .gantt_track_bar {
|
|
221
|
+
font-size: 11px;
|
|
222
|
+
line-height: 1.5;
|
|
223
|
+
margin: 1px;
|
|
224
|
+
padding: 1px 5px;
|
|
225
|
+
border-radius: 3px;
|
|
226
|
+
overflow: hidden;
|
|
227
|
+
white-space: nowrap;
|
|
228
|
+
text-overflow: ellipsis;
|
|
229
|
+
color: #fff;
|
|
230
|
+
cursor: default;
|
|
231
|
+
}
|
|
232
|
+
.workitem_gantt .gantt_todo { background: #9aa5b1; }
|
|
233
|
+
.workitem_gantt .gantt_inprogress { background: #ffffdd; color: #333; box-shadow: inset 0 0 0 1px #bbb; }
|
|
234
|
+
.workitem_gantt .gantt_done { background: #cfc; color: #57606a; box-shadow: inset 0 0 0 1px #e1e4e8; }
|
|
235
|
+
.workitem_gantt .gantt_blocked { box-shadow: inset 0 0 0 1px #bbb; }
|
|
236
|
+
.workitem_gantt .gantt_critical { outline: 1px solid #9a6700; outline-offset: -1px; } /* buffer-bar amber (dark) */
|
|
237
|
+
.workitem_gantt .gantt_release_band {
|
|
238
|
+
text-align: center;
|
|
239
|
+
font-size: 11px;
|
|
240
|
+
font-weight: 600;
|
|
241
|
+
color: #57606a;
|
|
242
|
+
background: #eef1f4;
|
|
243
|
+
border-bottom: 1px solid #e1e4e8;
|
|
244
|
+
border-left: 1px solid #d0d7de;
|
|
245
|
+
padding: 2px 4px;
|
|
246
|
+
white-space: nowrap;
|
|
247
|
+
overflow: hidden;
|
|
248
|
+
text-overflow: ellipsis;
|
|
249
|
+
}
|
|
250
|
+
.workitem_gantt .gantt_buffer { color: #9a6700; }
|
|
251
|
+
.critical_chain { margin-bottom: 16px; }
|
|
252
|
+
.critical_chain h2 { font-size: 1.1em; margin-bottom: 6px; }
|
|
253
|
+
.critical_chain .cc_group { margin: 8px 0; }
|
|
254
|
+
.critical_chain .cc_group h3 { font-size: 0.95em; margin: 4px 0; }
|
|
255
|
+
.critical_chain table.cc_chain { border-collapse: collapse; margin: 4px 0; }
|
|
256
|
+
.critical_chain table.cc_chain th,
|
|
257
|
+
.critical_chain table.cc_chain td { border: 1px solid #e1e4e8; padding: 2px 8px; text-align: left; font-size: 12px; }
|
|
258
|
+
.critical_chain .cc_buffer,
|
|
259
|
+
.critical_chain .cc_consumed,
|
|
260
|
+
.critical_chain .cc_projected,
|
|
261
|
+
.critical_chain .cc_finish { margin: 2px 0; font-size: 12px; }
|
|
262
|
+
.critical_chain .cc_consumed { color: #57606a; }
|
|
263
|
+
.critical_chain .cc_finish { font-weight: 600; }
|
|
264
|
+
.critical_chain .cc_unestimated { color: #9a6700; font-style: italic; font-size: 12px; }
|
|
265
|
+
.critical_chain .cc_group_body { display: flex; flex-wrap: wrap; gap: 24px; align-items: flex-start; }
|
|
266
|
+
.critical_chain .cc_plan { flex: 1 1 320px; }
|
|
267
|
+
.critical_chain .cc_fever { flex: 1 1 360px; max-width: 480px; height: 320px; position: relative; }
|
|
268
|
+
.critical_chain .cc_fever .fever_canvas { width: 100%; height: 100%; }
|
|
269
|
+
.workitem_gantt .gantt_buffer_bar {
|
|
270
|
+
font-size: 11px;
|
|
271
|
+
line-height: 1.5;
|
|
272
|
+
margin: 1px;
|
|
273
|
+
padding: 1px 5px;
|
|
274
|
+
border-radius: 3px;
|
|
275
|
+
text-align: center;
|
|
276
|
+
overflow: hidden;
|
|
277
|
+
white-space: nowrap;
|
|
278
|
+
text-overflow: ellipsis;
|
|
279
|
+
color: #9a6700;
|
|
280
|
+
background: repeating-linear-gradient(45deg, #ffe9b3, #ffe9b3 5px, #fff3d4 5px, #fff3d4 10px);
|
|
281
|
+
box-shadow: inset 0 0 0 1px #e0c068;
|
|
282
|
+
cursor: default;
|
|
283
|
+
}
|
|
284
|
+
.workitem_gantt .gantt_today { border-left: 2px solid #d33; z-index: 5; pointer-events: none; }
|
|
285
|
+
/* Plan-vs-actual tracking lanes (ADR-213): hidden until the toolbar toggle adds
|
|
286
|
+
show-actuals; a hidden lane's grid tracks collapse to zero height. */
|
|
287
|
+
.workitem_gantt .gantt_tracking_lane { display: none; }
|
|
288
|
+
.workitem_gantt.show-actuals .gantt_tracking_lane { display: block; }
|
|
289
|
+
.workitem_gantt .gantt_owner_tracking { font-weight: 400; font-style: italic; color: #57606a; }
|
|
290
|
+
.workitem_gantt .gantt_track_committed { background: #b0b6bd; }
|
|
291
|
+
.workitem_gantt .gantt_track_logged { background: #36a2eb; }
|
|
292
|
+
.gantt_container .gantt_toolbar {
|
|
293
|
+
display: flex;
|
|
294
|
+
justify-content: flex-end;
|
|
295
|
+
gap: 6px;
|
|
296
|
+
padding: 4px 0;
|
|
297
|
+
}
|
|
298
|
+
.gantt_container .gantt_actuals_toggle {
|
|
299
|
+
font-size: 12px;
|
|
300
|
+
padding: 3px 10px;
|
|
301
|
+
border: 1px solid #d0d7de;
|
|
302
|
+
border-radius: 4px;
|
|
303
|
+
background: #f6f8fa;
|
|
304
|
+
cursor: pointer;
|
|
305
|
+
}
|
|
306
|
+
.gantt_container .gantt_actuals_toggle:hover { background: #eef1f4; }
|
|
147
307
|
table.controlled:not(.odd-even) tbody tr:nth-child(odd) { background-color:#f6f7f8; }
|
|
148
308
|
table.controlled:not(.odd-even) tbody tr:nth-child(even) { background-color: #fff; }
|
|
149
309
|
table.controlled:not(.odd-even) tbody tr:nth-child(odd):hover,
|
|
@@ -25,7 +25,9 @@ function openNav() {
|
|
|
25
25
|
document.getElementById("searchInput").style.display = "block";
|
|
26
26
|
}
|
|
27
27
|
}else{
|
|
28
|
-
|
|
28
|
+
var navPane = document.getElementById('nav_pane');
|
|
29
|
+
var hasNav = navPane && navPane.innerHTML.trim() !== "";
|
|
30
|
+
if (document.title.includes("Traceability Matrix:") || !hasNav){
|
|
29
31
|
document.getElementById('document_tree_menu_item').style.display = "none";
|
|
30
32
|
} else {
|
|
31
33
|
document.getElementById('document_tree_menu_item').style.display = "block";
|
data/lib/almirah.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: Almirah
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.4.
|
|
4
|
+
version: 0.4.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Oleksandr Ivanov
|
|
@@ -73,17 +73,22 @@ files:
|
|
|
73
73
|
- lib/almirah/doc_items/markdown_list.rb
|
|
74
74
|
- lib/almirah/doc_items/markdown_table.rb
|
|
75
75
|
- lib/almirah/doc_items/paragraph.rb
|
|
76
|
+
- lib/almirah/doc_items/scope_table.rb
|
|
76
77
|
- lib/almirah/doc_items/source_code_paragraph.rb
|
|
77
78
|
- lib/almirah/doc_items/text_line.rb
|
|
78
79
|
- lib/almirah/doc_items/todo_block.rb
|
|
80
|
+
- lib/almirah/doc_items/work_item.rb
|
|
79
81
|
- lib/almirah/doc_parser.rb
|
|
80
82
|
- lib/almirah/doc_types/base_document.rb
|
|
81
83
|
- lib/almirah/doc_types/coverage.rb
|
|
84
|
+
- lib/almirah/doc_types/critical_chain_page.rb
|
|
82
85
|
- lib/almirah/doc_types/decision.rb
|
|
86
|
+
- lib/almirah/doc_types/decision_grouping.rb
|
|
83
87
|
- lib/almirah/doc_types/decisions_overview.rb
|
|
84
88
|
- lib/almirah/doc_types/implementation.rb
|
|
85
89
|
- lib/almirah/doc_types/index.rb
|
|
86
90
|
- lib/almirah/doc_types/persistent_document.rb
|
|
91
|
+
- lib/almirah/doc_types/planning_dates.rb
|
|
87
92
|
- lib/almirah/doc_types/protocol.rb
|
|
88
93
|
- lib/almirah/doc_types/source_file.rb
|
|
89
94
|
- lib/almirah/doc_types/specification.rb
|
|
@@ -94,8 +99,12 @@ files:
|
|
|
94
99
|
- lib/almirah/link_registry.rb
|
|
95
100
|
- lib/almirah/navigation_pane.rb
|
|
96
101
|
- lib/almirah/project.rb
|
|
102
|
+
- lib/almirah/project/critical_chain.rb
|
|
97
103
|
- lib/almirah/project/doc_linker.rb
|
|
104
|
+
- lib/almirah/project/fever_chart.rb
|
|
98
105
|
- lib/almirah/project/project_data.rb
|
|
106
|
+
- lib/almirah/project/work_item_scheduler.rb
|
|
107
|
+
- lib/almirah/project/working_calendar.rb
|
|
99
108
|
- lib/almirah/project_configuration.rb
|
|
100
109
|
- lib/almirah/project_template.rb
|
|
101
110
|
- lib/almirah/project_utility.rb
|
|
@@ -125,7 +134,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
125
134
|
- !ruby/object:Gem::Version
|
|
126
135
|
version: '0'
|
|
127
136
|
requirements: []
|
|
128
|
-
rubygems_version: 4.0.
|
|
137
|
+
rubygems_version: 4.0.6
|
|
129
138
|
specification_version: 4
|
|
130
139
|
summary: Almirah
|
|
131
140
|
test_files: []
|