1 // ==========================================================================
  2 // Project:   The M-Project - Mobile HTML5 Application Framework
  3 // Copyright: (c) 2010 M-Way Solutions GmbH. All rights reserved.
  4 // Creator:   Dominik
  5 // Date:      23.11.2010
  6 // License:   Dual licensed under the MIT or GPL Version 2 licenses.
  7 //            http://github.com/mwaylabs/The-M-Project/blob/master/MIT-LICENSE
  8 //            http://github.com/mwaylabs/The-M-Project/blob/master/GPL-LICENSE
  9 // ==========================================================================
 10 
 11 m_require('ui/dialog.js');
 12 
 13 /**
 14  * @class
 15  *
 16  * This is the prototype for any alert dialog view. It is derived from M.DialogView
 17  * and mainly used for implementing a alert dialog view specific render method.
 18  *
 19  * @extends M.DialogView
 20  */
 21 M.AlertDialogView = M.DialogView.extend(
 22 /** @scope M.AlertDialogView.prototype */ {
 23 
 24     /**
 25      * The type of this object.
 26      *
 27      * @type String
 28      */
 29     type: 'M.AlertDialogView',
 30 
 31     /**
 32      * The default title of an alert dialog.
 33      *
 34      * @type String
 35      */
 36     title: 'Alert',
 37 
 38     /**
 39      * The default message of an alert dialog.
 40      *
 41      * @type String
 42      */
 43     message: '',
 44 
 45     /**
 46      * The default transition of an alert dialog.
 47      *
 48      * @type String
 49      */
 50     transition: M.TRANSITION.POP,
 51 
 52     /**
 53      * Determines whether the alert dialog gets a default ok button.
 54      *
 55      * @type Boolean
 56      */
 57     hasOkButton: YES,
 58 
 59     /**
 60      * Renders an alert dialog as a pop-up page.
 61      *
 62      * @private
 63      * @returns {String} The alert dialog view's html representation.
 64      */
 65     render: function() {
 66         this.html = '<div data-role="dialog" id="' + this.id + '">';
 67         this.html += '<div data-role="header" data-position="fixed"><h1>' + this.title + '</h1></div>';
 68         this.html += '<div data-role="content">' + this.message;
 69 
 70         if(this.hasOkButton) {
 71             var button = M.ButtonView.design({
 72                 value: 'OK',
 73                 cssClass: 'b',
 74                 target: this,
 75                 action: 'dialogWillClose',
 76                 role: 'onOk'
 77             });
 78             this.buttonIds.push(button.id);
 79             this.html += button.render();
 80         }
 81 
 82         this.html += '</div>';        
 83         this.html += '</div>';
 84         
 85         $('body').append(this.html);
 86     }
 87 
 88 });