def listmailbox(request, defmailbox="INBOX", update_session=True): """Mailbox content listing Return a list of messages contained in the specified mailbox. The number of elements returned depends on the ``MESSAGES_PER_PAGE`` parameter. (user preferences) :param request: a ``Request`` object :param defmailbox: the default mailbox (when not present inside request arguments) :return: a dictionnary """ mbox = request.GET.get("mbox", defmailbox) if update_session: set_nav_params(request) request.session["mbox"] = mbox lst = ImapListing(request.user, request.session["password"], baseurl="?action=listmailbox&mbox=%s&" % mbox, folder=mbox, elems_per_page=int( parameters.get_user(request.user, "MESSAGES_PER_PAGE")), **request.session["navparams"]) return lst.render(request, request.session["pageid"])
def listmailbox(request, defmailbox="INBOX", update_session=True): """Mailbox content listing Return a list of messages contained in the specified mailbox. The number of elements returned depends on the ``MESSAGES_PER_PAGE`` parameter. (user preferences) :param request: a ``Request`` object :param defmailbox: the default mailbox (when not present inside request arguments) :return: a dictionnary """ mbox = request.GET.get("mbox", defmailbox) if update_session: set_nav_params(request) request.session["mbox"] = mbox lst = ImapListing(request.user, request.session["password"], baseurl="?action=listmailbox&mbox=%s&" % mbox, folder=mbox, elems_per_page=int(parameters.get_user(request.user, "MESSAGES_PER_PAGE")), **request.session["navparams"]) return lst.render(request, request.session["pageid"])
def index(request): """Webmail actions handler Problèmes liés à la navigation 'anchor based' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Lors d'un rafraichissemt complet, une première requête est envoyée vers /webmail/. On ne connait pas encore l'action qui va être demandée mais on peut déjà envoyer des informations indépendantes (comme les dossiers, le quota). Si on se contente de cela, l'affichage donnera un aspect décomposé qui n'est pas très séduisant (à cause de la latence notamment). Il faudrait pouvoir envoyer le menu par la même occasion, le souci étant de savoir lequel... Une solution possible : il suffirait de déplacer le menu vers la droite pour l'aligner avec le contenu, remonter la liste des dossiers (même hauteur que le menu) et renvoyer le menu en même temps que le contenu. Le rendu sera plus uniforme je pense. """ action = request.GET.get("action", None) if action is not None: if not globals().has_key(action): raise WebmailError(_("Undefined action")) response = globals()[action](request) else: if request.is_ajax(): raise WebmailError(_("Bad request")) response = dict(selection="webmail") curmbox = request.session.get("mbox", "INBOX") if not request.is_ajax(): request.session["lastaction"] = None imapc = get_imapconnector(request) response["hdelimiter"] = imapc.hdelimiter response["mboxes"] = render_mboxes_list(request, imapc) imapc.getquota(curmbox) response["refreshrate"] = \ int(parameters.get_user(request.user, "REFRESH_INTERVAL")) response["quota"] = ImapListing.computequota(imapc) trash = parameters.get_user(request.user, "TRASH_FOLDER") response["trash"] = trash response["ro_mboxes"] = [ "INBOX", "Junk", parameters.get_user(request.user, "SENT_FOLDER"), trash, parameters.get_user(request.user, "DRAFTS_FOLDER") ] return _render(request, "webmail/index.html", response) if action in ["reply", "forward"]: action = "compose" if request.session["lastaction"] != action: extra_args = {} if response.has_key("menuargs"): extra_args = response["menuargs"] del response["menuargs"] try: response["menu"] = \ getattr(webextras, "%s_menu" % action)("", curmbox, request.user, **extra_args) except KeyError: pass response.update(callback=action) if not response.has_key("status"): response.update(status="ok") return ajax_simple_response(response)
def index(request): """Webmail actions handler Problèmes liés à la navigation 'anchor based' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Lors d'un rafraichissemt complet, une première requête est envoyée vers /webmail/. On ne connait pas encore l'action qui va être demandée mais on peut déjà envoyer des informations indépendantes (comme les dossiers, le quota). Si on se contente de cela, l'affichage donnera un aspect décomposé qui n'est pas très séduisant (à cause de la latence notamment). Il faudrait pouvoir envoyer le menu par la même occasion, le souci étant de savoir lequel... Une solution possible : il suffirait de déplacer le menu vers la droite pour l'aligner avec le contenu, remonter la liste des dossiers (même hauteur que le menu) et renvoyer le menu en même temps que le contenu. Le rendu sera plus uniforme je pense. """ action = request.GET.get("action", None) if action is not None: if not globals().has_key(action): raise WebmailError(_("Undefined action")) response = globals()[action](request) else: if request.is_ajax(): raise WebmailError(_("Bad request")) response = dict(selection="webmail") curmbox = request.session.get("mbox", "INBOX") if not request.is_ajax(): request.session["lastaction"] = None imapc = get_imapconnector(request) response["mboxes"] = render_mboxes_list(request, imapc) imapc.getquota(curmbox) response["refreshrate"] = \ int(parameters.get_user(request.user, "REFRESH_INTERVAL")) response["quota"] = ImapListing.computequota(imapc) response["ro_mboxes"] = [ "INBOX", "Junk", parameters.get_user(request.user, "SENT_FOLDER"), parameters.get_user(request.user, "TRASH_FOLDER"), parameters.get_user(request.user, "DRAFTS_FOLDER") ] return _render(request, "webmail/index.html", response) if action in ["reply", "forward"]: action = "compose" if request.session["lastaction"] != action: extra_args = {} if response.has_key("menuargs"): extra_args = response["menuargs"] del response["menuargs"] try: response["menu"] = \ getattr(webextras, "%s_menu" % action)("", curmbox, request.user, **extra_args) except KeyError: pass response.update(callback=action) if not response.has_key("status"): response.update(status="ok") return ajax_simple_response(response)