Commits

Scott Scites committed 268dc74

Mostly pep8 compliant; added validation for hidden click events

Comments (0)

Files changed (13)

 		var $method;
 		$cls_definition.__module__ = 'Blog';
 		$cls_definition['STARTUP'] = 'startup';
-		$cls_definition['HOME_STARTUP'] = 'homeStartup';
-		$cls_definition['WRITE_STARTUP'] = 'writeStartup';
-		$cls_definition['EDIT_STARTUP'] = 'editStartup';
 		$cls_definition['ADD_POST'] = 'addPost';
 		$cls_definition['EDIT_POST'] = 'editPost';
 		$cls_definition['DELETE_POST'] = 'deletePost';
 		$cls_definition['GET_POSTS'] = 'getPosts';
 		$cls_definition['POSTS_RETRIEVED'] = 'postsRetrieved';
+		$cls_definition['EDIT_CANCELED'] = 'editCanceled';
 		$cls_definition['VIEW_WRITE_POST'] = 'viewWritePost';
 		$cls_definition['VIEW_EDIT_POST'] = 'viewEditPost';
 		$cls_definition['POST_REMOTE_FAILURE'] = 'postRemoteFailure';
 
 from puremvc.patterns.facade import Facade
 from controller import StartupCommand
-from controller import GetPostsCommand 
+from controller import GetPostsCommand
 from components import PyJsApp
 
-"""
-Concrete Facade class implementation.
-"""
+
 class AppFacade(Facade):
 
-	# Notification constants
-	STARTUP = "startup"
-	HOME_STARTUP = "homeStartup"
-	WRITE_STARTUP = "writeStartup"
-	EDIT_STARTUP = "editStartup"
-	
-	ADD_POST = "addPost"	
-	EDIT_POST = "editPost"	
-	DELETE_POST = "deletePost"
-	
-	GET_POSTS = "getPosts"
-	POSTS_RETRIEVED = "postsRetrieved"
-	
-	VIEW_WRITE_POST = "viewWritePost"
-	VIEW_EDIT_POST = "viewEditPost"
-	POST_REMOTE_FAILURE = "postRemoteFailure"
-	POST_REMOTE_NONE = "postRemoteNone"
-	POST_ADDED = "postAdded"
-	POST_EDITED = "postEdited"
-	POST_DELETED= "postDeleted"
+    # Notification constants
+    STARTUP = "startup"
 
-	def __init__(self):
-		self.initializeFacade()
-		
-	@staticmethod
-	def getInstance():
-		return AppFacade()
-		
-	def initializeFacade(self):
-		super(AppFacade, self).initializeFacade()
-	
-		self.initializeController()
+    ADD_POST = "addPost"
+    EDIT_POST = "editPost"
+    DELETE_POST = "deletePost"
+
+    GET_POSTS = "getPosts"
+    POSTS_RETRIEVED = "postsRetrieved"
+    EDIT_CANCELED = "editCanceled"
+
+    VIEW_WRITE_POST = "viewWritePost"
+    VIEW_EDIT_POST = "viewEditPost"
+    POST_REMOTE_FAILURE = "postRemoteFailure"
+    POST_REMOTE_NONE = "postRemoteNone"
+    POST_ADDED = "postAdded"
+    POST_EDITED = "postEdited"
+    POST_DELETED = "postDeleted"
+
+    def __init__(self):
+        self.initializeFacade()
+
+    @staticmethod
+    def getInstance():
+        return AppFacade()
+
+    def initializeFacade(self):
+        super(AppFacade, self).initializeFacade()
+
+        self.initializeController()
         """
         Registers commands.
         """
-	def initializeController(self):
-		super(AppFacade, self).initializeController()
-		(super(AppFacade, self).registerCommand
+    def initializeController(self):
+        super(AppFacade, self).initializeController()
+        (super(AppFacade, self).registerCommand
                 (AppFacade.STARTUP, StartupCommand))
-		super(AppFacade, self).registerCommand(AppFacade.GET_POSTS, GetPostsCommand)
+        (super(AppFacade, self).registerCommand
+                (AppFacade.GET_POSTS, GetPostsCommand))
 
 if __name__ == '__main__':
     pyjd.setup("./public/Blog.html")

media/components.py

 from pyjamas.ui.HTML import HTML
 from pyjamas import Window
 
+
 class PyJsApp(object):
-    
+
     app_frame = None
-    
+
     def __init__(self):
         self.app_frame = AppFrame()
 
+
 class AppFrame(object):
-    
+
     edit_panel = None
     home_panel = None
     write_panel = None
-    
+
     def __init__(self):
         self.panel = AbsolutePanel()
         self.edit_panel = EditPanel(self)
         self.panel.add(self.write_panel)
         RootPanel().add(self.panel)
 
+
 class EditPanel(AbsolutePanel):
-    
+
     def __init__(self, key, title, content):
         AbsolutePanel.__init__(self)
         self.edit_header = Label("Edit a Post", StyleName="header_label")
 
 
 class HomePanel(AbsolutePanel):
-    
+
     def __init__(self, parent):
         AbsolutePanel.__init__(self)
         self.home_header = Label("My Blog", StyleName="header_label")
 
     def delete_post(self, sender):
         self.delete_hidden_button.setID(sender.getID())
-        self.delete_hidden_button.click(self) 
+        self.delete_hidden_button.click(self)
 
 
 class WritePanel(AbsolutePanel):
-    
+
     def __init__(self, parent):
         AbsolutePanel.__init__(self)
         self.post_header = Label("Write a Post", StyleName="header_label")

media/controller.py

 from view import WriteMediator
 from view import EditMediator
 
-"""
-Startup Command
 
-Executed when the C{AppFacade} first instantiates.
-"""
 class StartupCommand(SimpleCommand):
     def execute(self, note):
         self.facade.registerProxy(PostRemoteProxy())
         self.facade.registerMediator(EditMediator
                 (main_panel.edit_panel))
 
-"""
-Get Posts Command
 
-Uses the C{PostProxy} to get a list of all posts.
-"""            
 class GetPostsCommand(SimpleCommand):
     def execute(self, note):
         facade = self.facade
 
 from pyjamas.JSONService import JSONProxy
 from puremvc.patterns.proxy import Proxy
-import vo, Blog
+import vo
+import Blog
 
-"""
-Proxy for managing creation, editing, deletion and retrieval of posts.
-"""
+
 class PostRemoteProxy(Proxy):
     NAME = "PostRemoteProxy"
+
     def __init__(self):
-        super(PostRemoteProxy, self).__init__(PostRemoteProxy.NAME,[])
+        super(PostRemoteProxy, self).__init__(PostRemoteProxy.NAME, [])
         self.data = []
         self.remote = DataService()
 
                 self.sendNotification(Blog.AppFacade.POST_DELETED)
                 return
 
-    """
-    Retrieves an array of all C{PostVO} objects from the datastore in descending order
-    """
     def retrieve_posts(self):
         id = self.remote.get_posts(self)
         if id < 0:
         id = self.remote.add_post(title, content, self)
         if id < 0:
             self.sendNotification(Blog.AppFacade.POST_REMOTE_FAILURE)
-        
-    """
-    Edits a C{PostVO} in the datastore by the unique key of the post and the updated title and content.
-    """
+
     def edit_remote_blog_post(self, key, title, content):
         id = self.remote.update_post(key, title, content, self)
         if id < 0:

media/output/Blog.ie6.cache.html

 		var $method;
 		$cls_definition.__module__ = 'Blog';
 		$cls_definition['STARTUP'] = 'startup';
-		$cls_definition['HOME_STARTUP'] = 'homeStartup';
-		$cls_definition['WRITE_STARTUP'] = 'writeStartup';
-		$cls_definition['EDIT_STARTUP'] = 'editStartup';
 		$cls_definition['ADD_POST'] = 'addPost';
 		$cls_definition['EDIT_POST'] = 'editPost';
 		$cls_definition['DELETE_POST'] = 'deletePost';
 		$cls_definition['GET_POSTS'] = 'getPosts';
 		$cls_definition['POSTS_RETRIEVED'] = 'postsRetrieved';
+		$cls_definition['EDIT_CANCELED'] = 'editCanceled';
 		$cls_definition['VIEW_WRITE_POST'] = 'viewWritePost';
 		$cls_definition['VIEW_EDIT_POST'] = 'viewEditPost';
 		$cls_definition['POST_REMOTE_FAILURE'] = 'postRemoteFailure';
 
 
 	$m['Mediator'] = $p['___import___']('puremvc.patterns.mediator.Mediator', null, null, false);
-	$m['puremvc'] = $p['___import___']('puremvc.interfaces', null);
 	$m['model'] = $p['___import___']('model', null);
 	$m['Blog'] = $p['___import___']('Blog', null);
 	$m['HomeMediator'] = (function(){
 			} else {
 				var self = arguments[0];
 			}
-			var $attr18,$attr15,$attr14,$attr17,$attr16,$attr11,$attr13,$attr12;
+			var $attr20,$attr19,$attr18,$attr15,$attr14,$attr17,$attr16,$attr11,$attr13,$attr12;
 			return $p['list']([(($attr11=($attr12=$m['Blog']['AppFacade'])['POSTS_RETRIEVED']) == null || (($attr12.__is_instance__) && typeof $attr11 == 'function') || (typeof $attr11['__get__'] == 'function')?
 						$p['getattr']($attr12, 'POSTS_RETRIEVED'):
 						$m['Blog']['AppFacade']['POSTS_RETRIEVED']), (($attr13=($attr14=$m['Blog']['AppFacade'])['POST_ADDED']) == null || (($attr14.__is_instance__) && typeof $attr13 == 'function') || (typeof $attr13['__get__'] == 'function')?
 						$p['getattr']($attr16, 'POST_EDITED'):
 						$m['Blog']['AppFacade']['POST_EDITED']), (($attr17=($attr18=$m['Blog']['AppFacade'])['POST_DELETED']) == null || (($attr18.__is_instance__) && typeof $attr17 == 'function') || (typeof $attr17['__get__'] == 'function')?
 						$p['getattr']($attr18, 'POST_DELETED'):
-						$m['Blog']['AppFacade']['POST_DELETED'])]);
+						$m['Blog']['AppFacade']['POST_DELETED']), (($attr19=($attr20=$m['Blog']['AppFacade'])['EDIT_CANCELED']) == null || (($attr20.__is_instance__) && typeof $attr19 == 'function') || (typeof $attr19['__get__'] == 'function')?
+						$p['getattr']($attr20, 'EDIT_CANCELED'):
+						$m['Blog']['AppFacade']['EDIT_CANCELED'])]);
 		}
 	, 1, [null,null,['self']]);
 		$cls_definition['listNotificationInterests'] = $method;
 				var self = arguments[0];
 				note = arguments[1];
 			}
-			var $attr20,$attr21,$attr22,$attr23,$attr19,$attr25,$attr26,$attr24,note_name;
+			var $attr21,$attr22,$attr23,$attr24,$attr25,$attr26,$attr27,$attr28,$attr29,$attr30,note_name;
 			note_name = note['getName']();
