From a0d3eeaac8caf127bcf2655382501691fc4a0fd1 Mon Sep 17 00:00:00 2001 From: Doug Bell Date: Thu, 20 Aug 2009 18:51:39 +0000 Subject: [PATCH] fixed 10640, 10639, 10625: Map point save HTML/JS --- docs/changelog/7.x.x.txt | 3 +++ .../default-map-point-edit.wgpkg | Bin 1116 -> 1120 bytes .../default-map-point-view.wgpkg | Bin 1095 -> 1096 bytes .../packages-7.7.18/default-map-view.wgpkg | Bin 1087 -> 1217 bytes lib/WebGUI/Asset/MapPoint.pm | 4 ++++ lib/WebGUI/Asset/Wobject/Map.pm | 6 +++++- www/extras/yui-webgui/build/map/map.js | 19 +++++++++++++----- 7 files changed, 26 insertions(+), 6 deletions(-) diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index 1fbd37f1e..1c0e35461 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -24,6 +24,9 @@ - fixed SMS/Email notification handling (Patrick Donelan, SDH Consulting) - fixed #10624: map template problem with floats - fixed #10793: Map->Add Point photo field missing + - fixed #10625: Map point no save button + - fixed #10639: Map: Can't edit or delete points + - fixed #10640: Map: points not working correctly 7.7.17 - fixed #10697: Story: Image crowds text diff --git a/docs/upgrades/packages-7.7.18/default-map-point-edit.wgpkg b/docs/upgrades/packages-7.7.18/default-map-point-edit.wgpkg index 9aac85cb415e3dda1ef0fccb08d5735e19ccdfbe..c04b729348bfeb0d471d8cecebdad83fa2e24a8b 100644 GIT binary patch literal 1120 zcmV-m1fTmKiwFP!00000|Ls?8Z`(Ey_UHZzL7(SXk}Z2SyZ~-qmJ~_gCC;*T84OyY zWwx@&k(6IL^uLd!#7Lr*!~q(h!y+J2z8Fq-R-Kk<8>Mh z>)~-4uIqK$ZMWlhy@urqT)SZjm)Cz%#sL-7)^HZ3=<)poY(9V7EDtB1>~Qk^A9)mO zxA^V%)!*L1XNHsSbOsTz+Y$8^@4EW?UDq}0-|;%)8aUr+|0lz|R{am2-1Ubs{_{>W zq0Qlv#DK#o;2Z>tB}_Q8t%3FDUq2~3{1X7Nm0;(`FQb3`I6TaU{tlhSi zzcj>v@ska~R9HvKCrRV@!7SQ~tN1oaXE9<67#6+>T;HK2#A_AQDGY3zV8YODIJn^y zoIwyyK*Yu%_#(myLX|D?I)U_-L3*xiWwI6b9Y??zk^U@uoBpj1peBBX)+u5GE>yTV5Yi%rW1R zENP{jL=>mwJUkH*l~<_-dSA6Z4AII8L|ND`_x3uPN(z^Nj3t44`|zILCqpi-#dHOz zHOF*0U5I=_npt8ngYn@6@faE?F4qo+tqh^UWPct*7EnYu!e(Gy#yYP%IAe&Ln+Ua* zt91^eFr<(%gB8eD-Kt0Rd^yIeVlwhah;NOMfmo`8-pH%m67^Z3Bru7qdtT@D36a(q z3v+B8;m~yZiiljTb3DRn!s!mVY_-l|yugVWpUAa3@G00B$DV^t9q>e4UlbcyDA(%H zf&<3}I2W1oP#LRU)j~0_f^`>kjxpC4v?Z?hVX0w~1*C}I()g6(3#HEs(he{ElEInZ3eUh!_^DvY;yky+L1d4n40_1p=thWVOd5X&VgACYKkx zNkr@dOQp|-Petny%Ts0^s$6qr>-T&8zF%QP;R-R4kYhcf>WYKZn9&!coYnv+$pxW?V=FX7tdW%{kX_7iW7eqOmX@@d)Ds68}WLth}+W;K*r z8x_ixdT6LLOai(ke5~83Bnuow`6pL^F0T;!Jh~pIlk4>2<4Hs*`>m{SH(Mr}!fYnh z##$Z9Uwc9l)rV=FD5~$-YVWsyb~;YCThde^Sz?^z^k#IkoX){j_~{RyU*k6Mov0lZ m^d6c%=O;g~zrFkR!~93^M&vC6ZyET%WZ+*h)4`Ge6aWCXVJT1m literal 1116 zcmV-i1f%;OiwFP!00000|Ls<7ZyGre=5v3=YCj)gSy)I=E)pflg{q0TCTV)ToRDD+ z_`2Ax?d7GX{`Zc(Yj#;S36UD9C&f~-$n(tj@r>uO4=OJ|JkM(fL8YR zHp8pb>wdFQ_ZmI`ojTxK6$e~ie#BBC0o0awG>yr_>j7*sdDyHs2P4^>{{ByfVO`Ju z2S?_&fAFtl^e62BBDR`PZ}^tgKL{E@q5e(3=~o=@C$0Zzn3t;m!K17GGRFVjKohzO z&v}Ft9wMdCcs9pWN!RH(fB*BFu}j4Sn&SKv7mQ<}2sS_yMn@V83~|D@YmIdquJPA~ z2uXFe;!J?GYkX)NMH@4;moo8P9*-g-XE@A!DPGSYGGri@Fn8xF6OKo=N= zH)tvcX#54j0imrW*^**$E3xPsTb}He`;H@$606jSUCg}Ouiba}uXgOyYW424`nKE6 z7{($pq-Si7Yjec)U)82t)VSjP5q5Dx1fxBX71s}-Wtxk+U;gKHJMWFeW5M3CINA9!uQ(X6*J zkm(>p`ZSRTM>n$r&FPr#%#dlXeaZi-JyOYy{Xv94>`LUbu}?UXyPrhgSPABgl~e?KNvWkhV_e;^y-GZW4)n&$OZ^ zm&}%?6Pc#0xT$>2jqT{DeRLGG{oJ__ctIp2$_USnYWs;4Y zDV8|7gY1n|WJlouNsh)zo~#PjjD~NnNUPr2b>=>y;e`fE_1ih#SG+Cq8Om*4_LFUk z-cz%k!iIJP+s1oJtu5|)f2p=E&(mq^wVy~^^wSD$k&nx>MeU)@7WxcfE>P`P zV>%XVt_HScat)`@G<`<#-q1(XyZzG(K7IW-Tpsr8eR%F|&OVXXYY7cdY#h_FRtfSi zIFLW{*enx3^G4n7^Twgq^jfW)eu6x~)sfO0iPd~KL094DPl5Wt8a(i(jcG=2)8HvT i{b>IF=KC-6%6}#Dnt|60yk=lG13v%<(%_Q-6aWC(y(vln diff --git a/docs/upgrades/packages-7.7.18/default-map-point-view.wgpkg b/docs/upgrades/packages-7.7.18/default-map-point-view.wgpkg index 1a4cc31844fa1dccb3d04b1c3d976834bf79d15b..5be271821d2edd64be549bdf9c4345ae1ecd85fc 100644 GIT binary patch delta 1005 zcmVVjDOIntyMYm#Y8K-dTSb z<(D_232hD&5(5tJ0q0;gPhiTKZS}0b|9PwQjAIHSXo?8M1bk9;z+8wcT6a+9;F3DF+E8RBch$M_Ur)CL*6)qhj!w+iUoP9rY9cO(6b$O#U_ z+RI#&5`|NVVazrb0!NPODQz)Zb&(pWeyd<6bDYA#NdEUMjU^ZF%UB3jgEO!)oup`= z3rqlt2Yq18DGYy|*z%L(o}M)~nAk>A3ZLq#Dk~@mVi<@;a6IUvB(fNtiTM9s=iG5a z!K~(GtBza%m!s+if!(Q*5Z24YqT=1kem$Y_?0~Dg1VQjbQJDsK{PB3kx8ccyc z&HLTD1jHK2ez!hV`n_mgC6ol((LoTCEe)n|j(^M`1NMN(73KoN3~+>VvM|yk=sX+C z9)A`DnaoTvstt%>`Gv{Eiu$h6=K@39Io1FPpn^=*98aXJ*E=6yUOY}BVi#Cabbe}7 zNE)#sW&3Kbblq;J+x0t5W8oAo5EBVG-JC6DaST#K>U`L25HqcFyd0)ym?n8P3{}Qp zet)QJj+kw9sn|e_fLWd=QEgT1Mzz=*I@afttvkdZ1N~IiE-^g?0U__{@(5j)sdSg1lIG_UB5>BHGJw2Z=3&W??a&cnhi<8g) z$xx_W{qJ|xyLa>-!|8$6AR@L~qTb@UtNwn=^|$KZYI>cTrL{(eO;720>oC(YuxREzfFD!xs!X^hw$2HH1;%UhHNc&UOqTEW&SCJa3e z2Unbea|nVlh}a0s9z-|+s4^v9rjXt+NQX*if~~keas-S)UN~jlMY!_3yVD0h25$Y2 z6aVaEC(;Nr8hP5Fpo zj`^D8Ni%X1QJj%s@IF9Xc^Ng>%&X*mE^2f>PmX(f*4$uX8%ZgAs;jE3pdg50AQr*#ppTNsVss|r|9hQt#|@2t z(vxi2|9||;#J0@+WbE{G4k_Zo{fy#d1gPL9wSSE*ud;qJ2WhmEc~A-q^0L+8w&S?d z^UVZNu`7_|eRT_`zuyddy?3(Zd%bbNliFO;+9eK9h;oLp-KOt!nqI5f(nhMm6zJ2u z->pkPtdZ<@>rfJh41Y3U4~Sf0E-=ghM>r=7BRzu7v$5>) zXF-t3%oL;AfC!dfm`tpw?;3qBFtnXx4UhmT$W+boMA~}2^YP`y<0K+>fh9%fr$&XO z5i3%*ujWeE?RL6dztc1pPT>MEk&x5P*-{qAAVs9khs_2t(>lk?VS0vXl4rwEWenzr z%75mF*+!R&4a5kT<#`g-R>f{qi@l*^eLmT`Lkv>Rh2KZW+dj`B4`Tbdt?bjyfa1bRTih3Sm02_J1b z!ssUsqTK*G%m1?Y>YQxoLFs#wFNIT@H8g zo4Qk0+t@pHTF2h8(Z+&(#K};=o6=QsAA+mkuREXri9O;wk!Qdw`?tU+FS%deeEnf= a<*z_qGw_;$*9^RT2EGC1N%+hF6aWBCoBm_~ diff --git a/docs/upgrades/packages-7.7.18/default-map-view.wgpkg b/docs/upgrades/packages-7.7.18/default-map-view.wgpkg index eac4fc8e2fbc9e77610ec8502c51ccf054af96a3..4df1a3a0afcea4a87b8699373236c7108f9734f6 100644 GIT binary patch literal 1217 zcmV;y1U~y8iwFP!00000|Ls<7PvbZc?&tj#R;88hBxuvLDcjPk1nhFaEzsrVxMRDj z+{A4SshzVON)PehcWft3+5js~Ani#+f`G^K_RP#Psgz#-aU5sE^GYTCZZ^%^aT}!) zT0BmvR&yKmdacoHI3-krd+-94*MDNEuz=8JWH^rLzFV%BjlLFy zSgKFA5f>ocGCC{{!-W{eOBws+C?1AXPDqgHGBUfMEZ{R^)X4;L&Uhqg(Hyx|0`CzV zoZ+$TVgDM;>3}*?%|n9JJR-mKA?;gL^`-2WyOr5^Kmw``an$3KDHP%%3GV_b0hoDv z7;^u5^S*G4vM5$-g=1|P0}@4vBq8zD5ACJ~?q)PllQs$tdkKN3bMK2jE2LoZM|WDLX*vZ0StRuF{eyZI5md03X0%omSxo+euheFyYT<$f z0(dQAEaHZxBr3tIb>$2$YghGy!1=O0{M*IX!{$G;4C7dY2EGZOlIj#k`e!{I7+DR- z2*;sX*QYm>HIjh`YQNh8KvSZe@LO4M_XG-u;c01KXp{qgZB!F|~PcR$nNw^@x-_Q3e(EXJW z_hWg?eo+%DD?CzQUVb(ISTz#tvw+-w1D|0`e%*xO(MJ2KV=p6f4mLrszK%{!!y}9$ zJyxBny_Bk$utLrw1o)Z3lZmKkFUu<_Uw7fUui(0|rPEeag(Nex;?hE)eVQxK9412h zPl~ILnJz*O%VDe(X9MV)9biWyRx!qcFjCs<_hneK)kIM)EiW{Z?@1e@(9zkN)%ozj03?_MhxK!gRbud)6J zRPFZO+2Q9Ra8!PVm6C4CrCms60@G?b`8pd}tF_T;c^hu77X-PXni4*y`}CoL00qHL zOq(K?kDTz?KHKGDYSGAvVoB^GP1ovbbPSqCM%cGFL4~W!6;2r}zmC(Xc{Y!s7bh|F zEdH`=v%*}f7BWi8F;;eH#sYXGp~Qrw4KtwyEg^d!xc*t3l-GI|A7$ZbF3N_GFkj3g z)k~Wu*K!JvlU?fJlbuWV!aLsn<9PQp`f$)YSU>ra8KLrYE};)rTgNnQIt%%)Mi_nb z&G^vpn@`QppGL0>{BYVJuS8HVtc%vV}BTONGpx z0Vj9%&GrS@)c<{t?R$f~Op%(Yn_>wL{Ji@2JkQTpuRZ;8UAOD|wVHl*I_Bwm?OF{L z%dIt=Ub_WquItxO6Ml4S2uz-SrBY!5sjbLtk<$C)f!ch2zgQm*mOY$){zsO{x>QaD(~gemEuKKk_e2P2n?3%nrJtwivI2t|oeG;Xw~KoIZ~9&WU*({hZx7DQO8 zH|vB8kRBKtmPSz_hVfFyzmuf1h{`1iOIt=(mz0HkWt_UDKyDaMB)#p9td+pW1czh1 zkRu#igF8rQD<(*ONVdaD5|Kb5sWuV$Y2wTyj#VECx>%|o zCl2B)SYo!&qDwM+doiq^;-o(3K`P&~@6?jYI!_dwR(>*ntUD48SxDBO0fHzc--9D_ z#)%qOWn}ijCkXcT(7DY4qeSOEXjrA(#Gn*$o**cvIi1WzxBZncXWg`4gq|o+H@Rt0p z8ObQYu~$atsSIOQRoQ#-d#)AQY~=X$5NSIAcNZrz$O5MG97TKICBPOqDa>f-z53uf-U0{G7)3Gkg zKLpnRriPmwoB&_mR5{I*{ha=pMfY64OfA6zXvuiL2daMmczk+t8#pRYxF$Qxzgu)i zWd_skajJDTvR<#->-hk8nUNqjR8z(4oTcw72v8F+ZQc}BK$m zPS(5GF=!f@;K1Sp6>e--IA^w!d)X<~&%pPcm$#y+h zB~4Kk1}ir$Zxs}o-64jlP(f3u)YlwU_8Vb=*d%I{H&dk*6<%a_Z+x_BuY+z%-d+aN z4|q8~c^4fnN+(pFZzS}`ZcCYF&S#{0?E@v4H$kjCg_2-!fk?CT zW?~&r=lCrA_?xeO<*meb7p+QqMeAqz={Kz}FTQ*;uZGWwJR|Uo!2cY9zX4Q8;?e*T F0057p2vz_9 diff --git a/lib/WebGUI/Asset/MapPoint.pm b/lib/WebGUI/Asset/MapPoint.pm index 320f282ad..55e105148 100644 --- a/lib/WebGUI/Asset/MapPoint.pm +++ b/lib/WebGUI/Asset/MapPoint.pm @@ -296,6 +296,10 @@ sub getTemplateVarsEditForm { ; $var->{ form_footer } = WebGUI::Form::formFooter( $session ); + $var->{ form_save } = WebGUI::Form::submit( $session, { + name => "save", + } ); + # Stuff from this class's definition my $definition = __PACKAGE__->definition($session)->[0]->{properties}; for my $key ( keys %{$definition} ) { diff --git a/lib/WebGUI/Asset/Wobject/Map.pm b/lib/WebGUI/Asset/Wobject/Map.pm index daee44034..2b590d662 100644 --- a/lib/WebGUI/Asset/Wobject/Map.pm +++ b/lib/WebGUI/Asset/Wobject/Map.pm @@ -16,6 +16,7 @@ use strict; use Tie::IxHash; use WebGUI::International; use WebGUI::Utility; +use HTML::Entities qw(encode_entities); use base 'WebGUI::Asset::Wobject'; # To get an installer for your wobject, add the Installable AssetAspect @@ -520,6 +521,8 @@ sub www_ajaxEditPointSave { my $form = $self->session->form; my $i18n = WebGUI::International->new( $session, 'Asset_Map' ); + # We're returning as HTML because application/json causes download pop-up + # and text/plain causes
...
in firefox $session->http->setMimeType("text/html"); $session->log->preventDebugOutput; @@ -547,7 +550,8 @@ sub www_ajaxEditPointSave { $asset->requestAutoCommit; } - return JSON->new->encode($asset->getMapInfo); + # Encode entities because we're returning as HTML + return encode_entities( JSON->new->encode($asset->getMapInfo) ); } #------------------------------------------------------------------- diff --git a/www/extras/yui-webgui/build/map/map.js b/www/extras/yui-webgui/build/map/map.js index 8570b2f67..f9149e649 100644 --- a/www/extras/yui-webgui/build/map/map.js +++ b/www/extras/yui-webgui/build/map/map.js @@ -51,8 +51,15 @@ WebGUI.Map.editPoint // Callback should open the window with the form var callback = function (text, code) { - marker.openInfoWindowHtml( text ); - + marker.infoWin.innerHTML = text; + var button = marker.infoWin.getElementsByTagName( "form" )[0].elements["save"]; + marker.openInfoWindow( marker.infoWin ); + YAHOO.util.Event.addListener( button, "click", function (e) { + // Closing the info window triggers infowindowbeforeclose + marker.closeInfoWindow(); + YAHOO.util.Event.stopEvent(e); + return false; + } ); GEvent.addListener( marker, "infowindowbeforeclose", function () { WebGUI.Map.editPointSave( map, mgr, mapUrl, marker ); }); @@ -86,9 +93,11 @@ WebGUI.Map.editPointSave GEvent.clearListeners( marker, "click" ); GEvent.clearListeners( marker, "infowindowbeforeclose" ); - // Set the marker's title - marker.kh.title = point.title; - // I hate the google maps API. + // Decode HTML entities because JSON is being returned as text/html + // See WebGUI::Asset::Wobject::Map www_ajaxEditPointSave + var decoder = document.createElement( "textarea" ); + decoder.innerHTML = point.content; + point.content = decoder.value; var infoWin = document.createElement( "div" ); infoWin.innerHTML = point.content;