⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ejabberd_web_admin.erl

📁 ejabberd-0.7.5 分布式Jabber服务器
💻 ERL
📖 第 1 页 / 共 4 页
字号:
%%%----------------------------------------------------------------------%%% File    : ejabberd_web_admin.erl%%% Author  : Alexey Shchepin <alexey@sevcom.net>%%% Purpose : Administration web interface%%% Created :  9 Apr 2004 by Alexey Shchepin <alexey@sevcom.net>%%% Id      : $Id: ejabberd_web_admin.erl,v 1.13 2004/10/08 20:40:28 aleksey Exp $%%%----------------------------------------------------------------------%%% Copyright (c) 2004 Alexey Shchepin%%% Copyright (c) 2004 Process One%%%-----------------------------------------------------------------------module(ejabberd_web_admin).-author('alexey@sevcom.net').-vsn('$Revision: 1.13 $ ').%% External exports-export([process_admin/1]).-include("ejabberd.hrl").-include("jlib.hrl").-include("ejabberd_http.hrl").-define(X(Name), {xmlelement, Name, [], []}).-define(XA(Name, Attrs), {xmlelement, Name, Attrs, []}).-define(XE(Name, Els), {xmlelement, Name, [], Els}).-define(XAE(Name, Attrs, Els), {xmlelement, Name, Attrs, Els}).-define(C(Text), {xmlcdata, Text}).-define(XC(Name, Text), ?XE(Name, [?C(Text)])).-define(XAC(Name, Attrs, Text), ?XAE(Name, Attrs, [?C(Text)])).-define(T(Text), translate:translate(Lang, Text)).-define(CT(Text), ?C(?T(Text))).-define(XCT(Name, Text), ?XC(Name, ?T(Text))).-define(XACT(Name, Attrs, Text), ?XAC(Name, Attrs, ?T(Text))).-define(LI(Els), ?XE("li", Els)).-define(A(URL, Els), ?XAE("a", [{"href", URL}], Els)).-define(AC(URL, Text), ?A(URL, [?C(Text)])).-define(ACT(URL, Text), ?AC(URL, ?T(Text))).-define(P, ?X("p")).-define(BR, ?X("br")).-define(INPUT(Type, Name, Value),	?XA("input", [{"type", Type},		      {"name", Name},		      {"value", Value}])).-define(INPUTT(Type, Name, Value), ?INPUT(Type, Name, ?T(Value))).-define(INPUTS(Type, Name, Value, Size),	?XA("input", [{"type", Type},		      {"name", Name},		      {"value", Value},		      {"size", Size}])).-define(INPUTST(Type, Name, Value, Size), ?INPUT(Type, Name, ?T(Value), Size)).make_xhtml(Els, Lang) ->    {200, [html],     {xmlelement, "html", [{"xmlns", "http://www.w3.org/1999/xhtml"},			   {"xml:lang", Lang},			   {"lang", Lang}],      [{xmlelement, "head", [],	[{xmlelement, "meta", [{"http-equiv", "Content-Type"},			       {"content", "text/html; charset=utf-8"}], []},	 {xmlelement, "link", [{"href", "/admin/style.css"},			       {"type", "text/css"},			       {"rel", "stylesheet"}], []}]},       ?XE("body",	   [?XAE("table",		 [{"id", "main"}],		 [?XE("tbody",		      [?XAE("tr",			    [{"id", "top"}],			    [?XE("td",				 [?XE("table",				      [?XE("tbody",					   [?XE("tr",						[?XE("td",						     [?XAE("a", [{"href", "/admin/"}],							   [?XA("img", [{"src", "/admin/logo.png"},									{"width", "343"},									{"height", "55"},									{"alt", "ejabberd"},									{"border", "0"}])])]),						 ?XAE("td", [{"width", "100%"},							     {"background", "/admin/logo-fill.png"}],						     [?XAE("a", [{"href", "/admin/"}],							   [?XA("img", [{"src", "/admin/1x1tr.gif"},									{"width", "100%"},									{"height", "55"},									{"alt", ""},									{"border", "0"}])])]						     )])])				      ])])]),		       ?XAE("tr",			    [{"id", "middle"}],			    [?XE("td",				 [?XAE("table",				       [{"id", "middle-table"}],				       [?XE("tbody",					    [?XE("tr",						 [?XAE("td",						       [{"id", "middle-td1"}],						       [?XAE("ul",							     [{"id", "navlist"}],							     [?LI([?ACT("/admin/acls/", "Access Control Lists")]),							      ?LI([?ACT("/admin/access/", "Access Rules")]),							      ?LI([?ACT("/admin/users/", "Users")]),							      ?LI([?ACT("/admin/online-users/", "Online Users")]),							      ?LI([?ACT("/admin/nodes/", "Nodes")]),							      ?LI([?ACT("/admin/stats/", "Statistics")])							     ])]),						  ?XAE("td",						       [{"id", "middle-td2"}],						       [?XAE("div", [{"id", "content"}], Els)])])])				       ])])]),		       ?XAE("tr",			    [{"id", "bottom"}],			    [?XE("td",				 [?XE("table",				      [?XE("tbody",					   [?XE("tr",						[?XCT("td",						      "ejabberd (c) 2002-2004 Alexey Shchepin, 2004 Process One")						])])				      ])])])])])])      ]}}.css() -> "body {  margin-left: 0;  margin-right: 0;  margin-top: 0;  margin-bottom: 0;}#main {  border: none;  border-spacing: 0;  border-collapse: collapse;  background-color: #fe8a00;  width: 100%;  height: 100%;  padding: 0;}#main > tbody > tr > td {  padding: 0;}#top > td > table {  border: none;  border-spacing: 0;  border-collapse: collapse;  background-color: #fe8a00;  width: 100%;  padding-top: 2px;}#top table {  border: none;  border-spacing: 0;  border-collapse: collapse;  background-color: #fe8a00;  width: 100%;  padding-top: 2px;}#top td {  padding: 0;}#top img {  margin-bottom: 0px;}#middle {  height: 100%;}#middle-table {  border: none;  border-spacing: 0;  border-collapse: collapse;  width: 100%;  height: 100%;  empty-cells: show;}#middle-td1, #middle-td2 {  padding: 0;  background-color: #ffffff;  vertical-align: top;}#middle-td2 {  width: 100%;}#bottom table {  border: none;  border-spacing: 0;  border-collapse: collapse;  width: 100%;}#bottom table td {  padding: 0;  color: #ffffff;  background-color: #fe8a00;  font-family: Verdana, Arial, Helvetica, sans-serif;   font-size: 7pt;  font-weight: bold;  text-align: center;}    /*td{      font-size: 3pt;    }    td.a{      color: #fc8800;      background-color: #fe8a00;    }    td.b{      color: #333333;      background-color: #000000;    }    td.c{      color: #743300;      background-color: #723100;    }    td.d{      color: #fdc58a;      background-color: #ffc78c;    }    td.e{      color: #fde1c7;      background-color: #ffe3c9;    }    td.f{      color: #fdfdfd;      background-color: #ffffff;    }*/    td.copy{      color: #ffffff;      background-color: #fe8a00;      font-family: Verdana, Arial, Helvetica, sans-serif;       font-size: 7pt;      font-weight: bold;      text-align: center;    }    #navlist    {    padding: 0 1px 1px;    margin-left: 0;    font: bold 10px Verdana, sans-serif;    background: #d47911;    width: 13em;    }    #navlist li    {    list-style: none;    margin: 0;    text-align: left;    display: inline;    }    #navlist li a    {    display: block;    padding: 0.25em 0.5em 0.25em 0.75em;    border-left: 1em solid #ffc78c;    border-top: 1px solid gray;    background: #ffe3c9;    text-decoration: none;    }    #navlist li a:link { color: #844; }    #navlist li a:visited { color: #766; }    #navlist li a:hover    {    border-color: #fc8800;    color: #FFF;    background: #332;    }input {    border: 1px solid #d6760e;    color: #723202;    background-color: #fff2e8;    vertical-align: middle;    margin-bottom: 0px;    padding: 0.1em;}input[type=submit] {  font-family: Verdana, Arial, Helvetica, sans-serif;   font-size: 7pt;  font-weight: bold;  color: #ffffff;  background-color: #fe8a00;  border: 1px solid #d6760e;}textarea {    border: 1px solid #93a6c7;      color: #556655;    background-color: #ffffff;    vertical-align: middle;    margin-top: 7px;    margin-left: 7px;    margin-right: 7px;    margin-bottom: 5px;    padding: 0.1em;}select {    border: 1px solid #d6760e;    color: #723202;    background-color: #fff2e8;    vertical-align: middle;    margin-bottom: 0px;     padding: 0.1em;}thead {  color: #000000;  background-color: #ffffff;  font-family: Verdana, Arial, Helvetica, sans-serif;   font-size: 10pt;  font-weight: bold;}tr.head {  color: #ffffff;  background-color: #3b547a;  font-family: Verdana, Arial, Helvetica, sans-serif;   font-size: 9pt;  font-weight: bold;  text-align: center;}tr.oddraw {  color: #412c75;  background-color: #ccd4df;  font-family: Verdana, Arial, Helvetica, sans-serif;   font-size: 9pt;  font-weight: normal;  text-align: center;}tr.evenraw {  color: #412c75;  background-color: #dbe0e8;  font-family: Verdana, Arial, Helvetica, sans-serif;   font-size: 9pt;  font-weight: normal;  text-align: center;}td.leftheader {  color: #412c75;  background-color: #ccccc1;  font-family: Verdana, Arial, Helvetica, sans-serif;   font-size: 9pt;  font-weight: bold;  padding-left: 5px;  padding-top: 2px;  padding-bottom: 2px;  margin-top: 0px;  margin-bottom: 0px;}td.leftcontent {  color: #000044;  background-color: #e6e6df;  font-family: Verdana, Arial, Helvetica, sans-serif;   font-size: 7pt;  font-weight: normal;  padding-left: 5px;  padding-right: 5px;  padding-top: 2px;  padding-bottom: 2px;  margin-top: 0px;  margin-bottom: 0px;}td.rightcontent {  color: #000044;  font-family: Verdana, Arial, Helvetica, sans-serif;   font-size: 10pt;  font-weight: normal;  text-align: justify;  padding-left: 10px;  padding-right: 10px;  padding-bottom: 5px;}h1 {  color: #000044;  font-family: Verdana, Arial, Helvetica, sans-serif;   font-size: 14pt;  font-weight: bold;  text-align: center;  padding-left: 5px;  padding-top: 2px;  padding-bottom: 2px;  margin-top: 0px;  margin-bottom: 0px;}h2 {  color: #000044;  font-family: Verdana, Arial, Helvetica, sans-serif;   font-size: 12pt;  font-weight: bold;  text-align: center;  padding-left: 5px;  padding-top: 2px;  padding-bottom: 2px;  margin-top: 0px;  margin-bottom: 0px;}h3 {  color: #000044;  font-family: Verdana, Arial, Helvetica, sans-serif;   font-size: 10pt;  font-weight: bold;  text-align: left;  padding-left: 5px;  padding-top: 20px;  padding-bottom: 2px;  margin-top: 0px;  margin-bottom: 0px;}#content a:link {  color: #444466;   font-family: Verdana, Arial, Helvetica, sans-serif;   font-size: 10pt;  font-weight: bold;  text-decoration: underlined;}#content a:visited {  color: #444466;    font-family: Verdana, Arial, Helvetica, sans-serif;   font-size: 10pt;  font-weight: bold;  text-decoration: underlined;}#content a:hover {  color: #222266;    font-family: Verdana, Arial, Helvetica, sans-serif;   font-size: 10pt;  font-weight: bold;  text-decoration: underlined;}#content li {  list-style-type: dot;  font-size: 10pt;  /*font-size: 7pt;*/  padding-left: 10px;}#content li.big {  font-size: 10pt;}div#content {  margin-left: 10px;  margin-top: 5px;}*.alignright {  text-align: right;}".logo() ->    jlib:decode_base64(      "iVBORw0KGgoAAAANSUhEUgAAAVcAAAA3CAMAAACPbPnEAAAAYFBMVEX///8CAgJyMgL+vm7Wdg7+igL+/v7+slb+qkb+4sr+ojP+nir+lhr+1qb+khL+wnb+wn7+zpb+jgb+yoz+xo7+tmL+pj7+mib+jg7+5sb+rlL+rkr+mh7+tl7+2q7+umpJ0uikAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfUBAUJBhWzc9qJAAABQ0lEQVR42u2bXU/CQBBFUUZFURAU5Ev4//+S3Ow+tFl3s6adtE3Oebghzc4DJ/Nw04WZgQczexJkz4lXvOKVxKuXV6APTCFXAq94xSte8ermFYbrA6+ilemZRxGz+fxBxMydL0/Vz5anvkUrPfb1IPCKV7ziFa9uXsG/DzyLPz7ndjS3tc3tSbcwPdl9tmYq3dHmk9x3r8mtiM11KfCKV7ziFa9uXmEc7wf+u6+5TtlXf62fKu9rl3wX9ibsLPCKV7ziFa9uXmF87wf67aBT6a+hp4bOehFxU0/CbgKveMUrXvHq5hXG+vuBcpss75zH/VZ5X7vcb4W7q5A/wvbCXoTNhX0JvOIVr3jFq5tX4P8Fw2V6g7UQ9itsLeKmfgi84hWveMWrm1egDwyX6Q3WTtinsI2wq7CjwCte8YpXvLp5BQ/utIiGbwh9RAEAAAAASUVORK5CYII=").logo_fill() ->    jlib:decode_base64(      "iVBORw0KGgoAAAANSUhEUgAAAAYAAAA3BAMAAADdxCZzAAAAIVBMVEX////Wdg7+igL+khL+jg7+nir+rkr+umr+yoz+1qb+5sYp3v/aAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxEAAAsRAX9kX5EAAAAHdElNRQfUBAYHDzOol2bZAAAASElEQVR42mMQFBRkUFJSxMAgcWNjQwwMEndxccTAIPHQ0EAMDBJPS0vEwCDx8vJCDAwS7+hoxMAg8ZkzJ2JgkPiqVQsxMFAcABvNNugXg2QkAAAAAElFTkSuQmCC").empty() ->    jlib:decode_base64(      "R0lGODlhAQABAIAAAP///////yH+FUNyZWF0ZWQgd2l0aCBUaGUgR0lNUAAh+QQBCgABACwAAAAAAQABAAACAkwBADs=").process_admin(#request{user = User,			path = [],			q = Query,			lang = Lang} = Request) ->    make_xhtml([?XCT("h1", "ejabberd administration"),		?XE("ul",		    [?LI([?ACT("acls/", "Access Control Lists"), ?C(" "),			  ?ACT("acls-raw/", "(raw)")]),		     ?LI([?ACT("access/", "Access Rules"), ?C(" "),			  ?ACT("access-raw/", "(raw)")]),		     ?LI([?ACT("users/", "Users")]),		     ?LI([?ACT("online-users/", "Online Users")]),		     ?LI([?ACT("nodes/", "Nodes")]),		     ?LI([?ACT("stats/", "Statistics")])		    ])

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -