|
1 | 1 | <template> |
2 | 2 | <DataBlockBase :item_id="item_id" :block_id="block_id"> |
| 3 | + <div class="mb-2 d-flex align-items-center"> |
| 4 | + <label class="mr-2"><b>Mode:</b></label> |
| 5 | + <div class="btn-group" role="group" aria-label="Mode toggle"> |
| 6 | + <button |
| 7 | + type="button" |
| 8 | + class="btn" |
| 9 | + :class="isEchemMode ? 'btn-outline-secondary' : 'btn-secondary'" |
| 10 | + @click="setMode('log')" |
| 11 | + > |
| 12 | + Temperature |
| 13 | + </button> |
| 14 | + <button |
| 15 | + type="button" |
| 16 | + class="btn" |
| 17 | + :class="isEchemMode ? 'btn-secondary' : 'btn-outline-secondary'" |
| 18 | + @click="setMode('echem')" |
| 19 | + > |
| 20 | + Electrochemistry |
| 21 | + </button> |
| 22 | + </div> |
| 23 | + </div> |
3 | 24 | <FileSelectDropdown |
4 | 25 | v-model="file_id" |
5 | 26 | :item_id="item_id" |
|
19 | 40 | /> |
20 | 41 | </div> |
21 | 42 | <div class="col-lg-4 col-md-6 col-sm-12 mb-2"> |
22 | | - <label class="mr-2"><b>Temperature or Echem folder name</b></label> |
| 43 | + <label class="mr-2"><b>Log folder name</b></label> |
23 | 44 | <FolderSelect |
24 | 45 | v-model="time_series_folder_name" |
25 | 46 | :options="availableFolders" |
26 | 47 | @update:model-value="onFolderSelected" |
27 | 48 | /> |
28 | 49 | </div> |
| 50 | + <div v-if="isEchemMode" class="col-lg-4 col-md-6 col-sm-12 mb-2"> |
| 51 | + <label class="mr-2"><b>Echem folder name</b></label> |
| 52 | + <FolderSelect |
| 53 | + v-model="echem_folder_name" |
| 54 | + :options="availableFolders" |
| 55 | + @update:model-value="onFolderSelected" |
| 56 | + /> |
| 57 | + </div> |
29 | 58 | </div> |
30 | 59 | <div v-if="folderNameError" class="alert alert-danger mt-2 mx-auto"> |
31 | 60 | {{ folderNameError }} |
@@ -127,24 +156,45 @@ export default { |
127 | 156 | }, |
128 | 157 | xrd_folder_name: createComputedSetterForBlockField("xrd_folder_name"), |
129 | 158 | time_series_folder_name: createComputedSetterForBlockField("time_series_folder_name"), |
| 159 | + echem_folder_name: createComputedSetterForBlockField("echem_folder_name"), |
130 | 160 | file_id: createComputedSetterForBlockField("file_id"), |
131 | 161 | folder_name: createComputedSetterForBlockField("folder_name"), |
132 | 162 | data_granularity: createComputedSetterForBlockField("data_granularity"), |
133 | 163 | sample_granularity: createComputedSetterForBlockField("sample_granularity"), |
| 164 | + time_series_source: createComputedSetterForBlockField("time_series_source"), |
| 165 | + isEchemMode() { |
| 166 | + return this.time_series_source === "echem"; |
| 167 | + }, |
| 168 | + }, |
| 169 | + created() { |
| 170 | + // Ensure time_series_source is set to "log" by default if not present |
| 171 | + if (this.time_series_source === undefined || this.time_series_source === null) { |
| 172 | + this.time_series_source = "log"; |
| 173 | + } |
134 | 174 | }, |
135 | 175 | methods: { |
| 176 | + setMode(mode) { |
| 177 | + this.time_series_source = mode; |
| 178 | + this.xrd_folder_name = ""; |
| 179 | + this.time_series_folder_name = ""; |
| 180 | + this.echem_folder_name = ""; |
| 181 | + this.folderNameError = ""; |
| 182 | + this.updateBlock(); |
| 183 | + console.info("Mode set to", mode); |
| 184 | + }, |
136 | 185 | onFileChange() { |
137 | 186 | this.xrd_folder_name = ""; |
138 | 187 | this.time_series_folder_name = ""; |
139 | | -
|
| 188 | + this.echem_folder_name = ""; |
140 | 189 | this.updateBlock(); |
141 | 190 | }, |
142 | 191 | onFolderSelected() { |
143 | | - if (this.xrd_folder_name && this.time_series_folder_name) { |
144 | | - this.folderNameError = ""; |
| 192 | + if ( |
| 193 | + this.xrd_folder_name && |
| 194 | + this.time_series_folder_name && |
| 195 | + (!this.isEchemMode || this.echem_folder_name) |
| 196 | + ) { |
145 | 197 | this.updateBlock(); |
146 | | - } else if (this.xrd_folder_name || this.time_series_folder_name) { |
147 | | - this.folderNameError = "XRD and either an echem or temperature folder is required."; |
148 | 198 | } |
149 | 199 | }, |
150 | 200 | onGranularitySubmit() { |
|
0 commit comments