/[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.2 - (hide annotations)
Tue Apr 8 11:23:00 2025 UTC (11 months, 1 week ago) by sysadm
Branch: MAIN
Changes since 1.1: +32 -16 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     errorFieldMap.set("err_msg_current_dir", "操作成功");
108     refresh_err_msg(errorFieldMap);
109     refresh_ex_dir(f.current_dir, ret.return.data.ex_dir);
110     break;
111     case -1: // Input validation failed
112     ret.return.errorFields.forEach(field => {
113     errorFieldMap.set("err_msg_" + field.id, field.errMsg + "<br />");
114     });
115     refresh_err_msg(errorFieldMap);
116     break;
117     case -2: // Internal error
118     console.log(ret.return.message);
119     errorFieldMap.set("err_msg_current_dir", "内部错误");
120     refresh_err_msg(errorFieldMap);
121     break;
122     default:
123     console.log(ret.return.code);
124     break;
125     }
126     })
127     .catch(function (error) {
128     console.log(error);
129     });
130    
131     return false;
132     }
133    
134     const instance = axios.create({
135     withCredentials: true,
136     timeout: 3000,
137     baseURL: document.location.protocol + '//' + document.location.hostname + (document.location.port=='' ? '' : (':' + document.location.port)) + '/bbs/',
138     });
139    
140     window.addEventListener("load", () => {
141     var f = document.getElementById("section_setting");
142 sysadm 1.2 ex_dir_op(f, 0); // Load dir list
143 sysadm 1.1 f.addEventListener("submit", (e) => {
144     e.preventDefault();
145     switch(e.submitter.name)
146     {
147     case "submit":
148     section_setting(f);
149     break;
150     case "dir_create":
151     ex_dir_op(f, 1);
152     break;
153     case "dir_update":
154     ex_dir_op(f, 2);
155     break;
156     case "dir_delete":
157     ex_dir_op(f, 3);
158     break;
159     default:
160     console.log(e.submitter.name);
161     break;
162     }
163     });
164 sysadm 1.2
165     var s = document.getElementById("section_switch");
166     s.addEventListener("change", (e) => {
167     if (s.value != 0)
168     {
169     document.location = "section_setting.php?sid=" + s.value + "&ts=" + Date.now();
170     }
171     });
172 sysadm 1.1 });
173    
174     </script>
175     </head>
176     <body>
177     <center>
178     <p style="FONT-WEIGHT: bold; FONT-SIZE: 16px; COLOR: red; FONT-FAMILY: 楷体">版块设定</p>
179     <p><span id="err_msg_prompt" name="err_msg" style="color: red"></span></p>
180     <form method="post" action="#" id="section_setting" name="section_setting" >
181     <table border="1" cellpadding="10" cellspacing="0" width="90%" bgcolor="#ffdead">
182     <tr>
183     <td width="30%" align="right">
184     版块名称
185     </td>
186     <td width="70%">
187 sysadm 1.2 <select id="section_switch" name="section_switch" size="1">
188     <?
189     foreach ($result_set["data"]["section_hierachy"] as $c_index => $section_class)
190     {
191     ?>
192     <option value="0">==<? echo $section_class["title"]; ?>==</option>
193     <?
194     foreach ($section_class["sections"] as $s_index => $section)
195     {
196     ?>
197     <option value="<? echo $section["sid"]; ?>" <? echo ($section["sid"] == $result_set["data"]["sid"] ? "selected" : ""); ?>>&nbsp;&nbsp;├<? echo $section["title"]; ?></option>
198     <?
199     }
200     }
201     ?>
202     </select>
203 sysadm 1.1 </td>
204     </tr>
205     <tr>
206     <td align="right">
207     版块介绍
208     </td>
209     <td>
210 sysadm 1.2 <span id="err_msg_comment" name="err_msg" style="color: red;"></span>
211     <textarea id="textarea_comment" name="textarea" cols="80" rows="5"><? echo htmlspecialchars($result_set["data"]["comment"], ENT_HTML401, 'UTF-8'); ?></textarea>
212 sysadm 1.1 限3行80列以内
213     </td>
214     </tr>
215     <tr>
216     <td align="right">
217     版块公告
218     </td>
219     <td>
220     <span id="err_msg_announcement" name="err_msg" style="color: red;"></span>
221 sysadm 1.2 <textarea id="textarea_announcement" name="textarea" cols="80" rows="5"><? echo htmlspecialchars($result_set["data"]["announcement"], ENT_HTML401, 'UTF-8'); ?></textarea>
222     限3行以内,每行不超过150字符
223 sysadm 1.1 </td>
224     </tr>
225     <tr>
226     <td align="right">
227     精华更新
228     </td>
229     <td>
230     <span id="err_msg_ex_update" name="err_msg" style="color: red;"></span>
231 sysadm 1.2 <input type="checkbox" name="ex_update" <? echo ($result_set["data"]["ex_update"] ? "checked" : ""); ?>>申请更新
232 sysadm 1.1 </td>
233     </tr>
234     <tr>
235     <td align="right">
236     目录管理
237     </td>
238     <td>
239     <span id="err_msg_current_dir" name="err_msg" style="color: red;"></span>
240     <p>位置:<select id="current_dir" name="current_dir" size="1">
241     </select></p>
242     <p><span id="err_msg_dir" name="err_msg" style="color: red;"></span>
243     目录:<input id="dir" name="dir" value="" size="50">
244     大小写英文字母、数字和下划线的组合,长度不超过20</p>
245     <p><span id="err_msg_dir_name" name="err_msg" style="color: red;"></span>
246     名称:<input id="dir_name" name="dir_name" value="" size="50">
247     长度不超过15个全角字符</p>
248     <p><span id="err_msg_dir_op" name="err_msg" style="color: red;"></span>&nbsp;&nbsp;&nbsp;&nbsp;
249     <input type="submit" name="dir_create" value="新增">&nbsp;&nbsp;&nbsp;&nbsp;
250     <input type="submit" name="dir_update" value="改名">&nbsp;&nbsp;&nbsp;&nbsp;
251     <input type="submit" name="dir_delete" value="删除">
252     </p>
253     </td>
254     </tr>
255     </table>
256     <p align="center">
257     <input type="submit" value="提交" name="submit">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
258     <input type="reset" value="重填" name="reset">
259     </p>
260     </form>
261     </center>
262     </body>
263     </html>

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