'use strict'; define('admin/appearance/themes', ['translator'], function (translator) { var Themes = {}; Themes.init = function () { $('#installed_themes').on('click', function (e) { var target = $(e.target); var action = target.attr('data-action'); if (action && action === 'use') { var parentEl = target.parents('[data-theme]'); var themeType = parentEl.attr('data-type'); var cssSrc = parentEl.attr('data-css'); var themeId = parentEl.attr('data-theme'); socket.emit('admin.themes.set', { type: themeType, id: themeId, src: cssSrc, }, function (err) { if (err) { return app.alertError(err.message); } config['theme:id'] = themeId; highlightSelectedTheme(themeId); app.alert({ alert_id: 'admin:theme', type: 'info', title: '[[admin/appearance/themes:theme-changed]]', message: '[[admin/appearance/themes:restart-to-activate]]', timeout: 5000, clickfn: function () { socket.emit('admin.restart'); }, }); }); } }); $('#revert_theme').on('click', function () { bootbox.confirm('[[admin/appearance/themes:revert-confirm]]', function (confirm) { if (confirm) { socket.emit('admin.themes.set', { type: 'local', id: 'nodebb-theme-persona', }, function (err) { if (err) { return app.alertError(err.message); } highlightSelectedTheme('nodebb-theme-persona'); app.alert({ alert_id: 'admin:theme', type: 'success', title: '[[admin/appearance/themes:theme-changed]]', message: '[[admin/appearance/themes:revert-success]]', timeout: 3500, }); }); } }); }); socket.emit('admin.themes.getInstalled', function (err, themes) { if (err) { return app.alertError(err.message); } var instListEl = $('#installed_themes'); if (!themes.length) { instListEl.append($('