Fix super config default values
parent
b2b6d4b3f8
commit
12151602ef
|
@ -14,3 +14,4 @@ dist
|
|||
generatedLanguageFiles
|
||||
faces
|
||||
unknownFaces
|
||||
.idea/
|
||||
|
|
|
@ -1,20 +1,25 @@
|
|||
$(document).ready(function(){
|
||||
$(document).ready(function () {
|
||||
var schema = {
|
||||
"title": "Main Configuration",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"debugLog": {
|
||||
"title": "Enable Debug Log",
|
||||
"type": "boolean",
|
||||
"default": false
|
||||
},
|
||||
"subscriptionId": {
|
||||
"title": "Fill in subscription ID",
|
||||
"type": "string",
|
||||
"default": null
|
||||
},
|
||||
"port": {
|
||||
"title": "Server port",
|
||||
"type": "integer",
|
||||
"default": 8080
|
||||
},
|
||||
"passwordType": {
|
||||
"title": "Password type",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"sha256",
|
||||
|
@ -94,13 +99,7 @@ $(document).ready(function(){
|
|||
"default": "detector"
|
||||
}
|
||||
}
|
||||
},
|
||||
"default": [
|
||||
{
|
||||
"name": "second",
|
||||
"path": "__DIR__/videos2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"pluginKeys": {
|
||||
"type": "object",
|
||||
|
@ -121,14 +120,17 @@ $(document).ready(function(){
|
|||
"description": "Credentials to connect to where detailed information is stored.",
|
||||
"properties": {
|
||||
"host": {
|
||||
"title": "Hostname / IP",
|
||||
"type": "string",
|
||||
"default": "127.0.0.1"
|
||||
},
|
||||
"user": {
|
||||
"title": "Username",
|
||||
"type": "string",
|
||||
"default": "majesticflame"
|
||||
},
|
||||
"password": {
|
||||
"title": "Password",
|
||||
"type": "string",
|
||||
"default": ""
|
||||
},
|
||||
|
@ -146,7 +148,7 @@ $(document).ready(function(){
|
|||
"user": "majesticflame",
|
||||
"password": "",
|
||||
"database": "ccio",
|
||||
"port":3306
|
||||
"port": 3306
|
||||
}
|
||||
},
|
||||
"cron": {
|
||||
|
@ -250,37 +252,88 @@ $(document).ready(function(){
|
|||
},
|
||||
"windowsTempDir": {
|
||||
"type": "string",
|
||||
},
|
||||
"enableFaceManager": {
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"title": "Enable Face Manager",
|
||||
"description": "Enable / Disable face manager for face recognition plugins in the dashboard."
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var configurationTab = $('#config')
|
||||
var configurationForm = configurationTab.find('form')
|
||||
const configurationTab = $("#config");
|
||||
const configurationForm = configurationTab.find("form");
|
||||
|
||||
// Set default options
|
||||
JSONEditor.defaults.options.theme = 'bootstrap3';
|
||||
JSONEditor.defaults.options.iconlib = 'fontawesome4';
|
||||
const moduleData = {
|
||||
endpoint: null,
|
||||
configurationEditor: null
|
||||
}
|
||||
|
||||
// Initialize the editor
|
||||
var configurationEditor = new JSONEditor(document.getElementById("configForHumans"),{
|
||||
theme: 'bootstrap3',
|
||||
schema: schema
|
||||
const handleGetConfigurationData = data => {
|
||||
const dataConfig = data.config;
|
||||
const dataConfigKeys = Object.keys(dataConfig);
|
||||
const schemaItemsKeys = Object.keys(schema.properties);
|
||||
|
||||
const schemaWithoutData = schemaItemsKeys.filter(
|
||||
(sk) => !dataConfigKeys.includes(sk)
|
||||
);
|
||||
const dataWithoutSchema = dataConfigKeys.filter(
|
||||
(dk) => !schemaItemsKeys.includes(dk)
|
||||
);
|
||||
|
||||
schemaWithoutData.forEach((sk) => {
|
||||
const schemaItem = schema.properties[sk];
|
||||
const defaultConfig = schemaItem.default;
|
||||
|
||||
data.config[sk] = defaultConfig;
|
||||
});
|
||||
|
||||
function loadConfiguationIntoEditor(){
|
||||
$.get(superApiPrefix + $user.sessionKey + '/system/configure',function(data){
|
||||
configurationEditor.setValue(data.config);
|
||||
})
|
||||
if (dataWithoutSchema.length > 0) {
|
||||
dataWithoutSchema.forEach((dk) => {
|
||||
const schemaItem = {
|
||||
title: dk,
|
||||
options: {
|
||||
hidden: true,
|
||||
},
|
||||
};
|
||||
|
||||
schema.properties[dk] = schemaItem;
|
||||
});
|
||||
|
||||
// Set default options
|
||||
JSONEditor.defaults.options.theme = "bootstrap3";
|
||||
JSONEditor.defaults.options.iconlib = "fontawesome4";
|
||||
}
|
||||
// configurationEditor.on("change", function() {
|
||||
// // Do something...
|
||||
// });
|
||||
var submitConfiguration = function(){
|
||||
|
||||
const configurationEditor = new JSONEditor(
|
||||
document.getElementById("configForHumans"), {
|
||||
schema: schema,
|
||||
}
|
||||
);
|
||||
|
||||
configurationEditor.setValue(data.config);
|
||||
|
||||
moduleData.configurationEditor = configurationEditor;
|
||||
window.configurationEditor = configurationEditor;
|
||||
};
|
||||
|
||||
const handlePostConfigurationData = data => {
|
||||
// console.log(data);
|
||||
}
|
||||
|
||||
function loadConfiguationIntoEditor(d) {
|
||||
moduleData.endpoint = `${superApiPrefix}${$user.sessionKey}/system/configure`;
|
||||
|
||||
$.get(moduleData.endpoint, handleGetConfigurationData);
|
||||
}
|
||||
|
||||
var submitConfiguration = function () {
|
||||
var errors = configurationEditor.validate();
|
||||
console.log(errors.length)
|
||||
console.log(errors)
|
||||
if(errors.length === 0) {
|
||||
var newConfiguration = JSON.stringify(configurationEditor.getValue(),null,3)
|
||||
if (errors.length === 0) {
|
||||
var newConfiguration = JSON.stringify(configurationEditor.getValue(), null, 3)
|
||||
var html = '<p>This is a change being applied to the configuration file (conf.json). Are you sure you want to do this? You must restart Shinobi for these changes to take effect. <b>The JSON below is what you are about to save.</b></p>'
|
||||
html += `<pre>${newConfiguration}</pre>`
|
||||
$.confirm.create({
|
||||
|
@ -290,32 +343,34 @@ $(document).ready(function(){
|
|||
class: 'btn-success',
|
||||
title: lang.Save,
|
||||
},
|
||||
clickCallback: function(){
|
||||
$.post(superApiPrefix + $user.sessionKey + '/system/configure',{
|
||||
clickCallback: function () {
|
||||
const requestData = {
|
||||
data: newConfiguration
|
||||
},function(data){
|
||||
// console.log(data)
|
||||
})
|
||||
};
|
||||
|
||||
$.post(moduleData.endpoint, requestData, handlePostConfigurationData);
|
||||
}
|
||||
})
|
||||
}else{
|
||||
new PNotify({text:'Invalid JSON Syntax, Cannot Save.',type:'error'})
|
||||
} else {
|
||||
new PNotify({ text: 'Invalid JSON Syntax, Cannot Save.', type: 'error' });
|
||||
}
|
||||
}
|
||||
configurationTab.find('.submit').click(function(){
|
||||
submitConfiguration()
|
||||
})
|
||||
configurationForm.submit(function(e){
|
||||
e.preventDefault()
|
||||
submitConfiguration()
|
||||
};
|
||||
|
||||
configurationTab.find('.submit').click(function () {
|
||||
submitConfiguration();
|
||||
});
|
||||
|
||||
configurationForm.submit(function (e) {
|
||||
e.preventDefault();
|
||||
submitConfiguration();
|
||||
return false;
|
||||
})
|
||||
$.ccio.ws.on('f',function(d){
|
||||
switch(d.f){
|
||||
case'init_success':
|
||||
loadConfiguationIntoEditor()
|
||||
break;
|
||||
});
|
||||
|
||||
$.ccio.ws.on("f", d => {
|
||||
if (d.f === "init_success") {
|
||||
loadConfiguationIntoEditor();
|
||||
}
|
||||
})
|
||||
window.configurationEditor = configurationEditor
|
||||
});
|
||||
|
||||
window.configurationEditor = configurationEditor;
|
||||
})
|
||||
|
|
Loading…
Reference in New Issue