def page_index(): title = _("Check_MK Mobile") mobile_html_head(title) jqm_page_header(title, right_button=("javascript:document.location.reload();", _("Reload"), "refresh"), id="data") views.load_views() items = [] for view_name, view in views.permitted_views().items(): if view.get("mobile") and not view.get("hidden"): url = "mobile_view.py?view_name=%s" % view_name count = "" if not view.get("mustsearch"): count = views.show_view(view, only_count=True) count = '<span class="ui-li-count">%d</span>' % count items.append( (view.get("topic"), url, '%s %s' % (view.get("linktitle", view["title"]), count))) jqm_page_index(_("Check_MK Mobile"), items) # Link to non-mobile GUI html.write('<hr>') html.write('<ul data-role="listview" data-theme="b" data-inset="true">\n') html.write( '<li><a data-ajax="false" data-transition="fade" href="%s">%s</a></li>\n' % ("index.py?mobile=", _("Classical web GUI"))) html.write('</ul>\n') html.write('<ul data-role="listview" data-theme="f" data-inset="true">\n') html.write( '<li><a data-ajax="false" data-transition="fade" href="%s">%s</a></li>\n' % ("logout.py", _("Logout"))) html.write('</ul>\n') mobile_html_foot()
def page_view(): views.load_views() view_name = html.var("view_name") if not view_name: return page_index() view = views.permitted_views().get(view_name) if not view: raise MKGeneralException("No view defined with the name '%s'." % view_name) title = views.view_title(view) mobile_html_head(title) views.prepare_painter_options(view_name) try: views.show_view(view, show_heading=False, show_buttons=False, show_footer=False, render_function=render_view) except Exception, e: if config.debug: raise html.write("ERROR showing view: %s" % html.attrencode(e))
def page_index(): title = _("Check_MK Mobile") mobile_html_head(title) jqm_page_header(title, right_button=("javascript:document.location.reload();", _("Reload"), "refresh"),id="data") views.load_views() items = [] for view_name, view in views.permitted_views().items(): if view.get("mobile") and not view.get("hidden"): url = "mobile_view.py?view_name=%s" % view_name count = "" if not view.get("mustsearch"): count = views.show_view(view, only_count = True) count = '<span class="ui-li-count">%d</span>' % count items.append((view.get("topic"), url, '%s %s' % (view.get("linktitle", view["title"]), count))) jqm_page_index(_("Check_MK Mobile"), items) # Link to non-mobile GUI html.write('<hr>') html.write('<ul data-role="listview" data-theme="b" data-inset="true">\n') html.write('<li><a data-ajax="false" data-transition="fade" href="%s">%s</a></li>\n' % ("index.py?mobile=", _("Classical web GUI"))) html.write('</ul>\n') html.write('<ul data-role="listview" data-theme="f" data-inset="true">\n') html.write('<li><a data-ajax="false" data-transition="fade" href="%s">%s</a></li>\n' % ("logout.py", _("Logout"))) html.write('</ul>\n') mobile_html_foot()
def render_wato_foldertree(): is_slave_site = not wato.is_distributed() and os.path.exists( defaults.check_mk_configdir + "/distributed_wato.mk") if not is_slave_site: if not config.wato_enabled: html.write(_("WATO is disabled.")) return False user_folders = compute_foldertree() # # Render link target selection # selected_topic, selected_target = config.load_user_file( "foldertree", (_('Hosts'), 'allhosts')) views.load_views() dashboard.load_dashboards() topic_views = visuals_by_topic(views.permitted_views().items() + dashboard.permitted_dashboards().items()) topics = [(t, t) for t, s in topic_views] html.select("topic", topics, selected_topic, onchange='wato_tree_topic_changed(this)') html.write('<span class=left>%s</span>' % _('Topic:')) for topic, view_list in topic_views: targets = [] for t, title, name, is_view in view_list: if config.visible_views and name not in config.visible_views: continue if config.hidden_views and name in config.hidden_views: continue if t == topic: if not is_view: name = 'dashboard|' + name targets.append((name, title)) attrs = {} if topic != selected_topic: attrs['style'] = 'display:none' default = '' else: default = selected_target html.select("target_%s" % topic, targets, default, attrs=attrs, onchange='wato_tree_target_changed(this)') html.write('<span class=left>%s</span>' % _('View:')) # Now render the whole tree if user_folders: render_tree_folder(user_folders.values()[0], 'wato_tree_click')
def page_index(): title = _("Check_MK Mobile") mobile_html_head(title) jqm_page_header(title, right_button=("javascript:document.location.reload();", _("Reload"), "refresh"), id="data") views.load_views() items = [] for view_name, view in views.permitted_views().items(): if view.get("mobile") and not view.get("hidden"): url = "mobile_view.py?view_name=%s" % view_name count = "" if not view.get("mustsearch"): views.prepare_painter_options(view_name) count = views.show_view(view, only_count=True) count = '<span class="ui-li-count">%d</span>' % count items.append( (view.get("topic"), url, '%s %s' % (view.get("linktitle", view["title"]), count))) jqm_page_index(_("Check_MK Mobile"), items) # Link to non-mobile GUI html.hr() html.open_ul(**{ "data-role": "listview", "data-theme": "b", "data-inset": "true" }) html.open_li() html.a(_("Classical web GUI"), href="index.py?mobile=", **{ "data-ajax": "false", "data-transition": "fade" }) html.close_li() html.close_ul() html.open_ul(**{ "data-role": "listview", "data-theme": "f", "data-inset": "true" }) html.open_li() html.a(_("Logout"), href="logout.py", **{ "data-ajax": "false", "data-transition": "fade" }) html.close_li() html.close_ul() mobile_html_foot()
def render_wato_foldertree(): is_slave_site = not wato.is_distributed() and os.path.exists(defaults.check_mk_configdir + "/distributed_wato.mk") if not is_slave_site: if not config.wato_enabled: html.write(_("WATO is disabled.")) return False elif not config.may("wato.use"): html.write(_("You are not allowed to use Check_MK's web configuration GUI.")) return False user_folders = compute_foldertree() # # Render link target selection # selected_topic, selected_target = config.load_user_file("foldertree", (_('Hosts'), 'allhosts')) views.load_views() dashboard.load_dashboards() topic_views = visuals_by_topic(views.permitted_views().items() + dashboard.permitted_dashboards().items()) topics = [ (t, t) for t, s in topic_views ] html.select("topic", topics, selected_topic, onchange = 'wato_tree_topic_changed(this)') html.write('<span class=left>%s</span>' % _('Topic:')) for topic, view_list in topic_views: targets = [] for t, title, name, is_view in view_list: if config.visible_views and name not in config.visible_views: continue if config.hidden_views and name in config.hidden_views: continue if t == topic: if not is_view: name = 'dashboard|' + name targets.append((name, title)) attrs = {} if topic != selected_topic: attrs['style'] = 'display:none' default = '' else: default = selected_target html.select("target_%s" % topic, targets, default, attrs = attrs, onchange = 'wato_tree_target_changed(this)') html.write('<span class=left>%s</span>' % _('View:')) # Now render the whole tree if user_folders: render_tree_folder(user_folders.values()[0], 'wato_tree_click')
def load_view_into_dashlet(dashlet, nr, view_name, add_context=None, load_from_all_views=False): import views views.load_views() permitted_views = views.permitted_views() # it is random which user is first accessing # an apache python process, initializing the dashboard loading and conversion of # old dashboards. In case of the conversion we really try hard to make the conversion # work in all cases. So we need all views instead of the views of the user. if load_from_all_views and view_name not in permitted_views: # This is not really 100% correct according to the logic of visuals.available(), # but we do this for the rare edge case during legacy dashboard conversion, so # this should be sufficient view = None for (u, n), this_view in views.all_views().items(): # take the first view with a matching name if view_name == n: view = this_view break if not view: raise MKGeneralException( _( "Failed to convert a builtin dashboard which is referencing " 'the view "%s". You will have to migrate it to the new ' "dashboard format on your own to work properly." % view_name ) ) else: view = permitted_views[view_name] view = copy.deepcopy(view) # Clone the view dashlet.update(view) if add_context: dashlet["context"].update(add_context) # Overwrite the views default title with the context specific title dashlet["title"] = visuals.visual_title("view", view) dashlet["title_url"] = html.makeuri_contextless( [("view_name", view_name)] + visuals.get_singlecontext_vars(view).items(), filename="view.py" ) dashlet["type"] = "view" dashlet["name"] = "dashlet_%d" % nr dashlet["show_title"] = True
def load_view_into_dashlet(dashlet, nr, view_name, add_context=None): import views views.load_views() views = views.permitted_views() if view_name in views: view = copy.deepcopy(views[view_name]) dashlet.update(view) if add_context: dashlet['context'].update(add_context) # Overwrite the views default title with the context specific title dashlet['title'] = visuals.visual_title('view', view) dashlet['title_url'] = html.makeuri_contextless( [('view_name', view_name)] + visuals.get_singlecontext_vars(view).items(), filename='view.py') dashlet['type'] = 'view' dashlet['name'] = 'dashlet_%d' % nr dashlet['show_title'] = True
def page_view(): views.load_views() view_name = html.var("view_name") if not view_name: return page_index() view = views.permitted_views().get(view_name) if not view: raise MKGeneralException("No view defined with the name '%s'." % view_name) title = views.view_title(view) mobile_html_head(title) try: views.show_view(view, show_heading = False, show_buttons = False, show_footer = False, render_function = render_view) except Exception, e: if config.debug: raise html.write("ERROR showing view: %s" % html.attrencode(e))
def render_wato_foldertree(): user_folders = compute_foldertree() # # Render link target selection # selected_topic, selected_target = config.load_user_file("foldertree", (_('Hosts'), 'allhosts')) views.load_views() dashboard.load_dashboards() topic_views = visuals_by_topic(views.permitted_views().items() + dashboard.permitted_dashboards().items()) topics = [ (t, t) for t, s in topic_views ] html.select("topic", topics, selected_topic, onchange = 'wato_tree_topic_changed(this)') html.write('<span class=left>%s</span>' % _('Topic:')) for topic, view_list in topic_views: targets = [] for t, title, name, is_view in view_list: if config.visible_views and name not in config.visible_views: continue if config.hidden_views and name in config.hidden_views: continue if t == topic: if not is_view: name = 'dashboard|' + name targets.append((name, title)) attrs = {} if topic != selected_topic: attrs['style'] = 'display:none' default = '' else: default = selected_target html.select("target_%s" % topic, targets, default, attrs = attrs, onchange = 'wato_tree_target_changed(this)') html.write('<span class=left>%s</span>' % _('View:')) # Now render the whole tree if user_folders: render_tree_folder(user_folders.values()[0], 'wato_tree_click')
def render_wato_foldertree(): if not wato.is_wato_slave_site(): if not config.wato_enabled: html.write_text(_("WATO is disabled.")) return False user_folders = compute_foldertree() # # Render link target selection # selected_topic, selected_target = config.user.load_file( "foldertree", (_('Hosts'), 'allhosts')) views.load_views() dashboard.load_dashboards() topic_views = visuals_by_topic(views.permitted_views().items() + dashboard.permitted_dashboards().items()) topics = [(t, t) for t, s in topic_views] html.open_table() html.open_tr() html.td(_('Topic:'), class_="label") html.open_td() html.select("topic", topics, selected_topic, onchange='wato_tree_topic_changed(this)') html.close_td() html.close_tr() html.open_tr() html.td(_("View:"), class_="label") html.open_td() for topic, view_list in topic_views: targets = [] for t, title, name, is_view in view_list: if config.visible_views and name not in config.visible_views: continue if config.hidden_views and name in config.hidden_views: continue if t == topic: if not is_view: name = 'dashboard|' + name targets.append((name, title)) attrs = {} if topic != selected_topic: attrs['style'] = 'display:none' default = '' else: default = selected_target html.select("target_%s" % topic, targets, default, attrs=attrs, onchange='wato_tree_target_changed(this)') html.close_td() html.close_tr() html.close_table() # Now render the whole tree if user_folders: render_tree_folder("wato-hosts", user_folders.values()[0], 'wato_tree_click')