class Settings { constructor() { this.data = []; this.keys = []; } addSetting(setting) { this.data[setting.getKey()] = setting; this.keys.push(setting.getKey()); this.fill(); } removeSetting(key) { this.keys.splice(key, 1); delete this.data[key]; this.fill(); } fill() { var html = '

No se encontraron configuraciones.

'; if(this.keys.length > 0) { html = '
Key
Tipo
Título
Descripción
Validaciones
Parámetros
Borrar
'; $.each(this.keys, (i, v) => { var value = this.data[v]; var count = value.params.params !== undefined ? value.params.params.length : 'No aplica'; html += '
'+value.key+'
'+value.type+'
'+value.title+'
'+value.description+'
'+value.validations.join(', ')+'
'+count+'
'; }); } $('#div_keys').html(html); } setData(settings) { $.each(settings, (index, value) => { this.data.push(new Setting(index, value.type, value.validation, value.title, value.description, value.value)); this.data[this.data.length - 1].setParams(value.params); /*console.log(this.data[index]); this.data[index].setParams(value.params);*/ this.keys.push(index); }); } static create() { } // ======= SET VALUES ======= setSettings(data) { this.data = JSON.parse(data); } assemble() { var html = ''; $.each(this.data, (index, value) => { html += ''; }); } render() { var string = '{'; $.each(this.keys, (i, v) => { string += this.data[v].render(); string += ', '; }); string = string.substr(0, string.length - 2); string += '}'; return string; } /*render() { var json = []; $.each(this.keys, (i, v) => { var setting = this.data[v]; var render = setting.render(); var key = setting.getKey(); json.push({ [key]: render }); }); return json; }*/ }