/* jslint node: true */ 'use strict'; // ENiGMA½ const { MenuModule } = require('./menu_module.js'); const UserProps = require('./user_property.js'); // deps const async = require('async'); const _ = require('lodash'); exports.moduleInfo = { name : 'User Auto-Sig Editor', desc : 'Module for editing auto-sigs', author : 'NuSkooler', }; const FormIds = { edit : 0, }; const MciViewIds = { editor : 1, save : 2, }; exports.getModule = class UserAutoSigEditorModule extends MenuModule { constructor(options) { super(options); this.config = Object.assign({}, _.get(options, 'menuConfig.config'), { extraArgs : options.extraArgs }); this.menuMethods = { saveChanges : (formData, extraArgs, cb) => { return this.saveChanges(cb); } }; } mciReady(mciData, cb) { super.mciReady(mciData, err => { if(err) { return cb(err); } async.series( [ (callback) => { return this.prepViewController('edit', FormIds.edit, mciData.menu, callback); }, (callback) => { const requiredCodes = [ MciViewIds.editor, MciViewIds.save ]; return this.validateMCIByViewIds('edit', requiredCodes, callback); }, (callback) => { const sig = this.client.user.getProperty(UserProps.AutoSignature) || ''; this.setViewText('edit', MciViewIds.editor, sig); return callback(null); } ], err => { return cb(err); } ); }); } saveChanges(cb) { const sig = this.getView('edit', MciViewIds.editor).getData().trim(); this.client.user.persistProperty(UserProps.AutoSignature, sig, err => { if(err) { this.client.log.error( { error : err.message }, 'Could not save auto-sig'); } return this.prevMenu(cb); }); } };