From ba7c8e77e5577a7973b2f73297a51530f1093d4a Mon Sep 17 00:00:00 2001 From: azivner Date: Fri, 30 Nov 2018 17:36:41 +0100 Subject: [PATCH] add support for number precision in promoted attributes, closes #245 --- db/demo.tar | Bin 441856 -> 441856 bytes src/public/javascripts/dialogs/attributes.js | 6 ++++-- src/public/javascripts/services/attributes.js | 10 ++++++++-- src/views/dialogs/attributes.ejs | 5 +++++ 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/db/demo.tar b/db/demo.tar index 43a3a8609d2326375a0058d5e41a08b8172d5089..19f0c0415704a263974a4344b34f13cb8b43d5fb 100644 GIT binary patch delta 8992 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 P=IOOo1vvh5WA*<57|KV9 delta 8782 zcmaJ{d30OVneTnEl-PM*vTtO;1V}>@-u~=hLL|#ttkt$;St5kkmTlRxWLcJE$(<}^ zNWf`I0vC9+16j%;OghcLzgiFUEa z?dnqH1rnh92Y4ye5DiH3pj9naw#=im(bhh;JIKaI{9SN|D#Ae{niaI{SbZjnr8s*O^BgPM}*^hJDspCbV426 z^a(|`_1OA5vYEyfw{uV@eDJ#CVBw%`WHgcPN;?M`mD#cl{4LRN_f^-y-O?iXk%PT# zyJ7XeuU`x3c*tdMZLsEA^ASy;la0ZZZWO;4#)!h00$3pt9}=B%9^ z@WzqPR;ka)^kSDu6#AJ{og9+bj*|J zZyXgYQp5pIUb_VPR#&RF=GOroNoCtDZl@R3Q$-vDH_7 z2*K-)`h5NtU$LkM++|!r3X2^Ljq%apk+iO-*e(M)daEnE9Wx1 z9DOJRHmi}HD9YK$^tFL(LNK*q&*X zj>K!=`AE%75jj;z(ZOImn;c7ryp4TDUAt|?&puzYQaukWQjc#s2-IVH+5jzu?cGC` zp@3Cj+`SRic=heC&?&1s7H!Cn`(2|!?KnJqXQf(yU>{gG(BiX48Ao6|9EST>Uah`%P(h_^ zsCU9H4fk~Oy?I^c;XCg#I9Y2B+YSu@n0~-|kFQEuR|%|e|C_b2_pqNH&br128XU<9 zWKq4s|NQWO0Xo!fL(D`^Z+1jmh3oIRNPa(6*Layn0DcdKX(DG%oR(nQy?x{tnhI~;`>=@)2DoU! z=^GnxwItO8-|{0@aG{*l)9s0f!JsbgjR)&s(=Te_vZ zTSK|wj?BoIg&B}^$9W%eA|tX+!7j9>3lr@Y_2jYBfFA3Pd3rhvF0nV1(#@JW5eIZ{ z^RQhA+gYp4`B+2##O>E56?;L#B}{?S6Rf+tS@1MTrfYz}K;(q)hOG(^tUS?>5m~!5td)1Vn!@omRu&MMjHt7sq^Zzsr{A+I6Jo z&uj#=JJlPNA}wu>(T1qLTJ;!*MvBa!v!gi~iF6IM>Z>~+M-|O#Y0Nq-LcF=(GoT*- zm-_&1D@MmMec5=>=IciT#B;=gy6A}vpa&wpNKc$g=iKgAUC&3JM3!odwM+!Z;|*NV zKCWBJR{EHthw~Osu$UNZ1e}HNaJE5iX&9&7s6YfK0rq$FXM8K$sLLD3HAKb zHHddt$dmPUdBu3^fIiTCbfgk~r;39|X*1mW?Bn#rXuiWU92y?<|W}dU)Z;3b^S^9gO|xHWFCN zfE(YMuU1bTLwQM{>-1wZiH;U`{BITX*R6*?t6dE*y%d5+;#KhJ2hiU?TnCTWFM+kN ziq!7pPma?Xm<|NJCBAwFbWU=0Y|78cHqPAD2VJ4)6Tk zy6SpD*Qq)ieCC05@aT){;i2DMQC&}j!O5T4;EC5S%;kNtzY3mvV<(-9S&G?6Ua))Q zmdo6?!CU@w0X+8R9&%HoedAltQzS8s_RjZe;2+*ys5bqAHz=i9$msoPlQzL)^-Je^ zUi)CEuL@rJ|nL0*yEL6Q^aE z&Mi=w#h@1M|FDUiB{W{|ez+RYeT8PZv(p*y7LqwMim!)(|5>Z{*&=^SDMr_F_-orq}OM1qBvR z#C)M0+y-~;U8W3FfF4@zp0F39&WNkiYuAuVf2;rq8oxB?UnouU!CmxlD3MOcAtBj^ zP9ry!K9~=X)||_0wFSnxc&{MnAiu2yi$9N_C0dNNr!3j-Lab1lqQP~acc|AV^Zw2e zwmp*ObhMw=f@OcpGHCuzx;mXqN7xqD4?nS3;~(VwfzEh1op0&ZnsF0M{F-RO50akM z6mMM)9so4ski`*4wxKQ37S?(|$-ELA0Cc`6JDt)0-{T0_fTxu)Sl2acdzt z+KVP-1oHA4@UmfY(>md$k86|<)`DAz`*f*e9XK=Z?hTgv>%pNV_(h!)IJSIIFM%ty zn=^h9FL^eC?PlT&RuK6OUlR4JeF-=K4V3DyfIY++UXZz2)Gc6g90!T7+x@9*uWhWafoLm5$8Gy z$ZbKCX1Cqo8lYU;3VMk%q9|hOx`6>g7FooyYz;TkRdKun7$xQd*WfsuAh0u!Dkb1I zn1mBV8Br-)Y}zD2gGo4vWsy4NLlFZ8D~b#7 zBO^g`ahjA^%%GDbu$T|Z0%=9)2c3jKUPmkwADAOh5RC#i4TBy6Lg0B!_v9Qu$O7id zBoKk(>NjsyVjQSn!H^GJ$k;rl|EPfu$LqeBwc|9_a>bJe+X+sxC}aAM8$(oc@iFet>a=#dbYqy;-g)hO0`fs@cmWOz*GePD7vvCW{Qnx&Kk z$S_x&0&5i8F<>VSa*RZH6&-BqGT)%YP8cFl78$H&odjM$+~7;mZv%#~8YhWbJWX2- z0&wa6Q=~0;R+cd5J_;t+64V4i#&mcA2tX144utSC2tjjh*)uN~J%dUDCSf|~Uo@65 zQIIgrUN!^>s^?k@D2sSoGv$|mPR1B33wXN!hY>;|s^HszMO83w=9JiGgOM4OIJhjb z6e5eVSSY(F2Piq;0anuN9Lr#b-ZOCFP@S0B*1Yo6Z@?iEfI)_zjh*)m0IbC0k>>zQ zfwJsRAV;_b={qB&1kRW?g3{IJK_A(EP#46U^Jk+R)CI9rm~N#1XXt_`LNJKG7_x~K zSZ%xPIt}8!YKm;dvW#~HKp9%G#Nw%4P1ONqk(nwI%JMv(8S{-0oL+y*B&w<9Kv_Xk zV@XQhS-IgE(cpyoMLQToqDP&Ks(D2ts` zfq-CnZN@1Z%w>e&c>$}`e+C>V@jfa{73&T`0pShVlh-T-eA% zWbtWl8e^vsL*Vdv?N$R14moAUv5x}X`90JZHp@OE1k2#@bH;??Cr(WgGc?DbnmcRt z5hDbLeoQMHTq|J*Gt|M%yn~sFr!uBP+i>5oD1R}VoG}^FTV$CTyXwEgDHUf;R}c>y z%2&>sc;anDNt`ut#LI(nT3f+i8%pn=H9bs@!UD@-NZ$nQurAZ%;;CnnT+_*G`SGpMok+ZPV`F^{)STWd}`XhocKbL@wt16nY11HF%=)G zJ~UlVm6#RgXeEIm6Gcgvia(E(JoV=7b;K7)Dwh0Dnyv&&yxXEf1-l_w4MWwlaQ zt_^N1ngU(!X2x0#;M6~x>;4~C*97eV diff --git a/src/public/javascripts/dialogs/attributes.js b/src/public/javascripts/dialogs/attributes.js index dde933b04..b742829df 100644 --- a/src/public/javascripts/dialogs/attributes.js +++ b/src/public/javascripts/dialogs/attributes.js @@ -67,7 +67,8 @@ function AttributesModel() { attr.labelDefinition = (attr.type === 'label-definition' && attr.value) ? attr.value : { labelType: "text", multiplicityType: "singlevalue", - isPromoted: true + isPromoted: true, + numberPrecision: 0 }; attr.relationDefinition = (attr.type === 'relation-definition' && attr.value) ? attr.value : { @@ -187,7 +188,8 @@ function AttributesModel() { labelDefinition: { labelType: "text", multiplicityType: "singlevalue", - isPromoted: true + isPromoted: true, + numberPrecision: 0 }, relationDefinition: { multiplicityType: "singlevalue", diff --git a/src/public/javascripts/services/attributes.js b/src/public/javascripts/services/attributes.js index 893e73a5c..3b184a917 100644 --- a/src/public/javascripts/services/attributes.js +++ b/src/public/javascripts/services/attributes.js @@ -3,9 +3,7 @@ import utils from "./utils.js"; import messagingService from "./messaging.js"; import treeUtils from "./tree_utils.js"; import noteAutocompleteService from "./note_autocomplete.js"; -import treeService from "./tree.js"; import linkService from "./link.js"; -import infoService from "./info.js"; import noteDetailService from "./note_detail.js"; const $attributeList = $("#attribute-list"); @@ -163,6 +161,14 @@ async function createPromotedAttributeRow(definitionAttr, valueAttr) { } else if (definition.labelType === 'number') { $input.prop("type", "number"); + + let step = 1; + + for (let i = 0; i < (definition.numberPrecision || 0) && i < 10; i++) { + step /= 10; + } + + $input.prop("step", step); } else if (definition.labelType === 'boolean') { $input.prop("type", "checkbox"); diff --git a/src/views/dialogs/attributes.ejs b/src/views/dialogs/attributes.ejs index 8d91ea044..204d1d594 100644 --- a/src/views/dialogs/attributes.ejs +++ b/src/views/dialogs/attributes.ejs @@ -64,6 +64,11 @@ data-bind="checked: labelDefinition.isPromoted"/> Promoted + +
+ Number precision: +