Commit 4e92275db60176c4da0c6769f19fdbe4cac57eca
1 parent
008118fb
Exists in
master
and in
29 other branches
ActionItem183: better help interaction
git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@1515 3f533792-8f58-4932-b0fe-aaf55b0a4547
Showing
2 changed files
with
85 additions
and
27 deletions
Show diff stats
public/javascripts/noosfero-show-help.js
| ... | ... | @@ -13,20 +13,25 @@ function mouseHelpOnOff() { |
| 13 | 13 | document.cookie = "mouseHelpTurnOn="+ pageHelp.info.updateBox + expires +"; path=/"; |
| 14 | 14 | } |
| 15 | 15 | |
| 16 | -function noosferoHelpInit(confirm_msg, rejected_msg) { | |
| 17 | - if ( document.cookie.indexOf("mouseHelpTurnOn=") > -1 ) { | |
| 18 | - if ( document.cookie.indexOf("mouseHelpTurnOn=true") > -1 ) { | |
| 19 | - mouseHelpOnOff(); | |
| 20 | - } | |
| 21 | - } else { | |
| 22 | - var date = new Date(); | |
| 23 | - date.setTime( date.getTime() + ( 60*24*60*60*1000 ) ); | |
| 24 | - var expires = "; expires=" + date.toGMTString(); | |
| 25 | - document.cookie = "mouseHelpTurnOn=false" + expires +"; path=/"; | |
| 26 | - if ( confirm(confirm_msg) ) { | |
| 27 | - mouseHelpOnOff(); | |
| 28 | - } else { | |
| 29 | - alert(rejected_msg) | |
| 30 | - } | |
| 16 | +function mouseHelpOn() { | |
| 17 | + mouseHelpOnOff(); | |
| 18 | + new Effect.Fade( "noticeAboutHelp" ); | |
| 19 | +} | |
| 20 | + | |
| 21 | +function mouseHelpOff() { | |
| 22 | + var date = new Date(); | |
| 23 | + date.setTime( date.getTime() + ( 60*24*60*60*1000 ) ); | |
| 24 | + var expires = "; expires=" + date.toGMTString(); | |
| 25 | + document.cookie = "mouseHelpTurnOn=false" + expires +"; path=/"; | |
| 26 | + new Effect.Fade( "noticeAboutHelp" ); | |
| 27 | +} | |
| 28 | + | |
| 29 | +if ( document.cookie.indexOf("mouseHelpTurnOn=") > -1 ) { | |
| 30 | + if ( document.cookie.indexOf("mouseHelpTurnOn=true") > -1 ) { | |
| 31 | + mouseHelpOnOff(); | |
| 31 | 32 | } |
| 32 | 33 | } |
| 34 | +else { | |
| 35 | + new Effect.Appear( "noticeAboutHelp", {duration:2} ); | |
| 36 | +} | |
| 37 | + | ... | ... |
public/javascripts/show-mouse-help.js
| ... | ... | @@ -114,21 +114,26 @@ function getHelp( ev ) { |
| 114 | 114 | debug += " :: "+ el.nodeName +" "+ el.getAttribute("help"); |
| 115 | 115 | debug += "<br>"+ pageHelp.myFrame.src +" x:"+ mX +" y:"+ mY; |
| 116 | 116 | var txt = el.getAttribute("help"); |
| 117 | - if ( txt ) { | |
| 118 | - box.style.display = "block"; | |
| 119 | - if ( txt != "FALSE" ) { | |
| 120 | - if ( /^#.+/.test( txt ) ) { | |
| 121 | - var txtEl = el.ownerDocument.getElementById( txt.replace(/#/,"") ); | |
| 122 | - if ( txtEl ) txt = txtEl.innerHTML; | |
| 117 | + if ( txt != box.txt ) { | |
| 118 | + if ( txt ) { | |
| 119 | + helpWow(true); | |
| 120 | + box.style.display = "block"; | |
| 121 | + if ( txt != "FALSE" ) { | |
| 122 | + var realTxt = txt; | |
| 123 | + if ( /^#.+/.test( txt ) ) { | |
| 124 | + var txtEl = el.ownerDocument.getElementById( txt.replace(/#/,"") ); | |
| 125 | + if ( txtEl ) realTxt = txtEl.innerHTML; | |
| 126 | + } | |
| 127 | + box.content.innerHTML = '<p>'+ realTxt +'</p>'+ | |
| 128 | + '<br style="clear:both" />'+ | |
| 129 | + '<div class="help-force-clear-ieworkarroundbug"'+ | |
| 130 | + ' style="height:1px; overflow:hidden"></div>'; | |
| 123 | 131 | } |
| 124 | - box.content.innerHTML = '<p>'+ txt +'</p>'+ | |
| 125 | - '<br style="clear:both" />'+ | |
| 126 | - '<div class="help-force-clear-ieworkarroundbug"'+ | |
| 127 | - ' style="height:1px; overflow:hidden"></div>'; | |
| 132 | + } else { | |
| 133 | + box.style.display = "none"; | |
| 128 | 134 | } |
| 129 | - } else { | |
| 130 | - box.style.display = "none"; | |
| 131 | 135 | } |
| 136 | + box.txt = txt; | |
| 132 | 137 | box.style.left = ( mX + helpInfo.incPos.x ) +"px"; |
| 133 | 138 | box.style.top = ( mY + helpInfo.incPos.y ) +"px"; |
| 134 | 139 | } |
| ... | ... | @@ -180,12 +185,60 @@ if( window.attachEvent ) { // IE |
| 180 | 185 | document.body.attachEvent( "onmousemove", getHelp ); |
| 181 | 186 | } |
| 182 | 187 | |
| 188 | +function helpWow( start ) { | |
| 189 | + var bg = pageHelp.info.bg; | |
| 190 | + var box = pageHelp.info.helpBox.style; | |
| 191 | + var change = false; | |
| 192 | + if ( start ) { | |
| 193 | + box.backgroundColor = "rgb("+ bg.r.wow +","+ bg.g.wow +","+ bg.b.wow +")"; | |
| 194 | + bg.r.cur = bg.r.wow; | |
| 195 | + bg.g.cur = bg.g.wow; | |
| 196 | + bg.b.cur = bg.b.wow; | |
| 197 | + change = true; | |
| 198 | + } else { | |
| 199 | + for ( c in bg ) { | |
| 200 | + if ( bg[c].cur != bg[c].orig ) { | |
| 201 | + bg[c].cur += bg[c].inc; | |
| 202 | + if ( ( bg[c].inc > 0 ) && ( bg[c].cur > bg[c].orig ) ) bg[c].cur = bg[c].orig | |
| 203 | + if ( ( bg[c].inc < 0 ) && ( bg[c].cur < bg[c].orig ) ) bg[c].cur = bg[c].orig | |
| 204 | + change = true; | |
| 205 | + } | |
| 206 | + } | |
| 207 | + } | |
| 208 | + if ( change ) { | |
| 209 | + box.backgroundColor = "rgb("+ Math.round(bg.r.cur) +","+ | |
| 210 | + Math.round(bg.g.cur) +","+ | |
| 211 | + Math.round(bg.b.cur) +")"; | |
| 212 | + setTimeout( "helpWow()", 20 ) | |
| 213 | + } | |
| 214 | +} | |
| 215 | + | |
| 183 | 216 | function showMouseHelpOn() { |
| 184 | 217 | pageHelp.info.helpBox = document.getElementById("helpBox"); |
| 185 | 218 | pageHelp.info.helpBox.content = document.getElementById("helpBoxContent"); |
| 186 | 219 | pageHelp.info.helpBox.setAttribute( "help", "FALSE" ); |
| 187 | 220 | pageHelp.info.updateBox = true; |
| 188 | 221 | pageHelp.info.myDoc.body.style.cursor = "help"; |
| 222 | + if ( window.getComputedStyle ) { | |
| 223 | + var bg = window.getComputedStyle( pageHelp.info.helpBox, "" ).backgroundColor; | |
| 224 | + } else { | |
| 225 | + var bg = pageHelp.info.helpBox.currentStyle.backgroundColor; | |
| 226 | + } | |
| 227 | + if ( /^#/.test(bg) ) { | |
| 228 | + var r = parseInt( bg.replace(/^#(..)..../,"$1"), 16 ); | |
| 229 | + var g = parseInt( bg.replace(/^#..(..)../,"$1"), 16 ); | |
| 230 | + var b = parseInt( bg.replace(/^#....(..)/,"$1"), 16 ); | |
| 231 | + } else { | |
| 232 | + bg = bg.replace(/\s/g, ""); | |
| 233 | + var r = parseInt( bg.replace(/^rgb\(([0-9]+),[0-9]+,[0-9]+\)/,"$1") ); | |
| 234 | + var g = parseInt( bg.replace(/^rgb\([0-9]+,([0-9]+),[0-9]+\)/,"$1") ); | |
| 235 | + var b = parseInt( bg.replace(/^rgb\([0-9]+,[0-9]+,([0-9]+)\)/,"$1") ); | |
| 236 | + } | |
| 237 | + bg = { r:{orig:r,wow:255}, g:{orig:g,wow:250}, b:{orig:b,wow:100} } | |
| 238 | + for ( c in bg ) { | |
| 239 | + bg[c].inc = ( bg[c].orig - bg[c].wow ) / 20; | |
| 240 | + } | |
| 241 | + pageHelp.info.bg = bg; | |
| 189 | 242 | } |
| 190 | 243 | |
| 191 | 244 | function showMouseHelpOff() { | ... | ... |