|
@@ -1,10 +1,27 @@
|
|
|
$(document).ready(function() {
|
|
$(document).ready(function() {
|
|
|
- $('form.tableconfigform').submit(function(event) {
|
|
|
|
|
|
|
+ $('form.userconfigform').submit(function(event) {
|
|
|
event.preventDefault();
|
|
event.preventDefault();
|
|
|
- let table_name = this.getAttribute('data-table-name');
|
|
|
|
|
- let data = {"tables": {}};
|
|
|
|
|
- data['tables'][table_name] = {};
|
|
|
|
|
- data['tables'][table_name]['columns'] = $('#id_columns').val();
|
|
|
|
|
|
|
+
|
|
|
|
|
+ // Derive an array from the dotted path to the config root
|
|
|
|
|
+ let path = this.getAttribute('data-config-root').split('.');
|
|
|
|
|
+ let data = {};
|
|
|
|
|
+ let pointer = data;
|
|
|
|
|
+
|
|
|
|
|
+ // Construct a nested JSON object from the path
|
|
|
|
|
+ let node;
|
|
|
|
|
+ for (node of path) {
|
|
|
|
|
+ pointer[node] = {};
|
|
|
|
|
+ pointer = pointer[node];
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Assign the form data to the child node
|
|
|
|
|
+ let field;
|
|
|
|
|
+ $.each($(this).find('[id^="id_"]:input'), function(index, value) {
|
|
|
|
|
+ field = $(value);
|
|
|
|
|
+ pointer[field.attr("name")] = field.val();
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ // Make the REST API request
|
|
|
$.ajax({
|
|
$.ajax({
|
|
|
url: netbox_api_path + 'users/config/',
|
|
url: netbox_api_path + 'users/config/',
|
|
|
async: true,
|
|
async: true,
|
|
@@ -19,7 +36,7 @@ $(document).ready(function() {
|
|
|
// Reload the page
|
|
// Reload the page
|
|
|
window.location.reload(true);
|
|
window.location.reload(true);
|
|
|
}).fail(function (xhr, status, error) {
|
|
}).fail(function (xhr, status, error) {
|
|
|
- alert("Failed: " + error);
|
|
|
|
|
|
|
+ alert("Failed to update user config (" + status + "): " + error);
|
|
|
});
|
|
});
|
|
|
});
|
|
});
|
|
|
});
|
|
});
|