signal-desktop/js/views/debug_log_view.js

67 lines
1.9 KiB
JavaScript
Raw Normal View History

/*
* vim: ts=4:sw=4:expandtab
*/
(function () {
'use strict';
window.Whisper = window.Whisper || {};
Whisper.DebugLogLinkView = Whisper.View.extend({
templateName: 'debug-log-link',
initialize: function(options) {
this.url = options.url;
},
render_attributes: function() {
return {
url: this.url,
reportIssue: i18n('reportIssue')
};
}
});
Whisper.DebugLogView = Whisper.View.extend({
templateName: 'debug-log',
className: 'debug-log modal',
initialize: function() {
this.render();
this.$('textarea').val(i18n('loading'));
window.log.fetch().then(function(text) {
this.$('textarea').val(text);
}.bind(this));
},
events: {
'click .submit': 'submit',
'click .close': 'close'
},
2015-12-26 07:01:22 +00:00
render_attributes: {
title: i18n('submitDebugLog'),
cancel: i18n('cancel'),
submit: i18n('submit'),
close: i18n('gotIt'),
debugLogExplanation: i18n('debugLogExplanation')
},
close: function(e) {
e.preventDefault();
this.remove();
},
submit: function(e) {
e.preventDefault();
var text = this.$('textarea').val();
if (text.length === 0) {
return;
}
log.publish(text).then(function(url) {
var view = new Whisper.DebugLogLinkView({
url: url,
el: this.$('.result')
});
this.$('.loading').removeClass('loading');
view.render();
this.$('.link').focus().select();
}.bind(this));
this.$('.buttons, textarea').remove();
this.$('.result').addClass('loading');
}
});
})();