Beispiel #1
0
def dash_screen(sid):
    start = request.args.get("start")
    end = request.args.get("end")

    top_screens = DashboardScreen.gets(pid=0)
    top_screens = sorted(top_screens, key=lambda x: x.name)

    screen = DashboardScreen.get(sid)
    if not screen:
        abort(404, "no screen")

    if str(screen.pid) == '0':
        sub_screens = DashboardScreen.gets(pid=sid)
        sub_screens = sorted(sub_screens, key=lambda x: x.name)
        return render_template("screen/top_screen.html", **locals())

    pscreen = DashboardScreen.get(screen.pid)
    sub_screens = DashboardScreen.gets(pid=screen.pid)
    sub_screens = sorted(sub_screens, key=lambda x: x.name)
    graphs = DashboardGraph.gets_by_screen_id(screen.id)

    all_graphs = []

    for graph in graphs:
        all_graphs.extend(generate_graph_urls(graph, start, end) or [])

    all_graphs = sorted(all_graphs, key=lambda x: x.position)

    return render_template("screen/screen.html", **locals())
Beispiel #2
0
def dash_screen_delete(sid):
    screen = DashboardScreen.get(sid)
    if not screen:
        abort(404, "no such screen")
    DashboardScreen.remove(sid)

    return redirect("/screen")
Beispiel #3
0
def dash_screen_delete(sid):
    screen = DashboardScreen.get(sid)
    if not screen:
        abort(404, "no such screen")
    DashboardScreen.remove(sid)

    return redirect("/screen")
Beispiel #4
0
def dash_screen(sid):
    start = request.args.get("start")
    end = request.args.get("end")

    top_screens = DashboardScreen.gets(pid=0)
    top_screens = sorted(top_screens, key=lambda x: x.name)

    screen = DashboardScreen.get(sid)
    if not screen:
        abort(404, "no screen")

    if str(screen.pid) == '0':
        sub_screens = DashboardScreen.gets(pid=sid)
        sub_screens = sorted(sub_screens, key=lambda x: x.name)
        return render_template("screen/top_screen.html", **locals())

    pscreen = DashboardScreen.get(screen.pid)
    sub_screens = DashboardScreen.gets(pid=screen.pid)
    sub_screens = sorted(sub_screens, key=lambda x: x.name)
    graphs = DashboardGraph.gets_by_screen_id(screen.id)

    all_graphs = []

    for graph in graphs:
        all_graphs.extend(generate_graph_urls(graph, start, end) or [])

    all_graphs = sorted(all_graphs, key=lambda x: x.position)

    return render_template("screen/screen.html", **locals())
Beispiel #5
0
def dash_graph_edit(gid):
    log.debug("dash_graph_edit:{}".format(gid))
    error = ""
    graph = DashboardGraph.get(gid)
    log.debug("dash_graph_1111--graph:{}".format(graph))
    if not graph:
        abort(404, "no graph")

    all_screens = DashboardScreen.gets_all()
    top_screens = [x for x in all_screens if x.pid == '0']
    children = []
    for t in top_screens:
        children.append([x for x in all_screens if x.pid == t.id])

    screen = DashboardScreen.get(graph.screen_id)
    if not screen:
        abort(404, "no screen")
    pscreen = DashboardScreen.get(screen.pid)

    if request.method == "POST":
        log.debug("Postcalled")
        ajax = request.form.get("ajax", "")
        screen_id = request.form.get("screen_id")
        title = request.form.get("title", "").strip()

        hosts = request.form.get("hosts", "").strip()
        hosts = hosts and hosts.split("\n") or []
        hosts = [x.strip() for x in hosts]

        counters = request.form.get("counters", "").strip()
        counters = counters and counters.split("\n") or []
        counters = [x.strip() for x in counters]

        timespan = request.form.get("timespan", 3600)
        graph_type = request.form.get("graph_type", 'h')
        method = request.form.get("method", '').upper()
        position = request.form.get("position", 0)
        log.debug("Postcalledupdate %s %s %s %s %s %s %s %s " %
                  (title, hosts, counters, screen_id, timespan, graph_type,
                   method, position))
        graph = graph.update(title, hosts, counters, screen_id, timespan,
                             graph_type, method, position)
        log.debug("dash_graph_edit got graph.update {} {}".format(graph, ajax))
        error = gettext("edit successful")
        if not ajax:

            log.debug("render_template---")
            return render_template("screen/graph_edit.html",
                                   config=config,
                                   **locals())
        else:
            return "ok"

    else:
        ajax = request.args.get("ajax", "")
        return render_template("screen/graph_edit.html", **locals())
