Explorar o código

문서별 상단 알림 기능 추가

https://github.com/openNAMU/openNAMU/issues/2072
잉여개발기 (SPDV) %!s(int64=2) %!d(string=hai) anos
pai
achega
3e188b7c01
Modificáronse 4 ficheiros con 46 adicións e 6 borrados
  1. 9 2
      route/edit.py
  2. 32 3
      route/view_set.py
  3. 4 0
      route/view_w.py
  4. 1 1
      version.json

+ 9 - 2
route/edit.py

@@ -23,14 +23,19 @@ def edit_timeout(func, args = (), timeout = 3):
         pool.join()
         return 0
         
-def edit_editor(curs, ip, data_main = '', do_type = 'edit', addon = ''):
+def edit_editor(curs, ip, data_main = '', do_type = 'edit', addon = '', name = ''):
     monaco_editor_top = ''
     editor_display = ''
     monaco_display = ''
+    div = ''
 
     if do_type == 'edit':
         curs.execute(db_change('select data from other where name = "edit_help"'))
         sql_d = curs.fetchall()
+
+        curs.execute(db_change("select set_data from data_set where doc_name = ? and set_name = 'document_top'"), [name])
+        body = curs.fetchall()
+        div = body[0][0] if body else ''
     elif do_type == 'bbs':
         curs.execute(db_change('select data from other where name = "bbs_help"'))
         sql_d = curs.fetchall()
@@ -72,6 +77,8 @@ def edit_editor(curs, ip, data_main = '', do_type = 'edit', addon = ''):
             ''' + edit_button() + '''
         </div>
         
+        ''' + div + '''
+
         <div id="opennamu_monaco_editor" class="''' + textarea_size + '''" ''' + monaco_display + '''></div>
         <textarea id="opennamu_edit_textarea" ''' + editor_display + ''' class="''' + textarea_size + '''" name="content" placeholder="''' + p_text + '''">''' + html.escape(data_main) + '''</textarea>
         <hr class="main_hr">
@@ -341,7 +348,7 @@ def edit(name = 'Test', section = 0, do_type = ''):
                         <input placeholder="''' + load_lang('why') + '''" name="send">
                         <hr class="main_hr">
                         
-                        ''' + edit_editor(curs, ip, data_section, addon = get_edit_text_bottom_check_box() + get_edit_text_bottom()) + '''
+                        ''' + edit_editor(curs, ip, data_section, addon = get_edit_text_bottom_check_box() + get_edit_text_bottom(), name = name) + '''
                     </form>
                 ''',
                 menu = [

+ 32 - 3
route/view_set.py

@@ -79,8 +79,16 @@ def view_set(name = 'Test'):
 
             markup_data = markup_data if markup_data != '' else 'normal'
 
-            if user_page == 1:
-                admin_check(5, check_data + ' (' + all_d + ')' + ' (' + markup_data + ')')
+            if admin_check() == 1:
+                document_top = flask.request.form.get('document_top', '')
+                curs.execute(db_change("delete from data_set where doc_name = ? and set_name = 'document_top'"), [name])
+                curs.execute(db_change("insert into data_set (doc_name, doc_rev, set_name, set_data) values (?, '', 'document_top', ?)"), [name, document_top])
+                
+                document_editor_top = flask.request.form.get('document_editor_top', '')
+                curs.execute(db_change("delete from data_set where doc_name = ? and set_name = 'document_editor_top'"), [name])
+                curs.execute(db_change("insert into data_set (doc_name, doc_rev, set_name, set_data) values (?, '', 'document_editor_top', ?)"), [name, document_editor_top])
+
+            admin_check(5, check_data)
 
             conn.commit()
 
@@ -175,6 +183,27 @@ def view_set(name = 'Test'):
             markup_html = '<select name="document_markup" ' + check_ok + '>' + markup_html + '</select>'
 
             data += markup_html
+
+            save_button = '<button type="submit" ' + check_ok + '>' + load_lang('save') + '</button>'
+            if admin_check() != 1:
+                check_ok = 'disabled'
+
+            curs.execute(db_change("select set_data from data_set where doc_name = ? and set_name = 'document_top'"), [name])
+            db_data = curs.fetchall()
+            document_top = db_data[0][0] if db_data and db_data[0][0] != '' else ''
+
+            curs.execute(db_change("select set_data from data_set where doc_name = ? and set_name = 'document_editor_top'"), [name])
+            db_data = curs.fetchall()
+            document_editor_top = db_data[0][0] if db_data and db_data[0][0] != '' else ''
+
+            data += '''
+                <h2>''' + load_lang('document_top') + ''' (HTML)</h2>
+                <textarea ''' + check_ok + ''' class="opennamu_textarea_100" name="document_top">''' + html.escape(document_top) + '''</textarea>
+                
+                <h2>''' + load_lang('document_editor_top') + ''' (HTML)</h2>
+                <textarea ''' + check_ok + ''' class="opennamu_textarea_100" name="document_editor_top">''' + html.escape(document_editor_top) + '''</textarea>
+            '''
+            
             data += '<hr class="main_hr">'
 
             return easy_minify(flask.render_template(skin_check(),
@@ -184,7 +213,7 @@ def view_set(name = 'Test'):
                         <a href="/setting/acl">(''' + load_lang('main_acl_setting') + ''')</a>
                         <hr class="main_hr">
                         ''' + render_simple_set(data) + '''
-                        <button type="submit" ''' + check_ok + '''>''' + load_lang('save') + '''</button>
+                        ''' + save_button + '''
                     </form>
                 ''',
                 menu = [

+ 4 - 0
route/view_w.py

@@ -316,6 +316,10 @@ def view_w(name = 'Test', do_type = ''):
         body = curs.fetchall()
         div += body[0][0] if body else ''
 
+        curs.execute(db_change("select set_data from data_set where doc_name = ? and set_name = 'document_top'"), [name])
+        body = curs.fetchall()
+        div = (body[0][0] + div) if body else div
+
         if ip_or_user(ip) == 0:
             curs.execute(db_change("select data from user_set where id = ? and data = ?"), [ip, name])
             watch_list = 2 if curs.fetchall() else 1

+ 1 - 1
version.json

@@ -1,6 +1,6 @@
 {
     "beta" : {
-        "r_ver" : "v3.5.0-dev41",
+        "r_ver" : "v3.5.0-dev42",
         "c_ver" : "3500376",
         "s_ver" : "3500113"
     }