fix: fix input/output file upload feature for configure pages, per oruga
This commit is contained in:
		
							parent
							
								
									c1a2c9cc70
								
							
						
					
					
						commit
						b7991b5dc6
					
				
					 1 changed files with 101 additions and 69 deletions
				
			
		|  | @ -92,7 +92,7 @@ | |||
|         <b-select name="${tmpl['setting_file']}" | ||||
|                   v-model="inputFileTemplateSettings['${tmpl['setting_file']}']" | ||||
|                   @input="settingsNeedSaved = true"> | ||||
|           <option :value="null">-new-</option> | ||||
|           <option value="">-new-</option> | ||||
|           <option v-for="option in inputFileTemplateFileOptions['${tmpl['key']}']" | ||||
|                   :key="option" | ||||
|                   :value="option"> | ||||
|  | @ -104,6 +104,23 @@ | |||
|       <b-field label="Upload" | ||||
|                v-show="inputFileTemplateSettings['${tmpl['setting_mode']}'] == 'hosted' && !inputFileTemplateSettings['${tmpl['setting_file']}']"> | ||||
| 
 | ||||
|         % if request.use_oruga: | ||||
|             <o-field class="file"> | ||||
|               <o-upload name="${tmpl['setting_file']}.upload" | ||||
|                         v-model="inputFileTemplateUploads['${tmpl['key']}']" | ||||
|                         v-slot="{ onclick }" | ||||
|                         @input="settingsNeedSaved = true"> | ||||
|                 <o-button variant="primary" | ||||
|                           @click="onclick"> | ||||
|                   <o-icon icon="upload" /> | ||||
|                   <span>Click to upload</span> | ||||
|                 </o-button> | ||||
|                 <span class="file-name" v-if="inputFileTemplateUploads['${tmpl['key']}']"> | ||||
|                   {{ inputFileTemplateUploads['${tmpl['key']}'].name }} | ||||
|                 </span> | ||||
|               </o-upload> | ||||
|             </o-field> | ||||
|         % else: | ||||
|             <b-field class="file is-primary" | ||||
|                      :class="{'has-name': !!inputFileTemplateSettings['${tmpl['setting_file']}']}"> | ||||
|               <b-upload name="${tmpl['setting_file']}.upload" | ||||
|  | @ -120,6 +137,7 @@ | |||
|                 {{ inputFileTemplateUploads['${tmpl['key']}'].name }} | ||||
|               </span> | ||||
|             </b-field> | ||||
|         % endif | ||||
| 
 | ||||
|       </b-field> | ||||
| 
 | ||||
|  | @ -162,7 +180,7 @@ | |||
|         <b-select name="${tmpl['setting_file']}" | ||||
|                   v-model="outputFileTemplateSettings['${tmpl['setting_file']}']" | ||||
|                   @input="settingsNeedSaved = true"> | ||||
|           <option :value="null">-new-</option> | ||||
|           <option value="">-new-</option> | ||||
|           <option v-for="option in outputFileTemplateFileOptions['${tmpl['key']}']" | ||||
|                   :key="option" | ||||
|                   :value="option"> | ||||
|  | @ -174,6 +192,23 @@ | |||
|       <b-field label="Upload" | ||||
|                v-show="outputFileTemplateSettings['${tmpl['setting_mode']}'] == 'hosted' && !outputFileTemplateSettings['${tmpl['setting_file']}']"> | ||||
| 
 | ||||
|         % if request.use_oruga: | ||||
|             <o-field class="file"> | ||||
|               <o-upload name="${tmpl['setting_file']}.upload" | ||||
|                         v-model="outputFileTemplateUploads['${tmpl['key']}']" | ||||
|                         v-slot="{ onclick }" | ||||
|                         @input="settingsNeedSaved = true"> | ||||
|                 <o-button variant="primary" | ||||
|                           @click="onclick"> | ||||
|                   <o-icon icon="upload" /> | ||||
|                   <span>Click to upload</span> | ||||
|                 </o-button> | ||||
|                 <span class="file-name" v-if="outputFileTemplateUploads['${tmpl['key']}']"> | ||||
|                   {{ outputFileTemplateUploads['${tmpl['key']}'].name }} | ||||
|                 </span> | ||||
|               </o-upload> | ||||
|             </o-field> | ||||
|         % else: | ||||
|             <b-field class="file is-primary" | ||||
|                      :class="{'has-name': !!outputFileTemplateSettings['${tmpl['setting_file']}']}"> | ||||
|               <b-upload name="${tmpl['setting_file']}.upload" | ||||
|  | @ -190,7 +225,7 @@ | |||
|                 {{ outputFileTemplateUploads['${tmpl['key']}'].name }} | ||||
|               </span> | ||||
|             </b-field> | ||||
| 
 | ||||