Beispiel #6
0
def dash_screen_add():
    if request.method == "POST":
        name = request.form.get("screen_name")
        pid = request.form.get("pid", '0')
        screen = DashboardScreen.add(pid, name)
        return redirect("/screen/%s" % screen.id)
    else:
        pid = request.args.get("pid", '0')
        screen = DashboardScreen.get(pid)
        return render_template("screen/add.html", **locals())
Beispiel #7
0
def dash_screen_add():
    if request.method == "POST":
        name = request.form.get("screen_name")
        pid = request.form.get("pid", '0')
        screen = DashboardScreen.add(pid, name)
        return redirect("/screen/%s" % screen.id)
    else:
        pid = request.args.get("pid", '0')
        screen = DashboardScreen.get(pid)
        return render_template("screen/add.html", **locals())
Beispiel #8
0
def dash_screen_delete(sid):
    token = request.args.get("token", None)
    if token is None or token != config.AUTH_TOKEN:
        abort(403, "auth failed, can not be deleted")

    screen = DashboardScreen.get(sid)
    if not screen:
        abort(404, "no such screen")
    DashboardScreen.remove(sid)

    return redirect("/screen")
Beispiel #9
0
def dash_graph_edit(gid):
    error = ""
    graph = DashboardGraph.get(gid)
    if not graph:
        abort(404, "no graph")

    all_screens = DashboardScreen.gets()
    top_screens = [x for x in all_screens if x.pid == '0']
    children = []
    for t in top_screens:
        children.append([x for x in all_screens if x.pid == t.id])

    screen = DashboardScreen.get(graph.screen_id)
    if not screen:
        abort(404, "no screen")
    pscreen = DashboardScreen.get(screen.pid)

    if request.method == "POST":
        ajax = request.form.get("ajax", "")
        screen_id = request.form.get("screen_id")
        title = request.form.get("title", "").strip()

        hosts = request.form.get("hosts", "").strip()
        hosts = hosts and hosts.split("\n") or []
        hosts = [x.strip() for x in hosts]

        counters = request.form.get("counters", "").strip()
        counters = counters and counters.split("\n") or []
        counters = [x.strip() for x in counters]

        timespan = request.form.get("timespan", 3600)
        graph_type = request.form.get("graph_type", 'h')
        method = request.form.get("method", '').upper()
        position = request.form.get("position", 0)

        graph = graph.update(title, hosts, counters, screen_id, timespan,
                             graph_type, method, position)

        error = u"修改成功了"
        if not ajax:
            return render_template("screen/graph_edit.html",
                                   config=config,
                                   **locals())
        else:
            return "ok"

    else:
        ajax = request.args.get("ajax", "")
        return render_template("screen/graph_edit.html",
                               config=config,
                               **locals())
Beispiel #10
0
def dash_graph_edit(gid):
    error = ""
    graph = DashboardGraph.get(gid)
    if not graph:
        abort(404, "no graph")

    all_screens = DashboardScreen.gets_all()
    top_screens = [x for x in all_screens if x.pid == '0']
    children = []
    for t in top_screens:
        children.append([x for x in all_screens if x.pid == t.id])

    screen = DashboardScreen.get(graph.screen_id)
    if not screen:
        abort(404, "no screen")
    pscreen = DashboardScreen.get(screen.pid)

    if request.method == "POST":
        ajax = request.form.get("ajax", "")
        screen_id = request.form.get("screen_id")
        title = request.form.get("title", "").strip()

        hosts = request.form.get("hosts", "").strip()
        hosts = hosts and hosts.split("\n") or []
        hosts = [x.strip() for x in hosts]

        counters = request.form.get("counters", "").strip()
        counters = counters and counters.split("\n") or []
        counters = [x.strip() for x in counters]

        timespan = request.form.get("timespan", 3600)
        graph_type = request.form.get("graph_type", 'h')
        method = request.form.get("method", '').upper()
        position = request.form.get("position", 0)

        graph = graph.update(title, hosts, counters, screen_id,
                timespan, graph_type, method, position)

        error = gettext("edit successful")
        if not ajax:
            return render_template("screen/graph_edit.html", config=config, **locals())
        else:
            return "ok"

    else:
        ajax = request.args.get("ajax", "")
        return render_template("screen/graph_edit.html", **locals())
