view frontends/src/constants.py @ 773:eac23b1aad90

core: dynamics menus refactoring: - menu now use generic callback system, with extra data - asyncMenuCall is removed in favor of launchAction - menu_id (== callback_id) is used to identify menu instead of category/name/type tuple - i18n is managed throught deferred translation, and returned with _i18n suffix e.g.: menu (D_('File'), D_('Open')): (u'File', u'Open') is menu_path, (u'Fichier', u'Ouvrir') is french menu_path_i18n. - type actually can have the following values: - NORMAL: classical menu - JID_CONTEXT: contextual menu, used with any jid - ROSTER_JID_CONTEXT: like JID_CONTEXT, but restricted to jids in roster. - ROSTER_GROUP_CONTEXT: contextual menu, use with groups - security_limit is used, in the same way as for parameters - when using importMenu, callback can be an actual callback, or one already registered with registerCallback
author Goffi <goffi@goffi.org>
date Sun, 29 Dec 2013 17:10:14 +0100
parents bfabeedbf32e
children 5642939d254e
line wrap: on
line source

#!/usr/bin/python
# -*- coding: utf-8 -*-

# Primitivus: a SAT frontend
# Copyright (C) 2009, 2010, 2011, 2012, 2013  Jérôme Poisson (goffi@goffi.org)

# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Affero General Public License for more details.

# You should have received a copy of the GNU Affero General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.


from sat.core.i18n import _

try:
    from collections import OrderedDict  # only available from python 2.7
except ImportError:
    try:
        from ordereddict import OrderedDict
    except ImportError:
        pass  # libervia can not import external libraries


def getPresence():
    """We cannot do it directly in the Const class, if it is not encapsulated
    in a method we get a JS runtime SyntaxError: "missing ) in parenthetical".
    # TODO: merge this definition with those in primitivus.constants and wix.constants
    """
    try:
        presence = OrderedDict([("", _("Online")),
                                ("chat", _("Free for chat")),
                                ("away", _("Away from keyboard")),
                                ("dnd", _("Do not disturb")),
                                ("xa", _("Away"))])
    except TypeError:
        presence = {"": _("Online"),
                    "chat": _("Free for chat"),
                    "away": _("Away from keyboard"),
                    "dnd": _("Do not disturb"),
                    "xa": _("Away")
                    }
    return presence


class Const(object):
    PRESENCE = getPresence()

    MENU_NORMAL = "NORMAL"

    # from plugin_misc_text_syntaxes
    _SYNTAX_XHTML = "XHTML"
    _SYNTAX_CURRENT = "@CURRENT@"

    NO_SECURITY_LIMIT = -1