Changeset 577
- Timestamp:
- 01/01/07 23:00:55 (2 years ago)
- Files:
-
- cherokee-admin/cherokee-admin.py (modified) (1 diff)
- cherokee-admin/editable.py (modified) (4 diffs)
- cherokee-admin/theme.py (modified) (1 diff)
- cherokee-admin/theme/cherokee.css (modified) (1 diff)
- cherokee-admin/theme/editable.js (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
cherokee-admin/cherokee-admin.py
r572 r577 73 73 # Web pages 74 74 # 75 if uri.startswith ('/basic'): 75 if uri == '/' or \ 76 uri.startswith ('/summary'): 77 page = PageSummary (server, theme) 78 elif uri.startswith ('/basic'): 76 79 page = PageBasic (server, theme) 77 if uri.startswith ('/summary'):78 page = PageSummary (server, theme)79 80 elif uri.startswith ('/vservers'): 80 81 page = PageVServersList (server, theme) cherokee-admin/editable.py
r569 r577 2 2 <div id="editable_%%key%%">%%val%%</div> 3 3 <script type="text/javascript"> 4 YAHOO.util.Event.addListener ("editable_%%key%%", 'click', cherokee_handle_editable, '%%key%%'); 4 YAHOO.util.Event.addListener ("editable_%%key%%", 'click', CHEROKEE.Editable.Text.clicked_cb, '%%key%%'); 5 </script> 6 ''' 7 8 HTML_STR_EMPTY = ''' 9 <div id="editable_%%key%%"><div class="empty">empty</div></div> 10 <script type="text/javascript"> 11 YAHOO.util.Event.addListener ("editable_%%key%%", 'click', CHEROKEE.Editable.Text.clicked_empty_cb, '%%key%%'); 5 12 </script> 6 13 ''' … … 9 16 <input id="editable_%%key%%" type="checkbox" %%checked%% /> 10 17 <script type="text/javascript"> 11 YAHOO.util.Event.addListener ("editable_%%key%%", 'click', cherokee_handle_checkbox, '%%key%%');18 YAHOO.util.Event.addListener ("editable_%%key%%", 'click', CHEROKEE.Editable.Bool.clicked_cb, '%%key%%'); 12 19 </script> 13 20 ''' … … 23 30 self._type == str or \ 24 31 self._type == list: 25 html = HTML_STR 32 if self._val and len(self._val): 33 html = HTML_STR 34 else: 35 html = HTML_STR_EMPTY 36 26 37 elif self._type == bool: 27 38 html = HTML_BOOL … … 31 42 html = html.replace ("%%checked%%", "") 32 43 44 html = html.replace ("%%val%%", self._val) 33 45 html = html.replace ("%%key%%", self._key) 34 html = html.replace ("%%val%%", self._val)35 46 html = html.replace ("%%type%%", str(self._type)) 36 47 return html cherokee-admin/theme.py
r569 r577 2 2 3 3 COMMON_HEADERS = """ 4 %%yui_headers%% 5 <script type="text/javascript" src="/theme/cherokee.js" ></script> 4 6 <link rel="stylesheet" type="text/css" href="/yui/assets/menu.css"> 5 %%yui_headers%%6 7 """ 7 8 cherokee-admin/theme/cherokee.css
r569 r577 130 130 margin-bottom: 20px; 131 131 color: #1f4b83; 132 } 133 134 .empty { 135 color: #BBBBBB; 136 font-size: x-small; 132 137 } 133 138 cherokee-admin/theme/editable.js
r569 r577 1 var che_editing = false; 2 var che_old_val; 1 CHEROKEE.Editable = { 3 2 4 cherokee_editable_update_cb_done = function (resp) { 5 if (resp.responseText.substring(0,2) != "ok") { 6 var obj = document.getElementById (che_editing); 7 obj.innerHTML = che_old_val; 3 update_cb_failed : function (resp) { 4 alert (resp.statusText); 5 }, 8 6 9 alert (resp.responseText); 10 } 7 /* Text 8 */ 9 Text : { 10 _editing : false, 11 _old_val : false, 12 _is_empty: false, 11 13 12 che_editing = false; 13 } 14 update : function (key, value) { 15 var post_data = 'key='+key+'&value='+value; 16 YAHOO.util.Connect.asyncRequest ("POST", "/set", { 17 success: CHEROKEE.Editable.Text.update_cb_done, 18 failure: CHEROKEE.Editable.update_cb_failed 19 }, post_data); 20 }, 14 21 15 cherokee_editable_update = function (key, value) { 16 var post_data = 'key='+key+'&value='+value; 17 YAHOO.util.Connect.asyncRequest ("POST", "/set", { 18 success: cherokee_editable_update_cb_done, 19 failure: cherokee_editable_update_cb_done 20 }, post_data); 21 } 22 update_cb_done : function (resp) { 23 if (resp.responseText.substring(0,2) != "ok") { 24 var obj = document.getElementById (CHEROKEE.Editable._editing); 25 obj.innerHTML = CHEROKEE.Editable._old_val; 22 26 23 cherokee_handle_editable_save = function (event, params) { 27 alert (resp.responseText); 28 } 29 30 if (CHEROKEE.Editable.Text._is_empty) { 31 YAHOO.util.Event.removeListener (CHEROKEE.Editable._editing, 'click', CHEROKEE.Editable.Text.clicked_empty_cb); 32 YAHOO.util.Event.addListener (CHEROKEE.Editable._editing, 'click', CHEROKEE.Editable.Text.clicked_cb); 33 34 CHEROKEE.Editable.Text._is_empty = false; 35 } 36 37 CHEROKEE.Editable._editing = false; 38 }, 39 40 handle_save : function (event, params) { 24 41 var key = params['key']; 25 42 var obj = document.getElementById (params['target_id']); … … 27 44 28 45 obj.innerHTML = edit.value; 29 che_old_val = params['old'];46 CHEROKEE.Editable._old_val = params['old']; 30 47 31 cherokee_editable_update (key, edit.value);32 }48 CHEROKEE.Editable.Text.update (key, edit.value); 49 }, 33 50 34 cherokee_handle_editable_cancel =function (event, params) {51 handle_cancel : function (event, params) { 35 52 var key = params['key']; 36 53 var old = params['old']; … … 38 55 39 56 obj.innerHTML = old; 40 che_editing = false;41 }57 CHEROKEE.Editable._editing = false; 58 }, 42 59 43 cherokee_handle_editable = function (event, param) { 44 var target = YAHOO.util.Event.getTarget (event, true); 60 handle_generic : function (target, param, content) { 61 if (CHEROKEE.Editable._editing) 62 return; 63 45 64 var obj = document.getElementById (target.id); 46 65 var key = param; 47 66 var old = obj.innerHTML; 48 49 if (che_editing) return;50 67 51 68 var ok_edit = obj.id+'_edit'; … … 53 70 var cancel_id = obj.id+'_cancel'; 54 71 var buttons = '<div><input id="'+ok_id+'" type="button" value="SAVE" /> OR <input id="'+cancel_id+'" type="button" value="CANCEL" /></div></div>'; 55 // var textarea = '<div id="'+obj.id+'_editor"><textarea id="'+ok_edit+'" name="'+obj.id+'" rows="1" cols="60">'+obj.innerHTML+'</textarea>'; 56 var textarea = '<div id="'+obj.id+'_editor"><input type="textarea" id="'+ok_edit+'" name="'+obj.id+'" value="'+obj.innerHTML+'">'; 72 var textarea = '<div id="'+obj.id+'_editor"><input type="textarea" id="'+ok_edit+'" name="'+obj.id+'" value="'+content+'">'; 57 73 58 che_editing = target.id;59 che_old_val = obj.innerHTML;74 CHEROKEE.Editable._editing = target.id; 75 CHEROKEE.Editable._old_val = obj.innerHTML; 60 76 obj.innerHTML = textarea + buttons; 77 78 document.getElementById(ok_edit).focus(); 61 79 62 80 params = { 'key': key, 'old': old, 'target_id': target.id, 'ok_edit': ok_edit }; 63 81 64 YAHOO.util.Event.addListener (ok_id, 'click', cherokee_handle_editable_save, params); 65 YAHOO.util.Event.addListener (cancel_id, 'click', cherokee_handle_editable_cancel, params); 66 } 82 YAHOO.util.Event.addListener (ok_id, 'click', CHEROKEE.Editable.Text.handle_save, params); 83 YAHOO.util.Event.addListener (cancel_id, 'click', CHEROKEE.Editable.Text.handle_cancel, params); 84 }, 85 86 clicked_cb : function (event, param) { 87 var target = YAHOO.util.Event.getTarget (event, true); 88 var obj = document.getElementById (target.id); 67 89 68 cherokee_handle_checkbox = function (event, param) { 90 return CHEROKEE.Editable.Text.handle_generic (target, param, obj.innerHTML); 91 }, 92 93 clicked_empty_cb : function (event, param) { 94 var target = YAHOO.util.Event.getTarget(event, true).parentNode; 95 var obj = document.getElementById (target.id); 96 97 CHEROKEE.Editable.Text._is_empty = true; 98 return CHEROKEE.Editable.Text.handle_generic (target, param, ''); 99 } 100 }, 101 102 /* Bool 103 */ 104 Bool : { 105 update : function (key, value) { 106 var post_data = 'key='+key+'&value='+value; 107 108 YAHOO.util.Connect.asyncRequest ("POST", "/set", { 109 success: CHEROKEE.Editable.Bool.update_cb_done, 110 failure: CHEROKEE.Editable.update_cb_failed 111 }, post_data); 112 }, 113 114 update_cb_done : function (resp) { 115 if (resp.responseText.substring(0,2) != "ok") { 116 CHEROKEE.Editable.update_cb_failed (resp); 117 } 118 CHEROKEE.Editable._editing = false; 119 }, 120 121 clicked_cb : function (event, param) { 69 122 var target = YAHOO.util.Event.getTarget (event, true); 70 123 var obj = document.getElementById (target.id); … … 72 125 var key = param; 73 126 74 che_old_val = params['old']; 75 cherokee_editable_update (key, active ? '1' : '0'); 127 CHEROKEE.Editable._editing = target.id; 128 CHEROKEE.Editable.Bool.update (key, active ? '1' : '0'); 129 } 76 130 } 131 };