Beispiel #11
0
def dash_graph_add(sid):
    all_screens = DashboardScreen.gets_all()
    top_screens = [x for x in all_screens if x.pid == '0']
    children = []
    for t in top_screens:
        children.append([x for x in all_screens if x.pid == t.id])

    screen = DashboardScreen.get(sid)
    if not screen:
        abort(404, "no screen")
    pscreen = DashboardScreen.get(screen.pid)

    if request.method == "POST":
        title = request.form.get("title")

        hosts = request.form.get("hosts", "").strip()
        hosts = hosts and hosts.split("\n") or []
        hosts = [x.strip() for x in hosts]

        counters = request.form.get("counters", "").strip()
        counters = counters and counters.split("\n") or []
        counters = [x.strip() for x in counters]

        timespan = int(request.form.get("timespan", 3600))
        graph_type = request.form.get("graph_type", 'h')
        method = request.form.get("method", '').upper()
        position = int(request.form.get("position", 0))

        graph = DashboardGraph.add(title, hosts, counters, sid, timespan,
                                   graph_type, method, position)
        return redirect("/screen/%s" % sid)

    else:
        limit = 10000
        gid = request.args.get("gid")
        graph = gid and DashboardGraph.get(gid)
        options = {}
        options['hosts'] = Endpoint.search(''.split(), limit=limit)
        ids = []
        for ep in options['hosts']:
            ids.append(ep.id)
        options['counters'] = EndpointCounter.gets_by_endpoint_ids(ids[0:1],
                                                                   limit=limit)
        return render_template("screen/graph_add.html",
                               config=config,
                               **locals())
Beispiel #12
0
def dash_screens():
    top_screens = DashboardScreen.gets_by_pid(pid='0') or []
    # 只显示非sys_base_screen_的前100条
    top_screens = filter(lambda x: 'sys_base_screen_' not in x.name,
                         top_screens)[:100]
    top_screens = sorted(top_screens, key=lambda x: x.name)

    return render_template("screen/index.html", **locals())
Beispiel #13
0
def dash_screen_edit(sid):
    screen = DashboardScreen.get(sid)
    if not screen:
        abort(404, "no such screen")

    if request.method == "POST":
        screen_name = request.form.get("screen_name")
        screen.update(name=screen_name)
        return redirect("/screen/%s" % screen.id)
    else:
        return render_template("screen/edit.html", **locals())
Beispiel #14
0
def dash_screen_edit(sid):
    screen = DashboardScreen.get(sid)
    if not screen:
        abort(404, "no such screen")

    if request.method == "POST":
        screen_name = request.form.get("screen_name")
        screen.update(name=screen_name)
        return redirect("/screen/%s" % screen.id)
    else:
        return render_template("screen/edit.html", **locals())
Beispiel #15
0
def dash_screen_clone(sid):
    screen = DashboardScreen.get(sid)
    if not screen:
        abort(404, "no such screen")

    if request.method == "POST":
        screen_name = request.form.get("screen_name")
        with_graph = request.form.get("with_graph")

        new_s = DashboardScreen.add(screen.pid, screen_name)
        if not new_s:
            abort(404, "创建screen失败了")

        if with_graph:
            old_graphs = DashboardGraph.gets_by_screen_id(sid)
            for o in old_graphs:
                DashboardGraph.add(o.title, o.hosts, o.counters, new_s.id,
                                   o.timespan, o.graph_type, o.method, o.position)

        return redirect("/screen/%s" % new_s.id)
    else:
        return render_template("screen/clone.html", **locals())
Beispiel #16
0
def dash_graph_add(sid):
    all_screens = DashboardScreen.gets_all()
    top_screens = [x for x in all_screens if x.pid == '0']
    children = []
    for t in top_screens:
        children.append([x for x in all_screens if x.pid == t.id])

    screen = DashboardScreen.get(sid)
    if not screen:
        abort(404, "no screen")
    pscreen = DashboardScreen.get(screen.pid)

    if request.method == "POST":
        title = request.form.get("title")

        hosts = request.form.get("hosts", "").strip()
        hosts = hosts and hosts.split("\n") or []
        hosts = [x.strip() for x in hosts]

        counters = request.form.get("counters", "").strip()
        counters = counters and counters.split("\n") or []
        counters = [x.strip() for x in counters]

        relativeday = int(request.form.get("relativeday", 7))
        timespan = int(request.form.get("timespan", 3600))
        graph_type = request.form.get("graph_type", 'h')
        method = request.form.get("method", '').upper()
        position = int(request.form.get("position", 0))

        graph = DashboardGraph.add(title, hosts, counters, sid, timespan,
                                   relativeday, graph_type, method, position)
        return redirect("/screen/%s" % sid)

    else:
        gid = request.args.get("gid")
        graph = gid and DashboardGraph.get(gid)
        return render_template("screen/graph_add.html",
                               config=config,
                               **locals())
