mirror of https://github.com/apache/superset.git
fix: database schema selector on import data (#21759)
This commit is contained in:
parent
20b9dc8444
commit
91f0de0c5d
|
@ -16,49 +16,10 @@
|
|||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
#}
|
||||
{% import 'superset/form_view/database_schemas_selector.html' as schemas_selector %}
|
||||
{% 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_columnar_upload(db.val());
|
||||
db.change(function(){
|
||||
update_schemas_allowed_for_columnar_upload(db.val());
|
||||
});
|
||||
|
||||
function update_schemas_allowed_for_columnar_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>
|
||||
{{ schemas_selector }}
|
||||
{% endblock %}
|
||||
|
|
|
@ -16,49 +16,10 @@
|
|||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
#}
|
||||
{% import 'superset/form_view/database_schemas_selector.html' as schemas_selector %}
|
||||
{% 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_csv_upload(db.val());
|
||||
db.change(function(){
|
||||
update_schemas_allowed_for_csv_upload(db.val());
|
||||
});
|
||||
|
||||
function update_schemas_allowed_for_csv_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>
|
||||
{{ schemas_selector }}
|
||||
{% endblock %}
|
||||
|
|
|
@ -0,0 +1,70 @@
|
|||
{#
|
||||
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.
|
||||
#}
|
||||
<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_csv_upload(db.val());
|
||||
db.change(function () {
|
||||
update_schemas_allowed_for_csv_upload(db.val());
|
||||
});
|
||||
|
||||
function update_schemas_allowed_for_csv_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 escape(htmlStr) {
|
||||
return htmlStr.replace(/&/g, "&")
|
||||
.replace(/</g, "<")
|
||||
.replace(/>/g, ">")
|
||||
.replace(/"/g, """)
|
||||
.replace(/'/g, "'");
|
||||
|
||||
}
|
||||
|
||||
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="${escape(schema_allowed)}">${escape(schema_allowed)}</option>`
|
||||
);
|
||||
});
|
||||
dropdown_schema_lists += '</select>';
|
||||
$("#schema").replaceWith(dropdown_schema_lists);
|
||||
} else {
|
||||
$("#schema").replaceWith(any_schema_is_allowed)
|
||||
}
|
||||
}
|
||||
</script>
|
|
@ -16,49 +16,10 @@
|
|||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
#}
|
||||
{% import 'superset/form_view/database_schemas_selector.html' as schemas_selector %}
|
||||
{% 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>
|
||||
{{ schemas_selector }}
|
||||
{% endblock %}
|
||||
|
|
Loading…
Reference in New Issue