/[LeafOK_CVS]/fenglin/bbs/themes/default/section_setting.view.php
ViewVC logotype

Annotation of /fenglin/bbs/themes/default/section_setting.view.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3 - (hide annotations)
Tue Apr 8 11:45:55 2025 UTC (11 months, 1 week ago) by sysadm
Branch: MAIN
Changes since 1.2: +4 -1 lines
Refine

1 sysadm 1.1 <html>
2     <head>
3     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
4     <title>版块设定</title>
5     <link rel="stylesheet" href="<? echo get_theme_file('css/default'); ?>" type="text/css">
6     <script src="../js/polyfill.min.js"></script>
7     <script src="../js/axios.min.js"></script>
8     <script type="text/javascript">
9     function refresh_ex_dir(s, dirList)
10     {
11     for (i = dirList.length - s.options.length; i > 0 ; i--)
12     {
13     s.options.add(new Option());
14     }
15    
16     i = 0;
17     for (var dirItem of dirList)
18     {
19     s.options[i].value = dirItem.dir;
20     s.options[i].text = dirItem.dir + '(' + dirItem.name + ')';
21     i++;
22     }
23    
24     for (j = s.options.length; j >= i ; j--)
25     {
26     s.options.remove(j);
27     }
28    
29     return false;
30     }
31    
32     function refresh_err_msg(errorFieldMap)
33     {
34     document.getElementsByName("err_msg").forEach(element => {
35     element.innerHTML = (errorFieldMap.has(element.id) ? errorFieldMap.get(element.id) : "");
36     });
37     }
38    
39     function refresh_textarea(updateFieldMap)
40     {
41     document.getElementsByName("textarea").forEach(element => {
42     if (updateFieldMap.has(element.id))
43     {
44     element.value = updateFieldMap.get(element.id);
45     }
46     });
47     }
48    
49     function section_setting(f)
50     {
51     instance.post('section_setting_service.php', {
52 sysadm 1.2 sid: <? echo $result_set["data"]["sid"]; ?>,
53 sysadm 1.1 comment: f.textarea_comment.value,
54     announcement: f.textarea_announcement.value,
55     ex_update: (f.ex_update.checked ? "1" : "0"),
56     })
57     .then(function (response) {
58     var ret = response.data;
59     var errorFieldMap = new Map();
60     var updateFieldMap = new Map();
61     switch (ret.return.code)
62     {
63     case 0: // OK
64     errorFieldMap.set("err_msg_prompt", "更新成功");
65     refresh_err_msg(errorFieldMap);
66     break;
67     case -1: // Input validation failed
68     ret.return.errorFields.forEach(field => {
69     errorFieldMap.set("err_msg_" + field.id, field.errMsg + "<br />");
70     updateFieldMap.set("textarea_" + field.id, field.updateValue);
71     });
72     refresh_err_msg(errorFieldMap);
73     refresh_textarea(updateFieldMap);
74     break;
75     case -2: // Internal error
76     console.log(ret.return.message);
77     errorFieldMap.set("err_msg_prompt", "内部错误");
78     refresh_err_msg(errorFieldMap);
79     break;
80     default:
81     console.log(ret.return.code);
82     break;
83     }
84     })
85     .catch(function (error) {
86     console.log(error);
87     });
88    
89     return false;
90     }
91    
92     function ex_dir_op(f, op)
93     {
94     instance.post('ex_dir_service.php', {
95 sysadm 1.2 sid: <? echo $result_set["data"]["sid"]; ?>,
96 sysadm 1.1 current_dir: f.current_dir.value,
97     dir: f.dir.value,
98     dir_name: f.dir_name.value,
99     dir_op: op,
100     })
101     .then(function (response) {
102     var ret = response.data;
103     var errorFieldMap = new Map();
104     switch (ret.return.code)
105     {
106     case 0: // OK
107 sysadm 1.3 if (op != 0)
108     {
109     errorFieldMap.set("err_msg_current_dir", "操作成功");
110     }
111 sysadm 1.1 refresh_err_msg(errorFieldMap);
112     refresh_ex_dir(f.current_dir, ret.return.data.ex_dir);
113     break;
114     case -1: // Input validation failed
115     ret.return.errorFields.forEach(field => {
116     errorFieldMap.set("err_msg_" + field.id, field.errMsg + "<br />");
117     });
118     refresh_err_msg(errorFieldMap);
119     break;
120     case -2: // Internal error
121     console.log(ret.return.message);
122     errorFieldMap.set("err_msg_current_dir", "内部错误");
123     refresh_err_msg(errorFieldMap);
124     break;
125     default:
126     console.log(ret.return.code);
127     break;
128     }
129     })
130     .catch(function (error) {
131     console.log(error);
132     });
133    
134     return false;
135     }
136    
137     const instance = axios.create({
138     withCredentials: true,
139     timeout: 3000,
140     baseURL: document.location.protocol + '//' + document.location.hostname + (document.location.port=='' ? '' : (':' + document.location.port)) + '/bbs/',
141     });
142    
143     window.addEventListener("load", () => {
144     var f = document.getElementById("section_setting");
145 sysadm 1.2 ex_dir_op(f, 0); // Load dir list
146 sysadm 1.1 f.addEventListener("submit", (e) => {
147     e.preventDefault();
148     switch(e.submitter.name)
149     {
150     case "submit":
151     section_setting(f);
152     break;
153     case "dir_create":
154     ex_dir_op(f, 1);
155     break;
156     case "dir_update":
157     ex_dir_op(f, 2);
158     break;
159     case "dir_delete":
160     ex_dir_op(f, 3);
161     break;
162     default:
163     console.log(e.submitter.name);
164     break;
165     }
166     });
167 sysadm 1.2
168     var s = document.getElementById("section_switch");
169     s.addEventListener("change", (e) => {
170     if (s.value != 0)
171     {
172     document.location = "section_setting.php?sid=" + s.value + "&ts=" + Date.now();
173     }
174     });
175 sysadm 1.1 });
176    
177     </script>
178     </head>
179     <body>
180     <center>
181     <p style="FONT-WEIGHT: bold; FONT-SIZE: 16px; COLOR: red; FONT-FAMILY: 楷体">版块设定</p>
182     <p><span id="err_msg_prompt" name="err_msg" style="color: red"></span></p>
183     <form method="post" action="#" id="section_setting" name="section_setting" >
184     <table border="1" cellpadding="10" cellspacing="0" width="90%" bgcolor="#ffdead">
185     <tr>
186     <td width="30%" align="right">
187     版块名称
188     </td>
189     <td width="70%">
190 sysadm 1.2 <select id="section_switch" name="section_switch" size="1">
191     <?
192     foreach ($result_set["data"]["section_hierachy"] as $c_index => $section_class)
193     {
194     ?>
195     <option value="0">==<? echo $section_class["title"]; ?>==</option>
196     <?
197     foreach ($section_class["sections"] as $s_index => $section)
198     {
199     ?>
200     <option value="<? echo $section["sid"]; ?>" <? echo ($section["sid"] == $result_set["data"]["sid"] ? "selected" : ""); ?>>&nbsp;&nbsp;├<? echo $section["title"]; ?></option>
201     <?
202     }
203     }
204     ?>
205     </select>
206 sysadm 1.1 </td>
207     </tr>
208     <tr>
209     <td align="right">
210     版块介绍
211     </td>
212     <td>
213 sysadm 1.2 <span id="err_msg_comment" name="err_msg" style="color: red;"></span>
214     <textarea id="textarea_comment" name="textarea" cols="80" rows="5"><? echo htmlspecialchars($result_set["data"]["comment"], ENT_HTML401, 'UTF-8'); ?></textarea>
215 sysadm 1.1 限3行80列以内
216     </td>
217     </tr>
218     <tr>
219     <td align="right">
220     版块公告
221     </td>
222     <td>
223     <span id="err_msg_announcement" name="err_msg" style="color: red;"></span>
224 sysadm 1.2 <textarea id="textarea_announcement" name="textarea" cols="80" rows="5"><? echo htmlspecialchars($result_set["data"]["announcement"], ENT_HTML401, 'UTF-8'); ?></textarea>
225     限3行以内,每行不超过150字符
226 sysadm 1.1 </td>
227     </tr>
228     <tr>
229     <td align="right">
230     精华更新
231     </td>
232     <td>
233     <span id="err_msg_ex_update" name="err_msg" style="color: red;"></span>
234 sysadm 1.2 <input type="checkbox" name="ex_update" <? echo ($result_set["data"]["ex_update"] ? "checked" : ""); ?>>申请更新
235 sysadm 1.1 </td>
236     </tr>
237     <tr>
238     <td align="right">
239     目录管理
240     </td>
241     <td>
242     <span id="err_msg_current_dir" name="err_msg" style="color: red;"></span>
243     <p>位置:<select id="current_dir" name="current_dir" size="1">
244     </select></p>
245     <p><span id="err_msg_dir" name="err_msg" style="color: red;"></span>
246     目录:<input id="dir" name="dir" value="" size="50">
247     大小写英文字母、数字和下划线的组合,长度不超过20</p>
248     <p><span id="err_msg_dir_name" name="err_msg" style="color: red;"></span>
249     名称:<input id="dir_name" name="dir_name" value="" size="50">
250     长度不超过15个全角字符</p>
251     <p><span id="err_msg_dir_op" name="err_msg" style="color: red;"></span>&nbsp;&nbsp;&nbsp;&nbsp;
252     <input type="submit" name="dir_create" value="新增">&nbsp;&nbsp;&nbsp;&nbsp;
253     <input type="submit" name="dir_update" value="改名">&nbsp;&nbsp;&nbsp;&nbsp;
254     <input type="submit" name="dir_delete" value="删除">
255     </p>
256     </td>
257     </tr>
258     </table>
259     <p align="center">
260     <input type="submit" value="提交" name="submit">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
261     <input type="reset" value="重填" name="reset">
262     </p>
263     </form>
264     </center>
265     </body>
266     </html>

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1