Beispiel #17
0
def dash_screen_clone(sid):
    screen = DashboardScreen.get(sid)
    if not screen:
        abort(404, "no such screen")

    if request.method == "POST":
        screen_name = request.form.get("screen_name")
        with_graph = request.form.get("with_graph")

        new_s = DashboardScreen.add(screen.pid, screen_name)
        if not new_s:
            abort(404, gettext("screen create fail"))

        if with_graph:
            old_graphs = DashboardGraph.gets_by_screen_id(sid)
            for o in old_graphs:
                DashboardGraph.add(o.title, o.hosts, o.counters, new_s.id,
                        o.timespan, o.graph_type, o.method, o.position)

        return redirect("/screen/%s" %new_s.id)
    else:
        return render_template("screen/clone.html", **locals())
Beispiel #18
0
def dash_graph_add(sid):
    all_screens = DashboardScreen.gets()
    top_screens = [x for x in all_screens if x.pid == '0']
    children = []
    for t in top_screens:
        children.append([x for x in all_screens if x.pid == t.id])

    screen = DashboardScreen.get(sid)
    if not screen:
        abort(404, "no screen")
    pscreen = DashboardScreen.get(screen.pid)

    if request.method == "POST":
        title = request.form.get("title")

        hosts = request.form.get("hosts", "").strip()
        hosts = hosts and hosts.split("\n") or []
        hosts = [x.strip() for x in hosts]

        counters = request.form.get("counters", "").strip()
        counters = counters and counters.split("\n") or []
        counters = [x.strip() for x in counters]

        timespan = request.form.get("timespan", 3600)
        graph_type = request.form.get("graph_type", 'h')
        method = request.form.get("method", '').upper()
        position = request.form.get("position", 0)

        graph = DashboardGraph.add(title, hosts, counters, sid,
                                   timespan, graph_type, method, position)
        return redirect("/screen/%s" % sid)

    else:
        gid = request.args.get("gid")
        graph = gid and DashboardGraph.get(gid)
        options = qryOptions()
        return render_template("screen/graph_add.html", config=config, **locals())
Beispiel #19
0
def dash_screen(sid):
    print today_date_str(), "req_for dash_screen"
    start = request.args.get("start")
    end = request.args.get("end")

    top_screens = DashboardScreen.gets_by_pid(pid=0)
    print today_date_str(), "top_screens"
    # top_screens = sorted(top_screens, key=lambda x:x.name)
    # 只显示非sys_base_screen_的前100条
    top_screens = filter(lambda x: 'sys_base_screen_' not in x.name,
                         top_screens)[:100]
    top_screens = sorted(top_screens, key=lambda x: x.name)

    screen = DashboardScreen.get(sid)
    print today_date_str(), "screen"
    if not screen:
        abort(404, "no screen")

    if str(screen.pid) == '0':
        sub_screens = DashboardScreen.gets_by_pid(pid=sid)
        sub_screens = sorted(sub_screens, key=lambda x: x.name)
        return render_template("screen/top_screen.html", **locals())

    pscreen = DashboardScreen.get(screen.pid)
    print today_date_str(), "pscreen"
    sub_screens = DashboardScreen.gets_by_pid(pid=screen.pid)
    sub_screens = sorted(sub_screens, key=lambda x: x.name)
    graphs = DashboardGraph.gets_by_screen_id(screen.id)
    print today_date_str(), "graphs"
    all_graphs = []

    for graph in graphs:
        all_graphs.extend(generate_graph_urls(graph, start, end) or [])

    all_graphs = sorted(all_graphs, key=lambda x: x.position)
    print today_date_str(), "all_graphs"
    return render_template("screen/screen.html", **locals())
