You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			70 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
/* global i18n: false */
 | 
						|
/* global Whisper: false */
 | 
						|
 | 
						|
// eslint-disable-next-line func-names
 | 
						|
(function () {
 | 
						|
  'use strict';
 | 
						|
 | 
						|
  window.Whisper = window.Whisper || {};
 | 
						|
 | 
						|
  Whisper.DebugLogLinkView = Whisper.View.extend({
 | 
						|
    templateName: 'debug-log-link',
 | 
						|
    initialize(options) {
 | 
						|
      this.url = options.url;
 | 
						|
    },
 | 
						|
    render_attributes() {
 | 
						|
      return {
 | 
						|
        url: this.url,
 | 
						|
        reportIssue: i18n('reportIssue'),
 | 
						|
      };
 | 
						|
    },
 | 
						|
  });
 | 
						|
  Whisper.DebugLogView = Whisper.View.extend({
 | 
						|
    templateName: 'debug-log',
 | 
						|
    className: 'debug-log modal',
 | 
						|
    initialize() {
 | 
						|
      this.render();
 | 
						|
      this.$('textarea').val(i18n('loading'));
 | 
						|
 | 
						|
      // eslint-disable-next-line more/no-then
 | 
						|
      window.log.fetch().then((text) => {
 | 
						|
        this.$('textarea').val(text);
 | 
						|
      });
 | 
						|
    },
 | 
						|
    events: {
 | 
						|
      'click .submit': 'submit',
 | 
						|
      'click .close': 'close',
 | 
						|
    },
 | 
						|
    render_attributes: {
 | 
						|
      title: i18n('submitDebugLog'),
 | 
						|
      cancel: i18n('cancel'),
 | 
						|
      submit: i18n('submit'),
 | 
						|
      close: i18n('gotIt'),
 | 
						|
      debugLogExplanation: i18n('debugLogExplanation'),
 | 
						|
    },
 | 
						|
    close(e) {
 | 
						|
      e.preventDefault();
 | 
						|
      this.remove();
 | 
						|
    },
 | 
						|
    async submit(e) {
 | 
						|
      e.preventDefault();
 | 
						|
      const text = this.$('textarea').val();
 | 
						|
      if (text.length === 0) {
 | 
						|
        return;
 | 
						|
      }
 | 
						|
 | 
						|
      this.$('.buttons, textarea').remove();
 | 
						|
      this.$('.result').addClass('loading');
 | 
						|
 | 
						|
      const publishedLogURL = await window.log.publish(text);
 | 
						|
      const view = new Whisper.DebugLogLinkView({
 | 
						|
        url: publishedLogURL,
 | 
						|
        el: this.$('.result'),
 | 
						|
      });
 | 
						|
      this.$('.loading').removeClass('loading');
 | 
						|
      view.render();
 | 
						|
      this.$('.link').focus().select();
 | 
						|
    },
 | 
						|
  });
 | 
						|
}());
 |