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() { | ... | ... |