Beispiel #20
0
def dash_graph_multi_edit():
    ret = {
        "ok": False,
        "msg": "",
        "data": [],
    }
    if request.method == "POST":
        d = request.data
        try:
            jdata = json.loads(d)
        except ValueError:
            jdata = None

        if not jdata:
            return json.dumps({
                "ok": False,
                "msg": "no_data_post",
            })
        rows = []
        for x in jdata:
            rows.append({
                "id": x["id"],
                "hosts": x["endpoints"],
                "counters": x["counters"]
            })
        DashboardGraph.update_multi(rows)

        return json.dumps({
            "ok": True,
            "msg": "",
        })

    elif request.method == "GET":
        sid = request.args.get("sid")
        if not sid or not DashboardScreen.get(sid):
            ret["msg"] = "no_screen"
            return json.dumps(ret)

        ret["ok"] = True
        graphs = DashboardGraph.gets_by_screen_id(sid)
        ret['data'] = [{
            "id": x.id,
            "title": x.title,
            "endpoints": x.hosts,
            "counters": x.counters
        } for x in graphs]
        return json.dumps(ret)
Beispiel #21
0
def dash_screen_embed(sid):
    start = request.args.get("start")
    end = request.args.get("end")

    screen = DashboardScreen.get(sid)
    if not screen:
        abort(404, "no screen")

    if screen.pid == '0':
        abort(404, "top screen")

    graphs = DashboardGraph.gets_by_screen_id(screen.id)
    all_graphs = []

    for graph in graphs:
        all_graphs.extend(generate_graph_urls(graph, start, end) or [])

    all_graphs = sorted(all_graphs, key=lambda x: (x.position, x.id))

    return render_template("screen/screen_embed.html", **locals())
Beispiel #22
0
def dash_screen_embed(sid):
    start = request.args.get("start")
    end = request.args.get("end")

    screen = DashboardScreen.get(sid)
    if not screen:
        abort(404, "no screen")

    if screen.pid == '0':
        abort(404, "top screen")

    graphs = DashboardGraph.gets_by_screen_id(screen.id)
    all_graphs = []

    for graph in graphs:
        all_graphs.extend(generate_graph_urls(graph, start, end) or [])

    all_graphs = sorted(all_graphs, key=lambda x: (x.position, x.id))

    return render_template("screen/screen_embed.html", **locals())
Beispiel #23
0
def dash_graph_multi_edit():
    ret = {
        "ok": False,
        "msg": "",
        "data": [],
    }
    if request.method == "POST":
        d = request.data
        try:
            jdata = json.loads(d)
        except ValueError:
            jdata = None

        if not jdata:
            return json.dumps({
                "ok": False,
                "msg": "no_data_post",
            })
        rows = []
        for x in jdata:
            rows.append({"id": x["id"], "hosts": x["endpoints"], "counters": x["counters"]})
        DashboardGraph.update_multi(rows)

        return json.dumps({
            "ok": True,
            "msg": "",
        })

    elif request.method == "GET":
        sid = request.args.get("sid")
        if not sid or not DashboardScreen.get(sid):
            ret["msg"] = "no_screen"
            return json.dumps(ret)

        ret["ok"] = True
        graphs = DashboardGraph.gets_by_screen_id(sid)
        ret['data'] = [{"id": x.id, "title": x.title, "endpoints": x.hosts, "counters": x.counters} for x in graphs]
        return json.dumps(ret)
Beispiel #24
0
def dash_screensearch():
    name = request.args.get("search_str")
    top_screens = DashboardScreen.gets_by_name(name) or []
    return json.dumps(top_screens)
