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.
		
		
		
		
		
			
		
			
				
	
	
		
			55 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
| /*
 | |
|  * vim: ts=4:sw=4:expandtab
 | |
|  */
 | |
| (function () {
 | |
|     'use strict';
 | |
|     window.Whisper = window.Whisper || {};
 | |
| 
 | |
|     Whisper.View = Backbone.View.extend({
 | |
|         constructor: function() {
 | |
|             Backbone.View.apply(this, arguments);
 | |
|             Mustache.parse(_.result(this, 'template'));
 | |
|         },
 | |
|         render_attributes: function() {
 | |
|             return _.result(this.model, 'attributes', {});
 | |
|         },
 | |
|         render_partials: function() {
 | |
|             return Whisper.View.Templates;
 | |
|         },
 | |
|         template: function() {
 | |
|             if (this.templateName) {
 | |
|                 return Whisper.View.Templates[this.templateName];
 | |
|             }
 | |
|             return '';
 | |
|         },
 | |
|         render: function() {
 | |
|             var attrs = _.result(this, 'render_attributes', {});
 | |
|             var template = _.result(this, 'template', '');
 | |
|             var partials = _.result(this, 'render_partials', '');
 | |
|             this.$el.html(Mustache.render(template, attrs, partials));
 | |
|             return this;
 | |
|         },
 | |
|         confirm: function(message) {
 | |
|             return new Promise(function(resolve, reject) {
 | |
|                 var dialog = new Whisper.ConfirmationDialogView({
 | |
|                     message: message,
 | |
|                     resolve: resolve,
 | |
|                     reject: reject
 | |
|                 });
 | |
|                 this.$el.append(dialog.el);
 | |
|             }.bind(this));
 | |
|         }
 | |
|     },{
 | |
|         // Class attributes
 | |
|         Templates: (function() {
 | |
|             var templates = {};
 | |
|             $('script[type="text/x-tmpl-mustache"]').each(function(i, el) {
 | |
|                 var $el = $(el);
 | |
|                 var id = $el.attr('id');
 | |
|                 templates[id] = $el.html();
 | |
|             });
 | |
|             return templates;
 | |
|         }())
 | |
|     });
 | |
| })();
 |