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"))
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()
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"])
def __init__(self): view.View.__init__(self) hookmanager.register( "HOOK_LOAD_HEAD_CONTENT", [resource.CSSLink("statistics/css/gridstack.min.css")])
# 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",