'use strict'; define('forum/flags/detail', ['forum/flags/list', 'components', 'translator', 'benchpress', 'forum/account/header'], function (FlagsList, components, translator, Benchpress, AccountHeader) { var Detail = {}; Detail.init = function () { // Update attributes $('#state').val(ajaxify.data.state).removeAttr('disabled'); $('#assignee').val(ajaxify.data.assignee).removeAttr('disabled'); $('[data-action]').on('click', function () { var action = this.getAttribute('data-action'); var uid = $(this).parents('[data-uid]').attr('data-uid'); switch (action) { case 'update': socket.emit('flags.update', { flagId: ajaxify.data.flagId, data: $('#attributes').serializeArray(), }, function (err, history) { if (err) { return app.alertError(err.message); } app.alertSuccess('[[flags:updated]]'); Detail.reloadHistory(history); }); break; case 'appendNote': socket.emit('flags.appendNote', { flagId: ajaxify.data.flagId, note: document.getElementById('note').value, }, function (err, payload) { if (err) { return app.alertError(err.message); } app.alertSuccess('[[flags:note-added]]'); Detail.reloadNotes(payload.notes); Detail.reloadHistory(payload.history); }); break; case 'chat': app.newChat(uid); break; case 'ban': AccountHeader.banAccount(uid, ajaxify.refresh); break; case 'delete': AccountHeader.deleteAccount(uid, ajaxify.refresh); break; } }); FlagsList.enableFilterForm(); }; Detail.reloadNotes = function (notes) { Benchpress.parse('flags/detail', 'notes', { notes: notes, }, function (html) { var wrapperEl = components.get('flag/notes'); wrapperEl.empty(); wrapperEl.html(html); wrapperEl.find('span.timeago').timeago(); document.getElementById('note').value = ''; }); }; Detail.reloadHistory = function (history) { Benchpress.parse('flags/detail', 'history', { history: history, }, function (html) { translator.translate(html, function (translated) { var wrapperEl = components.get('flag/history'); wrapperEl.empty(); wrapperEl.html(translated); wrapperEl.find('span.timeago').timeago(); }); }); }; return Detail; });