|
37 | 37 | </div> |
38 | 38 | </div> |
39 | 39 | <div class="ui tab modal-tab" data-tab="{admin_: submission.admin}logs" hide="{opts.hide_output}"> |
40 | | - <div class="ui grid"> |
41 | | - <div class="three wide column"> |
42 | | - <div class="ui fluid vertical secondary menu"> |
43 | | - <div class="active submission-modal item" data-tab="{admin_: submission.admin}prediction"> |
44 | | - Prediction Logs |
45 | | - </div> |
46 | | - <div class="submission-modal item" data-tab="{admin_: submission.admin}scoring"> |
47 | | - Scoring Logs |
48 | | - </div> |
49 | | - </div> |
50 | | - </div> |
51 | | - <div class="thirteen wide column"> |
52 | | - <div class="ui active tab" data-tab="{admin_: submission.admin}prediction"> |
53 | | - <div class="ui top attached inverted pointing menu"> |
54 | | - <div class="active submission-modal item" data-tab="{admin_: submission.admin}p_stdout"> |
55 | | - stdout |
56 | | - </div> |
57 | | - <div class="submission-modal item" data-tab="{admin_: submission.admin}p_stderr"> |
58 | | - stderr |
59 | | - </div> |
60 | | - <div class="submission-modal item" data-tab="{admin_: submission.admin}p_ingest_stdout"> |
61 | | - Ingestion stdout |
62 | | - </div> |
63 | | - <div class="submission-modal item" data-tab="{admin_: submission.admin}p_ingest_stderr"> |
64 | | - Ingestion stderr |
65 | | - </div> |
66 | | - </div> |
67 | | - |
68 | | - <div class="ui active bottom attached inverted segment tab log" |
69 | | - data-tab="{admin_: submission.admin}p_stdout"> |
70 | | - <!-- |
71 | | - todo: something like: |
72 | | - <pre>{ logs.prediction_stdout ? logs.prediction_stdout : "Empty Logs"}</pre> |
73 | | - so log files don't look empty |
74 | | - --> |
75 | | - <pre>{ logs.prediction_stdout }</pre> |
76 | | - </div> |
77 | | - |
78 | | - <div class="ui bottom attached inverted segment tab log" |
79 | | - data-tab="{admin_: submission.admin}p_stderr"> |
80 | | - <pre>{ logs.prediction_stderr }</pre> |
81 | | - </div> |
82 | | - |
83 | | - <div class="ui bottom attached inverted segment tab log" |
84 | | - data-tab="{admin_: submission.admin}p_ingest_stdout"> |
85 | | - <pre>{ logs.prediction_ingestion_stdout }</pre> |
86 | | - </div> |
87 | | - |
88 | | - <div class="ui bottom attached inverted segment tab log" |
89 | | - data-tab="{admin_: submission.admin}p_ingest_stderr"> |
90 | | - <pre>{ logs.prediction_ingestion_stderr }</pre> |
91 | | - </div> |
92 | | - </div> |
93 | | - <div class="ui tab" data-tab="{admin_: submission.admin}scoring"> |
94 | | - <div class="ui top attached inverted pointing menu"> |
95 | | - <div class="active submission-modal item" data-tab="{admin_: submission.admin}s_stdout"> |
96 | | - stdout |
97 | | - </div> |
98 | | - <div class="submission-modal item" data-tab="{admin_: submission.admin}s_stderr"> |
99 | | - stderr |
100 | | - </div> |
101 | | - <div class="submission-modal item" data-tab="{admin_: submission.admin}s_ingest_stdout"> |
102 | | - Ingestion stdout |
103 | | - </div> |
104 | | - <div class="submission-modal item" data-tab="{admin_: submission.admin}s_ingest_stderr"> |
105 | | - Ingestion stderr |
106 | | - </div> |
107 | | - </div> |
108 | | - |
109 | | - <div class="ui active bottom attached inverted segment tab log" |
110 | | - data-tab="{admin_: submission.admin}s_stdout"> |
111 | | - <pre>{ logs.scoring_stdout }</pre> |
112 | | - </div> |
113 | | - |
114 | | - <div class="ui bottom attached inverted segment tab log" |
115 | | - data-tab="{admin_: submission.admin}s_stderr"> |
116 | | - <pre>{ logs.scoring_stderr }</pre> |
117 | | - </div> |
118 | | - |
119 | | - <div class="ui bottom attached inverted segment tab log" |
120 | | - data-tab="{admin_: submission.admin}s_ingest_stdout"> |
121 | | - <pre>{ logs.scoring_ingestion_stdout }</pre> |
122 | | - </div> |
123 | | - |
124 | | - <div class="ui bottom attached inverted segment tab log" |
125 | | - data-tab="{admin_: submission.admin}s_ingest_stderr"> |
126 | | - <pre>{ logs.scoring_ingestion_stderr }</pre> |
127 | | - </div> |
128 | | - </div> |
129 | | - </div> |
| 40 | + <div class="ui top attached inverted pointing menu"> |
| 41 | + <div class="active submission-modal item" data-tab="{admin_: submission.admin}log_ing_out"> |
| 42 | + Ingestion output |
| 43 | + </div> |
| 44 | + <div class="submission-modal item" data-tab="{admin_: submission.admin}log_ing_err"> |
| 45 | + Ingestion errors |
| 46 | + </div> |
| 47 | + <div class="submission-modal item" data-tab="{admin_: submission.admin}log_score_out"> |
| 48 | + Scoring output |
| 49 | + </div> |
| 50 | + <div class="submission-modal item" data-tab="{admin_: submission.admin}log_score_err"> |
| 51 | + Scoring errors |
| 52 | + </div> |
| 53 | + </div> |
| 54 | + <div class="ui active bottom attached inverted segment tab log" |
| 55 | + data-tab="{admin_: submission.admin}log_ing_out"> |
| 56 | + <pre class="{empty: isEmpty(logs.prediction_ingestion_stdout)}">{ showLog(logs.prediction_ingestion_stdout) }</pre> |
| 57 | + </div> |
| 58 | + <div class="ui bottom attached inverted segment tab log" |
| 59 | + data-tab="{admin_: submission.admin}log_ing_err"> |
| 60 | + <pre class="{empty: isEmpty(logs.prediction_ingestion_stderr)}">{ showLog(logs.prediction_ingestion_stderr) }</pre> |
| 61 | + </div> |
| 62 | + <div class="ui bottom attached inverted segment tab log" |
| 63 | + data-tab="{admin_: submission.admin}log_score_out"> |
| 64 | + <pre class="{empty: isEmpty(logs.scoring_stdout)}">{ showLog(logs.scoring_stdout) }</pre> |
| 65 | + </div> |
| 66 | + <div class="ui bottom attached inverted segment tab log" |
| 67 | + data-tab="{admin_: submission.admin}log_score_err"> |
| 68 | + <pre class="{empty: isEmpty(logs.scoring_stderr)}">{ showLog(logs.scoring_stderr) }</pre> |
130 | 69 | </div> |
131 | 70 | </div> |
132 | 71 | <div class="ui tab modal-tab" data-tab="{admin_: submission.admin}fact_sheet"> |
|
148 | 87 | self.leaderboards = [] |
149 | 88 | self.columns = [] |
150 | 89 |
|
| 90 | + // Check if logs are empty |
| 91 | + self.isEmpty = (v) => v == null || (typeof v === "string" && v.trim().length === 0) |
| 92 | + self.nonEmpty = (v) => !self.isEmpty(v) |
| 93 | + self.showLog = (v) => self.nonEmpty(v) ? v : "No logs for this tab." |
| 94 | + |
151 | 95 | self.get_score_details = function (column) { |
152 | 96 | try { |
153 | 97 | let score = _.filter(self.submission.scores, (score) => { |
|
246 | 190 | #downloads thead tr th, #downloads tbody tr td |
247 | 191 | font-size 16px !important |
248 | 192 |
|
249 | | - .inverted, textarea |
250 | | - color: white |
251 | | - background: #1b1c1d |
252 | | - width: 100% |
253 | | - height: 98% |
| 193 | + pre.empty |
| 194 | + opacity 0.7 |
| 195 | + |
| 196 | + .log |
| 197 | + color white |
| 198 | + background #1b1c1d |
| 199 | + |
| 200 | + .log textarea |
| 201 | + width 100% |
| 202 | + height 98% |
| 203 | + |
254 | 204 | </style> |
255 | 205 | </submission-modal> |
0 commit comments