|         % endif | ||||
|       </b-field> | ||||
| 
 | ||||
|     </b-field> | ||||
|  | @ -275,16 +310,6 @@ | |||
|         ThisPageData.simpleSettings = ${json.dumps(simple_settings)|n} | ||||
|     % endif | ||||
| 
 | ||||
|     % if input_file_template_settings is not Undefined: | ||||
|         ThisPageData.inputFileTemplateSettings = ${json.dumps(input_file_template_settings)|n} | ||||
|         ThisPageData.inputFileTemplateFileOptions = ${json.dumps(input_file_options)|n} | ||||
|         ThisPageData.inputFileTemplateUploads = { | ||||
|             % for key in input_file_templates: | ||||
|                 '${key}': null, | ||||
|             % endfor | ||||
|         } | ||||
|     % endif | ||||
| 
 | ||||
|     ThisPageData.purgeSettingsShowDialog = false | ||||
|     ThisPageData.purgingSettings = false | ||||
| 
 | ||||
|  | @ -297,30 +322,7 @@ | |||
|         this.purgeSettingsShowDialog = true | ||||
|     } | ||||
| 
 | ||||
|     % if input_file_template_settings is not Undefined: | ||||
|         ThisPage.methods.validateInputFileTemplateSettings = function() { | ||||
|             % for tmpl in input_file_templates.values(): | ||||
|                 if (this.inputFileTemplateSettings['${tmpl['setting_mode']}'] == 'hosted') { | ||||
|                     if (!this.inputFileTemplateSettings['${tmpl['setting_file']}']) { | ||||
|                         if (!this.inputFileTemplateUploads['${tmpl['key']}']) { | ||||
|                             return "You must provide a file to upload for the ${tmpl['label']} template." | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             % endfor | ||||
|         } | ||||
|     % endif | ||||
| 
 | ||||
|     ThisPage.methods.validateSettings = function() { | ||||
|         let msg | ||||
| 
 | ||||
|         % if input_file_template_settings is not Undefined: | ||||
|             msg = this.validateInputFileTemplateSettings() | ||||
|             if (msg) { | ||||
|                 return msg | ||||
|             } | ||||
|         % endif | ||||
|     } | ||||
|     ThisPage.methods.validateSettings = function() {} | ||||
| 
 | ||||
|     ThisPage.methods.saveSettings = function() { | ||||
|         let msg | ||||
|  | @ -366,6 +368,36 @@ | |||
|         window.addEventListener('beforeunload', this.beforeWindowUnload) | ||||
|     } | ||||
| 
 | ||||
|     ############################## | ||||
|     ## input file templates | ||||
|     ############################## | ||||
| 
 | ||||
|     % if input_file_template_settings is not Undefined: | ||||
| 
 | ||||
|         ThisPageData.inputFileTemplateSettings = ${json.dumps(input_file_template_settings)|n} | ||||
|         ThisPageData.inputFileTemplateFileOptions = ${json.dumps(input_file_options)|n} | ||||
|         ThisPageData.inputFileTemplateUploads = { | ||||
|             % for key in input_file_templates: | ||||
|                 '${key}': null, | ||||
|             % endfor | ||||
|         } | ||||
| 
 | ||||
|         ThisPage.methods.validateInputFileTemplateSettings = function() { | ||||
|             % for tmpl in input_file_templates.values(): | ||||
|                 if (this.inputFileTemplateSettings['${tmpl['setting_mode']}'] == 'hosted') { | ||||
|                     if (!this.inputFileTemplateSettings['${tmpl['setting_file']}']) { | ||||
|                         if (!this.inputFileTemplateUploads['${tmpl['key']}']) { | ||||
|                             return "You must provide a file to upload for the ${tmpl['label']} template." | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             % endfor | ||||
|         } | ||||
| 
 | ||||
|         ThisPageData.validators.push(ThisPage.methods.validateInputFileTemplateSettings) | ||||
| 
 | ||||
|     % endif | ||||
| 
 | ||||
|     ############################## | ||||
|     ## output file templates | ||||
|     ############################## | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Lance Edgar
						Lance Edgar