signal-desktop/js/views/toast_view.js

40 lines
821 B
JavaScript
Raw Normal View History

/* global Whisper, Mustache, _ */
// eslint-disable-next-line func-names
2018-04-27 21:25:04 +00:00
(function() {
'use strict';
2018-04-27 21:25:04 +00:00
window.Whisper = window.Whisper || {};
2018-04-27 21:25:04 +00:00
Whisper.ToastView = Whisper.View.extend({
className: 'toast',
templateName: 'toast',
initialize() {
2018-04-27 21:25:04 +00:00
this.$el.hide();
this.timeout = 2000;
2018-04-27 21:25:04 +00:00
},
close() {
2018-04-27 21:25:04 +00:00
this.$el.fadeOut(this.remove.bind(this));
},
render() {
2018-04-27 21:25:04 +00:00
this.$el.html(
Mustache.render(
_.result(this, 'template', ''),
_.result(this, 'render_attributes', '')
)
);
this.$el.attr('tabIndex', 0);
2018-04-27 21:25:04 +00:00
this.$el.show();
setTimeout(this.close.bind(this), this.timeout);
2018-04-27 21:25:04 +00:00
},
});
2019-11-07 21:36:16 +00:00
Whisper.ToastView.show = (View, el) => {
const toast = new View();
toast.$el.appendTo(el);
toast.render();
};
})();