-			if ($p['bool']($p['op_eq'](note_name, (($attr19=($attr20=$m['Blog']['AppFacade'])['POSTS_RETRIEVED']) == null || (($attr20.__is_instance__) && typeof $attr19 == 'function') || (typeof $attr19['__get__'] == 'function')?
-						$p['getattr']($attr20, 'POSTS_RETRIEVED'):
+			if ($p['bool']($p['op_eq'](note_name, (($attr21=($attr22=$m['Blog']['AppFacade'])['POSTS_RETRIEVED']) == null || (($attr22.__is_instance__) && typeof $attr21 == 'function') || (typeof $attr21['__get__'] == 'function')?
+						$p['getattr']($attr22, 'POSTS_RETRIEVED'):
 						$m['Blog']['AppFacade']['POSTS_RETRIEVED'])))) {
 				self['update_posts']();
 			}
-			if ($p['bool']($p['op_eq'](note_name, (($attr21=($attr22=$m['Blog']['AppFacade'])['POST_ADDED']) == null || (($attr22.__is_instance__) && typeof $attr21 == 'function') || (typeof $attr21['__get__'] == 'function')?
-						$p['getattr']($attr22, 'POST_ADDED'):
+			if ($p['bool']($p['op_eq'](note_name, (($attr23=($attr24=$m['Blog']['AppFacade'])['POST_ADDED']) == null || (($attr24.__is_instance__) && typeof $attr23 == 'function') || (typeof $attr23['__get__'] == 'function')?
+						$p['getattr']($attr24, 'POST_ADDED'):
 						$m['Blog']['AppFacade']['POST_ADDED'])))) {
 				self['clear_update_posts']();
 			}
-			if ($p['bool']($p['op_eq'](note_name, (($attr23=($attr24=$m['Blog']['AppFacade'])['POST_EDITED']) == null || (($attr24.__is_instance__) && typeof $attr23 == 'function') || (typeof $attr23['__get__'] == 'function')?
-						$p['getattr']($attr24, 'POST_EDITED'):
+			if ($p['bool']($p['op_eq'](note_name, (($attr25=($attr26=$m['Blog']['AppFacade'])['POST_EDITED']) == null || (($attr26.__is_instance__) && typeof $attr25 == 'function') || (typeof $attr25['__get__'] == 'function')?
+						$p['getattr']($attr26, 'POST_EDITED'):
 						$m['Blog']['AppFacade']['POST_EDITED'])))) {
 				self['clear_update_posts']();
 			}
-			if ($p['bool']($p['op_eq'](note_name, (($attr25=($attr26=$m['Blog']['AppFacade'])['POST_DELETED']) == null || (($attr26.__is_instance__) && typeof $attr25 == 'function') || (typeof $attr25['__get__'] == 'function')?
-						$p['getattr']($attr26, 'POST_DELETED'):
+			if ($p['bool']($p['op_eq'](note_name, (($attr27=($attr28=$m['Blog']['AppFacade'])['POST_DELETED']) == null || (($attr28.__is_instance__) && typeof $attr27 == 'function') || (typeof $attr27['__get__'] == 'function')?
+						$p['getattr']($attr28, 'POST_DELETED'):
 						$m['Blog']['AppFacade']['POST_DELETED'])))) {
 				self['clear_update_posts']();
 			}
+			if ($p['bool']($p['op_eq'](note_name, (($attr29=($attr30=$m['Blog']['AppFacade'])['EDIT_CANCELED']) == null || (($attr30.__is_instance__) && typeof $attr29 == 'function') || (typeof $attr29['__get__'] == 'function')?
+						$p['getattr']($attr30, 'EDIT_CANCELED'):
+						$m['Blog']['AppFacade']['EDIT_CANCELED'])))) {
+				self['clear_hidden_id']();
+			}
 			return null;
 		}
 	, 1, [null,null,['self'],['note']]);
 			}
 
 			self['clear_posts']();
+			self['clear_hidden_id']();
 			self['update_posts']();
 			return null;
 		}
 			} else {
 				var self = arguments[0];
 			}
-			var $attr28,$attr27;
-			self['viewComponent']['remove']((($attr27=($attr28=self['viewComponent'])['contents']) == null || (($attr28.__is_instance__) && typeof $attr27 == 'function') || (typeof $attr27['__get__'] == 'function')?
-						$p['getattr']($attr28, 'contents'):
+			var $attr32,$attr31;
+			self['viewComponent']['remove']((($attr31=($attr32=self['viewComponent'])['contents']) == null || (($attr32.__is_instance__) && typeof $attr31 == 'function') || (typeof $attr31['__get__'] == 'function')?
+						$p['getattr']($attr32, 'contents'):
 						self['viewComponent']['contents']));
 			return null;
 		}
 	, 1, [null,null,['self']]);
 		$cls_definition['clear_posts'] = $method;
+		$method = $pyjs__bind_method2('clear_hidden_id', function() {
+			if (this.__is_instance__ === true) {
+				var self = this;
+			} else {
+				var self = arguments[0];
+			}
+
+			self['viewComponent']['edit_hidden_button']['setID']('');
+			self['viewComponent']['delete_hidden_button']['setID']('');
+			return null;
+		}
+	, 1, [null,null,['self']]);
+		$cls_definition['clear_hidden_id'] = $method;
 		$method = $pyjs__bind_method2('update_posts', function() {
 			if (this.__is_instance__ === true) {
 				var self = this;
 			} else {
 				var self = arguments[0];
 			}
-			var $attr29,$attr30;
-			self['sendNotification']((($attr29=($attr30=$m['Blog']['AppFacade'])['VIEW_WRITE_POST']) == null || (($attr30.__is_instance__) && typeof $attr29 == 'function') || (typeof $attr29['__get__'] == 'function')?
-						$p['getattr']($attr30, 'VIEW_WRITE_POST'):
+			var $attr33,$attr34;
+			self['sendNotification']((($attr33=($attr34=$m['Blog']['AppFacade'])['VIEW_WRITE_POST']) == null || (($attr34.__is_instance__) && typeof $attr33 == 'function') || (typeof $attr33['__get__'] == 'function')?
+						$p['getattr']($attr34, 'VIEW_WRITE_POST'):
 						$m['Blog']['AppFacade']['VIEW_WRITE_POST']));
 			return null;
 		}
 	, 1, [null,null,['self']]);
 		$cls_definition['on_write_click'] = $method;
+		$method = $pyjs__bind_method2('is_click_id_set', function(sender_id) {
+			if (this.__is_instance__ === true) {
+				var self = this;
+			} else {
+				var self = arguments[0];
+				sender_id = arguments[1];
+			}
+			var $or1,$or2;
+			if ($p['bool'](($p['bool']($or1=$p['op_eq'](sender_id, ''))?$or1:$p['op_eq'](sender_id, null)))) {
+				return false;
+			}
+			return true;
+		}
+	, 1, [null,null,['self'],['sender_id']]);
+		$cls_definition['is_click_id_set'] = $method;
 		$method = $pyjs__bind_method2('on_edit_click', function(sender) {
 			if (this.__is_instance__ === true) {
 				var self = this;
 				sender = arguments[1];
 			}
 			if (typeof sender == 'undefined') sender=arguments.callee.__args__[3][1];
-			var $attr32,$attr31;
-			self['sendNotification']((($attr31=($attr32=$m['Blog']['AppFacade'])['VIEW_EDIT_POST']) == null || (($attr32.__is_instance__) && typeof $attr31 == 'function') || (typeof $attr31['__get__'] == 'function')?
-						$p['getattr']($attr32, 'VIEW_EDIT_POST'):
-						$m['Blog']['AppFacade']['VIEW_EDIT_POST']), sender['getID']());
+			var $attr35,$attr36;
+			if ($p['bool'](self['is_click_id_set'](sender['getID']()))) {
+				self['sendNotification']((($attr35=($attr36=$m['Blog']['AppFacade'])['VIEW_EDIT_POST']) == null || (($attr36.__is_instance__) && typeof $attr35 == 'function') || (typeof $attr35['__get__'] == 'function')?
+							$p['getattr']($attr36, 'VIEW_EDIT_POST'):
+							$m['Blog']['AppFacade']['VIEW_EDIT_POST']), sender['getID']());
+			}
 			return null;
 		}
 	, 1, [null,null,['self'],['sender', null]]);
 			}
 			if (typeof sender == 'undefined') sender=arguments.callee.__args__[3][1];
 			var post_id,key;
-			key = sender['getID']();
-			post_id = key['$$replace']('delete_', '');
-			self['post_remote_proxy']['delete_remote_post'](post_id);
+			if ($p['bool'](self['is_click_id_set'](sender['getID']()))) {
+				key = sender['getID']();
+				post_id = key['$$replace']('delete_', '');
+				self['post_remote_proxy']['delete_remote_post'](post_id);
+			}
 			return null;
 		}
 	, 1, [null,null,['self'],['sender', null]]);
 				var self = arguments[0];
 				viewComponent = arguments[1];
 			}
-			var $attr40,$attr33,$attr37,$attr36,$attr35,$attr34,$attr39,$attr38;
-			$p['$$super']($m['WriteMediator'], self)['__init__']((($attr33=($attr34=$m['WriteMediator'])['NAME']) == null || (($attr34.__is_instance__) && typeof $attr33 == 'function') || (typeof $attr33['__get__'] == 'function')?
-						$p['getattr']($attr34, 'NAME'):
+			var $attr42,$attr44,$attr37,$attr43,$attr40,$attr41,$attr39,$attr38;
+			$p['$$super']($m['WriteMediator'], self)['__init__']((($attr37=($attr38=$m['WriteMediator'])['NAME']) == null || (($attr38.__is_instance__) && typeof $attr37 == 'function') || (typeof $attr37['__get__'] == 'function')?
+						$p['getattr']($attr38, 'NAME'):
 						$m['WriteMediator']['NAME']), viewComponent);
 			$p['setattr'](self['viewComponent'], 'mediator', self);
-			$p['setattr'](self, 'post_remote_proxy', self['facade']['retrieveProxy']((($attr35=($attr36=$m['model']['PostRemoteProxy'])['NAME']) == null || (($attr36.__is_instance__) && typeof $attr35 == 'function') || (typeof $attr35['__get__'] == 'function')?
-						$p['getattr']($attr36, 'NAME'):
+			$p['setattr'](self, 'post_remote_proxy', self['facade']['retrieveProxy']((($attr39=($attr40=$m['model']['PostRemoteProxy'])['NAME']) == null || (($attr40.__is_instance__) && typeof $attr39 == 'function') || (typeof $attr39['__get__'] == 'function')?
+						$p['getattr']($attr40, 'NAME'):
 						$m['model']['PostRemoteProxy']['NAME'])));
-			self['viewComponent']['post_button']['addClickListener']((($attr37=($attr38=self)['add_post']) == null || (($attr38.__is_instance__) && typeof $attr37 == 'function') || (typeof $attr37['__get__'] == 'function')?
-						$p['getattr']($attr38, 'add_post'):
+			self['viewComponent']['post_button']['addClickListener']((($attr41=($attr42=self)['add_post']) == null || (($attr42.__is_instance__) && typeof $attr41 == 'function') || (typeof $attr41['__get__'] == 'function')?
+						$p['getattr']($attr42, 'add_post'):
 						self['add_post']));
-			self['viewComponent']['cancel_button']['addClickListener']((($attr39=($attr40=self)['on_close']) == null || (($attr40.__is_instance__) && typeof $attr39 == 'function') || (typeof $attr39['__get__'] == 'function')?
-						$p['getattr']($attr40, 'on_close'):
+			self['viewComponent']['cancel_button']['addClickListener']((($attr43=($attr44=self)['on_close']) == null || (($attr44.__is_instance__) && typeof $attr43 == 'function') || (typeof $attr43['__get__'] == 'function')?
+						$p['getattr']($attr44, 'on_close'):
 						self['on_close']));
 			return null;
 		}
 			} else {
 				var self = arguments[0];
 			}
-			var $attr42,$attr41;
-			return $p['list']([(($attr41=($attr42=$m['Blog']['AppFacade'])['VIEW_WRITE_POST']) == null || (($attr42.__is_instance__) && typeof $attr41 == 'function') || (typeof $attr41['__get__'] == 'function')?
-						$p['getattr']($attr42, 'VIEW_WRITE_POST'):
+			var $attr46,$attr45;
+			return $p['list']([(($attr45=($attr46=$m['Blog']['AppFacade'])['VIEW_WRITE_POST']) == null || (($attr46.__is_instance__) && typeof $attr45 == 'function') || (typeof $attr45['__get__'] == 'function')?
+						$p['getattr']($attr46, 'VIEW_WRITE_POST'):
 						$m['Blog']['AppFacade']['VIEW_WRITE_POST'])]);
 		}
 	, 1, [null,null,['self']]);
 				var self = arguments[0];
 				note = arguments[1];
 			}
-			var $attr43,$attr44,note_name;
+			var $attr47,$attr48,note_name;
 			note_name = note['getName']();
-			if ($p['bool']($p['op_eq'](note_name, (($attr43=($attr44=$m['Blog']['AppFacade'])['VIEW_WRITE_POST']) == null || (($attr44.__is_instance__) && typeof $attr43 == 'function') || (typeof $attr43['__get__'] == 'function')?
-						$p['getattr']($attr44, 'VIEW_WRITE_POST'):
+			if ($p['bool']($p['op_eq'](note_name, (($attr47=($attr48=$m['Blog']['AppFacade'])['VIEW_WRITE_POST']) == null || (($attr48.__is_instance__) && typeof $attr47 == 'function') || (typeof $attr47['__get__'] == 'function')?
+						$p['getattr']($attr48, 'VIEW_WRITE_POST'):
 						$m['Blog']['AppFacade']['VIEW_WRITE_POST'])))) {
 				self['view_write_post'](self);
 			}
 				var self = arguments[0];
 				viewComponent = arguments[1];
 			}
-			var $attr51,$attr50,$attr52,$attr46,$attr47,$attr45,$attr48,$attr49;
-			$p['$$super']($m['EditMediator'], self)['__init__']((($attr45=($attr46=$m['EditMediator'])['NAME']) == null || (($attr46.__is_instance__) && typeof $attr45 == 'function') || (typeof $attr45['__get__'] == 'function')?
-						$p['getattr']($attr46, 'NAME'):
+			var $attr51,$attr50,$attr52,$attr55,$attr54,$attr56,$attr53,$attr49;
+			$p['$$super']($m['EditMediator'], self)['__init__']((($attr49=($attr50=$m['EditMediator'])['NAME']) == null || (($attr50.__is_instance__) && typeof $attr49 == 'function') || (typeof $attr49['__get__'] == 'function')?
+						$p['getattr']($attr50, 'NAME'):
 						$m['EditMediator']['NAME']), viewComponent);
 			$p['setattr'](self['viewComponent'], 'mediator', self);
-			$p['setattr'](self, 'edit_remote_proxy', self['facade']['retrieveProxy']((($attr47=($attr48=$m['model']['PostRemoteProxy'])['NAME']) == null || (($attr48.__is_instance__) && typeof $attr47 == 'function') || (typeof $attr47['__get__'] == 'function')?
-						$p['getattr']($attr48, 'NAME'):
+			$p['setattr'](self, 'edit_remote_proxy', self['facade']['retrieveProxy']((($attr51=($attr52=$m['model']['PostRemoteProxy'])['NAME']) == null || (($attr52.__is_instance__) && typeof $attr51 == 'function') || (typeof $attr51['__get__'] == 'function')?
+						$p['getattr']($attr52, 'NAME'):
 						$m['model']['PostRemoteProxy']['NAME'])));
-			self['viewComponent']['edit_button']['addClickListener']((($attr49=($attr50=self)['edit_post']) == null || (($attr50.__is_instance__) && typeof $attr49 == 'function') || (typeof $attr49['__get__'] == 'function')?
-						$p['getattr']($attr50, 'edit_post'):
+			self['viewComponent']['edit_button']['addClickListener']((($attr53=($attr54=self)['edit_post']) == null || (($attr54.__is_instance__) && typeof $attr53 == 'function') || (typeof $attr53['__get__'] == 'function')?
+						$p['getattr']($attr54, 'edit_post'):
 						self['edit_post']));
-			self['viewComponent']['edit_cancel_button']['addClickListener']((($attr51=($attr52=self)['on_edit_close']) == null || (($attr52.__is_instance__) && typeof $attr51 == 'function') || (typeof $attr51['__get__'] == 'function')?
-						$p['getattr']($attr52, 'on_edit_close'):
+			self['viewComponent']['edit_cancel_button']['addClickListener']((($attr55=($attr56=self)['on_edit_close']) == null || (($attr56.__is_instance__) && typeof $attr55 == 'function') || (typeof $attr55['__get__'] == 'function')?
+						$p['getattr']($attr56, 'on_edit_close'):
 						self['on_edit_close']));
 			return null;
 		}
 			} else {
 				var self = arguments[0];
 			}
-			var $attr53,$attr54;
-			return $p['list']([(($attr53=($attr54=$m['Blog']['AppFacade'])['VIEW_EDIT_POST']) == null || (($attr54.__is_instance__) && typeof $attr53 == 'function') || (typeof $attr53['__get__'] == 'function')?
-						$p['getattr']($attr54, 'VIEW_EDIT_POST'):
+			var $attr58,$attr57;
+			return $p['list']([(($attr57=($attr58=$m['Blog']['AppFacade'])['VIEW_EDIT_POST']) == null || (($attr58.__is_instance__) && typeof $attr57 == 'function') || (typeof $attr57['__get__'] == 'function')?
+						$p['getattr']($attr58, 'VIEW_EDIT_POST'):
 						$m['Blog']['AppFacade']['VIEW_EDIT_POST'])]);
 		}
 	, 1, [null,null,['self']]);
 				var self = arguments[0];
 				note = arguments[1];
 			}
-			var $attr55,$attr56,note_body,note_name;
+			var $attr59,$attr60,note_body,note_name;
 			note_name = note['getName']();
 			note_body = note['getBody']();
-			if ($p['bool']($p['op_eq'](note_name, (($attr55=($attr56=$m['Blog']['AppFacade'])['VIEW_EDIT_POST']) == null || (($attr56.__is_instance__) && typeof $attr55 == 'function') || (typeof $attr55['__get__'] == 'function')?
-						$p['getattr']($attr56, 'VIEW_EDIT_POST'):
+			if ($p['bool']($p['op_eq'](note_name, (($attr59=($attr60=$m['Blog']['AppFacade'])['VIEW_EDIT_POST']) == null || (($attr60.__is_instance__) && typeof $attr59 == 'function') || (typeof $attr59['__get__'] == 'function')?
+						$p['getattr']($attr60, 'VIEW_EDIT_POST'):
 						$m['Blog']['AppFacade']['VIEW_EDIT_POST'])))) {
 				self['view_edit_post'](note_body);
 			}
 				var self = arguments[0];
 				post_key = arguments[1];
 			}
-			var $attr59,$attr58,$attr60,$attr57,post_id,post;
+			var $attr64,$attr61,$attr62,$attr63,post_id,post;
 			self['viewComponent']['clear_edit_panel']();
 			self['viewComponent']['edit_dialog']['show']();
 			post_id = post_key['$$replace']('edit_', '');
 			post = self['edit_remote_proxy']['get_post'](post_id);
-			self['viewComponent']['edit_title']['setText']((($attr57=($attr58=post)['title']) == null || (($attr58.__is_instance__) && typeof $attr57 == 'function') || (typeof $attr57['__get__'] == 'function')?
-						$p['getattr']($attr58, 'title'):
+			self['viewComponent']['edit_title']['setText']((($attr61=($attr62=post)['title']) == null || (($attr62.__is_instance__) && typeof $attr61 == 'function') || (typeof $attr61['__get__'] == 'function')?
+						$p['getattr']($attr62, 'title'):
 						post['title']));
-			self['viewComponent']['edit_content']['setText']((($attr59=($attr60=post)['content']) == null || (($attr60.__is_instance__) && typeof $attr59 == 'function') || (typeof $attr59['__get__'] == 'function')?
-						$p['getattr']($attr60, 'content'):
+			self['viewComponent']['edit_content']['setText']((($attr63=($attr64=post)['content']) == null || (($attr64.__is_instance__) && typeof $attr63 == 'function') || (typeof $attr63['__get__'] == 'function')?
+						$p['getattr']($attr64, 'content'):
 						post['content']));
 			self['viewComponent']['edit_hidden_key']['setValue'](post_id);
 			return null;
 				var self = arguments[0];
 				event = arguments[1];
 			}
-
+			var $attr65,$attr66;
 			self['viewComponent']['edit_dialog']['hide']();
+			self['sendNotification']((($attr65=($attr66=$m['Blog']['AppFacade'])['EDIT_CANCELED']) == null || (($attr66.__is_instance__) && typeof $attr65 == 'function') || (typeof $attr65['__get__'] == 'function')?
+						$p['getattr']($attr66, 'EDIT_CANCELED'):
+						$m['Blog']['AppFacade']['EDIT_CANCELED']));
 			return null;
 		}
 	, 1, [null,null,['self'],['event']]);
 
 
 /*
-PYJS_DEPS: ['puremvc.patterns.mediator.Mediator', 'puremvc', 'puremvc.patterns', 'puremvc.patterns.mediator', 'puremvc.interfaces', 'model', 'Blog']
+PYJS_DEPS: ['puremvc.patterns.mediator.Mediator', 'puremvc', 'puremvc.patterns', 'puremvc.patterns.mediator', 'model', 'Blog']
 */
 
 --></script>

media/output/Blog.mozilla.cache.html

 		var $method;
 		$cls_definition.__module__ = 'Blog';
 		$cls_definition['STARTUP'] = 'startup';
-		$cls_definition['HOME_STARTUP'] = 'homeStartup';
-		$cls_definition['WRITE_STARTUP'] = 'writeStartup';
-		$cls_definition['EDIT_STARTUP'] = 'editStartup';
 		$cls_definition['ADD_POST'] = 'addPost';
 		$cls_definition['EDIT_POST'] = 'editPost';
 		$cls_definition['DELETE_POST'] = 'deletePost';
 		$cls_definition['GET_POSTS'] = 'getPosts';
 		$cls_definition['POSTS_RETRIEVED'] = 'postsRetrieved';
+		$cls_definition['EDIT_CANCELED'] = 'editCanceled';
 		$cls_definition['VIEW_WRITE_POST'] = 'viewWritePost';
 		$cls_definition['VIEW_EDIT_POST'] = 'viewEditPost';
 		$cls_definition['POST_REMOTE_FAILURE'] = 'postRemoteFailure';
 
 
 	$m['Mediator'] = $p['___import___']('puremvc.patterns.mediator.Mediator', null, null, false);
-	$m['puremvc'] = $p['___import___']('puremvc.interfaces', null);
 	$m['model'] = $p['___import___']('model', null);
 	$m['Blog'] = $p['___import___']('Blog', null);
 	$m['HomeMediator'] = (function(){
 			} else {
 				var self = arguments[0];
 			}
-			var $attr18,$attr15,$attr14,$attr17,$attr16,$attr11,$attr13,$attr12;
+			var $attr20,$attr19,$attr18,$attr15,$attr14,$attr17,$attr16,$attr11,$attr13,$attr12;
 			return $p['list']([(($attr11=($attr12=$m['Blog']['AppFacade'])['POSTS_RETRIEVED']) == null || (($attr12.__is_instance__) && typeof $attr11 == 'function') || (typeof $attr11['__get__'] == 'function')?
 						$p['getattr']($attr12, 'POSTS_RETRIEVED'):
 						$m['Blog']['AppFacade']['POSTS_RETRIEVED']), (($attr13=($attr14=$m['Blog']['AppFacade'])['POST_ADDED']) == null || (($attr14.__is_instance__) && typeof $attr13 == 'function') || (typeof $attr13['__get__'] == 'function')?
 						$p['getattr']($attr16, 'POST_EDITED'):
 						$m['Blog']['AppFacade']['POST_EDITED']), (($attr17=($attr18=$m['Blog']['AppFacade'])['POST_DELETED']) == null || (($attr18.__is_instance__) && typeof $attr17 == 'function') || (typeof $attr17['__get__'] == 'function')?
 						$p['getattr']($attr18, 'POST_DELETED'):
-						$m['Blog']['AppFacade']['POST_DELETED'])]);
+						$m['Blog']['AppFacade']['POST_DELETED']), (($attr19=($attr20=$m['Blog']['AppFacade'])['EDIT_CANCELED']) == null || (($attr20.__is_instance__) && typeof $attr19 == 'function') || (typeof $attr19['__get__'] == 'function')?
+						$p['getattr']($attr20, 'EDIT_CANCELED'):
+						$m['Blog']['AppFacade']['EDIT_CANCELED'])]);
 		}
 	, 1, [null,null,['self']]);
 		$cls_definition['listNotificationInterests'] = $method;
 				var self = arguments[0];
 				note = arguments[1];
 			}
-			var $attr20,$attr21,$attr22,$attr23,$attr19,$attr25,$attr26,$attr24,note_name;
+			var $attr21,$attr22,$attr23,$attr24,$attr25,$attr26,$attr27,$attr28,$attr29,$attr30,note_name;
 			note_name = note['getName']();
-			if ($p['bool']($p['op_eq'](note_name, (($attr19=($attr20=$m['Blog']['AppFacade'])['POSTS_RETRIEVED']) == null || (($attr20.__is_instance__) && typeof $attr19 == 'function') || (typeof $attr19['__get__'] == 'function')?
-						$p['getattr']($attr20, 'POSTS_RETRIEVED'):
+			if ($p['bool']($p['op_eq'](note_name, (($attr21=($attr22=$m['Blog']['AppFacade'])['POSTS_RETRIEVED']) == null || (($attr22.__is_instance__) && typeof $attr21 == 'function') || (typeof $attr21['__get__'] == 'function')?
+						$p['getattr']($attr22, 'POSTS_RETRIEVED'):
 						$m['Blog']['AppFacade']['POSTS_RETRIEVED'])))) {
 				self['update_posts']();
 			}
-			if ($p['bool']($p['op_eq'](note_name, (($attr21=($attr22=$m['Blog']['AppFacade'])['POST_ADDED']) == null || (($attr22.__is_instance__) && typeof $attr21 == 'function') || (typeof $attr21['__get__'] == 'function')?
-						$p['getattr']($attr22, 'POST_ADDED'):
+			if ($p['bool']($p['op_eq'](note_name, (($attr23=($attr24=$m['Blog']['AppFacade'])['POST_ADDED']) == null || (($attr24.__is_instance__) && typeof $attr23 == 'function') || (typeof $attr23['__get__'] == 'function')?
+						$p['getattr']($attr24, 'POST_ADDED'):
 						$m['Blog']['AppFacade']['POST_ADDED'])))) {
 				self['clear_update_posts']();
 			}
-			if ($p['bool']($p['op_eq'](note_name, (($attr23=($attr24=$m['Blog']['AppFacade'])['POST_EDITED']) == null || (($attr24.__is_instance__) && typeof $attr23 == 'function') || (typeof $attr23['__get__'] == 'function')?
-						$p['getattr']($attr24, 'POST_EDITED'):
+			if ($p['bool']($p['op_eq'](note_name, (($attr25=($attr26=$m['Blog']['AppFacade'])['POST_EDITED']) == null || (($attr26.__is_instance__) && typeof $attr25 == 'function') || (typeof $attr25['__get__'] == 'function')?
+						$p['getattr']($attr26, 'POST_EDITED'):
 						$m['Blog']['AppFacade']['POST_EDITED'])))) {
 				self['clear_update_posts']();
 			}
-			if ($p['bool']($p['op_eq'](note_name, (($attr25=($attr26=$m['Blog']['AppFacade'])['POST_DELETED']) == null || (($attr26.__is_instance__) && typeof $attr25 == 'function') || (typeof $attr25['__get__'] == 'function')?
-						$p['getattr']($attr26, 'POST_DELETED'):
+			if ($p['bool']($p['op_eq'](note_name, (($attr27=($attr28=$m['Blog']['AppFacade'])['POST_DELETED']) == null || (($attr28.__is_instance__) && typeof $attr27 == 'function') || (typeof $attr27['__get__'] == 'function')?
+						$p['getattr']($attr28, 'POST_DELETED'):
 						$m['Blog']['AppFacade']['POST_DELETED'])))) {
 				self['clear_update_posts']();
 			}
+			if ($p['bool']($p['op_eq'](note_name, (($attr29=($attr30=$m['Blog']['AppFacade'])['EDIT_CANCELED']) == null || (($attr30.__is_instance__) && typeof $attr29 == 'function') || (typeof $attr29['__get__'] == 'function')?
+						$p['getattr']($attr30, 'EDIT_CANCELED'):
+						$m['Blog']['AppFacade']['EDIT_CANCELED'])))) {
+				self['clear_hidden_id']();
+			}
 			return null;
 		}
 	, 1, [null,null,['self'],['note']]);
 			}
 
 			self['clear_posts']();
+			self['clear_hidden_id']();
 			self['update_posts']();
 			return null;
 		}
 			} else {
 				var self = arguments[0];
 			}
-			var $attr28,$attr27;
-			self['viewComponent']['remove']((($attr27=($attr28=self['viewComponent'])['contents']) == null || (($attr28.__is_instance__) && typeof $attr27 == 'function') || (typeof $attr27['__get__'] == 'function')?
-						$p['getattr']($attr28, 'contents'):
+			var $attr32,$attr31;
+			self['viewComponent']['remove']((($attr31=($attr32=self['viewComponent'])['contents']) == null || (($attr32.__is_instance__) && typeof $attr31 == 'function') || (typeof $attr31['__get__'] == 'function')?
+						$p['getattr']($attr32, 'contents'):
 						self['viewComponent']['contents']));
 			return null;
 		}
 	, 1, [null,null,['self']]);
 		$cls_definition['clear_posts'] = $method;
+		$method = $pyjs__bind_method2('clear_hidden_id', function() {
+			if (this.__is_instance__ === true) {
+				var self = this;
+			} else {
+				var self = arguments[0];
+			}
+
+			self['viewComponent']['edit_hidden_button']['setID']('');
+			self['viewComponent']['delete_hidden_button']['setID']('');
+			return null;
+		}
+	, 1, [null,null,['self']]);
+		$cls_definition['clear_hidden_id'] = $method;
 		$method = $pyjs__bind_method2('update_posts', function() {
 			if (this.__is_instance__ === true) {
 				var self = this;
 			} else {
 				var self = arguments[0];
 			}
-			var $attr29,$attr30;
-			self['sendNotification']((($attr29=($attr30=$m['Blog']['AppFacade'])['VIEW_WRITE_POST']) == null || (($attr30.__is_instance__) && typeof $attr29 == 'function') || (typeof $attr29['__get__'] == 'function')?
-						$p['getattr']($attr30, 'VIEW_WRITE_POST'):
+			var $attr33,$attr34;
+			self['sendNotification']((($attr33=($attr34=$m['Blog']['AppFacade'])['VIEW_WRITE_POST']) == null || (($attr34.__is_instance__) && typeof $attr33 == 'function') || (typeof $attr33['__get__'] == 'function')?
+						$p['getattr']($attr34, 'VIEW_WRITE_POST'):
 						$m['Blog']['AppFacade']['VIEW_WRITE_POST']));
 			return null;
 		}
 	, 1, [null,null,['self']]);
 		$cls_definition['on_write_click'] = $method;
+		$method = $pyjs__bind_method2('is_click_id_set', function(sender_id) {
+			if (this.__is_instance__ === true) {
+				var self = this;
+			} else {
+				var self = arguments[0];
+				sender_id = arguments[1];
+			}
+			var $or1,$or2;
+			if ($p['bool'](($p['bool']($or1=$p['op_eq'](sender_id, ''))?$or1:$p['op_eq'](sender_id, null)))) {
+				return false;
+			}
+			return true;
+		}
+	, 1, [null,null,['self'],['sender_id']]);
+		$cls_definition['is_click_id_set'] = $method;
 		$method = $pyjs__bind_method2('on_edit_click', function(sender) {
 			if (this.__is_instance__ === true) {
 				var self = this;
 				sender = arguments[1];
 			}
 			if (typeof sender == 'undefined') sender=arguments.callee.__args__[3][1];
-			var $attr32,$attr31;
-			self['sendNotification']((($attr31=($attr32=$m['Blog']['AppFacade'])['VIEW_EDIT_POST']) == null || (($attr32.__is_instance__) && typeof $attr31 == 'function') || (typeof $attr31['__get__'] == 'function')?
-						$p['getattr']($attr32, 'VIEW_EDIT_POST'):
-						$m['Blog']['AppFacade']['VIEW_EDIT_POST']), sender['getID']());
+			var $attr35,$attr36;
+			if ($p['bool'](self['is_click_id_set'](sender['getID']()))) {
+				self['sendNotification']((($attr35=($attr36=$m['Blog']['AppFacade'])['VIEW_EDIT_POST']) == null || (($attr36.__is_instance__) && typeof $attr35 == 'function') || (typeof $attr35['__get__'] == 'function')?
+							$p['getattr']($attr36, 'VIEW_EDIT_POST'):
+							$m['Blog']['AppFacade']['VIEW_EDIT_POST']), sender['getID']());
+			}
 			return null;
 		}
 	, 1, [null,null,['self'],['sender', null]]);
 			}
 			if (typeof sender == 'undefined') sender=arguments.callee.__args__[3][1];
 			var post_id,key;
-			key = sender['getID']();
-			post_id = key['$$replace']('delete_', '');
-			self['post_remote_proxy']['delete_remote_post'](post_id);
+			if ($p['bool'](self['is_click_id_set'](sender['getID']()))) {
+				key = sender['getID']();
+				post_id = key['$$replace']('delete_', '');
+				self['post_remote_proxy']['delete_remote_post'](post_id);
+			}
 			return null;
 		}
 	, 1, [null,null,['self'],['sender', null]]);
 				var self = arguments[0];
 				viewComponent = arguments[1];
 			}
-			var $attr40,$attr33,$attr37,$attr36,$attr35,$attr34,$attr39,$attr38;
-			$p['$$super']($m['WriteMediator'], self)['__init__']((($attr33=($attr34=$m['WriteMediator'])['NAME']) == null || (($attr34.__is_instance__) && typeof $attr33 == 'function') || (typeof $attr33['__get__'] == 'function')?
-						$p['getattr']($attr34, 'NAME'):
+			var $attr42,$attr44,$attr37,$attr43,$attr40,$attr41,$attr39,$attr38;
+			$p['$$super']($m['WriteMediator'], self)['__init__']((($attr37=($attr38=$m['WriteMediator'])['NAME']) == null || (($attr38.__is_instance__) && typeof $attr37 == 'function') || (typeof $attr37['__get__'] == 'function')?
+						$p['getattr']($attr38, 'NAME'):
 						$m['WriteMediator']['NAME']), viewComponent);
 			$p['setattr'](self['viewComponent'], 'mediator', self);
-			$p['setattr'](self, 'post_remote_proxy', self['facade']['retrieveProxy']((($attr35=($attr36=$m['model']['PostRemoteProxy'])['NAME']) == null || (($attr36.__is_instance__) && typeof $attr35 == 'function') || (typeof $attr35['__get__'] == 'function')?
-						$p['getattr']($attr36, 'NAME'):
+			$p['setattr'](self, 'post_remote_proxy', self['facade']['retrieveProxy']((($attr39=($attr40=$m['model']['PostRemoteProxy'])['NAME']) == null || (($attr40.__is_instance__) && typeof $attr39 == 'function') || (typeof $attr39['__get__'] == 'function')?
+						$p['getattr']($attr40, 'NAME'):
 						$m['model']['PostRemoteProxy']['NAME'])));
-			self['viewComponent']['post_button']['addClickListener']((($attr37=($attr38=self)['add_post']) == null || (($attr38.__is_instance__) && typeof $attr37 == 'function') || (typeof $attr37['__get__'] == 'function')?
-						$p['getattr']($attr38, 'add_post'):
+			self['viewComponent']['post_button']['addClickListener']((($attr41=($attr42=self)['add_post']) == null || (($attr42.__is_instance__) && typeof $attr41 == 'function') || (typeof $attr41['__get__'] == 'function')?
+						$p['getattr']($attr42, 'add_post'):
 						self['add_post']));
-			self['viewComponent']['cancel_button']['addClickListener']((($attr39=($attr40=self)['on_close']) == null || (($attr40.__is_instance__) && typeof $attr39 == 'function') || (typeof $attr39['__get__'] == 'function')?
-						$p['getattr']($attr40, 'on_close'):
+			self['viewComponent']['cancel_button']['addClickListener']((($attr43=($attr44=self)['on_close']) == null || (($attr44.__is_instance__) && typeof $attr43 == 'function') || (typeof $attr43['__get__'] == 'function')?
+						$p['getattr']($attr44, 'on_close'):
 						self['on_close']));
 			return null;
 		}
 			} else {
 				var self = arguments[0];
 			}
-			var $attr42,$attr41;
-			return $p['list']([(($attr41=($attr42=$m['Blog']['AppFacade'])['VIEW_WRITE_POST']) == null || (($attr42.__is_instance__) && typeof $attr41 == 'function') || (typeof $attr41['__get__'] == 'function')?
-						$p['getattr']($attr42, 'VIEW_WRITE_POST'):
+			var $attr46,$attr45;
+			return $p['list']([(($attr45=($attr46=$m['Blog']['AppFacade'])['VIEW_WRITE_POST']) == null || (($attr46.__is_instance__) && typeof $attr45 == 'function') || (typeof $attr45['__get__'] == 'function')?
+						$p['getattr']($attr46, 'VIEW_WRITE_POST'):
 						$m['Blog']['AppFacade']['VIEW_WRITE_POST'])]);
 		}
 	, 1, [null,null,['self']]);
 				var self = arguments[0];
 				note = arguments[1];
 			}
-			var $attr43,$attr44,note_name;
+			var $attr47,$attr48,note_name;
 			note_name = note['getName']();
-			if ($p['bool']($p['op_eq'](note_name, (($attr43=($attr44=$m['Blog']['AppFacade'])['VIEW_WRITE_POST']) == null || (($attr44.__is_instance__) && typeof $attr43 == 'function') || (typeof $attr43['__get__'] == 'function')?
-						$p['getattr']($attr44, 'VIEW_WRITE_POST'):
+			if ($p['bool']($p['op_eq'](note_name, (($attr47=($attr48=$m['Blog']['AppFacade'])['VIEW_WRITE_POST']) == null || (($attr48.__is_instance__) && typeof $attr47 == 'function') || (typeof $attr47['__get__'] == 'function')?
+						$p['getattr']($attr48, 'VIEW_WRITE_POST'):
 						$m['Blog']['AppFacade']['VIEW_WRITE_POST'])))) {
 				self['view_write_post'](self);
 			}
 				var self = arguments[0];
 				viewComponent = arguments[1];
 			}
-			var $attr51,$attr50,$attr52,$attr46,$attr47,$attr45,$attr48,$attr49;
-			$p['$$super']($m['EditMediator'], self)['__init__']((($attr45=($attr46=$m['EditMediator'])['NAME']) == null || (($attr46.__is_instance__) && typeof $attr45 == 'function') || (typeof $attr45['__get__'] == 'function')?
-						$p['getattr']($attr46, 'NAME'):
+			var $attr51,$attr50,$attr52,$attr55,$attr54,$attr56,$attr53,$attr49;
+			$p['$$super']($m['EditMediator'], self)['__init__']((($attr49=($attr50=$m['EditMediator'])['NAME']) == null || (($attr50.__is_instance__) && typeof $attr49 == 'function') || (typeof $attr49['__get__'] == 'function')?
+						$p['getattr']($attr50, 'NAME'):
 						$m['EditMediator']['NAME']), viewComponent);
 			$p['setattr'](self['viewComponent'], 'mediator', self);
-			$p['setattr'](self, 'edit_remote_proxy', self['facade']['retrieveProxy']((($attr47=($attr48=$m['model']['PostRemoteProxy'])['NAME']) == null || (($attr48.__is_instance__) && typeof $attr47 == 'function') || (typeof $attr47['__get__'] == 'function')?
-						$p['getattr']($attr48, 'NAME'):
+			$p['setattr'](self, 'edit_remote_proxy', self['facade']['retrieveProxy']((($attr51=($attr52=$m['model']['PostRemoteProxy'])['NAME']) == null || (($attr52.__is_instance__) && typeof $attr51 == 'function') || (typeof $attr51['__get__'] == 'function')?
+						$p['getattr']($attr52, 'NAME'):
 						$m['model']['PostRemoteProxy']['NAME'])));
-			self['viewComponent']['edit_button']['addClickListener']((($attr49=($attr50=self)['edit_post']) == null || (($attr50.__is_instance__) && typeof $attr49 == 'function') || (typeof $attr49['__get__'] == 'function')?
-						$p['getattr']($attr50, 'edit_post'):
+			self['viewComponent']['edit_button']['addClickListener']((($attr53=($attr54=self)['edit_post']) == null || (($attr54.__is_instance__) && typeof $attr53 == 'function') || (typeof $attr53['__get__'] == 'function')?
+						$p['getattr']($attr54, 'edit_post'):
 						self['edit_post']));
-			self['viewComponent']['edit_cancel_button']['addClickListener']((($attr51=($attr52=self)['on_edit_close']) == null || (($attr52.__is_instance__) && typeof $attr51 == 'function') || (typeof $attr51['__get__'] == 'function')?
-						$p['getattr']($attr52, 'on_edit_close'):
+			self['viewComponent']['edit_cancel_button']['addClickListener']((($attr55=($attr56=self)['on_edit_close']) == null || (($attr56.__is_instance__) && typeof $attr55 == 'function') || (typeof $attr55['__get__'] == 'function')?
+						$p['getattr']($attr56, 'on_edit_close'):
 						self['on_edit_close']));
 			return null;
 		}
 			} else {
 				var self = arguments[0];
 			}
-			var $attr53,$attr54;
-			return $p['list']([(($attr53=($attr54=$m['Blog']['AppFacade'])['VIEW_EDIT_POST']) == null || (($attr54.__is_instance__) && typeof $attr53 == 'function') || (typeof $attr53['__get__'] == 'function')?
-						$p['getattr']($attr54, 'VIEW_EDIT_POST'):
+			var $attr58,$attr57;
+			return $p['list']([(($attr57=($attr58=$m['Blog']['AppFacade'])['VIEW_EDIT_POST']) == null || (($attr58.__is_instance__) && typeof $attr57 == 'function') || (typeof $attr57['__get__'] == 'function')?
+						$p['getattr']($attr58, 'VIEW_EDIT_POST'):
 						$m['Blog']['AppFacade']['VIEW_EDIT_POST'])]);
 		}
 	, 1, [null,null,['self']]);
 				var self = arguments[0];
 				note = arguments[1];
 			}
-			var $attr55,$attr56,note_body,note_name;
+			var $attr59,$attr60,note_body,note_name;
 			note_name = note['getName']();
 			note_body = note['getBody']();
-			if ($p['bool']($p['op_eq'](note_name, (($attr55=($attr56=$m['Blog']['AppFacade'])['VIEW_EDIT_POST']) == null || (($attr56.__is_instance__) && typeof $attr55 == 'function') || (typeof $attr55['__get__'] == 'function')?
-						$p['getattr']($attr56, 'VIEW_EDIT_POST'):
+			if ($p['bool']($p['op_eq'](note_name, (($attr59=($attr60=$m['Blog']['AppFacade'])['VIEW_EDIT_POST']) == null || (($attr60.__is_instance__) && typeof $attr59 == 'function') || (typeof $attr59['__get__'] == 'function')?
+						$p['getattr']($attr60, 'VIEW_EDIT_POST'):
 						$m['Blog']['AppFacade']['VIEW_EDIT_POST'])))) {
 				self['view_edit_post'](note_body);
 			}
 				var self = arguments[0];
 				post_key = arguments[1];
 			}
-			var $attr59,$attr58,$attr60,$attr57,post_id,post;
+			var $attr64,$attr61,$attr62,$attr63,post_id,post;
 			self['viewComponent']['clear_edit_panel']();
 			self['viewComponent']['edit_dialog']['show']();
 			post_id = post_key['$$replace']('edit_', '');
 			post = self['edit_remote_proxy']['get_post'](post_id);
-			self['viewComponent']['edit_title']['setText']((($attr57=($attr58=post)['title']) == null || (($attr58.__is_instance__) && typeof $attr57 == 'function') || (typeof $attr57['__get__'] == 'function')?
-						$p['getattr']($attr58, 'title'):
+			self['viewComponent']['edit_title']['setText']((($attr61=($attr62=post)['title']) == null || (($attr62.__is_instance__) && typeof $attr61 == 'function') || (typeof $attr61['__get__'] == 'function')?
+						$p['getattr']($attr62, 'title'):
 						post['title']));
-			self['viewComponent']['edit_content']['setText']((($attr59=($attr60=post)['content']) == null || (($attr60.__is_instance__) && typeof $attr59 == 'function') || (typeof $attr59['__get__'] == 'function')?
-						$p['getattr']($attr60, 'content'):
+			self['viewComponent']['edit_content']['setText']((($attr63=($attr64=post)['content']) == null || (($attr64.__is_instance__) && typeof $attr63 == 'function') || (typeof $attr63['__get__'] == 'function')?
+						$p['getattr']($attr64, 'content'):
 						post['content']));
 			self['viewComponent']['edit_hidden_key']['setValue'](post_id);
 			return null;
 				var self = arguments[0];
 				event = arguments[1];
 			}
-
+			var $attr65,$attr66;
 			self['viewComponent']['edit_dialog']['hide']();
+			self['sendNotification']((($attr65=($attr66=$m['Blog']['AppFacade'])['EDIT_CANCELED']) == null || (($attr66.__is_instance__) && typeof $attr65 == 'function') || (typeof $attr65['__get__'] == 'function')?
+						$p['getattr']($attr66, 'EDIT_CANCELED'):
+						$m['Blog']['AppFacade']['EDIT_CANCELED']));
 			return null;
 		}
 	, 1, [null,null,['self'],['event']]);
 
 
 /*
-PYJS_DEPS: ['puremvc.patterns.mediator.Mediator', 'puremvc', 'puremvc.patterns', 'puremvc.patterns.mediator', 'puremvc.interfaces', 'model', 'Blog']
+PYJS_DEPS: ['puremvc.patterns.mediator.Mediator', 'puremvc', 'puremvc.patterns', 'puremvc.patterns.mediator', 'model', 'Blog']
 */
 
 --></script>

media/output/Blog.oldmoz.cache.html

 		var $method;
 		$cls_definition.__module__ = 'Blog';
 		$cls_definition['STARTUP'] = 'startup';
-		$cls_definition['HOME_STARTUP'] = 'homeStartup';
-		$cls_definition['WRITE_STARTUP'] = 'writeStartup';
-		$cls_definition['EDIT_STARTUP'] = 'editStartup';
 		$cls_definition['ADD_POST'] = 'addPost';
 		$cls_definition['EDIT_POST'] = 'editPost';
 		$cls_definition['DELETE_POST'] = 'deletePost';
 		$cls_definition['GET_POSTS'] = 'getPosts';
 		$cls_definition['POSTS_RETRIEVED'] = 'postsRetrieved';
+		$cls_definition['EDIT_CANCELED'] = 'editCanceled';
 		$cls_definition['VIEW_WRITE_POST'] = 'viewWritePost';
 		$cls_definition['VIEW_EDIT_POST'] = 'viewEditPost';
 		$cls_definition['POST_REMOTE_FAILURE'] = 'postRemoteFailure';
 
 
 	$m['Mediator'] = $p['___import___']('puremvc.patterns.mediator.Mediator', null, null, false);
-	$m['puremvc'] = $p['___import___']('puremvc.interfaces', null);
 	$m['model'] = $p['___import___']('model', null);
 	$m['Blog'] = $p['___import___']('Blog', null);
 	$m['HomeMediator'] = (function(){
 			} else {
 				var self = arguments[0];
 			}
-			var $attr18,$attr15,$attr14,$attr17,$attr16,$attr11,$attr13,$attr12;
+			var $attr20,$attr19,$attr18,$attr15,$attr14,$attr17,$attr16,$attr11,$attr13,$attr12;
 			return $p['list']([(($attr11=($attr12=$m['Blog']['AppFacade'])['POSTS_RETRIEVED']) == null || (($attr12.__is_instance__) && typeof $attr11 == 'function') || (typeof $attr11['__get__'] == 'function')?
 						$p['getattr']($attr12, 'POSTS_RETRIEVED'):
 						$m['Blog']['AppFacade']['POSTS_RETRIEVED']), (($attr13=($attr14=$m['Blog']['AppFacade'])['POST_ADDED']) == null || (($attr14.__is_instance__) && typeof $attr13 == 'function') || (typeof $attr13['__get__'] == 'function')?
 						$p['getattr']($attr16, 'POST_EDITED'):
 						$m['Blog']['AppFacade']['POST_EDITED']), (($attr17=($attr18=$m['Blog']['AppFacade'])['POST_DELETED']) == null || (($attr18.__is_instance__) && typeof $attr17 == 'function') || (typeof $attr17['__get__'] == 'function')?
 						$p['getattr']($attr18, 'POST_DELETED'):
-						$m['Blog']['AppFacade']['POST_DELETED'])]);
+						$m['Blog']['AppFacade']['POST_DELETED']), (($attr19=($attr20=$m['Blog']['AppFacade'])['EDIT_CANCELED']) == null || (($attr20.__is_instance__) && typeof $attr19 == 'function') || (typeof $attr19['__get__'] == 'function')?
+						$p['getattr']($attr20, 'EDIT_CANCELED'):
+						$m['Blog']['AppFacade']['EDIT_CANCELED'])]);
 		}
 	, 1, [null,null,['self']]);
 		$cls_definition['listNotificationInterests'] = $method;
 				var self = arguments[0];
 				note = arguments[1];
 			}
-			var $attr20,$attr21,$attr22,$attr23,$attr19,$attr25,$attr26,$attr24,note_name;
+			var $attr21,$attr22,$attr23,$attr24,$attr25,$attr26,$attr27,$attr28,$attr29,$attr30,note_name;
 			note_name = note['getName']();
-			if ($p['bool']($p['op_eq'](note_name, (($attr19=($attr20=$m['Blog']['AppFacade'])['POSTS_RETRIEVED']) == null || (($attr20.__is_instance__) && typeof $attr19 == 'function') || (typeof $attr19['__get__'] == 'function')?
-						$p['getattr']($attr20, 'POSTS_RETRIEVED'):
+			if ($p['bool']($p['op_eq'](note_name, (($attr21=($attr22=$m['Blog']['AppFacade'])['POSTS_RETRIEVED']) == null || (($attr22.__is_instance__) && typeof $attr21 == 'function') || (typeof $attr21['__get__'] == 'function')?
+						$p['getattr']($attr22, 'POSTS_RETRIEVED'):
 						$m['Blog']['AppFacade']['POSTS_RETRIEVED'])))) {
 				self['update_posts']();
 			}
-			if ($p['bool']($p['op_eq'](note_name, (($attr21=($attr22=$m['Blog']['AppFacade'])['POST_ADDED']) == null || (($attr22.__is_instance__) && typeof $attr21 == 'function') || (typeof $attr21['__get__'] == 'function')?
-						$p['getattr']($attr22, 'POST_ADDED'):
+			if ($p['bool']($p['op_eq'](note_name, (($attr23=($attr24=$m['Blog']['AppFacade'])['POST_ADDED']) == null || (($attr24.__is_instance__) && typeof $attr23 == 'function') || (typeof $attr23['__get__'] == 'function')?
+						$p['getattr']($attr24, 'POST_ADDED'):
 						$m['Blog']['AppFacade']['POST_ADDED'])))) {
 				self['clear_update_posts']();
 			}
-			if ($p['bool']($p['op_eq'](note_name, (($attr23=($attr24=$m['Blog']['AppFacade'])['POST_EDITED']) == null || (($attr24.__is_instance__) && typeof $attr23 == 'function') || (typeof $attr23['__get__'] == 'function')?
-						$p['getattr']($attr24, 'POST_EDITED'):
+			if ($p['bool']($p['op_eq'](note_name, (($attr25=($attr26=$m['Blog']['AppFacade'])['POST_EDITED']) == null || (($attr26.__is_instance__) && typeof $attr25 == 'function') || (typeof $attr25['__get__'] == 'function')?
+						$p['getattr']($attr26, 'POST_EDITED'):
 						$m['Blog']['AppFacade']['POST_EDITED'])))) {
 				self['clear_update_posts']();
 			}
-			if ($p['bool']($p['op_eq'](note_name, (($attr25=($attr26=$m['Blog']['AppFacade'])['POST_DELETED']) == null || (($attr26.__is_instance__) && typeof $attr25 == 'function') || (typeof $attr25['__get__'] == 'function')?
-						$p['getattr']($attr26, 'POST_DELETED'):
+			if ($p['bool']($p['op_eq'](note_name, (($attr27=($attr28=$m['Blog']['AppFacade'])['POST_DELETED']) == null || (($attr28.__is_instance__) && typeof $attr27 == 'function') || (typeof $attr27['__get__'] == 'function')?
+						$p['getattr']($attr28, 'POST_DELETED'):
 						$m['Blog']['AppFacade']['POST_DELETED'])))) {
 				self['clear_update_posts']();
 			}
+			if ($p['bool']($p['op_eq'](note_name, (($attr29=($attr30=$m['Blog']['AppFacade'])['EDIT_CANCELED']) == null || (($attr30.__is_instance__) && typeof $attr29 == 'function') || (typeof $attr29['__get__'] == 'function')?
+						$p['getattr']($attr30, 'EDIT_CANCELED'):
+						$m['Blog']['AppFacade']['EDIT_CANCELED'])))) {
+				self['clear_hidden_id']();
+			}
 			return null;
 		}
 	, 1, [null,null,['self'],['note']]);
 			}
 
 			self['clear_posts']();
+			self['clear_hidden_id']();
 			self['update_posts']();
 			return null;
 		}
 			} else {
 				var self = arguments[0];
 			}
-			var $attr28,$attr27;
-			self['viewComponent']['remove']((($attr27=($attr28=self['viewComponent'])['contents']) == null || (($attr28.__is_instance__) && typeof $attr27 == 'function') || (typeof $attr27['__get__'] == 'function')?
-						$p['getattr']($attr28, 'contents'):
+			var $attr32,$attr31;
+			self['viewComponent']['remove']((($attr31=($attr32=self['viewComponent'])['contents']) == null || (($attr32.__is_instance__) && typeof $attr31 == 'function') || (typeof $attr31['__get__'] == 'function')?
+						$p['getattr']($attr32, 'contents'):
 						self['viewComponent']['contents']));
 			return null;
 		}
 	, 1, [null,null,['self']]);
 		$cls_definition['clear_posts'] = $method;
+		$method = $pyjs__bind_method2('clear_hidden_id', function() {
+			if (this.__is_instance__ === true) {
+				var self = this;
+			} else {
+				var self = arguments[0];
+			}
+
+			self['viewComponent']['edit_hidden_button']['setID']('');
+			self['viewComponent']['delete_hidden_button']['setID']('');
+			return null;
+		}
+	, 1, [null,null,['self']]);
+		$cls_definition['clear_hidden_id'] = $method;
 		$method = $pyjs__bind_method2('update_posts', function() {
 			if (this.__is_instance__ === true) {
 				var self = this;
 			} else {
 				var self = arguments[0];
 			}
-			var $attr29,$attr30;
-			self['sendNotification']((($attr29=($attr30=$m['Blog']['AppFacade'])['VIEW_WRITE_POST']) == null || (($attr30.__is_instance__) && typeof $attr29 == 'function') || (typeof $attr29['__get__'] == 'function')?
-						$p['getattr']($attr30, 'VIEW_WRITE_POST'):
+			var $attr33,$attr34;
+			self['sendNotification']((($attr33=($attr34=$m['Blog']['AppFacade'])['VIEW_WRITE_POST']) == null || (($attr34.__is_instance__) && typeof $attr33 == 'function') || (typeof $attr33['__get__'] == 'function')?
+						$p['getattr']($attr34, 'VIEW_WRITE_POST'):
 						$m['Blog']['AppFacade']['VIEW_WRITE_POST']));
 			return null;
 		}
 	, 1, [null,null,['self']]);
 		$cls_definition['on_write_click'] = $method;
+		$method = $pyjs__bind_method2('is_click_id_set', function(sender_id) {
+			if (this.__is_instance__ === true) {
+				var self = this;
+			} else {
+				var self = arguments[0];
+				sender_id = arguments[1];
+			}
+			var $or1,$or2;
+			if ($p['bool'](($p['bool']($or1=$p['op_eq'](sender_id, ''))?$or1:$p['op_eq'](sender_id, null)))) {
+				return false;
+			}
+			return true;
+		}
+	, 1, [null,null,['self'],['sender_id']]);
+		$cls_definition['is_click_id_set'] = $method;
 		$method = $pyjs__bind_method2('on_edit_click', function(sender) {
 			if (this.__is_instance__ === true) {
 				var self = this;
 				sender = arguments[1];
 			}
 			if (typeof sender == 'undefined') sender=arguments.callee.__args__[3][1];
-			var $attr32,$attr31;
-			self['sendNotification']((($attr31=($attr32=$m['Blog']['AppFacade'])['VIEW_EDIT_POST']) == null || (($attr32.__is_instance__) && typeof $attr31 == 'function') || (typeof $attr31['__get__'] == 'function')?
-						$p['getattr']($attr32, 'VIEW_EDIT_POST'):
-						$m['Blog']['AppFacade']['VIEW_EDIT_POST']), sender['getID']());
+			var $attr35,$attr36;
+			if ($p['bool'](self['is_click_id_set'](sender['getID']()))) {
+				self['sendNotification']((($attr35=($attr36=$m['Blog']['AppFacade'])['VIEW_EDIT_POST']) == null || (($attr36.__is_instance__) && typeof $attr35 == 'function') || (typeof $attr35['__get__'] == 'function')?
+							$p['getattr']($attr36, 'VIEW_EDIT_POST'):
+							$m['Blog']['AppFacade']['VIEW_EDIT_POST']), sender['getID']());
+			}
 			return null;
 		}
 	, 1, [null,null,['self'],['sender', null]]);
 			}
 			if (typeof sender == 'undefined') sender=arguments.callee.__args__[3][1];
 			var post_id,key;
-			key = sender['getID']();
-			post_id = key['$$replace']('delete_', '');
-			self['post_remote_proxy']['delete_remote_post'](post_id);
+			if ($p['bool'](self['is_click_id_set'](sender['getID']()))) {
+				key = sender['getID']();
+				post_id = key['$$replace']('delete_', '');
+				self['post_remote_proxy']['delete_remote_post'](post_id);
+			}
 			return null;
 		}
 	, 1, [null,null,['self'],['sender', null]]);
 				var self = arguments[0];
 				viewComponent = arguments[1];
 			}
-			var $attr40,$attr33,$attr37,$attr36,$attr35,$attr34,$attr39,$attr38;
-			$p['$$super']($m['WriteMediator'], self)['__init__']((($attr33=($attr34=$m['WriteMediator'])['NAME']) == null || (($attr34.__is_instance__) && typeof $attr33 == 'function') || (typeof $attr33['__get__'] == 'function')?
-						$p['getattr']($attr34, 'NAME'):
+			var $attr42,$attr44,$attr37,$attr43,$attr40,$attr41,$attr39,$attr38;
+			$p['$$super']($m['WriteMediator'], self)['__init__']((($attr37=($attr38=$m['WriteMediator'])['NAME']) == null || (($attr38.__is_instance__) && typeof $attr37 == 'function') || (typeof $attr37['__get__'] == 'function')?
+						$p['getattr']($attr38, 'NAME'):
 						$m['WriteMediator']['NAME']), viewComponent);
 			$p['setattr'](self['viewComponent'], 'mediator', self);
-			$p['setattr'](self, 'post_remote_proxy', self['facade']['retrieveProxy']((($attr35=($attr36=$m['model']['PostRemoteProxy'])['NAME']) == null || (($attr36.__is_instance__) && typeof $attr35 == 'function') || (typeof $attr35['__get__'] == 'function')?
-						$p['getattr']($attr36, 'NAME'):
+			$p['setattr'](self, 'post_remote_proxy', self['facade']['retrieveProxy']((($attr39=($attr40=$m['model']['PostRemoteProxy'])['NAME']) == null || (($attr40.__is_instance__) && typeof $attr39 == 'function') || (typeof $attr39['__get__'] == 'function')?
+						$p['getattr']($attr40, 'NAME'):
 						$m['model']['PostRemoteProxy']['NAME'])));
-			self['viewComponent']['post_button']['addClickListener']((($attr37=($attr38=self)['add_post']) == null || (($attr38.__is_instance__) && typeof $attr37 == 'function') || (typeof $attr37['__get__'] == 'function')?
-						$p['getattr']($attr38, 'add_post'):
+			self['viewComponent']['post_button']['addClickListener']((($attr41=($attr42=self)['add_post']) == null || (($attr42.__is_instance__) && typeof $attr41 == 'function') || (typeof $attr41['__get__'] == 'function')?
+						$p['getattr']($attr42, 'add_post'):
 						self['add_post']));
-			self['viewComponent']['cancel_button']['addClickListener']((($attr39=($attr40=self)['on_close']) == null || (($attr40.__is_instance__) && typeof $attr39 == 'function') || (typeof $attr39['__get__'] == 'function')?
-						$p['getattr']($attr40, 'on_close'):
+			self['viewComponent']['cancel_button']['addClickListener']((($attr43=($attr44=self)['on_close']) == null || (($attr44.__is_instance__) && typeof $attr43 == 'function') || (typeof $attr43['__get__'] == 'function')?
+						$p['getattr']($attr44, 'on_close'):
 						self['on_close']));
 			return null;
 		}
 			} else {
 				var self = arguments[0];
 			}
-			var $attr42,$attr41;
-			return $p['list']([(($attr41=($attr42=$m['Blog']['AppFacade'])['VIEW_WRITE_POST']) == null || (($attr42.__is_instance__) && typeof $attr41 == 'function') || (typeof $attr41['__get__'] == 'function')?
-						$p['getattr']($attr42, 'VIEW_WRITE_POST'):
+			var $attr46,$attr45;
+			return $p['list']([(($attr45=($attr46=$m['Blog']['AppFacade'])['VIEW_WRITE_POST']) == null || (($attr46.__is_instance__) && typeof $attr45 == 'function') || (typeof $attr45['__get__'] == 'function')?
+						$p['getattr']($attr46, 'VIEW_WRITE_POST'):
 						$m['Blog']['AppFacade']['VIEW_WRITE_POST'])]);
 		}
 	, 1, [null,null,['self']]);
 				var self = arguments[0];
 				note = arguments[1];
 			}
-			var $attr43,$attr44,note_name;
+			var $attr47,$attr48,note_name;
 			note_name = note['getName']();
-			if ($p['bool']($p['op_eq'](note_name, (($attr43=($attr44=$m['Blog']['AppFacade'])['VIEW_WRITE_POST']) == null || (($attr44.__is_instance__) && typeof $attr43 == 'function') || (typeof $attr43['__get__'] == 'function')?
-						$p['getattr']($attr44, 'VIEW_WRITE_POST'):
+			if ($p['bool']($p['op_eq'](note_name, (($attr47=($attr48=$m['Blog']['AppFacade'])['VIEW_WRITE_POST']) == null || (($attr48.__is_instance__) && typeof $attr47 == 'function') || (typeof $attr47['__get__'] == 'function')?
+						$p['getattr']($attr48, 'VIEW_WRITE_POST'):
 						$m['Blog']['AppFacade']['VIEW_WRITE_POST'])))) {
 				self['view_write_post'](self);
 			}
 				var self = arguments[0];
 				viewComponent = arguments[1];
 			}
-			var $attr51,$attr50,$attr52,$attr46,$attr47,$attr45,$attr48,$attr49;
-			$p['$$super']($m['EditMediator'], self)['__init__']((($attr45=($attr46=$m['EditMediator'])['NAME']) == null || (($attr46.__is_instance__) && typeof $attr45 == 'function') || (typeof $attr45['__get__'] == 'function')?
-						$p['getattr']($attr46, 'NAME'):
+			var $attr51,$attr50,$attr52,$attr55,$attr54,$attr56,$attr53,$attr49;
+			$p['$$super']($m['EditMediator'], self)['__init__']((($attr49=($attr50=$m['EditMediator'])['NAME']) == null || (($attr50.__is_instance__) && typeof $attr49 == 'function') || (typeof $attr49['__get__'] == 'function')?
+						$p['getattr']($attr50, 'NAME'):
 						$m['EditMediator']['NAME']), viewComponent);
 			$p['setattr'](self['viewComponent'], 'mediator', self);
-			$p['setattr'](self, 'edit_remote_proxy', self['facade']['retrieveProxy']((($attr47=($attr48=$m['model']['PostRemoteProxy'])['NAME']) == null || (($attr48.__is_instance__) && typeof $attr47 == 'function') || (typeof $attr47['__get__'] == 'function')?
-						$p['getattr']($attr48, 'NAME'):
+			$p['setattr'](self, 'edit_remote_proxy', self['facade']['retrieveProxy']((($attr51=($attr52=$m['model']['PostRemoteProxy'])['NAME']) == null || (($attr52.__is_instance__) && typeof $attr51 == 'function') || (typeof $attr51['__get__'] == 'function')?
+						$p['getattr']($attr52, 'NAME'):
 						$m['model']['PostRemoteProxy']['NAME'])));
-			self['viewComponent']['edit_button']['addClickListener']((($attr49=($attr50=self)['edit_post']) == null || (($attr50.__is_instance__) && typeof $attr49 == 'function') || (typeof $attr49['__get__'] == 'function')?
-						$p['getattr']($attr50, 'edit_post'):
+			self['viewComponent']['edit_button']['addClickListener']((($attr53=($attr54=self)['edit_post']) == null || (($attr54.__is_instance__) && typeof $attr53 == 'function') || (typeof $attr53['__get__'] == 'function')?
+						$p['getattr']($attr54, 'edit_post'):
 						self['edit_post']));
-			self['viewComponent']['edit_cancel_button']['addClickListener']((($attr51=($attr52=self)['on_edit_close']) == null || (($attr52.__is_instance__) && typeof $attr51 == 'function') || (typeof $attr51['__get__'] == 'function')?
-						$p['getattr']($attr52, 'on_edit_close'):
+			self['viewComponent']['edit_cancel_button']['addClickListener']((($attr55=($attr56=self)['on_edit_close']) == null || (($attr56.__is_instance__) && typeof $attr55 == 'function') || (typeof $attr55['__get__'] == 'function')?
+						$p['getattr']($attr56, 'on_edit_close'):
 						self['on_edit_close']));
 			return null;
 		}
 			} else {
 				var self = arguments[0];
 			}
-			var $attr53,$attr54;
-			return $p['list']([(($attr53=($attr54=$m['Blog']['AppFacade'])['VIEW_EDIT_POST']) == null || (($attr54.__is_instance__) && typeof $attr53 == 'function') || (typeof $attr53['__get__'] == 'function')?
-						$p['getattr']($attr54, 'VIEW_EDIT_POST'):
+			var $attr58,$attr57;
+			return $p['list']([(($attr57=($attr58=$m['Blog']['AppFacade'])['VIEW_EDIT_POST']) == null || (($attr58.__is_instance__) && typeof $attr57 == 'function') || (typeof $attr57['__get__'] == 'function')?
+						$p['getattr']($attr58, 'VIEW_EDIT_POST'):
 						$m['Blog']['AppFacade']['VIEW_EDIT_POST'])]);
 		}
 	, 1, [null,null,['self']]);
 				var self = arguments[0];
 				note = arguments[1];
 			}
-			var $attr55,$attr56,note_body,note_name;
+			var $attr59,$attr60,note_body,note_name;
 			note_name = note['getName']();
 			note_body = note['getBody']();
-			if ($p['bool']($p['op_eq'](note_name, (($attr55=($attr56=$m['Blog']['AppFacade'])['VIEW_EDIT_POST']) == null || (($attr56.__is_instance__) && typeof $attr55 == 'function') || (typeof $attr55['__get__'] == 'function')?
-						$p['getattr']($attr56, 'VIEW_EDIT_POST'):
+			if ($p['bool']($p['op_eq'](note_name, (($attr59=($attr60=$m['Blog']['AppFacade'])['VIEW_EDIT_POST']) == null || (($attr60.__is_instance__) && typeof $attr59 == 'function') || (typeof $attr59['__get__'] == 'function')?
+						$p['getattr']($attr60, 'VIEW_EDIT_POST'):
 						$m['Blog']['AppFacade']['VIEW_EDIT_POST'])))) {
 				self['view_edit_post'](note_body);
 			}
 				var self = arguments[0];
 				post_key = arguments[1];
 			}
-			var $attr59,$attr58,$attr60,$attr57,post_id,post;
+			var $attr64,$attr61,$attr62,$attr63,post_id,post;
 			self['viewComponent']['clear_edit_panel']();
 			self['viewComponent']['edit_dialog']['show']();
 			post_id = post_key['$$replace']('edit_', '');
 			post = self['edit_remote_proxy']['get_post'](post_id);
-			self['viewComponent']['edit_title']['setText']((($attr57=($attr58=post)['title']) == null || (($attr58.__is_instance__) && typeof $attr57 == 'function') || (typeof $attr57['__get__'] == 'function')?
-						$p['getattr']($attr58, 'title'):
+			self['viewComponent']['edit_title']['setText']((($attr61=($attr62=post)['title']) == null || (($attr62.__is_instance__) && typeof $attr61 == 'function') || (typeof $attr61['__get__'] == 'function')?
+						$p['getattr']($attr62, 'title'):
 						post['title']));
-			self['viewComponent']['edit_content']['setText']((($attr59=($attr60=post)['content']) == null || (($attr60.__is_instance__) && typeof $attr59 == 'function') || (typeof $attr59['__get__'] == 'function')?
-						$p['getattr']($attr60, 'content'):
+			self['viewComponent']['edit_content']['setText']((($attr63=($attr64=post)['content']) == null || (($attr64.__is_instance__) && typeof $attr63 == 'function') || (typeof $attr63['__get__'] == 'function')?
+						$p['getattr']($attr64, 'content'):
 						post['content']));
 			self['viewComponent']['edit_hidden_key']['setValue'](post_id);
 			return null;
 				var self = arguments[0];
 				event = arguments[1];
 			}
-
+			var $attr65,$attr66;
 			self['viewComponent']['edit_dialog']['hide']();
+			self['sendNotification']((($attr65=($attr66=$m['Blog']['AppFacade'])['EDIT_CANCELED']) == null || (($attr66.__is_instance__) && typeof $attr65 == 'function') || (typeof $attr65['__get__'] == 'function')?
+						$p['getattr']($attr66, 'EDIT_CANCELED'):
+						$m['Blog']['AppFacade']['EDIT_CANCELED']));
 			return null;
 		}
 	, 1, [null,null,['self'],['event']]);
 
 
 /*
-PYJS_DEPS: ['puremvc.patterns.mediator.Mediator', 'puremvc', 'puremvc.patterns', 'puremvc.patterns.mediator', 'puremvc.interfaces', 'model', 'Blog']
+PYJS_DEPS: ['puremvc.patterns.mediator.Mediator', 'puremvc', 'puremvc.patterns', 'puremvc.patterns.mediator', 'model', 'Blog']
 */
 
 --></script>

media/output/Blog.opera.cache.html

 		var $method;
 		$cls_definition.__module__ = 'Blog';
 		$cls_definition['STARTUP'] = 'startup';
-		$cls_definition['HOME_STARTUP'] = 'homeStartup';
-		$cls_definition['WRITE_STARTUP'] = 'writeStartup';
-		$cls_definition['EDIT_STARTUP'] = 'editStartup';
 		$cls_definition['ADD_POST'] = 'addPost';
 		$cls_definition['EDIT_POST'] = 'editPost';
 		$cls_definition['DELETE_POST'] = 'deletePost';
 		$cls_definition['GET_POSTS'] = 'getPosts';
 		$cls_definition['POSTS_RETRIEVED'] = 'postsRetrieved';
+		$cls_definition['EDIT_CANCELED'] = 'editCanceled';
 		$cls_definition['VIEW_WRITE_POST'] = 'viewWritePost';
 		$cls_definition['VIEW_EDIT_POST'] = 'viewEditPost';
 		$cls_definition['POST_REMOTE_FAILURE'] = 'postRemoteFailure';
 
 
 	$m['Mediator'] = $p['___import___']('puremvc.patterns.mediator.Mediator', null, null, false);
-	$m['puremvc'] = $p['___import___']('puremvc.interfaces', null);
 	$m['model'] = $p['___import___']('model', null);
 	$m['Blog'] = $p['___import___']('Blog', null);
 	$m['HomeMediator'] = (function(){
 			} else {
 				var self = arguments[0];
 			}
-			var $attr18,$attr15,$attr14,$attr17,$attr16,$attr11,$attr13,$attr12;
+			var $attr20,$attr19,$attr18,$attr15,$attr14,$attr17,$attr16,$attr11,$attr13,$attr12;
 			return $p['list']([(($attr11=($attr12=$m['Blog']['AppFacade'])['POSTS_RETRIEVED']) == null || (($attr12.__is_instance__) && typeof $attr11 == 'function') || (typeof $attr11['__get__'] == 'function')?
 						$p['getattr']($attr12, 'POSTS_RETRIEVED'):
 						$m['Blog']['AppFacade']['POSTS_RETRIEVED']), (($attr13=($attr14=$m['Blog']['AppFacade'])['POST_ADDED']) == null || (($attr14.__is_instance__) && typeof $attr13 == 'function') || (typeof $attr13['__get__'] == 'function')?
 						$p['getattr']($attr16, 'POST_EDITED'):
 						$m['Blog']['AppFacade']['POST_EDITED']), (($attr17=($attr18=$m['Blog']['AppFacade'])['POST_DELETED']) == null || (($attr18.__is_instance__) && typeof $attr17 == 'function') || (typeof $attr17['__get__'] == 'function')?
 						$p['getattr']($attr18, 'POST_DELETED'):
-						$m['Blog']['AppFacade']['POST_DELETED'])]);
+						$m['Blog']['AppFacade']['POST_DELETED']), (($attr19=($attr20=$m['Blog']['AppFacade'])['EDIT_CANCELED']) == null || (($attr20.__is_instance__) && typeof $attr19 == 'function') || (typeof $attr19['__get__'] == 'function')?
+						$p['getattr']($attr20, 'EDIT_CANCELED'):
+						$m['Blog']['AppFacade']['EDIT_CANCELED'])]);
 		}
 	, 1, [null,null,['self']]);
 		$cls_definition['listNotificationInterests'] = $method;
 				var self = arguments[0];
 				note = arguments[1];
 			}
-			var $attr20,$attr21,$attr22,$attr23,$attr19,$attr25,$attr26,$attr24,note_name;
+			var $attr21,$attr22,$attr23,$attr24,$attr25,$attr26,$attr27,$attr28,$attr29,$attr30,note_name;
 			note_name = note['getName']();
-			if ($p['bool']($p['op_eq'](note_name, (($attr19=($attr20=$m['Blog']['AppFacade'])['POSTS_RETRIEVED']) == null || (($attr20.__is_instance__) && typeof $attr19 == 'function') || (typeof $attr19['__get__'] == 'function')?
-						$p['getattr']($attr20, 'POSTS_RETRIEVED'):
+			if ($p['bool']($p['op_eq'](note_name, (($attr21=($attr22=$m['Blog']['AppFacade'])['POSTS_RETRIEVED']) == null || (($attr22.__is_instance__) && typeof $attr21 == 'function') || (typeof $attr21['__get__'] == 'function')?
+						$p['getattr']($attr22, 'POSTS_RETRIEVED'):
 						$m['Blog']['AppFacade']['POSTS_RETRIEVED'])))) {
 				self['update_posts']();
 			}
-			if ($p['bool']($p['op_eq'](note_name, (($attr21=($attr22=$m['Blog']['AppFacade'])['POST_ADDED']) == null || (($attr22.__is_instance__) && typeof $attr21 == 'function') || (typeof $attr21['__get__'] == 'function')?
-						$p['getattr']($attr22, 'POST_ADDED'):
+			if ($p['bool']($p['op_eq'](note_name, (($attr23=($attr24=$m['Blog']['AppFacade'])['POST_ADDED']) == null || (($attr24.__is_instance__) && typeof $attr23 == 'function') || (typeof $attr23['__get__'] == 'function')?
+						$p['getattr']($attr24, 'POST_ADDED'):
 						$m['Blog']['AppFacade']['POST_ADDED'])))) {
 				self['clear_update_posts']();
 			}
-			if ($p['bool']($p['op_eq'](note_name, (($attr23=($attr24=$m['Blog']['AppFacade'])['POST_EDITED']) == null || (($attr24.__is_instance__) && typeof $attr23 == 'function') || (typeof $attr23['__get__'] == 'function')?
-						$p['getattr']($attr24, 'POST_EDITED'):
+			if ($p['bool']($p['op_eq'](note_name, (($attr25=($attr26=$m['Blog']['AppFacade'])['POST_EDITED']) == null || (($attr26.__is_instance__) && typeof $attr25 == 'function') || (typeof $attr25['__get__'] == 'function')?
+						$p['getattr']($attr26, 'POST_EDITED'):
 						$m['Blog']['AppFacade']['POST_EDITED'])))) {
 				self['clear_update_posts']();
 			}
-			if ($p['bool']($p['op_eq'](note_name, (($attr25=($attr26=$m['Blog']['AppFacade'])['POST_DELETED']) == null || (($attr26.__is_instance__) && typeof $attr25 == 'function') || (typeof $attr25['__get__'] == 'function')?
-						$p['getattr']($attr26, 'POST_DELETED'):
+			if ($p['bool']($p['op_eq'](note_name, (($attr27=($attr28=$m['Blog']['AppFacade'])['POST_DELETED']) == null || (($attr28.__is_instance__) && typeof $attr27 == 'function') || (typeof $attr27['__get__'] == 'function')?
+						$p['getattr']($attr28, 'POST_DELETED'):
 						$m['Blog']['AppFacade']['POST_DELETED'])))) {
 				self['clear_update_posts']();
 			}
+			if ($p['bool']($p['op_eq'](note_name, (($attr29=($attr30=$m['Blog']['AppFacade'])['EDIT_CANCELED']) == null || (($attr30.__is_instance__) && typeof $attr29 == 'function') || (typeof $attr29['__get__'] == 'function')?
+						$p['getattr']($attr30, 'EDIT_CANCELED'):
+						$m['Blog']['AppFacade']['EDIT_CANCELED'])))) {
+				self['clear_hidden_id']();
+			}
 			return null;
 		}
 	, 1, [null,null,['self'],['note']]);
 			}
 
 			self['clear_posts']();
+			self['clear_hidden_id']();
 			self['update_posts']();
 			return null;
 		}
 			} else {
 				var self = arguments[0];
 			}
-			var $attr28,$attr27;
-			self['viewComponent']['remove']((($attr27=($attr28=self['viewComponent'])['contents']) == null || (($attr28.__is_instance__) && typeof $attr27 == 'function') || (typeof $attr27['__get__'] == 'function')?
-						$p['getattr']($attr28, 'contents'):
+			var $attr32,$attr31;
+			self['viewComponent']['remove']((($attr31=($attr32=self['viewComponent'])['contents']) == null || (($attr32.__is_instance__) && typeof $attr31 == 'function') || (typeof $attr31['__get__'] == 'function')?
+						$p['getattr']($attr32, 'contents'):
 						self['viewComponent']['contents']));
 			return null;
 		}
 	, 1, [null,null,['self']]);
 		$cls_definition['clear_posts'] = $method;
+		$method = $pyjs__bind_method2('clear_hidden_id', function() {
+			if (this.__is_instance__ === true) {
+				var self = this;
+			} else {
+				var self = arguments[0];
+			}
+
+			self['viewComponent']['edit_hidden_button']['setID']('');
+			self['viewComponent']['delete_hidden_button']['setID']('');
+			return null;
+		}
+	, 1, [null,null,['self']]);
+		$cls_definition['clear_hidden_id'] = $method;
 		$method = $pyjs__bind_method2('update_posts', function() {
 			if (this.__is_instance__ === true) {
 				var self = this;
 			} else {
 				var self = arguments[0];
 			}
-			var $attr29,$attr30;
-			self['sendNotification']((($attr29=($attr30=$m['Blog']['AppFacade'])['VIEW_WRITE_POST']) == null || (($attr30.__is_instance__) && typeof $attr29 == 'function') || (typeof $attr29['__get__'] == 'function')?
-						$p['getattr']($attr30, 'VIEW_WRITE_POST'):
+			var $attr33,$attr34;
+			self['sendNotification']((($attr33=($attr34=$m['Blog']['AppFacade'])['VIEW_WRITE_POST']) == null || (($attr34.__is_instance__) && typeof $attr33 == 'function') || (typeof $attr33['__get__'] == 'function')?
+						$p['getattr']($attr34, 'VIEW_WRITE_POST'):
 						$m['Blog']['AppFacade']['VIEW_WRITE_POST']));
 			return null;
 		}
 	, 1, [null,null,['self']]);
 		$cls_definition['on_write_click'] = $method;
+		$method = $pyjs__bind_method2('is_click_id_set', function(sender_id) {
+			if (this.__is_instance__ === true) {
+				var self = this;
+			} else {
+				var self = arguments[0];
+				sender_id = arguments[1];
+			}
+			var $or1,$or2;
+			if ($p['bool'](($p['bool']($or1=$p['op_eq'](sender_id, ''))?$or1:$p['op_eq'](sender_id, null)))) {
+				return false;
+			}
+			return true;
+		}
+	, 1, [null,null,['self'],['sender_id']]);
+		$cls_definition['is_click_id_set'] = $method;
 		$method = $pyjs__bind_method2('on_edit_click', function(sender) {
 			if (this.__is_instance__ === true) {
 				var self = this;
 				sender = arguments[1];
 			}
 			if (typeof sender == 'undefined') sender=arguments.callee.__args__[3][1];
-			var $attr32,$attr31;
-			self['sendNotification']((($attr31=($attr32=$m['Blog']['AppFacade'])['VIEW_EDIT_POST']) == null || (($attr32.__is_instance__) && typeof $attr31 == 'function') || (typeof $attr31['__get__'] == 'function')?
-						$p['getattr']($attr32, 'VIEW_EDIT_POST'):
-						$m['Blog']['AppFacade']['VIEW_EDIT_POST']), sender['getID']());
+			var $attr35,$attr36;
+			if ($p['bool'](self['is_click_id_set'](sender['getID']()))) {
+				self['sendNotification']((($attr35=($attr36=$m['Blog']['AppFacade'])['VIEW_EDIT_POST']) == null || (($attr36.__is_instance__) && typeof $attr35 == 'function') || (typeof $attr35['__get__'] == 'function')?
+							$p['getattr']($attr36, 'VIEW_EDIT_POST'):
+							$m['Blog']['AppFacade']['VIEW_EDIT_POST']), sender['getID']());
+			}
 			return null;
 		}
 	, 1, [null,null,['self'],['sender', null]]);
 			}
 			if (typeof sender == 'undefined') sender=arguments.callee.__args__[3][1];
 			var post_id,key;
-			key = sender['getID']();
-			post_id = key['$$replace']('delete_', '');
-			self['post_remote_proxy']['delete_remote_post'](post_id);
+			if ($p['bool'](self['is_click_id_set'](sender['getID']()))) {
+				key = sender['getID']();
+				post_id = key['$$replace']('delete_', '');
+				self['post_remote_proxy']['delete_remote_post'](post_id);
+			}
 			return null;
 		}
 	, 1, [null,null,['self'],['sender', null]]);
 				var self = arguments[0];
 				viewComponent = arguments[1];
 			}
-			var $attr40,$attr33,$attr37,$attr36,$attr35,$attr34,$attr39,$attr38;
-			$p['$$super']($m['WriteMediator'], self)['__init__']((($attr33=($attr34=$m['WriteMediator'])['NAME']) == null || (($attr34.__is_instance__) && typeof $attr33 == 'function') || (typeof $attr33['__get__'] == 'function')?
-						$p['getattr']($attr34, 'NAME'):
+			var $attr42,$attr44,$attr37,$attr43,$attr40,$attr41,$attr39,$attr38;
+			$p['$$super']($m['WriteMediator'], self)['__init__']((($attr37=($attr38=$m['WriteMediator'])['NAME']) == null || (($attr38.__is_instance__) && typeof $attr37 == 'function') || (typeof $attr37['__get__'] == 'function')?
+						$p['getattr']($attr38, 'NAME'):
 						$m['WriteMediator']['NAME']), viewComponent);
 			$p['setattr'](self['viewComponent'], 'mediator', self);
-			$p['setattr'](self, 'post_remote_proxy', self['facade']['retrieveProxy']((($attr35=($attr36=$m['model']['PostRemoteProxy'])['NAME']) == null || (($attr36.__is_instance__) && typeof $attr35 == 'function') || (typeof $attr35['__get__'] == 'function')?
-						$p['getattr']($attr36, 'NAME'):
+			$p['setattr'](self, 'post_remote_proxy', self['facade']['retrieveProxy']((($attr39=($attr40=$m['model']['PostRemoteProxy'])['NAME']) == null || (($attr40.__is_instance__) && typeof $attr39 == 'function') || (typeof $attr39['__get__'] == 'function')?
+						$p['getattr']($attr40, 'NAME'):
 						$m['model']['PostRemoteProxy']['NAME'])));
-			self['viewComponent']['post_button']['addClickListener']((($attr37=($attr38=self)['add_post']) == null || (($attr38.__is_instance__) && typeof $attr37 == 'function') || (typeof $attr37['__get__'] == 'function')?
-						$p['getattr']($attr38, 'add_post'):
+			self['viewComponent']['post_button']['addClickListener']((($attr41=($attr42=self)['add_post']) == null || (($attr42.__is_instance__) && typeof $attr41 == 'function') || (typeof $attr41['__get__'] == 'function')?
+						$p['getattr']($attr42, 'add_post'):
 						self['add_post']));
-			self['viewComponent']['cancel_button']['addClickListener']((($attr39=($attr40=self)['on_close']) == null || (($attr40.__is_instance__) && typeof $attr39 == 'function') || (typeof $attr39['__get__'] == 'function')?
-						$p['getattr']($attr40, 'on_close'):
+			self['viewComponent']['cancel_button']['addClickListener']((($attr43=($attr44=self)['on_close']) == null || (($attr44.__is_instance__) && typeof $attr43 == 'function') || (typeof $attr43['__get__'] == 'function')?
+						$p['getattr']($attr44, 'on_close'):
 						self['on_close']));
 			return null;
 		}
 			} else {
 				var self = arguments[0];
 			}
-			var $attr42,$attr41;
-			return $p['list']([(($attr41=($attr42=$m['Blog']['AppFacade'])['VIEW_WRITE_POST']) == null || (($attr42.__is_instance__) && typeof $attr41 == 'function') || (typeof $attr41['__get__'] == 'function')?
-						$p['getattr']($attr42, 'VIEW_WRITE_POST'):
+			var $attr46,$attr45;
+			return $p['list']([(($attr45=($attr46=$m['Blog']['AppFacade'])['VIEW_WRITE_POST']) == null || (($attr46.__is_instance__) && typeof $attr45 == 'function') || (typeof $attr45['__get__'] == 'function')?
+						$p['getattr']($attr46, 'VIEW_WRITE_POST'):
 						$m['Blog']['AppFacade']['VIEW_WRITE_POST'])]);
 		}
 	, 1, [null,null,['self']]);
 				var self = arguments[0];
 				note = arguments[1];
 			}
-			var $attr43,$attr44,note_name;
+			var $attr47,$attr48,note_name;
 			note_name = note['getName']();
-			if ($p['bool']($p['op_eq'](note_name, (($attr43=($attr44=$m['Blog']['AppFacade'])['VIEW_WRITE_POST']) == null || (($attr44.__is_instance__) && typeof $attr43 == 'function') || (typeof $attr43['__get__'] == 'function')?
-						$p['getattr']($attr44, 'VIEW_WRITE_POST'):
+			if ($p['bool']($p['op_eq'](note_name, (($attr47=($attr48=$m['Blog']['AppFacade'])['VIEW_WRITE_POST']) == null || (($attr48.__is_instance__) && typeof $attr47 == 'function') || (typeof $attr47['__get__'] == 'function')?
+						$p['getattr']($attr48, 'VIEW_WRITE_POST'):
 						$m['Blog']['AppFacade']['VIEW_WRITE_POST'])))) {
 				self['view_write_post'](self);
 			}
 				var self = arguments[0];
 				viewComponent = arguments[1];
 			}
-			var $attr51,$attr50,$attr52,$attr46,$attr47,$attr45,$attr48,$attr49;
-			$p['$$super']($m['EditMediator'], self)['__init__']((($attr45=($attr46=$m['EditMediator'])['NAME']) == null || (($attr46.__is_instance__) && typeof $attr45 == 'function') || (typeof $attr45['__get__'] == 'function')?
-						$p['getattr']($attr46, 'NAME'):
+			var $attr51,$attr50,$attr52,$attr55,$attr54,$attr56,$attr53,$attr49;
+			$p['$$super']($m['EditMediator'], self)['__init__']((($attr49=($attr50=$m['EditMediator'])['NAME']) == null || (($attr50.__is_instance__) && typeof $attr49 == 'function') || (typeof $attr49['__get__'] == 'function')?
+						$p['getattr']($attr50, 'NAME'):
 						$m['EditMediator']['NAME']), viewComponent);
 			$p['setattr'](self['viewComponent'], 'mediator', self);
-			$p['setattr'](self, 'edit_remote_proxy', self['facade']['retrieveProxy']((($attr47=($attr48=$m['model']['PostRemoteProxy'])['NAME']) == null || (($attr48.__is_instance__) && typeof $attr47 == 'function') || (typeof $attr47['__get__'] == 'function')?
-						$p['getattr']($attr48, 'NAME'):
+			$p['setattr'](self, 'edit_remote_proxy', self['facade']['retrieveProxy']((($attr51=($attr52=$m['model']['PostRemoteProxy'])['NAME']) == null || (($attr52.__is_instance__) && typeof $attr51 == 'function') || (typeof $attr51['__get__'] == 'function')?
+						$p['getattr']($attr52, 'NAME'):
 						$m['model']['PostRemoteProxy']['NAME'])));
-			self['viewComponent']['edit_button']['addClickListener']((($attr49=($attr50=self)['edit_post']) == null || (($attr50.__is_instance__) && typeof $attr49 == 'function') || (typeof $attr49['__get__'] == 'function')?
-						$p['getattr']($attr50, 'edit_post'):
+			self['viewComponent']['edit_button']['addClickListener']((($attr53=($attr54=self)['edit_post']) == null || (($attr54.__is_instance__) && typeof $attr53 == 'function') || (typeof $attr53['__get__'] == 'function')?
+						$p['getattr']($attr54, 'edit_post'):
 						self['edit_post']));
-			self['viewComponent']['edit_cancel_button']['addClickListener']((($attr51=($attr52=self)['on_edit_close']) == null || (($attr52.__is_instance__) && typeof $attr51 == 'function') || (typeof $attr51['__get__'] == 'function')?
-						$p['getattr']($attr52, 'on_edit_close'):
+			self['viewComponent']['edit_cancel_button']['addClickListener']((($attr55=($attr56=self)['on_edit_close']) == null || (($attr56.__is_instance__) && typeof $attr55 == 'function') || (typeof $attr55['__get__'] == 'function')?
+						$p['getattr']($attr56, 'on_edit_close'):
 						self['on_edit_close']));
 			return null;
 		}
 			} else {
 				var self = arguments[0];
 			}
-			var $attr53,$attr54;
-			return $p['list']([(($attr53=($attr54=$m['Blog']['AppFacade'])['VIEW_EDIT_POST']) == null || (($attr54.__is_instance__) && typeof $attr53 == 'function') || (typeof $attr53['__get__'] == 'function')?
-						$p['getattr']($attr54, 'VIEW_EDIT_POST'):
+			var $attr58,$attr57;
+			return $p['list']([(($attr57=($attr58=$m['Blog']['AppFacade'])['VIEW_EDIT_POST']) == null || (($attr58.__is_instance__) && typeof $attr57 == 'function') || (typeof $attr57['__get__'] == 'function')?
+						$p['getattr']($attr58, 'VIEW_EDIT_POST'):
 						$m['Blog']['AppFacade']['VIEW_EDIT_POST'])]);
 		}
 	, 1, [null,null,['self']]);
 				var self = arguments[0];
 				note = arguments[1];
 			}
-			var $attr55,$attr56,note_body,note_name;
+			var $attr59,$attr60,note_body,note_name;
 			note_name = note['getName']();
 			note_body = note['getBody']();
-			if ($p['bool']($p['op_eq'](note_name, (($attr55=($attr56=$m['Blog']['AppFacade'])['VIEW_EDIT_POST']) == null || (($attr56.__is_instance__) && typeof $attr55 == 'function') || (typeof $attr55['__get__'] == 'function')?
-						$p['getattr']($attr56, 'VIEW_EDIT_POST'):
+			if ($p['bool']($p['op_eq'](note_name, (($attr59=($attr60=$m['Blog']['AppFacade'])['VIEW_EDIT_POST']) == null || (($attr60.__is_instance__) && typeof $attr59 == 'function') || (typeof $attr59['__get__'] == 'function')?
+						$p['getattr']($attr60, 'VIEW_EDIT_POST'):
 						$m['Blog']['AppFacade']['VIEW_EDIT_POST'])))) {
 				self['view_edit_post'](note_body);
 			}
 				var self = arguments[0];
 				post_key = arguments[1];
 			}
-			var $attr59,$attr58,$attr60,$attr57,post_id,post;
+			var $attr64,$attr61,$attr62,$attr63,post_id,post;
 			self['viewComponent']['clear_edit_panel']();
 			self['viewComponent']['edit_dialog']['show']();
 			post_id = post_key['$$replace']('edit_', '');
 			post = self['edit_remote_proxy']['get_post'](post_id);
-			self['viewComponent']['edit_title']['setText']((($attr57=($attr58=post)['title']) == null || (($attr58.__is_instance__) && typeof $attr57 == 'function') || (typeof $attr57['__get__'] == 'function')?
-						$p['getattr']($attr58, 'title'):
+			self['viewComponent']['edit_title']['setText']((($attr61=($attr62=post)['title']) == null || (($attr62.__is_instance__) && typeof $attr61 == 'function') || (typeof $attr61['__get__'] == 'function')?
+						$p['getattr']($attr62, 'title'):
 						post['title']));
-			self['viewComponent']['edit_content']['setText']((($attr59=($attr60=post)['content']) == null || (($attr60.__is_instance__) && typeof $attr59 == 'function') || (typeof $attr59['__get__'] == 'function')?
-						$p['getattr']($attr60, 'content'):
+			self['viewComponent']['edit_content']['setText']((($attr63=($attr64=post)['content']) == null || (($attr64.__is_instance__) && typeof $attr63 == 'function') || (typeof $attr63['__get__'] == 'function')?
+						$p['getattr']($attr64, 'content'):
 						post['content']));
 			self['viewComponent']['edit_hidden_key']['setValue'](post_id);
 			return null;
 				var self = arguments[0];
 				event = arguments[1];
 			}
-
+			var $attr65,$attr66;
 			self['viewComponent']['edit_dialog']['hide']();
+			self['sendNotification']((($attr65=($attr66=$m['Blog']['AppFacade'])['EDIT_CANCELED']) == null || (($attr66.__is_instance__) && typeof $attr65 == 'function') || (typeof $attr65['__get__'] == 'function')?
+						$p['getattr']($attr66, 'EDIT_CANCELED'):
+						$m['Blog']['AppFacade']['EDIT_CANCELED']));
 			return null;
 		}
 	, 1, [null,null,['self'],['event']]);
 
 
 /*
-PYJS_DEPS: ['puremvc.patterns.mediator.Mediator', 'puremvc', 'puremvc.patterns', 'puremvc.patterns.mediator', 'puremvc.interfaces', 'model', 'Blog']
+PYJS_DEPS: ['puremvc.patterns.mediator.Mediator', 'puremvc', 'puremvc.patterns', 'puremvc.patterns.mediator', 'model', 'Blog']
 */
 
 --></script>

media/output/Blog.safari.cache.html

 		var $method;
 		$cls_definition.__module__ = 'Blog';
 		$cls_definition['STARTUP'] = 'startup';
-		$cls_definition['HOME_STARTUP'] = 'homeStartup';
-		$cls_definition['WRITE_STARTUP'] = 'writeStartup';
-		$cls_definition['EDIT_STARTUP'] = 'editStartup';
 		$cls_definition['ADD_POST'] = 'addPost';
 		$cls_definition['EDIT_POST'] = 'editPost';
 		$cls_definition['DELETE_POST'] = 'deletePost';
 		$cls_definition['GET_POSTS'] = 'getPosts';
 		$cls_definition['POSTS_RETRIEVED'] = 'postsRetrieved';
+		$cls_definition['EDIT_CANCELED'] = 'editCanceled';
 		$cls_definition['VIEW_WRITE_POST'] = 'viewWritePost';
 		$cls_definition['VIEW_EDIT_POST'] = 'viewEditPost';
 		$cls_definition['POST_REMOTE_FAILURE'] = 'postRemoteFailure';
 
 
 	$m['Mediator'] = $p['___import___']('puremvc.patterns.mediator.Mediator', null, null, false);
-	$m['puremvc'] = $p['___import___']('puremvc.interfaces', null);
 	$m['model'] = $p['___import___']('model', null);
 	$m['Blog'] = $p['___import___']('Blog', null);
 	$m['HomeMediator'] = (function(){
 			} else {
 				var self = arguments[0];
 			}
-			var $attr18,$attr15,$attr14,$attr17,$attr16,$attr11,$attr13,$attr12;
+			var $attr20,$attr19,$attr18,$attr15,$attr14,$attr17,$attr16,$attr11,$attr13,$attr12;
 			return $p['list']([(($attr11=($attr12=$m['Blog']['AppFacade'])['POSTS_RETRIEVED']) == null || (($attr12.__is_instance__) && typeof $attr11 == 'function') || (typeof $attr11['__get__'] == 'function')?
 						$p['getattr']($attr12, 'POSTS_RETRIEVED'):
 						$m['Blog']['AppFacade']['POSTS_RETRIEVED']), (($attr13=($attr14=$m['Blog']['AppFacade'])['POST_ADDED']) == null || (($attr14.__is_instance__) && typeof $attr13 == 'function') || (typeof $attr13['__get__'] == 'function')?
 						$p['getattr']($attr16, 'POST_EDITED'):
 						$m['Blog']['AppFacade']['POST_EDITED']), (($attr17=($attr18=$m['Blog']['AppFacade'])['POST_DELETED']) == null || (($attr18.__is_instance__) && typeof $attr17 == 'function') || (typeof $attr17['__get__'] == 'function')?
 						$p['getattr']($attr18, 'POST_DELETED'):
-						$m['Blog']['AppFacade']['POST_DELETED'])]);
+						$m['Blog']['AppFacade']['POST_DELETED']), (($attr19=($attr20=$m['Blog']['AppFacade'])['EDIT_CANCELED']) == null || (($attr20.__is_instance__) && typeof $attr19 == 'function') || (typeof $attr19['__get__'] == 'function')?
+						$p['getattr']($attr20, 'EDIT_CANCELED'):
+						$m['Blog']['AppFacade']['EDIT_CANCELED'])]);
 		}
 	, 1, [null,null,['self']]);
 		$cls_definition['listNotificationInterests'] = $method;
 				var self = arguments[0];
 				note = arguments[1];
 			}
-			var $attr20,$attr21,$attr22,$attr23,$attr19,$attr25,$attr26,$attr24,note_name;
+			var $attr21,$attr22,$attr23,$attr24,$attr25,$attr26,$attr27,$attr28,$attr29,$attr30,note_name;
 			note_name = note['getName']();
-			if ($p['bool']($p['op_eq'](note_name, (($attr19=($attr20=$m['Blog']['AppFacade'])['POSTS_RETRIEVED']) == null || (($attr20.__is_instance__) && typeof $attr19 == 'function') || (typeof $attr19['__get__'] == 'function')?
-						$p['getattr']($attr20, 'POSTS_RETRIEVED'):
+			if ($p['bool']($p['op_eq'](note_name, (($attr21=($attr22=$m['Blog']['AppFacade'])['POSTS_RETRIEVED']) == null || (($attr22.__is_instance__) && typeof $attr21 == 'function') || (typeof $attr21['__get__'] == 'function')?
+						$p['getattr']($attr22, 'POSTS_RETRIEVED'):
 						$m['Blog']['AppFacade']['POSTS_RETRIEVED'])))) {
 				self['update_posts']();
 			}
-			if ($p['bool']($p['op_eq'](note_name, (($attr21=($attr22=$m['Blog']['AppFacade'])['POST_ADDED']) == null || (($attr22.__is_instance__) && typeof $attr21 == 'function') || (typeof $attr21['__get__'] == 'function')?
-						$p['getattr']($attr22, 'POST_ADDED'):
+			if ($p['bool']($p['op_eq'](note_name, (($attr23=($attr24=$m['Blog']['AppFacade'])['POST_ADDED']) == null || (($attr24.__is_instance__) && typeof $attr23 == 'function') || (typeof $attr23['__get__'] == 'function')?
+						$p['getattr']($attr24, 'POST_ADDED'):
 						$m['Blog']['AppFacade']['POST_ADDED'])))) {
 				self['clear_update_posts']();
 			}
-			if ($p['bool']($p['op_eq'](note_name, (($attr23=($attr24=$m['Blog']['AppFacade'])['POST_EDITED']) == null || (($attr24.__is_instance__) && typeof $attr23 == 'function') || (typeof $attr23['__get__'] == 'function')?
-						$p['getattr']($attr24, 'POST_EDITED'):
+			if ($p['bool']($p['op_eq'](note_name, (($attr25=($attr26=$m['Blog']['AppFacade'])['POST_EDITED']) == null || (($attr26.__is_instance__) && typeof $attr25 == 'function') || (typeof $attr25['__get__'] == 'function')?
+						$p['getattr']($attr26, 'POST_EDITED'):
 						$m['Blog']['AppFacade']['POST_EDITED'])))) {
 				self['clear_update_posts']();
 			}
-			if ($p['bool']($p['op_eq'](note_name, (($attr25=($attr26=$m['Blog']['AppFacade'])['POST_DELETED']) == null || (($attr26.__is_instance__) && typeof $attr25 == 'function') || (typeof $attr25['__get__'] == 'function')?
-						$p['getattr']($attr26, 'POST_DELETED'):
+			if ($p['bool']($p['op_eq'](note_name, (($attr27=($attr28=$m['Blog']['AppFacade'])['POST_DELETED']) == null || (($attr28.__is_instance__) && typeof $attr27 == 'function') || (typeof $attr27['__get__'] == 'function')?
+						$p['getattr']($attr28, 'POST_DELETED'):
 						$m['Blog']['AppFacade']['POST_DELETED'])))) {
 				self['clear_update_posts']();
 			}
+			if ($p['bool']($p['op_eq'](note_name, (($attr29=($attr30=$m['Blog']['AppFacade'])['EDIT_CANCELED']) == null || (($attr30.__is_instance__) && typeof $attr29 == 'function') || (typeof $attr29['__get__'] == 'function')?
+						$p['getattr']($attr30, 'EDIT_CANCELED'):
+						$m['Blog']['AppFacade']['EDIT_CANCELED'])))) {
+				self['clear_hidden_id']();
+			}
 			return null;
 		}
 	, 1, [null,null,['self'],['note']]);
 			}
 
 			self['clear_posts']();
+			self['clear_hidden_id']();
 			self['update_posts']();
 			return null;
 		}
 			} else {
 				var self = arguments[0];
 			}
-			var $attr28,$attr27;
-			self['viewComponent']['remove']((($attr27=($attr28=self['viewComponent'])['contents']) == null || (($attr28.__is_instance__) && typeof $attr27 == 'function') || (typeof $attr27['__get__'] == 'function')?
-						$p['getattr']($attr28, 'contents'):
+			var $attr32,$attr31;
+			self['viewComponent']['remove']((($attr31=($attr32=self['viewComponent'])['contents']) == null || (($attr32.__is_instance__) && typeof $attr31 == 'function') || (typeof $attr31['__get__'] == 'function')?
+						$p['getattr']($attr32, 'contents'):
 						self['viewComponent']['contents']));
 			return null;
 		}
 	, 1, [null,null,['self']]);
 		$cls_definition['clear_posts'] = $method;
+		$method = $pyjs__bind_method2('clear_hidden_id', function() {
+			if (this.__is_instance__ === true) {
+				var self = this;
+			} else {
+				var self = arguments[0];
+			}
+
+			self['viewComponent']['edit_hidden_button']['setID']('');
+			self['viewComponent']['delete_hidden_button']['setID']('');
+			return null;
+		}
+	, 1, [null,null,['self']]);
+		$cls_definition['clear_hidden_id'] = $method;
 		$method = $pyjs__bind_method2('update_posts', function() {
 			if (this.__is_instance__ === true) {
 				var self = this;
 			} else {
 				var self = arguments[0];
 			}
-			var $attr29,$attr30;
-			self['sendNotification']((($attr29=($attr30=$m['Blog']['AppFacade'])['VIEW_WRITE_POST']) == null || (($attr30.__is_instance__) && typeof $attr29 == 'function') || (typeof $attr29['__get__'] == 'function')?
-						$p['getattr']($attr30, 'VIEW_WRITE_POST'):
+			var $attr33,$attr34;
+			self['sendNotification']((($attr33=($attr34=$m['Blog']['AppFacade'])['VIEW_WRITE_POST']) == null || (($attr34.__is_instance__) && typeof $attr33 == 'function') || (typeof $attr33['__get__'] == 'function')?
+						$p['getattr']($attr34, 'VIEW_WRITE_POST'):
 						$m['Blog']['AppFacade']['VIEW_WRITE_POST']));
 			return null;
 		}
 	, 1, [null,null,['self']]);
 		$cls_definition['on_write_click'] = $method;
+		$method = $pyjs__bind_method2('is_click_id_set', function(sender_id) {
+			if (this.__is_instance__ === true) {
+				var self = this;
+			} else {
+				var self = arguments[0];
+				sender_id = arguments[1];
+			}
+			var $or1,$or2;
+			if ($p['bool'](($p['bool']($or1=$p['op_eq'](sender_id, ''))?$or1:$p['op_eq'](sender_id, null)))) {
+				return false;
+			}
+			return true;
+		}
+	, 1, [null,null,['self'],['sender_id']]);
+		$cls_definition['is_click_id_set'] = $method;
 		$method = $pyjs__bind_method2('on_edit_click', function(sender) {
 			if (this.__is_instance__ === true) {
 				var self = this;
 				sender = arguments[1];
 			}
 			if (typeof sender == 'undefined') sender=arguments.callee.__args__[3][1];
-			var $attr32,$attr31;
-			self['sendNotification']((($attr31=($attr32=$m['Blog']['AppFacade'])['VIEW_EDIT_POST']) == null || (($attr32.__is_instance__) && typeof $attr31 == 'function') || (typeof $attr31['__get__'] == 'function')?
-						$p['getattr']($attr32, 'VIEW_EDIT_POST'):
-						$m['Blog']['AppFacade']['VIEW_EDIT_POST']), sender['getID']());
+			var $attr35,$attr36;
+			if ($p['bool'](self['is_click_id_set'](sender['getID']()))) {
+				self['sendNotification']((($attr35=($attr36=$m['Blog']['AppFacade'])['VIEW_EDIT_POST']) == null || (($attr36.__is_instance__) && typeof $attr35 == 'function') || (typeof $attr35['__get__'] == 'function')?
+							$p['getattr']($attr36, 'VIEW_EDIT_POST'):
+							$m['Blog']['AppFacade']['VIEW_EDIT_POST']), sender['getID']());
+			}
 			return null;
 		}
 	, 1, [null,null,['self'],['sender', null]]);
 			}
 			if (typeof sender == 'undefined') sender=arguments.callee.__args__[3][1];
 			var post_id,key;
-			key = sender['getID']();
-			post_id = key['$$replace']('delete_', '');
-			self['post_remote_proxy']['delete_remote_post'](post_id);
+			if ($p['bool'](self['is_click_id_set'](sender['getID']()))) {
+				key = sender['getID']();
+				post_id = key['$$replace']('delete_', '');
+				self['post_remote_proxy']['delete_remote_post'](post_id);
+			}
 			return null;
 		}
 	, 1, [null,null,['self'],['sender', null]]);
 				var self = arguments[0];
 				viewComponent = arguments[1];
 			}
-			var $attr40,$attr33,$attr37,$attr36,$attr35,$attr34,$attr39,$attr38;
-			$p['$$super']($m['WriteMediator'], self)['__init__']((($attr33=($attr34=$m['WriteMediator'])['NAME']) == null || (($attr34.__is_instance__) && typeof $attr33 == 'function') || (typeof $attr33['__get__'] == 'function')?
-						$p['getattr']($attr34, 'NAME'):
+			var $attr42,$attr44,$attr37,$attr43,$attr40,$attr41,$attr39,$attr38;
+			$p['$$super']($m['WriteMediator'], self)['__init__']((($attr37=($attr38=$m['WriteMediator'])['NAME']) == null || (($attr38.__is_instance__) && typeof $attr37 == 'function') || (typeof $attr37['__get__'] == 'function')?
+						$p['getattr']($attr38, 'NAME'):
 						$m['WriteMediator']['NAME']), viewComponent);
 			$p['setattr'](self['viewComponent'], 'mediator', self);
-			$p['setattr'](self, 'post_remote_proxy', self['facade']['retrieveProxy']((($attr35=($attr36=$m['model']['PostRemoteProxy'])['NAME']) == null || (($attr36.__is_instance__) && typeof $attr35 == 'function') || (typeof $attr35['__get__'] == 'function')?
-						$p['getattr']($attr36, 'NAME'):
+			$p['setattr'](self, 'post_remote_proxy', self['facade']['retrieveProxy']((($attr39=($attr40=$m['model']['PostRemoteProxy'])['NAME']) == null || (($attr40.__is_instance__) && typeof $attr39 == 'function') || (typeof $attr39['__get__'] == 'function')?
+						$p['getattr']($attr40, 'NAME'):
 						$m['model']['PostRemoteProxy']['NAME'])));
-			self['viewComponent']['post_button']['addClickListener']((($attr37=($attr38=self)['add_post']) == null || (($attr38.__is_instance__) && typeof $attr37 == 'function') || (typeof $attr37['__get__'] == 'function')?
-						$p['getattr']($attr38, 'add_post'):
+			self['viewComponent']['post_button']['addClickListener']((($attr41=($attr42=self)['add_post']) == null || (($attr42.__is_instance__) && typeof $attr41 == 'function') || (typeof $attr41['__get__'] == 'function')?
+						$p['getattr']($attr42, 'add_post'):
 						self['add_post']));
-			self['viewComponent']['cancel_button']['addClickListener']((($attr39=($attr40=self)['on_close']) == null || (($attr40.__is_instance__) && typeof $attr39 == 'function') || (typeof $attr39['__get__'] == 'function')?
-						$p['getattr']($attr40, 'on_close'):
+			self['viewComponent']['cancel_button']['addClickListener']((($attr43=($attr44=self)['on_close']) == null || (($attr44.__is_instance__) && typeof $attr43 == 'function') || (typeof $attr43['__get__'] == 'function')?
+						$p['getattr']($attr44, 'on_close'):
 						self['on_close']));
 			return null;
 		}
 			} else {
 				var self = arguments[0];
 			}
-			var $attr42,$attr41;
-			return $p['list']([(($attr41=($attr42=$m['Blog']['AppFacade'])['VIEW_WRITE_POST']) == null || (($attr42.__is_instance__) && typeof $attr41 == 'function') || (typeof $attr41['__get__'] == 'function')?
-						$p['getattr']($attr42, 'VIEW_WRITE_POST'):
+			var $attr46,$attr45;
+			return $p['list']([(($attr45=($attr46=$m['Blog']['AppFacade'])['VIEW_WRITE_POST']) == null || (($attr46.__is_instance__) && typeof $attr45 == 'function') || (typeof $attr45['__get__'] == 'function')?
+						$p['getattr']($attr46, 'VIEW_WRITE_POST'):
 						$m['Blog']['AppFacade']['VIEW_WRITE_POST'])]);
 		}
 	, 1, [null,null,['self']]);
 				var self = arguments[0];
 				note = arguments[1];
 			}
-			var $attr43,$attr44,note_name;
+			var $attr47,$attr48,note_name;
 			note_name = note['getName']();
-			if ($p['bool']($p['op_eq'](note_name, (($attr43=($attr44=$m['Blog']['AppFacade'])['VIEW_WRITE_POST']) == null || (($attr44.__is_instance__) && typeof $attr43 == 'function') || (typeof $attr43['__get__'] == 'function')?
-						$p['getattr']($attr44, 'VIEW_WRITE_POST'):
+			if ($p['bool']($p['op_eq'](note_name, (($attr47=($attr48=$m['Blog']['AppFacade'])['VIEW_WRITE_POST']) == null || (($attr48.__is_instance__) && typeof $attr47 == 'function') || (typeof $attr47['__get__'] == 'function')?
+						$p['getattr']($attr48, 'VIEW_WRITE_POST'):
 						$m['Blog']['AppFacade']['VIEW_WRITE_POST'])))) {
 				self['view_write_post'](self);
 			}
 				var self = arguments[0];
 				viewComponent = arguments[1];
 			}
-			var $attr51,$attr50,$attr52,$attr46,$attr47,$attr45,$attr48,$attr49;
-			$p['$$super']($m['EditMediator'], self)['__init__']((($attr45=($attr46=$m['EditMediator'])['NAME']) == null || (($attr46.__is_instance__) && typeof $attr45 == 'function') || (typeof $attr45['__get__'] == 'function')?
-						$p['getattr']($attr46, 'NAME'):
+			var $attr51,$attr50,$attr52,$attr55,$attr54,$attr56,$attr53,$attr49;
+			$p['$$super']($m['EditMediator'], self)['__init__']((($attr49=($attr50=$m['EditMediator'])['NAME']) == null || (($attr50.__is_instance__) && typeof $attr49 == 'function') || (typeof $attr49['__get__'] == 'function')?
+						$p['getattr']($attr50, 'NAME'):
 						$m['EditMediator']['NAME']), viewComponent);
 			$p['setattr'](self['viewComponent'], 'mediator', self);
-			$p['setattr'](self, 'edit_remote_proxy', self['facade']['retrieveProxy']((($attr47=($attr48=$m['model']['PostRemoteProxy'])['NAME']) == null || (($attr48.__is_instance__) && typeof $attr47 == 'function') || (typeof $attr47['__get__'] == 'function')?
-						$p['getattr']($attr48, 'NAME'):
+			$p['setattr'](self, 'edit_remote_proxy', self['facade']['retrieveProxy']((($attr51=($attr52=$m['model']['PostRemoteProxy'])['NAME']) == null || (($attr52.__is_instance__) && typeof $attr51 == 'function') || (typeof $attr51['__get__'] == 'function')?
+						$p['getattr']($attr52, 'NAME'):
 						$m['model']['PostRemoteProxy']['NAME'])));
-			self['viewComponent']['edit_button']['addClickListener']((($attr49=($attr50=self)['edit_post']) == null || (($attr50.__is_instance__) && typeof $attr49 == 'function') || (typeof $attr49['__get__'] == 'function')?
-						$p['getattr']($attr50, 'edit_post'):
+			self['viewComponent']['edit_button']['addClickListener']((($attr53=($attr54=self)['edit_post']) == null || (($attr54.__is_instance__) && typeof $attr53 == 'function') || (typeof $attr53['__get__'] == 'function')?
+						$p['getattr']($attr54, 'edit_post'):
 						self['edit_post']));
-			self['viewComponent']['edit_cancel_button']['addClickListener']((($attr51=($attr52=self)['on_edit_close']) == null || (($attr52.__is_instance__) && typeof $attr51 == 'function') || (typeof $attr51['__get__'] == 'function')?
-						$p['getattr']($attr52, 'on_edit_close'):
+			self['viewComponent']['edit_cancel_button']['addClickListener']((($attr55=($attr56=self)['on_edit_close']) == null || (($attr56.__is_instance__) && typeof $attr55 == 'function') || (typeof $attr55['__get__'] == 'function')?
+						$p['getattr']($attr56, 'on_edit_close'):
 						self['on_edit_close']));
 			return null;
 		}
 			} else {
 				var sel