Beispiel #25
0
def dash_graph_edit(gid):
    error = ""
    is_tmp_graph = False
    graph = DashboardGraph.get(gid)

    all_screens = DashboardScreen.gets()
    top_screens = [x for x in all_screens if x.pid == '0']
    children = []
    for t in top_screens:
        children.append([x for x in all_screens if x.pid == t.id])

    if not graph:
        # 编辑临时 graph
        graph = TmpGraph.get(gid)
        graph = DashboardGraph.add('graph', graph.endpoints, graph.counters, 0)

        if not graph:
            abort(404, "no graph")
        is_tmp_graph = True

    if not is_tmp_graph:
        screen = DashboardScreen.get(graph.screen_id)
        if not screen:
            abort(404, "no screen")
    # pscreen = DashboardScreen.get(screen.pid)

    if request.method == "POST":
        ajax = request.form.get("ajax", "")
        screen_id = request.form.get("screen_id")
        title = request.form.get("title", "").strip()

        hosts = request.form.get("hosts", "").strip()
        hosts = hosts and hosts.split("\n") or []
        hosts = [x.strip() for x in hosts]

        counters = request.form.get("counters", "").strip()
        counters = counters and counters.split("\n") or []
        counters = [x.strip() for x in counters]

        timespan = request.form.get("timespan", 3600)
        graph_type = request.form.get("graph_type", 'h')
        method = request.form.get("method", '').upper()
        position = request.form.get("position", 0)

        if is_tmp_graph:  # 如果是临时graph修改之后就添加进去
            graph = DashboardGraph.add(title, hosts, counters, screen_id,
                                       timespan, graph_type, method, position)
        else:
            graph = graph.update(title, hosts, counters, screen_id,
                                 timespan, graph_type, method, position)

        error = u"修改成功了"
        if not ajax:
            options = qryOptions()
            return redirect('/screen/' + graph.screen_id)  # 重定向到对应的screen
            # return render_template("screen/graph_edit.html", config=config, **locals())
        else:
            return "ok"

    else:
        ajax = request.args.get("ajax", "")
        options = qryOptions()
        return render_template("screen/graph_edit.html", **locals())
Beispiel #26
0
def dash_screens():
    top_screens = DashboardScreen.gets(pid='0')
    top_screens = sorted(top_screens, key=lambda x: x.name)

    return render_template("screen/index.html", **locals())
Beispiel #27
0
def dash_screens():
    top_screens = DashboardScreen.gets(pid='0')
    top_screens = sorted(top_screens, key=lambda x: x.name)

    return render_template("screen/index.html", **locals())
Beispiel #28
0
def dash_screen(sid):
    start = request.args.get("start")
    end = request.args.get("end")

    top_screens = DashboardScreen.gets_by_pid(pid=0)
    top_screens = sorted(top_screens, key=lambda x:x.name)

    screen = DashboardScreen.get(sid)
    if not screen:
        abort(404, "no screen")

    if str(screen.pid) == '0':
        sub_screens = DashboardScreen.gets_by_pid(pid=sid)
        sub_screens = sorted(sub_screens, key=lambda x:x.name)
        return render_template("screen/top_screen.html", **locals())

    pscreen = DashboardScreen.get(screen.pid)
    sub_screens = DashboardScreen.gets_by_pid(pid=screen.pid)
    sub_screens = sorted(sub_screens, key=lambda x:x.name)
    graphs = DashboardGraph.gets_by_screen_id(screen.id)

    all_graphs = []

    for graph in graphs:
        all_graphs.extend(generate_graph_urls(graph, start, end) or [])

    all_graphs = sorted(all_graphs, key=lambda x:x.position)

#    return render_template("screen/screen.html", **locals())
    # refresh every n seconds
    metabc='''
	<script>
		function geturl(tim){
			var url = window.location.href;
			var url_tmp=[];
			var url_ori="";
			var fuhao="";
			if(url.indexOf("fresh=") != -1){     // have "fresh" canshu
                               if(url.indexOf("?fresh=") != -1){     // "?fresh" canshu
					url_tmp=url.split("?fresh=");
					url_ori=url_tmp[0];
					fuhao="?";
	                        }else{                               // "&fresh" canshu
                                	url_tmp=url.split("&fresh=");
                                        url_ori=url_tmp[0];
					fuhao="&";
                        	}  //alert(url_ori);

                        }else{                         	     // dont have "fresh" canshu
                                //alert("No fresh Command!");
				url_ori=url;
                        }
			if(tim=="close"){	//close
				//alert("Close");
				window.location.href=url_ori;
			}else{
				if(url_ori.indexOf("?") == -1){	fuhao="?"; }
				url_ori=url_ori.replace("#","");
				url_new=url_ori+fuhao+"fresh="+tim; // idelete # after sid
			}
			window.location.href=url_new;
			//alert(url_new);
		}
	</script>	'''

    sec=request.args.get("fresh")
    metajj=""
    if sec!=None:
    	metajj=metabc+''' <META HTTP-EQUIV='Refresh' CONTENT='%s'> ''' % (sec)
    else:
        metajj=metabc 
    return render_template("screen/screen.html", metab=metajj, fresh="FreshButton", **locals())