Mercurial > libervia-web
changeset 770:e67d8c13ba22
browser_side (blog): fixes switching between display/edit modes and raw/rich text
author | souliane <souliane@mailoo.org> |
---|---|
date | Thu, 26 Nov 2015 13:51:06 +0100 |
parents | 5b28bca05d23 |
children | 102050e489fa |
files | src/browser/sat_browser/blog.py |
diffstat | 1 files changed, 22 insertions(+), 49 deletions(-) [+] |
line wrap: on
line diff
--- a/src/browser/sat_browser/blog.py Wed Nov 25 18:40:37 2015 +0100 +++ b/src/browser/sat_browser/blog.py Thu Nov 26 13:51:06 2015 +0100 @@ -150,10 +150,9 @@ else: log.error("Bad entry mode: %s" % self.mode) self.bubble.addStyleName("bubble") - self._showSyntaxSwitchButton(False) self.entry_dialog.add(self.bubble) self.bubble.addEditListener(self._showWarning) # FIXME: remove edit listeners - self._setEditable() + self.setEditable(self.editable) def _setIcons(self): """Set the entry icons (delete, update, comment)""" @@ -188,61 +187,34 @@ self.comments_panel.addStyleName('subPanel') self.add(self.comments_panel) - def _setEditable(self): - self.bubble.edit(self.editable) - if self.editable: - self._showSyntaxSwitchButton() - def setEditable(self, editable=True): + """Toggle the bubble between display and edit mode. + + @param editable (bool) + """ self.editable = editable - self._setEditable() + self.bubble.edit(self.editable) + self.updateSyntaxSwitchButton() - def _showSyntaxSwitchButton(self, show=True): - if show: + def updateSyntaxSwitchButton(self): + """Set the visibility of the button to switch between blog and microblog.""" + try: + self.toggle_syntax_button.removeFromParent() + except (AttributeError, TypeError): + pass + if self.editable: if self.mode == C.ENTRY_MODE_TEXT: - html = '<a style="color: blue;">rich text</a>' + html = _(u'<a style="color: blue;">switch to blog</a>') + title = _(u'compose a rich text message with a title - suitable for writing articles') else: - html = '<a style="color: blue;">raw text</a>' - self.toggle_syntax_button = HTML(html) + html = _(u'<a style="color: blue;">switch to microblog</a>') + title = _(u'compose a short message without title - suitable for sharing news') + self.toggle_syntax_button = HTML(html, Title=title) self.toggle_syntax_button.addClickListener(self.toggleContentSyntax) self.toggle_syntax_button.addStyleName('mb_entry_toggle_syntax') self.entry_dialog.add(self.toggle_syntax_button) self.toggle_syntax_button.setStyleAttribute('top', '-20px') # XXX: need to force CSS self.toggle_syntax_button.setStyleAttribute('left', '-20px') - else: - try: - self.toggle_syntax_button.removeFromParent() - except (AttributeError, TypeError): - pass - - - def edit(self, edit=True): - """Toggle the bubble between display and edit mode""" - try: - self.toggle_syntax_button.removeFromParent() - except (AttributeError, TypeError): - pass - self.bubble.edit(edit) - if edit: - if self.mode in ENTRY_RICH: - # image = '<a class="richTextIcon">A</a>' - html = '<a style="color: blue;">raw text</a>' - # title = _('Switch to raw text edition') - else: - # image = '<img src="media/icons/tango/actions/32/format-text-italic.png" class="richTextIcon"/>' - html = '<a style="color: blue;">rich text</a>' - # title = _('Switch to rich text edition') - self.toggle_syntax_button = HTML(html) - self.toggle_syntax_button.addClickListener(self.toggleContentSyntax) - self.toggle_syntax_button.addStyleName('mb_entry_toggle_syntax') - self.entry_dialog.add(self.toggle_syntax_button) - self.toggle_syntax_button.setStyleAttribute('top', '-20px') # XXX: need to force CSS - self.toggle_syntax_button.setStyleAttribute('left', '-20px') - - # def updateAvatar(self, new_avatar): - # """Change the avatar of the entry - # @param new_avatar: path to the new image""" - # self.avatar.setUrl(new_avatar) def onClick(self, sender): if sender == self: @@ -250,7 +222,7 @@ elif sender == self.delete_label: self._onRetractClick() elif sender == self.update_label: - self.edit(True) + self.setEditable(True) elif sender == self.comment_label: self._onCommentClick() # elif sender == self.show_comments_link: @@ -300,7 +272,8 @@ # we don't keep edit entries for comments self.delete() else: - self._showSyntaxSwitchButton(False) + self.editable = False + self.updateSyntaxSwitchButton() def _showWarning(self, sender, keycode, modifiers): if keycode == keyb.KEY_ENTER & keyb.MODIFIER_SHIFT: # FIXME: fix edit_listeners, it's dirty (we have to check keycode/modifiers twice !)