| {# |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| #} |
| {% extends 'appbuilder/general/model/edit.html' %} |
| |
| {% block tail_js %} |
| {{ super() }} |
| <script> |
| var db = $("#con"); |
| var schema = $("#schema"); |
| |
| // this element is a text input |
| // copy it here so it can be reused later |
| var any_schema_is_allowed = schema.clone(); |
| |
| update_schemas_allowed_for_excel_upload(db.val()); |
| db.change(function(){ |
| update_schemas_allowed_for_excel_upload(db.val()); |
| }); |
| |
| function update_schemas_allowed_for_excel_upload(db_id) { |
| $.ajax({ |
| method: "GET", |
| url: "/superset/schemas_access_for_file_upload", |
| data: {db_id: db_id}, |
| dataType: 'json', |
| contentType: "application/json; charset=utf-8" |
| }).done(function(data) { |
| change_schema_field_in_formview(data) |
| }).fail(function(error) { |
| var errorMsg = error.responseJSON.error; |
| alert("ERROR: " + errorMsg); |
| }); |
| } |
| |
| function change_schema_field_in_formview(schemas_allowed){ |
| if (schemas_allowed && schemas_allowed.length > 0) { |
| var dropdown_schema_lists = '<select id="schema" name="schema" required>'; |
| schemas_allowed.forEach(function(schema_allowed) { |
| dropdown_schema_lists += ('<option value="' + schema_allowed + '">' + schema_allowed + '</option>'); |
| }); |
| dropdown_schema_lists += '</select>'; |
| $("#schema").replaceWith(dropdown_schema_lists); |
| } else { |
| $("#schema").replaceWith(any_schema_is_allowed) |
| } |
| } |
| </script> |
| {% endblock %} |