|
39 | 39 | </div> |
40 | 40 | <!-- Logs --> |
41 | 41 | <div class="ui tab modal-tab" data-tab="{admin_: submission.admin}logs" hide="{opts.hide_output}"> |
42 | | - <div class="ui top attached inverted pointing menu" if="{logTabs.length > 0}"> |
| 42 | + <div class="ui top attached inverted pointing menu" if="{logTabs.length > 0}" ref="log_tabs_menu"> |
43 | 43 | <div each="{tab, i in logTabs}" |
44 | | - class="submission-modal item {active: i === 0}" |
45 | | - data-tab="{tab.fullTabId}"> |
| 44 | + class="submission-modal item {active: tab.fullTabId === activeLogTabId || (!activeLogTabId && i === 0)}" |
| 45 | + data-tab="{tab.fullTabId}" |
| 46 | + onclick="{() => activeLogTabId = tab.fullTabId}"> |
46 | 47 | {tab.label} |
47 | 48 | </div> |
48 | 49 | </div> |
|
52 | 53 | </div> |
53 | 54 | <!-- Dynamic tabs --> |
54 | 55 | <div each="{tab, i in logTabs}" |
55 | | - class="ui bottom attached inverted segment tab log {active: i === 0}" |
| 56 | + class="ui bottom attached inverted segment tab log {active: tab.fullTabId === activeLogTabId || (!activeLogTabId && i === 0)}" |
56 | 57 | data-tab="{tab.fullTabId}"> |
57 | 58 | <pre class="{empty: is_empty(tab.content)}">{ show_log(tab.content) }</pre> |
58 | 59 | </div> |
|
117 | 118 | .filter(t => !self.is_empty(t.content)) |
118 | 119 | .map(t => ({ |
119 | 120 | ...t, |
120 | | - fullTabId: `${prefix}${t.key}` |
| 121 | + fullTabId: `${prefix}sub_${self.submission.id}_${t.key}` |
121 | 122 | })) |
| 123 | + |
| 124 | + if (!self.activeLogTabId || !self.logTabs.find(t => t.fullTabId === self.activeLogTabId)) { |
| 125 | + self.activeLogTabId = self.logTabs.length ? self.logTabs[0].fullTabId : null |
| 126 | + } |
122 | 127 | } |
123 | 128 |
|
124 | 129 | self.get_score_details = function (column) { |
|
154 | 159 | self.rebuild_log_tabs() |
155 | 160 | self.update() |
156 | 161 | setTimeout(() => { |
157 | | - const $items = $(self.root).find('.ui.top.attached.menu .item') |
| 162 | + if (!self.refs.log_tabs_menu) return |
| 163 | + const $items = $(self.refs.log_tabs_menu).find('.item') |
158 | 164 | $items.tab() |
159 | | - // pick the first tab deterministically |
160 | 165 | if (self.logTabs.length) { |
161 | | - $items.tab('change tab', self.logTabs[0].fullTabId) |
| 166 | + $items.tab('change tab', self.activeLogTabId || self.logTabs[0].fullTabId) |
162 | 167 | } |
163 | 168 | }, 0) |
164 | 169 | }) |
|
0 commit comments