Changeset 1707 for trunk/gregarius/plugins/keyboardnavigation.php
- Timestamp:
- 05/19/07 10:17:42 (18 months ago)
- Files:
-
- 1 modified
-
trunk/gregarius/plugins/keyboardnavigation.php (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/gregarius/plugins/keyboardnavigation.php
r1706 r1707 96 96 case 'h': return __kbnav_ScrollTop(); break; 97 97 case 'c': return __kbnav_ToggleCollapse(); break; 98 case 'o': return (event.shiftKey ? __kbnav_OpenUrlNW() : __kbnav_OpenUrl()); break; 98 99 default : return true; 99 100 } … … 121 122 if (kbNavCurrent == -1)kbNavCurrent=0; 122 123 var item = kbNavItems[kbNavCurrent]; 123 124 if (item && (r1 = new RegExp(".*es.([0-9]+),([0-9]+).*,([0-9]+).*","gm").exec(item.innerHTML))) { 125 return r1; 124 if (item) { 125 var ret = {}; 126 if (rx = new RegExp(".*es.([0-9]+),([0-9]+).*,([0-9]+).*","gm").exec(item.innerHTML)) { 127 ret.id = rx[1]; 128 ret.state = rx[2]; 129 ret.cid = rx[3]; 130 } 131 if (href = item.getElementsByTagName('h4').item(0).getElementsByTagName('a').item(0).href) { 132 ret.url = href; 133 } 134 return ret; 126 135 } 127 136 … … 131 140 function __kbnav_ToggleCollapse() { 132 141 if ('function' == typeof(toggleItemByID)) { 133 r1=__kbnav_CurrentItemData(); 134 if (null != r1) { 135 id=r1[1]; 136 toggleItemByID(id); 142 var r=__kbnav_CurrentItemData(); 143 if (null != r && r.id) { 144 toggleItemByID(r.id); 137 145 } 138 146 } … … 142 150 function __kbnav_ToggleSticky() { 143 151 if ('function' == typeof(_stickyflag_sticky)) { 144 r1=__kbnav_CurrentItemData(); 145 if (null != r1) { 146 id=r1[1]; 147 s =r1[2]; 148 _stickyflag_sticky(id, s); 152 var r=__kbnav_CurrentItemData(); 153 if (null != r && r.id && r.state) { 154 _stickyflag_sticky(r.id, r.state); 149 155 } 150 156 } … … 154 160 function __kbnav_ToggleFlag() { 155 161 if ('function' == typeof(_stickyflag_flag)) { 156 r1=__kbnav_CurrentItemData(); 157 if (null != r1) { 158 id=r1[1]; 159 f =r1[2]; 160 _stickyflag_flag(id, f); 162 var r=__kbnav_CurrentItemData(); 163 if (null != r && r.id && r.state) { 164 _stickyflag_flag(r.id, r.state); 161 165 } 162 166 } … … 198 202 199 203 function __kbnav_NextMarkRead() { 200 r1=__kbnav_CurrentItemData();201 202 if (null != r 1 && (r1[2]& 1)) {204 var r=__kbnav_CurrentItemData(); 205 206 if (null != r && (r.state & 1)) { 203 207 if (! document.all) { 204 c = unreadCnt(-1,r1[3]); 205 } else { 206 c = 1; 207 } 208 id=r1[1]; 209 s =r1[2] & 30; 210 setItemHide(id, (c == 0)); 211 setState(id,s); 208 c = unreadCnt(-1,r.cid); 209 } else { 210 c = 1; 211 } 212 setItemHide(r.id, (c == 0)); 213 setState(r.id,r.state & 30); 212 214 kbNavItems.splice(kbNavCurrent,1); 213 215 __kbnav_scrollTo(0); 214 215 } else if(null != r1) { 216 } else if(null != r) { 216 217 // non logged in users can't mark as read, so let this behave as a scroll. 217 218 __kbnav_scrollTo(1); … … 223 224 } 224 225 226 function __kbnav_OpenUrl() { 227 var r = __kbnav_CurrentItemData(); 228 if (null != r && r.url) { 229 document.location=r.url; 230 } 231 return false; 232 } 233 function __kbnav_OpenUrlNW() { 234 var r = __kbnav_CurrentItemData(); 235 if (null != r && r.url) { 236 window.open(r.url,'_blank'); 237 } 238 return false; 239 } 240 225 241 <?php 226 242 flush();
