Пример #1
0
    def render(self):
        # FIXME: move theme management to a plugin !
        if env.request.user:
            theme = env.request.user.get_property(
                "theme", default=env.config.general.default_theme)
            lang = env.request.user.get_property(
                "language", default=env.config.general.default_locale)
        else:
            theme = env.config.general.default_theme
            lang = env.config.general.default_locale

        _HEAD = copy.copy(_CSS_FILES)
        _HEAD[resource.CSSLink("prewikka/css/themes/%s.css" % theme)] = True
        _HEAD.update(_JS_FILES)

        # The jqgrid locale files use only two characters for identifying the language (e.g. pt_BR -> pt)
        _HEAD[resource.JSLink("prewikka/js/locales/grid.locale-%s.min.js" %
                              lang[:2])] = True

        for contents in filter(None,
                               hookmanager.trigger("HOOK_LOAD_HEAD_CONTENT")):
            _HEAD.update((i, True) for i in contents)

        _BODY = utils.OrderedDict()
        for contents in filter(None,
                               hookmanager.trigger("HOOK_LOAD_BODY_CONTENT")):
            _BODY.update((i, True) for i in contents)

        env.request.dataset["document"].head_content = _HEAD
        env.request.dataset["document"].body_content = _BODY
        env.request.dataset["toplayout_extra_content"] = filter(
            None, hookmanager.trigger("HOOK_TOPLAYOUT_EXTRA_CONTENT"))
Пример #2
0
    def _prepare(self, dataset):
        # FIXME: move theme management to a plugin !
        if env.request.user:
            theme = env.request.user.get_property(
                "theme", default=env.config.general.default_theme)
            lang = env.request.user.get_property(
                "language", default=env.config.general.default_locale)
        else:
            theme = env.config.general.default_theme
            lang = env.config.general.default_locale

        _HEAD = collections.OrderedDict(
            (resource.CSSLink(link), True) for link in CSS_FILES)
        _HEAD[resource.CSSLink("prewikka/css/themes/%s.css" % theme)] = True
        _HEAD.update((resource.JSLink(link), True) for link in JS_FILES)

        # The jqgrid locale files use only two characters for identifying the language (e.g. pt_BR -> pt)
        _HEAD[resource.JSLink("prewikka/js/locales/jqgrid/grid.locale-%s.js" %
                              lang[:2])] = True
        _HEAD[resource.JSLink("prewikka/js/locales/select2/%s.js" %
                              lang[:2])] = True

        for contents in filter(None,
                               hookmanager.trigger("HOOK_LOAD_HEAD_CONTENT")):
            _HEAD.update((i, True) for i in contents)

        _BODY = collections.OrderedDict()
        for contents in filter(None,
                               hookmanager.trigger("HOOK_LOAD_BODY_CONTENT")):
            _BODY.update((i, True) for i in contents)

        if not dataset:  # In case of error, we use the exception dataset
            dataset = _BASEVIEW_TEMPLATE.dataset()

        self._setup_dataset_default(dataset)
        dataset["document"].head_content = _HEAD
        dataset["document"].body_content = _BODY
        dataset["document"].lang = lang[:2]
        dataset["toplayout_extra_content"] = filter(
            None, hookmanager.trigger("HOOK_TOPLAYOUT_EXTRA_CONTENT"))

        return dataset.render()
Пример #3
0
    def __init__(self):
        env.dataprovider.check_datatype(self.type)

        self._formatter = self.formatter(self.type)

        self.all_fields = []
        self._main_fields = list(self.default_columns.keys())
        self.fields_info = collections.OrderedDict()
        self.columns_properties = collections.OrderedDict()

        self._prepare_fields()
        view.View.__init__(self)

        hookmanager.register(
            "HOOK_LOAD_HEAD_CONTENT",
            [resource.CSSLink("datasearch/css/datasearch.css")])

        section = self.section or env.dataprovider.get_label(self.type)
        tabs = self.tabs or (N_("Forensic"), N_("Dashboard"))

        view.route("/%s/forensic/ajax_timeline" % self.name,
                   self.ajax_timeline)
        view.route("/%s/forensic/ajax_table" % self.name, self.ajax_table)
        view.route("/%s/forensic/ajax_details" % self.name, self.ajax_details)
        view.route("/%s/forensic/ajax_infos" % self.name, self.ajax_infos)
        view.route("/%s/forensic/ajax_groupby" % self.name, self.ajax_groupby)
        view.route("/%s/forensic/csv_download" % self.name,
                   self.csv_download,
                   methods=["POST"])
        view.route("/%s/forensic" % self.name,
                   self.forensic,
                   menu=(section, tabs[0]),
                   keywords=["listing", "inheritable"],
                   datatype=self.type,
                   priority=1,
                   help="#%sforensic" % self.type,
                   methods=["POST", "GET"])
        view.route("/%s/dashboard" % self.name,
                   self.dashboard,
                   menu=(section, tabs[1]),
                   datatype=self.type,
                   help="#%sdashboard" % self.type,
                   methods=["POST", "GET"])
Пример #4
0
 def __init__(self):
     view.View.__init__(self)
     hookmanager.register(
         "HOOK_LOAD_HEAD_CONTENT",
         [resource.CSSLink("statistics/css/gridstack.min.css")])
Пример #5
0
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

from __future__ import absolute_import, division, print_function, unicode_literals

import copy

from prewikka import hookmanager, resource, template, utils, view

_CSS_FILES = utils.OrderedDict(
    (resource.CSSLink(link), True)
    for link in ("prewikka/css/jquery-ui.min.css",
                 "prewikka/css/bootstrap.min.css",
                 "prewikka/css/jquery-ui-timepicker-addon.min.css",
                 "prewikka/css/font-awesome.min.css",
                 "prewikka/css/ui.jqgrid.min.css",
                 "prewikka/css/ui.multiselect.min.css",
                 "prewikka/css/loader.css"))

_JS_FILES = utils.OrderedDict(
    (resource.JSLink(link), True)
    for link in ("prewikka/js/jquery.js", "prewikka/js/jquery-ui.min.js",
                 "prewikka/js/bootstrap.min.js", "prewikka/js/functions.js",
                 "prewikka/js/ajax.js", "prewikka/js/underscore-min.js",
                 "prewikka/js/jquery-ui-timepicker-addon.min.js",
                 "prewikka/js/ui.multiselect.min.js",