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,20 +13,25 @@ function mouseHelpOnOff() { | ||
13 | document.cookie = "mouseHelpTurnOn="+ pageHelp.info.updateBox + expires +"; path=/"; | 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,21 +114,26 @@ function getHelp( ev ) { | ||
114 | debug += " :: "+ el.nodeName +" "+ el.getAttribute("help"); | 114 | debug += " :: "+ el.nodeName +" "+ el.getAttribute("help"); |
115 | debug += "<br>"+ pageHelp.myFrame.src +" x:"+ mX +" y:"+ mY; | 115 | debug += "<br>"+ pageHelp.myFrame.src +" x:"+ mX +" y:"+ mY; |
116 | var txt = el.getAttribute("help"); | 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 | box.style.left = ( mX + helpInfo.incPos.x ) +"px"; | 137 | box.style.left = ( mX + helpInfo.incPos.x ) +"px"; |
133 | box.style.top = ( mY + helpInfo.incPos.y ) +"px"; | 138 | box.style.top = ( mY + helpInfo.incPos.y ) +"px"; |
134 | } | 139 | } |
@@ -180,12 +185,60 @@ if( window.attachEvent ) { // IE | @@ -180,12 +185,60 @@ if( window.attachEvent ) { // IE | ||
180 | document.body.attachEvent( "onmousemove", getHelp ); | 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 | function showMouseHelpOn() { | 216 | function showMouseHelpOn() { |
184 | pageHelp.info.helpBox = document.getElementById("helpBox"); | 217 | pageHelp.info.helpBox = document.getElementById("helpBox"); |
185 | pageHelp.info.helpBox.content = document.getElementById("helpBoxContent"); | 218 | pageHelp.info.helpBox.content = document.getElementById("helpBoxContent"); |
186 | pageHelp.info.helpBox.setAttribute( "help", "FALSE" ); | 219 | pageHelp.info.helpBox.setAttribute( "help", "FALSE" ); |
187 | pageHelp.info.updateBox = true; | 220 | pageHelp.info.updateBox = true; |
188 | pageHelp.info.myDoc.body.style.cursor = "help"; | 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 | function showMouseHelpOff() { | 244 | function showMouseHelpOff() { |