From 822e1a7c63128afb99dc754358930464fac030b7 Mon Sep 17 00:00:00 2001 From: Gaetan Delannay Date: Sun, 20 Apr 2014 19:22:40 +0200 Subject: [PATCH] [gen] Buttons can now be stretched to fit the size of the inner label. --- fields/action.py | 12 +++++------ fields/ref.py | 34 +++++++++++++++++------------- fields/workflow.py | 22 +++++++++++--------- gen/layout.py | 11 +++------- gen/mixins/ToolMixin.py | 11 ++++++++++ gen/mixins/__init__.py | 2 +- gen/ui/action.png | Bin 0 -> 566 bytes gen/ui/add.png | Bin 0 -> 240 bytes gen/ui/appy.css | 8 +++++--- gen/ui/buttonAction.png | Bin 669 -> 0 bytes gen/ui/buttonAdd.png | Bin 312 -> 0 bytes gen/ui/buttonCancel.png | Bin 877 -> 0 bytes gen/ui/buttonEdit.png | Bin 374 -> 0 bytes gen/ui/buttonFake.png | Bin 773 -> 0 bytes gen/ui/buttonNext.png | Bin 315 -> 0 bytes gen/ui/buttonPrevious.png | Bin 325 -> 0 bytes gen/ui/buttonSave.png | Bin 637 -> 0 bytes gen/ui/buttonSearch.png | Bin 478 -> 0 bytes gen/ui/buttonTransition.png | Bin 691 -> 0 bytes gen/ui/cancel.png | Bin 4552 -> 747 bytes gen/ui/deleteMany.png | Bin 360 -> 259 bytes gen/ui/fake.png | Bin 0 -> 657 bytes gen/ui/linkMany.png | Bin 327 -> 288 bytes gen/ui/next.png | Bin 0 -> 229 bytes gen/ui/previous.png | Bin 0 -> 225 bytes gen/ui/save.png | Bin 0 -> 513 bytes gen/ui/search.gif | Bin 191 -> 0 bytes gen/ui/transition.png | Bin 0 -> 653 bytes gen/ui/unlinkMany.png | Bin 359 -> 256 bytes gen/ui/unlinkManyUp.png | Bin 316 -> 243 bytes gen/wrappers/ToolWrapper.py | 12 +++++++---- gen/wrappers/__init__.py | 40 ++++++++++++++++++++++-------------- 32 files changed, 91 insertions(+), 61 deletions(-) create mode 100644 gen/ui/action.png create mode 100644 gen/ui/add.png delete mode 100644 gen/ui/buttonAction.png delete mode 100644 gen/ui/buttonAdd.png delete mode 100644 gen/ui/buttonCancel.png delete mode 100644 gen/ui/buttonEdit.png delete mode 100644 gen/ui/buttonFake.png delete mode 100644 gen/ui/buttonNext.png delete mode 100644 gen/ui/buttonPrevious.png delete mode 100644 gen/ui/buttonSave.png delete mode 100644 gen/ui/buttonSearch.png delete mode 100644 gen/ui/buttonTransition.png create mode 100644 gen/ui/fake.png create mode 100644 gen/ui/next.png create mode 100644 gen/ui/previous.png create mode 100644 gen/ui/save.png delete mode 100644 gen/ui/search.gif create mode 100644 gen/ui/transition.png diff --git a/fields/action.py b/fields/action.py index ecdf479..c1db238 100644 --- a/fields/action.py +++ b/fields/action.py @@ -28,20 +28,20 @@ class Action(Field): # PX for viewing the Action button. pxView = pxCell = Px('''
+ value=":label" + style=":'%s; %s' % (url('action', bg=True), buttonWidth)"/>
''') # It is not possible to edit an action, not to search it. diff --git a/fields/ref.py b/fields/ref.py index 9d877b5..bb46894 100644 --- a/fields/ref.py +++ b/fields/ref.py @@ -56,23 +56,26 @@ class Ref(Field): # objects (delete many, unlink many,...) pxGlobalActions = Px(''' - + style=":'%s; %s' % (url('linkMany', bg=True), \ + ztool.getButtonWidth(label))"/> + style=":'%s; %s' % (url(imgName, bg=True), \ + ztool.getButtonWidth(label))"/> + style=":'%s; %s' % (url('deleteMany', bg=True), \ + ztool.getButtonWidth(label))"/> ''') # This PX displays icons for triggering actions on a given referenced object @@ -152,9 +155,10 @@ class Ref(Field): '%d,%s' % (startNumber, q('CreateWithoutForm'))); noFormCall=not field.addConfirm and noFormCall or \ 'askConfirm(%s, %s, %s)' % (q('script'), q(noFormCall), \ - q(addConfirmMsg))" - style=":url('buttonAdd', bg=True)" value=":_('add_ref')" - onclick=":field.noForm and noFormCall or formCall"/>''') + q(addConfirmMsg)); + label=_('add_ref')" + style=":'%s; %s' % (url('add', bg=True), ztool.getButtonWidth(label))" + value=":label" onclick=":field.noForm and noFormCall or formCall"/>''') # This PX displays, in a cell header from a ref table, icons for sorting the # ref field according to the field that corresponds to this column. @@ -215,7 +219,9 @@ class Ref(Field): :field.pxAdd @@ -235,7 +241,7 @@ class Ref(Field): + align=":column.align" var2="refField=column.field"> :_(refField.labelId) :field.pxSortIcons - + ''') def __init__(self, name, transition, obj, mayTrigger, ): diff --git a/gen/layout.py b/gen/layout.py index 140b625..b3d3874 100644 --- a/gen/layout.py +++ b/gen/layout.py @@ -211,15 +211,10 @@ class Table: # Some base layouts to use, for fields and pages ------------------------------- # The default layouts for pages. defaultPageLayouts = { - 'view': Table('w|-b|', align="center"), - 'edit': Table('w|-b|', width=None)} + 'view': Table('w-b'), 'edit': Table('w-b', width=None)} # A layout for pages, containing the page summary. -summaryPageLayouts = {'view': Table('s-w|-b|', align="center"), - 'edit': Table('w|-b|', width=None)} -widePageLayouts = { - 'view': Table('w|-b|', align="center"), - 'edit': Table('w|-b|') -} +summaryPageLayouts = {'view': Table('s-w-b'), 'edit': Table('w-b', width=None)} +widePageLayouts = {'view': Table('w-b'), 'edit': Table('w-b')} centeredPageLayouts = { 'view': Table('w|-b|', align="center"), 'edit': Table('w|-b|', width=None, align='center') diff --git a/gen/mixins/ToolMixin.py b/gen/mixins/ToolMixin.py index a8a960d..aef6be8 100644 --- a/gen/mixins/ToolMixin.py +++ b/gen/mixins/ToolMixin.py @@ -1352,4 +1352,15 @@ class ToolMixin(BaseMixin): "s.parentNode.insertBefore(ga, s);\n" \ "})();\n" % gaId return code + + def getButtonWidth(self, label): + '''Determine button width, in pixels, corresponding to the button + p_label.''' + l = len(label) + if l < 10: + width = '130px' + else: + # Consider 1 char = 6 pixels wide. + width = '%dpx' % (130 + ((l-10)*4)) + return 'width:%s' % width # ------------------------------------------------------------------------------ diff --git a/gen/mixins/__init__.py b/gen/mixins/__init__.py index 3dd8e2d..90d2aec 100644 --- a/gen/mixins/__init__.py +++ b/gen/mixins/__init__.py @@ -855,7 +855,7 @@ class BaseMixin: can't trigger, but for which he needs to know for what reason he can't trigger it; * if p_includeNotShowable is True, it includes transitions for which - show=False. Indeed, because "showability" is only a GUI concern, + show=False. Indeed, because "showability" is only a UI concern, and not a security concern, in some cases it has sense to set includeNotShowable=True, because those transitions are triggerable from a security point of view. diff --git a/gen/ui/action.png b/gen/ui/action.png new file mode 100644 index 0000000000000000000000000000000000000000..e8f3107f0ece7db70cc1478d3f7d5a42a00f533d GIT binary patch literal 566 zcmV-60?GY}P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2i^n} z4>$s8C0 zD_7He8f93mnyjpS(=WHaYTx%6kH^OYwAQFW#Epxmz_QVq3>z$PXZ?`XXYci!k2_i^ z^+!gNA*zrM`*45RVLoY*o=;$VE-z$>TaOz&eEwQ@Ivt`Y`n6&n-5*5}yCKX42RN;L zhJzufknl$zIq1>d*`r<$bh%uXR4O$EpcJQVSlei$!w7-^v%kmf>}Sp-Hpv_35V?Se zOm~1%ylwbs6(ZleROVV-O1>f!6RuRQ;d!1E3I*cv_;i2~9I{n?$5Ob>^;Dhss6**; z3D5H=7K@V2X0dI1x&skm(F(YkZxFRNDV$%#^X}rhuHhjN^;cY&NOYYT9ue zT-TL+KF{BZGyxb42K0J8EXyL9Ok$emY*qd*-#Dv&0_D=KS1?weO#lD@07*qoM6N<$ Eg8f+edjJ3c literal 0 HcmV?d00001 diff --git a/gen/ui/add.png b/gen/ui/add.png new file mode 100644 index 0000000000000000000000000000000000000000..580ef515d71336ab22f28ec347a9b03098c62ce8 GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPggK77>09v7cTiLFx)TT^vI!PA4ZU z5HR@n|Nnd?=7<8%Kh-}4j;5#;R=VZ9n(<-gITPi^#!NS+IB|nODK-)515KyTA8F&X z5&O5d=EwXA^$*)pbsD4(xNI$HILmDy{`Yi5gJea3_=X2v>8qA7?{ZN-x5r_PxW+jj bk!nT;H4kG}xj=Rnpxq3fu6{1-oD!M<;;2rn literal 0 HcmV?d00001 diff --git a/gen/ui/appy.css b/gen/ui/appy.css index 9659ca9..7cdd033 100644 --- a/gen/ui/appy.css +++ b/gen/ui/appy.css @@ -66,9 +66,11 @@ img { border: 0; vertical-align: middle } background-color: #dbdde1; font-weight: bold } .navigate td { padding: 4px 9px } .login { margin: 3px; color: black } -input.button { border-width: 0 !important; color: #666666; height: 24px; - width: 150px; cursor:pointer; font-size: 90%; padding: 1px 0 0 10px; - background-color: transparent !important } +input.button { color: #666666; height: 20px; width: 130px; + cursor:pointer; font-size: 90%; padding-left: 10px; + background-color: white; background-repeat: no-repeat; + background-position: 5% 25%; box-shadow: 2px 2px 2px #888888} +.fakeButton { background-color: #e6e6e6 !important ; cursor:help !important } .buttons { margin-left: 4px } .message { position: absolute; top: -40px; left: 50%; font-size: 90%; width: 600px; border: 1px #F0C36D solid; padding: 6px; diff --git a/gen/ui/buttonAction.png b/gen/ui/buttonAction.png deleted file mode 100644 index 298d49d0bed5fb0253ac2e7b936fb02c1f2a9039..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 669 zcmV;O0%HA%P)Fu_k00001b5ch_0Itp) z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2i*o4 z4>~!q)mf+j00JFJL_t(&-tF2!ixP1d$MNrf92G^^HBB;um9WJrh$dFr4htP5h}hmh z*L@$+r9;shXd!~=1$2!NWnmAo!CFC72cw!&R@b$4*V%D&y40o9qy`1g=QM{o{rK_x zpW#2s^E`x@HBBNAQY`V`&@Ic7vrx=bE|*jK&j(3E%!FlGaukYxV8@cLN8wkkR`Yxn zt9b7d_bW|WI~|6@p(H0}GqJiu#jO__D-XLo-uz0h*JCsqNqS$F|67Cs67X zN-0TH_%9Z=&Fe-V&vsDV4$E^*&cruK1{CL(moQC}d_GS!8kIza|6*x_L$)h#Sad#f zDN!dnYEwL0#57F`g#zhxnouYt6HE9nmQsp^;DD8E1GlwB{^SCtc>}{R$Ye4^A`vuA zZid7J6YJTXC92gbk&D+b41;VoODq;65C}+uV)A08QYp&iGQnVwcs!1->yn(9zF6UK zm`o-kX$jwCITC+wV*UC#ONd!fzu)oIYBjm^6I1&EYqhSHGlt(d00000NkvXXu0mjf Dg#;w} diff --git a/gen/ui/buttonAdd.png b/gen/ui/buttonAdd.png deleted file mode 100644 index b0a08be4f5bf794165f1a285311e374d81363b9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 312 zcmeAS@N?(olHy`uVBq!ia0vp^(|}lJ1ddglcyN!d-+QLeD=!=x+E3{cl5bBJ8@*%{CfQL?=Qa>Z}S#ixfyZTsQj?e zY$ZR%CfCDd5jU!KlSGdH2F`p%w>KTs=q)X;n`-O9~eAc{an^LB{Ts5 DbqjaX diff --git a/gen/ui/buttonCancel.png b/gen/ui/buttonCancel.png deleted file mode 100644 index ebd145c842bc54fb6294d09f706bd3a7a1448528..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 877 zcmV-z1CsoSP)Fu_k00001b5ch_0Itp) z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2i*o4 z4>}EyVXYki00QkvL_t(&-tF5@h>UR@$MN^?_j_h%tlcqYmX<}@1GR1WzYz|Uja-yJ zn>HL)A}bLGCkN$%5)zV#jcpGSDM=ZH$-iy=EAlrc>{vTH^UUnbm}ee`!NFmytb_W# zPEY-w=kn>(@B2Ia9_6|&LJT%75eO-k_-|OzXjEpQ7*sViHOl(_AZds}5sgM=6pDX1 z3J3aP`gs>US38K`zez6HhXOp6egf0x5?Zi~@(Gh9O#whS9Cim(tWO=sczgOF{izK3 zJh*@YRJTq1Z9CmpE--F&D=Exz9Ymw>Xhmq+Eb8~1V0zm%W}Lgu*rpaNU0ibuigzau zk$Uz>QWd3()qSZQa#^&3z|@&c+;x~?lNwOQkbHQT*yWDmNCdP3a+%^cLW)&#$Lfrr z0n6)S%$iM@A>{xh9^B%^&W(JHeLw+K^A}@P_)$QzGa{*q(#6UrdW#1!e}Ia*$;DE2 z-sa`5E##940LHG{PVJ7pnDU{ZAfN1&RK@QP?@EJGptQk$e2>?=w^B&=p$&{)vzh7@ zE#MZ=%Eg%PBT-1PN-g@TLS#RrAZzpS+!1;%w&B{n7z5R-HdDQF0|2R~osf!S40uC9 zNmY~{g~5i|Se8O%ZDMWvaT75-J`Xi5+kTd+kVz9edjRcZuq+tfFh^1qrHeJZaXCYR z!!X*xGA_or1m-j{V(D5aIHVun;r;FnWS&GY+MzrcAh2M$q$)~}LT_yyBUf&s=gc1R z=`<+Fblu?1`gwqh6aS2x&tYj7tFn?%Q!C!uI!RUh{_yT!*o@YYIDdq%eLWO1y}12f z05D3UePww3LHtYBGqkZ;5)}h07C=Q~Gu{bP$V4uadm6#9`ds3;_u#HQZA@N~)#W~AwPAj;Y4pj8>FJlxvXSvO(;MgJl zjn|&Fw7!qn_~^uRi%&CUz8vaOj=%MHVTqJ!q|a*~{-=kv78$+tDodaEs_yic0KGNO zSLl5XnWcC=UPCZU=I5oCy&YUtiK5z5bEdhl&fT!d`Or7^zZ>$7Zr9VwA$Mzi}r73(0%rELf+b^SNbl!3tpHwz54L= R-@p)H@O1TaS?83{1ORKQnGOH| diff --git a/gen/ui/buttonFake.png b/gen/ui/buttonFake.png deleted file mode 100644 index bb31c6adf4360443d0b8e6ce1309efc30ace576f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 773 zcmV+g1N!`lP)Fu_k00001b5ch_0Itp) z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2i*o4 z4>=ss{N5}800M#VfIX}VLR~$C;#t+w`1`uiMrXD<&AGduf7RaJ!$FHK7XLW(8+8D=yZ z$yz90RIAle2B2wzq#<6!I2c(9#a~TRpp2 zryp-QJw4^}@{*gI8vv3dq1kM*wYA0OqLXCB^Jc8W_aEr>dV~;ITwG*nX^E<;@ZNKA zalvRb;?vu=v|q1Cvhuj$Y4Yo@93LN(BnfGnVy#7MO%z2~Yf00TBuO|rIwHURD#=Q* zer>8Pd7c9>KR-{W(_wvm9q&CwQLwSGL8sFpNfMM& zWl68squp-v@H!~VG7b+9@!qqru)t(8Ve;DEtkK)qg{-E)Ny04bI%g^y555k(PN-w!v&pp=@O1JGKdwMHrR-FYE1*3SnS zgL96%yE{S%Y;SLqWf}YX`zWPox7%2284LzQQG|02V~nIL#d@4`j^*WLhQlFo9Ft`k z{eGXbvoiqVIA&*Ohdj?Iih@?Fg>w!lB;o&*8V-lmQ{EN6`&82J_bJN~V+`JV=H})A zX2+_k!WhHu?k;JgCh7i%#=&rYe*X05SZSli=H@2WT8g3|iXxO!vod+_snzbsNU6lL zZiL>fEZ|(mcs%Cn>Wb-fiq@Jqj%hZVtgfy~sl@Y(^)Pd#jn`a!S;Koj+Xb#U*#(L} zDAt2Dr@+bVBpxZ&!^c@dyx6Yr$G>#C-L8D9EdJOxR)FHHYSv?c00000NkvXXu0mjf D1A}7? diff --git a/gen/ui/buttonNext.png b/gen/ui/buttonNext.png deleted file mode 100644 index 714433a992cdddd4f47d29efbe6408557fcca428..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 315 zcmeAS@N?(olHy`uVBq!ia0vp^(|}l-{@VVeN8`m#harv$Fi2P^Opgnsb?d@?NuB5t=g{h5oG$;-7z) zQ)T5ft%mKg$_$B#rkiFKiXRHqRDF7#`Emod@nbC(Yq2nwQ0>Hr_Ud8gCPlksXNvq; zf9R*3ka*4ES?Bm4Ii2Zrjp3-)R?%x|xyswy(edVXoL;;3|G_5 ze^eGOSvW)wqL~}T4~2SZ9=XnZxq;g_S(_zYC#PeT*r7xDYa;Gm@hZM) zZ26=0s_)u6`Qgjh_HTF=*!!G)^5I__I=J2?3W~03x%%9Z@A%{nj`p%2d96oUv)aoa zIc+`9`*}x$>c`vSzic{E*w~MYax3Tvi2eK0^L5`G)(Xz~^)FXwg-_jhOSqNSx+kzY RYCq6J44$rjF6*2UngHpLg9`uv diff --git a/gen/ui/buttonSave.png b/gen/ui/buttonSave.png deleted file mode 100644 index 9896c2ea662fcc6ee24ba1243d7c3cc545638a6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 637 zcmV-@0)qXCP)Fu_k00001b5ch_0Itp) z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2i*o4 z4>vS=%3D|f00I3;L_t(&-tC(|i_}mQ#n0$YMza%U90;QfEQm6#E9-z?K!jznx3RYn z5gS`SfLMt55$v>yolPo*QJ88G9h+qyxU7&2$-ew~?-7gLSy0zZz-%F&Uz0%YyT##f z@5|%9Mo|+ z6$=1vZ#Y;xcYOFxpz-o!bhL($N_#9RCHl6F8;@QC0KCVyev0eczty&jA)RF#w)>)E}V zxcl@CEXzWcWk(h3xIe@=j(I>zsu^ozcmXdSY~ud&x9~gb00000NkvXXu0mjf0y+;Z diff --git a/gen/ui/buttonSearch.png b/gen/ui/buttonSearch.png deleted file mode 100644 index 12f4fb8a7bde8c80637dff79c651299219aad137..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 478 zcmV<40U`d0P)Fu_k00001b5ch_0Itp) z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2i*o4 z4>uJyqe}(=00CY}L_t(&-tF7FOT$1M2k>tm+TsHgQIR124eAtJ9NmhO2)7DOH@Y~x zIA(P{u;L&A2VIIcWpot;?cgCeScDFJkjABoEsC}|gu?f;BpI@N`EtJ_4=2kq5ZUH3 z0%EafWcbDy&O)*(2m;6No-hrv!WhF*NZe!52+>++{vbCbN%DCfh9MKA{417H3f|H> zn)7Qg6RRkdN=%RP6-z0FaBBxEa~_swTr5nw*giaEx#&lK9)(i{7mL##0H8RQV%&3> z9_24qz1is=Gc?*jE9K)a$~g*!5J;}hP<>7D^p@hK-oeGuE~J!9kn*iqLWrI{m6Q@u z6k)@=Msf3)Nz!n|0)RM0iJF$=ImOSJH_fR zSNraqiISaSeJxk=*kYnI_#W%GauHcwv4~hK`oB^5@o^TBEl&SmI$CSKtD)T90V4!u Ut;L^r)Bpeg07*qoM6N<$f=(L81^@s6 diff --git a/gen/ui/buttonTransition.png b/gen/ui/buttonTransition.png deleted file mode 100644 index 966e394709653600bcd9f61533200b51ec9f587b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 691 zcmV;k0!;mhP)Fu_k00001b5ch_0Itp) z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2i*o4 z4>2D1D>VoJ00J{fL_t(&-tC&rYvNE8#ZNxeMxQp=)S!Z^fM7T7I{4qmrMT7#f(D6N zg$^`H6Z7Gl#f+KBv^K&xi(&3>74Ci694_~scXos=!9pX5KWm$-#2*>0IK@_0tI;l$JcdQfR@fbl6yo+x( z8*H~*oOWS@!2q>djZ`Hr^H_?ah(GrjRuOvA~@&Z zoWl=%c%Da!68WR>a5!LZ@8P;`8f!M2Fbo5dDB*ecjM;34IF11T%f%9{RtpWiLCR9c zI*;dhm`o-(9*=3P)9IjGE~9i)f~IL;jHS8tW{t&iL8=m;7gnKAz-{d|6LVcRHS1v* zA`HWf7pqmtyc0R2uv)F+@yjEI!(nxM1BN zNfLBjhh6U!oFJSm)Ob#lna2JME5?Bk~LD^f-$ku7&WsCo)ZwOcL?O Zd;_ZI&;Xe*6?6aq002ovPDHLkV1kIUCz${M diff --git a/gen/ui/cancel.png b/gen/ui/cancel.png index cb7ffc7fddefdcd9b030b0caa0925fb627f6d7be..57357b8935936d86eff0e03a60bf1f8a36b008d6 100644 GIT binary patch delta 738 zcmV<80v-LxBkKh~iBL{Q4GJ0x0000DNk~Le0000G0000G2nGNE03Y-JVE_OC0drDE zLIAGL9O(c600v@9M??Vs0RI60puMM)ks%j<00(qQO+^RZ1QZV(Gy;TQA^-paYe_^w zR5;6}lS@dHVHAd+^L_vCOfx!8qk&zC76oP41;nT}K~l5{x4l`rxKKTvMf8(;gztnjz0{uO zIttk=0Hw=on7#WTk;;`K*3#d0LHn+Mv;v?CCJF*-RYwg(!&@Fv+A3u*xn#$0V9gF<5qqEg5_moKaN1wN22{4noQsZU1m2Nn-CW=X%g33F@6Te zf$7z2CIQoHw=peNiZwotRjgHiqHAiIv87Qc_@uiZY2WDsn(2vSjZY{RCAxmw&xe$} z)2;(oTga!=AYj6!*ibQ`_(NaOd=6A`!X=dLJW9!iI{EFCy}Rw2ym^t);QfAQZLpXp!fJDG*~ U7U!i|Jpcdz07*qoM6N<$g2ky#-v9sr literal 4552 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 E070TliU0rr delta 308 zcmV-40n7e_0_XxEiBL{Q4GJ0x0000DNk~Le0001%0000N2nGNE0O{?vpOGOye*_Bz z8In+BO#lD@=t)FDRA}Dq+p!IUFc5{|BcjU))ZW4y(5Lrg^z;m1$y-3ljX>=*0g)(< zQ0z!S`o9V&t&^W0f-1%+Kxr4201OsRqgGY25JfdjQ`L_PRs%(-Dp3f|SU3^yeLOT+ zy)m*lCn6$?bJ82b>Y>bzHH09Ge{(W~z^b9lVBN-X8?OC5kTqCq^tIML-2>TC*jg*s zuG@wS_@tWWIr1J0rKqY*)0Ez^QcaMCi0mj#H9;C8vZ8Rm8||B5>N#*I3g0zB8X~fz zFx3QUh@chXzoHQMSrh`_s@LrcD0;?v{Y%Gt&!@`Bb_eRyadMp{J-q+`3IG5}MNUMn GLSTYgV}eEi diff --git a/gen/ui/fake.png b/gen/ui/fake.png new file mode 100644 index 0000000000000000000000000000000000000000..594c2009f1b3de08e4f69c560492c7b139eb8200 GIT binary patch literal 657 zcmV;C0&e|@P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2i^n} z5d}1lJa|9=00I$7L_t(I%cYZ1OB+!Tg}=FXvv=1GkqEY^&_1jNd~o$4h<_o!Tp>Zs zgM_#g+9KM*(v%vlyLX%ELz-x)V4?GJhq-eOGlw(s>&r*}CxVxXm1%H0EwwC50GxBY zX+{#ys@Dm|-yU>49&>YZ!~Oj|07;UtwY8=D`}=g-u{`gW=PL|8ebs)yPhHov+ik)y zL{;(LGnq`V)^dD&O!xiUC5c%i`S(Y?xVRum64ErqIfpR@Yc0+>(ljMW63)-h$-h79 z3c=Jk@;nD%ZEcNSuP3{^yLj&@%aXmlJ$k*KBuRpZkmos5RVHk3Gd5Nm($;pWToSmKN zXf&ePY%Vpa>l(206+{GUEym0x34#ETxlW7M7=tke5n1^U7JxX8nayU@bFKG82;FX1oO3!Fjj+}d$1y<=JQ2ikJlWjbY+qkr6GahOmdS89)T^s20HP?;!^1<# z^IXfaWM^lGIF2V!KKbCok4lHbAyrio1OeWA8jZ%>nSW}kN)QAb9UYOjLRs-a+6tx9 z>EN8BEK97lh{zJ;y(bJqI-SlE{Ff6Klic3kGMP-6PNx`Sh@yy%jSaT9w^zU~5-j5L rPgU>zQuTMS$Uk2rFbBlptLOY18O!I-CkT=)00000NkvXXu0mjfUNa)M literal 0 HcmV?d00001 diff --git a/gen/ui/linkMany.png b/gen/ui/linkMany.png index 8b2b1c0b2e3446ba13bd7115532f4ccc6295d088..1082de7ee8af2da25e886e054b0d1a916eb81a2d 100644 GIT binary patch delta 248 zcmV~_tG^!oE;zXBZ yse`u&`uy|ZBERiG!*);umdH=U&iBL{Q4GJ0x0000DNk~Le0001%0000N2nGNE0O{?vpOGOJ2><{9 z008+zyMK{DAb$@LDKs$^!*Boq0LMv0K~!ko?b|^L!Y~v?(L}O>PBU?=&}DRyT|u|; z>016e;>2i(B2*u0;hvGuS-6-tXk#fQ0BQ%00EC6zNbb&E2&tTNOxGWr1|-~_s}O7~ z?1-5a!oqj|v8Htl(>iW`2D}XGcs|`C>Z59(1DnE{hiK&?t~RQ9SU5erH{PGcMO2V% ztTwJ16&nkZjaB2SQL(Wg+gN>6T!&y|;lIM_<02}^!fN9pDoDesaRKtM0K&r0r4a5f lX8|g)|4PTqcvTr6y8yYYOknh7YW@HK002ovPDHLkV1oI?cfQL70(Y)*K0-AbW|YuPggK77+m!!{`0icLIe{JzX3_EKVo? z`TyUZS+$|F(aFGr_d~>~zxIz}UetHRe0ccFj4g@hVAg@Y7wdbDNHtw%1rp{0orWyy z8Rfip{x>!-FyP3jGF)R2b=G4N?`_pgn*{B>`K0WDQL70(Y)*K0-AbW|YuPggK77+n%wi~PRDuF_Yo-U3d7N?W{ z{QqyytlH4o=w#r+(_tb0>wdE4_xep>=KsTAbD!*Fi2U65VttQ_q(e{I95#W~lFJ#j zd%}#lGO7#>fZzd_O;eo0HGw^i9zBXIiv@2APx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2i^n} z4;vbh6T~V200DtXL_t(I%cYY&Yuiv1K#y8ku4N0m2BFPR0$pop4gCWlOX%LEdxns~ zOV<2=kRf!)FUZy|&Xn#gxPgu(B?L-aT3R9*DNi5wJ(MBXMmP-y-{md$op;{-u*$Mz zm3Y94VFT=s&dZBGikC0?G#&69Xgcu7zD>$BTo(`*x96wNUswxVhMP|<8{q4Y34_6a zH_w)PHPd~@R?c z^7p?nBD!iIA{0fzyN^G~^ZZ^wyp3e;K>PV6#l|izm+jw^VtK50}f%Wbs ztyT-q^Jp|0v%!hum?TL!y?TO(&|eEU8g5$Fs_T3M01w-TxEBU300000NkvXXu0mjf Di?r9l literal 0 HcmV?d00001 diff --git a/gen/ui/search.gif b/gen/ui/search.gif deleted file mode 100644 index c08147e80c4ffd61913144ac1c8743fa6d2e201e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 191 zcmZ?wbhEHbPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2i^n} z4>Aw9h`%ZT0013yMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HRA^-&M@dak?_?!z0005x zNklxEM`OY= zObA{4?*7^cTwS73YjE)Xpwl#)jzi$2T86{Ia*ZKg6J`s-YfT zpi-%HO!M12A<8>mulJfHO*~$Y-S$~>>=PWAm`tPyuJow7-ELRCUf%(<|HR|ERLtqy<2jgAGW^fBv61QPI9$gkM$EA@k5NpiqOS zi(`nz>Eu8E|JyUGHgq;RHC%0&&)V}}^4U$tIcDeI{Xfri?7zzH2hW!t7C1Yd?{O)k z@;U>DZBuIx)w^BVdjJU5rFSPvT#QS&zBx6)!|Di!aZ8H+1R3rfPV)kK3jspfsxnOzFQM^=Q3$MMm*Wd4dXM$|myUCe=Lg7k1_e%I1;Lpe*#H0l2>?k&PDHLk FV1gXJdqn^M diff --git a/gen/ui/unlinkManyUp.png b/gen/ui/unlinkManyUp.png index 1bdc8b35eb32dff0a4a76202b5714a853eb14680..7252c23e28b1bcd013e53a79beeb2de75d10cfdd 100644 GIT binary patch delta 203 zcmdnP^qEnyGr-TCmrII^fq{Y7)59eQNDF{42OE%-|NK93qM{h*e+D32uy^_7i4F?& zBK+D)Y2jY(K>1=%7sn8b)5(AS|F>sWZRl)ta!6+8di-y4zC+@j|KjcIgiKmE*Qc?u zu{pIFJiM$^_)SMy(Rs#)EWMuJ{wD-Pm@k+fHd!dq#3r#(O+{t80T6iH$TT+iqMszw xV4!eFKtz9!f!V+QHJqw71t$#o{+?lB5UJHpub#Zwh!<{9 z008+zyMK{DAb$@LDk|VNt=K~!ko?c1>l!!Qs=VJT<`gLcyn8u8M*%m@eB zLT(~(L`(?!AvV0PGPn~D-xYFftpz~s#u0$9a2d(nnT3$bImh&R;4~oN?uQRM2To8q|i)vX{;$4CutTC!uhzs*!jZyWO-r@od zq@x!-pmE1qc5wmhSUBm9MO={YSRY0tI~L}4tRLS2-*+s4uyDFj*e_=RDslWv$IQ5@ ajA @@ -209,7 +211,7 @@ class ToolWrapper(AbstractWrapper): - @@ -521,8 +523,10 @@ class ToolWrapper(AbstractWrapper):


- +

''', template=AbstractWrapper.pxTemplate, hook='content') diff --git a/gen/wrappers/__init__.py b/gen/wrappers/__init__.py index 7427c73..a8b1889 100644 --- a/gen/wrappers/__init__.py +++ b/gen/wrappers/__init__.py @@ -370,7 +370,7 @@ class AbstractWrapper(object): - +
- -
@@ -448,31 +448,36 @@ class AbstractWrapper(object): pageInfo=phaseObj.pagesInfo[page]">
+ - + style=":'%s; %s' % (url('previous', bg=True), buttonWidth)"/> - + var="label=_('object_save')" value=":label" + style=":'%s; %s' % (url('save', bg=True), \ + ztool.getButtonWidth(label))" /> + var="label=_('object_cancel')" value=":label" + style=":'%s; %s' % (url('cancel', bg=True), \ + ztool.getButtonWidth(label))"/> @@ -496,20 +503,23 @@ class AbstractWrapper(object): + onclick=":'onUnlockPage(%s,%s)' % (q(zobj.id), q(page))"/> + + style=":'%s; %s' % (url('next', bg=True), buttonWidth)" + value=":label"/> -