PageRenderTime 60ms CodeModel.GetById 28ms RepoModel.GetById 0ms app.codeStats 0ms

/protected/template/module/system/admin_config.tpl

https://github.com/karlom/gameadmin
Smarty Template | 229 lines | 212 code | 17 blank | 0 comment | 35 complexity | 580ce0a66584f50f70642372fc5acb3d MD5 | raw file
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset='UTF-8'" />
  5. <link rel="stylesheet" href="/static/css/base.css" type="text/css" />
  6. <link rel="stylesheet" href="/static/css/style.css" type="text/css" />
  7. <style type="text/css">
  8. input{width:100px; margin: 0;}
  9. input[type=radio] {width:auto;}
  10. input[type=button] {width:auto;}
  11. input[type=submit] {width:auto;}
  12. </style>
  13. <script type="text/javascript" src="/static/js/My97DatePicker/WdatePicker.js"></script>
  14. <script type="text/javascript" src="/static/js/jquery.min.js"></script>
  15. <title><{$lang->menu->serverConfig}></title>
  16. </head>
  17. <body>
  18. <div id="position"><{$lang->menu->class->systemManage}>: <{$lang->menu->adminConfig}></div>
  19. <form action="<{$smarty.const.URL_SELF}>?action=add" method="post">
  20. <table class="table_list">
  21. <tr class="table_list_head">
  22. <th><{$lang->page->urlName}></th>
  23. <th><{$lang->page->adminName}></th>
  24. <!-- <th><{$lang->page->ver}></th> -->
  25. <th><{$lang->page->isAvailable}></th>
  26. </tr>
  27. <tr class="trEven">
  28. <th><input type="text" id="urlname" name="urlname" style="width: 150px;" /></th>
  29. <!-- <th><input type="text" id="ver" name="adminname" style="width: 50px;" /></th> -->
  30. <th><input type="text" id="adminname" name="adminname" style="width: 150px;"/></th>
  31. <th>
  32. <{$lang->page->availableYes}><input type="radio" name="available" value="1" checked="checked"/>
  33. <{$lang->page->availableNo}><input type="radio" name="available" value="0" />
  34. </th>
  35. </tr>
  36. <tr class="trOdd">
  37. <td align="center" colspan="0">
  38. <input type="submit" name="insert_submit" value="<{$lang->page->add}>" />
  39. </td>
  40. </tr>
  41. </table>
  42. </form>
  43. <br />
  44. <table class="table_list">
  45. <tr class="table_list_head">
  46. <th align="center" colspan="0"><{$lang->page->adminConfigList}></th>
  47. </tr>
  48. <tr class="table_list_head">
  49. <th>id</th>
  50. <th><{$lang->page->urlName}></th>
  51. <th><{$lang->page->adminName}></th>
  52. <!-- <th><{$lang->page->ver}></th> -->
  53. <th><{$lang->page->isAvailable}></th>
  54. <th><{$lang->player->operate}></th>
  55. </tr>
  56. <{foreach from=$adminList item=list}>
  57. <tr class="<{cycle values="trEven,trOdd"}>" align="center" >
  58. <td><{$list.id}></td>
  59. <td>
  60. <span class="item-normal"><{$list.url}></span>
  61. <span class="item-editing"><input type="text" id="urlname_<{$list.id}>" name="urlname" value="<{$list.url}>" style="width: 150px;" /></span>
  62. </td>
  63. <td>
  64. <span class="item-normal"><{$list.name}></span>
  65. <span class="item-editing"><input type="text" id="adminname_<{$list.id}>" name="adminname" value="<{$list.name}>" style="width: 150px;" /></span>
  66. </td>
  67. <td>
  68. <span class="item-normal"><{if $list.available==0}><span style="color:red;"><{$lang->page->availableNo}></span><{else}><span style="color:green;"><{$lang->page->availableYes}></span><{/if}></span>
  69. <span class="item-editing">
  70. <{$lang->page->availableYes}><input type="radio" class="radio" name="available_<{$list.id}>" value="1" <{if $list.available==1}>checked="checked"<{/if}> />
  71. <{$lang->page->availableNo}><input type="radio" class="radio" name="available_<{$list.id}>" value="0" <{if $list.available==0}>checked="checked"<{/if}> />
  72. </span>
  73. </td>
  74. <td >
  75. <span class="item-normal"><input type="button" value="<{$lang->page->update}>" class="btn-toggle" /></span>
  76. <span class="item-editing"><input type="button" name="update_button" value="<{$lang->page->submit}>" pvalue="<{$list.id}>" style="color:green;" ></span>
  77. <span class="item-normal"><input type="button" name="delete_button" value="<{$lang->page->del}>" pvalue="<{$list.id}>" /></span>
  78. <span class="item-editing"><input type="button" name="cancel_update" value="<{$lang->page->cancel}>" class="btn-toggle" style="color:red;" /></span>
  79. </td>
  80. </tr>
  81. <{/foreach}>
  82. </table>
  83. <script type="text/javascript">
  84. <{if "add" == $action}>
  85. $(parent.document).find("frame[id=topFrame]").attr("src", "./top.php");
  86. $(parent.document).find("frame[id=menu]").attr("src", "./left.php");
  87. <{/if}>
  88. $("tr .btn-toggle").click(function(){
  89. $(this).parents("tr:eq(0)").toggleClass("editing");
  90. });
  91. // 插入前的检测
  92. $("input[name=insert_submit]").click(function(){
  93. if( "" == $("input[id=urlname]").val() ||
  94. "" == $("input[id=adminname]").val()
  95. ){alert("<{$lang->page->allMustNotEmpty}>"); return false;}
  96. // if (!isNum($("input[id=id]").val(), 'id')) {return false;}
  97. // if (isEqual($("input[id=id]").val())) {return false;}
  98. // if (!isURL($("input[id=url]").val())) {return false;}
  99. // if (!isURL($("input[id=entranceUrl]").val())) {return false;}
  100. // if (!isIP($("input[id=ip]").val())) {return false;}
  101. // if (!isNum($("input[id=port]").val(), 'port')) {return false;}
  102. });
  103. // 修改后的检测
  104. $("input[name=update_button]").click(function(){
  105. var num = $(this).attr("pvalue");
  106. if(
  107. "" == $("input[id=urlname_"+num+"]").val() ||
  108. "" == $("input[id=adminname_"+num+"]").val()
  109. ){alert("<{$lang->page->allMustNotEmpty}>"); return false;}
  110. // if (!isURL($("input[id=url_<{$list.id}>]").val())) {return false;}
  111. // if (!isIP($("input[id=ip_<{$list.id}>]").val())) {return false;}
  112. // if (!isNum($("input[id=port_<{$list.id}>]").val(), 'port')) {return false;}
  113. $.ajax({
  114. type: "POST",
  115. url: "<{$smarty.const.URL_SELF}>?action=update",
  116. data: "id="+num
  117. +"&urlname="+$("input[id=urlname_"+num+"]").val()
  118. +"&adminname="+$("input[id=adminname_"+num+"]").val()
  119. +"&available="+$("input[name=available_"+num+"]:checked").val(),
  120. dataType: "json",
  121. success: function(data){
  122. if(1 == data.result){
  123. reloadPage();
  124. }
  125. }
  126. });
  127. });
  128. $("input[name=delete_button]").click(function(){
  129. if(confirm("<{$lang->page->confirmDel}>")) {
  130. var num = $(this).attr("pvalue");
  131. $.ajax({
  132. type: "POST",
  133. url: "<{$smarty.const.URL_SELF}>?action=delete",
  134. data: "id="+num,
  135. success: function(data){
  136. reloadPage();
  137. }
  138. });
  139. }
  140. else{
  141. return false;
  142. }
  143. });
  144. function copyData(id){
  145. document.getElementById("id").value = id+1;
  146. document.getElementById("name").value = document.getElementById("name_"+id).value;
  147. document.getElementById("entranceUrl").value = document.getElementById("entranceUrl_"+id).value;
  148. document.getElementById("url").value = document.getElementById("url_"+id).value;
  149. document.getElementById("port").value = document.getElementById("port_"+id).value;
  150. document.getElementById("ip").value = document.getElementById("ip_"+id).value;
  151. document.getElementById("dbname").value = document.getElementById("dbname_"+id).value;
  152. document.getElementById("dbuser").value = document.getElementById("dbuser_"+id).value;
  153. document.getElementById("md5").value = document.getElementById("md5_"+id).value;
  154. document.getElementById("onlinedate").value = document.getElementById("onlinedate_"+id).value;
  155. }
  156. function isNum(num, type) {
  157. var result = isNaN(num);
  158. if (! result) {
  159. return true;
  160. } else {
  161. if(type == "id"){
  162. alert("<{$lang->page->IDMustBeNum}>");
  163. return false;
  164. } else {
  165. alert("<{$lang->page->portMustBeNum}>");
  166. }
  167. }
  168. }
  169. function isURL(str) {
  170. var regURL = /(http[s]?|ftp):\/\/[^\/\.]+?\..+\w$/i;
  171. var result = regURL.test(str); // test 返回值为 true/false
  172. //var result = str.match(regURL); // match 返回值为匹配字符串
  173. if (result) {
  174. return true;
  175. } else {
  176. alert("<{$lang->page->mustBeURL}>");
  177. return false;
  178. }
  179. }
  180. function isIP(str) {
  181. var regIP = /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/g;
  182. var result = regIP.test(str);
  183. //var result = str.match(regIP);
  184. if (result && RegExp.$1<256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256) {
  185. return true;
  186. } else {
  187. alert("<{$lang->page->mustBeIP}>");
  188. return false;
  189. }
  190. }
  191. function isEqual(num) {
  192. var str1 = ",";
  193. <{foreach from=$adminList item=list}>
  194. var str2 = "<{$list.id}>,";
  195. str1 = str1.concat(str2);
  196. <{/foreach}>
  197. num = "," + num + ",";
  198. if (str1.match(num)){
  199. alert("<{$lang->page->conflictWithExistId}>");
  200. return true;
  201. } else {
  202. return false;
  203. }
  204. }
  205. function reloadPage() {
  206. location.href = "<{$smarty.const.URL_SELF}>";
  207. $(parent.document).find("frame[id=topFrame]").attr("src", "./top.php");
  208. $(parent.document).find("frame[id=menu]").attr("src", "./left.php");
  209. }
  210. </script>
  211. </body>
  212. </html>