Built files from Bizgaze WebServer
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

index.reportviewer.js 1.4MB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245142461424714248142491425014251142521425314254142551425614257142581425914260142611426214263142641426514266142671426814269142701427114272142731427414275142761427714278142791428014281142821428314284142851428614287142881428914290142911429214293142941429514296142971429814299143001430114302143031430414305143061430714308143091431014311143121431314314143151431614317143181431914320143211432214323143241432514326143271432814329143301433114332143331433414335143361433714338143391434014341143421434314344143451434614347143481434914350143511435214353143541435514356143571435814359143601436114362143631436414365143661436714368143691437014371143721437314374143751437614377143781437914380143811438214383143841438514386143871438814389143901439114392143931439414395143961439714398143991440014401144021440314404144051440614407144081440914410144111441214413144141441514416144171441814419144201442114422144231442414425144261442714428144291443014431144321443314434144351443614437144381443914440144411444214443144441444514446144471444814449144501445114452144531445414455144561445714458144591446014461144621446314464144651446614467144681446914470144711447214473144741447514476144771447814479144801448114482144831448414485144861448714488144891449014491144921449314494144951449614497144981449914500145011450214503145041450514506145071450814509145101451114512145131451414515145161451714518145191452014521145221452314524145251452614527145281452914530145311453214533145341453514536145371453814539145401454114542145431454414545145461454714548145491455014551145521455314554145551455614557145581455914560145611456214563145641456514566145671456814569145701457114572145731457414575145761457714578145791458014581145821458314584145851458614587145881458914590145911459214593145941459514596145971459814599146001460114602146031460414605146061460714608146091461014611146121461314614146151461614617146181461914620146211462214623146241462514626146271462814629146301463114632146331463414635146361463714638146391464014641146421464314644146451464614647146481464914650146511465214653146541465514656146571465814659146601466114662146631466414665146661466714668146691467014671146721467314674146751467614677146781467914680146811468214683146841468514686146871468814689146901469114692146931469414695146961469714698146991470014701147021470314704147051470614707147081470914710147111471214713147141471514716147171471814719147201472114722147231472414725147261472714728147291473014731147321473314734147351473614737147381473914740147411474214743147441474514746147471474814749147501475114752147531475414755147561475714758147591476014761147621476314764147651476614767147681476914770147711477214773147741477514776147771477814779147801478114782147831478414785147861478714788147891479014791147921479314794147951479614797147981479914800148011480214803148041480514806148071480814809148101481114812148131481414815148161481714818148191482014821148221482314824148251482614827148281482914830148311483214833148341483514836148371483814839148401484114842148431484414845148461484714848148491485014851148521485314854148551485614857148581485914860148611486214863148641486514866148671486814869148701487114872148731487414875148761487714878148791488014881148821488314884148851488614887148881488914890148911489214893148941489514896148971489814899149001490114902149031490414905149061490714908149091491014911149121491314914149151491614917149181491914920149211492214923149241492514926149271492814929149301493114932149331493414935149361493714938149391494014941149421494314944149451494614947149481494914950149511495214953149541495514956149571495814959149601496114962149631496414965149661496714968149691497014971149721497314974149751497614977149781497914980149811498214983149841498514986149871498814989149901499114992149931499414995149961499714998149991500015001150021500315004150051500615007150081500915010150111501215013150141501515016150171501815019150201502115022150231502415025150261502715028150291503015031150321503315034150351503615037150381503915040150411504215043150441504515046150471504815049150501505115052150531505415055150561505715058150591506015061150621506315064150651506615067150681506915070150711507215073150741507515076150771507815079150801508115082150831508415085150861508715088150891509015091150921509315094150951509615097150981509915100151011510215103151041510515106151071510815109151101511115112151131511415115151161511715118151191512015121151221512315124151251512615127151281512915130151311513215133151341513515136151371513815139151401514115142151431514415145151461514715148151491515015151151521515315154151551515615157151581515915160151611516215163151641516515166151671516815169151701517115172151731517415175151761517715178151791518015181151821518315184151851518615187151881518915190151911519215193151941519515196151971519815199152001520115202152031520415205152061520715208152091521015211152121521315214152151521615217152181521915220152211522215223152241522515226152271522815229152301523115232152331523415235152361523715238152391524015241152421524315244152451524615247152481524915250152511525215253152541525515256152571525815259152601526115262152631526415265152661526715268152691527015271152721527315274152751527615277152781527915280152811528215283152841528515286152871528815289152901529115292152931529415295152961529715298152991530015301153021530315304153051530615307153081530915310153111531215313153141531515316153171531815319153201532115322153231532415325153261532715328153291533015331153321533315334153351533615337153381533915340153411534215343153441534515346153471534815349153501535115352153531535415355153561535715358153591536015361153621536315364153651536615367153681536915370153711537215373153741537515376153771537815379153801538115382153831538415385153861538715388153891539015391153921539315394153951539615397153981539915400154011540215403154041540515406154071540815409154101541115412154131541415415154161541715418154191542015421154221542315424154251542615427154281542915430154311543215433154341543515436154371543815439154401544115442154431544415445154461544715448154491545015451154521545315454154551545615457154581545915460154611546215463154641546515466154671546815469154701547115472154731547415475154761547715478154791548015481154821548315484154851548615487154881548915490154911549215493154941549515496154971549815499155001550115502155031550415505155061550715508155091551015511155121551315514155151551615517155181551915520155211552215523155241552515526155271552815529155301553115532155331553415535155361553715538155391554015541155421554315544155451554615547155481554915550155511555215553155541555515556155571555815559155601556115562155631556415565155661556715568155691557015571155721557315574155751557615577155781557915580155811558215583155841558515586155871558815589155901559115592155931559415595155961559715598155991560015601156021560315604156051560615607156081560915610156111561215613156141561515616156171561815619156201562115622156231562415625156261562715628156291563015631156321563315634156351563615637156381563915640156411564215643156441564515646156471564815649156501565115652156531565415655156561565715658156591566015661156621566315664156651566615667156681566915670156711567215673156741567515676156771567815679156801568115682156831568415685156861568715688156891569015691156921569315694156951569615697156981569915700157011570215703157041570515706157071570815709157101571115712157131571415715157161571715718157191572015721157221572315724157251572615727157281572915730157311573215733157341573515736157371573815739157401574115742157431574415745157461574715748157491575015751157521575315754157551575615757157581575915760157611576215763157641576515766157671576815769157701577115772157731577415775157761577715778157791578015781157821578315784157851578615787157881578915790157911579215793157941579515796157971579815799158001580115802158031580415805158061580715808158091581015811158121581315814158151581615817158181581915820158211582215823158241582515826158271582815829158301583115832158331583415835158361583715838158391584015841158421584315844158451584615847158481584915850158511585215853158541585515856158571585815859158601586115862158631586415865158661586715868158691587015871158721587315874158751587615877158781587915880158811588215883158841588515886158871588815889158901589115892158931589415895158961589715898158991590015901159021590315904159051590615907159081590915910159111591215913159141591515916159171591815919159201592115922159231592415925159261592715928159291593015931159321593315934159351593615937159381593915940159411594215943159441594515946159471594815949159501595115952159531595415955159561595715958159591596015961159621596315964159651596615967159681596915970159711597215973159741597515976159771597815979159801598115982159831598415985159861598715988159891599015991159921599315994159951599615997159981599916000160011600216003160041600516006160071600816009160101601116012160131601416015160161601716018160191602016021160221602316024160251602616027160281602916030160311603216033160341603516036160371603816039160401604116042160431604416045160461604716048160491605016051160521605316054160551605616057160581605916060160611606216063160641606516066160671606816069160701607116072160731607416075160761607716078160791608016081160821608316084160851608616087160881608916090160911609216093160941609516096160971609816099161001610116102161031610416105161061610716108161091611016111161121611316114161151611616117161181611916120161211612216123161241612516126161271612816129161301613116132161331613416135161361613716138161391614016141161421614316144161451614616147161481614916150161511615216153161541615516156161571615816159161601616116162161631616416165161661616716168161691617016171161721617316174161751617616177161781617916180161811618216183161841618516186161871618816189161901619116192161931619416195161961619716198161991620016201162021620316204162051620616207162081620916210162111621216213162141621516216162171621816219162201622116222162231622416225162261622716228162291623016231162321623316234162351623616237162381623916240162411624216243162441624516246162471624816249162501625116252162531625416255162561625716258162591626016261162621626316264162651626616267162681626916270162711627216273162741627516276162771627816279162801628116282162831628416285162861628716288162891629016291162921629316294162951629616297162981629916300163011630216303163041630516306163071630816309163101631116312163131631416315163161631716318163191632016321163221632316324163251632616327163281632916330163311633216333163341633516336163371633816339163401634116342163431634416345163461634716348163491635016351163521635316354163551635616357163581635916360163611636216363163641636516366163671636816369163701637116372163731637416375163761637716378163791638016381163821638316384163851638616387163881638916390163911639216393163941639516396163971639816399164001640116402164031640416405164061640716408164091641016411164121641316414164151641616417164181641916420164211642216423164241642516426164271642816429164301643116432164331643416435164361643716438164391644016441164421644316444164451644616447164481644916450164511645216453164541645516456164571645816459164601646116462164631646416465164661646716468164691647016471164721647316474164751647616477164781647916480164811648216483164841648516486164871648816489164901649116492164931649416495164961649716498164991650016501165021650316504165051650616507165081650916510165111651216513165141651516516165171651816519165201652116522165231652416525165261652716528165291653016531165321653316534165351653616537165381653916540165411654216543165441654516546165471654816549165501655116552165531655416555165561655716558165591656016561165621656316564165651656616567165681656916570165711657216573165741657516576165771657816579165801658116582165831658416585165861658716588165891659016591165921659316594165951659616597165981659916600166011660216603166041660516606166071660816609166101661116612166131661416615166161661716618166191662016621166221662316624166251662616627166281662916630166311663216633166341663516636166371663816639166401664116642166431664416645166461664716648166491665016651166521665316654166551665616657166581665916660166611666216663166641666516666166671666816669166701667116672166731667416675166761667716678166791668016681166821668316684166851668616687166881668916690166911669216693166941669516696166971669816699167001670116702167031670416705167061670716708167091671016711167121671316714167151671616717167181671916720167211672216723167241672516726167271672816729167301673116732167331673416735167361673716738167391674016741167421674316744167451674616747167481674916750167511675216753167541675516756167571675816759167601676116762167631676416765167661676716768167691677016771167721677316774167751677616777167781677916780167811678216783167841678516786167871678816789167901679116792167931679416795167961679716798167991680016801168021680316804168051680616807168081680916810168111681216813168141681516816168171681816819168201682116822168231682416825168261682716828168291683016831168321683316834168351683616837168381683916840168411684216843168441684516846168471684816849168501685116852168531685416855168561685716858168591686016861168621686316864168651686616867168681686916870168711687216873168741687516876168771687816879168801688116882168831688416885168861688716888168891689016891168921689316894168951689616897168981689916900169011690216903169041690516906169071690816909169101691116912169131691416915169161691716918169191692016921169221692316924169251692616927169281692916930169311693216933169341693516936169371693816939169401694116942169431694416945169461694716948169491695016951169521695316954169551695616957169581695916960169611696216963169641696516966169671696816969169701697116972169731697416975169761697716978169791698016981169821698316984169851698616987169881698916990169911699216993169941699516996169971699816999170001700117002170031700417005170061700717008170091701017011170121701317014170151701617017170181701917020170211702217023170241702517026170271702817029170301703117032170331703417035170361703717038170391704017041170421704317044170451704617047170481704917050170511705217053170541705517056170571705817059170601706117062170631706417065170661706717068170691707017071170721707317074170751707617077170781707917080170811708217083170841708517086170871708817089170901709117092170931709417095170961709717098170991710017101171021710317104171051710617107171081710917110171111711217113171141711517116171171711817119171201712117122171231712417125171261712717128171291713017131171321713317134171351713617137171381713917140171411714217143171441714517146171471714817149171501715117152171531715417155171561715717158171591716017161171621716317164171651716617167171681716917170171711717217173171741717517176171771717817179171801718117182171831718417185171861718717188171891719017191171921719317194171951719617197171981719917200172011720217203172041720517206172071720817209172101721117212172131721417215172161721717218172191722017221172221722317224172251722617227172281722917230172311723217233172341723517236172371723817239172401724117242172431724417245172461724717248172491725017251172521725317254172551725617257172581725917260172611726217263172641726517266172671726817269172701727117272172731727417275172761727717278172791728017281172821728317284172851728617287172881728917290172911729217293172941729517296172971729817299173001730117302173031730417305173061730717308173091731017311173121731317314173151731617317173181731917320173211732217323173241732517326173271732817329173301733117332173331733417335173361733717338173391734017341173421734317344173451734617347173481734917350173511735217353173541735517356173571735817359173601736117362173631736417365173661736717368173691737017371173721737317374173751737617377173781737917380173811738217383173841738517386173871738817389173901739117392173931739417395173961739717398173991740017401174021740317404174051740617407174081740917410174111741217413174141741517416174171741817419174201742117422174231742417425174261742717428174291743017431174321743317434174351743617437174381743917440174411744217443174441744517446174471744817449174501745117452174531745417455174561745717458174591746017461174621746317464174651746617467174681746917470174711747217473174741747517476174771747817479174801748117482174831748417485174861748717488174891749017491174921749317494174951749617497174981749917500175011750217503175041750517506175071750817509175101751117512175131751417515175161751717518175191752017521175221752317524175251752617527175281752917530175311753217533175341753517536175371753817539175401754117542175431754417545175461754717548175491755017551175521755317554175551755617557175581755917560175611756217563175641756517566175671756817569175701757117572175731757417575175761757717578175791758017581175821758317584175851758617587175881758917590175911759217593175941759517596175971759817599176001760117602176031760417605176061760717608176091761017611176121761317614176151761617617176181761917620176211762217623176241762517626176271762817629176301763117632176331763417635176361763717638176391764017641176421764317644176451764617647176481764917650176511765217653176541765517656176571765817659176601766117662176631766417665176661766717668176691767017671176721767317674176751767617677176781767917680176811768217683176841768517686176871768817689176901769117692176931769417695176961769717698176991770017701177021770317704177051770617707177081770917710177111771217713177141771517716177171771817719177201772117722177231772417725177261772717728177291773017731177321773317734177351773617737177381773917740177411774217743177441774517746177471774817749177501775117752177531775417755177561775717758177591776017761177621776317764177651776617767177681776917770177711777217773177741777517776177771777817779177801778117782177831778417785177861778717788177891779017791177921779317794177951779617797177981779917800178011780217803178041780517806178071780817809178101781117812178131781417815178161781717818178191782017821178221782317824178251782617827178281782917830178311783217833178341783517836178371783817839178401784117842178431784417845178461784717848178491785017851178521785317854178551785617857178581785917860178611786217863178641786517866178671786817869178701787117872178731787417875178761787717878178791788017881178821788317884178851788617887178881788917890178911789217893178941789517896178971789817899179001790117902179031790417905179061790717908179091791017911179121791317914179151791617917179181791917920179211792217923179241792517926179271792817929179301793117932179331793417935179361793717938179391794017941179421794317944179451794617947179481794917950179511795217953179541795517956179571795817959179601796117962179631796417965179661796717968179691797017971179721797317974179751797617977179781797917980179811798217983179841798517986179871798817989179901799117992179931799417995179961799717998179991800018001180021800318004180051800618007180081800918010180111801218013180141801518016180171801818019180201802118022180231802418025180261802718028180291803018031180321803318034180351803618037180381803918040180411804218043180441804518046180471804818049180501805118052180531805418055180561805718058180591806018061180621806318064180651806618067180681806918070180711807218073180741807518076180771807818079180801808118082180831808418085180861808718088180891809018091180921809318094180951809618097180981809918100181011810218103181041810518106181071810818109181101811118112181131811418115181161811718118181191812018121181221812318124181251812618127181281812918130181311813218133181341813518136181371813818139181401814118142181431814418145181461814718148181491815018151181521815318154181551815618157181581815918160181611816218163181641816518166181671816818169181701817118172181731817418175181761817718178181791818018181181821818318184181851818618187181881818918190181911819218193181941819518196181971819818199182001820118202182031820418205182061820718208182091821018211182121821318214182151821618217182181821918220182211822218223182241822518226182271822818229182301823118232182331823418235182361823718238182391824018241182421824318244182451824618247182481824918250182511825218253182541825518256182571825818259182601826118262182631826418265182661826718268182691827018271182721827318274182751827618277182781827918280182811828218283182841828518286182871828818289182901829118292
  1. var Unibase;
  2. (function (Unibase) {
  3. let Platform;
  4. (function (Platform) {
  5. let Analytics;
  6. (function (Analytics) {
  7. let Charts;
  8. (function (Charts) {
  9. class ChartBuilderVariables {
  10. static Instance() {
  11. if (this.instance === undefined) {
  12. this.instance = new ChartBuilderVariables();
  13. }
  14. return this.instance;
  15. }
  16. }
  17. Charts.ChartBuilderVariables = ChartBuilderVariables;
  18. })(Charts = Analytics.Charts || (Analytics.Charts = {}));
  19. })(Analytics = Platform.Analytics || (Platform.Analytics = {}));
  20. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  21. })(Unibase || (Unibase = {}));
  22. class DataList {
  23. }
  24. class ViewerTypesModel {
  25. }
  26. class TemplateModel {
  27. }
  28. class CalendarModel {
  29. }
  30. class MapModel {
  31. }
  32. class CardModel {
  33. }
  34. class DataListColumns {
  35. }
  36. class PaginationObject {
  37. constructor() {
  38. this.last_page = 0;
  39. }
  40. }
  41. class ReportObject {
  42. constructor() {
  43. this.Filter = [];
  44. this.ReportColumns = [];
  45. this.LinkSubReport = false;
  46. }
  47. }
  48. class ReportHeader {
  49. }
  50. class ReportColumn {
  51. }
  52. class DynamicFilter {
  53. constructor() {
  54. this.CascadingFilters = [];
  55. }
  56. }
  57. class CommonFilter {
  58. }
  59. class CommonFilterColumn {
  60. }
  61. class ChartColumn {
  62. }
  63. class ReportModel {
  64. }
  65. class SubreportModel {
  66. }
  67. class Condtion {
  68. }
  69. class Rules {
  70. }
  71. class Report {
  72. constructor() {
  73. this.Filter = [];
  74. this.InputParameters = [];
  75. this.DateFilter = [];
  76. this.DynamicParameters = [];
  77. }
  78. }
  79. class HiddenParameters {
  80. }
  81. class AutocompleteFilter {
  82. }
  83. class DateFilter {
  84. }
  85. class NestedTableModel {
  86. }
  87. class DynamicFilterModel {
  88. }
  89. class SelectedColumns {
  90. }
  91. class PivotColumns {
  92. }
  93. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
  94. function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  95. return new (P || (P = Promise))(function (resolve, reject) {
  96. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  97. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  98. function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
  99. step((generator = generator.apply(thisArg, _arguments || [])).next());
  100. });
  101. };
  102. var Unibase;
  103. (function (Unibase) {
  104. let Platform;
  105. (function (Platform) {
  106. let Analytics;
  107. (function (Analytics) {
  108. let Reports;
  109. (function (Reports) {
  110. class Tenure extends Platform.Core.BaseComponent {
  111. constructor() {
  112. super();
  113. this.TenureTableData = [];
  114. this.TenureReportColumns = [];
  115. this.TenureInterval = "";
  116. this.reportManager = Analytics.Managers.ReportManager.Instance();
  117. }
  118. jsFiles() {
  119. return ["platform/analytics/components/mapviewer/mapviewer.settings.js"];
  120. }
  121. cssFiles() {
  122. return [];
  123. }
  124. html(id, containerid) {
  125. var html = `<div class="b-b bg-white modal-header"><strong class="text-dark" id="TenureTableHeader` + containerid + `"> </strong></div><div class="` + containerid + `-TenureTable-canvas" id="table-canvan"></div><div class="footer bg-white"><button id="btn-tenure-report-close" class="btn-tenureReport-close btn btn-secondary btn-sm mr-auto">Close</button></div>`;
  126. return html;
  127. }
  128. load(id, containerid, callback) {
  129. var instance = this;
  130. $("#btn-tenure-report-close").click(function () {
  131. $('#' + containerid).modal('hide');
  132. $('#' + containerid).remove();
  133. });
  134. $("#TenureTableHeader" + containerid).html(Unibase.Platform.Analytics.Reports.Tenure.Instance().TenureInterval);
  135. var autoNumFormatter = function (cell) {
  136. var row = cell.getRow();
  137. var rowIndex = row.getPosition(false);
  138. return (rowIndex + 1);
  139. };
  140. let serviceurl = "apis/v4/unibase/platform/analytics/tabledata";
  141. serviceurl = _appsettings.server_url() + (serviceurl.startsWith('/') ? serviceurl : ('/' + serviceurl));
  142. instance.TenureTable = new Tabulator("." + containerid + "-TenureTable-canvas", {
  143. columns: [
  144. { title: "", formatter: autoNumFormatter, frozen: true, minWidth: 40, width: 40 },
  145. { title: "LastColumn", field: "LastColumn", visible: false, headerSort: false }
  146. ],
  147. layout: "fitColumns",
  148. movableColumns: true,
  149. placeholder: "No data available",
  150. });
  151. if ($(".tabulator-placeholder span").text() == "No data available") {
  152. $(".tabulator-placeholder").css('width', '');
  153. }
  154. var height = $(window).height() - 100 + "px";
  155. instance.TenureTable.setHeight(height);
  156. instance.TenureTable.setColumns(instance.TenureReportColumns);
  157. instance.TenureTable.setData(instance.TenureTableData);
  158. return instance.TenureTable;
  159. }
  160. tenureDetailsTable(TimeInterval) {
  161. Unibase.Platform.Analytics.Reports.Tenure.Instance().TenureReportColumns = [];
  162. var instance = Unibase.Platform.Analytics.Reports.ReportBuilder.Instance();
  163. if (instance.TenureReport.length != 0) {
  164. var autoNumFormatter = function (cell) {
  165. var row = cell.getRow();
  166. var rowIndex = row.getPosition(false);
  167. return (rowIndex + 1);
  168. };
  169. Unibase.Platform.Analytics.Reports.Tenure.Instance().TenureReportColumns.push({ title: "", formatter: autoNumFormatter, frozen: true, minWidth: 50, width: 50 });
  170. let repObj = new ReportObject();
  171. let pivotCol = instance.pivot.ColumnName;
  172. repObj.DataListId = Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().DataListId;
  173. repObj.Interval = TimeInterval;
  174. repObj.StaticFilter = instance.queryBuilderString;
  175. if (instance.selectedColumns.length > 0) {
  176. for (var i = 0; i < instance.selectedColumns.length; i++) {
  177. let col = new ReportColumn();
  178. col.ColumnValue = Number(instance.selectedColumns[i]["ColumnId"]);
  179. col.ReportColumnName = instance.selectedColumns[i]["ColumnName"];
  180. col.AliasName = instance.selectedColumns[i]["AliasName"];
  181. col.DisplayText = instance.selectedColumns[i]["DisplayText"];
  182. col.DataType = instance.selectedColumns[i]["DataType"];
  183. col.AggrFuncId = Reports.Enums.AggregationType.none;
  184. col.SortType = instance.selectedColumns[i]["SortOrder"];
  185. col.GroupBy = instance.selectedColumns[i]["GroupBy"];
  186. col.IsPivotAggrColumn = false;
  187. col.IsPivotColumn = false;
  188. col.IsPivotRow = false;
  189. col.IsPivotRowSelected = false;
  190. col.IsPivotParentColumn = false;
  191. col.IsPivotChildColumn = false;
  192. col.PivotValue = 0;
  193. col.PivotValueSelected = isNaN(instance.pivot.PivotValue_Selected) ? 0 : instance.pivot.PivotValue_Selected;
  194. col.PivotDateType = isNaN(instance.pivot.DateType) ? 0 : instance.pivot.DateType;
  195. col.TimeInterval = "";
  196. col.ColumnFormat = instance.selectedColumns[i]["ColumnFormat"];
  197. col.YearComparisonType = instance.selectedColumns[i]["YearComparisonType"] == undefined ? 0 : instance.selectedColumns[i]["YearComparisonType"];
  198. if (pivotCol == col.ReportColumnName) {
  199. col.IsPivotColumn = true;
  200. }
  201. repObj.ReportColumns.push(col);
  202. Unibase.Platform.Analytics.Reports.Tenure.Instance().TenureReportColumns.push({ title: col.DisplayText, field: col.ReportColumnName });
  203. }
  204. }
  205. instance.reportManager.getTableData(repObj).then(function (response) {
  206. let res = JSON.parse(response.result);
  207. Unibase.Platform.Analytics.Reports.Tenure.Instance().TenureTableData = JSON.parse(res.Data);
  208. Unibase.Platform.Analytics.Reports.Tenure.Instance().TenureInterval = TimeInterval;
  209. instance.navigationHelper.popup(0, '', Unibase.Platform.Analytics.Reports.Tenure.Instance(), null, Platform.Helpers.Size.Medium);
  210. });
  211. }
  212. }
  213. tenureViewerDetails(TimeInterval) {
  214. var instance = this;
  215. instance.TenureReportColumns = [];
  216. var autoNumFormatter = function (cell) {
  217. var row = cell.getRow();
  218. var rowIndex = row.getPosition(false);
  219. return (rowIndex + 1);
  220. };
  221. instance.TenureReportColumns.push({ title: "", formatter: autoNumFormatter, frozen: true, minWidth: 50, width: 50 });
  222. let repObj = new ReportObject();
  223. instance.reportManager.getReportById(instance.ReportId).then(function (response) {
  224. var res = response.result;
  225. repObj.DataListId = res.DataListId;
  226. repObj.Interval = TimeInterval;
  227. repObj.StaticFilter = res.StaticFilter;
  228. }).then(function () {
  229. return __awaiter(this, void 0, void 0, function* () {
  230. yield instance.reportManager.getColumns(instance.ReportId).then(function (response) {
  231. var data = response.result;
  232. for (var i = 0; i < data.length; i++) {
  233. let col = new ReportColumn();
  234. col.ColumnValue = data[i].ColumnValue;
  235. col.ReportColumnName = data[i].ReportColumnName;
  236. col.DisplayText = data[i].DisplayText;
  237. col.AliasName = data[i].DisplayText;
  238. col.DataType = Number(data[i].DataType);
  239. col.AggrFuncId = Reports.Enums.AggregationType.none;
  240. col.SortType = data[i].SortType;
  241. col.GroupBy = data[i].GroupBy;
  242. col.IsPivotAggrColumn = false;
  243. col.IsPivotColumn = data[i].IsPivotColumn;
  244. col.IsPivotRow = false;
  245. col.IsPivotRowSelected = false;
  246. col.IsPivotParentColumn = false;
  247. col.IsPivotChildColumn = false;
  248. col.PivotValue = 0;
  249. col.PivotValueSelected = data[i].PivotValueSelected;
  250. col.PivotDateType = Number(data[i].PivotDateType);
  251. col.TimeInterval = "";
  252. col.ColumnFormat = data[i].ColumnFormat;
  253. col.YearComparisonType = data[i].YearComparisonType;
  254. repObj.ReportColumns.push(col);
  255. Unibase.Platform.Analytics.Reports.Tenure.Instance().TenureReportColumns.push({ title: col.DisplayText, field: col.ReportColumnName });
  256. }
  257. });
  258. });
  259. }).then(function () {
  260. return __awaiter(this, void 0, void 0, function* () {
  261. yield instance.reportManager.getTableData(repObj).then(function (response) {
  262. let res = JSON.parse(response.result);
  263. Unibase.Platform.Analytics.Reports.Tenure.Instance().TenureTableData = JSON.parse(res.Data);
  264. Unibase.Platform.Analytics.Reports.Tenure.Instance().TenureInterval = TimeInterval;
  265. instance.navigationHelper.popup(0, '', Unibase.Platform.Analytics.Reports.Tenure.Instance(), null, Platform.Helpers.Size.Medium);
  266. });
  267. });
  268. });
  269. }
  270. CheckedTenure() {
  271. $(".table-metrics").addClass("hidden");
  272. $("#XAxis").addClass("hidden");
  273. $("#YAxis").addClass("hidden");
  274. $("#GroupBy").addClass("hidden");
  275. $("#SortColumns").removeClass("hidden");
  276. $("#ChartIcon_PaintBrush").attr("disabled", "true");
  277. $("#ChartIcon_Forms").attr("disabled", "true");
  278. }
  279. static Instance() {
  280. if (this._instance === undefined)
  281. this._instance = new Unibase.Platform.Analytics.Reports.Tenure();
  282. return this._instance;
  283. }
  284. }
  285. Reports.Tenure = Tenure;
  286. })(Reports = Analytics.Reports || (Analytics.Reports = {}));
  287. })(Analytics = Platform.Analytics || (Platform.Analytics = {}));
  288. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  289. })(Unibase || (Unibase = {}));
  290. var Unibase;
  291. (function (Unibase) {
  292. let Platform;
  293. (function (Platform) {
  294. let Analytics;
  295. (function (Analytics) {
  296. let Reports;
  297. (function (Reports) {
  298. class ReportBuilder_Template {
  299. loadDataListsTemplate() {
  300. let html = `<option value="{{Value}}"> {{SelectText}} </option>`;
  301. return html;
  302. }
  303. loadDataListColumnsTemplate() {
  304. let html = `<li class="dd-item dd3-item pt-5 pl-10 pr-5 li_{{ColumnId}}" id="li_{{ColumnId}}" style="list-style-type:none">
  305. <div class=""> <span id="ColDataType" class="hidden"> </span>
  306. <div class="dd3-content col-sm-12" id="Column_{{ColumnId}}" draggable="true">
  307. <div class="row">
  308. <small class="col-sm-2 mt-1" id="ColDataType_icon"> </small>
  309. <span class="pl-10 ColumnName" title="{{ColumnName}}"> <span> {{TrimmedColumnName}} </span> </span>
  310. <input type="text" class="DisplayText col-sm-3 p-0 hidden" onkeyup="ReportBuilder.Instance().tableAliasName({{ColumnId}},'{{ColumnName}}')">
  311. <span class="pl-30 col-sm-2 Aggregation hidden">
  312. <select class="border-light border-3 AggrFunc" id="cmbAggrFuncDraggedList_{{ColumnId}}" onchange="ReportBuilder.Instance().changeAggregation({{ColumnId}},'{{ColumnName}}')" style="width:90px;"></select></span>
  313. <span class="col-sm-1 Options text-right hidden">
  314. <a class="pa-0 dropdown-toggle no-caret" data-toggle="dropdown" onclick="">
  315. <i class="fa fa-ellipsis-v"></i></a> <div class="dropdown-menu dropdown-menu-right">
  316. <a class="dropdown-item" href="javascript:;" onclick="ReportBuilder.Instance().showOrHideColumnsInTable({{ColumnId}},'{{ColumnName}}')">
  317. <i class="dropdown-icon fa fa-eye-slash" id="DropDown_Eye_EyeSlash"></i>
  318. <span id="ShowOrHideColumn">Hide Column</span> </a>
  319. <a class="dropdown-item " href="javascript:;"><i class="dropdown-icon zmdi zmdi-laptop-mac"></i>
  320. <span>Is Filterable</span></a><div class="dropdown-divider"></div>
  321. <div class="sub-dropdown-menu show-on-hover"><a href="javascript:;" class="dropdown-toggle dropdown-item no-caret">
  322. <i class="zmdi zmdi-swap-vertical"></i>Sort by </a>
  323. <div class="dropdown-menu open-left-side">
  324. <a class="dropdown-item" onclick="javascript: ReportBuilder.Instance().ascendingOrder({{ColumnId}},'{{ColumnName}}');" href="javascript:;">
  325. <i class="dropdown-icon zmdi zmdi-caret-up"></i><span>Ascending</span></a>
  326. <a class="dropdown-item" onclick="javascript: ReportBuilder.Instance().descendingOrder({{ColumnId}},'{{ColumnName}}');" href="javascript:;">
  327. <i class="dropdown-icon zmdi zmdi-caret-down"></i> <span>Descending</span> </a>
  328. </div></div></div> </span>
  329. <span class="col-sm-1 text-right hidden" id="DeleteSelectedColumn">
  330. <a class="pa-0 dropdown-toggle no-caret" data-toggle="dropdown" onclick="ReportBuilder.Instance().deleteSelectedColumn({{ColumnId}},'{{ColumnName}}')">
  331. <i class="fa fa-close"></i></a> </span>
  332. </div> </div> </div>
  333. </li>`;
  334. return html;
  335. }
  336. loadToolTipColumn(ColumnId, AliasName, DataType, DisplayText) {
  337. let tooltipHtml = `<div class="dsl-block datagroup inline-edit" id="dsl_tool_column_${AliasName}">
  338. <span>
  339. <i class="las la-braille dragger"></i>
  340. <div class="dsl-block-name">
  341. <input type="text" id="txttooltipedit" required="required" value="${DisplayText}" class="edit text-truncate" disabled>
  342. <button type="reset" title="Click me to clear the input field" class="reset-text font-18 hidden" onclick ="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().toolTipEdit('${AliasName}')">&times;</button>
  343. </div>
  344. </span>
  345. <span>
  346. <a class="btn btn-xs btn-icon btn-flush-dark btn-rounded flush-soft-hover inline-edit-btn text-dark" href="javascript:;"><span class="btn-icon-wrap">
  347. <span class="line-icon">
  348. <i class="las la-pen font-20"></i>
  349. </span>
  350. </span></a>
  351. <a class="btn btn-xs btn-icon btn-rounded dsl-block-close text-dark" href="javacript:;" onclick="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().removeSelectedToolTip('${AliasName}')"><span class="line-icon">
  352. <i class="las la-times font-18 mt-1"></i>
  353. </span></a></span>
  354. </div></div>`;
  355. return tooltipHtml;
  356. }
  357. loadSelect2Column(ColumnId, ColumnName, DataType) {
  358. let Coordinathtml = "";
  359. let hiddenClass = '';
  360. if (Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Chart)
  361. hiddenClass = 'd-none';
  362. Coordinathtml += `<div class="dsl-block datagroup column_${ColumnName}" id="dsl_column_${ColumnName}"><span><i class="las la-braille dragger"></i><span class="dsl-block-name">${ColumnName}</span></span><span>`;
  363. if (DataType == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime || Unibase.Platform.Analytics.Reports.Enums.DataType.decimal) {
  364. Coordinathtml += `<div class="dropdown dsl_column_filters"><span class="dropdown-toggle flush-soft-hover no-caret" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().clickedTableCaret(` + ColumnId + `,'` + ColumnName + `',` + DataType + `)" data-toggle="dropdown" aria-expanded="false"><span class="btn-icon-wrap"><span class="line-icon"><i class="las la-ellipsis-v text-dark font-21"></i></span></span></span><ul class="dropdown-menu dropdown-menu-right dropdown-radio dropdown-menu-` + ColumnId + `"><li><h6 class="dropdown-header" href="javascript:;" >` + ColumnName + `</h6></li><div class="dropdown-divider"></div><li id="dropdown_Aggregation_` + ColumnName.replace(" ", "") + `"><div class="sub-dropdown-menu show-on-hover"><a class="dropdown-item" href="javascript:;" onclick=""><span id="AggregateOperation"> Aggregation </span></a><div class="dropdown-menu dropdown-radio"></div></div></li><li><a class="dropdown-item" href="javascript:;" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().IsFilterableColumn_table(` + ColumnId + `,'` + ColumnName + `')"><span id="IsFilterableColumn">IsFilterable<i class="dropdown-icon fa fa-check pull-right hidden text-primary" id="DropDown_IsFilterable_` + ColumnName.replace(" ", "") + `"></i></span></a></li><li><a class="dropdown-item" href="javascript:;" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().IsPrimaryKey(` + ColumnId + `,'` + ColumnName + `')"><span id="IsPrimaryKeyColumn">IsPrimaryKey<i class="dropdown-icon fa fa-check pull-right hidden text-primary" id="DropDown_IsPrimaryKey_` + ColumnName.replace(" ", "") + `"></i></span> </a></li><li><a class="dropdown-item" href="javascript:;" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().IsContactColumn(` + ColumnId + `,'` + ColumnName + `')"><span id="IsContactColumn" class="flex-between-center">IsContactColumn<i class="dropdown-icon fa fa-check pull-right hidden text-primary font-16" id="DropDown_IsContactColumn_` + ColumnName.replace(" ", "") + `"></i></span></a></li><li id="ColumnFormat_` + ColumnName + `"><div class="sub-dropdown-menu show-on-hover"><a class="dropdown-item d-inline" href="javascript:;" onclick=""><span id="ColumnFormat">Date Format </span></a><div class="dropdown-menu dropdown-radio open-left-side dropdown-menu-scrollbar" style="max-height : 400px; overflow-y : scroll"></div></div></li><div class="dropdown-divider"></div><input type="text" class="form-control" id="displayText_` + ColumnName + `" value=` + ColumnName + ` onkeyup="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().updateSelect2DisplayText('displayText_` + ColumnName + `','dsl_column_` + ColumnName + `')"><div class="dropdown-divider"></div><li><a class="dropdown-item" href="javascript:;" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().showOrHideColumn_table(` + ColumnId + `,'` + ColumnName + `')"><span id="ShowOrHideColumn">Hide Column</span></a></li> <li><a class="dropdown-item link-danger ${hiddenClass}" href="javascript:;" onclick=""><span id="RemoveSelectedColumn" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().removeSelectedColumn_table(` + ColumnId + `,'` + ColumnName + `')"> Remove Column </span></a></li></ul></div>`;
  365. }
  366. else {
  367. Coordinathtml += `<div class="dropdown dsl_column_filters"><span class="dropdown-toggle flush-soft-hover no-caret" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().clickedTableCaret(` + ColumnId + `,'` + ColumnName + `',` + DataType + `)" data-toggle="dropdown" aria-expanded="false"><span class="btn-icon-wrap"><span class="line-icon"><i class="las la-ellipsis-v text-dark font-21"></i></span></span></span><ul class="dropdown-menu dropdown-menu-right dropdown-radio dropdown-menu-` + ColumnId + `"><li><h6 class="dropdown-header">` + ColumnName + `</h6></li><div class="dropdown-divider"></div><li id="dropdown_Aggregation_` + ColumnName.replace(" ", "") + `"><div class="sub-dropdown-menu show-on-hover"><a class="dropdown-item" href="javascript:;" onclick=""><span id="AggregateOperation"> Aggregation </span></a><div class="dropdown-menu dropdown-radio"></div></div></li><li><a class="dropdown-item" href="javascript:;" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().IsFilterableColumn_table(` + ColumnId + `,'` + ColumnName + `')"><span id="IsFilterableColumn">IsFilterable<i class="dropdown-icon fa fa-check pull-right hidden text-primary" id="DropDown_IsFilterable_` + ColumnName.replace(" ", "") + `"></i></span> </a></li><li><a class="dropdown-item" href="javascript:;" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().IsPrimaryKey(` + ColumnId + `,'` + ColumnName + `')"><span id="IsPrimaryKeyColumn">IsPrimaryKey<i class="dropdown-icon fa fa-check pull-right hidden text-primary" id="DropDown_IsPrimaryKey_` + ColumnName.replace(" ", "") + `"></i></span> </a></li><li><a class="dropdown-item" href="javascript:;" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().IsContactColumn(` + ColumnId + `,'` + ColumnName + `')"><span id="IsContactColumn" class="flex-between-center">IsContactColumn<i class="dropdown-icon fa fa-check pull-right hidden text-primary font-16" id="DropDown_IsContactColumn_` + ColumnName.replace(" ", "") + `"></i></span> </a></li>
  368. <div class="dropdown-divider"></div><input type="text" class="form-control" id="displayText_` + ColumnName + `" value=` + ColumnName + ` onkeyup="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().updateSelect2DisplayText('displayText_` + ColumnName + `','dsl_column_` + ColumnName + `')"><div class="dropdown-divider"></div></div><li><a class="dropdown-item" href="javascript:;" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().showOrHideColumn_table(` + ColumnId + `,'` + ColumnName + `')"><span id="ShowOrHideColumn">Hide Column</span> </a></li> <li><a class="dropdown-item link-danger" href="javascript:;" onclick=""><span id="RemoveSelectedColumn" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().removeSelectedColumn_table(` + ColumnId + `,'` + ColumnName + `')"> Remove Column </span></a></li></ul></div>`;
  369. }
  370. Coordinathtml += `<a class="btn btn-xs btn-icon btn-flush-dark btn-rounded flush-soft-hover dsl-block-close" href="javascript:;" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().removeSelectedColumn_table(` + ColumnId + `,'` + ColumnName + `')"><span class="btn-icon-wrap" ><span class="line-icon"><i class="las la-times font-16"></i></span></span></a></span></div>`;
  371. return Coordinathtml;
  372. }
  373. loadPivotForm() {
  374. let pivotHtml = `<div id="drawer_push" class="biz-drawer biz-drawer drawer-small drawer-right custom-right-chart-nav">`;
  375. pivotHtml += `<ul class="nav nav-light nav-tabs">
  376. <li class="nav-item">
  377. <a class="nav-link active" data-toggle="tab" href="#tab_dynamic_pivote">
  378. <span class="nav-link-text">Dynamic</span>
  379. </a>
  380. </li>
  381. <li class="nav-item">
  382. <a class="nav-link" data-toggle="tab" href="#tab_normal_pivote">
  383. <span class="nav-link-text">Normal</span>
  384. </a>
  385. </li>
  386. </ul>`;
  387. this.pivotFormHtml = `
  388. <div class="tab-content mt-0">
  389. <div class="tab-pane fade active show" id="tab_dynamic_pivote">
  390. <div data-simplebar class="simple-scroll-bar">
  391. <div class="drawer-header">
  392. <h6>Dynamic Filter<span class="badge badge-green badge-pill ml-5"></span></h6>
  393. <div class="d-flex align-items-center">
  394. <button class="btn btn-xs btn-outline-secondary mr-15" onclick="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().resetSelect2Columns('dynamicFilter_select')">reset</button>
  395. <button type="button" class="drawer-close close">
  396. <span aria-hidden="true">×</span>
  397. </button>
  398. </div>
  399. </div>
  400. <div class="card-body">
  401. <div class="form-group d-flex align-items-center" id="div_pindynamicfiltes">
  402. <input type="checkbox" class="ck_bx_pindynamicfiltes mr-10" id="pindynamicfilters_checkbox"><label for="pindynamicfilters_checkbox" class="mb-0">
  403. Pin Dynamic Filters</label>
  404. </div>
  405. <div class="form-group d-flex align-items-center" id="div_showdatalistcolumns">
  406. <input type="checkbox" class="ck_bx_showdatalistcolumns mr-10" id="showdatalistcolumns_checkbox"><label for="showdatalistcolumns_checkbox" class="mb-0">
  407. Show Datalist Columns</label>
  408. </div>
  409. <select class="form-control custom-select" id="dynamicFilter_select">
  410. <option selected>- Select Columns -</option>
  411. </select>
  412. <div class="dynamic-list-group-wrapper ui-sortable dsl-block-wrap mt-10 p-0" id="dynamic-list-group-wrapper">
  413. </div>
  414. </div>
  415. </div>
  416. </div>
  417. <div class="tab-pane fade p-0" id="tab_normal_pivote">
  418. <div class="drawer-header">
  419. <h6>Pivot Filter<span class="badge hidden badge-pink badge-pill ml-5">4</span></h6>
  420. <div class="d-flex align-items-center">
  421. <button class="btn btn-xs btn-outline-secondary mr-15" id="reset_pivot_details">reset</button>
  422. <button type="button" class="drawer-close close" id="pivot-close-btn">
  423. <span aria-hidden="true">&times;</span>
  424. </button>
  425. </div>
  426. </div>
  427. <div class="drawer-body"><div data-simplebar class="simple-scroll-bar">
  428. <div class="drawer-content-wrap">
  429. <form id="" method="post" class="" data-formuniquekey="" data-validate="parsley">
  430. <div id="" class="clear bizgaze_FormErrorMessages"></div>
  431. <div class="form-group" id="div_pivotType">
  432. <div class="d-flex align-items-center justify-content-between mb-10">
  433. <select class="form-control custom-select pivotType" id="pivotType_Select2" onchange="Unibase.Platform.Analytics.Reports.Pivot.Instance().selectedpivotType(0)" required>
  434. <option value="0" data-select2-id="16">-Select-</option>
  435. <option value="1" data-select2-id="16">Pivot</option>
  436. <option value="2" data-select2-id="132">Tree View</option>
  437. <option value="3" data-select2-id="133">Pivot TreeView</option>
  438. <option value="4" data-select2-id="133">TimeIntervel</option>
  439. <option value="5" data-select2-id="133">Pivot Table</option>
  440. </select>
  441. </div>
  442. </div>
  443. <div class="form-group hidden" id="div_PivotTableConfig">
  444. <label>
  445. PivotTable Configurations
  446. </label>
  447. <div>
  448. <input type="checkbox" class="chkPivotTableConfig mr-10" onclick="" id="chkPivotTableConfig_checkbox">PivotTable Configurations
  449. </div>
  450. </div>
  451. <div class="form-group hidden" id="div_Intervals">
  452. <label>
  453. Time Intervals
  454. <span class="text-danger hidden"> *</span>
  455. </label>
  456. <input type="text" class="form-control" id="txt_TimeIntervals" placeholder="Time Intervals">
  457. </div>
  458. <div class="form-group hidden" id="div_PivotColumns">
  459. <label>
  460. Pivot Column
  461. <span class="text-danger hidden"> *</span>
  462. </label>
  463. <select class="form-control custom-select PivotColumns_AutoComplete" id="PivotColumns_AutoComplete" onchange="Unibase.Platform.Analytics.Reports.Pivot.Instance().changedPivotColumn()" required>
  464. <option value="0" selected="">- Select Pivot Column -</option>
  465. </select>
  466. </div>
  467. <div class="form-group hidden" id="div_PivotDateType">
  468. <label>
  469. Date Type
  470. <span class="text-danger hidden"> *</span>
  471. </label>
  472. <select class="form-control custom-select PivotDateType" id="PivotDateType" onchange="Unibase.Platform.Analytics.Reports.Pivot.Instance().changedDateType()" required>
  473. <option value="0" selected="">- Select Pivot Date Type -</option>
  474. </select>
  475. </div>
  476. <div class="form-group hidden" id="div_PivotAggrColumn">
  477. <label>
  478. Pivot Aggregation Column
  479. </label>
  480. <select class="form-control custom-select PivotAggrColumn" id="PivotAggrColumn" onchange="Unibase.Platform.Analytics.Reports.Pivot.Instance().changedPivotAggrColumn()" required>
  481. <option value="0" selected="">- Select Aggregation Column -</option>
  482. </select>
  483. </div>
  484. <div class="form-group hidden" id="div_PivotAggrType">
  485. <label>
  486. Pivot Aggregation Type
  487. <span class="text-danger hidden"> *</span>
  488. </label>
  489. <select class="form-control custom-select PivotAggrType" id="PivotAggrType" required>
  490. <option value="0" selected="">- Select Aggregation Type -</option>
  491. <option value="1">count</option>
  492. <option value="2">sum</option>
  493. <option value="3">average</option>
  494. <option value="4">max</option>
  495. <option value="5">min</option>
  496. <option value="6">month</option>
  497. <option value="7">year</option>
  498. </select>
  499. </div>
  500. <div class="form-group hidden" id="div_PivotRows">
  501. <label>
  502. Pivot Rows
  503. <span class="text-danger hidden"> *</span>
  504. </label>
  505. <select class="form-control custom-select PivotRows_Select2" id="PivotRows_Select2" multiple="multiple" required>
  506. <option value="0" selected="">- Select Pivot Rows -</option>
  507. </select>
  508. </div>
  509. <div class="form-group hidden" id="div_datatreeexpand">
  510. <label for="treeexpand_checkbox">
  511. DataTreeExpand
  512. </label>
  513. <div>
  514. <input type="checkbox" class="chktreeexpand mr-10" onclick="" id="chktreeexpand_checkbox">IsDataTreeExpand
  515. </div>
  516. </div>
  517. <div class="form-group hidden" id="div_PivotChildColumnName">
  518. <label>
  519. Pivot Child Column
  520. <span class="text-danger hidden"> *</span>
  521. </label>
  522. <select class="form-control custom-select PivotChildColumnName_AutoComplete" id="PivotChildColumnName_AutoComplete" onchange="Unibase.Platform.Analytics.Reports.Pivot.Instance().changedPivotChildColumn()" required>
  523. <option value="0" selected="">- Select Pivot Child Column -</option>
  524. </select>
  525. </div>
  526. <div class="form-group hidden" id="div_PivotValue">
  527. <label>
  528. Pivot Value
  529. <span class="text-danger hidden"> *</span>
  530. </label>
  531. <select class="form-control custom-select PivotValue_AutoComplete" id="PivotValue_AutoComplete" required>
  532. <option value="0" selected="">- Select Pivot Value -</option>
  533. </select>
  534. </div>
  535. <div class="form-group hidden" id="div_PivotParentColumnName">
  536. <label>
  537. Pivote Parent Column
  538. <span class="text-danger hidden"> *</span
  539. </label>
  540. <select class="form-control custom-select PivotParentColumnName_AutoComplete" id="PivotParentColumnName_AutoComplete" required>
  541. <option value="0" selected="">Select Pivot Parent Column</option>
  542. </select>
  543. </form>
  544. </div></div></div></div>
  545. <div class="drawer-footer drawerFooterApplyPivot hidden">
  546. <a href="javascript:;" id="btn_ApplyPivot" class="btn btn-block btn-theme"> Apply </a>
  547. </div>
  548. </div>
  549. </div>
  550. `;
  551. pivotHtml += this.pivotFormHtml;
  552. pivotHtml += `</div>`;
  553. return pivotHtml;
  554. }
  555. loadSortSelect2Column(ColumnId, ColumnName, DataType) {
  556. let sortColumnHtml = "";
  557. sortColumnHtml += `<div class="dsl-block datagroup column_${ColumnName}" id="dsl_column_${ColumnName}">
  558. <span><i class="las la-braille dragger"></i>
  559. <span class="dsl-block-name">${ColumnName}</span>
  560. </span><span>`;
  561. sortColumnHtml += ` <span><a class="btn btn-xs btn-icon btn-flush-dark btn-rounded dropdown-toggle flush-soft-hover no-caret" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" href="javascript:;" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().loadSorting(` + ColumnId + `,'` + ColumnName + `')"><span class="btn-icon-wrap"><span class="line-icon"><i class="las la-sort-down text-dark font-21 sort-icon"></i></span></span></a>
  562. <div class="dropdown-menu dropdown-menu-right dropdown-radio">
  563. <a class="dropdown-item SortOrder_` + ColumnId + `" id="SortOrder_` + ColumnId + `_Asc" onclick="javascript: Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().changeSortBy_table(` + ColumnId + `,'` + ColumnName + `','Asc');" href="javascript:;"><i class="ri-checkbox-blank-circle-line dropdown-icon" id="DropDown_IsAsc_` + ColumnName.replace(" ", "") + `"></i><span class="text-uppercase">Asc</span></a>
  564. <a class="dropdown-item SortOrder_` + ColumnId + `" id="SortOrder_` + ColumnId + `_Desc" onclick="javascript: Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().changeSortBy_table(` + ColumnId + `,'` + ColumnName + `','Desc');" href="javascript:;"><i class="ri-checkbox-blank-circle-line dropdown-icon" id="DropDown_IsDesc_` + ColumnName.replace(" ", "") + `"></i><span class="text-uppercase">Desc</span></a></div></span>`;
  565. sortColumnHtml += `<a class="btn btn-xs btn-icon btn-flush-dark btn-rounded flush-soft-hover dsl-block-close" href="javascript:;" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().removeSelectedSortColumn_table(` + ColumnId + `,'` + ColumnName + `')"><span class="btn-icon-wrap"><span class="line-icon"><i class="las la-times font-16"></i></span></span></a></span>
  566. </div>`;
  567. return sortColumnHtml;
  568. }
  569. loadDynamicFilterColumn(ColumnId, ColumnName, DataType) {
  570. let dynamicColumnHtml = "";
  571. dynamicColumnHtml += `<div class="dsl-block c-gap-10 datagroup" data-report-id="${ColumnId}" data-IsFilterableColumn="${ColumnName}">
  572. <span class="flex-grow-1"><i class="las la-braille dragger"></i><a class="" onclick="Unibase.Platform.Analytics.Reports.ReportFilter.Instance().dynamicFilterIsDefaultDateColumn('${ColumnName}')" data-toggle="tooltip" data-placement="top" title="" data-original-title="DefaultDate">
  573. <input type="checkbox" title="IsDefault" name="defaultdate" class="btn btn-xs mr-2 dynamicfilter-defaultdate_${ColumnName} hidden" id="dynamicfilter-defaultdate_${ColumnName}">
  574. </a><span class="dsl-block-name">${ColumnName}</span></span><span class='flex-shrink-0'><span><a class="btn btn-xs btn-icon btn-flush-dark btn-rounded flush-soft-hover no-caret" href="javascript:;" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().IsFilterableColumn_table(${ColumnId},'${ColumnName}',${DataType})"><span class="btn-icon-wrap"><span class="line-icon"><i class="las la-filter text-dark dynamic-filter-icon-${ColumnName} font-21"></i></span></span></a><span class='hidden' data-toggle="tooltip" data-placement="top" title="" data-original-title="Is Partition"> <input type="checkbox" class="chk_ispartition_${ColumnName} hidden" id="chk_ispartition_${ColumnName}" onclick="Unibase.Platform.Analytics.Reports.ReportFilter.Instance().dynamicFilterIsPartition('${ColumnName}')"> </span><a class="btn btn-xs btn-icon btn-flush-dark btn-rounded flush-soft-hover" href="javascript:;" onclick="Unibase.Platform.Analytics.Reports.DynamicFilter.Instance().removeDynamicFilterSelectedColumn_table('${ColumnName}')"><span class="btn-icon-wrap"><span class="line-icon"><i class="las la-times font-16"></i></span></span></a></span></div>`;
  575. return dynamicColumnHtml;
  576. }
  577. loadChartSideBar() {
  578. let html = `<div class="bldr-aside-right">
  579. <div id="chart-pivot-container" class="hidden biz-drawer biz-drawer drawer-small drawer-right biz-drawer-toggle">` + this.pivotFormHtml + `</div>
  580. <div id="chart-appearance-container">
  581. <ul class="nav nav-light nav-tabs">
  582. <li class="nav-item">
  583. <a class="nav-link active" data-toggle="tab" href="#tab_apprnc">
  584. <span class="nav-link-text">Appearance</span>
  585. </a>
  586. </li>
  587. <li class="nav-item">
  588. <a class="nav-link" data-toggle="tab" href="#tab_tooltip">
  589. <span class="nav-link-text">Tooltips</span>
  590. </a>
  591. </li>
  592. </ul>
  593. <div data-simplebar class="simple-scroll-bar">
  594. <div class="tab-content">
  595. <div class="tab-pane fade show active" id="tab_apprnc">
  596. <div class="collapse-simple">
  597. <div class="card">
  598. <div class="card-header">
  599. <a role="button" data-toggle="collapse" href="#chart_type" aria-expanded="true">Chart Type</a>
  600. </div>
  601. <div id="chart_type" class="chart-type-collapse collapse show">
  602. <div class="card-body">
  603. <div class="row row-sm btn-group-toggle biz-custom-scrollbar" data-toggle="buttons">
  604. <div class="col-4 h-70p btn-group mb-20">
  605. <label class="btn btn-block btn-filter">
  606. <input type="radio" name="options" id="option1"/><img class="img-fluid pa-10 bar-chart-icon" src="tenants/themes/compact/imgs/charttypes/bar-chart.png" onclick="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().chartPreview('bar',1)">
  607. </label>
  608. </div>
  609. <div class="col-4 h-70p btn-group mb-20">
  610. <label class="btn btn-block btn-filter">
  611. <input type="radio" name="options" id="option2" /><img class="img-fluid t-90d pa-10 horizontalbar-chart-icon" src="tenants/themes/compact/imgs/charttypes/bar-chart.png" onclick="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().chartPreview('horizontalBar',2)">
  612. </label>
  613. </div>
  614. <div class="col-4 h-70p btn-group mb-20">
  615. <label class="btn btn-block btn-filter">
  616. <input type="radio" name="options" id="option3" /><img class="img-fluid pa-10 area-chart-icon" src="tenants/themes/compact/imgs/charttypes/area-chart.png" onclick="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().chartPreview('area',3)">
  617. </label>
  618. </div>
  619. <div class="col-4 h-70p btn-group mb-20">
  620. <label class="btn btn-block btn-filter">
  621. <input type="radio" name="options" id="option4" /><img class="img-fluid pa-10 doughnut-chart-icon" src="tenants/themes/compact/imgs/charttypes/doughnut.png" onclick="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().chartPreview('doughnut',4)">
  622. </label>
  623. </div>
  624. <div class="col-4 h-70p btn-group mb-20">
  625. <label class="btn btn-block btn-filter">
  626. <input type="radio" name="options" id="option5" /><img class="img-fluid pa-10 line-chart-icon" src="tenants/themes/compact/imgs/charttypes/line-graph.png" onclick="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().chartPreview('line',5)">
  627. </label>
  628. </div>
  629. <div class="col-4 h-70p btn-group mb-20">
  630. <label class="btn btn-block btn-filter">
  631. <input type="radio" name="options" id="option6" /> <img class="img-fluid pa-10 pie-chart-icon" src="tenants/themes/compact/imgs/charttypes/pie-chart.png" onclick="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().chartPreview('pie',6)">
  632. </label>
  633. </div>
  634. <div class="col-4 h-70p btn-group mb-20">
  635. <label class="btn btn-block btn-filter in-active">
  636. <input type="radio" name="options" id="option7" />
  637. <img class="img-fluid pa-10 stackedbar-icon stackedbar-chart-icon t-270d" src="tenants/themes/compact/imgs/charttypes/stacked.png" onclick="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().chartPreview('stackedBar',7)">
  638. </label>
  639. </div>
  640. <div class="col-4 h-70p btn-group mb-20">
  641. <label class="btn btn-block btn-filter in-active">
  642. <input type="radio" name="options" id="option8" /><img class="img-fluid pa-10 stackedbar-icon stackedhorizontalbar-chart-icon" src="tenants/themes/compact/imgs/charttypes/stacked.png" onclick="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().chartPreview('stackedHorizontalBar',8)">
  643. </label>
  644. </div>
  645. <div class="col-4 h-70p btn-group mb-20">
  646. <label class="btn btn-block btn-filter">
  647. <input type="radio" name="options" id="option9" /> <img class="img-fluid pa-10 bubble-chart-icon" src="tenants/themes/compact/imgs/charttypes/bubble.png" onclick="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().chartPreview('bubble',9)">
  648. </label>
  649. </div>
  650. <div class="col-4 h-70p btn-group mb-20">
  651. <label class="btn btn-block btn-filter">
  652. <input type="radio" name="options" id="option10" /> <img class="img-fluid pa-10 grouped-chart-icon" src="tenants/themes/compact/imgs/charttypes/grouped.png">
  653. </label>
  654. </div>
  655. <div class="col-4 h-70p btn-group mb-20">
  656. <label class="btn btn-block btn-filter">
  657. <input type="radio" name="options" id="option11" /><img class="img-fluid pa-10 t-90d horizontalgrouped-chart-icon" src="tenants/themes/compact/imgs/charttypes/grouped.png">
  658. </label>
  659. </div>
  660. <div class="col-4 h-70p btn-group mb-20">
  661. <label class="btn btn-block btn-filter">
  662. <input type="radio" name="options" id="option12"/><img class="img-fluid pa-10 bar-line-chart-icon" src="tenants/themes/compact/imgs/charttypes/bar-line-chart.png" onclick="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().chartPreview('barWithLine',12)">
  663. </label>
  664. </div>
  665. </div>
  666. </div>
  667. </div>
  668. </div>
  669. <div class="card">
  670. <div class="card-header">
  671. <a role="button" data-toggle="collapse" href="#legend_options" aria-expanded="true">Legend</a>
  672. </div>
  673. <div id="legend_options" class="collapse show" style="">
  674. <div class="card-body">
  675. <div class="mb-10">
  676. <div class="biz-mini-adj-drawer-wrap">
  677. <div class="form-row">
  678. <div class="col-12">
  679. <select class="form-control custom-select" id="legend-select" onchange="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().loadSelectedLegend(0, true)">
  680. <option value="0" selected="">None</option>
  681. <option value="1"> Top </option>
  682. <option value="2"> Right </option>
  683. <option value="3"> Bottom </option>
  684. <option value="4"> Left </option>
  685. </select>
  686. </div>
  687. </div>
  688. </div>
  689. </div>
  690. </div>
  691. </div>
  692. </div>
  693. <div class="card">
  694. <div class="card-header">
  695. <a role="button" data-toggle="collapse" href="#scales_lables" aria-expanded="true">Scales Lables</a>
  696. </div>
  697. <div id="scales_lables" class="collapse show" style="">
  698. <div class="card-body">
  699. <div class="mb-10">
  700. <div class="biz-mini-adj-drawer-wrap">
  701. <div class="form-row">
  702. <div class="col-12 mt-2">
  703. <label for="label_length"> Labels Length </label>
  704. <input type="number" class="form-control" min="0" max="50" id="label_length" name="label_length" value="0">
  705. </div>
  706. </div>
  707. </div>
  708. </div>
  709. </div>
  710. </div>
  711. </div>
  712. <div class="card">
  713. <div class="card-header">
  714. <a role="button" data-toggle="collapse" href="#datalabel_div" aria-expanded="true" class="">Data Label</a>
  715. </div>
  716. <div id="datalabel_div" class="collapse show" style="">
  717. <div class="card-body">
  718. <div class="card border-0 shadow-none">
  719. <div class="card-body p-2">
  720. <div class="biz-mini-adj-drawer-wrap">
  721. <div class="form-row">
  722. <div class="col">
  723. <input type="checkbox" id="isdatalabel" name="isdatalabelcheckbox" class="" checked="false">
  724. <label class="" for="isdatalabel">Is Data Label</label>
  725. </div>
  726. </div>
  727. </div>
  728. </div>
  729. </div>
  730. </div>
  731. </div>
  732. </div>
  733. <div class="card">
  734. <div class="card-header">
  735. <a role="button" data-toggle="collapse" href="#label_type" aria-expanded="true">Legend Type</a>
  736. </div>
  737. <div id="label_type" class="collapse show">
  738. <div class="card-body">
  739. <div class="card border-0 shadow-none">
  740. <div class="card-body p-2">
  741. <div class="biz-mini-adj-drawer-wrap">
  742. <div class="form-row">
  743. <div class="col">
  744. <div class="custom-control custom-radio adj-drawer-open" data-target="lagendtypedata">
  745. <input type="radio" id="lagendtypedata" name="lagendtypedataradio" class="custom-control-input"
  746. checked="true">
  747. <label class="custom-control-label" for="lagendtypedata">Data</label>
  748. </div>
  749. </div>
  750. <div class="col">
  751. <div class="custom-control custom-radio adj-drawer-open" data-target="lagendtypecolumn">
  752. <input type="radio" id="lagendtypecolumn" name="lagendtypedataradio" class="custom-control-input">
  753. <label class="custom-control-label" for="lagendtypecolumn">Column</label>
  754. </div>
  755. </div>
  756. </div>
  757. </div>
  758. </div>
  759. </div>
  760. </div>
  761. </div>
  762. </div>
  763. <div class="card">
  764. <div class="card-header">
  765. <a role="button" data-toggle="collapse" href="#theme_pre" aria-expanded="true">Theme Preset</a>
  766. </div>
  767. <div id="theme_pre" class="collapse show">
  768. <div class="card-body">
  769. <div class="card border-0 shadow-none">
  770. <div class="card-body p-2">
  771. <div class="biz-mini-adj-drawer-wrap">
  772. <div class="form-row">
  773. <div class="col">
  774. <div class="custom-control custom-radio adj-drawer-open" data-target="columnRadio">
  775. <input type="radio" id="columnRadio" name="customRadio1" class="custom-control-input"
  776. checked="">
  777. <label class="custom-control-label" for="columnRadio">Column</label>
  778. </div>
  779. </div>
  780. <div class="col">
  781. <div class="custom-control custom-radio adj-drawer-open" data-target="rowRadio">
  782. <input type="radio" id="rowRadio" name="customRadio1" class="custom-control-input">
  783. <label class="custom-control-label" for="rowRadio">Row</label>
  784. </div>
  785. </div>
  786. </div>
  787. </div>
  788. </div>
  789. </div>
  790. <div class="card">
  791. <div class="card-header">
  792. <a role="button" data-toggle="collapse" href="#pallettes_options" aria-expanded="true">Pallettes</a>
  793. </div>
  794. <div id="legend_options" class="collapse show" style="">
  795. <div class="card-body">
  796. <div class="mb-10">
  797. <div class="biz-mini-adj-drawer-wrap">
  798. <div class="form-row">
  799. <div class="col">
  800. <select class="form-control custom-select" id="pallettes_select">
  801. <option value="0" selected="">Select Pallette</option>
  802. </select>
  803. </div>
  804. </div>
  805. </div>
  806. </div>
  807. </div>
  808. </div>
  809. </div>
  810. <div class="color-board hidden">
  811. <div class="mb-10">
  812. <div class="color-block">
  813. <div class="bg-red-light-3"></div>
  814. <div class="bg-pink-light-3"></div>
  815. <div class="bg-purple-light-3"></div>
  816. <div class="bg-violet-light-3"></div>
  817. <div class="bg-smoke-light-3"></div>
  818. <div class="bg-blue-light-3 d-none"></div>
  819. <div class="bg-violet-light-3 d-none"></div>
  820. <div class="bg-indigo-light-3 d-none"></div>
  821. <div class="bg-blue-light-3 d-none"></div>
  822. <div class="bg-sky-light-3 d-none"></div>
  823. <div class="bg-cyan-light-3 d-none"></div>
  824. <div class="bg-teal-light-3 d-none"></div>
  825. <div class="bg-green-light-3 d-none"></div>
  826. <div class="bg-neon-light-3 d-none"></div>
  827. <div class="bg-lime-light-3 d-none"></div>
  828. <div class="bg-sun-light-3 d-none"></div>
  829. <div class="bg-yellow-light-3 d-none"></div>
  830. <div class="bg-orange-light-3 d-none"></div>
  831. <div class="bg-pumpkin-light-3 d-none"></div>
  832. <div class="bg-brown-light-3 d-none"></div>
  833. </div>
  834. <div class="theme-caption">Color - 1 </div>
  835. </div>
  836. <div class="mb-10">
  837. <div class="color-block">
  838. <div class="bg-red-dark-2"></div>
  839. <div class="bg-pink-dark-2"></div>
  840. <div class="bg-purple-dark-2"></div>
  841. <div class="bg-violet-dark-2"></div>
  842. <div class="bg-smoke-dark-2"></div>
  843. <div class="bg-blue-dark-2 d-none"></div>
  844. <div class="bg-violet-dark-2 d-none"></div>
  845. <div class="bg-indigo-dark-2 d-none"></div>
  846. <div class="bg-blue-dark-2 d-none"></div>
  847. <div class="bg-sky-dark-2 d-none"></div>
  848. <div class="bg-cyan-dark-2 d-none"></div>
  849. <div class="bg-teal-dark-2 d-none"></div>
  850. <div class="bg-green-dark-2 d-none"></div>
  851. <div class="bg-neon-dark-2 d-none"></div>
  852. <div class="bg-lime-dark-2 d-none"></div>
  853. <div class="bg-sun-dark-2 d-none"></div>
  854. <div class="bg-yellow-dark-2 d-none"></div>
  855. <div class="bg-orange-dark-2 d-none"></div>
  856. <div class="bg-pumpkin-dark-2 d-none"></div>
  857. <div class="bg-brown-dark-2 d-none"></div>
  858. </div>
  859. <div class="theme-caption">Color - 2 </div>
  860. </div>
  861. <div class="mb-10">
  862. <div class="color-block">
  863. <div class="bg-grey-dark-4"></div>
  864. <div class="bg-blue-dark-4"></div>
  865. <div class="bg-indigo-dark-4"></div>
  866. <div class="bg-green-dark-4"></div>
  867. <div class="bg-sun-dark-4"></div>
  868. <div class="bg-red-dark-4 d-none"></div>
  869. <div class="bg-lime-dark-4 d-none"></div>
  870. <div class="bg-purple-dark-4 d-none"></div>
  871. <div class="bg-violet-dark-4 d-none"></div>
  872. <div class="bg-blue-dark-4 d-none"></div>
  873. <div class="bg-yellow-dark-4 d-none"></div>
  874. <div class="bg-violet-dark-4 d-none"></div>
  875. <div class="bg-brown-dark-4 d-none"></div>
  876. <div class="bg-cyan-dark-4 d-none"></div>
  877. <div class="bg-teal-dark-4 d-none"></div>
  878. <div class="bg-pumpkin-dark-4 d-none"></div>
  879. <div class="bg-pink-dark-4 d-none"></div>
  880. <div class="bg-sky-dark-4 d-none"></div>
  881. <div class="bg-orange-dark-4 d-none"></div>
  882. <div class="bg-neon-dark-4 d-none d-none"></div>
  883. </div>
  884. <div class="theme-caption">Color - 3 </div>
  885. </div>
  886. <div class="mb-10">
  887. <div class="color-block">
  888. <div class="bg-sky-dark-3"></div>
  889. <div class="bg-cyan-dark-1"></div>
  890. <div class="bg-teal-dark-1"></div>
  891. <div class="bg-green-dark-1"></div>
  892. <div class="bg-neon-dark-1"></div>
  893. <div class="bg-lime-dark-1 d-none"></div>
  894. <div class="bg-sun-dark-1 d-none"></div>
  895. <div class="bg-yellow-dark-1 d-none"></div>
  896. <div class="bg-orange-dark-1 d-none"></div>
  897. <div class="bg-pumpkin-dark-1 d-none"></div>
  898. <div class="bg-brown-dark-1 d-none"></div>
  899. <div class="bg-green-dark-1 d-none"></div>
  900. <div class="bg-pink-dark-1 d-none"></div>
  901. <div class="bg-purple-dark-1 d-none"></div>
  902. <div class="bg-violet-dark-1 d-none"></div>
  903. <div class="bg-smoke-dark-1 d-none"></div>
  904. <div class="bg-blue-dark-1 d-none"></div>
  905. <div class="bg-violet-dark-1 d-none"></div>
  906. <div class="bg-indigo-dark-1 d-none"></div>
  907. <div class="bg-gold-dark-1 d-none"></div>
  908. </div>
  909. <div class="theme-caption">Color - 4 </div>
  910. </div>
  911. <div class="mb-10">
  912. <div class="color-block">
  913. <div class="bg-blue-light-3"></div>
  914. <div class="bg-violet-light-3"></div>
  915. <div class="bg-green-light-3"></div>
  916. <div class="bg-sun-light-3"></div>
  917. <div class="bg-purple-light-3"></div>
  918. <div class="bg-orange-light-3 d-none"></div>
  919. <div class="bg-sky-light-3 d-none"></div>
  920. <div class="bg-cyan-light-3 d-none"></div>
  921. <div class="bg-brown-light-3 d-none"></div>
  922. <div class="bg-lime-light-3 d-none"></div>
  923. <div class="bg-pink-light-3 d-none"></div>
  924. <div class="bg-neon-light-3 d-none"></div>
  925. <div class="bg-indigo-light-3 d-none"></div>
  926. <div class="bg-red-light-3 d-none"></div>
  927. <div class="bg-smoke-light-3 d-none"></div>
  928. <div class="bg-pumpkin-light-3 d-none"></div>
  929. <div class="bg-blue-light-3 d-none"></div>
  930. <div class="bg-yellow-light-3 d-none"></div>
  931. <div class="bg-violet-light-3 d-none"></div>
  932. <div class="bg-teal-light-3 d-none"></div>
  933. </div>
  934. <div class="theme-caption">Color - 5 </div>
  935. </div>
  936. <div class="mb-30">
  937. <div class="color-block">
  938. <div class="bg-dark-20"></div>
  939. <div class="bg-red-light-1"></div>
  940. <div class="bg-pink-light-1"></div>
  941. <div class="bg-purple-light-1"></div>
  942. <div class="bg-violet-light-1"></div>
  943. <div class="bg-smoke-light-1 d-none"></div>
  944. <div class="bg-blue-light-1 d-none"></div>
  945. <div class="bg-violet-light-1 d-none"></div>
  946. <div class="bg-indigo-light-1 d-none"></div>
  947. <div class="bg-blue-light-1 d-none"></div>
  948. <div class="bg-sky-light-1 d-none"></div>
  949. <div class="bg-cyan-light-1 d-none"></div>
  950. <div class="bg-teal-light-1 d-none"></div>
  951. <div class="bg-green-light-1 d-none"></div>
  952. <div class="bg-neon-light-1 d-none"></div>
  953. <div class="bg-lime-light-1 d-none"></div>
  954. <div class="bg-sun-light-1 d-none"></div>
  955. <div class="bg-yellow-light-1 d-none"></div>
  956. <div class="bg-orange-light-1 d-none"></div>
  957. <div class="bg-pumpkin-light-1 d-none"></div>
  958. <div class="bg-brown-light-1 d-none"></div>
  959. </div>
  960. <div class="theme-caption">Color - 6 </div>
  961. </div>
  962. </div>
  963. </div>
  964. </div>
  965. </div>
  966. </div>
  967. </div>
  968. <div class="tab-pane fade" id="tab_tooltip">
  969. <div class="form-group d-flex align-items-center" id="div_showtooltipheader">
  970. <input type="checkbox" class="ck_bx_showtooltipheader mr-10" id="showtooltipheader_checkbox"><label for="showtooltipheader_checkbox" class="mb-0">
  971. Show Tooltip Header</label>
  972. </div>
  973. <select class="form-control custom-select mb-10" id="tooltip_select">
  974. <option selected="">- Select Columns -</option>
  975. </select>
  976. <div id="tooltip_selected_columns" class="dsl-block-wrap mt-10">
  977. </div>
  978. </div>
  979. </div>
  980. </div>
  981. </div>`;
  982. $("#reportBuilderRightNav").html(html);
  983. }
  984. loadLinkToOtherReportForm() {
  985. let html = `<section id="link-report-section" class="modal-content">
  986. <div class="modal-header pa-10 h-55p" id="linkreport_header">
  987. <strong class="modal-title biz-highlight-bg-color">Sub report</strong>
  988. <div class="sub_report_error_message" id="sub_report_error_message"></div>
  989. <button class="btn btn-sm btn-theme btn-wth-icon icon-left" id="subrpt_clear" onclick="Unibase.Platform.Analytics.Reports.SubReport.Instance().removeSubreport()"><span><span class="icon-label"><span class="line-icon hidden"><i class="las la-plus"></i></span></span><span class="btn-text">Clear</span></span></button>
  990. <button class="btn btn-sm btn-theme btn-wth-icon icon-left hidden" id="subrpt_plus"><span><span
  991. class="icon-label"><span class="line-icon"><i class="las la-plus"></i></span></span><span
  992. class="btn-text">Add Sub Report</span></span></button>
  993. </div>
  994. <div data-simplebar class="simple-scroll-bar modal-body bg-charcoal-light-5">
  995. <div id="divSubReport_ErrorMessage"></div>
  996. <div class="subreport-select-card card">
  997. <div class="row card-body mx-0 px-0 py-10">
  998. <div class="col-sm-6">
  999. <div class="custom-control custom-radio radio-primary d-flex align-items-center">
  1000. <input type="radio" id="reportRadioBtn" name="subreportradio"
  1001. class="custom-control-input subreport-radio-btn" onclick="Unibase.Platform.Analytics.Reports.SubReport.Instance().subReportType_Report()" value="report" checked>
  1002. <label class="custom-control-label" for="reportRadioBtn">Report</label>
  1003. </div>
  1004. </div>
  1005. <div class="col-sm-6">
  1006. <div class="custom-control custom-radio radio-primary d-flex align-items-center">
  1007. <input type="radio" id="detailRadioBtn" name="subreportradio"
  1008. class="custom-control-input subreport-radio-btn" onclick="Unibase.Platform.Analytics.Reports.SubReport.Instance().subReportType_Deatil()" value="detailscreen">
  1009. <label class="custom-control-label" for="detailRadioBtn">Detail Screen</label>
  1010. </div>
  1011. </div>
  1012. </div>
  1013. </div>
  1014. <div id="linkreport_modal">
  1015. <div class="sub-report-block card" data-select2-id="24" data-subreportid="" data-subreportcolumnid="">
  1016. <div data-select2-id="23">
  1017. <header class="sub-report-head pb-0">
  1018. <h6 class="required">
  1019. Sub report
  1020. </h6>
  1021. <span>
  1022. <i class="las la-braille dragger"></i>
  1023. </span>
  1024. </button>
  1025. </header>
  1026. <div id="subrpts_div" data-select2-id="subrpts_div" class="">
  1027. <div class="report-body">
  1028. <div class="row mx-0 pb-10">
  1029. <div class="col-sm-6 pl-sm-0">
  1030. <div class="custom-control custom-radio radio-primary d-flex align-items-center">
  1031. <input type="radio" id="inlineRadioBtn" name="reportopentype"
  1032. class="custom-control-input opentype-radio-btn" value="inline" checked>
  1033. <label class="custom-control-label" for="inlineRadioBtn">Inline</label>
  1034. </div>
  1035. </div>
  1036. <div class="col-sm-6 pr-sm-0">
  1037. <div class="custom-control custom-radio radio-primary d-flex align-items-center">
  1038. <input type="radio" id="outlineRadioBtn" name="reportopentype"
  1039. class="custom-control-input opentype-radio-btn" value="outline">
  1040. <label class="custom-control-label" for="outlineRadioBtn">Outline</label>
  1041. </div>
  1042. </div>
  1043. <div class="col hidden">
  1044. <input type="checkbox" class="chkRowClick mr-10" onclick="" id="rowclick_checkbox"><label>RowClick</label>
  1045. </div>
  1046. </div>
  1047. <div class="form-group">
  1048. <div id="divsubrpt_0" data-select2-id="divsubrpt_">
  1049. <div id="div_Kanban" class="mb-10">
  1050. <select class="select_reports form-control custom-select" id="cmdsub_1">
  1051. </select>
  1052. </div>
  1053. <div class="form-row">
  1054. <div class="col-auto mt-2 mr-2">
  1055. <input class="" type="checkbox" id="isvalue_radio_0" title="Is value" >
  1056. </div>
  1057. <div class="col">
  1058. <div id="div_mainreportColumn">
  1059. <select id="cmbmainrptCols"
  1060. class="form-control text-control required">
  1061. </select>
  1062. </div>
  1063. </div>
  1064. <div class="col hidden">
  1065. <div id="div_mainreportColumn_textbox">
  1066. <input id="cmbmainrptCols_textbox"
  1067. class="form-control text-control required">
  1068. </input>
  1069. </div>
  1070. </div>
  1071. <div class="col-auto">
  1072. <select id="slctdoperater" class="form-control custom-select mb-10">
  1073. <option value="0">-Select-</option>
  1074. <option value="1">Equals</option>
  1075. <option value="2">NotEquals</option>
  1076. <option value="3">EqualsColumn</option>
  1077. <option value="4">NotEqualsColumn</option>
  1078. <option value="5">GreaterThan</option>
  1079. <option value="6">GreaterThanOrEquals</option>
  1080. <option value="7">LessThan</option>
  1081. <option value="8">LessThanOrEquals</option>
  1082. <option value="9">GreaterThanColumn</option>
  1083. <option value="10">GreaterThanOrEqualsColumn</option>
  1084. <option value="11">LessThanColumn</option>
  1085. <option value="12">LessThanOrEqualsColumn</option>
  1086. </select>
  1087. </div>
  1088. <div class="col">
  1089. <div id="div_subColumn">
  1090. <select id="cmbsbrptCols"
  1091. class="form-control custom-select mb-10 required">
  1092. <option value="0" selected="">Sub report column</option>
  1093. </select>
  1094. </div>
  1095. </div>
  1096. <div class="col-auto">
  1097. <a class="btn btn-icon btn-theme" id="btnConfigAddFilter" onclick="" ;="">
  1098. <span class="btn-icon-wrap"><span class="line-icon text-white"><i
  1099. class="las la-plus"></i></span></span>
  1100. </a>
  1101. </div>
  1102. </div>
  1103. <div class="m-t-sm">
  1104. <ul class="ul2list_0 w-100 mt-10 p-2 pl-10" id = 'subreports-filters-list'>
  1105. </ul>
  1106. </div>
  1107. </div>
  1108. </div>
  1109. </div>
  1110. </div>
  1111. </div>
  1112. </div>
  1113. </div>
  1114. <div id="detailScreenBody" class="d-none">
  1115. <div class="detail-screen-card card">
  1116. <div class="card-body">
  1117. <textarea type="text" class="form-control hidden" id="txt_detailonclick" placeholder="On Click"></textarea>
  1118. <div class="row mx-0 biz-select2-wrap">
  1119. <div class="col-sm-6 pl-sm-0">
  1120. <select id="detailPrimaryKeyColumns"><option value="0">Select Column</option></select>
  1121. </div>
  1122. <div class="col-sm-6 pr-sm-0 mb-15 mb-sm-0">
  1123. <select id="detailInstalledApps" class="form-control"><option value="0">Select App</option></select>
  1124. <input type="hidden" id="hfDetailInstalledApps" />
  1125. </div>
  1126. </div>
  1127. </div>
  1128. </div>
  1129. </div>
  1130. </div>
  1131. <div class="modal-footer pa-10" id="linkreport_footer">
  1132. <button type="button" class="btn btn-sm btn-light mr-auto" id="btnLinkReportClose">Cancel</button>
  1133. <button type="button" class="btn btn-sm btn-theme" id="btnLinkReportSave">Save</button>
  1134. </div>
  1135. </section>`;
  1136. return html;
  1137. }
  1138. del_loadSubReports_Section() {
  1139. let html = `<div id="divsubrpt" class="sub-report-block card" data-subreportid="" data-subreportcolumnid ="">
  1140. <header class="sub-report-head pb-0">
  1141. <input type="hidden" id="hfsubRpt" value="0">
  1142. <h6 class="required">
  1143. Sub report
  1144. </h6>
  1145. <span>
  1146. <i class="las la-braille dragger"></i>
  1147. <i class="fa fa-times pull-right mb-20 remove_subrpt" id="remove_subrpt" aria-hidden="true"></i>
  1148. </span>
  1149. </header>
  1150. <div class="">
  1151. <div class="report-body">
  1152. <div class="form-group">
  1153. <div id="divsubrpt_0" data-select2-id="divsubrpt_">
  1154. <div id="div_Kanban" class="mb-10">
  1155. <select
  1156. class="select_reports custom-select select2-hidden-accessible js-example-basic-single js-states form-control"
  1157. id="cmdsub"></select>
  1158. </div>
  1159. </div>
  1160. <div class="form-row">
  1161. <div class="col">
  1162. <div id="div_mainreportColumn">
  1163. <select id="cmbmainrptCols" class="floating-label-group form-control cmbFiltercols">
  1164. <option value="0">Select Column</option>
  1165. </select>
  1166. </div>
  1167. </div>
  1168. <div class="col-auto">
  1169. <select id="slctdoperater" class="form-control custom-select mb-10">
  1170. <option value="eq">=</option>
  1171. <option value="neq">!=</option>
  1172. <option value="gt">&gt;</option>
  1173. <option value="gte">&gt;=</option>
  1174. <option value="lt">&lt;</option>
  1175. <option value="lte">&lt;=</option>
  1176. </select>
  1177. </div>
  1178. <div class="col">
  1179. <div id="div_subColumn">
  1180. <select id="cmbsbrptCols" class="form-control custom-select mb-10">
  1181. </select>
  1182. </div>
  1183. </div>
  1184. <div class="col-auto">
  1185. <a class="btn btn-icon btn-theme btnAdd" id="btnAdd" onclick="" ;="">
  1186. <span class="btn-icon-wrap"><span class="line-icon text-white"><i class="las la-plus"></i></span></span>
  1187. </a>
  1188. </div>
  1189. </div>
  1190. <div class="m-t-sm form-group">
  1191. <ul class="ul2list w-100 ulFilters" id="ulFilters">
  1192. </ul>
  1193. </div>
  1194. </div>
  1195. </div>
  1196. </div></div>`;
  1197. return html;
  1198. }
  1199. loadSubReports_Section_old() {
  1200. let html = `<div id="divsubrpt_{{subreport_count}}" class="sub-report-block card" data-subreportid="" data-subreportcolumnid ="">
  1201. <header class="sub-report-head pb-0">
  1202. <input type="hidden" id="hfsubRpt_{{subreport_count}}" value="0">
  1203. <h6 class="required">
  1204. Sub report
  1205. </h6>
  1206. <span>
  1207. <i class="las la-braille dragger"></i>
  1208. <i class="fa fa-times pull-right mb-20 remove_subrpt" id="remove_subrpt_{{subreport_count}}" aria-hidden="true"></i>
  1209. </span>
  1210. </header>
  1211. <div class="">
  1212. <div class="report-body">
  1213. <div class="form-group">
  1214. <div id="divsubrpt_0" data-select2-id="divsubrpt_">
  1215. <div id="div_Kanban" class="mb-10">
  1216. <select
  1217. class="select_reports custom-select select2-hidden-accessible js-example-basic-single js-states form-control"
  1218. id="cmdsub_{{subreport_count}}"></select>
  1219. </div>
  1220. </div>
  1221. <div class="form-row">
  1222. <div class="col">
  1223. <div id="div_mainreportColumn">
  1224. <select id="cmbmainrptCols_{{subreport_count}}" class="floating-label-group form-control cmbFiltercols">
  1225. <option value="0">Select Column</option>
  1226. </select>
  1227. </div>
  1228. </div>
  1229. <div class="col-auto">
  1230. <select id="slctdoperater_{{subreport_count}}" class="form-control custom-select mb-10">
  1231. <option value="eq">=</option>
  1232. <option value="neq">!=</option>
  1233. <option value="gt">&gt;</option>
  1234. <option value="gte">&gt;=</option>
  1235. <option value="lt">&lt;</option>
  1236. <option value="lte">&lt;=</option>
  1237. </select>
  1238. </div>
  1239. <div class="col">
  1240. <div id="div_subColumn">
  1241. <select id="cmbsbrptCols_{{subreport_count}}" class="form-control custom-select mb-10">
  1242. <option value="0" selected="">Sub report Column</option>
  1243. </select>
  1244. </div>
  1245. </div>
  1246. <div class="col-auto">
  1247. <a class="btn btn-icon btn-theme btnAdd" id="btnAdd_{{subreport_count}}" onclick="" ;="">
  1248. <span class="btn-icon-wrap"><span class="line-icon text-white"><i class="las la-plus"></i></span></span>
  1249. </a>
  1250. </div>
  1251. </div>
  1252. <div class="m-t-sm form-group">
  1253. <ul class="ul2list_{{subreport_count}} w-100 ulFilters" id="ulFilters">
  1254. </ul>
  1255. </div>
  1256. </div>
  1257. </div>
  1258. </div></div>`;
  1259. return html;
  1260. }
  1261. loadToolTipTemplateForm() {
  1262. let html = `<form id="" method="post" class="" data-formuniquekey="" data-validate="parsley"><header class="b-b bg-white modal-header"><strong class="text-dark Title" id="div_FormName"> Pivot </strong></header><div class="bg-light control-sorting modal-body bg-white" ><div id="" class="clear bizgaze_FormErrorMessages"></div><div class="section_Pivot card">
  1263. <div class="card-body"><div class="row">
  1264. <div class="col-sm-6"><div id="divToolTipTemplateColumns" class="floating-label-form-group-with-value"><label for="lbl" id="lbl_ToolTipColumns">ToolTip Column<span class="text-danger hidden"> *</span></label>
  1265. <select id="ToolTipColumns_AutoComplete" class="form-control text-control required" style="width:100%"><option value="0" selected="">Select ToolTip Column</option></select>
  1266. </div></div>
  1267. <div class="col-sm-6"><div id="div_AggType" class="floating-label-form-group floating-label-form-group-with-value"><label for="lbl" id="lbl_Values">Aggregation<span class="text-danger hidden"> *</span></label>
  1268. <select id="PivotDateType" class="form-control text-control PivotDateType required" style="width:100%"><option value="0" selected="">Select Aggregation</option>
  1269. <option value="1">count</option>
  1270. <option value="2">sum</option>
  1271. <option value="3">average</option>
  1272. <option value="4">max</option>
  1273. <option value="5">min</option>
  1274. <option value="6">month</option>
  1275. <option value="7">year</option>
  1276. </select>
  1277. </div></div>
  1278. <div class="col-sm-6"><div id="div_backgroundColor" class="floating-label-form-group-with-value"><label for="lbl" id="lbl_backgroundColor">Background Color<span class="text-danger hidden"> *</span></label>
  1279. <input type="color" style="width:30px; float:left; height:30px; background:transparent; border-color: transparent;margin-right:10px;color:white;margin-top:-5px" id="backgroundColor">
  1280. </div></div>
  1281. <div class="col-sm-6" id="div_TitleFontColor"><div class="floating-label-form-group-with-value"><label for="lbl" id="lbl_TitleFontColor">Title Font Color<span class="text-danger hidden"> *</span></label>
  1282. <input type="color" style="width:30px; float:left; height:30px; background:transparent; border-color: transparent;margin-right:10px;color:white;margin-top:-5px" id="titleFontColor">
  1283. </div></div>
  1284. <div class="col-sm-6" id="div_TitleFontSize"><div class="floating-label-form-group-with-value"><label for="lbl" id="lbl_titleFontSize">Title Font Size<span class="text-danger hidden"> *</span></label>
  1285. <input type="text" class="form-control" id="txt_TitleFontSize" placeholder="Title Font Size">
  1286. </div></div>
  1287. <div class="col-sm-6" id="div_BodyFontSize"><div class="floating-label-form-group-with-value"><label for="lbl" id="lbl_BodyFontSize">Body Font Size<span class="text-danger hidden"> *</span></label>
  1288. <input type="text" class="form-control" id="txt_BodyFontSize" placeholder="Body Font Size">
  1289. </div></div>
  1290. <div class="col-sm-6" id="div_bodyColor"><div class="floating-label-form-group-with-value"><label for="lbl" id="lbl_bodyColor">body Font Color<span class="text-danger hidden"> *</span></label>
  1291. <input type="color" style="width:30px; float:left; height:30px; background:transparent; border-color: transparent;margin-right:10px;color:white;margin-top:-5px" id="bodyFontColor">
  1292. </div></div>
  1293. </div></div></div></div><footer class="bg-white modal-footer" id="formFooter"><a href="javascript:;" id="btn_Close" class="btn btn-light btn-sm mr-auto" onclick=""> Close </a><a href="javascript:;" id="btn_ApplyTemplate" class="btn btn-primary btn-sm" > Apply </a></footer></form>`;
  1294. return html;
  1295. }
  1296. loadRoleSettings() {
  1297. let html = '<div class="row pull-right FilterSection"><a id="btnFilterPlusClick" onclick ="Unibase.Platform.Analytics.Components.CommonFilter.Instance().loadFilterSection()";><i class="fa fa-plus pull-right" id="FilterPlusClick" aria-hidden="true"></i></a></div>' +
  1298. '<div id="FilterSection">' +
  1299. '<div class="card">' +
  1300. '<div class="card-body">' +
  1301. '<a id="RemoveSubFilterSection" onclick ="Unibase.Platform.Analytics.Components.CommonFilter.Instance().RemoveFilterSection()"><i class="fa fa-times pull-right mb-20 hidden" id="RemoveFilter"></i></a>' +
  1302. '<input type="hidden" id="hdn_customcontrol" class="value-control" value="Unibase.Platform.Analytics.Components.CommonFilter.Instance().getobj();">' +
  1303. '<div class="col-sm-12"><div id="div_Widgets" class="floating-label-form-group-with-value"><label for="lbl" id="lbl_Widgets">Widgets<span class="text-danger hidden"> *</span></label>' +
  1304. '<select id="Widget_AutoComplete" class="form-control text-control Widgets_AutoComplete required" onchange ="Unibase.Platform.Analytics.Components.CommonFilter.Instance().loadWidgetColumns()" style="width: 100 % "><option value="0" selected="">Select Widget</option></select><input type="hidden" id="hfAutoComplete_Widget" class="hfAutoCompleteId_Widget form - control value - control" data-isdynamic="true"/>' +
  1305. '</div></div>' +
  1306. '<div class="col-sm-12"><div id="div_Datalists" class="floating-label-form-group-with-value"><label for="lbl" id="lbl_Datalists">Datalists<span class="text-danger hidden"> *</span></label>' +
  1307. '<select id="Datalists_AutoComplete" onchange="Unibase.Platform.Analytics.Components.CommonFilter.Instance().loadDataLists()" class="form-control text-control Datalists_AutoComplete required" style="width:100%"><option value="0" selected="">Select DataList</option></select><input type="hidden" id="hfAutoComplete_DataList" class="hfAutoCompleteId_DataList form-control value-control" data-isdynamic="true"/>' +
  1308. '</div></div>' +
  1309. '<div class="col-sm-12" id="div_ControlType"><div class="floating-label-form-group-with-value"><label for= "lbl" id = "lbl_ControlType" >Control Type<span class="text-danger hidden">*</span></label>' +
  1310. '<select id="ControlType" class="form-control text-control ControlType required" style="width:100%"><option value="0" selected="">Select Control Type</option>' +
  1311. '<option value="1">Select2</option>' +
  1312. '<option value="2">AutoComplete</option>' +
  1313. '<option value="3">DropDownList</option>' +
  1314. '</select>' +
  1315. '</div></div></div>' +
  1316. '<div class="row">' +
  1317. '<div class="col-sm-4"><div id="div_ValueColumns" class="floating-label-form-group-with-value"><label for="lbl" id="lbl_ValueColumns">Value Column<span class="text-danger hidden"> *</span></label>' +
  1318. '<select id = "ValueColumns_Select" class="form-control text-control ValueColumns_Select required" style = "width:100%" > <option value="0" selected = "">Select Value Column</option></select>' +
  1319. '</div></div>' +
  1320. '<div class="col-sm-4"><div id="div_TextColumns" class="floating-label-form-group-with-value"><label for="lbl" id="lbl_TextColumns">Text Column<span class="text-danger hidden"> *</span></label>' +
  1321. '<select id = "TextColumns_Select" class="form-control text-control TextColumns_Select required" style = "width:100%"><option value="0" selected = "">Select Text Column</option></select>' +
  1322. '</div></div>' +
  1323. '<div class="col-sm-3" id="div_WidgetColumns"><div class="floating-label-form-group-with-value"><label for="lbl" id="lbl_WidgetColumns">Mapped Columns<span class="text-danger hidden"> *</span></label>' +
  1324. '<select id = "WidgetColumns_Select" class="form-control text-control WidgetColumns_Select required" style = "width:100%"><option value="0" selected = "">Select Widget Column</option></select>' +
  1325. '</div></div>' +
  1326. '<div class="col-sm-1 my-auto text-right mt-30"><a class="btn btn-success" id="btnAddFilter" onclick="Unibase.Platform.Analytics.Components.CommonFilter.Instance().AddFilter()";><i class="fa fa-plus text-white"></i></a></div>' +
  1327. '<div class="col-sm-12">' +
  1328. '<div class="row mt-20 mb-20 ml-0">' +
  1329. '<div class="col-sm-3"><strong>DataList Name</strong></div>' +
  1330. '<div class="col-sm-2"><strong>Value Column</strong></div>' +
  1331. '<div class="col-sm-2"><strong>Text Column</strong></div>' +
  1332. '<div class="col-sm-3"><strong>Mapped Column</strong></div>' +
  1333. '</div></div></div>' +
  1334. '<div id="FilterExp"></div></div>';
  1335. '</div></div>';
  1336. return html;
  1337. }
  1338. loadLeftNav() {
  1339. let html = `<div class="collapse-simple">
  1340. <div class="card">
  1341. <div class="card-header">
  1342. <a role="button" data-toggle="collapse" href="#re_info" aria-expanded="true">Report Info</a>
  1343. </div>
  1344. <div id="re_info" class="collapse show">
  1345. <div class="card-body">
  1346. <input type="hidden" id="txt_reportid" value="0">
  1347. <div class="form-group" id="displaynameDiv">
  1348. <label> Display Name <span class="text-danger hidden"> *</span> </label>
  1349. <input type="text" class="form-control mb-10" id="txt_displayname" placeholder="Display Name"
  1350. value="New Report">
  1351. </div>
  1352. <div class="form-group hidden" id="tableTypeSelectDiv">
  1353. <label> Table Type <span class="text-danger hidden"> *</span> </label>
  1354. <select class="form-control custom-select " id="tableTypeSelect" required>
  1355. <option value="0" selected="">- Select Table Type -</option>
  1356. <option value="1">Report</option>
  1357. <option value="2">Autocomplete</option>
  1358. </select>
  1359. </div>
  1360. <div class="form-group hidden">
  1361. <label for="txt_dynamicparameters">
  1362. Dynamic Parameters
  1363. </label>
  1364. <textarea type="text" class="form-control" id="txt_dynamicparameters"
  1365. placeholder="Dynamic Parameters">
  1366. </textarea>
  1367. </div>
  1368. <div class="form-group hidden">
  1369. <label for="dependecyapps">
  1370. Dependency App
  1371. </label>
  1372. <select class="js-example-basic-multiple js-states form-control" id="dependecyapps"
  1373. multiple="multiple">
  1374. </select>
  1375. <input type="hidden" id="hfAutoComplete_dependency"
  1376. class="hfAutoCompleteId_dependency' form-control value-control" data-isdynamic="true" />
  1377. </div>
  1378. <div class="form-group">
  1379. <label for="InstalledApp_AutoComplete">
  1380. Installed App
  1381. </label>
  1382. <select class="form-control" id="InstalledApp_AutoComplete" placeholder="InstalledApp">
  1383. </select>
  1384. <input type="hidden" id="hfAutoComplete_InstalledApp"
  1385. class="hfAutoCompleteId_InstalledApp' form-control value-control" data-isdynamic="true" />
  1386. </div>
  1387. <div class="form-group hidden">
  1388. <label for="connectedapps">
  1389. Connected Apps
  1390. </label>
  1391. <select class="form-control" id="connectedapps" multiple="multiple">
  1392. </select>
  1393. </div>
  1394. <div class="form-group">
  1395. <label for="connectedreports">
  1396. Connected Reports
  1397. </label>
  1398. <select class="form-control" id="connectedreports" multiple="multiple">
  1399. </select>
  1400. </div>
  1401. <div class="form-group">
  1402. <label for="searchcolumns">
  1403. Search Columns
  1404. </label>
  1405. <select class="form-control" id="searchcolumns" multiple="multiple">
  1406. </select>
  1407. </div>
  1408. <div class="form-group">
  1409. <label for="txt_onclick">
  1410. On Click
  1411. </label>
  1412. <textarea value="" class="form-control" id="txt_onclick" placeholder="On Click"></textarea>
  1413. </div>
  1414. <div class="form-group">
  1415. <label for="txt_js">
  1416. Js
  1417. </label>
  1418. <textarea value="" class="form-control" id="txt_js"
  1419. placeholder="Js to execute in table view"></textarea>
  1420. </div>
  1421. <div class="form-group hidden">
  1422. <label for="identitycolumns">
  1423. Identity Columns
  1424. </label>
  1425. <select class="form-control" id="identitycolumns" multiple="multiple">
  1426. </select>
  1427. </div>
  1428. <div class="form-group">
  1429. <label for="notification_checkbox">
  1430. Notification Report
  1431. </label>
  1432. <div>
  1433. <input type="checkbox" class="chkNotification mr-10" onclick=""
  1434. id="notification_checkbox">IsNotificationReport
  1435. </div>
  1436. </div>
  1437. <div class="form-group">
  1438. <label for="count_checkbox">
  1439. Count
  1440. </label>
  1441. <div>
  1442. <input type="checkbox" class="chkCount mr-10" onclick="" id="count_checkbox"
  1443. checked="true">EnableCount
  1444. </div>
  1445. </div>
  1446. <div class="form-group">
  1447. <label for="enableglobaldatepicker_checkbox">
  1448. Date Picker
  1449. </label>
  1450. <div>
  1451. <input type="checkbox" class="chkCount mr-10" onclick=""
  1452. id="enableglobaldatepicker_checkbox">Enable Global DatePicker
  1453. </div>
  1454. </div>
  1455. <div class="form-group mb-0 hidden">
  1456. <div class="section-head mt-20 mb-10">Select Parameter
  1457. <button class="btn btn-theme btn-xs float-right mr-10" id="grp_reset_btn"
  1458. onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().addParameter()">
  1459. <i class="las la-plus"></i> Add</button>
  1460. </div>
  1461. <div class="biz-mini-adj-drawer-wrap" id="parameter-options">
  1462. <div id="parameter-dropdown">
  1463. </div>
  1464. </div>
  1465. </div>
  1466. </div>
  1467. </div>
  1468. </div>
  1469. <div class="card hidden">
  1470. <div class="card-header">
  1471. <a role="button" data-toggle="collapse" href="#no_of_records" aria-expanded="true">Number of Records </a>
  1472. </div>
  1473. <div id="no_of_records" class="collapse show">
  1474. <div class="card-body">
  1475. <input type="number" class="form-control mb-10" id="txt_totalrecords" placeholder="Total Records">
  1476. </div>
  1477. </div>
  1478. </div>
  1479. <div class="card hidden" id="XAxis">
  1480. <div class="card-header">
  1481. <a role="button" data-toggle="collapse" class="custom-collapse p-0 flex-between-center c-gap-10"
  1482. href="#x_axs" aria-expanded="true">
  1483. <span>X-Axis</span>
  1484. <span class="d-flex align-items-center c-gap-5 btn-group mr-15">
  1485. <div class="dropdown"><button
  1486. class="btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover d-22"
  1487. id="xaxis_setting_btn" data-toggle="dropdown"><span class="btn-icon-wrap">
  1488. <i class="fa fa-cog"></i></span></button>
  1489. <div class="dropdown-menu pa-5" onclick="event.stopPropagation();"><span
  1490. class="dropdown-item flex-between-center c-gap-10" href="javascript:;"><label
  1491. for="IsNumberAbbrevation_x" class="mb-0 cursor-pointer">Number
  1492. abbrevation</label><input type="checkbox" id="IsNumberAbbrevation_x"
  1493. onchange="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().isNumberAbbreviation('x');"></span>
  1494. </div>
  1495. </div>
  1496. <button class="btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover d-22 reset-btn"
  1497. id="xaxis_reset_btn"
  1498. onclick="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().resetSelect2Columns('xaxis_select')"
  1499. data-tooltip="true" title="Reset">
  1500. <span class="btn-icon-wrap"><i class="fa fa-repeat"></i></span>
  1501. </button>
  1502. </span>
  1503. </a>
  1504. </div>
  1505. <div id="x_axs" class="collapse show">
  1506. <div class="card-body">
  1507. <select class="form-control custom-select" id="xaxis_select">
  1508. <option selected>- Select Columns -</option>
  1509. </select>
  1510. <div id="xaxis_selected_columns" class="dsl-block-wrap mt-10">
  1511. </div>
  1512. </div>
  1513. </div>
  1514. </div>
  1515. <div class="card hidden" id="YAxis">
  1516. <div class="card-header">
  1517. <a role="button" data-toggle="collapse" class="custom-collapse p-0 flex-between-center c-gap-10"
  1518. href="#y_axs" aria-expanded="true">
  1519. <span>Y-Axis</span>
  1520. <span class="d-flex align-items-center c-gap-5 btn-group mr-15">
  1521. <div class="dropdown"><button
  1522. class="btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover d-22"
  1523. id="yaxis_setting_btn" data-toggle="dropdown"><span class="btn-icon-wrap"><i
  1524. class="fa fa-cog"></i></span></button>
  1525. <div class="dropdown-menu pa-5" onclick="event.stopPropagation();"><span
  1526. class="dropdown-item flex-between-center c-gap-10" href="javascript:;"><label
  1527. for="IsNumberAbbrevation_y" class="mb-0 cursor-pointer">Number
  1528. abbrevation</label><input type="checkbox" id="IsNumberAbbrevation_y"
  1529. onchange="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().isNumberAbbreviation('y');"></span>
  1530. </div>
  1531. </div><button class="btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover d-22 reset-btn"
  1532. onclick="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().resetSelect2Columns('yaxis_select')"
  1533. data-tooltip="true" title="Reset"><span class="btn-icon-wrap"><i
  1534. class="fa fa-repeat"></i></span></button>
  1535. </span></a>
  1536. </div>
  1537. <div id="y_axs" class="collapse show">
  1538. <div class="card-body">
  1539. <select class="form-control custom-select" id="yaxis_select">
  1540. <option selected>- Select Columns -</option>
  1541. </select>
  1542. <div id="yaxis_selected_columns" class="dsl-block-wrap mt-10">
  1543. </div>
  1544. </div>
  1545. </div>
  1546. </div>
  1547. <div class="card hidden" id="div_base_column">
  1548. <div class="card-header">
  1549. <a role="button" data-toggle="collapse" class="custom-collapse p-0 flex-between-center c-gap-10"
  1550. href="#base_column" aria-expanded="true">
  1551. <span>Chart Base Column</span>
  1552. <button class="btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover d-22 reset-btn mr-15"
  1553. onclick="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().resetSelect2Columns('base_column_select')"
  1554. data-tooltip="true" title="Reset"><span class="btn-icon-wrap">
  1555. <i class="fa fa-repeat"></i></span>
  1556. </button>
  1557. </a>
  1558. </div>
  1559. <div id="base_column" class="collapse show">
  1560. <div class="card-body">
  1561. <select class="form-control custom-select" id="base_column_select">
  1562. <option selected>- Select Columns -</option>
  1563. </select>
  1564. <div id="base_column_selected_columns" class="dsl-block-wrap mt-10">
  1565. </div>
  1566. </div>
  1567. </div>
  1568. </div>
  1569. <div class="card table-metrics divselect2_GroupBy hidden" id="GroupBy">
  1570. <div class="card-header">
  1571. <a role="button" data-toggle="collapse" class="custom-collapse p-0 flex-between-center c-gap-10"
  1572. href="#groupby_grp" aria-expanded="true">
  1573. <span>Groups</span>
  1574. <button class="btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover d-22 reset-btn mr-15"
  1575. onclick="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().resetSelect2Columns('groupby_select')"
  1576. data-tooltip="true" title="Reset"><span class="btn-icon-wrap">
  1577. <i class="fa fa-repeat"></i></span>
  1578. </button>
  1579. </a>
  1580. </div>
  1581. <div id="groupby_grp" class="collapse show">
  1582. <div class="card-body">
  1583. <select class="form-control custom-select" id="groupby_select">
  1584. <option selected>- Select Columns -</option>
  1585. </select>
  1586. <div id="groupby_selected_columns" class="dsl-block-wrap mt-10">
  1587. </div>
  1588. </div>
  1589. </div>
  1590. </div>
  1591. <div class="card table-metrics" id="Categories">
  1592. <div class="card-header">
  1593. <a role="button" data-toggle="collapse" class="custom-collapse p-0 flex-between-center c-gap-10"
  1594. href="#categories_grp" aria-expanded="true">
  1595. <span>Categories</span>
  1596. <button class="btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover d-22 reset-btn mr-15"
  1597. onclick="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().resetSelect2Columns('categories_select')"
  1598. data-tooltip="true" title="Reset">
  1599. <span class="btn-icon-wrap">
  1600. <i class="fa fa-repeat"></i>
  1601. </span>
  1602. </button>
  1603. </a>
  1604. </div>
  1605. <div id="categories_grp" class="collapse show">
  1606. <div class="card-body">
  1607. <select class="form-control custom-select" id="categories_select">
  1608. <option selected>- Select Columns -</option>
  1609. </select>
  1610. <div id="categories_selected_columns" class="dsl-block-wrap mt-10">
  1611. </div>
  1612. </div>
  1613. </div>
  1614. </div>
  1615. <div class="card hidden" id="linechart">
  1616. <div class="card-header">
  1617. <a role="button" data-toggle="collapse" class="custom-collapse p-0 flex-between-center c-gap-10"
  1618. href="#line_chart" aria-expanded="true">
  1619. <span>Line Chart</span><button
  1620. class="btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover d-22 reset-btn mr-15"
  1621. onclick="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().resetSelect2Columns('yaxis_select')"
  1622. data-tooltip="true" title="Reset"><span class="btn-icon-wrap">
  1623. <i class="fa fa-repeat"></i></span></button>
  1624. </a>
  1625. </div>
  1626. <div id="line_chart" class="collapse show">
  1627. <div class="card-body">
  1628. <select class="form-control custom-select" id="line_chart_select">
  1629. <option selected>- Select Columns -</option>
  1630. </select>
  1631. <div id="line_chart_selected_columns" class="dsl-block-wrap mt-10">
  1632. </div>
  1633. </div>
  1634. </div>
  1635. </div>
  1636. <div class="card table-metrics" id="SortColumns">
  1637. <div class="card-header">
  1638. <a role="button" data-toggle="collapse" class="custom-collapse p-0 flex-between-center c-gap-10"
  1639. href="#sortColumns" aria-expanded="true">
  1640. <span>Sort Columns</span>
  1641. <button class="btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover d-22 reset-btn mr-15"
  1642. onclick="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().resetSelect2Columns('sortby_select')"
  1643. data-tooltip="true" title="Reset"><span class="btn-icon-wrap"><i class="fa fa-repeat"></i></button>
  1644. </a>
  1645. </div>
  1646. <div id="sortColumns" class="collapse show">
  1647. <div class="card-body">
  1648. <select class="form-control custom-select" id="sortColumns_select">
  1649. <option selected value="">- Select Columns -</option>
  1650. </select>
  1651. <div id="sort_selected_columns" class="dsl-block-wrap mt-10">
  1652. </div>
  1653. </div>
  1654. </div>
  1655. </div>
  1656. </div>`;
  1657. return html;
  1658. }
  1659. static Instance() {
  1660. return new ReportBuilder_Template();
  1661. }
  1662. }
  1663. Reports.ReportBuilder_Template = ReportBuilder_Template;
  1664. })(Reports = Analytics.Reports || (Analytics.Reports = {}));
  1665. })(Analytics = Platform.Analytics || (Platform.Analytics = {}));
  1666. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  1667. })(Unibase || (Unibase = {}));
  1668. var Unibase;
  1669. (function (Unibase) {
  1670. let Platform;
  1671. (function (Platform) {
  1672. let Analytics;
  1673. (function (Analytics) {
  1674. let Components;
  1675. (function (Components) {
  1676. class CalendarViewerSettings extends Platform.Core.BaseComponent {
  1677. constructor() {
  1678. super();
  1679. this.reportManager = Analytics.Managers.ReportManager.Instance();
  1680. this.viewerManager = Analytics.Managers.ViewerManager.Instance();
  1681. this.ReportId = 0;
  1682. }
  1683. jsFiles() {
  1684. return ["platform/analytics/components/calendarviewer/calendarviewer.settings.js"];
  1685. }
  1686. cssFiles() {
  1687. return [];
  1688. }
  1689. html(id, containerid) {
  1690. var html = `<div class="b-b bg-white modal-header">
  1691. <strong class="text-dark">Calendar</strong>
  1692. </div>
  1693. <div class="modal-body" id="CalendarViewer_modal">
  1694. <div id="divCalendar_ErrorMessage"></div>
  1695. <div class="card">
  1696. <div class="card-body">
  1697. <div class="row">
  1698. <div class="col-sm-6 mb-20">
  1699. <div id="div_CalendarName" class="floating-label-form-group" style="">
  1700. <label for="calendarname">CalendarName</label><input type="text" id="CalendarName"
  1701. class="form-control value-control floating-label-control" data-placeholder="CalendarName"
  1702. placeholder="Calendar Name" data-label="Calendar Name">
  1703. </div>
  1704. </div>
  1705. <div class="col-sm-4">
  1706. <div id="div_DisplayName" class="floating-label-form-group floating-label-form-group-with-value">
  1707. <label for="displayname" id="lbl_DisplayName">Display Name</label>
  1708. <input type="text" id="Txt_Display_Name" class="form-control value-control floating-label-control" placeholder="Display Name" data-placeholder="Display Name" data-label="Display Name">
  1709. </div>
  1710. </div>
  1711. <div class="col-sm-6 mb-20">
  1712. <div id="div_ValueColumn">
  1713. <label for="valuecolumn">Value Column</label><select id="ValueColumn_AutoComplete"
  1714. class="form-control text-control required">
  1715. <option value="0" selected="">Select Value Column</option>
  1716. </select>
  1717. </div>
  1718. </div>
  1719. <div class="col-sm-6 mb-20">
  1720. <div id="div_TextColumn">
  1721. <label for="textcolumn">Text Column</label><select id="TextColumn_AutoComplete"
  1722. class="form-control text-control required">
  1723. <option value="0" selected="">Select Text Column</option>
  1724. </select>
  1725. </div>
  1726. </div>
  1727. <div class="col-sm-6 mb-20">
  1728. <div id="div_FromDate">
  1729. <label for="fromdate">FromDate</label>
  1730. <div class="input-group"><select type="text" id="date_FromDate"
  1731. class="form-control value-control datepicker-input hasDatepicker floating-label-control"
  1732. placeholder="From Date " data-label="From Date ">
  1733. <option value="0" selected="">Select From Date Column</option>
  1734. </select>
  1735. </div>
  1736. </div>
  1737. </div>
  1738. <div class="col-sm-6">
  1739. <div id="div_ToDate">
  1740. <label for="fromdate">ToDate</label>
  1741. <div class="input-group"><select type="text" id="date_ToDate"
  1742. class="form-control value-control datepicker-input hasDatepicker floating-label-control"
  1743. placeholder="To Date " data-label="To Date ">
  1744. <option value="0" selected="">Select To Date Column</option>
  1745. </select>
  1746. </div>
  1747. </div>
  1748. </div>
  1749. <div class="col-sm-6 align-self-end">
  1750. <label for="showCalTime"><strong>Show Time</strong></label><label id="lblshowCalTime"
  1751. class="switch form-inline pull-right" style=""><input id="showCalTime"
  1752. data-group="showCalTime" type="checkbox" data-isdynamic="false"><span></span>
  1753. </label>
  1754. </div>
  1755. </div>
  1756. </div>
  1757. </div>
  1758. </div>
  1759. <div class="bg-white modal-footer">
  1760. <a class="btn btn-light btn-sm btn-center mr-auto" id="btnClose">Close</a>
  1761. <a class="btn btn-primary btn-center btn-sm text-white" id="btnSave">Save</a>
  1762. </div>`;
  1763. return html;
  1764. }
  1765. load(id, containerid, callback) {
  1766. var instance = this;
  1767. var reportid = Number(instance.ReportId);
  1768. $("#CalendarViewer_modal").css("height", $(window).outerHeight() - (Number($(".modal-header").outerHeight()) + Number($(".modal-footer").outerHeight())) + 'px');
  1769. var data = [];
  1770. this.reportManager.getColumns(reportid).then(function (response) {
  1771. var res = response.result;
  1772. for (let i = 0; i < res.length; i++) {
  1773. data.push({ id: res[i].AliasName, text: res[i].AliasName });
  1774. }
  1775. $("#date_FromDate").select2({
  1776. placeholder: 'Select From Date Column',
  1777. data: data,
  1778. });
  1779. $("#date_ToDate").select2({
  1780. placeholder: 'Select To Date Column',
  1781. data: data,
  1782. });
  1783. $("#TextColumn_AutoComplete").select2({
  1784. placeholder: 'Select Text Column',
  1785. data: data,
  1786. allowClear: true
  1787. });
  1788. $("#ValueColumn_AutoComplete").select2({
  1789. placeholder: 'Select Value Column',
  1790. data: data,
  1791. allowClear: true
  1792. });
  1793. if (id != 0) {
  1794. instance.getCalendarById(id);
  1795. }
  1796. });
  1797. $("#btnClose").click(function () {
  1798. $('#' + containerid).modal('hide');
  1799. $('#' + containerid).remove();
  1800. });
  1801. jQuery("#btnSave").unbind().click(function () {
  1802. instance.saveCalendar(id, reportid, containerid, null);
  1803. });
  1804. }
  1805. getCalendarById(id) {
  1806. var instance = this;
  1807. instance.viewerManager.getCalendarView(id).then(function (response) {
  1808. instance.response = response.result;
  1809. $("#Txt_Display_Name").val(instance.response.DisplayName ? instance.response.DisplayName.trim() : instance.response.CalendarName.trim());
  1810. $("#CalendarName").val(instance.response.CalendarName.trim()).attr("readonly", 'true').css("cursor", "not-allowed");
  1811. $("#ValueColumn_AutoComplete").val(instance.response.ValueColumn).trigger("change");
  1812. $("#TextColumn_AutoComplete").val(instance.response.TextColumn).trigger("change");
  1813. $("#date_FromDate").val(instance.response.FromDateColumn).trigger("change");
  1814. $("#date_ToDate").val(instance.response.ToDateColumn).trigger("change");
  1815. });
  1816. }
  1817. saveCalendar(id, reportid, containerid, obj) {
  1818. var instance = this;
  1819. var PostData = obj;
  1820. if (obj == null) {
  1821. PostData = {
  1822. CalendarViewId: Number(id),
  1823. CalendarName: $("#CalendarName").val(),
  1824. ValueColumn: $("#ValueColumn_AutoComplete option:selected").text(),
  1825. TextColumn: $("#TextColumn_AutoComplete option:selected").text(),
  1826. ToDateColumn: $("#date_ToDate option:selected").text(),
  1827. FromDateColumn: $("#date_FromDate option:selected").text(),
  1828. ReportId: Number(this.ReportId),
  1829. DisplayModeTypeId: 1,
  1830. ViewAll: instance.response && instance.response.ViewAll || true,
  1831. DisplayName: $("#Txt_Display_Name").val().toString().trim(),
  1832. IsFromUI: Number(id) == 0 ? true : false,
  1833. };
  1834. }
  1835. this.fileCacheHelper.loadJsFile("platform/analytics/managers/reportmanager.js", function () {
  1836. instance.viewerManager.saveCalendarView(PostData).then(function (response) {
  1837. if (response.status == Unibase.Data.Status.Error) {
  1838. MessageHelper.Instance().showError(response.message, 'divCalendar_ErrorMessage');
  1839. }
  1840. else {
  1841. MessageHelper.Instance().showSuccess(response.message, '');
  1842. $('#' + containerid).modal('hide');
  1843. $('#' + containerid).remove();
  1844. }
  1845. });
  1846. });
  1847. }
  1848. static Instance() {
  1849. if (this._instance === undefined)
  1850. this._instance = new Unibase.Platform.Analytics.Components.CalendarViewerSettings();
  1851. return this._instance;
  1852. }
  1853. }
  1854. Components.CalendarViewerSettings = CalendarViewerSettings;
  1855. })(Components = Analytics.Components || (Analytics.Components = {}));
  1856. })(Analytics = Platform.Analytics || (Platform.Analytics = {}));
  1857. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  1858. })(Unibase || (Unibase = {}));
  1859. let calmonths = [];
  1860. var Unibase;
  1861. (function (Unibase) {
  1862. let Platform;
  1863. (function (Platform) {
  1864. let Analytics;
  1865. (function (Analytics) {
  1866. let Viewers;
  1867. (function (Viewers) {
  1868. class CalendarViewer extends Platform.Core.BaseComponent {
  1869. constructor() {
  1870. super();
  1871. this.appInstalledappid = 0;
  1872. this.reportManager = Analytics.Managers.ReportManager.Instance();
  1873. this.viewerManager = Analytics.Managers.ViewerManager.Instance();
  1874. this._reportViewer = Analytics.Components.ReportViewer.Instance();
  1875. }
  1876. loadView(reportresponse, reportid, viewerid, page, pageSize, containerid, ViewerSettings, callback, reportwidgetdata) {
  1877. var instance = this;
  1878. let rv_instance = instance._reportViewer.getReportViewerInstance(containerid);
  1879. var FromDateColumnName = "", ToDateColumnName = "", ValueColumnName = "", TextColumnName = "";
  1880. var calanderViewId = viewerid;
  1881. var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
  1882. instance.viewerManager.getCalendarView(calanderViewId).then(function (response) {
  1883. var res = response.result;
  1884. if (instance._reportViewer.CalendarMonth == undefined) {
  1885. instance._reportViewer.CalendarMonth = months[new Date().getMonth()];
  1886. }
  1887. FromDateColumnName = res.FromDateColumn;
  1888. ToDateColumnName = res.ToDateColumn;
  1889. ValueColumnName = res.ValueColumn;
  1890. TextColumnName = res.TextColumn;
  1891. var fromDate = "";
  1892. var toDate = "";
  1893. var cf_fromDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_FromDate;
  1894. var cf_toDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_ToDate;
  1895. if (cf_fromDate != null && cf_toDate != null) {
  1896. fromDate = cf_fromDate.toString();
  1897. toDate = cf_toDate.toString();
  1898. }
  1899. else {
  1900. fromDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
  1901. toDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
  1902. }
  1903. let postdata = {
  1904. ReportId: reportid,
  1905. ViewerTypeId: Unibase.Platform.Analytics.Reports.Enums.ViewerType.Calendar,
  1906. page: page,
  1907. pageSize: instance._reportViewer.PageSize + 1,
  1908. CalendarMonth: instance._reportViewer.CalendarMonth,
  1909. ViewerId: viewerid,
  1910. InputParameters: rv_instance.inputParameters,
  1911. IsJson: true,
  1912. FromDate: fromDate,
  1913. ToDate: toDate,
  1914. };
  1915. Unibase.Platform.Analytics.Managers.ReportManager.Instance().getReportViewerData(postdata).then(function (calendarresponse) {
  1916. Unibase.Platform.Helpers.NavigationHelper.Instance().hideLoading();
  1917. var response = JSON.parse(calendarresponse.result);
  1918. var data = response.Data;
  1919. if (data != "") {
  1920. data = JSON.parse(data);
  1921. }
  1922. var cssfiles = ["libs/fullcalendar/fullcalendar.min.css"];
  1923. var jsfiles = ["libs/moment/moment.min.js",
  1924. "libs/fullcalendar/fullcalendar.min.js"];
  1925. instance.fileCacheHelper.loadCssFiles(cssfiles, function () {
  1926. instance.fileCacheHelper.loadJsFiles(jsfiles, function () {
  1927. var evnts = [];
  1928. var len = data.length;
  1929. if (len >= instance._reportViewer.PageSize + 1) {
  1930. len = data.length - 1;
  1931. }
  1932. for (var i = 0; i < len; i++) {
  1933. if (instance.appInstalledappid == 0)
  1934. instance.appInstalledappid = data[i]["installedappid"];
  1935. let title = "";
  1936. if (data[i][TextColumnName] != undefined && data[i][ValueColumnName] != undefined) {
  1937. title = data[i][TextColumnName].toString() + " " + data[i][ValueColumnName].toString();
  1938. }
  1939. else if (data[i][TextColumnName] != undefined) {
  1940. title = data[i][TextColumnName].toString();
  1941. }
  1942. else if (data[i][ValueColumnName] != undefined) {
  1943. title = data[i][ValueColumnName].toString();
  1944. }
  1945. evnts.push({
  1946. id: data[i][ValueColumnName],
  1947. title: title,
  1948. start: data[i][FromDateColumnName],
  1949. end: data[i][ToDateColumnName],
  1950. });
  1951. }
  1952. let elem = "";
  1953. elem = $("#Viewer_" + containerid);
  1954. elem.removeClass("tabulator");
  1955. if (instance._reportViewer.CalendarMonthChanged == false) {
  1956. elem.html("");
  1957. elem.fullCalendar('destroy');
  1958. $("#Table_View_" + containerid).removeClass("hidden");
  1959. const calHeight = instance.setCalendarHeight(containerid);
  1960. elem.fullCalendar({
  1961. themeSystem: 'bootstrap4',
  1962. header: {
  1963. left: 'calendarSidebar ,today',
  1964. center: 'prev,title,next',
  1965. right: 'month,agendaWeek,listMonth'
  1966. },
  1967. timeZone: 'UTC',
  1968. droppable: true,
  1969. editable: true,
  1970. height: calHeight,
  1971. eventLimit: true,
  1972. displayEventTime: false,
  1973. drop: function () {
  1974. if ($("#remove_event").is(':checked'))
  1975. $(this).remove();
  1976. },
  1977. eventClick: function (calEvent, jsEvent, view) {
  1978. if (calEvent.id) {
  1979. Unibase.Platform.Helpers.NavigationHelper.Instance().loadDetail(calEvent.id, instance.appInstalledappid, null, null);
  1980. }
  1981. },
  1982. windowResize: function (view) {
  1983. let calHeight = instance.setCalendarHeight(containerid);
  1984. calHeight -= 40;
  1985. elem.fullCalendar('option', 'height', calHeight);
  1986. }
  1987. });
  1988. instance._reportViewer.CalendarMonthChanged = true;
  1989. $(".fc-prev-button").parent().addClass("row");
  1990. $(".fc-prev-button").addClass("mt-1 mr-10");
  1991. $(".fc-next-button").addClass("mt-1 ml-10");
  1992. $(".fc-header-toolbar").addClass("pa-10");
  1993. $(".fc-view-container").addClass("pa-10");
  1994. $(".fc-next-button").click(function () {
  1995. instance._reportViewer.CalendarMonth = $(".fc-prev-button").siblings()[0].innerHTML.substring(0, $(".fc-prev-button").siblings()[0].innerHTML.indexOf(" "));
  1996. instance._reportViewer.CalendarMonthChanged = true;
  1997. if (calmonths.filter(function (o) { return o.title === instance._reportViewer.CalendarMonth; }).length <= 0) {
  1998. calmonths.push({ title: instance._reportViewer.CalendarMonth });
  1999. page = 1;
  2000. instance.loadView(reportresponse, reportid, calanderViewId, page, 20, containerid, ViewerSettings, null, null);
  2001. }
  2002. });
  2003. $(".fc-prev-button").click(function () {
  2004. instance._reportViewer.CalendarMonth = $(".fc-prev-button").siblings()[0].innerHTML.substring(0, $(".fc-prev-button").siblings()[0].innerHTML.indexOf(" "));
  2005. instance._reportViewer.CalendarMonthChanged = true;
  2006. if (calmonths.filter(function (o) { return o.title === instance._reportViewer.CalendarMonth; }).length <= 0) {
  2007. calmonths.push({ title: instance._reportViewer.CalendarMonth });
  2008. page = 1;
  2009. instance.loadView(reportresponse, reportid, calanderViewId, page, 20, containerid, ViewerSettings, null, null);
  2010. }
  2011. });
  2012. $("#Calendar_more").click(function () {
  2013. var currentpage = $(this)[0].className.split(/\s+/)[$(this)[0].className.split(/\s+/).length - 1].match(/\d+/g).map(Number)[0];
  2014. $(this).removeClass("lenght_" + currentpage + "");
  2015. $(this).addClass("lenght_" + (currentpage + 1) + "");
  2016. instance.loadView(reportresponse, reportid, calanderViewId, currentpage, 20, containerid, ViewerSettings, null, null);
  2017. });
  2018. }
  2019. if (data.length >= instance._reportViewer.PageSize + 1) {
  2020. $("#Calendar_more").removeClass("hidden");
  2021. }
  2022. else {
  2023. $("#Calendar_more").addClass("hidden");
  2024. }
  2025. if (page == 1) {
  2026. }
  2027. elem.fullCalendar('addEventSource', evnts);
  2028. });
  2029. });
  2030. });
  2031. });
  2032. }
  2033. setCalendarHeight(containerid) {
  2034. let calHeight = 0;
  2035. if ($("#Viewer_" + containerid).length) {
  2036. calHeight = window.innerHeight - $("#Viewer_" + containerid).offset().top;
  2037. if ($(`#ViewerFooter_${containerid}`).is(':visible')) {
  2038. calHeight += $(`#ViewerFooter_${containerid}`).outerHeight(true) - 100;
  2039. }
  2040. }
  2041. return calHeight;
  2042. }
  2043. }
  2044. Viewers.CalendarViewer = CalendarViewer;
  2045. })(Viewers = Analytics.Viewers || (Analytics.Viewers = {}));
  2046. })(Analytics = Platform.Analytics || (Platform.Analytics = {}));
  2047. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  2048. })(Unibase || (Unibase = {}));
  2049. var Unibase;
  2050. (function (Unibase) {
  2051. let Platform;
  2052. (function (Platform) {
  2053. let Analytics;
  2054. (function (Analytics) {
  2055. let Components;
  2056. (function (Components) {
  2057. class CardViewerSettings extends Platform.Core.BaseComponent {
  2058. constructor() {
  2059. super();
  2060. this.reportManager = Analytics.Managers.ReportManager.Instance();
  2061. this.viewerManager = Analytics.Managers.ViewerManager.Instance();
  2062. this.ReportId = 0;
  2063. }
  2064. jsFiles() {
  2065. return ["platform/analytics/components/cardviewer/cardviewer.js", "platform/analytics/providers/iviewersettings.js"];
  2066. }
  2067. cssFiles() {
  2068. return [];
  2069. }
  2070. html(id, containerid) {
  2071. var html = `<div class="b-b bg-white modal-header"><strong class="text-dark">Card</strong>
  2072. </div>
  2073. <div class="modal-body" id="CardViewer_modal">
  2074. <div id="divCard_ErrorMessage"></div>
  2075. <div class="card"> <div class="card-body" style="">
  2076. <div class="row" id="div_Kanban">
  2077. <div class="col-sm-6"> <div id="div_CardName" class="floating-label-form-group">
  2078. <label for="cardname" id="lbl_CardName">Card Name</label>
  2079. <input type="text" class="form-control value-control floating-label-control" placeholder="Card Name" data-placeholder="Card Name" data-label="Card Name" id="txt_CardName">
  2080. </div></div>
  2081. <div class="col-sm-4">
  2082. <div id="div_DisplayName" class="floating-label-form-group floating-label-form-group-with-value">
  2083. <label for="displayname" id="lbl_DisplayName">Display Name</label>
  2084. <input type="text" id="Txt_Display_Name" class="form-control value-control floating-label-control" placeholder="Display Name" data-placeholder="Display Name" data-label="Display Name">
  2085. </div>
  2086. </div>
  2087. <div class="col-sm-6"> <div id="div_KanbanColumn" class="floating-label-form-group floating-label-form-group-with-value">
  2088. <label for="kanbancolumn">Applied Column</label>
  2089. <select id="cardapplied_AutoComplete" class="form-control text-control required"><option value="0" selected="">Select Kanban Column</option></select>
  2090. </div></div>
  2091. <div class="col-sm-6"> <div id="div_AssignColumn" class="floating-label-form-group floating-label-form-group-with-value">
  2092. <label for="AssignColumn">Assign Column</label>
  2093. <select id="AssignColumn_AutoComplete" class="form-control text-control required"><option value="0" selected="">Select Assign Column</option></select>
  2094. </div></div>
  2095. <div class="col-sm-6"> <div id="div_dividebygroup" class="mt-40 hidden">
  2096. <input type="checkbox" id="dividebygroup" name="dividebygroup" value=" ">
  2097. <label for="dividebygroup" class="ml-5">Divide By Group</label>
  2098. </div></div>
  2099. </div>
  2100. </div></div><div class="TemplateText_Section card">
  2101. <div class="card-header"> Template Text </div>
  2102. <div class="card-body">
  2103. <div id="div_TemplateText" class="">
  2104. <textarea class="" placeholder="Template Text" rows="3" cols="112" id="txt_TemplateText"></textarea>
  2105. </div>
  2106. </div></div></div>
  2107. <div class="bg-white modal-footer">
  2108. <a class="btn btn-light btn-sm btn-center mr-auto" id="btnClose">Close</a>
  2109. <a class="btn btn-primary btn-center btn-sm text-white" id="btnSave">Save</a>
  2110. </div>`;
  2111. return html;
  2112. }
  2113. load(id, containerid, callback) {
  2114. var instance = this;
  2115. var reportid = instance.ReportId;
  2116. $("#CardViewer_modal").css("height", $(window).outerHeight() - (Number($(".modal-header").outerHeight()) + Number($(".modal-footer").outerHeight())) + 'px');
  2117. $("#btnClose").click(function () {
  2118. $('#' + containerid).modal('hide');
  2119. $('#' + containerid).remove();
  2120. });
  2121. var data = [];
  2122. this.reportManager.getColumns(reportid).then(function (response) {
  2123. var res = response.result;
  2124. for (let i = 0; i < res.length; i++) {
  2125. data.push({ id: res[i].ReportColumnName, text: res[i].ReportColumnName });
  2126. }
  2127. $("#cardapplied_AutoComplete").select2({
  2128. placeholder: 'Select From Date Column',
  2129. data: data,
  2130. });
  2131. $("#AssignColumn_AutoComplete").select2({
  2132. placeholder: 'Select From Date Column',
  2133. data: data,
  2134. });
  2135. if (id != 0) {
  2136. instance.getCardById(id);
  2137. }
  2138. });
  2139. jQuery("#btnSave").click(function () {
  2140. instance.save(id, reportid, containerid);
  2141. });
  2142. }
  2143. save(id, reportid, containerid) {
  2144. var instance = this;
  2145. var PostData = {
  2146. CardViewId: Number(id),
  2147. CardName: $("#txt_CardName").val(),
  2148. AppliedColumn: $("#cardapplied_AutoComplete").val(),
  2149. AssignColumn: $("#AssignColumn_AutoComplete").val(),
  2150. IsDivideGroup: $("#dividebygroup").is(":checked"),
  2151. TemplateText: $("#txt_TemplateText").val(),
  2152. ReportId: instance.ReportId,
  2153. DisplayModeTypeId: 1,
  2154. ViewAll: instance.response && instance.response.ViewAll || true,
  2155. DisplayName: $("#Txt_Display_Name").val().toString().trim(),
  2156. IsFromUI: Number(id) == 0 ? true : false,
  2157. };
  2158. instance.fileCacheHelper.loadJsFile("platform/analytics/managers/reportmanager.js", function () {
  2159. instance.viewerManager.saveCardView(PostData).then(function (response) {
  2160. if (response.status == Unibase.Data.Status.Error) {
  2161. MessageHelper.Instance().showError(response.message, 'divCard_ErrorMessage');
  2162. }
  2163. else {
  2164. MessageHelper.Instance().showSuccess(response.message, '');
  2165. $('#' + containerid).modal('hide');
  2166. $('#' + containerid).remove();
  2167. }
  2168. });
  2169. });
  2170. }
  2171. getCardById(id) {
  2172. var instance = this;
  2173. instance.viewerManager.getCardView(id).then(function (response) {
  2174. instance.response = response;
  2175. $("#Txt_Display_Name").val(response.DisplayName ? response.DisplayName.trim() : instance.response.CardName.trim());
  2176. $("#txt_CardName").val(instance.response.CardName.trim()).attr("readonly", 'true').css("cursor", "not-allowed");
  2177. $("#cardapplied_AutoComplete").val(instance.response.AppliedColumn.trim()).trigger("change");
  2178. $("#AssignColumn_AutoComplete").val(instance.response.AssignColumn.trim()).trigger("change");
  2179. $("#txt_TemplateText").val(instance.response.TemplateText.trim());
  2180. });
  2181. }
  2182. static Instance() {
  2183. if (this._instance === undefined)
  2184. this._instance = new CardViewerSettings();
  2185. return this._instance;
  2186. }
  2187. }
  2188. Components.CardViewerSettings = CardViewerSettings;
  2189. })(Components = Analytics.Components || (Analytics.Components = {}));
  2190. })(Analytics = Platform.Analytics || (Platform.Analytics = {}));
  2191. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  2192. })(Unibase || (Unibase = {}));
  2193. var Unibase;
  2194. (function (Unibase) {
  2195. let Platform;
  2196. (function (Platform) {
  2197. let Analytics;
  2198. (function (Analytics) {
  2199. let Viewers;
  2200. (function (Viewers) {
  2201. class CardViewer extends Platform.Core.BaseComponent {
  2202. constructor() {
  2203. super();
  2204. this.reportManager = Analytics.Managers.ReportManager.Instance();
  2205. this.viewerManager = Analytics.Managers.ViewerManager.Instance();
  2206. this._reportBuilder = Analytics.Reports.ReportBuilder.Instance();
  2207. this._reportViewer = Analytics.Components.ReportViewer.Instance();
  2208. this.ViewerSettings = new Analytics.Providers.ViewerSettings();
  2209. }
  2210. loadmore(boardname, page, reportid, CardViewId, cardvalues, appliedcolumn, assignedcolumn, TemplateText) {
  2211. var instance = this;
  2212. var data = [];
  2213. let rv_ins = Unibase.Platform.Analytics.Components.ReportViewer.Instance().getReportViewerInstance(instance.containerId);
  2214. let { fromDate, toDate } = rv_ins.checkForReportDatePicker(reportid, this.containerId);
  2215. var footerElement = $("[data-id='" + boardname + "']").find('footer').find('button');
  2216. if (footerElement.length) {
  2217. var element = footerElement[0].className.split(/\s+/);
  2218. page = element[element.length - 1].match(/\d+/g).map(Number)[0];
  2219. let postdata = {
  2220. ReportId: reportid,
  2221. page: page,
  2222. ViewerTypeId: 5,
  2223. pageSize: 5,
  2224. ViewerId: CardViewId,
  2225. BoardName: boardname.toString(),
  2226. IsJson: true,
  2227. DisplayModeTypeId: this._reportViewer.getDisplayModeTypeId(),
  2228. DateFilter: rv_ins.dateFilters,
  2229. Filter: rv_ins.dynamicFilters,
  2230. InputParameters: rv_ins.inputParameters,
  2231. FromDate: fromDate,
  2232. ToDate: toDate,
  2233. };
  2234. instance.reportManager.getReportViewerData(postdata).then(function (tableresponse) {
  2235. if (tableresponse.status == Unibase.Data.Status.Success) {
  2236. Unibase.Platform.Helpers.NavigationHelper.Instance().hideLoading();
  2237. let response = JSON.parse(tableresponse.result);
  2238. if (response.Data && response.Data.length) {
  2239. let tablevalues = JSON.parse(response.Data);
  2240. if (tablevalues && tablevalues.length) {
  2241. let prevData = rv_ins.reportData;
  2242. let currentData = JSON.parse(response.Data);
  2243. rv_ins.reportData = $.merge(prevData, currentData);
  2244. rv_ins.reportDatalength = rv_ins.reportData.length;
  2245. if (rv_ins && rv_ins.reportResponse && rv_ins.reportResponse.result && rv_ins.reportResponse.result.ReportJsonData && rv_ins.reportResponse.result.ReportJsonData.Result && rv_ins.reportResponse.result.ReportJsonData.Result.Data) {
  2246. var data = JSON.parse(rv_ins.reportResponse.result.ReportJsonData.Result.Data);
  2247. data = data.concat(tablevalues);
  2248. rv_ins.reportResponse.result.ReportJsonData.Result.Data = JSON.stringify(data);
  2249. if (rv_ins.isEnableCount) {
  2250. $("#Viewer_pagintion" + instance.containerId).html(data.length + ' ' + 'of' + ' ' + rv_ins.totalRecords).removeClass('hidden');
  2251. }
  2252. }
  2253. }
  2254. var pageno = page + 1;
  2255. footerElement.addClass("lenght_" + pageno).removeClass("lenght_" + page);
  2256. for (let i = 0; i < tablevalues.length; i++) {
  2257. if (TemplateText) {
  2258. var context;
  2259. TemplateText = TemplateText.trim();
  2260. var templateScript = Handlebars.compile(TemplateText);
  2261. var script = templateScript(tablevalues[i]);
  2262. instance._reportBuilder.kanban_board.addElement(boardname, { title: tablevalues[i][assignedcolumn] });
  2263. }
  2264. else {
  2265. }
  2266. }
  2267. var result = cardvalues.filter(function (o) { return o[appliedcolumn] === boardname; });
  2268. if (result.length > 0) {
  2269. var TrimmedBoardName = boardname.replace(" ", "");
  2270. $("#spn_" + TrimmedBoardName + "").text(instance._reportBuilder.kanban_board.getBoardElements(boardname).length);
  2271. if (result[0].groupbycount == instance._reportBuilder.kanban_board.getBoardElements(boardname).length) {
  2272. $($("div").find("[data-id='" + boardname + "']")).find('button').addClass('hidden');
  2273. }
  2274. }
  2275. }
  2276. }
  2277. else
  2278. return MessageHelper.Instance().showError(tableresponse.message, "div_ErrorMessage");
  2279. });
  2280. }
  2281. }
  2282. loadView(reportresponse, reportid, CardViewId, page, pageSize, containerid, ViewerSettings, callback, reportwidgetdata) {
  2283. var instance = this;
  2284. instance.containerId = containerid;
  2285. let rv_ins = Unibase.Platform.Analytics.Components.ReportViewer.Instance().getReportViewerInstance(containerid);
  2286. instance.fileCacheHelper.loadCssFiles(["libs/kanban/jkanban.min.css"], () => {
  2287. instance.fileCacheHelper.loadJsFiles(["libs/kanban/jkanban.min.js", "platform/analytics/components/reportbuilder/reportbuilderhiddenfields.js"], () => {
  2288. $("#Table_View_" + containerid).removeClass("hidden");
  2289. instance.viewerManager.getCardView(CardViewId).then(function (res) {
  2290. Unibase.Platform.Helpers.NavigationHelper.Instance().hideLoading();
  2291. if (res != null) {
  2292. instance.res = res;
  2293. let tablevalues = [];
  2294. let reportViewerDataResult = reportresponse.result.ReportJsonData.Result;
  2295. if (reportViewerDataResult.Data) {
  2296. tablevalues = JSON.parse(reportViewerDataResult.Data).sort((a, b) => (a.stageindex > b.stageindex) ? 1 : (a.stageindex < b.stageindex) ? -1 : 0);
  2297. var data = [];
  2298. var uniqueidarray = [];
  2299. var item = [];
  2300. var morearray = [];
  2301. let values = [...new Set(tablevalues.map(item => item[instance.res.AppliedColumn.trim()]))];
  2302. for (let i = 0; i < values.length; i++) {
  2303. var result = tablevalues.filter(function (o) { return o[instance.res.AppliedColumn.trim()] === values[i]; });
  2304. if (result.length > 0) {
  2305. if (result[0].groupbycount <= result.length) {
  2306. uniqueidarray.push(values[i]);
  2307. }
  2308. else {
  2309. morearray.push(values[i]);
  2310. }
  2311. }
  2312. for (let i = 0; i < result.length; i++) {
  2313. if (instance.res.TemplateText) {
  2314. var context;
  2315. var templateScript = Handlebars.compile(instance.res.TemplateText);
  2316. var script = templateScript(result[i]);
  2317. item.push({
  2318. title: script,
  2319. });
  2320. }
  2321. }
  2322. data.push({ id: values[i], title: values[i], "item": item, });
  2323. item = [];
  2324. }
  2325. var data1 = data;
  2326. var dataids = data.map(function (el) {
  2327. return `${el.id}`;
  2328. });
  2329. data1.forEach(function (e, i) {
  2330. data1[i]['dragTo'] = dataids;
  2331. });
  2332. var kanbandata = data;
  2333. instance._reportBuilder.cardviewerpage = 2;
  2334. let viewerEl = $(`#Viewer_${containerid}`);
  2335. viewerEl.empty().css("overflow-x", "scroll");
  2336. ;
  2337. viewerEl.find(".Templateheader").addClass("hidden");
  2338. let isDragging = false;
  2339. let mousemoveTagHeader = false;
  2340. let currentDraggingEle = null;
  2341. $(`#filters-list${containerid}`).find('.filter-item').each(function (i, el) {
  2342. $(el).mouseover(function (e) {
  2343. if (isDragging) {
  2344. mousemoveTagHeader = true;
  2345. $(el).addClass('kanban-item-hover');
  2346. }
  2347. });
  2348. $(el).mouseout(function (e) {
  2349. if (mousemoveTagHeader) {
  2350. mousemoveTagHeader = false;
  2351. let idtag = $(el).attr('data-filtername');
  2352. viewerEl.find(`[data-id="${idtag}"]`).find('.kanban-drag').append(currentDraggingEle);
  2353. $(el).removeClass("kanban-item-hover");
  2354. }
  2355. });
  2356. });
  2357. eval(`Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().kanban_board = new jKanban({
  2358. element: '#Viewer_${containerid}',
  2359. layout: { horizontal: true },
  2360. responsive: '700',
  2361. responsivePercentage: false,
  2362. widthBoard: '370px',
  2363. dragItems: true,
  2364. dropEl: function (el, target, source, sibling) { },
  2365. boards: data1,
  2366. dragBoards: false,
  2367. addItemButton: true,
  2368. dragEl: function (el, source) {
  2369. $(el).css({ opacity: '0.6', 'pointer-events': 'none' });
  2370. isDragging = true;
  2371. currentDraggingEle = el;
  2372. $('body').mousemove(function (e) {
  2373. if (isDragging) {
  2374. let closestCardBoard = $(el).closest('.kanban-drag')[0];
  2375. let closestCardBoardContainer =
  2376. viewerEl.find('.kanban-container').closest('.card-body')[0];
  2377. let dragRect = closestCardBoard.getBoundingClientRect();
  2378. let dragRectContainer =
  2379. closestCardBoardContainer.getBoundingClientRect();
  2380. let dragRectContainerLeft = dragRectContainer.x;
  2381. let top = dragRect.y;
  2382. let y = e.clientY;
  2383. let x = e.clientX;
  2384. if (y < top + 20) {
  2385. closestCardBoard.scrollBy(0, -20);
  2386. } else if (y < top + 60) {
  2387. closestCardBoard.scrollBy(0, -10);
  2388. } else if (y > top + dragRect.height - 20) {
  2389. closestCardBoard.scrollBy(0, 20);
  2390. } else if (y > top + dragRect.height - 60) {
  2391. closestCardBoard.scrollBy(0, 10);
  2392. }
  2393. if (x < dragRectContainerLeft + 20) {
  2394. closestCardBoardContainer.scrollBy(-20, 0);
  2395. } else if (x < dragRectContainerLeft + 60) {
  2396. closestCardBoardContainer.scrollBy(-10, 0);
  2397. } else if (x > dragRectContainerLeft + dragRectContainer.width - 20) {
  2398. closestCardBoardContainer.scrollBy(20, 0);
  2399. } else if (x > dragRectContainerLeft + dragRectContainer.width - 60) {
  2400. closestCardBoardContainer.scrollBy(10, 0);
  2401. }
  2402. }
  2403. });
  2404. },
  2405. dragendEl: function (el) {
  2406. $('body').off('mousemove');
  2407. $(el).css({ opacity: '1', 'pointer-events': 'auto' });
  2408. isDragging = false;
  2409. if(!isDragging){
  2410. if($(el).find('[data-kanban2view="stagechange"][data-stagechange="true"]').length>0){
  2411. let id, stageId,recordId, installedAppId;
  2412. $('[data-kanban2view="stagechange"][data-stagechange="true"]').attr('data-click2event','false');
  2413. $(el).find('[data-kanban2view="stagechange"][data-stagechange="true"]').attr('data-click2event','active');
  2414. recordId = Number($(el).find('[data-kanban2view="stagechange"][data-stagechange="true"]').attr('data-record2id'));
  2415. installedAppId = Number($(el).find('[data-kanban2view="stagechange"][data-stagechange="true"]').attr('data-installed2appid'));
  2416. stageId = Number($(el).find('[data-kanban2view="stagechange"][data-stagechange="true"]').attr('data-oldstageid'));
  2417. id = $(el).find('[data-kanban2view="stagechange"][data-stagechange="true"]').attr('id');
  2418. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFiles(["platform/apps/managers/stagemanager.js","platform/apps/components/stages/stagereason.js"], function () {
  2419. Unibase.Themes.Compact.Components.Details.Instance().change(stageId, installedAppId, id);
  2420. });
  2421. }
  2422. }
  2423. },
  2424. buttonClick: function (el, boardId) {
  2425. var page = Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().cardviewerpage;
  2426. Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().cardviewerpage = Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().cardviewerpage + 1;
  2427. instance.loadmore(boardId,page,reportid,CardViewId,tablevalues,instance.res.AppliedColumn.trim(),instance.res.AssignColumn.trim(),instance.res.TemplateText);
  2428. var formItem = document.createElement('form');
  2429. formItem.setAttribute('class', 'itemform');
  2430. //KanbanTest.addForm(boardId, formItem);
  2431. //document.getElementById('CancelBtn').onclick = function () {
  2432. // formItem.parentNode.removeChild(formItem);
  2433. //};
  2434. },
  2435. }); if($('[data-isconclusive="true"]').length !=0){
  2436. let stageNameConclusive = $('[data-isconclusive="true"]').parents('.kanban-board').attr('data-id');
  2437. $('[data-id="'+stageNameConclusive+'"]').addClass('position-absolute').css('margin-top', '440px');}`);
  2438. viewerEl.find(".kanban-title-board").addClass('text-truncate');
  2439. viewerEl.find('.kanban-container').addClass('d-flex align-items-start');
  2440. for (let i = 0; i < uniqueidarray.length; i++) {
  2441. var uniqueresult = tablevalues.filter(function (o) { return o[instance.res.AppliedColumn.trim()] === uniqueidarray[i]; });
  2442. viewerEl.find(`[data-id='${uniqueidarray[i]}'] .kanban-title-button`).addClass('d-none');
  2443. var TrimmedBoardName = uniqueidarray[i];
  2444. viewerEl.find(`[data-id='${uniqueidarray[i]}'] .kanban-board-header`).append('<span class="kanban-header-badge badge badge-primary badge-outline font-14 font-weight-600 flex-shrink-0"><span id=spn_' + TrimmedBoardName + '>' + uniqueresult.length + '</span> of ' + uniqueresult[0].groupbycount + '</span>');
  2445. }
  2446. if (morearray.length > 0) {
  2447. for (let i = 0; i < morearray.length; i++) {
  2448. var moreeresult = tablevalues.filter(function (o) { return o[instance.res.AppliedColumn.trim()] === morearray[i]; });
  2449. var TrimmedBoardName = morearray[i].toString().replace(" ", "");
  2450. viewerEl.find(`[data-id='${morearray[i]}'] .kanban-board-header`).append('<span class="kanban-header-badge badge badge-primary badge-outline font-14 font-weight-600 flex-shrink-0"><span id=spn_' + TrimmedBoardName + '>' + moreeresult.length + '</span> of ' + moreeresult[0].groupbycount + '</span>');
  2451. }
  2452. }
  2453. viewerEl.find(".kanban-drag").css({ "min-height": "max-content", "max-height": "500px", "min-width": "250px" }).addClass('biz-custom-scrollbar');
  2454. viewerEl.find("main.kanban-drag").css('height', 'fit-content');
  2455. uniqueidarray = [];
  2456. viewerEl.find(".btnfritem").parent().addClass('w-100 d-flex justify-content-center mt-1 align-items-center mb-2').attr('style', '');
  2457. viewerEl.find(".btnfritem").addClass("lenght_2");
  2458. viewerEl.find(".btnfritem").html("More");
  2459. $(".btnfritem").css({ "background-color": "white", "padding": "4px 12px", "font-weight": "bold" });
  2460. }
  2461. else {
  2462. $(`#${containerid} .kanban-container`).html(`<div class="alert alert-primary text-center mb-0 border-0 rounded-0 w-100 font-14 font-weight-500">No data available</div>`).css("width", "100%");
  2463. }
  2464. if (rv_ins.isEnableCount) {
  2465. $("#Viewer_pagintion" + instance.containerId).html(tablevalues.length + ' ' + 'of' + ' ' + rv_ins.totalRecords);
  2466. }
  2467. }
  2468. else
  2469. return MessageHelper.Instance().showError("Something went wrong", "div_ErrorMessage");
  2470. });
  2471. });
  2472. });
  2473. }
  2474. static Instance() {
  2475. return new Unibase.Platform.Analytics.Viewers.CardViewer();
  2476. }
  2477. }
  2478. Viewers.CardViewer = CardViewer;
  2479. })(Viewers = Analytics.Viewers || (Analytics.Viewers = {}));
  2480. })(Analytics = Platform.Analytics || (Platform.Analytics = {}));
  2481. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  2482. })(Unibase || (Unibase = {}));
  2483. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
  2484. function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  2485. return new (P || (P = Promise))(function (resolve, reject) {
  2486. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  2487. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  2488. function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
  2489. step((generator = generator.apply(thisArg, _arguments || [])).next());
  2490. });
  2491. };
  2492. var Unibase;
  2493. (function (Unibase) {
  2494. let Platform;
  2495. (function (Platform) {
  2496. let Analytics;
  2497. (function (Analytics) {
  2498. let Components;
  2499. (function (Components) {
  2500. class _Chart extends Platform.Core.BaseComponent {
  2501. constructor() {
  2502. super();
  2503. this.IsChartBuilder = true;
  2504. this.ChartAxis = { Horizontal: 'XAxis', Vertical: 'YAxis', GroupBy: 'GroupBy', LineChart: 'LineChart' };
  2505. this.xaxisColumns = [];
  2506. this.yaxisColumns = [];
  2507. this.groupColumns = [];
  2508. this.chartBaseColumns = [];
  2509. this.yaxisColors = [];
  2510. this.groupColors = [];
  2511. this.XaxisData = [];
  2512. this.YaxisData = [];
  2513. this.XaxisStackData = [];
  2514. this.stackedDataSet = [];
  2515. this.groupedStackedDataSet = [];
  2516. this.Dataset = [];
  2517. this.DataSetColors = [];
  2518. this.paletteColors = [];
  2519. this.DatasetTooltips = [];
  2520. this.colorAppliedOn = 1;
  2521. this.ColumnColors = [];
  2522. this.RowColors = [];
  2523. this.IsColorPalette = false;
  2524. this.defaultColor = false;
  2525. this.barThikness = 40;
  2526. this.appliedColumnColor = [];
  2527. this.appliedColumnValueColor = [];
  2528. this.Colors = [];
  2529. this.toolTipArray = [];
  2530. this.isColumnRename = false;
  2531. this.ChartSelectedColumns = [];
  2532. this.SelectedValueColorColumns = [];
  2533. this.CoordinateDisplayText = "";
  2534. this.displayLegend = false;
  2535. this.isFilterable = [];
  2536. this.chartContainerId = "";
  2537. this.lineChartColumns = [];
  2538. this.xAxisLables = [];
  2539. this.isDataLabel = false;
  2540. this.isTooltipHeader = true;
  2541. this._reportManager = Analytics.Managers.ReportManager.Instance();
  2542. this._reportBuilder = Analytics.Reports.ReportBuilder.Instance();
  2543. }
  2544. selected_Coordinate(obj) {
  2545. return __awaiter(this, void 0, void 0, function* () {
  2546. var instance = this;
  2547. let Chart = [];
  2548. let html = "";
  2549. let XAxis = false, YAxis = false, GroupBy = false, LineChart = false, isBaseColumn = false;
  2550. var isFill = instance.isFilterable[obj.ColumnName];
  2551. if (obj.CoordinateTypeId == instance.ChartAxis.Horizontal) {
  2552. Chart = instance.xaxisColumns;
  2553. XAxis = true;
  2554. if (instance._reportBuilder.isEdit == true || instance._reportBuilder.reportid == 0) {
  2555. html = instance._reportBuilderTemplate.loadSelect2Column(obj.ColumnId, obj.ColumnName, obj.DataType);
  2556. instance._reportBuilder.setSelectOption("xaxis_select");
  2557. }
  2558. }
  2559. else if (obj.CoordinateTypeId == instance.ChartAxis.Vertical) {
  2560. Chart = instance.yaxisColumns;
  2561. YAxis = true;
  2562. if (instance._reportBuilder.isEdit == true || instance._reportBuilder.reportid == 0) {
  2563. html = instance._reportBuilderTemplate.loadSelect2Column(obj.ColumnId, obj.ColumnName, obj.DataType);
  2564. instance._reportBuilder.setSelectOption("yaxis_select");
  2565. }
  2566. }
  2567. else if (obj.CoordinateTypeId == instance.ChartAxis.LineChart) {
  2568. Chart = instance.lineChartColumns;
  2569. LineChart = true;
  2570. if (instance._reportBuilder.isEdit == true || instance._reportBuilder.reportid == 0) {
  2571. html = instance._reportBuilderTemplate.loadSelect2Column(obj.ColumnId, obj.ColumnName, obj.DataType);
  2572. instance._reportBuilder.setSelectOption("line_chart_select");
  2573. }
  2574. }
  2575. else if (obj.CoordinateTypeId == instance.ChartAxis.BaseColumn) {
  2576. Chart = instance.chartBaseColumns;
  2577. isBaseColumn = true;
  2578. if (instance._reportBuilder.isEdit == true || instance._reportBuilder.reportid == 0) {
  2579. html = instance._reportBuilderTemplate.loadSelect2Column(obj.ColumnId, obj.ColumnName, obj.DataType);
  2580. instance._reportBuilder.setSelectOption("base_column_select");
  2581. }
  2582. }
  2583. else {
  2584. Chart = instance.groupColumns;
  2585. GroupBy = true;
  2586. if (instance._reportBuilder.isEdit == true || instance._reportBuilder.reportid == 0) {
  2587. html = instance._reportBuilderTemplate.loadSelect2Column(obj.ColumnId, obj.ColumnName, obj.DataType);
  2588. instance._reportBuilder.setSelectOption("groupby_select");
  2589. }
  2590. }
  2591. Chart.push({
  2592. ChartColumnId: 0,
  2593. ColumnId: obj.ColumnId,
  2594. ColumnName: obj.ColumnName,
  2595. AliasName: obj.AliasName,
  2596. DataType: obj.DataType,
  2597. IsHidden: true,
  2598. Aggregation: Analytics.Reports.Enums.AggregationType.none,
  2599. SortOrder: "none",
  2600. DisplayText: obj.DisplayText,
  2601. XAxis: XAxis,
  2602. YAxis: YAxis,
  2603. GroupBy: GroupBy,
  2604. IsLineChart: LineChart,
  2605. IsFilterable: (isFill) ? isFill.IsFilterable : false,
  2606. YearComparisonType: 0,
  2607. ColorType: obj.ColorType,
  2608. IsBaseColumn: isBaseColumn,
  2609. IsNumAbb: obj.IsNumAbb !== undefined ? obj.IsNumAbb : true
  2610. });
  2611. if (obj.divId != undefined && obj.divId != "") {
  2612. $("#" + obj.divId).append(html);
  2613. }
  2614. var len = instance._reportBuilder.selectedColumns.length;
  2615. var reportid = instance._reportBuilder.reportid;
  2616. if ((len > 0 && reportid != 0) || (reportid == 0)) {
  2617. let Index = instance._reportBuilder.getIndexByAliasName_selectedColumnsArray(obj.DisplayText);
  2618. if (Index == -1) {
  2619. var selCol = new SelectedColumns();
  2620. selCol.ColumnId = obj.ColumnId;
  2621. selCol.ColumnName = obj.ColumnName;
  2622. selCol.AliasName = obj.AliasName;
  2623. selCol.DisplayText = obj.DisplayText;
  2624. selCol.DataType = obj.DataType;
  2625. selCol.GroupBy = GroupBy;
  2626. selCol.IsLineChart = LineChart;
  2627. selCol.Isvisible = true;
  2628. instance._reportBuilder._selectedColumns(selCol);
  2629. yield instance._reportBuilder.load_data(instance._reportBuilder.table);
  2630. }
  2631. else {
  2632. yield instance.chart_dataSet();
  2633. }
  2634. }
  2635. if (instance.IsChartBuilder == true) {
  2636. instance._chartBuilder.coordinate_DropDown(obj.CoordinateTypeId);
  2637. instance._chartBuilder.CoordinateDisplayText = "";
  2638. }
  2639. instance.enableOrDisableChartIcons();
  2640. });
  2641. }
  2642. clearChart(id) {
  2643. let containerid = id.replace("-chart-canvas", "");
  2644. let html = document.getElementById(id).outerHTML;
  2645. if (id == "myChart_FullScreen") {
  2646. document.getElementById("ChartCanvasDiv_FullScreen").innerHTML = '&nbsp;';
  2647. document.getElementById("ChartCanvasDiv_FullScreen").innerHTML = html;
  2648. }
  2649. else if (id == "myChart") {
  2650. document.getElementById("ChartCanvasDiv").innerHTML = '&nbsp;';
  2651. document.getElementById("ChartCanvasDiv").innerHTML = html;
  2652. $("#legend").empty();
  2653. }
  2654. else {
  2655. document.getElementById("ChartCanvasDiv" + containerid).innerHTML = '&nbsp;';
  2656. document.getElementById("ChartCanvasDiv" + containerid).innerHTML = html;
  2657. }
  2658. }
  2659. groupedPivotRows(data, pivotRows) {
  2660. var instance = this;
  2661. let grouped = [];
  2662. let pivotCol = instance._reportBuilder.pivot.ColumnName;
  2663. var colId = instance.groupColumns[0].ColumnId;
  2664. instance.addGroupColors(data, pivotCol, instance.ChartAxis.GroupBy);
  2665. pivotRows.map(function (i) {
  2666. let grpobj = grouped.find(x => x.Field == i) ? true : false;
  2667. if (grpobj != true) {
  2668. var grpcolor = instance.groupColors[pivotCol];
  2669. grouped.push({
  2670. Field: i,
  2671. Color: grpcolor ? grpcolor.c : null
  2672. });
  2673. }
  2674. });
  2675. return { groupeddata: grouped, pivotdata: data };
  2676. }
  2677. PivotData_Old() {
  2678. var instance = this;
  2679. let data = instance.ChartData;
  2680. let xaxiscols = instance.xaxisColumns[0];
  2681. let grpcols = instance.groupColumns[0];
  2682. instance.addGroupColors(data, grpcols.DisplayText, instance.ChartAxis.GroupBy);
  2683. var colvalwithcolors = "";
  2684. let pivotdata = [], grouped = [], stackedDataSetLabels = [];
  2685. instance.XaxisStackData = [];
  2686. instance.Colors = [];
  2687. let index = 0;
  2688. for (var i = 0; i < data.length; i++) {
  2689. let dataitem = data[i];
  2690. let grpobj = grouped.find(x => x.Field == dataitem[grpcols.DisplayText]) ? true : false;
  2691. if (grpobj != true) {
  2692. var grpcolor = instance.groupColors[dataitem[grpcols.DisplayText]];
  2693. grouped.push({
  2694. Field: dataitem[grpcols.DisplayText],
  2695. Color: grpcolor ? grpcolor.c : null
  2696. });
  2697. index++;
  2698. }
  2699. for (let k = 0; k < instance.yaxisColumns.length; k++) {
  2700. var yaxiscols = instance.yaxisColumns[k];
  2701. let dataobj = pivotdata.find(x => x[xaxiscols.DisplayText] == dataitem[xaxiscols.DisplayText] && x.stack == "stack" + k);
  2702. ;
  2703. if (dataobj == null || dataobj == undefined) {
  2704. let obj = {};
  2705. obj[xaxiscols.DisplayText] = dataitem[xaxiscols.DisplayText];
  2706. obj[dataitem[grpcols.DisplayText]] = dataitem[yaxiscols.DisplayText];
  2707. obj["stack"] = "stack" + k;
  2708. pivotdata.push(obj);
  2709. instance.XaxisStackData.push(dataitem[xaxiscols.DisplayText]);
  2710. }
  2711. else {
  2712. dataobj[dataitem[grpcols.DisplayText]] = dataitem[yaxiscols.DisplayText];
  2713. }
  2714. }
  2715. }
  2716. if (instance.defaultColor || instance.IsColorPalette)
  2717. instance.Colors[grpcols.DisplayText] = { colors: colvalwithcolors, columnName: grpcols.DisplayText };
  2718. return { groupeddata: grouped, pivotdata: pivotdata };
  2719. }
  2720. PivotData() {
  2721. var instance = this;
  2722. let data = instance.ChartData;
  2723. let xaxiscols = instance.xaxisColumns[0];
  2724. let grpcols = instance.groupColumns[0];
  2725. instance.addGroupColors(data, grpcols.DisplayText, instance.ChartAxis.GroupBy);
  2726. var colvalwithcolors = "";
  2727. let pivotdata = [], grouped = [], stackedDataSetLabels = [];
  2728. instance.XaxisStackData = [];
  2729. instance.Colors = [];
  2730. let index = 0;
  2731. var groupedStackedData = [];
  2732. for (let k = 0; k < instance.yaxisColumns.length; k++) {
  2733. var yaxiscols = instance.yaxisColumns[k];
  2734. for (var i = 0; i < data.length; i++) {
  2735. let dataitem = data[i];
  2736. let grpobj = grouped.find(x => x.Field == dataitem[grpcols.DisplayText]) ? true : false;
  2737. if (grpobj != true) {
  2738. var grpcolor = instance.groupColors[dataitem[grpcols.DisplayText]];
  2739. grouped.push({
  2740. Field: dataitem[grpcols.DisplayText],
  2741. Color: grpcolor ? grpcolor.c : null
  2742. });
  2743. index++;
  2744. }
  2745. let dataobj = pivotdata.find(x => x[xaxiscols.DisplayText] == dataitem[xaxiscols.DisplayText]);
  2746. if (dataobj == null || dataobj == undefined) {
  2747. let obj = {};
  2748. obj[xaxiscols.DisplayText] = dataitem[xaxiscols.DisplayText];
  2749. obj[dataitem[grpcols.DisplayText]] = dataitem[yaxiscols.DisplayText];
  2750. pivotdata.push(obj);
  2751. instance.XaxisStackData.push(dataitem[xaxiscols.DisplayText]);
  2752. }
  2753. else {
  2754. dataobj[dataitem[grpcols.DisplayText]] = dataitem[yaxiscols.DisplayText];
  2755. }
  2756. }
  2757. groupedStackedData[yaxiscols.DisplayText] = { Data: pivotdata, Stack: "stack" + k };
  2758. groupedStackedData.length = groupedStackedData.length + 1;
  2759. pivotdata = [];
  2760. }
  2761. if (instance.defaultColor || instance.IsColorPalette)
  2762. instance.Colors[grpcols.DisplayText] = { colors: colvalwithcolors, columnName: grpcols.DisplayText };
  2763. return { groupeddata: grouped, pivotdata: pivotdata, groupedStackedData: groupedStackedData };
  2764. }
  2765. groupedStackDataSet() {
  2766. var instance = this;
  2767. var data = instance.PivotData();
  2768. let grpdata = [], DataSet = [];
  2769. for (var y = 0; y < instance.yaxisColumns.length; y++) {
  2770. var pivotdata = data.groupedStackedData[instance.yaxisColumns[y].AliasName];
  2771. for (var g = 0; g < data.groupeddata.length; g++) {
  2772. pivotdata.Data.map(function (p) {
  2773. if (p[data.groupeddata[g].Field])
  2774. grpdata.push(p[data.groupeddata[g].Field]);
  2775. else
  2776. grpdata.push(0);
  2777. });
  2778. var color = "";
  2779. if (instance.paletteColors.length > 0) {
  2780. color = instance.paletteColors[g];
  2781. }
  2782. else {
  2783. color = instance.getRandomColor();
  2784. }
  2785. DataSet.push({
  2786. label: data.groupeddata[g].Field,
  2787. data: grpdata,
  2788. backgroundColor: color,
  2789. stack: pivotdata.Stack,
  2790. });
  2791. grpdata = [];
  2792. instance.PivotDataSet = DataSet;
  2793. }
  2794. }
  2795. function removeDuplicates(arr) {
  2796. return arr.filter((item, index) => arr.indexOf(item) === index);
  2797. }
  2798. instance.XaxisStackData = removeDuplicates(instance.XaxisStackData);
  2799. }
  2800. groupedStackDataSet_Old() {
  2801. var instance = this;
  2802. var data = instance.PivotData();
  2803. let grpdata = [], DataSet = [];
  2804. for (var i = 0; i < data.groupeddata.length; i++) {
  2805. let stack = "";
  2806. data.pivotdata.map(function (p) {
  2807. if (p[data.groupeddata[i].Field])
  2808. grpdata.push(p[data.groupeddata[i].Field]);
  2809. else
  2810. grpdata.push(0);
  2811. stack = p.stack;
  2812. });
  2813. DataSet.push({
  2814. label: data.groupeddata[i].Field,
  2815. data: grpdata,
  2816. backgroundColor: data.groupeddata[i].Color,
  2817. stack: stack,
  2818. });
  2819. grpdata = [];
  2820. }
  2821. DataSet.push();
  2822. instance.PivotDataSet = DataSet;
  2823. }
  2824. groupedStackDataSet_New() {
  2825. var instance = this;
  2826. instance.XaxisData = [];
  2827. instance.groupedStackedDataSet = [];
  2828. let data = instance.ChartData;
  2829. let xaxiscols = instance.xaxisColumns[0];
  2830. let grpcols = instance.groupColumns[0];
  2831. for (var i = 0; i < data.length; i++) {
  2832. var dataItem = data[i];
  2833. var XData = dataItem[xaxiscols.DisplayText];
  2834. instance.XaxisData.push(XData);
  2835. for (var y = 0; y < instance.yaxisColumns.length; y++) {
  2836. var yCol = instance.yaxisColumns[y];
  2837. var gData = [];
  2838. for (var g = 0; g < instance.ChartData.length; g++) {
  2839. var gVal = instance.ChartData[g][grpcols.DisplayText];
  2840. if (gVal == dataItem[grpcols.DisplayText])
  2841. gData.push(dataItem[yCol.DisplayText]);
  2842. else
  2843. gData.push(0);
  2844. }
  2845. var color = "";
  2846. if (instance.paletteColors.length > 0) {
  2847. color = instance.paletteColors[i];
  2848. }
  2849. else {
  2850. color = instance.getRandomColor();
  2851. }
  2852. var dataSet = {
  2853. label: dataItem[grpcols.DisplayText],
  2854. type: "bar",
  2855. stack: "stack " + y,
  2856. backgroundColor: color,
  2857. data: gData,
  2858. };
  2859. instance.groupedStackedDataSet.push(dataSet);
  2860. }
  2861. }
  2862. function removeDuplicates(arr) {
  2863. return arr.filter((item, index) => arr.indexOf(item) === index);
  2864. }
  2865. instance.XaxisStackData = removeDuplicates(instance.XaxisStackData);
  2866. }
  2867. stackedBar() {
  2868. var instance = this;
  2869. instance.stackedDataSet = [];
  2870. let xaxiscols = instance.xaxisColumns[0];
  2871. let data = instance.ChartData;
  2872. for (var i = 0; i < data.length; i++) {
  2873. let dataitem = data[i];
  2874. var color = "";
  2875. if (instance.paletteColors.length > 0) {
  2876. color = instance.paletteColors[i];
  2877. }
  2878. else {
  2879. color = instance.getRandomColor();
  2880. }
  2881. for (let y = 0; y < instance.yaxisColumns.length; y++) {
  2882. var yaxiscols = instance.yaxisColumns[y];
  2883. var ydata = [];
  2884. for (var x = 0; x < instance.XaxisData.length; x++) {
  2885. if (instance.XaxisData[x] == dataitem[xaxiscols.DisplayText])
  2886. ydata.push(dataitem[yaxiscols.DisplayText]);
  2887. else
  2888. ydata.push(0);
  2889. }
  2890. var obj = {
  2891. label: dataitem[xaxiscols.DisplayText],
  2892. type: "bar",
  2893. stack: "stack " + y,
  2894. backgroundColor: color,
  2895. data: ydata,
  2896. };
  2897. instance.stackedDataSet.push(obj);
  2898. }
  2899. }
  2900. }
  2901. test(id) {
  2902. let canvas = document.getElementById(id);
  2903. let ctx = canvas.getContext("2d");
  2904. var chart = new Chart(ctx, {
  2905. type: 'bar',
  2906. data: {
  2907. labels: [2017, 2018, 2019, 2020, 2021, 2022, 2023],
  2908. datasets: [{
  2909. label: "Income - Base",
  2910. type: "bar",
  2911. stack: "stack 0",
  2912. backgroundColor: "#eece01",
  2913. data: [30, 31, 32, 33, 34, 35, 36],
  2914. }, {
  2915. label: "Tax - Base",
  2916. type: "bar",
  2917. stack: "stack 0",
  2918. backgroundColor: "#87d84d",
  2919. data: [-15, -16, -17, -18, -19, -20, -21],
  2920. }, {
  2921. label: "Income - Base",
  2922. type: "bar",
  2923. stack: "stack 1",
  2924. backgroundColor: "#f8981f",
  2925. data: [20, 21, 22, 23, 24, 25, 26],
  2926. }, {
  2927. label: "Tax - Sensitivity",
  2928. type: "bar",
  2929. stack: "stack 1",
  2930. backgroundColor: "#00b300",
  2931. data: [-10, -11, -12, -13, -14, -15, -16]
  2932. }]
  2933. },
  2934. options: {
  2935. scales: {
  2936. xAxes: [{
  2937. stacked: true,
  2938. ticks: {
  2939. beginAtZero: true,
  2940. maxRotation: 0,
  2941. minRotation: 0
  2942. }
  2943. }],
  2944. yAxes: [{
  2945. stacked: true,
  2946. }]
  2947. },
  2948. }
  2949. });
  2950. }
  2951. pivotDataSet() {
  2952. var instance = this;
  2953. let colors = "";
  2954. var chartdata;
  2955. var data;
  2956. let pivotRows;
  2957. instance.XaxisStackData = [];
  2958. if (instance.IsChartBuilder) {
  2959. chartdata = JSON.parse(instance._reportBuilder.tableData);
  2960. }
  2961. else {
  2962. chartdata = instance.ChartData;
  2963. }
  2964. if (instance._reportBuilder.pivot.PivotRows.length != 0) {
  2965. pivotRows = instance._reportBuilder.pivot.PivotRows;
  2966. }
  2967. data = instance.groupedPivotRows(chartdata, pivotRows);
  2968. for (var i = 0; i < chartdata.length; i++) {
  2969. let dataitem = chartdata[i];
  2970. let xaxiscols = instance.xaxisColumns[0];
  2971. instance.XaxisStackData.push(dataitem[xaxiscols.DisplayText]);
  2972. }
  2973. let grpdata = [], DataSet = [];
  2974. for (var i = 0; i < data.groupeddata.length; i++) {
  2975. data.pivotdata.map(function (p) {
  2976. if (p[data.groupeddata[i].Field])
  2977. grpdata.push(p[data.groupeddata[i].Field]);
  2978. else
  2979. grpdata.push(0);
  2980. });
  2981. DataSet.push({
  2982. label: data.groupeddata[i].Field,
  2983. data: grpdata,
  2984. backgroundColor: data.groupeddata[i].Color
  2985. });
  2986. grpdata = [];
  2987. }
  2988. DataSet.push();
  2989. instance.PivotDataSet = DataSet;
  2990. instance.ValueColors = colors;
  2991. }
  2992. toolTip() {
  2993. var instance = this;
  2994. instance.DatasetTooltips = [];
  2995. if (instance.toolTipArray.length > 0) {
  2996. for (var i = 0; i < instance.toolTipArray.length; i++) {
  2997. var tooltiparr = instance.toolTipArray[i];
  2998. let Labelarr = [];
  2999. instance.ChartData.map(function (v) {
  3000. Labelarr.push(v[tooltiparr.ColumnName]);
  3001. });
  3002. instance.DatasetTooltips.push({ ColumnName: tooltiparr.AliasName, DisplayText: tooltiparr.DisplayText, labels: Labelarr });
  3003. }
  3004. }
  3005. }
  3006. toolTipDataItem(tooltipItem, data) {
  3007. var instance = this;
  3008. let chartType = Unibase.Platform.Analytics.Charts.Enums.ChartType;
  3009. if (instance.ChartTypeId == chartType.doughnut || instance.ChartTypeId == chartType.pie) {
  3010. if (instance.DatasetTooltips.length != 0) {
  3011. let labels = [];
  3012. for (var i = 0; i < instance.DatasetTooltips.length; i++) {
  3013. var label;
  3014. label = instance.DatasetTooltips[i].DisplayText || '';
  3015. if (label) {
  3016. label += ': ';
  3017. }
  3018. label += instance.DatasetTooltips[i].labels[tooltipItem.dataIndex];
  3019. labels.push(this.convertLabelToPascalCase(label).toString());
  3020. }
  3021. return labels;
  3022. }
  3023. else {
  3024. let labels;
  3025. labels = tooltipItem.dataset && tooltipItem.dataset.label && this.convertLabelToPascalCase(tooltipItem.dataset.label.toString().trim()) || '';
  3026. if (labels) {
  3027. labels += ': ';
  3028. }
  3029. labels += data[tooltipItem.dataIndex];
  3030. return labels;
  3031. }
  3032. }
  3033. else {
  3034. if (instance.DatasetTooltips.length != 0) {
  3035. let labels = [];
  3036. for (var i = 0; i < instance.DatasetTooltips.length; i++) {
  3037. var label;
  3038. label = instance.DatasetTooltips[i].DisplayText || '';
  3039. if (label) {
  3040. label += ': ';
  3041. }
  3042. if (instance.ChartTypeId == chartType.bubble)
  3043. label += instance.DatasetTooltips[i].labels[tooltipItem.dataIndex - 1];
  3044. else
  3045. label += instance.DatasetTooltips[i].labels[tooltipItem.dataIndex];
  3046. labels.push(this.convertLabelToPascalCase(label.toString()));
  3047. }
  3048. return labels;
  3049. }
  3050. else {
  3051. let labels;
  3052. labels = tooltipItem.dataset && tooltipItem.dataset.label && tooltipItem.dataset.label.toString().trim() || '';
  3053. if (labels) {
  3054. labels += ': ';
  3055. }
  3056. labels = this.convertLabelToPascalCase(labels.toString());
  3057. labels += (instance.ChartTypeId == chartType.horizontalBar || instance.ChartTypeId == chartType.stackedHorizontalBar || instance.ChartTypeId == chartType.groupedstackedHorizontalBar) ? tooltipItem.parsed.x : tooltipItem.parsed.y;
  3058. return labels;
  3059. }
  3060. }
  3061. }
  3062. addColumnColors() {
  3063. var instance = this;
  3064. let html = "";
  3065. let HasColors = 1;
  3066. if (instance.appliedColumnColor.length == 0) {
  3067. HasColors = 0;
  3068. }
  3069. $("#lstDatalists").empty();
  3070. var columns = [];
  3071. instance.appliedColumnColor = [];
  3072. instance.ChartSelectedColumns = [];
  3073. let ChartColorPickerColumns;
  3074. instance.ChartSelectedColumns = instance._chartBuilder.coordinate_Elements(true, true, true, true, true, true);
  3075. if (instance.groupColumns.length != 0)
  3076. ChartColorPickerColumns = instance._chartBuilder.coordinate_Elements(false, false, true, false, false, false);
  3077. else
  3078. ChartColorPickerColumns = instance._chartBuilder.coordinate_Elements(true, false, false, false, false, false);
  3079. for (var i = 0; i < ChartColorPickerColumns.length; i++) {
  3080. let ColumnId = ChartColorPickerColumns[i].ColumnId;
  3081. let ColumnName = ChartColorPickerColumns[i].ColumnName;
  3082. let DisplayText = ChartColorPickerColumns[i].DisplayText;
  3083. if (jQuery.inArray(DisplayText, columns) == -1) {
  3084. if (!instance.IsColorPalette) {
  3085. let randomcolor = instance.getRandomColor();
  3086. instance.appliedColumnColor[DisplayText] = { "ColumnId": ColumnId, "ColumnName": ColumnName, "DisplayText": DisplayText, "Color": randomcolor };
  3087. var Color_len = instance.appliedColumnColor.length;
  3088. instance.appliedColumnColor.length = Color_len + 1;
  3089. }
  3090. else {
  3091. instance.appliedColumnColor[DisplayText] = { "ColumnId": ColumnId, "ColumnName": ColumnName, "DisplayText": DisplayText, "Color": instance.ColumnColors[0] };
  3092. var Color_len = instance.appliedColumnColor.length;
  3093. instance.appliedColumnColor.length = Color_len + 1;
  3094. }
  3095. columns.push(DisplayText);
  3096. }
  3097. }
  3098. }
  3099. addColumnColors_new(tabledata) {
  3100. var instance = this;
  3101. instance.appliedColumnColor = [];
  3102. instance.ChartSelectedColumns = [];
  3103. instance.ChartSelectedColumns = instance._chartBuilder.coordinate_Elements(true, true, true, true, true, true);
  3104. for (var i = 0; i < tabledata.length; i++) {
  3105. var xaxiscol = instance.xaxisColumns[0];
  3106. let ColumnId = xaxiscol.ColumnId;
  3107. let ColumnName = xaxiscol.ColumnName;
  3108. let DisplayText = xaxiscol.DisplayText;
  3109. let xcolumnValueColor = tabledata[i][DisplayText];
  3110. var isValExist = instance.appliedColumnColor[xcolumnValueColor + '_' + i];
  3111. if (isValExist == undefined) {
  3112. if (!instance.IsColorPalette) {
  3113. let randomcolor = instance.getRandomColor();
  3114. instance.appliedColumnColor[xcolumnValueColor + '_' + i] = { "ColumnId": ColumnId, "ColumnName": ColumnName, "DisplayText": DisplayText, "Value": xcolumnValueColor, "Color": randomcolor };
  3115. var Color_len = instance.appliedColumnColor.length;
  3116. instance.appliedColumnColor.length = Color_len + 1;
  3117. }
  3118. else {
  3119. instance.appliedColumnColor[xcolumnValueColor + '_' + i] = { "ColumnId": ColumnId, "ColumnName": ColumnName, "DisplayText": DisplayText, "Value": xcolumnValueColor, "Color": instance.ColumnColors[0] };
  3120. var Color_len = instance.appliedColumnColor.length;
  3121. instance.appliedColumnColor.length = Color_len + 1;
  3122. }
  3123. }
  3124. }
  3125. }
  3126. addValueColors(ColumnId, DisplayText, data) {
  3127. var instance = this;
  3128. let Color = "";
  3129. let tabledata = "";
  3130. let IsPivot = false;
  3131. instance.ChartSelectedColumns = [];
  3132. instance.appliedColumnValueColor = [];
  3133. tabledata = data;
  3134. if ((Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().pivot.PivotRows)) {
  3135. if (instance._reportBuilder.pivot.PivotRows.length != 0) {
  3136. tabledata = instance._reportBuilder.pivot.PivotRows;
  3137. IsPivot = true;
  3138. }
  3139. }
  3140. var columnValues = [];
  3141. for (var i = 0; i < tabledata.length; i++) {
  3142. let Value = (IsPivot) ? tabledata[i] : tabledata[i][DisplayText];
  3143. if (Value != null) {
  3144. Value = Value.toString();
  3145. }
  3146. else {
  3147. Value = "";
  3148. }
  3149. let OrgValue = Value;
  3150. if (jQuery.inArray(OrgValue, columnValues) == -1) {
  3151. if (!instance.IsColorPalette) {
  3152. Color = instance.getRandomColor();
  3153. instance.appliedColumnValueColor[DisplayText + '_' + OrgValue] = { "ColumnId": ColumnId, "DisplayText": DisplayText, "ColumnValue": OrgValue, "Color": Color };
  3154. var Values_len = instance.appliedColumnValueColor.length;
  3155. instance.appliedColumnValueColor.length = Values_len + 1;
  3156. }
  3157. else {
  3158. instance.appliedColumnValueColor[DisplayText + '_' + OrgValue] = { "ColumnId": ColumnId, "DisplayText": DisplayText, "ColumnValue": OrgValue, "Color": instance.RowColors[i] };
  3159. var Values_len = instance.appliedColumnValueColor.length;
  3160. instance.appliedColumnValueColor.length = Values_len + 1;
  3161. }
  3162. columnValues.push(OrgValue);
  3163. }
  3164. }
  3165. }
  3166. addValueColors_new(data, displaytext, chartAxis) {
  3167. var instance = this;
  3168. let tabledata = "";
  3169. let IsPivot = false;
  3170. instance.ChartSelectedColumns = [];
  3171. instance.appliedColumnValueColor = [];
  3172. instance.ChartSelectedColumns = instance._chartBuilder.coordinate_Elements(true, true, true, true, true, true);
  3173. tabledata = data;
  3174. if ((Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().pivot.PivotRows)) {
  3175. if (instance._reportBuilder.pivot.PivotRows.length != 0) {
  3176. tabledata = instance._reportBuilder.pivot.PivotRows;
  3177. IsPivot = true;
  3178. }
  3179. }
  3180. instance.valueColors_new(tabledata, displaytext, instance.yaxisColumns, chartAxis);
  3181. }
  3182. valueColors(tabledata, displaytext, ycolumns, chartAxis) {
  3183. var instance = this;
  3184. let Color = "";
  3185. var groupvalues = [];
  3186. let color_index = 0;
  3187. for (var y = 0; y < ycolumns.length; y++) {
  3188. var yaxiscol = ycolumns[y];
  3189. let index = 0;
  3190. for (var i = 0; i < tabledata.length; i++) {
  3191. if (chartAxis == instance.ChartAxis.GroupBy) {
  3192. var grpVal = groupvalues.find(g => g == tabledata[i][displaytext]) ? true : false;
  3193. if (grpVal) {
  3194. continue;
  3195. }
  3196. groupvalues.push(tabledata[i][displaytext]);
  3197. }
  3198. var xyaxiscolvals = index;
  3199. if (!instance.IsColorPalette) {
  3200. Color = instance.getRandomColor();
  3201. instance.appliedColumnValueColor[xyaxiscolvals] = { "DisplayText": displaytext, "Value": xyaxiscolvals, "Color": Color };
  3202. var Values_len = instance.appliedColumnValueColor.length;
  3203. instance.appliedColumnValueColor.length = Values_len + 1;
  3204. }
  3205. else {
  3206. instance.appliedColumnValueColor[xyaxiscolvals] = { "DisplayText": displaytext, "Value": xyaxiscolvals, "Color": instance.RowColors[color_index] };
  3207. var Values_len = instance.appliedColumnValueColor.length;
  3208. instance.appliedColumnValueColor.length = Values_len + 1;
  3209. color_index++;
  3210. }
  3211. index++;
  3212. }
  3213. }
  3214. }
  3215. valueColors_new(tabledata, displaytext, ycolumns, chartAxis) {
  3216. var instance = this;
  3217. instance.yaxisColors = [];
  3218. var groupvalues = [], valueColors = [];
  3219. let color_index = 0;
  3220. let color = "", colorwithpipe = "";
  3221. for (var y = 0; y < ycolumns.length; y++) {
  3222. var yaxiscol = ycolumns[y];
  3223. let index = 0;
  3224. colorwithpipe = "";
  3225. for (var i = 0; i < tabledata.length; i++) {
  3226. if (chartAxis == instance.ChartAxis.GroupBy) {
  3227. var grpVal = groupvalues.find(g => g == tabledata[i][displaytext]) ? true : false;
  3228. if (grpVal) {
  3229. continue;
  3230. }
  3231. groupvalues.push(tabledata[i][displaytext]);
  3232. }
  3233. if (!instance.IsColorPalette) {
  3234. color = instance.getRandomColor();
  3235. valueColors.push(color);
  3236. }
  3237. else {
  3238. color = instance.RowColors[color_index];
  3239. valueColors.push(color);
  3240. color_index++;
  3241. }
  3242. colorwithpipe += "" + color + "|";
  3243. index++;
  3244. }
  3245. let yindex = true;
  3246. if (instance.yaxisColors.length > 0)
  3247. yindex = instance.yaxisColors.find(y => y.columnName != yaxiscol.ColumnName) ? true : false;
  3248. if (yindex) {
  3249. instance.yaxisColors.push({ columnName: yaxiscol.DisplayText, colors: valueColors, colorwithpipesymb: colorwithpipe });
  3250. valueColors = [];
  3251. }
  3252. }
  3253. }
  3254. getRandomColor() {
  3255. let randomcolor = '#' + Math.floor(Math.random() * 16777215).toString(16);
  3256. if (randomcolor == '#000000') {
  3257. randomcolor = '#' + Math.floor(Math.random() * 16777215).toString(16);
  3258. }
  3259. if (randomcolor.length == 6) {
  3260. randomcolor = randomcolor.replace("#", "#0");
  3261. }
  3262. return randomcolor;
  3263. }
  3264. chartViewer_Colors(color, columnId, columnName) {
  3265. var instance = this;
  3266. if (color != "") {
  3267. var Val = color.split("|");
  3268. for (var i = 0; i < Val.length; i++) {
  3269. instance.DataSetColors.push(Val[i]);
  3270. instance.appliedColumnValueColor[i] = { "Value": i, "Color": Val[i] };
  3271. var Values_len = instance.appliedColumnValueColor.length;
  3272. instance.appliedColumnValueColor.length = Values_len + 1;
  3273. }
  3274. }
  3275. }
  3276. _dataSetColors_old(xdisplayText, displaytext, colorType) {
  3277. var instance = this;
  3278. var data = instance.ChartData;
  3279. var colvalwithcolors = "";
  3280. instance.DataSetColors = [];
  3281. for (var i = 0; i < data.length; i++) {
  3282. var dataValue = data[i];
  3283. var ColumnColors = instance.appliedColumnValueColor[i];
  3284. if (ColumnColors) {
  3285. instance.DataSetColors.push(ColumnColors.Color);
  3286. colvalwithcolors += "" + ColumnColors.Color + "|";
  3287. }
  3288. }
  3289. instance.Colors[displaytext] = { colors: colvalwithcolors, columnName: displaytext };
  3290. }
  3291. addyAxisColors(tabledata, ycolumns, chartAxis) {
  3292. var instance = this;
  3293. instance.yaxisColors = [];
  3294. var groupvalues = [];
  3295. let color_index = 0, paletteindex = 0;
  3296. var color = "";
  3297. var colcolors = [], rowcolors = [];
  3298. for (var y = 0; y < ycolumns.length; y++) {
  3299. var yaxiscol = ycolumns[y];
  3300. colcolors = [];
  3301. rowcolors = [];
  3302. if (instance.colorAppliedOn == Unibase.Platform.Analytics.Enums.ColorType.column) {
  3303. if (instance.paletteColors.length > 0) {
  3304. color = instance.paletteColors[y];
  3305. }
  3306. else {
  3307. color = instance.getRandomColor();
  3308. }
  3309. colcolors.push(color);
  3310. instance.yaxisColors.push({ columnName: yaxiscol.AliasName, colors: colcolors });
  3311. }
  3312. else {
  3313. for (var i = 0; i < tabledata.length; i++) {
  3314. if (instance.paletteColors.length > 0) {
  3315. color = instance.paletteColors[paletteindex];
  3316. paletteindex++;
  3317. }
  3318. else {
  3319. color = instance.getRandomColor();
  3320. }
  3321. rowcolors.push(color);
  3322. }
  3323. instance.yaxisColors.push({ columnName: yaxiscol.AliasName, colors: rowcolors });
  3324. }
  3325. }
  3326. }
  3327. addGroupColors(tabledata, displaytext, chartAxis) {
  3328. var instance = this;
  3329. instance.groupColors = [];
  3330. var color = "";
  3331. if (chartAxis == instance.ChartAxis.GroupBy) {
  3332. for (var i = 0; i < tabledata.length; i++) {
  3333. var grpVal = instance.groupColors.find(g => g == tabledata[i][displaytext]) ? true : false;
  3334. if (grpVal) {
  3335. continue;
  3336. }
  3337. if (instance.paletteColors.length > 0) {
  3338. color = instance.paletteColors[i];
  3339. }
  3340. else {
  3341. color = instance.getRandomColor();
  3342. }
  3343. instance.groupColors[tabledata[i][displaytext]] = { c: color };
  3344. }
  3345. }
  3346. }
  3347. _dataSetColors(displaytext) {
  3348. var instance = this;
  3349. instance.DataSetColors = [];
  3350. var ycol = instance.yaxisColors.find(y => y.columnName.toLowerCase() == displaytext);
  3351. if (ycol) {
  3352. instance.DataSetColors = ycol.colors;
  3353. }
  3354. }
  3355. chart_dataSet() {
  3356. return __awaiter(this, void 0, void 0, function* () {
  3357. var instance = this;
  3358. !this._chartBuilder && (this._chartBuilder = Analytics.Charts.ChartBuilder.Instance());
  3359. var chartType = Unibase.Platform.Analytics.Charts.Enums.ChartType;
  3360. if (instance.ChartTypeId != chartType.stackedBar && instance.ChartTypeId != chartType.stackedHorizontalBar) {
  3361. instance.XaxisData = [], instance.XaxisStackData = [], instance.Dataset = [];
  3362. instance.DataSetColors = [];
  3363. var xaxisCols = instance.xaxisColumns;
  3364. var yaxisCols = instance.yaxisColumns;
  3365. if (yaxisCols.length > 0)
  3366. instance.addyAxisColors(instance.ChartData, yaxisCols, instance.ChartAxis.Vertical);
  3367. for (var x = 0; x < xaxisCols.length; x++) {
  3368. var xColumn = xaxisCols[x];
  3369. let AliasName = xColumn.DisplayText.toLowerCase();
  3370. let ColumnName = xColumn.ColumnName.toLowerCase();
  3371. let xColumnId = xColumn.ColumnId;
  3372. if (instance.ChartData) {
  3373. for (var i = 0; i < instance.ChartData.length; i++) {
  3374. var XData = instance.ChartData[i][AliasName];
  3375. XData = this.convertLabelToPascalCase((XData && XData.toString()) || "");
  3376. instance.XaxisData.push(XData);
  3377. }
  3378. }
  3379. }
  3380. if (instance.groupColumns.length == 0 || instance.ChartTypeId == Unibase.Platform.Analytics.Charts.Enums.ChartType.bubble) {
  3381. for (var y = 0; y < yaxisCols.length; y++) {
  3382. var yColumns = yaxisCols[y];
  3383. let displayName = this.getReportColumnDisplayTextByAliasName(yColumns.AliasName);
  3384. let AliasName = yColumns.AliasName.toLowerCase();
  3385. instance._dataSetColors(AliasName);
  3386. if (instance.ChartData) {
  3387. for (var j = 0; j < instance.ChartData.length; j++) {
  3388. var YData = instance.ChartData[j][AliasName];
  3389. instance.YaxisData.push(YData);
  3390. }
  3391. }
  3392. var Data = [];
  3393. let chartType = Unibase.Platform.Analytics.Charts.Enums.ChartType;
  3394. if (instance.ChartTypeId == chartType.bubble) {
  3395. Data = instance.bubbleData();
  3396. }
  3397. else {
  3398. Data = instance.YaxisData;
  3399. }
  3400. var color = instance.getDataSetColors();
  3401. var ydata = {
  3402. label: this.convertLabelToPascalCase(displayName || ""),
  3403. data: Data,
  3404. borderColor: color.boarderColor,
  3405. backgroundColor: color.backgroundColor,
  3406. borderWidth: 1,
  3407. fill: instance.IsFill,
  3408. };
  3409. if (instance.ChartTypeId == chartType.barWithLine)
  3410. ydata["type"] = "bar";
  3411. if (instance.chartBaseColumns && instance.chartBaseColumns.length && instance.chartBaseColumns[0].AliasName) {
  3412. ydata["base"] = instance.ChartData.map(x => x[instance.chartBaseColumns[0].AliasName])[0];
  3413. this.chartBaseValue = ydata["base"];
  3414. }
  3415. else {
  3416. this.chartBaseValue = 0;
  3417. }
  3418. instance.Dataset.push(ydata);
  3419. instance.YaxisData = [];
  3420. }
  3421. }
  3422. }
  3423. let id = instance.ChartDivId ? instance.ChartDivId : 'myChart';
  3424. instance.chartType(id);
  3425. });
  3426. }
  3427. getDataSetColors() {
  3428. var instance = this;
  3429. var chartType = Unibase.Platform.Analytics.Charts.Enums.ChartType;
  3430. let backgroundColor = [];
  3431. if (instance.colorAppliedOn == Unibase.Platform.Analytics.Enums.ColorType.column)
  3432. backgroundColor = instance.DataSetColors[0];
  3433. else
  3434. backgroundColor = instance.DataSetColors;
  3435. if (instance.ChartTypeId == chartType.area) {
  3436. instance.IsFill = true;
  3437. backgroundColor = instance.DataSetColors;
  3438. }
  3439. else {
  3440. instance.IsFill = false;
  3441. }
  3442. let boarderColor = 'white';
  3443. if (instance.ChartTypeId == chartType.line || instance.ChartTypeId == chartType.barWithLine)
  3444. boarderColor = backgroundColor;
  3445. return { boarderColor: boarderColor, backgroundColor: backgroundColor };
  3446. }
  3447. pivotTable() {
  3448. return __awaiter(this, void 0, void 0, function* () {
  3449. var instance = this;
  3450. if (instance._reportBuilder.reportid == 0) {
  3451. yield instance._reportBuilder.load_data(instance._reportBuilder.table);
  3452. }
  3453. });
  3454. }
  3455. chartType(id) {
  3456. var instance = this;
  3457. let displayMode;
  3458. var width = $(window).width();
  3459. if (width <= 576) {
  3460. displayMode = Analytics.Reports.Enums.DisplayModeType.Mobile;
  3461. }
  3462. else {
  3463. displayMode = Analytics.Reports.Enums.DisplayModeType.DeskTop;
  3464. }
  3465. if (instance.xaxisColumns.length > 1) {
  3466. if (displayMode == Analytics.Reports.Enums.DisplayModeType.DeskTop)
  3467. instance.barThikness = 30;
  3468. else
  3469. instance.barThikness = 5;
  3470. }
  3471. else {
  3472. if (displayMode == Analytics.Reports.Enums.DisplayModeType.DeskTop)
  3473. instance.barThikness = 40;
  3474. else
  3475. instance.barThikness = 30;
  3476. }
  3477. if (instance.ChartTypeId == Unibase.Platform.Analytics.Charts.Enums.ChartType.bar) {
  3478. instance.ChartTypeName = 'bar';
  3479. return instance.chart(id);
  3480. }
  3481. else if (instance.ChartTypeId == Unibase.Platform.Analytics.Charts.Enums.ChartType.horizontalBar) {
  3482. instance.ChartTypeName = 'horizontalBar';
  3483. return instance.chart(id);
  3484. }
  3485. else if (instance.ChartTypeId == Unibase.Platform.Analytics.Charts.Enums.ChartType.area) {
  3486. instance.ChartTypeName = 'line';
  3487. return instance.chart(id);
  3488. }
  3489. else if (instance.ChartTypeId == Unibase.Platform.Analytics.Charts.Enums.ChartType.doughnut) {
  3490. instance.ChartTypeName = 'doughnut';
  3491. return instance.pieanddoughnutchart(id);
  3492. }
  3493. else if (instance.ChartTypeId == Unibase.Platform.Analytics.Charts.Enums.ChartType.line) {
  3494. instance.ChartTypeName = 'line';
  3495. return instance.chart(id);
  3496. }
  3497. else if (instance.ChartTypeId == Unibase.Platform.Analytics.Charts.Enums.ChartType.pie) {
  3498. instance.ChartTypeName = 'pie';
  3499. return instance.pieanddoughnutchart(id);
  3500. }
  3501. else if (instance.ChartTypeId == Unibase.Platform.Analytics.Charts.Enums.ChartType.stackedBar) {
  3502. instance.ChartTypeName = 'bar';
  3503. return instance.stackChart(id);
  3504. }
  3505. else if (instance.ChartTypeId == Unibase.Platform.Analytics.Charts.Enums.ChartType.stackedHorizontalBar) {
  3506. instance.ChartTypeName = 'horizontalBar';
  3507. return instance.stackChart(id);
  3508. }
  3509. else if (instance.ChartTypeId == Unibase.Platform.Analytics.Charts.Enums.ChartType.bubble) {
  3510. instance.ChartTypeName = 'bubble';
  3511. return instance.bubbleChart(id);
  3512. }
  3513. else if (instance.ChartTypeId == Unibase.Platform.Analytics.Charts.Enums.ChartType.barWithLine) {
  3514. $("#linechart").removeClass("hidden");
  3515. instance.ChartTypeName = 'bar';
  3516. return instance.chart(id);
  3517. }
  3518. }
  3519. chart(id) {
  3520. return __awaiter(this, void 0, void 0, function* () {
  3521. var instance = this;
  3522. let DataSet;
  3523. let xaxisData;
  3524. let isStack = false;
  3525. let indexAxis = 'x';
  3526. this.updateDatasetForDataLabel();
  3527. if (instance.groupColumns.length != 0) {
  3528. if (instance._reportBuilder.pivot.ColumnName) {
  3529. yield instance.pivotTable();
  3530. instance.pivotDataSet();
  3531. }
  3532. else {
  3533. instance.groupedStackDataSet();
  3534. }
  3535. if (instance.PivotDataSet && instance.PivotDataSet.length != 0)
  3536. DataSet = JSON.stringify(instance.PivotDataSet);
  3537. xaxisData = JSON.stringify(instance.XaxisStackData);
  3538. }
  3539. else {
  3540. if (instance.ChartTypeId == Unibase.Platform.Analytics.Charts.Enums.ChartType.barWithLine)
  3541. instance.barWithLine();
  3542. DataSet = JSON.stringify(instance.Dataset);
  3543. xaxisData = JSON.stringify(instance.XaxisData);
  3544. }
  3545. instance.clearChart(id);
  3546. if (instance.ChartTypeName == "horizontalBar") {
  3547. instance.ChartTypeName = 'bar';
  3548. indexAxis = 'y';
  3549. }
  3550. const horizontalDottedLine = {
  3551. id: 'horizontalDottedLine',
  3552. afterDraw: function (chart, args, options) {
  3553. const { ctx, _metasets, chartArea: { top, right, bottom, left, width, height }, scales: { xAxes, yAxes } } = chart;
  3554. if (instance.chartBaseColumns && instance.chartBaseColumns.length) {
  3555. let baseValue = Math.round(_metasets[0]._dataset.base);
  3556. ctx.save();
  3557. ctx.setLineDash([10, 10]);
  3558. ctx.strokeStyle = 'blue';
  3559. ctx.strokeRect(left, yAxes.getPixelForValue(baseValue), width, 0);
  3560. ctx.font = ctx.font;
  3561. ctx.fontStyle = _metasets[0]._dataset.borderColor;
  3562. ctx.textBaseLine = 'middle';
  3563. ctx.fillText(baseValue.toLocaleString('en'), right + 10, yAxes.getPixelForValue(baseValue) + 5);
  3564. ctx.restore();
  3565. }
  3566. }
  3567. };
  3568. const { isXAxisNumAbb, isYAxisNumAbb } = instance.isNumberAbbr();
  3569. let canvas = document.getElementById(id);
  3570. let ctx = canvas.getContext("2d");
  3571. var chart = `new Chart(ctx, {
  3572. type:'` + instance.ChartTypeName + `',
  3573. data: {
  3574. labels:` + xaxisData + `,
  3575. datasets:` + DataSet + `
  3576. },
  3577. options: {
  3578. layout:{
  3579. padding:{
  3580. right:${instance.chartBaseColumns && instance.chartBaseColumns.length ? 80 : instance.isDataLabel && 20},
  3581. top:${instance.isDataLabel && 20},
  3582. bottom:${instance.isDataLabel && 20},
  3583. },
  3584. },
  3585. plugins:{
  3586. tooltip: {
  3587. displayColors: false,
  3588. callbacks: {
  3589. label: function (tooltipItem, data) {
  3590. data = tooltipItem.dataset.data;
  3591. instance.toolTip();
  3592. var label = instance.toolTipDataItem(tooltipItem, data);
  3593. return label;
  3594. },
  3595. ${!instance.isTooltipHeader ? 'title: function() { }, ' : ''}
  3596. },
  3597. },
  3598. legend: {
  3599. display:` + instance.displayLegend + `,
  3600. position:'` + instance.legendType + `',
  3601. labels:{
  3602. boxWidth:13,
  3603. },
  3604. },
  3605. },
  3606. responsive: true,
  3607. maintainAspectRatio: false,
  3608. scales: {
  3609. yAxes: {
  3610. stacked: ` + isStack + `,
  3611. barPercentage:0.3,
  3612. categoryPercentage: 1,
  3613. ticks: {
  3614. beginAtZero: true,
  3615. callback: function(value, index, ticks) {
  3616. if (instance.tickLabelLength > 0){
  3617. if ('${indexAxis.toString().toLowerCase()}' == 'y' ){
  3618. var text = this.getLabelForValue(value);
  3619. ${instance.tickLabelLength ? 'return text && text.toString().slice(0,instance.tickLabelLength) || 0;' : 'return text;'}
  3620. }
  3621. else{
  3622. return value;
  3623. }
  3624. }else{
  3625. return instance.abbreviateNumber(value,this,isYAxisNumAbb);
  3626. }
  3627. },
  3628. }
  3629. },
  3630. xAxes: {
  3631. stacked: ` + isStack + `,
  3632. barPercentage:0.3,
  3633. categoryPercentage: 1,
  3634. ticks: {
  3635. beginAtZero: true,
  3636. callback: function(value, index, ticks) {
  3637. if (instance.tickLabelLength > 0){
  3638. if ('${indexAxis.toString().toLowerCase()}'== 'x' ){
  3639. var text = this.getLabelForValue(value);
  3640. ${instance.tickLabelLength ? 'return text && text.toString().slice(0,instance.tickLabelLength) || 0;' : 'return text;'}
  3641. }
  3642. else{
  3643. return value;
  3644. }
  3645. }else{
  3646. return instance.abbreviateNumber(value,this,isXAxisNumAbb);
  3647. }
  3648. },
  3649. }
  3650. }
  3651. },
  3652. onClick: onChartClick.bind(this),
  3653. indexAxis: '${indexAxis}',
  3654. },
  3655. plugins:[horizontalDottedLine ${instance.isDataLabel ? ',ChartDataLabels' : ''}],
  3656. })`;
  3657. var c = eval(chart);
  3658. function onChartClick(evt, items) {
  3659. this.onChartClickHandler(evt, items, c, false);
  3660. }
  3661. });
  3662. }
  3663. pieanddoughnutchart(id) {
  3664. return __awaiter(this, void 0, void 0, function* () {
  3665. var instance = this;
  3666. let DataSet;
  3667. let xaxisData;
  3668. this.updateDatasetForDataLabel();
  3669. if (instance.groupColumns.length != 0) {
  3670. if (instance._reportBuilder.pivot.ColumnName) {
  3671. yield instance.pivotTable();
  3672. instance.pivotDataSet();
  3673. }
  3674. else {
  3675. instance.groupedStackDataSet();
  3676. }
  3677. if (instance.PivotDataSet && instance.PivotDataSet.length != 0)
  3678. DataSet = JSON.stringify(instance.PivotDataSet);
  3679. xaxisData = JSON.stringify(instance.XaxisStackData);
  3680. }
  3681. else {
  3682. DataSet = JSON.stringify(instance.Dataset);
  3683. xaxisData = JSON.stringify(instance.XaxisData);
  3684. }
  3685. instance.clearChart(id);
  3686. let canvas = document.getElementById(id);
  3687. let ctx = canvas.getContext("2d");
  3688. var chart = `new Chart(ctx, {
  3689. type:'` + instance.ChartTypeName + `',
  3690. data: {
  3691. labels:` + xaxisData + `,
  3692. datasets:` + DataSet + `
  3693. },
  3694. options: {
  3695. layout:{
  3696. padding:${instance.isDataLabel && 20},
  3697. },
  3698. plugins:{
  3699. legend: {
  3700. display:` + instance.displayLegend + `,
  3701. position:'` + instance.legendType + `',
  3702. labels:{
  3703. boxWidth:13,
  3704. },
  3705. },
  3706. tooltip: {
  3707. displayColors: false,
  3708. callbacks: {
  3709. label: function (tooltipItem, data) {
  3710. data = tooltipItem.dataset.data;
  3711. instance.toolTip();
  3712. var label = instance.toolTipDataItem(tooltipItem, data);
  3713. return label;
  3714. },
  3715. ${!instance.isTooltipHeader ? 'title: function() { }, ' : ''}
  3716. },
  3717. },
  3718. },
  3719. responsive: true,
  3720. maintainAspectRatio: false,
  3721. onClick: onChartClick.bind(this),
  3722. },
  3723. ${instance.isDataLabel ? 'plugins:[ChartDataLabels],' : ''}
  3724. })`;
  3725. var c = eval(chart);
  3726. function onChartClick(evt, items) {
  3727. this.onChartClickHandler(evt, items, c, false, false);
  3728. }
  3729. return c;
  3730. });
  3731. }
  3732. onChartClickHandler(evt, items, c, isBubbleChart, isStackedChart) {
  3733. var activePoint = c.getElementsAtEventForMode(evt, 'index', { intersect: true }, false)[0];
  3734. if (activePoint) {
  3735. let rv_instance = Unibase.Platform.Analytics.Components.ReportViewer.Instance().getReportViewerInstance(this.chartContainerId);
  3736. if (this._reportBuilder.isEdit)
  3737. return "";
  3738. let reportInfo = rv_instance.reportResponse.result.ReportInfo;
  3739. let filters = [];
  3740. if (reportInfo.IsLinkReport) {
  3741. this._reportManager.getSubReports(reportInfo.ReportId).then((response) => {
  3742. if (response.status == Unibase.Data.Status.Success && response.result.length) {
  3743. let subReport = response.result[0];
  3744. var filters = [];
  3745. if (subReport.SubReportTypeId == Unibase.Platform.Analytics.Reports.Enums.SubReportType.Report) {
  3746. let subReportParams = JSON.parse(subReport.Filters);
  3747. for (var i = 0; i < subReportParams.length; i++) {
  3748. var param = subReportParams[i];
  3749. if (param.Isvalue) {
  3750. filters.push({ ParameterName: param.ParameterValue, ParameterValue: param.ParameterName, ExpOp: 1 });
  3751. }
  3752. else {
  3753. if (this.xaxisColumns[0] && this.xaxisColumns[0].AliasName == param.ParameterName) {
  3754. filters.push({ ParameterName: param.ParameterValue, ParameterValue: this.XaxisData[activePoint.index], ExpOp: 1 });
  3755. }
  3756. else {
  3757. if (rv_instance.reportResponse.result.ReportJsonData && rv_instance.reportResponse.result.ReportJsonData.Result.Data) {
  3758. var reportData = JSON.parse(rv_instance.reportResponse.result.ReportJsonData.Result.Data);
  3759. let idx = isBubbleChart ? activePoint.index - 1 : activePoint.index;
  3760. var rowData;
  3761. if (!isStackedChart) {
  3762. rowData = reportData.find(x => x[this.xaxisColumns[0].AliasName].toLowerCase() == this.XaxisData[idx].toLowerCase());
  3763. }
  3764. else {
  3765. rowData = reportData[items[0].datasetIndex];
  3766. }
  3767. if (rowData) {
  3768. if (rowData[param.ParameterValue]) {
  3769. filters.push({ ParameterName: param.ParameterValue, ParameterValue: rowData[param.ParameterValue].toString(), ExpOp: 1 });
  3770. }
  3771. }
  3772. }
  3773. }
  3774. }
  3775. }
  3776. if (filters.length) {
  3777. this.linkReport(subReport.ChildReportId, filters, this.chartContainerId + "_viewall");
  3778. }
  3779. }
  3780. else {
  3781. if (rv_instance.reportResponse.result.ReportJsonData && rv_instance.reportResponse.result.ReportJsonData.Result.Data) {
  3782. var reportData = JSON.parse(rv_instance.reportResponse.result.ReportJsonData.Result.Data);
  3783. var rowData = reportData.find(x => x[this.xaxisColumns[0].AliasName] == this.XaxisData[activePoint.index]);
  3784. Unibase.Platform.Helpers.NavigationHelper.Instance().loadDetail(rowData[subReport.PrimaryKeyColumn], subReport.InstalledAppId, null, null);
  3785. }
  3786. }
  3787. }
  3788. });
  3789. }
  3790. }
  3791. }
  3792. barWithLine() {
  3793. var instance = this;
  3794. for (var l = 0; l < instance.lineChartColumns.length; l++) {
  3795. var lineCol = instance.lineChartColumns[l];
  3796. var data = [];
  3797. for (var bl = 0; bl < instance.ChartData.length; bl++) {
  3798. var bLData = instance.ChartData[bl][lineCol.AliasName];
  3799. data.push(bLData);
  3800. }
  3801. var color = instance.getDataSetColors();
  3802. var bldata = {
  3803. label: lineCol.AliasName,
  3804. data: data,
  3805. borderColor: color.boarderColor,
  3806. backgroundColor: color.backgroundColor,
  3807. borderWidth: 1,
  3808. fill: instance.IsFill,
  3809. type: "line"
  3810. };
  3811. instance.Dataset.push(bldata);
  3812. }
  3813. }
  3814. stackChart(id) {
  3815. return __awaiter(this, void 0, void 0, function* () {
  3816. var instance = this;
  3817. let indexAxis = 'x';
  3818. if (instance._reportBuilder.pivot.ColumnName) {
  3819. yield instance.pivotTable();
  3820. instance.pivotDataSet();
  3821. }
  3822. else {
  3823. instance.groupedStackDataSet();
  3824. }
  3825. this.updateDatasetForDataLabel();
  3826. instance.clearChart(id);
  3827. let canvas = document.getElementById(id);
  3828. let ctx = canvas.getContext("2d");
  3829. let legendItems = {};
  3830. if (instance.ChartTypeName == "horizontalBar") {
  3831. instance.ChartTypeName = 'bar';
  3832. indexAxis = 'y';
  3833. }
  3834. const { isXAxisNumAbb, isYAxisNumAbb } = instance.isNumberAbbr();
  3835. var chart = `new Chart(ctx, {
  3836. type:'` + instance.ChartTypeName + `',
  3837. data: {
  3838. labels:` + JSON.stringify(instance.XaxisStackData) + `,
  3839. datasets:` + JSON.stringify(instance.PivotDataSet) + `
  3840. },
  3841. options: {
  3842. layout:{
  3843. padding:${instance.isDataLabel && 20},
  3844. },
  3845. plugins: {
  3846. tooltip: {
  3847. displayColors: false,
  3848. callbacks: {
  3849. label: function (tooltipItem, data) {
  3850. data = tooltipItem.dataset.data;
  3851. instance.toolTip();
  3852. var label = instance.toolTipDataItem(tooltipItem, data);
  3853. return label;
  3854. },
  3855. ${!instance.isTooltipHeader ? 'title: function() { }, ' : ''}
  3856. },
  3857. },
  3858. legend: {
  3859. display:` + instance.displayLegend + `,
  3860. position:'` + instance.legendType + `',
  3861. onClick: legendClick,
  3862. align: 'center',
  3863. labels: {
  3864. boxWidth:13,
  3865. //filter: function(legendItem) {
  3866. // if(legendItems[legendItem.text] == undefined){
  3867. // legendItems[legendItem.text] = true;
  3868. // return legendItem.text;
  3869. // }
  3870. //}
  3871. },
  3872. },
  3873. },
  3874. responsive: true,
  3875. maintainAspectRatio: false,
  3876. indexAxis: '${indexAxis}',
  3877. scales: {
  3878. xAxes: {
  3879. barPercentage:0.3,
  3880. stacked: true,
  3881. ticks: {
  3882. callback: function(value) {
  3883. if (instance.tickLabelLength > 0){
  3884. if ('${indexAxis.toString().toLowerCase()}' == 'x'){
  3885. var value = instance.abbreviateNumber(value,this,isXAxisNumAbb);
  3886. ${instance.tickLabelLength ? 'value = value && typeof(value) ==\'string\' && value.toString().slice(0,instance.tickLabelLength);' : ''}
  3887. return value;
  3888. }
  3889. else{
  3890. return value;
  3891. }
  3892. }else{
  3893. return instance.abbreviateNumber(value,this,isXAxisNumAbb);
  3894. }
  3895. }
  3896. }
  3897. },
  3898. yAxes: {
  3899. barPercentage:0.3,
  3900. stacked: true,
  3901. ticks: {
  3902. beginAtZero: true,
  3903. callback: function(value) {
  3904. if (instance.tickLabelLength > 0){
  3905. if ('${indexAxis.toString().toLowerCase()}' == 'y'){
  3906. var value = instance.abbreviateNumber(value,this,isYAxisNumAbb);
  3907. ${instance.tickLabelLength ? 'value = value && typeof(value) ==\'string\' && value.toString().slice(0,instance.tickLabelLength);' : ''}
  3908. return value;
  3909. }
  3910. else{
  3911. return value;
  3912. }
  3913. }else{
  3914. return instance.abbreviateNumber(value,this,isYAxisNumAbb);
  3915. }
  3916. }
  3917. }
  3918. }
  3919. },
  3920. onClick: onChartClick.bind(instance),
  3921. legendCallback: legendCallBack,
  3922. onResize:function(){
  3923. legendItems = {};
  3924. },
  3925. },
  3926. ${instance.isDataLabel ? 'plugins:[ChartDataLabels],' : ''}
  3927. })`;
  3928. var c = eval(chart);
  3929. function legendCallBack(chart) {
  3930. var legendItems = [];
  3931. if (instance.legendTitleTypeId == Unibase.Platform.Analytics.Enums.LegendTitleType.Column && (instance.ChartTypeId == Unibase.Platform.Analytics.Charts.Enums.ChartType.stackedBar || instance.ChartTypeId == Unibase.Platform.Analytics.Charts.Enums.ChartType.stackedHorizontalBar)) {
  3932. legendItems = [];
  3933. for (var i = 0; i < instance.yaxisColumns.length; i++) {
  3934. if (chart.legend.legendItems[i]) {
  3935. chart.legend.legendItems[i].text = instance.yaxisColumns[i].AliasName;
  3936. legendItems.push(chart.legend.legendItems[i]);
  3937. }
  3938. }
  3939. chart.legend.legendItems = legendItems;
  3940. }
  3941. return chart.legend;
  3942. }
  3943. function legendClick(e, legendItem) {
  3944. var index = legendItem.datasetIndex;
  3945. var ci = this.chart;
  3946. var alreadyHidden = (ci.getDatasetMeta(index).hidden === null) ? false : ci.getDatasetMeta(index).hidden;
  3947. if (instance.legendTitleTypeId == Unibase.Platform.Analytics.Enums.LegendTitleType.Column) {
  3948. var legendItems = [];
  3949. instance.yaxisColumns.forEach(function (e, i) {
  3950. var meta = ci.getDatasetMeta(i);
  3951. if (e.AliasName == legendItem.text) {
  3952. if (!alreadyHidden)
  3953. meta.hidden = true;
  3954. else
  3955. meta.hidden = null;
  3956. }
  3957. });
  3958. ci.update();
  3959. if (instance.legendTitleTypeId == Unibase.Platform.Analytics.Enums.LegendTitleType.Column && (instance.ChartTypeId == Unibase.Platform.Analytics.Charts.Enums.ChartType.stackedBar || instance.ChartTypeId == Unibase.Platform.Analytics.Charts.Enums.ChartType.stackedHorizontalBar)) {
  3960. legendItems = [];
  3961. for (var i = 0; i < instance.yaxisColumns.length; i++) {
  3962. if (ci.legend.legendItems[i]) {
  3963. ci.legend.legendItems[i].text = instance.yaxisColumns[i].AliasName;
  3964. legendItems.push(ci.legend.legendItems[i]);
  3965. }
  3966. }
  3967. ci.legend.legendItems = legendItems;
  3968. }
  3969. return ci.legend;
  3970. }
  3971. else {
  3972. ci.data.datasets.forEach(function (e, i) {
  3973. var meta = ci.getDatasetMeta(i);
  3974. if (e.label == legendItem.text) {
  3975. if (!alreadyHidden)
  3976. meta.hidden = true;
  3977. else
  3978. meta.hidden = null;
  3979. }
  3980. });
  3981. ci.update();
  3982. }
  3983. }
  3984. function onChartClick(evt, items) {
  3985. this.onChartClickHandler(evt, items, c, false, true);
  3986. }
  3987. return c;
  3988. });
  3989. }
  3990. stackChart_old(id) {
  3991. return __awaiter(this, void 0, void 0, function* () {
  3992. var instance = this;
  3993. if (instance._reportBuilder.pivot.ColumnName) {
  3994. yield instance.pivotTable();
  3995. instance.pivotDataSet();
  3996. }
  3997. else {
  3998. instance.groupedStackDataSet();
  3999. }
  4000. instance.clearChart(id);
  4001. const { isXAxisNumAbb, isYAxisNumAbb } = instance.isNumberAbbr();
  4002. let canvas = document.getElementById(id);
  4003. let ctx = canvas.getContext("2d");
  4004. var chart = new Chart(ctx, {
  4005. type: instance.ChartTypeName,
  4006. data: {
  4007. labels: instance.XaxisStackData,
  4008. datasets: instance.PivotDataSet
  4009. },
  4010. options: {
  4011. tooltips: {
  4012. displayColors: false,
  4013. callbacks: {
  4014. label: function (tooltipItem, data) {
  4015. instance.toolTip();
  4016. var label = instance.toolTipDataItem(tooltipItem, data);
  4017. return label;
  4018. },
  4019. },
  4020. },
  4021. legend: {
  4022. display: instance.displayLegend,
  4023. position: instance.legendType,
  4024. labels: {
  4025. boxWidth: 13,
  4026. },
  4027. },
  4028. responsive: true,
  4029. maintainAspectRatio: false,
  4030. scales: {
  4031. xAxes: [{
  4032. stacked: true,
  4033. ticks: {
  4034. callback: function (value) {
  4035. return instance.abbreviateNumber(value, this, isXAxisNumAbb);
  4036. }
  4037. }
  4038. }],
  4039. yAxes: [{
  4040. stacked: true,
  4041. ticks: {
  4042. beginAtZero: true,
  4043. callback: function (value) {
  4044. return instance.abbreviateNumber(value, this, isYAxisNumAbb);
  4045. }
  4046. }
  4047. }]
  4048. }
  4049. }
  4050. });
  4051. return chart;
  4052. });
  4053. }
  4054. bubbleData() {
  4055. var instance = this;
  4056. var bubbleData = [];
  4057. let orginalIdx = -1;
  4058. this.xAxisLables = [];
  4059. instance.xAxisDataWithIndexes = [];
  4060. let index = 0;
  4061. instance.XaxisData.map(x => {
  4062. instance.xAxisDataWithIndexes.push({ Index: index, Name: instance.XaxisData[index] });
  4063. index++;
  4064. });
  4065. var xArray = instance.XaxisData;
  4066. var yArray = instance.YaxisData;
  4067. bubbleData.push({ x: 0, y: 0, r: 0 });
  4068. xArray.forEach(function (e, i) {
  4069. let idx = instance.xAxisDataWithIndexes[i].Index;
  4070. let existingData = instance.xAxisLables.find(x => x.toString().toLowerCase() == e.toString().toLowerCase());
  4071. if (existingData) {
  4072. idx = instance.xAxisLables.indexOf(existingData);
  4073. }
  4074. else {
  4075. idx = ++orginalIdx;
  4076. instance.xAxisLables.push(instance.xAxisDataWithIndexes[i].Name);
  4077. }
  4078. bubbleData.push({
  4079. x: idx + 1,
  4080. y: parseFloat(yArray[i]),
  4081. r: 6,
  4082. });
  4083. });
  4084. return bubbleData;
  4085. }
  4086. bubbleChart(id) {
  4087. var instance = this;
  4088. var rv_instance;
  4089. let containterid = id.split("-ch")[0];
  4090. this.updateDatasetForDataLabel();
  4091. if (Unibase.Platform.Helpers.NavigationHelper.reportViewerInstance.length > 0) {
  4092. let reportviewerInstance = Unibase.Platform.Helpers.NavigationHelper.reportViewerInstance.find(x => x.childcontainerid == containterid);
  4093. if (reportviewerInstance != undefined)
  4094. rv_instance = reportviewerInstance.instance;
  4095. }
  4096. instance.clearChart(id);
  4097. const { isXAxisNumAbb, isYAxisNumAbb } = instance.isNumberAbbr();
  4098. let canvas = document.getElementById(id);
  4099. let ctx = canvas.getContext("2d");
  4100. var chart_str = `new Chart(ctx, {
  4101. type: '${instance.ChartTypeName}',
  4102. data: {
  4103. datasets: ${JSON.stringify(instance.Dataset)},
  4104. },
  4105. options: {
  4106. responsive: true, // Instruct chart js to respond nicely.
  4107. maintainAspectRatio: false, // Add to prevent default behaviour of full-width/height
  4108. scaleShowValues: true,
  4109. layout:{
  4110. padding:${instance.isDataLabel && 20},
  4111. },
  4112. scales: { // options to replace x axis with strings
  4113. xAxes: {
  4114. beganAtZero: true,
  4115. ticks: {
  4116. callback: function (label, index, labels) {
  4117. if (!label) return "";
  4118. label = instance.xAxisLables[label-1];
  4119. ${instance.tickLabelLength ? 'label = label && typeof(label) == \'string\' && label.toString().slice(0, instance.tickLabelLength) || 0; ' : ''}
  4120. return label;
  4121. },
  4122. stepSize: 1,
  4123. }
  4124. },
  4125. yAxes: {
  4126. ticks: {
  4127. callback: function(value) {
  4128. return instance.abbreviateNumber(value,this,isYAxisNumAbb);
  4129. }
  4130. }
  4131. }
  4132. },
  4133. plugins: {
  4134. tooltip: {
  4135. displayColors: false,
  4136. callbacks: {
  4137. label: function (tooltipItem, data) {
  4138. data = tooltipItem.dataset.data;
  4139. instance.toolTip();
  4140. var label = instance.toolTipDataItem(tooltipItem, data);
  4141. return label;
  4142. },
  4143. ${!instance.isTooltipHeader ? 'title: function() { },' : ''}
  4144. },
  4145. },
  4146. legend: {
  4147. display: ${instance.displayLegend},
  4148. position: '${instance.legendType}',
  4149. labels: {
  4150. boxWidth: 13,
  4151. },
  4152. },
  4153. },
  4154. onClick: onChartClick.bind(instance),
  4155. },
  4156. ${instance.isDataLabel ? 'plugins:[ChartDataLabels],' : ''}
  4157. })`;
  4158. var chart = eval(chart_str);
  4159. function onChartClick(evt, items) {
  4160. this.onChartClickHandler(evt, items, chart, true);
  4161. }
  4162. return chart;
  4163. }
  4164. bubbleChart_old(id) {
  4165. var instance = this;
  4166. instance.clearChart(id);
  4167. let canvas = document.getElementById(id);
  4168. let ctx = canvas.getContext("2d");
  4169. var chart = new Chart(ctx, {
  4170. type: instance.ChartTypeName,
  4171. data: {
  4172. datasets: instance.Dataset,
  4173. },
  4174. options: {
  4175. scales: {
  4176. yAxes: [{
  4177. ticks: {
  4178. beginAtZero: true,
  4179. min: -30,
  4180. max: 30
  4181. }
  4182. }],
  4183. }
  4184. }
  4185. });
  4186. return chart;
  4187. }
  4188. tenureChart(id, reportid) {
  4189. return __awaiter(this, void 0, void 0, function* () {
  4190. var instance = this;
  4191. instance.Dataset = [];
  4192. instance.YaxisData = [];
  4193. var intervels = instance._reportBuilder.timeIntervels(instance._reportBuilder.tenureTimeIntervalCol);
  4194. instance.XaxisData = intervels;
  4195. var x = instance.XaxisData;
  4196. let tenureTableData;
  4197. if (reportid != 0 && instance.IsChartBuilder == false) {
  4198. instance._reportBuilder.tableData = "";
  4199. var repObj = {
  4200. ReportId: reportid,
  4201. IsJson: true
  4202. };
  4203. yield instance._reportManager.getReportViewerData(repObj).then(function (response) {
  4204. let res = JSON.parse(response.result);
  4205. tenureTableData = res.Data;
  4206. });
  4207. }
  4208. else {
  4209. tenureTableData = instance._reportBuilder.tableData;
  4210. }
  4211. if (tenureTableData) {
  4212. var j = JSON.parse(tenureTableData);
  4213. for (var i = 0; i < x.length; i++) {
  4214. let randomcolor = instance.getRandomColor();
  4215. instance.DataSetColors.push(randomcolor);
  4216. var a = x[i];
  4217. instance.YaxisData.push(j[0][a]);
  4218. }
  4219. var ydata = {
  4220. label: instance.XaxisData,
  4221. data: instance.YaxisData,
  4222. borderColor: 'white',
  4223. backgroundColor: instance.DataSetColors,
  4224. borderWidth: 1,
  4225. fill: instance.IsFill,
  4226. };
  4227. instance.Dataset.push(ydata);
  4228. instance.ChartTypeName = 'doughnut';
  4229. instance.ChartTypeId = Unibase.Platform.Analytics.Charts.Enums.ChartType.doughnut;
  4230. instance.chart(id);
  4231. }
  4232. });
  4233. }
  4234. clearSelectedChartFields() {
  4235. var instance = this;
  4236. instance.xaxisColumns = [], instance.yaxisColumns = [];
  4237. instance.groupColumns = [], instance.ChartData = [], instance.ChartSelectedColumns = [],
  4238. instance.SelectedValueColorColumns = [], instance.Dataset = [], instance.appliedColumnColor = [], instance.appliedColumnValueColor = [];
  4239. instance.Dataset = [], instance.YaxisData = [], instance.DataSetColors = [];
  4240. instance.defaultColor = false;
  4241. instance.toolTipArray = [];
  4242. instance._reportBuilder.ChartColumns = [];
  4243. instance._chartBuilder.SelectedValueColorColumns = [];
  4244. instance._reportBuilder.paletteId = 0;
  4245. instance._chartBuilder.colorAppliedOn = Unibase.Platform.Analytics.Enums.ColorType.column;
  4246. instance.paletteColors = [];
  4247. Unibase.Platform.Analytics.Components.LinkReport.Instance().linkreportid = 0;
  4248. }
  4249. getIndexByDisplayText(DisplayText, Select2Type) {
  4250. var instance = this;
  4251. if (Select2Type == instance.ChartAxis.Horizontal) {
  4252. return instance.xaxisColumns.findIndex(x => x.DisplayText == DisplayText);
  4253. }
  4254. else if (Select2Type == instance.ChartAxis.Vertical) {
  4255. return instance.yaxisColumns.findIndex(x => x.DisplayText == DisplayText);
  4256. }
  4257. else if (Select2Type == instance.ChartAxis.LineChart) {
  4258. return instance.lineChartColumns.findIndex(x => x.DisplayText == DisplayText);
  4259. }
  4260. else if (Select2Type == instance.ChartAxis.BaseColumn) {
  4261. return instance.chartBaseColumns.findIndex(x => x.DisplayText == DisplayText);
  4262. }
  4263. else {
  4264. return instance.groupColumns.findIndex(x => x.DisplayText == DisplayText);
  4265. }
  4266. }
  4267. getIndexByAliasName_ChartSelectedColumns(AliasName) {
  4268. var instance = this;
  4269. return instance.ChartSelectedColumns.findIndex(x => x.AliasName == AliasName);
  4270. }
  4271. getIndexByDisplayText_ChartSelectedColumns(DisplayText) {
  4272. var instance = this;
  4273. return instance.ChartSelectedColumns.findIndex(x => x.DisplayText == DisplayText);
  4274. }
  4275. getIndexByDisplayText_tooltipColumnsArray(AliasName) {
  4276. var instance = this;
  4277. return instance.toolTipArray.findIndex(x => x.AliasName == AliasName);
  4278. }
  4279. getIndexByDisplayText_BaseColumnsArray(AliasName) {
  4280. var instance = this;
  4281. return instance.chartBaseColumns.findIndex(x => x.AliasName == AliasName);
  4282. }
  4283. enableOrDisableChartIcons() {
  4284. let instance = this;
  4285. if (instance.groupColumns.length) {
  4286. $("#chart_type").find('.stackedbar-icon').closest('label').removeClass('in-active');
  4287. }
  4288. else {
  4289. $("#chart_type").find('.stackedbar-icon').closest('label').addClass('in-active');
  4290. }
  4291. }
  4292. loadSelectedLegend(id, ischartview) {
  4293. var instance = this;
  4294. instance.displayLegend = true;
  4295. if (id == 0)
  4296. id = Number($("#legend-select").val());
  4297. if (id == Unibase.Platform.Analytics.Enums.LegendType.top) {
  4298. instance.legendType = 'top';
  4299. }
  4300. else if (id == Unibase.Platform.Analytics.Enums.LegendType.right) {
  4301. instance.legendType = 'right';
  4302. }
  4303. else if (id == Unibase.Platform.Analytics.Enums.LegendType.bottom) {
  4304. instance.legendType = 'bottom';
  4305. }
  4306. else if (id == Unibase.Platform.Analytics.Enums.LegendType.left) {
  4307. instance.legendType = 'left';
  4308. }
  4309. else {
  4310. instance.displayLegend = false;
  4311. }
  4312. if (ischartview) {
  4313. if (instance._reportBuilder.TenureReport.length != 0) {
  4314. Unibase.Platform.Analytics.Reports.Tenure.Instance().CheckedTenure();
  4315. instance.tenureChart('myChart', instance._reportBuilder.reportid);
  4316. }
  4317. else {
  4318. instance.chart_dataSet();
  4319. }
  4320. }
  4321. }
  4322. loadPalettes() {
  4323. var instance = this;
  4324. instance.fileCacheHelper.loadJsFile("apps/crm/palettes/managers/palettemanager.js", function () {
  4325. let _pallettemanager = Bizgaze.Apps.Crm.Palettes.Managers.PaletteManager.Instance();
  4326. _pallettemanager.getPallettes().then(function (pallresponse) {
  4327. var pallettedata = [];
  4328. if (pallresponse.result) {
  4329. for (var p = 0; p < pallresponse.result.length; p++) {
  4330. pallettedata.push({ id: pallresponse.result[p].paletteid, text: pallresponse.result[p].name });
  4331. }
  4332. }
  4333. if (instance._reportBuilder.isEdit) {
  4334. let pallete = pallettedata.find(p => p.id == instance._reportBuilder.paletteId);
  4335. if (pallete) {
  4336. $("#pallettes_select").append("<option selected value=" + instance._reportBuilder.paletteId + ">" + pallete.text + "</option>");
  4337. }
  4338. }
  4339. $("#pallettes_select").off('select2:select').off('select2:unselect').off('select2:selecting');
  4340. $("#pallettes_select").select2({
  4341. placeholder: 'Select GroupBy columns',
  4342. data: pallettedata,
  4343. }).on('select2:select', function (e) {
  4344. }).on('select2:selecting', function (e) {
  4345. var data = e.params.args.data;
  4346. let id = Number(data.id);
  4347. instance.paletteColors = [];
  4348. instance._reportBuilder.paletteId = id;
  4349. instance.getpaletteColors(id, true);
  4350. });
  4351. });
  4352. });
  4353. }
  4354. getpaletteColors(id, ischartview) {
  4355. return __awaiter(this, void 0, void 0, function* () {
  4356. var instance = this;
  4357. let navigationhelper = Unibase.Platform.Helpers.NavigationHelper;
  4358. if (navigationhelper.palettes.length > 0) {
  4359. var pale = navigationhelper.palettes[id];
  4360. if (pale && pale.paletteColors) {
  4361. for (var p = 0; p < pale.paletteColors.length; p++) {
  4362. instance.paletteColors.push(pale.paletteColors[p].colorcode);
  4363. }
  4364. }
  4365. else {
  4366. yield instance.getColors(id, ischartview);
  4367. }
  4368. }
  4369. else {
  4370. yield instance.getColors(id, ischartview);
  4371. }
  4372. });
  4373. }
  4374. getColors(id, ischartview) {
  4375. return __awaiter(this, void 0, void 0, function* () {
  4376. var instance = this;
  4377. let navigationhelper = Unibase.Platform.Helpers.NavigationHelper;
  4378. let _pallettemanager = Bizgaze.Apps.Crm.Palettes.Managers.PaletteManager.Instance();
  4379. yield _pallettemanager.getPalletteColors(id).then(function (pcresponse) {
  4380. return __awaiter(this, void 0, void 0, function* () {
  4381. if (pcresponse.result && pcresponse.result.length) {
  4382. pcresponse.result.sort((x, y) => { return Number(x.paletteindex) - Number(y.paletteindex); });
  4383. var palette = navigationhelper.palettes[id] ? true : false;
  4384. if (!palette) {
  4385. navigationhelper.palettes[id] = { paletteColors: pcresponse.result };
  4386. var Values_len = navigationhelper.palettes.length;
  4387. navigationhelper.palettes.length = Values_len + 1;
  4388. }
  4389. for (var pc = 0; pc < pcresponse.result.length; pc++) {
  4390. let pcres = pcresponse.result[pc];
  4391. instance.paletteColors.push(pcres.colorcode);
  4392. }
  4393. if (ischartview) {
  4394. if (instance._reportBuilder.TenureReport.length != 0) {
  4395. Unibase.Platform.Analytics.Reports.Tenure.Instance().CheckedTenure();
  4396. instance.tenureChart('myChart', instance._reportBuilder.reportid);
  4397. }
  4398. else {
  4399. instance.chart_dataSet();
  4400. }
  4401. }
  4402. }
  4403. else {
  4404. var palette = navigationhelper.palettes[id];
  4405. if (!palette) {
  4406. navigationhelper.palettes[id] = { paletteColors: pcresponse.result };
  4407. var Values_len = navigationhelper.palettes.length;
  4408. navigationhelper.palettes.length = Values_len + 1;
  4409. }
  4410. }
  4411. });
  4412. });
  4413. });
  4414. }
  4415. linkReport(reportId, dynamicFilters, containerId) {
  4416. var instance = this;
  4417. if (reportId != 0) {
  4418. var rv_obj = Unibase.Platform.Analytics.Components.ReportViewer.Instance();
  4419. rv_obj.dynamicFilters = dynamicFilters;
  4420. let reportViewerInstance = Unibase.Platform.Helpers.NavigationHelper.reportViewerInstance;
  4421. reportViewerInstance.push({
  4422. instance: rv_obj,
  4423. childcontainerid: containerId,
  4424. parentcontainerid: ""
  4425. });
  4426. instance.navigationHelper.popup(reportId, containerId, Unibase.Platform.Analytics.Components.ReportViewer.Instance(), function () {
  4427. rv_obj.reportViewAllCallBack(containerId);
  4428. }, Unibase.Platform.Helpers.Size.Large);
  4429. }
  4430. }
  4431. getReportColumnDisplayTextByAliasName(aliasName) {
  4432. if (this.chartContainerId) {
  4433. let rv_ins = Unibase.Platform.Analytics.Components.ReportViewer.Instance().getReportViewerInstance(this.chartContainerId);
  4434. let idx = rv_ins.reportColumns.findIndex(x => x.AliasName == aliasName);
  4435. if (idx > -1) {
  4436. return rv_ins.reportColumns[idx].DisplayText;
  4437. }
  4438. }
  4439. else {
  4440. let idx = this._reportBuilder.selectedColumns.findIndex(x => x.AliasName == aliasName);
  4441. if (idx > -1) {
  4442. return this._reportBuilder.selectedColumns[idx].DisplayText;
  4443. }
  4444. }
  4445. }
  4446. updateDatasetForDataLabel() {
  4447. if (this.isDataLabel && this.Dataset) {
  4448. let offset = 5;
  4449. let align = 'top';
  4450. if (this.ChartTypeId == Unibase.Platform.Analytics.Charts.Enums.ChartType.horizontalBar || this.ChartTypeId == Unibase.Platform.Analytics.Charts.Enums.ChartType.pie || Unibase.Platform.Analytics.Charts.Enums.ChartType.doughnut) {
  4451. offset = 2;
  4452. align = 'end';
  4453. }
  4454. this.Dataset.forEach(dataset => dataset.datalabels = {
  4455. anchor: 'end',
  4456. align: align,
  4457. offset: offset,
  4458. });
  4459. }
  4460. }
  4461. convertLabelToPascalCase(name) {
  4462. if (name) {
  4463. let splited = name.split(" ");
  4464. for (var i = 0; i < splited.length; i++) {
  4465. splited[i] = this.converStringToPascalCase(splited[i]);
  4466. }
  4467. return splited.join(" ");
  4468. }
  4469. }
  4470. converStringToPascalCase(name) {
  4471. if (name) {
  4472. return name[0].toUpperCase() + name.slice(1);
  4473. }
  4474. }
  4475. getReportColumns() {
  4476. let cols;
  4477. if (this._reportBuilder.isEdit) {
  4478. cols = this._reportBuilder.res.ReportColumns;
  4479. }
  4480. else {
  4481. let rv_ins = Unibase.Platform.Analytics.Components.ReportViewer.Instance().getReportViewerInstance(this.chartContainerId);
  4482. cols = rv_ins.reportColumns;
  4483. }
  4484. return cols;
  4485. }
  4486. prepareAndBindToolTipColumns(ChartColumns) {
  4487. let tooltipColumns = ChartColumns.filter(x => x.IsToolTip);
  4488. let cols = this.getReportColumns();
  4489. for (var i = 0; i < tooltipColumns.length; i++) {
  4490. let idx = cols.findIndex(x => x.AliasName == tooltipColumns[i].AliasName);
  4491. if (idx > -1) {
  4492. let col = cols[idx];
  4493. this.toolTipArray.push({ ColumnValue: col.ColumnValue, ColumnName: col.ReportColumnName, DisplayText: col.DisplayText, AliasName: col.AliasName, Index: col.ColumnIndex });
  4494. if (this._reportBuilder.isEdit) {
  4495. var html = this._reportBuilderTemplate.loadToolTipColumn(col.ReportColumnId, col.AliasName, col.DataType, col.DisplayText);
  4496. $("#tab_tooltip #tooltip_selected_columns").append(html);
  4497. }
  4498. }
  4499. }
  4500. this.toolTipArray = this.toolTipArray.sort((x, y) => Number(x.Index) - Number(y.Index));
  4501. this._reportBuilder.setSelectOption("tooltip_select");
  4502. }
  4503. prepareYAxisColumnsForBinding(chartColumns) {
  4504. let yAxisCols;
  4505. let rpCols;
  4506. if (chartColumns) {
  4507. yAxisCols = chartColumns.filter((y) => y.IsYaxis);
  4508. }
  4509. rpCols = this.getReportColumns();
  4510. yAxisCols.forEach((col) => {
  4511. let idx = chartColumns.findIndex((x) => { return x.AliasName == col.AliasName; });
  4512. if (idx > -1) {
  4513. chartColumns.splice(idx, 1);
  4514. }
  4515. yAxisCols.forEach((col) => {
  4516. let idx = rpCols.findIndex(x => x.AliasName == col.AliasName);
  4517. if (idx > -1) {
  4518. col.Index = idx;
  4519. }
  4520. });
  4521. });
  4522. yAxisCols = yAxisCols.sort((x, y) => Number(x.Index) - Number(y.Index));
  4523. yAxisCols.forEach(x => delete x.Index);
  4524. return yAxisCols;
  4525. }
  4526. isNumberAbbr() {
  4527. const instance = this;
  4528. let isXAxisNumAbb = false;
  4529. let isYAxisNumAbb = false;
  4530. if (instance.xaxisColumns.length) {
  4531. for (let i = 0; i < instance.xaxisColumns.length; i++) {
  4532. if (instance.xaxisColumns[i].IsNumAbb) {
  4533. isXAxisNumAbb = true;
  4534. break;
  4535. }
  4536. }
  4537. }
  4538. if (instance.yaxisColumns.length) {
  4539. for (let i = 0; i < instance.yaxisColumns.length; i++) {
  4540. if (instance.yaxisColumns[i].IsNumAbb) {
  4541. isYAxisNumAbb = true;
  4542. break;
  4543. }
  4544. }
  4545. }
  4546. return { isXAxisNumAbb, isYAxisNumAbb };
  4547. }
  4548. abbreviateNumber(val, scaleObj, isNumAbb) {
  4549. const label = scaleObj.getLabelForValue(val) && scaleObj.getLabelForValue(val).toString().replaceAll(',', '');
  4550. if (isNumAbb && $.isNumeric(label)) {
  4551. val = +label;
  4552. if (val >= 10000000) {
  4553. val = (val / 10000000);
  4554. if (val % 1 != 0) {
  4555. val = val.toFixed(1);
  4556. }
  4557. val = val + 'Cr';
  4558. }
  4559. else if (val >= 100000) {
  4560. val = (val / 100000);
  4561. if (val % 1 != 0) {
  4562. val = val.toFixed(1);
  4563. }
  4564. val = val + 'L';
  4565. }
  4566. else if (val >= 1000) {
  4567. val = (val / 1000);
  4568. if (val % 1 != 0) {
  4569. val = val.toFixed(1);
  4570. }
  4571. val = val + 'K';
  4572. }
  4573. return val;
  4574. }
  4575. else {
  4576. return scaleObj.getLabelForValue(val);
  4577. }
  4578. }
  4579. }
  4580. Components._Chart = _Chart;
  4581. })(Components = Analytics.Components || (Analytics.Components = {}));
  4582. })(Analytics = Platform.Analytics || (Platform.Analytics = {}));
  4583. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  4584. })(Unibase || (Unibase = {}));
  4585. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
  4586. function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  4587. return new (P || (P = Promise))(function (resolve, reject) {
  4588. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  4589. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  4590. function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
  4591. step((generator = generator.apply(thisArg, _arguments || [])).next());
  4592. });
  4593. };
  4594. var Unibase;
  4595. (function (Unibase) {
  4596. let Platform;
  4597. (function (Platform) {
  4598. let Analytics;
  4599. (function (Analytics) {
  4600. let Reports;
  4601. (function (Reports) {
  4602. class Pivot extends Platform.Core.BaseComponent {
  4603. constructor() {
  4604. super();
  4605. this.pivotTypeId = 0;
  4606. this.isDataTreeExpand = false;
  4607. this.reportManager = Analytics.Managers.ReportManager.Instance();
  4608. this._reportBuilder = Unibase.Platform.Analytics.Reports.ReportBuilder.Instance();
  4609. this._reportBuilderTemplate = Reports.ReportBuilder_Template.Instance();
  4610. }
  4611. cssFiles() {
  4612. return [];
  4613. }
  4614. jsFiles() {
  4615. var jsFiles = ['platform/analytics/components/reportbuilder/reportbuilderhiddenfields.js'];
  4616. return jsFiles;
  4617. }
  4618. html(id, containerid) {
  4619. var instance = this;
  4620. let html = instance._reportBuilderTemplate.loadPivotForm();
  4621. return html;
  4622. }
  4623. load(id, containerid, callback) {
  4624. var instance = this;
  4625. $("#" + containerid).find(".modal-body").height($(window).outerHeight() - 125);
  4626. this.loadPivotSelect2s();
  4627. $("#chktreeexpand_checkbox").click(function () {
  4628. if ($('#chktreeexpand_checkbox').prop('checked') == false) {
  4629. instance.isDataTreeExpand = false;
  4630. $('#chktreeexpand_checkbox').prop('checked', false);
  4631. }
  4632. else {
  4633. instance.isDataTreeExpand = true;
  4634. $('#chktreeexpand_checkbox').prop('checked', true);
  4635. }
  4636. });
  4637. $("#chkPivotTableConfig_checkbox").click(function () {
  4638. if ($('#chkPivotTableConfig_checkbox').prop('checked') == false) {
  4639. instance._reportBuilder.enablePivotTableConfig = false;
  4640. $('#chkPivotTableConfig_checkbox').prop('checked', false);
  4641. }
  4642. else {
  4643. instance._reportBuilder.enablePivotTableConfig = true;
  4644. $('#chkPivotTableConfig_checkbox').prop('checked', true);
  4645. }
  4646. });
  4647. if (instance._reportBuilder.pivot.ColumnName != "" && (instance._reportBuilder.pivot.ColumnName)) {
  4648. var colName = instance._reportBuilder.pivot.ColumnName;
  4649. var Index = instance._reportBuilder.selectedColumns.findIndex(x => x.ColumnName == colName);
  4650. var colId = instance._reportBuilder.selectedColumns[Index].ColumnId;
  4651. $("#PivotColumns_AutoComplete").val(colId).trigger("change");
  4652. let aggrValue = instance._reportBuilder.getColumnId_ByColumnName_datalistColumnsArray(instance._reportBuilder.pivot.AggColumnName);
  4653. $("#PivotAggrColumn").val(aggrValue).trigger("change");
  4654. let aggrTypeId = instance._reportBuilder.pivot.AggFuncId;
  4655. $("#PivotAggrType").val(aggrTypeId).trigger("change");
  4656. let DateValue = instance._reportBuilder.pivot.DateType;
  4657. if (DateValue)
  4658. $("#PivotDateType").val(DateValue).trigger("change");
  4659. if (instance._reportBuilder.TenureReport.length != 0) {
  4660. let TimeInterval = instance._reportBuilder.TenureReport[colName].TimeInterval;
  4661. if (TimeInterval != undefined) {
  4662. $("#tenure_checkbox").prop("checked", true);
  4663. $("#div_Intervals").removeClass("hidden");
  4664. $("#txt_TimeIntervals").val(TimeInterval);
  4665. }
  4666. }
  4667. if (instance._reportBuilder.pivot.IsPivotRows_Selected == true) {
  4668. let val = instance._reportBuilder.pivot.PivotRows;
  4669. $("#PivotRows_Select2").val(val).trigger("change");
  4670. }
  4671. }
  4672. if (instance.pivotTypeId == Unibase.Platform.Analytics.Reports.Enums.PivotType.PivotTable) {
  4673. if (instance._reportBuilder.pivot.AggColumnName != undefined) {
  4674. let aggrValue = instance._reportBuilder.getColumnId_ByColumnName_datalistColumnsArray(instance._reportBuilder.pivot.AggColumnName);
  4675. $("#PivotAggrColumn").val(aggrValue).trigger("change");
  4676. let aggrTypeId = instance._reportBuilder.pivot.AggFuncId;
  4677. $("#PivotAggrType").val(aggrTypeId).trigger("change");
  4678. }
  4679. }
  4680. if (instance._reportBuilder.pivot.ParentColumnName != "" && (instance._reportBuilder.pivot.ParentColumnName)) {
  4681. let childCol = instance._reportBuilder.getColumnId_ByColumnName_datalistColumnsArray(instance._reportBuilder.pivot.ChildColumnName);
  4682. $("#PivotChildColumnName_AutoComplete").val(childCol).trigger("change");
  4683. let childVal = instance._reportBuilder.pivot.PivotValue_Selected;
  4684. $("#PivotValue_AutoComplete").val(childVal).trigger("change");
  4685. let parentColId = instance._reportBuilder.getColumnId_ByColumnName_datalistColumnsArray(instance._reportBuilder.pivot.ParentColumnName);
  4686. $("#PivotParentColumnName_AutoComplete").val(parentColId).trigger("change");
  4687. $('#chktreeexpand_checkbox').prop('checked', instance._reportBuilder.pivot.IsDatatreeExpand);
  4688. }
  4689. $("#tenure_checkbox").click(function () {
  4690. if ($('#tenure_checkbox').prop('checked') == true) {
  4691. $("#div_Intervals").removeClass("hidden");
  4692. $("#PivotDateType").append(`<option value="` + Unibase.Platform.Analytics.Reports.Enums.AggregationType.day + `"> Day </option>`);
  4693. Unibase.Platform.Analytics.Reports.Tenure.Instance().CheckedTenure();
  4694. }
  4695. else {
  4696. $("#div_Intervals").addClass("hidden");
  4697. $("#txt_TimeIntervals").val("");
  4698. $("#PivotDateType option[value='" + Unibase.Platform.Analytics.Reports.Enums.AggregationType.day + "']").remove();
  4699. instance._reportBuilder.TenureReport = [];
  4700. }
  4701. });
  4702. $("#btn_Close").click(function () {
  4703. $('#' + containerid).modal('hide');
  4704. $('#' + containerid).remove();
  4705. });
  4706. $("#btn_ApplyPivot").click(function () {
  4707. instance.applyPivot();
  4708. $('#' + containerid).modal('hide');
  4709. $('#' + containerid).remove();
  4710. });
  4711. }
  4712. loadForm(FormId, Pk_Value, AppConfigurationId, Callback, ElementId) {
  4713. return [];
  4714. }
  4715. selectedpivotType(pivotType) {
  4716. var instance = this;
  4717. let pivotTypeId;
  4718. if (pivotType == 0) {
  4719. instance.clearPivotFields();
  4720. pivotTypeId = Number($("#pivotType_Select2").val());
  4721. instance.intervals = $("#txt_TimeIntervals").val().toString();
  4722. this.pivotTypeId = 0;
  4723. }
  4724. else {
  4725. pivotTypeId = pivotType;
  4726. $("#pivotType_Select2").val(pivotType);
  4727. }
  4728. if (pivotTypeId == Unibase.Platform.Analytics.Reports.Enums.PivotType.Pivot) {
  4729. $("#div_PivotColumns").removeClass("hidden");
  4730. $("#div_PivotDateType").removeClass("hidden");
  4731. $("#div_PivotAggrColumn").removeClass("hidden");
  4732. $("#div_PivotAggrType").removeClass("hidden");
  4733. $(".drawerFooterApplyPivot").removeClass("hidden");
  4734. $("#div_Intervals").addClass("hidden");
  4735. $("#div_PivotTableConfig").addClass("hidden");
  4736. $("#div_datatreeexpand").addClass("hidden");
  4737. $("#div_PivotChildColumnName").addClass("hidden");
  4738. $("#div_PivotValue").addClass("hidden");
  4739. $("#div_PivotParentColumnName").addClass("hidden");
  4740. $("#div_PivotRows").removeClass("hidden");
  4741. instance.pivotTypeId = Unibase.Platform.Analytics.Reports.Enums.PivotType.Pivot;
  4742. }
  4743. else if (pivotTypeId == Unibase.Platform.Analytics.Reports.Enums.PivotType.TreeView) {
  4744. $("#div_datatreeexpand").removeClass("hidden");
  4745. $("#div_PivotChildColumnName").removeClass("hidden");
  4746. $("#div_PivotValue").removeClass("hidden");
  4747. $("#div_PivotParentColumnName").removeClass("hidden");
  4748. $(".drawerFooterApplyPivot").removeClass("hidden");
  4749. $("#div_PivotTableConfig").addClass("hidden");
  4750. $("#div_PivotColumns").addClass("hidden");
  4751. $("#div_PivotDateType").addClass("hidden");
  4752. $("#div_PivotAggrColumn").addClass("hidden");
  4753. $("#div_PivotAggrType").addClass("hidden");
  4754. $("#div_Intervals").addClass("hidden");
  4755. $("#div_PivotRows").addClass("hidden");
  4756. instance.pivotTypeId = Unibase.Platform.Analytics.Reports.Enums.PivotType.TreeView;
  4757. }
  4758. else if (pivotTypeId == Unibase.Platform.Analytics.Reports.Enums.PivotType.PivotTreeView) {
  4759. $("#div_PivotColumns").removeClass("hidden");
  4760. $("#div_PivotDateType").removeClass("hidden");
  4761. $("#div_PivotAggrColumn").removeClass("hidden");
  4762. $("#div_PivotAggrType").removeClass("hidden");
  4763. $("#div_datatreeexpand").removeClass("hidden");
  4764. $("#div_PivotChildColumnName").removeClass("hidden");
  4765. $("#div_PivotValue").removeClass("hidden");
  4766. $("#div_PivotParentColumnName").removeClass("hidden");
  4767. $(".drawerFooterApplyPivot").removeClass("hidden");
  4768. $("#div_PivotTableConfig").addClass("hidden");
  4769. $("#div_PivotRows").addClass("hidden");
  4770. $("#div_Intervals").addClass("hidden");
  4771. instance.pivotTypeId = Unibase.Platform.Analytics.Reports.Enums.PivotType.PivotTreeView;
  4772. }
  4773. else if (pivotTypeId == Unibase.Platform.Analytics.Reports.Enums.PivotType.TimeInterval) {
  4774. $("#div_Intervals").removeClass("hidden");
  4775. $("#div_PivotColumns").removeClass("hidden");
  4776. $("#div_PivotDateType").removeClass("hidden");
  4777. $("#div_PivotAggrColumn").removeClass("hidden");
  4778. $("#div_PivotAggrType").removeClass("hidden");
  4779. $(".drawerFooterApplyPivot").removeClass("hidden");
  4780. $("#div_PivotTableConfig").addClass("hidden");
  4781. $("#div_datatreeexpand").addClass("hidden");
  4782. $("#div_PivotChildColumnName").addClass("hidden");
  4783. $("#div_PivotValue").addClass("hidden");
  4784. $("#div_PivotParentColumnName").addClass("hidden");
  4785. instance.pivotTypeId = Unibase.Platform.Analytics.Reports.Enums.PivotType.TimeInterval;
  4786. }
  4787. else if (pivotTypeId == Unibase.Platform.Analytics.Reports.Enums.PivotType.PivotTable) {
  4788. $(".drawerFooterApplyPivot").removeClass("hidden");
  4789. $("#div_PivotAggrColumn").removeClass("hidden");
  4790. $("#div_PivotAggrType").removeClass("hidden");
  4791. $("#div_PivotTableConfig").removeClass("hidden");
  4792. $("#div_PivotColumns").addClass("hidden");
  4793. $("#div_PivotDateType").addClass("hidden");
  4794. $("#div_Intervals").addClass("hidden");
  4795. $("#div_PivotRows").addClass("hidden");
  4796. $("#div_datatreeexpand").addClass("hidden");
  4797. $("#div_PivotChildColumnName").addClass("hidden");
  4798. $("#div_PivotValue").addClass("hidden");
  4799. $("#div_PivotParentColumnName").addClass("hidden");
  4800. instance.pivotTypeId = Unibase.Platform.Analytics.Reports.Enums.PivotType.PivotTable;
  4801. }
  4802. }
  4803. clearPivotFields() {
  4804. $("#txt_TimeIntervals").text("");
  4805. $('#PivotColumns_AutoComplete').val('0').trigger('change');
  4806. $('#PivotDateType').val('0').trigger('change');
  4807. $('#PivotAggrColumn').val('0').trigger('change');
  4808. $('#PivotAggrType').val('-1').trigger('change');
  4809. $('#PivotChildColumnName_AutoComplete').val('0').trigger('change');
  4810. $('#PivotValue_AutoComplete').val('0').trigger('change');
  4811. $('#PivotParentColumnName_AutoComplete').val('0').trigger('change');
  4812. $('#chktreeexpand_checkbox').prop("checked", false);
  4813. }
  4814. applyPivot() {
  4815. var instance = this;
  4816. if (this.pivotTypeId != Unibase.Platform.Analytics.Reports.Enums.PivotType.PivotTable) {
  4817. $("#ExpandIcon, #CollapseIcon").removeClass("hidden");
  4818. instance._reportBuilder.dataTreeRowExpandedColumn = [];
  4819. var colId = $("#PivotColumns_AutoComplete option:selected").val();
  4820. var colName = $("#PivotColumns_AutoComplete option:selected").text();
  4821. instance._reportBuilder.pivot.ColumnName = "";
  4822. instance._reportBuilder.pivot.ColumnName = colName;
  4823. let val = $("#PivotRows_Select2").val();
  4824. if (val.length == 0) {
  4825. instance._reportBuilder.pivot.IsPivotRows_Selected = false;
  4826. for (var opt = 0; opt < $("#PivotRows_Select2").find("option").length; opt++) {
  4827. let option = $($("#PivotRows_Select2").find("option")[opt]).val();
  4828. val.push(option);
  4829. }
  4830. }
  4831. else {
  4832. instance._reportBuilder.pivot.IsPivotRows_Selected = true;
  4833. }
  4834. instance._reportBuilder.pivot.PivotRows = val;
  4835. instance._reportBuilder.pivot.AggColumnName = $("#PivotAggrColumn option:selected").text();
  4836. instance._reportBuilder.pivot.AggFuncId = Number($("#PivotAggrType option:selected").val());
  4837. if (Number($("#PivotParentColumnName_AutoComplete option:selected").val()) != 0) {
  4838. instance._reportBuilder.IsPivotTree = true;
  4839. instance._reportBuilder.pivot.IsDatatreeExpand = instance.isDataTreeExpand;
  4840. instance._reportBuilder.pivot.ChildColumnName = $("#PivotChildColumnName_AutoComplete option:selected").text();
  4841. instance._reportBuilder.pivot.ChildColumnValue = Number($("#PivotValue_AutoComplete option:selected").text());
  4842. instance._reportBuilder.pivot.ParentColumnName = $("#PivotParentColumnName_AutoComplete option:selected").text();
  4843. if ($("#PivotValue_AutoComplete option:selected").val() != "-1") {
  4844. instance._reportBuilder.pivot.PivotValue_Selected = Number($("#PivotValue_AutoComplete option:selected").text());
  4845. }
  4846. }
  4847. else {
  4848. instance._reportBuilder.IsPivotTree = false;
  4849. }
  4850. instance._reportBuilder.TenureReport = [];
  4851. if ($("#txt_TimeIntervals").val() != "") {
  4852. instance._reportBuilder.TenureReport[colName] = {
  4853. TimeInterval: $("#txt_TimeIntervals").val(),
  4854. };
  4855. var Values_len = instance._reportBuilder.TenureReport.length;
  4856. instance._reportBuilder.TenureReport.length = Values_len + 1;
  4857. instance._reportBuilder.Interval = $("#txt_TimeIntervals").val();
  4858. }
  4859. if (this.pivotTypeId) {
  4860. let pivot = instance._reportBuilder.pivot;
  4861. if (this.pivotTypeId == Unibase.Platform.Analytics.Reports.Enums.PivotType.TreeView) {
  4862. if (!pivot.ParentColumnName || pivot.ParentColumnName == "Select Pivot Parent Column" || !pivot.ChildColumnName || pivot.ChildColumnName == "- Select Pivot Child Column -" || pivot.PivotValue_Selected == -1)
  4863. return MessageHelper.Instance().showError("Please select accurate pivot details", "div_ReportBuilderErrorMessage");
  4864. if (instance._reportBuilder.selectedColumns.findIndex(x => x.AliasName.toLowerCase().includes("haschild")) == -1)
  4865. return MessageHelper.Instance().showError("For Tree View report 'hasChild' report column should be must", "div_ReportBuilderErrorMessage");
  4866. }
  4867. else if (this.pivotTypeId == Unibase.Platform.Analytics.Reports.Enums.PivotType.PivotTreeView) {
  4868. if (!pivot.ParentColumnName || pivot.ParentColumnName == "Select Pivot Parent Column" || !pivot.ChildColumnName || pivot.ChildColumnName == "- Select Pivot Child Column -" ||
  4869. !pivot.ColumnName || pivot.ColumnName == "- Select Pivot Column -" || !pivot.AggColumnName || pivot.AggColumnName == "- Select Aggregation Column -")
  4870. return MessageHelper.Instance().showError("Please select accurate pivot details", "div_ReportBuilderErrorMessage");
  4871. if (instance._reportBuilder.selectedColumns.findIndex(x => x.AliasName.toLowerCase().includes("haschild")) == -1)
  4872. return MessageHelper.Instance().showError("For Pivot Treeview report 'hasChild' report column should be must", "div_ReportBuilderErrorMessage");
  4873. }
  4874. else if (!pivot.ColumnName || pivot.ColumnName == "- Select Pivot Column -" || !pivot.AggColumnName || pivot.AggColumnName == "- Select Aggregation Column -" || pivot.AggFuncId == -1)
  4875. return MessageHelper.Instance().showError("Please select accurate pivot details", "div_ReportBuilderErrorMessage");
  4876. }
  4877. instance._reportBuilder.datatreeIndex_Width = 70;
  4878. instance._reportBuilder.load_data(instance._reportBuilder.table);
  4879. }
  4880. else {
  4881. instance._reportBuilder.pivot.AggColumnName = $("#PivotAggrColumn option:selected").text();
  4882. instance._reportBuilder.pivot.AggFuncId = Number($("#PivotAggrType option:selected").val());
  4883. instance.loadPivotTable(instance._reportBuilder.table);
  4884. }
  4885. }
  4886. loadPivotTable(table) {
  4887. return __awaiter(this, void 0, void 0, function* () {
  4888. var instance = this;
  4889. var repObj = instance._reportBuilder.getReportData();
  4890. yield instance.reportManager.getTableData(repObj).then(function (response) {
  4891. if (response.status == Unibase.Data.Status.Success) {
  4892. if (response.result != "") {
  4893. var res = JSON.parse(response.result);
  4894. var rptData = "";
  4895. if (res != "" && res.Data) {
  4896. rptData = JSON.parse(res.Data);
  4897. instance.pivotTable(rptData);
  4898. }
  4899. else {
  4900. return MessageHelper.Instance().showError("No Data", "div_ReportBuilderErrorMessage");
  4901. }
  4902. }
  4903. else {
  4904. return MessageHelper.Instance().showError("No Data", "div_ReportBuilderErrorMessage");
  4905. }
  4906. }
  4907. else {
  4908. return MessageHelper.Instance().showError("No Data", "div_ReportBuilderErrorMessage");
  4909. }
  4910. });
  4911. });
  4912. }
  4913. pivotTable(reportresponse) {
  4914. var instance = this;
  4915. instance.fileCacheHelper.loadCssFile("libs/pivottable/css/pivot.css", function () {
  4916. instance.fileCacheHelper.loadJsFile("libs/pivottable/js/pivot.js", function () {
  4917. var rptRowCols = [];
  4918. var rptColumnCols = [];
  4919. if (instance._reportBuilder.ReportColumns.length != 0) {
  4920. for (var p = 0; p < instance._reportBuilder.ReportColumns.length; p++) {
  4921. if (instance._reportBuilder.ReportColumns[p].IsPivotTableCol) {
  4922. rptColumnCols.push("" + instance._reportBuilder.ReportColumns[p].AliasName + "");
  4923. }
  4924. else {
  4925. rptRowCols.push("" + instance._reportBuilder.ReportColumns[p].AliasName + "");
  4926. }
  4927. }
  4928. }
  4929. let containerEl = $("#tabulatorReportbuilder");
  4930. containerEl.pivotUI(reportresponse, {
  4931. cols: rptColumnCols,
  4932. rows: rptRowCols,
  4933. unusedAttrsVertical: 'hours',
  4934. rendererName: "Table",
  4935. onRefresh: function (config) {
  4936. return __awaiter(this, void 0, void 0, function* () {
  4937. const pvtUnusedList = [];
  4938. containerEl.find('.pvtUnused .pvtAttr').each(function (i, e) {
  4939. pvtUnusedList.push($(e).contents().get(0).nodeValue);
  4940. var hiddencol_index = instance._reportBuilder.getIndexByAliasName_selectedColumnsArray($(e).contents().get(0).nodeValue);
  4941. if (hiddencol_index > -1) {
  4942. instance._reportBuilder.selectedColumns[hiddencol_index].Isvisible = false;
  4943. }
  4944. });
  4945. for (var c = 0; c < config.cols.length; c++) {
  4946. var index = instance._reportBuilder.getIndexByAliasName_selectedColumnsArray(config.cols[c]);
  4947. if (index > -1) {
  4948. instance._reportBuilder.selectedColumns[index].IsPivotTableCol = true;
  4949. }
  4950. if (config.vals.length > 0) {
  4951. var aggrcol_index = instance._reportBuilder.getIndexByAliasName_selectedColumnsArray(config.vals[0]);
  4952. if (aggrcol_index > -1) {
  4953. var aggrtypeid = yield instance.getPivotAggregationTypeId(config.aggregatorName);
  4954. instance._reportBuilder.selectedColumns[aggrcol_index].PivotTableAggrTypeId = aggrtypeid;
  4955. }
  4956. }
  4957. }
  4958. });
  4959. }
  4960. });
  4961. instance._reportBuilder.EditableTabulatorTitle();
  4962. containerEl.find('.pvtAttr').append('<span></span>');
  4963. containerEl.addClass('pivot-ui-tableview');
  4964. containerEl.find('button').each(function (i, e) {
  4965. if ($(e).text().toLowerCase().includes('cancel')) {
  4966. $(e).addClass('btn btn-outline-danger btn-sm');
  4967. }
  4968. else {
  4969. $(e).addClass('btn btn-primary btn-sm');
  4970. }
  4971. });
  4972. });
  4973. });
  4974. }
  4975. getPivotAggregationTypeId(aggrName) {
  4976. var aggrtypeid = 0;
  4977. var instance = this;
  4978. instance.fileCacheHelper.loadJsFileAsync("platform/analytics/enums/pivottableaggregationtype.js", function () {
  4979. switch (aggrName) {
  4980. case 'Count':
  4981. aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.Count;
  4982. break;
  4983. case 'Count Unique Values':
  4984. aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.CountUniqueValues;
  4985. break;
  4986. case 'List Unique Values':
  4987. aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.ListUniqueValues;
  4988. break;
  4989. case 'Sum':
  4990. aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.Sum;
  4991. break;
  4992. case 'Integer Sum':
  4993. aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.IntegerSum;
  4994. break;
  4995. case 'Average':
  4996. aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.Average;
  4997. break;
  4998. case 'Median':
  4999. aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.Median;
  5000. break;
  5001. case 'Sample Variance':
  5002. aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.SampleVariance;
  5003. break;
  5004. case 'Sample Standard Deviation':
  5005. aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.SampleStandardDeviation;
  5006. break;
  5007. case 'Minimum':
  5008. aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.Minimum;
  5009. break;
  5010. case 'Maximum':
  5011. aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.Maximum;
  5012. break;
  5013. case 'First':
  5014. aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.First;
  5015. break;
  5016. case 'Last':
  5017. aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.Last;
  5018. break;
  5019. case 'Sum over Sum':
  5020. aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.SumoverSum;
  5021. break;
  5022. }
  5023. });
  5024. return aggrtypeid;
  5025. }
  5026. changedPivotColumn() {
  5027. var instance = this;
  5028. $("#PivotRows_Select2").val("").trigger("change");
  5029. $("#PivotRows_Select2").empty();
  5030. var colId = Number($("#PivotColumns_AutoComplete option:selected").val());
  5031. if (colId != 0) {
  5032. var rows;
  5033. var dataType = Number($("#allDatalistColumns #li_" + colId + " span.datalist_column").attr('data-column-datatype'));
  5034. if (dataType != Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime) {
  5035. $("#PivotDateType").val("0");
  5036. var colName = $("#PivotColumns_AutoComplete option:selected").text();
  5037. var AggrFuncId = Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().Aggregations.findIndex(x => x == $("#PivotDateType option:selected").val());
  5038. instance._reportBuilder.getDistinctData(Number(colId), colName, AggrFuncId);
  5039. }
  5040. else {
  5041. if ($("#tenure_checkbox").prop("checked") == true || instance._reportBuilder.TenureReport.length != 0) {
  5042. $("#PivotDateType").empty().append(`<option value="0"> Select Date Type </option><option value="` + Unibase.Platform.Analytics.Reports.Enums.AggregationType.day + `"> Day </option><option value="` + Unibase.Platform.Analytics.Reports.Enums.AggregationType.month + `" > Month </option><option value="` + Unibase.Platform.Analytics.Reports.Enums.AggregationType.year + `" > Year </option>`);
  5043. }
  5044. else {
  5045. $("#PivotDateType").empty().append(`<option value="0"> Select Date Type </option><option value="` + Unibase.Platform.Analytics.Reports.Enums.AggregationType.month + `"> Month </option><option value="` + Unibase.Platform.Analytics.Reports.Enums.AggregationType.year + `"> Year </option>`);
  5046. }
  5047. }
  5048. $("#PivotRows_Select2").select2({
  5049. placeholder: 'Select Pivot Rows',
  5050. data: rows,
  5051. });
  5052. }
  5053. }
  5054. changedDateType() {
  5055. return __awaiter(this, void 0, void 0, function* () {
  5056. var instance = this;
  5057. var colId = Number($("#PivotColumns_AutoComplete option:selected").val());
  5058. if (colId != 0) {
  5059. var colName = $("#PivotColumns_AutoComplete option:selected").text();
  5060. var AggrFuncId = Number($("#PivotDateType option:selected").val());
  5061. var index = instance._reportBuilder.getIndexByColumnName_selectedColumnsArray(colName);
  5062. instance._reportBuilder.selectedColumns[index].DataType = AggrFuncId;
  5063. yield instance._reportBuilder.getDistinctData(colId, colName, AggrFuncId);
  5064. Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().pivot.DateType = Number($("#PivotDateType option:selected").val());
  5065. let val = instance._reportBuilder.pivot.PivotRows;
  5066. if (!val) {
  5067. $("#PivotRows_Select2").select2({
  5068. placeholder: 'No data to show',
  5069. });
  5070. }
  5071. else if (val.length != 0) {
  5072. $("#PivotRows_Select2").select2({
  5073. placeholder: 'Select Pivot Rows',
  5074. data: val,
  5075. });
  5076. }
  5077. }
  5078. });
  5079. }
  5080. getDistinctChildColumnData(colName) {
  5081. var instance = this;
  5082. instance._reportBuilder.distinctColumnData = [];
  5083. var cf_fromDate = btoa(Unibase.Platform.Helpers.NavigationHelper.commonFilter_FromDate);
  5084. var cf_toDate = btoa(Unibase.Platform.Helpers.NavigationHelper.commonFilter_ToDate);
  5085. Unibase.Platform.Analytics.Managers.ReportManager.Instance().getDistinctColumnData(instance._reportBuilder.DataListId, colName, 0, cf_fromDate, cf_toDate).then(function (response) {
  5086. if (response != "") {
  5087. for (var i = 0; i < response.length; i++) {
  5088. instance._reportBuilder.distinctColumnData.push(response[i][colName]);
  5089. }
  5090. var parentvalues = instance._reportBuilder.distinctColumnData;
  5091. $("#PivotValue_AutoComplete").select2({
  5092. placeholder: 'Select Pivot Child Value',
  5093. data: parentvalues,
  5094. });
  5095. let childVal = instance._reportBuilder.pivot.PivotValue_Selected;
  5096. if (childVal != -1 && childVal != undefined) {
  5097. $("#PivotValue_AutoComplete").val(childVal).trigger("change");
  5098. }
  5099. }
  5100. });
  5101. }
  5102. changedPivotAggrColumn() {
  5103. var instance = this;
  5104. $("#PivotAggrType").empty().append(`<option value="-1" > Select Aggregation Type </option>`);
  5105. var colId = Number($("#PivotAggrColumn option:selected").val());
  5106. if (colId != 0) {
  5107. let DataType = Number($("#allDatalistColumns #li_" + colId + " span.datalist_column").attr('data-column-datatype'));
  5108. let Aggregation = instance._reportBuilder.getAggregationsByDataType(DataType);
  5109. for (var i = 0; i < Aggregation.length; i++) {
  5110. $("#PivotAggrType").append(`<option value="` + Aggregation[i].Value + `" > ` + Aggregation[i].AggrType + ` </option>`);
  5111. }
  5112. }
  5113. }
  5114. changedPivotChildColumn() {
  5115. return __awaiter(this, void 0, void 0, function* () {
  5116. var instance = this;
  5117. $("#PivotValue_AutoComplete").empty().append(`<option value="-1" > Select Parent Value </option>`);
  5118. $("#div_PivotValue").removeClass("hidden");
  5119. var colName = $("#PivotChildColumnName_AutoComplete option:selected").text();
  5120. var colId = Number($("#PivotChildColumnName_AutoComplete option:selected").val());
  5121. if (colId != 0) {
  5122. var Whole_tableData = instance._reportBuilder.tableData;
  5123. var tableData = JSON.parse(Whole_tableData);
  5124. var columns = [];
  5125. yield instance.getDistinctChildColumnData(colName);
  5126. }
  5127. });
  5128. }
  5129. loadPivotSelect2s() {
  5130. var columns = [];
  5131. var selectedColumns = this._reportBuilder.selectedColumns;
  5132. for (let i = 0; i < selectedColumns.length; i++)
  5133. columns.push({ id: selectedColumns[i].ColumnId, text: selectedColumns[i].ColumnName });
  5134. $("#PivotColumns_AutoComplete").select2({
  5135. placeholder: 'Select Pivot Column',
  5136. data: columns,
  5137. });
  5138. $("#PivotAggrColumn").select2({
  5139. placeholder: 'Select Pivot Aggregation Column',
  5140. data: columns,
  5141. });
  5142. $("#PivotChildColumnName_AutoComplete").select2({
  5143. placeholder: 'Select Pivot Parent Column Name',
  5144. data: columns,
  5145. });
  5146. $("#PivotParentColumnName_AutoComplete").select2({
  5147. placeholder: 'Select Pivot Parent Column Name',
  5148. data: columns,
  5149. });
  5150. }
  5151. static Instance() {
  5152. if (this.instance === undefined) {
  5153. this.instance = new Pivot();
  5154. }
  5155. return this.instance;
  5156. }
  5157. }
  5158. Reports.Pivot = Pivot;
  5159. })(Reports = Analytics.Reports || (Analytics.Reports = {}));
  5160. })(Analytics = Platform.Analytics || (Platform.Analytics = {}));
  5161. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  5162. })(Unibase || (Unibase = {}));
  5163. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
  5164. function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  5165. return new (P || (P = Promise))(function (resolve, reject) {
  5166. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  5167. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  5168. function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
  5169. step((generator = generator.apply(thisArg, _arguments || [])).next());
  5170. });
  5171. };
  5172. var Unibase;
  5173. (function (Unibase) {
  5174. let Platform;
  5175. (function (Platform) {
  5176. let Analytics;
  5177. (function (Analytics) {
  5178. let Charts;
  5179. (function (Charts) {
  5180. class ChartBuilder extends Analytics.Components._Chart {
  5181. constructor() {
  5182. super();
  5183. this.colorColumn = [];
  5184. this.colorApplyColumn = [];
  5185. this.ColorPickerRightNav = true;
  5186. this.IsclickedSelect2Caret = false;
  5187. this._chartBuilder = this;
  5188. this._reportBuilderTemplate = Analytics.Reports.ReportBuilder_Template.Instance();
  5189. this._pivot = Analytics.Reports.Pivot.Instance();
  5190. }
  5191. loadChartIcons() {
  5192. var instance = this;
  5193. let html = `<button class="btn btn-icon btn-icon-circle text-white ChartIcons bg-success" disabled="true" id="ChartIcon_Default"><i class="fa fa-home"></i></button><button class="btn btn-icon btn-icon-circle btn-icon-style-3" id="ChartIcon_FullScreen"><i class="fa fa-expand"></i></button><button class="btn btn-icon btn-icon-circle text-white ChartIcons bg-success" disabled="true" id="ChartIcon_edit"><i class="fa fa-pencil-square-o"></i></button><button class="btn btn-icon btn-icon-circle btn-icon-style-3 hidden" id="ChartIcon_PaintBrush"><i class="fa fa-paint-brush"></i></button><button class="btn btn-icon btn-icon-circle btn-icon-style-3 ChartIcons hidden" id="ChartIcon_ToolTip"><i class="fa fa-comment"></i></button><button class="btn btn-icon btn-icon-circle btn-icon-style-3 ChartIcons hidden" id="ChartIcon_ChartSettings"><i class="fa fa-cog"> </i></button><button class="btn btn-icon btn-icon-circle btn-icon-style-3 ChartIcons hidden" id="ChartIcon_Forms"><i class="fa fa-bookmark"></i></button></button>`;
  5194. $("#bl-nav-chart").html(html);
  5195. $("#bl-nav-chart").height($("#chart-container").height());
  5196. $(".ChartIcons").click(function () {
  5197. $(".ChartIcons").addClass("btn-icon-style-3").removeClass("text-white bg-success").removeAttr("disabled");
  5198. $(this).removeClass("btn-icon-style-3").addClass("text-white bg-success").attr("disabled", "true");
  5199. });
  5200. $("#ChartIcon_Default").click(function () {
  5201. instance.changeRightNav("Default");
  5202. });
  5203. $("#ChartIcon_FullScreen").click(function () {
  5204. let panel = '_modal_bizgaze_popup_ChartFullScreen' + moment().unix();
  5205. let margin = "mt-70 mb-70 ml-100 mr-100";
  5206. let colSpan = "col-sm-10";
  5207. var modalhtml = `<div class="_bizgaze_popup_container shadow-left shadow-xl modal right bg-light ` + colSpan + ` p-0 ` + margin + `" id="` + panel + `"><div class="card">
  5208. <div class="modal-header"> <span class="text-center col-sm-11" style="text-align:center"> Chart Preview </span> <span class="pull-right" id="Close_ChartFullScreen"> <i class="fa fa-close"> </i> </span> </div>
  5209. <div class="modal-body" style="height:500px">
  5210. <div id="legend_FullScreen"></div>
  5211. <div id="ChartCanvasDiv_FullScreen" style="position: relative; height: 67vh; width: 67vw;" class="ml-30">
  5212. <canvas id="myChart_FullScreen" class="ml-10"></canvas>
  5213. </div>
  5214. </div></div></div>`;
  5215. $("#_bizgaze_modal").before(modalhtml);
  5216. instance.chartType("myChart_FullScreen");
  5217. $('#' + panel).modal('show');
  5218. $("#Close_ChartFullScreen").click(function () {
  5219. $(".modal-backdrop").remove();
  5220. $('#' + panel).remove();
  5221. });
  5222. });
  5223. $("#ChartIcon_PaintBrush").click(function () {
  5224. instance.changeRightNav("PaintBrush");
  5225. });
  5226. $("#ChartIcon_ToolTip").click(function () {
  5227. instance.changeRightNav("ToolTip");
  5228. });
  5229. $("#ChartIcon_ChartSettings").click(function () {
  5230. instance.changeRightNav("ChartSettings");
  5231. });
  5232. $("#ChartIcon_Forms").click(function () {
  5233. });
  5234. $('input[name="customRadio1"]:radio').on('change', function (e) {
  5235. var type = $('input[type=radio][name=customRadio1]:checked').attr('id');
  5236. if (type == "rowRadio") {
  5237. instance.colorAppliedOn = Unibase.Platform.Analytics.Enums.ColorType.row;
  5238. }
  5239. else if (type == "columnRadio") {
  5240. instance.colorAppliedOn = Unibase.Platform.Analytics.Enums.ColorType.column;
  5241. }
  5242. instance.chart_dataSet();
  5243. });
  5244. $('input[name="lagendtypedataradio"]:radio').on('change', (e) => {
  5245. var type = e.currentTarget.id;
  5246. if (type == "lagendtypecolumn") {
  5247. instance.legendTitleTypeId = Unibase.Platform.Analytics.Enums.LegendTitleType.Column;
  5248. }
  5249. else if (type == "lagendtypedata") {
  5250. instance.legendTitleTypeId = Unibase.Platform.Analytics.Enums.LegendTitleType.Data;
  5251. }
  5252. instance.chart_dataSet();
  5253. });
  5254. $("#isdatalabel").change((e) => {
  5255. this.isDataLabel = e.target.checked;
  5256. });
  5257. $("#showtooltipheader_checkbox").change((e) => {
  5258. this.isTooltipHeader = e.target.checked;
  5259. });
  5260. $("#label_length").change((e) => {
  5261. this.tickLabelLength = Number(e.target.value);
  5262. });
  5263. $('body').on('click', '#theme_pre .color-block', function () {
  5264. instance.IsColorPalette = true;
  5265. instance.ColumnColors = [];
  5266. instance.RowColors = [];
  5267. var selected_color_block = $(this);
  5268. $(selected_color_block).find('div').each(function () {
  5269. var colorClassName = $(this).attr('class');
  5270. var rgb = $(this).css('background-color');
  5271. var color = '';
  5272. var parts = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
  5273. delete (parts[0]);
  5274. for (var i = 1; i <= 3; ++i) {
  5275. parts[i] = parseInt(parts[i]).toString(16);
  5276. if (parts[i].length == 1)
  5277. parts[i] = '0' + parts[i];
  5278. }
  5279. color = '#' + parts.join('');
  5280. instance.ColumnColors.push(color);
  5281. instance.RowColors.push(color);
  5282. });
  5283. instance.chartData();
  5284. });
  5285. }
  5286. changeRightNav(IconName) {
  5287. var instance = this;
  5288. $(".bl-nav-right").addClass("hidden");
  5289. if (IconName == "Default") {
  5290. $("#bl-nav-right-default").removeClass("hidden");
  5291. if (instance._reportBuilder.reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Table) {
  5292. $("#XAxis").addClass("hidden");
  5293. $("#YAxis").addClass("hidden");
  5294. }
  5295. }
  5296. else if (IconName == "ToolTip") {
  5297. $("#bl-nav-right-tooltip").removeClass("hidden");
  5298. instance.loadToolTipRightNav();
  5299. instance.addColumnColors();
  5300. }
  5301. else {
  5302. $("#bl-nav-right-charttypes").removeClass("hidden");
  5303. instance.loadChartTypesRightNav();
  5304. }
  5305. instance.rightNavSlimScroll();
  5306. }
  5307. rightNavSlimScroll() {
  5308. let elem;
  5309. elem = $(".rightnav_body");
  5310. var height = parseInt($(".report-builder-body").css("height").replace("px", "")) + $(".modal-footer").height() + 'px';
  5311. elem.slimscroll({ height: height, color: '#d6d9da', disableFadeOut: true, borderRadius: 0, size: '6px', enableKeyNavigation: true, opacity: .8 });
  5312. }
  5313. loadChartTypesRightNav() {
  5314. var instance = this;
  5315. let html = `<div class="bg-white card"> <div class="card-header"><span>Chart Types</span></div> <div class="card-body col-sm-1"><div class=" btn-group-xs pt-24"><table><tr><td class="pr-2 pb-2"><button type="button" class="btn btn-outline-primary" onclick=Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().chartPreview('bar',1)><span><i><img src="platform/analytics/components/chartbuilder/images/bar-chart.png" height="30" width="30" onerror="ReloadImage(event)"></i></span></button></td><td class="pr-2 pb-2"><button type="button" class="btn btn-outline-primary" onclick="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().chartPreview('horizontalBar',2)"><span><i><img src="platform/analytics/components/chartbuilder/images/horizontalbar-chart.png" height="30" width="30"></i></span></button></td><td class="pr-2 pb-2"><button type="button" class="btn btn-outline-primary" onclick="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().chartPreview('area',3)"><span id="AreaChart" value="2"><i aria-hidden="true"><img src="platform/analytics/components/chartbuilder/images/area-chart.png" height="30" width="30"></i></span></button></td></tr><tr><td class="pr-2 pb-2"><button type="button" class="btn btn-outline-primary" onclick="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().chartPreview('doughnut',4)"><span><i><img src="platform/analytics/components/chartbuilder/images/doughnut-chart.png" height="30" width="30"></i></span></button></td><td class="pr-2 pb-2"><button type="button" class="btn btn-outline-primary" onclick="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().chartPreview('line',5)"><span><i aria-hidden="true"><img src="platform/analytics/components/chartbuilder/images/line-chart.png" height="30" width="30"></i></span></button></td><td class="pr-2 pb-2"><button type="button" class="btn btn-outline-primary" onclick="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().chartPreview('pie',6)"><span><i aria-hidden="true"><img src="platform/analytics/components/chartbuilder/images/pie-chart.png" height="30" width="30"></i></span></button></td><tr><td class="pr-2 pb-2"><button type="button" class="btn btn-outline-primary" onclick="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().chartPreview('stackedBar',7)"><span><i><img src="platform/analytics/components/chartbuilder/images/stacked-bar-chart.png" height="30" width="30"></i></span></button></td><td class="pr-2 pb-2"><button type="button" class="btn btn-outline-primary" onclick="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().chartPreview('stackedHorizontalBar',8)"><span><i><img src="platform/analytics/components/chartbuilder/images/stacked-horizontalbar-chart.png" height="30" width="30"></i></span></button></td><td class="pr-2 pb-2"><button type="button" class="btn btn-outline-primary" onclick="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().chartPreview('bubble',9)"><span><i><img src="platform/analytics/components/chartbuilder/images/bubble-chart.png" height="30" width="30"></i></span></button></td><tr class="hidden"><td class="pr-2 pb-2"><button type="button" class="btn btn-outline-primary" onclick="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().chartPreview()"><span><i><img src="" height="30" width="30"></i></span></button></td><td class="pr-2 pb-2"><button type="button" class="btn btn-outline-primary" onclick="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().chartPreview('rangeColumn',10)"><span><i><img src="" height="30" width="30"></i></span></button></td><td class="pr-2 pb-2"><button type="button" class="btn btn-outline-primary" onclick="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().chartPreview('zoomcolumn')"><span><i><img src="" height="30" width="30"></i></span></button></td></tr></table></div> </div> </div>`;
  5316. $("#bl-nav-right-charttypes").html(html);
  5317. }
  5318. loadReportTypeChart(id) {
  5319. var instance = this;
  5320. if (id != "fa fa-bar-chart-o") {
  5321. $('.biz-bldr-wrap').removeClass('chart_view');
  5322. $('#chart-container').addClass('hidden');
  5323. $("#Categories").removeClass("hidden");
  5324. $("#chartPivotBtn").addClass("hidden");
  5325. $(".bldr-body").removeClass("biz-body-margin-right");
  5326. $(this).attr('title', 'Table View');
  5327. let pivotHtml = instance._reportBuilderTemplate.loadPivotForm();
  5328. $('#reportBuilderRightNav').html(pivotHtml);
  5329. setTimeout(function () { $("#pivot-close-btn").click(); }, 1);
  5330. $("#no_of_records").closest(".card").first().addClass("hidden");
  5331. $("#linechart").addClass("hidden");
  5332. $("#div_base_column").addClass("hidden");
  5333. instance._reportBuilder.loadDynmaicFilters(this._reportBuilder.reportid);
  5334. }
  5335. else {
  5336. $('.biz-bldr-wrap').addClass('chart_view');
  5337. $('#chart-container').removeClass('hidden');
  5338. instance.loadChartContent();
  5339. $("#XAxis").removeClass("hidden");
  5340. $("#YAxis").removeClass("hidden");
  5341. $("#Categories").addClass("hidden");
  5342. $("#chartPivotBtn").removeClass("hidden");
  5343. $(".bldr-body").addClass("biz-body-margin-right");
  5344. $(this).attr('data-original-title', 'Chart View');
  5345. instance._reportBuilderTemplate.loadChartSideBar();
  5346. this.sortTooltipColumnsEvent();
  5347. instance.select2TooltipDataBinding();
  5348. instance._chartBuilder.loadPalettes();
  5349. $("#no_of_records").closest(".card").first().removeClass("hidden");
  5350. $("#div_base_column").removeClass("hidden");
  5351. }
  5352. if (instance._reportBuilder.isEdit == true) {
  5353. instance.setChartTypeIconActive(instance.ChartTypeId);
  5354. $('#biz-wrapper').addClass('biz-drawer-pushright');
  5355. }
  5356. instance._reportBuilder.reportTypeChange(id);
  5357. if ($("#QueryBuilder").parent().hasClass("slimScrollDiv")) {
  5358. $("#QueryBuilder").parent().addClass("hidden");
  5359. }
  5360. instance.enableOrDisableChartIcons();
  5361. $("#legend-select").val(instance._reportBuilder.legendTypeId);
  5362. instance._chartBuilder.loadSelectedLegend(instance._reportBuilder.legendTypeId, false);
  5363. }
  5364. setChartTypeIconActive(chartTypeId) {
  5365. switch (chartTypeId) {
  5366. case Unibase.Platform.Analytics.Charts.Enums.ChartType.bar:
  5367. $("#chart_type").find('.bar-chart-icon').closest('label').addClass('active');
  5368. break;
  5369. case Unibase.Platform.Analytics.Charts.Enums.ChartType.horizontalBar:
  5370. $("#chart_type").find('.horizontalbar-chart-icon').closest('label').addClass('active');
  5371. break;
  5372. case Unibase.Platform.Analytics.Charts.Enums.ChartType.area:
  5373. $("#chart_type").find('.area-chart-icon').closest('label').addClass('active');
  5374. break;
  5375. case Unibase.Platform.Analytics.Charts.Enums.ChartType.doughnut:
  5376. $("#chart_type").find('.doughnut-chart-icon').closest('label').addClass('active');
  5377. break;
  5378. case Unibase.Platform.Analytics.Charts.Enums.ChartType.line:
  5379. $("#chart_type").find('.line-chart-icon').closest('label').addClass('active');
  5380. break;
  5381. case Unibase.Platform.Analytics.Charts.Enums.ChartType.pie:
  5382. $("#chart_type").find('.pie-chart-icon').closest('label').addClass('active');
  5383. break;
  5384. case Unibase.Platform.Analytics.Charts.Enums.ChartType.stackedBar:
  5385. $("#chart_type").find('.stackedbar-chart-icon').closest('label').addClass('active');
  5386. break;
  5387. case Unibase.Platform.Analytics.Charts.Enums.ChartType.stackedHorizontalBar:
  5388. $("#chart_type").find('.stackedhorizontalbar-chart-icon').closest('label').addClass('active');
  5389. break;
  5390. case Unibase.Platform.Analytics.Charts.Enums.ChartType.bubble:
  5391. $("#chart_type").find('.bubble-chart-icon').closest('label').addClass('active');
  5392. break;
  5393. }
  5394. }
  5395. loadTopIcons() {
  5396. var instance = this;
  5397. let html = `<a class="btn btn-icon btn-flush-dark btn-rounded flush-soft-hover drawer-toggle-link ml-1" id="ReportTypeChart" href="javascript:;" data-tooltip="true" title="Table View"><span class="btn-icon-wrap"><span class="font-awesome-icon"><i class="fa fa-table"></i></span></span></a>`;
  5398. $("#bl-report-title").html(html);
  5399. let pivotHtml = instance._reportBuilderTemplate.loadPivotForm();
  5400. $('#reportBuilderRightNav').html(pivotHtml);
  5401. $("#ReportTypeChart").click(function () {
  5402. var id = $(this).find('i').toggleClass('fa-table fa-bar-chart-o');
  5403. instance.loadReportTypeChart(id[0].className);
  5404. $('#tabulatorReportbuilder').toggleClass('contains-chartview');
  5405. });
  5406. $("#chartPivotBtn").click(function () {
  5407. $("#chart-pivot-container").removeClass('hidden');
  5408. $("#chart-pivot-container.biz-drawer.drawer-right").css('right', '0px');
  5409. $("#chart-appearance-container").addClass('hidden');
  5410. });
  5411. $('body').on('click', '#chart-pivot-container #pivot-close-btn', function () {
  5412. $(this).removeClass('drawer-close');
  5413. $("#chart-pivot-container").addClass('hidden');
  5414. $("#chart-appearance-container").removeClass('hidden');
  5415. });
  5416. $("#ReportFilter").click(function () {
  5417. $(".report-builder-body").toggleClass("hidden");
  5418. instance._reportBuilder.loadQueryBuilderDiv();
  5419. });
  5420. $("#reset_pivot_details").click(() => {
  5421. $("#txt_TimeIntervals").val("0").trigger("change");
  5422. $("#PivotColumns_AutoComplete").val("0").trigger("change");
  5423. $("#PivotDateType").val("0").trigger("change");
  5424. $("#PivotAggrColumn").val("0").trigger("change");
  5425. $("#PivotAggrType").val("-1").trigger("change");
  5426. $("#PivotRows_Select2").val("").trigger("change").empty();
  5427. $("#chktreeexpand_checkbox").prop("checked", false);
  5428. $("#PivotChildColumnName_AutoComplete").val("0").trigger("change");
  5429. $("#PivotValue_AutoComplete").val("-1").trigger("change");
  5430. $("#PivotParentColumnName_AutoComplete").val("0").trigger("change");
  5431. $("#pivotType_Select2").val("0").trigger("change");
  5432. $("#div_Intervals, #div_PivotDateType, #div_PivotColumns, #div_PivotAggrColumn, #div_PivotAggrType, #div_PivotRows, #div_datatreeexpand, #div_PivotChildColumnName, #div_PivotValue, #div_PivotParentColumnName").addClass("hidden");
  5433. if (this._reportBuilder.pivot)
  5434. this._reportBuilder.pivot = new PivotColumns();
  5435. this._reportBuilder.load_data(this._reportBuilder.table);
  5436. });
  5437. }
  5438. loadChartContent() {
  5439. let html = `
  5440. <div class="card-header border-0 justify-content-end card-header-action">
  5441. <div class="card-action-wrap">
  5442. <a href="#" class="inline-block full-screen">
  5443. <i class="ion ion-md-expand"></i>
  5444. </a>
  5445. </div>
  5446. </div>
  5447. <div class="card-body h-100">
  5448. <div id="ChartCanvasDiv" class="h-100 w-100">
  5449. <canvas id="myChart"></canvas>
  5450. </div>
  5451. </div>
  5452. `;
  5453. $("#chart-container").html(html);
  5454. }
  5455. formatResultData(data) {
  5456. var instance = Unibase.Platform.Analytics.Charts.ChartBuilder.Instance();
  5457. if (!data.id || isNaN(Number(data.id))) {
  5458. var index = instance.getIndexByDisplayText(data.text, "YAxis");
  5459. if (index != -1) {
  5460. var ColId = instance.yaxisColumns[index].ColumnId;
  5461. data.id = ColId;
  5462. return data.text;
  5463. }
  5464. else
  5465. return data.text;
  5466. }
  5467. if (data.element.selected)
  5468. return;
  5469. return data.text;
  5470. }
  5471. ;
  5472. formatResult(data) {
  5473. return data.text;
  5474. }
  5475. ;
  5476. selectedDatalistColumns() {
  5477. var instance = this;
  5478. var data = [];
  5479. for (let i = 0; i < instance._reportBuilder.datalistColumnsResponseData.length; i++) {
  5480. data.push({ id: instance._reportBuilder.datalistColumnsResponseData[i].ColumnId, text: instance._reportBuilder.datalistColumnsResponseData[i].ColumnName });
  5481. }
  5482. return data;
  5483. }
  5484. loadSearchSelect2() {
  5485. var instance = this;
  5486. var data = instance._reportBuilder.getSelectedColumns_Select2_Data_AliasName_As_TextValue();
  5487. $("#searchcolumns").empty().unbind().select2({
  5488. placeholder: 'Select Search columns',
  5489. data: data,
  5490. allowClear: true,
  5491. }).on('select2:unselect', (e) => {
  5492. let removedCol = e.params.data.text;
  5493. if (instance._reportBuilder.SearchColumns) {
  5494. let searchColumns = instance._reportBuilder.SearchColumns.split('|');
  5495. let srchIdx = searchColumns.indexOf(removedCol);
  5496. if (srchIdx != -1) {
  5497. searchColumns.splice(srchIdx, 1);
  5498. instance._reportBuilder.SearchColumns = searchColumns.join("|");
  5499. }
  5500. }
  5501. }).on('select2:select', (e) => {
  5502. let selectedCol = e.params.data.text;
  5503. if (instance._reportBuilder.SearchColumns) {
  5504. instance._reportBuilder.SearchColumns += "|" + selectedCol;
  5505. }
  5506. else
  5507. instance._reportBuilder.SearchColumns = selectedCol;
  5508. });
  5509. this._reportBuilder.bindSearchColumns();
  5510. }
  5511. identityColumns() {
  5512. var instance = this;
  5513. var data = [];
  5514. var identityinfo = Unibase.Platform.Membership.Infos.Identity.currentUser;
  5515. var keys = Object.keys(identityinfo);
  5516. for (let i = 0; i < keys.length; i++) {
  5517. data.push({ id: identityinfo[keys[i]], text: "Identity_" + keys[i] });
  5518. }
  5519. instance._reportBuilder.identityColumnsResponseData = data;
  5520. return data;
  5521. }
  5522. loadIdentitySelect2() {
  5523. var instance = this;
  5524. var data = [];
  5525. var data = instance.identityColumns();
  5526. $("#identitycolumns").select2({
  5527. placeholder: 'Select Indentity columns',
  5528. data: data,
  5529. });
  5530. }
  5531. loadSortColumnsSelect2() {
  5532. var instance = this;
  5533. let sortData = [{ id: "0", text: "- Select -" }];
  5534. sortData = instance._reportBuilder.getSelectedColumns_Select2_Data();
  5535. if (instance._reportBuilder.reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Chart) {
  5536. for (var i = 0; i < instance.ChartSelectedColumns.length; i++) {
  5537. let chtCol = instance.ChartSelectedColumns[i];
  5538. let idx = sortData.findIndex(x => x.text == instance.ChartSelectedColumns[i].AliasName);
  5539. if (idx == -1)
  5540. sortData.push({ id: chtCol.ChartColumnId || chtCol.ColumnId && chtCol.ColumnId.toString(), text: chtCol.AliasName });
  5541. }
  5542. }
  5543. $("#sortColumns_select").html("").unbind().select2({
  5544. placeholder: 'Select Sort columns',
  5545. data: sortData,
  5546. }).on('select2:select', function (e) {
  5547. let data = e.params.data;
  5548. let dataType = instance._reportBuilder.dataType($("#allDatalistColumns #li_" + parseInt(data.id) + " span.datalist_column").attr('data-column-datatype'));
  5549. var sortIndex = instance._reportBuilder.getIndexByDisplayText_sortColumnsArray(data.text);
  5550. if (sortIndex > -1) {
  5551. $("#sortColumns_select").select2('close');
  5552. alert("Column - " + data.text + " already exists in sortcolumns select2");
  5553. $('#sortColumns_select').val('0').trigger('change');
  5554. $('.select2-selection__clear').hide();
  5555. return false;
  5556. }
  5557. var html = instance._reportBuilderTemplate.loadSortSelect2Column(Number(e.params.data.id), e.params.data.text, dataType);
  5558. $("#sort_selected_columns").append(html);
  5559. instance._reportBuilder.setSelectOption("sortColumns_select");
  5560. var selcolIndex = instance._reportBuilder.getIndexByAliasName_selectedColumnsArray(data.text);
  5561. instance._reportBuilder.selectedColumns[selcolIndex].SortOrder = "Desc";
  5562. instance._reportBuilder.selectedColumns[selcolIndex].SortIndex = instance._reportBuilder.SortColumns.length;
  5563. instance._reportBuilder.SortColumns.push({ DisplayText: data.text, SortOrder: "Desc", SortIndex: instance._reportBuilder.SortColumns.length });
  5564. var _sort = [];
  5565. if (instance._reportBuilder.SortColumns.length > 0) {
  5566. for (var s = 0; s < instance._reportBuilder.SortColumns.length; s++) {
  5567. _sort.push({ Name: instance._reportBuilder.SortColumns[s].DisplayText, Order: instance._reportBuilder.SortColumns[s].SortOrder });
  5568. }
  5569. }
  5570. instance._reportBuilder.stringifyed_SortColumns = JSON.stringify(_sort);
  5571. instance._reportBuilder.load_data(instance._reportBuilder.table);
  5572. if (instance._reportBuilder.reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Chart) {
  5573. var cindex = instance.getIndexByDisplayText_ChartSelectedColumns(data.text);
  5574. if (cindex > -1) {
  5575. instance.ChartSelectedColumns[cindex].SortOrder = "Desc";
  5576. instance.ChartSelectedColumns[cindex].SortIndex = instance._reportBuilder.SortColumns.length;
  5577. }
  5578. if (instance._reportBuilder.TenureReport.length != 0) {
  5579. Unibase.Platform.Analytics.Reports.Tenure.Instance().CheckedTenure();
  5580. instance._chartBuilder.tenureChart('myChart', instance._reportBuilder.reportid);
  5581. }
  5582. else {
  5583. instance._chartBuilder.chartPreview(instance._chartBuilder.ChartTypeName, instance._chartBuilder.ChartTypeId);
  5584. }
  5585. }
  5586. });
  5587. }
  5588. loadDynamicFilterSelect(loadDatalistColumns) {
  5589. var instance = this;
  5590. var data;
  5591. if (loadDatalistColumns) {
  5592. data = this._reportBuilder.getSelect2DataForDynamicFiltersDatalistColumns();
  5593. }
  5594. else {
  5595. data = this._reportBuilder.getSelectedColumns_Select2_Data();
  5596. }
  5597. $("#dynamicFilter_select").html("").unbind().select2({
  5598. placeholder: 'Select Dynamic Filter',
  5599. data: data,
  5600. }).on('select2:select', function (e) {
  5601. let data = e.params.data;
  5602. let dataType = Number($("#allDatalistColumns #li_" + parseInt(data.id) + " span.datalist_column").attr('data-column-datatype'));
  5603. var dfillindex = Unibase.Platform.Analytics.Reports.DynamicFilter.Instance().getIndexByDisplayText_dynamicFilterColumns(data.text);
  5604. if (dfillindex > -1) {
  5605. return MessageHelper.Instance().showError("Column - " + data.text + " already exists in DynamicFilters select2.", "div_ReportBuilderErrorMessage");
  5606. }
  5607. let rptCol = instance._reportBuilder.selectedColumns.find(x => x.AliasName == data.text);
  5608. if (rptCol) {
  5609. if (rptCol.ColumnFormat != "" && rptCol.ColumnFormat != "Default") {
  5610. instance._reportBuilder.setSelectOption("dynamicFilter_select");
  5611. return MessageHelper.Instance().showError("Unable to add formated column in DynamicFilters", "div_ReportBuilderErrorMessage");
  5612. }
  5613. }
  5614. var html = instance._reportBuilderTemplate.loadDynamicFilterColumn(Number(e.params.data.id), e.params.data.text, dataType);
  5615. $("#dynamic-list-group-wrapper").append(html);
  5616. if (dataType == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime) {
  5617. if ($('[data-toggle="tooltip"]').length > 0)
  5618. $('[data-toggle="tooltip"]').tooltip();
  5619. var datefill = instance._reportBuilder.dynamicFilters.find(d => d.IsFilterableColumn == data.text) ? true : false;
  5620. if (!datefill) {
  5621. var model = new DynamicFilterModel();
  5622. model.IsFilterableColumn = data.text;
  5623. model.DataType = dataType;
  5624. model.DisplayName = data.text;
  5625. model.Index = instance._reportBuilder.dynamicFilters.length;
  5626. model.IsDefault = $('.dynamicfilter-defaultdate_' + data.text).is(':checked');
  5627. instance._reportBuilder.dynamicFilters.push(model);
  5628. }
  5629. }
  5630. Unibase.Platform.Analytics.Reports.DynamicFilter.Instance().sortDynamicFilter();
  5631. instance._reportBuilder.setSelectOption("dynamicFilter_select");
  5632. });
  5633. }
  5634. select2DataBinding(Event) {
  5635. var instance = this;
  5636. var data = instance.selectedDatalistColumns();
  5637. if (instance._reportBuilder.reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Chart) {
  5638. instance.coordinate_data(instance.ChartAxis.Horizontal, data);
  5639. instance.coordinate_data(instance.ChartAxis.Vertical, data);
  5640. instance.select2TooltipDataBinding();
  5641. instance.bindChartBaseColumnSelect2();
  5642. }
  5643. instance.loadSearchSelect2();
  5644. instance.loadIdentitySelect2();
  5645. instance.loadSortColumnsSelect2();
  5646. instance.loadDynamicFilterSelect(instance._reportBuilder.showDynamicFilters);
  5647. if (Event == "") {
  5648. instance.loadCategoriesSelect2();
  5649. $("#groupby_select").off('select2:select').off('select2:unselect').off('select2:selecting');
  5650. $("#groupby_select").select2({
  5651. placeholder: 'Select GroupBy columns',
  5652. data: data,
  5653. }).on('select2:select', function (e) {
  5654. let data = e.params.data;
  5655. let dataType = Number($("#allDatalistColumns #li_" + e.params.data.id + " span.datalist_column").attr('data-column-datatype'));
  5656. if (instance._reportBuilder.reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Chart) {
  5657. let gObj = {
  5658. ColumnId: Number(data.id),
  5659. ColumnName: data.text,
  5660. DisplayText: data.text,
  5661. AliasName: data.text,
  5662. DataType: dataType,
  5663. CoordinateTypeId: instance.ChartAxis.GroupBy,
  5664. ColorType: Unibase.Platform.Analytics.Enums.ColorType.row,
  5665. divId: "groupby_selected_columns"
  5666. };
  5667. instance.selected_Coordinate(gObj);
  5668. instance.addColumnColors();
  5669. instance.loadSortColumnsSelect2();
  5670. }
  5671. else {
  5672. let dataTypeString = $("#allDatalistColumns #li_" + parseInt(data.id) + " span.datalist_column").attr('data-column-datatype');
  5673. let dataType = Number($("#allDatalistColumns #li_" + e.params.data.id + " span.datalist_column").attr('data-column-datatype'));
  5674. let Index = instance._reportBuilder.getIndexByColumnName_selectedColumnsArray(data.text);
  5675. var sel_Col = instance._reportBuilder.selectedColumns[Index];
  5676. if (sel_Col)
  5677. var grpCol = sel_Col.GroupBy;
  5678. if (!grpCol) {
  5679. if (Index != -1) {
  5680. instance._reportBuilder.selectedColumns[Index].GroupBy = true;
  5681. }
  5682. else {
  5683. var selCol = new SelectedColumns();
  5684. selCol.ColumnId = parseInt(data.id);
  5685. selCol.ColumnName = data.text;
  5686. selCol.DlColumnName = instance._reportBuilder.getDlColumn_ByColumnId_datalistColumnsArray(parseInt(data.id));
  5687. selCol.ColumnIndex = instance._reportBuilder.selectedColumns.length;
  5688. selCol.DataType = dataType;
  5689. selCol.Isvisible = true;
  5690. selCol.GroupBy = true;
  5691. selCol.AliasName = data.text;
  5692. selCol.DisplayText = data.text;
  5693. selCol.GroupByCategory = false;
  5694. instance._reportBuilder._selectedColumns(selCol);
  5695. }
  5696. var html = instance._reportBuilderTemplate.loadSelect2Column(parseInt(data.id), data.text, dataType);
  5697. $("#groupby_selected_columns").append(html);
  5698. instance._reportBuilder.setSelectOption("groupby_select");
  5699. $(".dsl_column_filters").addClass('hidden');
  5700. instance._reportBuilder.load_data(instance._reportBuilder.table);
  5701. }
  5702. else {
  5703. $("#groupby_select").select2('close');
  5704. alert("Column - " + data.text + " already exists in groupby select2. Please change display text and try again");
  5705. return false;
  5706. }
  5707. }
  5708. }).on('select2:selecting', function (e) {
  5709. let data = e.params.args.data;
  5710. var index = -1;
  5711. index = instance._reportBuilder.getIndexByAliasName_selectedColumnsArray(data.text);
  5712. let x_index = instance.getIndexByDisplayText(data.text, instance.ChartAxis.Horizontal);
  5713. let y_index = instance.getIndexByDisplayText(data.text, instance.ChartAxis.Vertical);
  5714. let grp_index = instance.getIndexByDisplayText(data.text, instance.ChartAxis.GroupBy);
  5715. let Select2Type = "";
  5716. if (x_index != -1) {
  5717. Select2Type = instance.ChartAxis.Horizontal;
  5718. }
  5719. if (y_index != -1) {
  5720. Select2Type = instance.ChartAxis.Vertical;
  5721. }
  5722. if (grp_index != -1) {
  5723. Select2Type = instance.ChartAxis.GroupBy;
  5724. }
  5725. });
  5726. $("#line_chart_select").off('select2:select').off('select2:unselect').off('select2:selecting');
  5727. $("#line_chart_select").select2({
  5728. placeholder: 'Select Line Chart columns',
  5729. data: data,
  5730. }).on("select2:select", (e) => {
  5731. let data = e.params.data;
  5732. let dataType = Number($("#allDatalistColumns #li_" + e.params.data.id + " span.datalist_column").attr('data-column-datatype'));
  5733. if (instance._reportBuilder.reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Chart) {
  5734. let gObj = {
  5735. ColumnId: Number(data.id),
  5736. ColumnName: data.text,
  5737. DisplayText: data.text,
  5738. AliasName: data.text,
  5739. DataType: dataType,
  5740. CoordinateTypeId: instance.ChartAxis.LineChart,
  5741. ColorType: Unibase.Platform.Analytics.Enums.ColorType.row,
  5742. divId: "line_chart_selected_columns"
  5743. };
  5744. instance.selected_Coordinate(gObj);
  5745. instance.addColumnColors();
  5746. instance.loadSortColumnsSelect2();
  5747. instance.coordinate_Elements(false, false, false, false, true, false);
  5748. instance.ChartTypeId = Unibase.Platform.Analytics.Charts.Enums.ChartType.barWithLine;
  5749. }
  5750. });
  5751. instance.bindChartBaseColumnSelect2();
  5752. }
  5753. }
  5754. coordinate_data(CoordinateType, data) {
  5755. var instance = this;
  5756. var divId = "";
  5757. let tmpRsltData = instance.formatResult;
  5758. if (CoordinateType == instance.ChartAxis.Vertical) {
  5759. tmpRsltData = instance.formatResultData;
  5760. }
  5761. $("#" + CoordinateType.toLowerCase() + "_select").off('select2:selecting').off('select2:select');
  5762. $("#" + CoordinateType.toLowerCase() + "_select").select2({
  5763. placeholder: 'Select ' + CoordinateType + ' columns',
  5764. data: data,
  5765. templateResult: tmpRsltData,
  5766. sorter: data => data.sort((a, b) => a.text.localeCompare(b.text)),
  5767. }).on('select2:selecting', function (e) {
  5768. let data = e.params.args.data;
  5769. var index = -1;
  5770. index = instance._reportBuilder.getIndexByAliasName_selectedColumnsArray(data.text);
  5771. let x_index = instance.getIndexByDisplayText(data.text, instance.ChartAxis.Horizontal);
  5772. let y_index = instance.getIndexByDisplayText(data.text, instance.ChartAxis.Vertical);
  5773. let grp_index = instance.getIndexByDisplayText(data.text, instance.ChartAxis.GroupBy);
  5774. let Select2Type = "";
  5775. if (x_index != -1) {
  5776. Select2Type = instance.ChartAxis.Horizontal;
  5777. }
  5778. if (y_index != -1) {
  5779. Select2Type = instance.ChartAxis.Vertical;
  5780. }
  5781. if (grp_index != -1) {
  5782. Select2Type = instance.ChartAxis.GroupBy;
  5783. }
  5784. if (Select2Type != "" && instance._reportBuilder.reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Chart) {
  5785. $("#" + Select2Type.toLowerCase() + "_select").select2('close');
  5786. alert("Column - " + data.text + " already exists in " + Select2Type + " select2. Please change display text and try again");
  5787. return false;
  5788. }
  5789. }).on('select2:select', function (e) {
  5790. let data = e.params.data;
  5791. let dataType = Number($("#allDatalistColumns #li_" + e.params.data.id + " span.datalist_column").attr('data-column-datatype'));
  5792. if (CoordinateType == instance.ChartAxis.Vertical) {
  5793. divId = "yaxis_selected_columns";
  5794. }
  5795. else if (CoordinateType == instance.ChartAxis.Horizontal) {
  5796. divId = "xaxis_selected_columns";
  5797. }
  5798. else {
  5799. divId = "groupby_selected_columns";
  5800. }
  5801. let obj = {
  5802. ColumnId: Number(data.id),
  5803. ColumnName: data.text,
  5804. AliasName: data.text,
  5805. DisplayText: data.text,
  5806. DataType: dataType,
  5807. CoordinateTypeId: CoordinateType,
  5808. ColorType: Unibase.Platform.Analytics.Enums.ColorType.column,
  5809. divId: divId
  5810. };
  5811. instance.selected_Coordinate(obj);
  5812. if (instance._reportBuilder.TenureReport.length == 0)
  5813. instance.chartPreview('bar', Unibase.Platform.Analytics.Charts.Enums.ChartType.bar);
  5814. });
  5815. }
  5816. coordinate_Elements(XAxis, YAxis, GroupBy, ToolTip, LineChart, BaseColumn) {
  5817. var instance = this;
  5818. let chartArray = [];
  5819. if (XAxis == true) {
  5820. for (var i = 0; i < instance.xaxisColumns.length; i++) {
  5821. chartArray.push(instance.xaxisColumns[i]);
  5822. }
  5823. }
  5824. if (YAxis == true) {
  5825. for (var i = 0; i < instance.yaxisColumns.length; i++) {
  5826. chartArray.push(instance.yaxisColumns[i]);
  5827. }
  5828. }
  5829. if (GroupBy == true) {
  5830. for (var i = 0; i < instance.groupColumns.length; i++) {
  5831. chartArray.push(instance.groupColumns[i]);
  5832. }
  5833. }
  5834. if (LineChart) {
  5835. for (var i = 0; i < instance.lineChartColumns.length; i++) {
  5836. chartArray.push(instance.lineChartColumns[i]);
  5837. }
  5838. }
  5839. if (BaseColumn) {
  5840. for (var i = 0; i < instance.chartBaseColumns.length; i++) {
  5841. let cIdx = chartArray.findIndex(x => x.AliasName == instance.chartBaseColumns[i].AliasName);
  5842. if (cIdx == -1) {
  5843. instance.chartBaseColumns[i].IsBaseColumn = true;
  5844. chartArray.push(instance.chartBaseColumns[i]);
  5845. }
  5846. else {
  5847. chartArray[cIdx].IsBaseColumn = true;
  5848. }
  5849. }
  5850. }
  5851. if (ToolTip == true) {
  5852. if (instance.toolTipArray.length > 0) {
  5853. for (var i = 0; i < instance.toolTipArray.length; i++) {
  5854. var tolcol = chartArray.find(x => x.AliasName == instance.toolTipArray[i].AliasName) ? true : false;
  5855. if (tolcol != true) {
  5856. chartArray.push(instance.toolTipArray[i]);
  5857. }
  5858. }
  5859. }
  5860. }
  5861. return chartArray;
  5862. }
  5863. coordinate_DropDown(Select2Id) {
  5864. var instance = this;
  5865. $("#" + Select2Id).find(".select2-selection__choice span").removeClass('select2-selection__choice__remove');
  5866. $("#" + Select2Id).find(".select2-selection__choice span").empty();
  5867. $("#" + Select2Id).find(".select2-selection__choice span").css('float', 'right');
  5868. var arry = [];
  5869. if (Select2Id == instance.ChartAxis.Horizontal) {
  5870. arry = instance.xaxisColumns;
  5871. }
  5872. else if (Select2Id == instance.ChartAxis.Vertical) {
  5873. arry = instance.yaxisColumns;
  5874. }
  5875. else if (Select2Id == instance.ChartAxis.GroupBy) {
  5876. arry = instance.groupColumns;
  5877. }
  5878. else if (Select2Id == instance.ChartAxis.LineChart) {
  5879. arry = instance.lineChartColumns;
  5880. }
  5881. else if (Select2Id == instance.ChartAxis.BaseColumn) {
  5882. arry = instance.chartBaseColumns;
  5883. }
  5884. for (var i = 0; i < arry.length; i++) {
  5885. var ElementName = arry[i].ColumnName;
  5886. var ElementId = arry[i].ColumnId;
  5887. var DisplayText = arry[i].DisplayText;
  5888. var len = $("#" + Select2Id).find(".select2-selection__rendered").find(".select2-selection__choice").length;
  5889. for (var l = 0; l <= len; l++) {
  5890. var m = l + 1;
  5891. var DisplayText_length = $("#" + Select2Id).find(".select2-selection__rendered").find("[title='" + DisplayText + "']:nth-child(" + m + ")").length;
  5892. var length = $("#" + Select2Id).find(".select2-selection__rendered").find("[title='" + ElementName + "']:nth-child(" + m + ")").length;
  5893. if (DisplayText_length != 0) {
  5894. break;
  5895. }
  5896. if (length > 0) {
  5897. $("#" + Select2Id).find(".select2-selection__rendered").find("[title='" + ElementName + "']:nth-child(" + m + ")").attr("title", DisplayText);
  5898. break;
  5899. }
  5900. }
  5901. let html = `<div class="dropdown mb-100"><span class="dropdown-toggle caret" onclick="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().clickedSelect2Caret(` + ElementId + `,'` + DisplayText + `','` + Select2Id + `')" data-toggle="dropdown" aria-expanded="false"></span><ul class="dropdown-menu dropdown-menu_` + DisplayText + `" style='position:relative;'><li><a class="dropdown-item font-13 text-primary text-center" href="javascript:;" onclick="" style="cursor:not-allowed"><strong>` + ElementName + `</strong></a></li><div class="dropdown-divider"></div></li><li id="dropdown_Aggregation_` + DisplayText + `"><div class="sub-dropdown-menu show-on-hover"><a class="dropdown-item font-13" href="javascript:;" onclick='' ><span id = "AggregateOperation"> Aggregation </span></a><div class="dropdown-menu open-left-side"></div></div></li><li><div class="sub-dropdown-menu show-on-hover"><a class="dropdown-item font-13" href="javascript:;" onclick=''><span id = "SortTableColumn"> Sort By </span></a><div class="dropdown-menu open-left-side w-10"><a class="dropdown-item font-13 pr-0 pl-0 SortOrder_` + DisplayText + `" id="SortOrder_` + DisplayText + `_Asc" onclick="javascript: Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().changeSortBy_chart(` + ElementId + `,'` + DisplayText + `','` + Select2Id + `','Asc');" href="javascript:;"><span class="pl-20">Asc<i class="dropdown-icon fa fa-check pull-right hidden text-primary mt-1" style="font-size:12px;" id="DropDown_IsAscInSelect2_` + DisplayText + `"></i></span></a><a class="dropdown-item font-13 pr-0 pl-0 SortOrder_` + DisplayText + `" id="SortOrder_` + DisplayText + `_Desc" onclick="javascript: Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().changeSortBy_chart(` + ElementId + `,'` + DisplayText + `','` + Select2Id + `','Desc');" href="javascript:;"><span class="pl-15">Desc<i class="dropdown-icon fa fa-check pull-right hidden text-primary mt-1" style="font-size:12px;" id="DropDown_IsDescInSelect2_` + DisplayText + `"></i></span></a></div></div></li><li><a class="dropdown-item font-13" href="javascript:;" onclick="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().showOrHideColumns_chart(` + ElementId + `,'` + DisplayText + `','` + Select2Id + `')"><i class="dropdown-icon fa fa-eye-slash" id="DropDown_Eye_EyeSlash"></i><span id="ShowOrHideColumn">Hide Column</span> </a></li> <li><a class="dropdown-item font-13" href="javascript:;" onchange="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().changeDisplayText_chart('` + DisplayText + `','` + Select2Id + `')"><input type="text" placeholder="Display Text" class="w-100" id="DisplayText_` + DisplayText + `"> </a></li> <li><a class="dropdown-item font-13" href="javascript:;" class="select2-selection__choice__remove" onclick=''><span id="RemoveSelectedColumnInSelect2" onclick="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().removeColumn_Select2(` + ElementId + `,'` + DisplayText + `','` + Select2Id + `')"> Remove Column </span></a></li><li><a class="dropdown-item font-13 pr-0" href="javascript:;" onclick="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().IsFilterableColumnInSelect2_chart(` + ElementId + `,'` + DisplayText + `','` + Select2Id + `')"><span id="IsFilterableColumnInSelect2">IsFilterable<i class="dropdown-icon fa fa-check pl-5 hidden text-primary" style="font-size:15px" id="DropDown_IsFilterableInSelect2_` + DisplayText + `"></i></span> </a></li></ul></div>`;
  5902. $("#" + Select2Id).find(".select2-selection__rendered").find("[title='" + DisplayText + "']").html(`<span class="" role="presentation" style="float: right;"></span>` + DisplayText);
  5903. $("#" + Select2Id).find("[title='" + DisplayText + "'] [role='presentation']").append(html);
  5904. $("#" + Select2Id).find("[title='" + DisplayText + "'] [role='presentation']").addClass("ml-2 mr-2");
  5905. }
  5906. $(".select2-selection__choice").addClass("bg-primary");
  5907. }
  5908. clickedSelect2Caret(ElementId, DisplayText, Select2Id) {
  5909. var instance = this;
  5910. $('#' + Select2Id.toLowerCase() + '_select').select2('close');
  5911. if ($("#" + Select2Id).find(".dropdown-menu_" + DisplayText).hasClass('show')) {
  5912. $("#" + Select2Id).find(".select2-selection__rendered").find("[title='" + DisplayText + "']").removeClass("bg-success");
  5913. }
  5914. $("#" + Select2Id).find(".select2-selection__rendered").find(".select2-selection__choice").removeClass("bg-success");
  5915. $("#" + Select2Id).find(".select2-selection__rendered").find("[title='" + DisplayText + "']").addClass("bg-success");
  5916. instance.IsclickedSelect2Caret = true;
  5917. $('#xaxis_select').on('select2:opening', function (e) {
  5918. instance.select2_Opening(e, ElementId, DisplayText, instance.ChartAxis.Horizontal);
  5919. });
  5920. $('#yaxis_select').on('select2:opening', function (e) {
  5921. instance.select2_Opening(e, ElementId, DisplayText, instance.ChartAxis.Vertical);
  5922. });
  5923. $('#groupby_select').on('select2:opening', function (e) {
  5924. instance.select2_Opening(e, ElementId, DisplayText, instance.ChartAxis.GroupBy);
  5925. });
  5926. let html = "";
  5927. var Aggr = Unibase.Platform.Analytics.Reports.Enums.AggregationType.none;
  5928. var Sortby = "none";
  5929. var DisplayText = DisplayText;
  5930. var Aggregation = instance._reportBuilder.getAggregationsByDataTypes($("#li_" + ElementId).find("#ColDataType").text());
  5931. for (var i = 0; i < Aggregation.length; i++) {
  5932. if (i == 0) {
  5933. Aggr = Aggregation[i].Value;
  5934. }
  5935. if (Select2Id == instance.ChartAxis.GroupBy && Aggregation[i].AggrType == "year") {
  5936. var html2 = `<div class="dropdown-menu open-right-side" style="width:120px">
  5937. <a class="dropdown-item font-13 pr-0 pl-0 Aggregation_Year_` + DisplayText + `" id="Aggr_Year_` + DisplayText + `_Prev_1Yr" onclick="javascript: Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().changeAggregationYear_chart(` + ElementId + `, '` + DisplayText + `', '` + Aggregation[i].Value + `',1); " href="javascript: "><i class="dropdown-icon"></i><span> Prev 1 Year <i class="dropdown-icon fa fa-check pull-right hidden text-primary mt-2 mr-0" style="font-size:12px;" id="DropDown_Year_Prev_1Yr_InSelect2_` + DisplayText + `"></i></span></a>
  5938. <a class="dropdown-item font-13 pr-0 pl-0 Aggregation_Year_` + DisplayText + `" id="Aggr_Year_` + DisplayText + `_Prev_2Yrs" onclick="javascript: Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().changeAggregationYear_chart(` + ElementId + `, '` + DisplayText + `', '` + Aggregation[i].Value + `',2); " href="javascript: "><i class="dropdown-icon"></i><span> Prev 2 Years <i class="dropdown-icon fa fa-check pull-right hidden text-primary mt-2 mr-0" style="font-size:12px;" id="DropDown_Year_Prev_2Yrs_InSelect2_` + DisplayText + `"></i></span></a>
  5939. <a class="dropdown-item font-13 pr-0 pl-0 Aggregation_Year_` + DisplayText + `" id="Aggr_Year_` + DisplayText + `_Prev_3Yrs" onclick="javascript: Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().changeAggregationYear_chart(` + ElementId + `, '` + DisplayText + `', '` + Aggregation[i].Value + `',3); " href="javascript: "><i class="dropdown-icon"></i><span> Prev 3 Years <i class="dropdown-icon fa fa-check pull-right hidden text-primary mt-2 mr-0" style="font-size:12px;" id="DropDown_Year_Prev_3Yrs_InSelect2_` + DisplayText + `"></i></span></a>
  5940. <a class="dropdown-item font-13 pr-0 pl-0 Aggregation_Year_` + DisplayText + `" id="Aggr_Year_` + DisplayText + `_Prev_4Yrs" onclick="javascript: Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().changeAggregationYear_chart(` + ElementId + `, '` + DisplayText + `', '` + Aggregation[i].Value + `',4); " href="javascript: "><i class="dropdown-icon"></i><span> Prev 4 Years <i class="dropdown-icon fa fa-check pull-right hidden text-primary mt-2 mr-0" style="font-size:12px;" id="DropDown_Year_Prev_4Yrs_InSelect2_` + DisplayText + `"></i></span></a>
  5941. </div>`;
  5942. }
  5943. html += `<a class="dropdown-item font-13 pr-0 pl-0 Aggregation_` + DisplayText + `" id="Aggr_` + DisplayText + `_` + Aggregation[i].Value + `" onclick="javascript: Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().changeAggregation_chart(` + ElementId + `, '` + DisplayText + `', '` + Select2Id + `',` + Aggregation[i].Value + `); " href="javascript: "><i class="dropdown-icon"></i><span>` + Aggregation[i].AggrType + `<i class="dropdown-icon fa fa-check pull-right hidden text-primary mt-2 mr-0" style="font-size:12px;" id="DropDown_` + Aggregation[i].Value + `_InSelect2_` + DisplayText + `"></i></span></a>`;
  5944. }
  5945. $("#" + Select2Id).find('#dropdown_Aggregation_' + DisplayText).find(".dropdown-menu").html(html);
  5946. if (Select2Id == instance.ChartAxis.GroupBy && Aggregation[i - 1].AggrType == "year") {
  5947. $("#" + Select2Id).find('#dropdown_Aggregation_' + DisplayText).find("#Aggr_" + DisplayText + "_" + Analytics.Reports.Enums.AggregationType.year).prepend(html2);
  5948. $("#" + Select2Id).find('#dropdown_Aggregation_' + DisplayText).find("#Aggr_" + DisplayText + "_" + Analytics.Reports.Enums.AggregationType.year).addClass("sub-dropdown-menu show-on-hover").removeAttr("onclick");
  5949. }
  5950. if (Select2Id == instance.ChartAxis.Horizontal) {
  5951. $("#YAxis").css("z-index", "0");
  5952. $("#GroupBy").css("z-index", "0");
  5953. $("#XAxis").removeAttr("style");
  5954. let Index = instance.getIndexByDisplayText(DisplayText, instance.ChartAxis.Horizontal);
  5955. Aggr = instance.xaxisColumns[Index].Aggregation;
  5956. Sortby = instance.xaxisColumns[Index].SortOrder;
  5957. DisplayText = instance.xaxisColumns[Index].DisplayText;
  5958. let IsFilterable = instance.xaxisColumns[Index].IsFilterable;
  5959. instance.DropDownValueSetInSelect2_chart(DisplayText, IsFilterable, Aggr, Sortby);
  5960. }
  5961. else if (Select2Id == instance.ChartAxis.Vertical) {
  5962. $("#GroupBy").css("z-index", "0");
  5963. $("#XAxis").css("z-index", "0");
  5964. $("#YAxis").removeAttr("style");
  5965. let Index = instance.getIndexByDisplayText(DisplayText, instance.ChartAxis.Vertical);
  5966. Aggr = instance.yaxisColumns[Index].Aggregation;
  5967. Sortby = instance.yaxisColumns[Index].SortOrder;
  5968. DisplayText = instance.yaxisColumns[Index].DisplayText;
  5969. let IsFilterable = instance.yaxisColumns[Index].IsFilterable;
  5970. instance.DropDownValueSetInSelect2_chart(DisplayText, IsFilterable, Aggr, Sortby);
  5971. }
  5972. else {
  5973. $("#XAxis, #YAxis, #GroupBy").removeAttr("style");
  5974. let Index = instance.getIndexByDisplayText(DisplayText, instance.ChartAxis.GroupBy);
  5975. Aggr = instance.groupColumns[Index].Aggregation;
  5976. Sortby = instance.groupColumns[Index].SortOrder;
  5977. DisplayText = instance.groupColumns[Index].DisplayText;
  5978. let IsFilterable = instance.groupColumns[Index].IsFilterable;
  5979. instance.DropDownValueSetInSelect2_chart(DisplayText, IsFilterable, Aggr, Sortby);
  5980. }
  5981. $("#" + Select2Id).find("#DisplayText_" + DisplayText).val(DisplayText);
  5982. $("#" + Select2Id).find("#DisplayText_" + DisplayText).focus();
  5983. }
  5984. select2_Opening(e, ElementId, DisplayText, Select2Id) {
  5985. var instance = this;
  5986. for (var i = 0; i < $("#" + Select2Id).find(".dropdown-menu_" + DisplayText).children().length; i++) {
  5987. if ($("#" + Select2Id).find("[title='" + DisplayText + "']").find(".dropdown-toggle").attr("aria-expanded") == "true") {
  5988. e.preventDefault();
  5989. }
  5990. else {
  5991. $("#" + Select2Id).find(".select2-selection__rendered").find("[title='" + DisplayText + "']").removeClass("bg-success");
  5992. }
  5993. }
  5994. if (instance.IsclickedSelect2Caret == true) {
  5995. e.preventDefault();
  5996. instance.IsclickedSelect2Caret = false;
  5997. }
  5998. else {
  5999. $("#" + Select2Id).find(".select2-selection__rendered").find("[title='" + DisplayText + "']").removeClass("bg-success");
  6000. }
  6001. }
  6002. DropDownValueSetInSelect2_chart(DisplayText, IsFilterable, Aggr, Sortby) {
  6003. var instance = this;
  6004. if (IsFilterable == true)
  6005. $("#DropDown_IsFilterableInSelect2_" + DisplayText).removeClass('hidden');
  6006. else
  6007. $("#DropDown_IsFilterableInSelect2_" + DisplayText).addClass('hidden');
  6008. if (Aggr == 0)
  6009. $("#DropDown_" + Aggr + "_InSelect2_" + DisplayText).removeClass('hidden');
  6010. else
  6011. $("#DropDown_" + Aggr + "_InSelect2_" + DisplayText).removeClass('hidden');
  6012. $("#DropDown_IsAscInSelect2_" + DisplayText).addClass('hidden');
  6013. $("#DropDown_IsDescInSelect2_" + DisplayText).addClass('hidden');
  6014. if (Sortby == "Asc") {
  6015. $("#DropDown_IsAscInSelect2_" + DisplayText).removeClass('hidden');
  6016. $("#DropDown_IsDesc_" + DisplayText).addClass('hidden');
  6017. }
  6018. else if (Sortby == "Desc") {
  6019. $("#DropDown_IsDescInSelect2_" + DisplayText).removeClass('hidden');
  6020. $("#DropDown_IsAsc_" + DisplayText).addClass('hidden');
  6021. }
  6022. else {
  6023. $("#DropDown_IsAscInSelect2_" + DisplayText).addClass('hidden');
  6024. $("#DropDown_IsDescInSelect2_" + DisplayText).addClass('hidden');
  6025. }
  6026. }
  6027. showOrHideColumns_chart(ColumnId, DisplayText, Select2Id) {
  6028. var instance = this;
  6029. let IsHidden = false;
  6030. let ColumnName = "";
  6031. if ($("#" + Select2Id).find(".select2-selection__rendered").find("[title='" + DisplayText + "']").find("#ShowOrHideColumn").text() == "Hide Column") {
  6032. $("#" + Select2Id).find(".select2-selection__rendered").find("[title='" + DisplayText + "']").find("#ShowOrHideColumn").text("Show Column");
  6033. $("#" + Select2Id).find(".select2-selection__rendered").find("[title='" + DisplayText + "']").find("#DropDown_Eye_EyeSlash").removeClass("fa-eye-slash").addClass("fa-eye");
  6034. IsHidden = true;
  6035. }
  6036. else {
  6037. $("#" + Select2Id).find(".select2-selection__rendered").find("[title='" + DisplayText + "']").find("#ShowOrHideColumn").text("Hide Column");
  6038. $("#" + Select2Id).find(".select2-selection__rendered").find("[title='" + DisplayText + "']").find("#DropDown_Eye_EyeSlash").addClass("fa-eye-slash").removeClass("fa-eye");
  6039. if (DisplayText == "") {
  6040. DisplayText = DisplayText;
  6041. }
  6042. IsHidden = false;
  6043. }
  6044. if (Select2Id == instance.ChartAxis.Horizontal) {
  6045. let Index = instance.getIndexByDisplayText(DisplayText, instance.ChartAxis.Horizontal);
  6046. instance.xaxisColumns[Index].IsHidden = IsHidden;
  6047. ColumnName = instance.xaxisColumns[Index].ColumnName;
  6048. }
  6049. else if (Select2Id == instance.ChartAxis.Vertical) {
  6050. let Index = instance.getIndexByDisplayText(DisplayText, instance.ChartAxis.Vertical);
  6051. instance.yaxisColumns[Index].IsHidden = IsHidden;
  6052. ColumnName = instance.yaxisColumns[Index].ColumnName;
  6053. }
  6054. else {
  6055. let Index = instance.getIndexByDisplayText(DisplayText, instance.ChartAxis.GroupBy);
  6056. instance.groupColumns[Index].IsHidden = IsHidden;
  6057. ColumnName = instance.groupColumns[Index].ColumnName;
  6058. }
  6059. instance._reportBuilder.table.toggleColumn(ColumnName);
  6060. $(".select2-selection__rendered").find("[title='" + DisplayText + "']").removeClass("bg-success");
  6061. }
  6062. changeDisplayText_chart(DisplayText, Select2Id) {
  6063. var instance = this;
  6064. let ColId = 0;
  6065. let ColName = "";
  6066. let DisplayText_New = $("#" + Select2Id).find("#DisplayText_" + DisplayText).val().toString();
  6067. var Index_DisplayTextExists = -1;
  6068. var Index = -1;
  6069. var arryName = [];
  6070. if (Select2Id == instance.ChartAxis.Horizontal) {
  6071. Index_DisplayTextExists = instance.getIndexByDisplayText(DisplayText_New, instance.ChartAxis.Horizontal);
  6072. Index = instance.getIndexByDisplayText(DisplayText, instance.ChartAxis.Horizontal);
  6073. arryName = instance.xaxisColumns;
  6074. ColId = instance.xaxisColumns[Index].ColumnId;
  6075. ColName = instance.xaxisColumns[Index].ColumnName;
  6076. }
  6077. else if (Select2Id == instance.ChartAxis.Vertical) {
  6078. Index_DisplayTextExists = instance.getIndexByDisplayText(DisplayText_New, instance.ChartAxis.Vertical);
  6079. Index = instance.getIndexByDisplayText(DisplayText, instance.ChartAxis.Vertical);
  6080. arryName = instance.yaxisColumns;
  6081. ColId = instance.yaxisColumns[Index].ColumnId;
  6082. ColName = instance.yaxisColumns[Index].ColumnName;
  6083. }
  6084. else {
  6085. Index_DisplayTextExists = instance.getIndexByDisplayText(DisplayText_New, instance.ChartAxis.GroupBy);
  6086. Index = instance.getIndexByDisplayText(DisplayText, instance.ChartAxis.GroupBy);
  6087. arryName = instance.groupColumns;
  6088. ColId = instance.groupColumns[Index].ColumnId;
  6089. ColName = instance.groupColumns[Index].ColumnName;
  6090. }
  6091. if (DisplayText_New != "" && DisplayText_New.indexOf(" ") == -1) {
  6092. let selCol_Index = instance._reportBuilder.getIndexByAliasName_selectedColumnsArray(DisplayText_New);
  6093. if (selCol_Index == -1) {
  6094. arryName[Index].DisplayText = DisplayText_New;
  6095. $("#" + Select2Id).find(".select2-selection__rendered").find("[title='" + DisplayText + "']").attr("title", DisplayText_New);
  6096. instance.coordinate_DropDown(Select2Id);
  6097. }
  6098. else {
  6099. let x_index = instance.getIndexByDisplayText(DisplayText_New, instance.ChartAxis.Horizontal);
  6100. let y_index = instance.getIndexByDisplayText(DisplayText_New, instance.ChartAxis.Vertical);
  6101. let grp_index = instance.getIndexByDisplayText(DisplayText_New, instance.ChartAxis.GroupBy);
  6102. let Select2Id = "";
  6103. if (x_index != -1) {
  6104. Select2Id = instance.ChartAxis.Horizontal;
  6105. }
  6106. if (y_index != -1) {
  6107. Select2Id = instance.ChartAxis.Vertical;
  6108. }
  6109. if (grp_index != -1) {
  6110. Select2Id = instance.ChartAxis.GroupBy;
  6111. }
  6112. $("#DisplayText_" + DisplayText).val(DisplayText);
  6113. alert("Column - " + DisplayText_New + " already exists in " + Select2Id + " select2. Please change display text and try again");
  6114. return false;
  6115. }
  6116. }
  6117. else {
  6118. $("#DisplayText_" + DisplayText).val(DisplayText);
  6119. alert("Display text of column - '" + ColName + "' shouldn't be empty and shouldn't contain spaces");
  6120. return false;
  6121. }
  6122. let SelCols_Index = instance._reportBuilder.getIndexByAliasName_selectedColumnsArray(DisplayText);
  6123. instance._reportBuilder.selectedColumns[SelCols_Index].DisplayText = DisplayText_New;
  6124. instance._reportBuilder.load_data(instance._reportBuilder.table);
  6125. var len = 0;
  6126. instance.removeColumn_ColorsArray(DisplayText);
  6127. instance.addColumnColors();
  6128. }
  6129. resetSelect2Columns(elementId) {
  6130. var instance = this;
  6131. switch (elementId) {
  6132. case 'sortby_select':
  6133. instance._reportBuilder.SortColumns = [];
  6134. instance._reportBuilder.stringifyed_SortColumns = "";
  6135. $("#sort_selected_columns").html("");
  6136. instance._reportBuilder.load_data(instance._reportBuilder.table);
  6137. break;
  6138. case 'groupby_select':
  6139. instance._chartBuilder.groupColumns = [];
  6140. for (var i = 0; i < instance._reportBuilder.selectedColumns.length; i++) {
  6141. var s_col = instance._reportBuilder.selectedColumns[i];
  6142. if (s_col.GroupBy) {
  6143. s_col.GroupBy = false;
  6144. }
  6145. else {
  6146. s_col.Aggregation = Analytics.Reports.Enums.AggregationType.none;
  6147. }
  6148. }
  6149. $("#groupby_selected_columns").html("");
  6150. instance._reportBuilder.load_data(instance._reportBuilder.table);
  6151. break;
  6152. case 'categories_select':
  6153. $("#categories_selected_columns").html("");
  6154. instance._reportBuilder.Categories = [];
  6155. for (var i = 0; i < instance._reportBuilder.selectedColumns.length; i++) {
  6156. var s_col = instance._reportBuilder.selectedColumns[i];
  6157. if (s_col.GroupByCategory)
  6158. s_col.GroupByCategory = false;
  6159. }
  6160. instance._reportBuilder.load_data(instance._reportBuilder.table);
  6161. break;
  6162. case 'xaxis_select':
  6163. instance._chartBuilder.xaxisColumns = [];
  6164. $("#xaxis_selected_columns").html("");
  6165. break;
  6166. case 'yaxis_select':
  6167. instance._chartBuilder.yaxisColumns = [];
  6168. $("#yaxis_selected_columns").html("");
  6169. break;
  6170. case 'dynamicFilter_select':
  6171. instance._reportBuilder.dynamicFilters = [];
  6172. $("#dynamic-list-group-wrapper").html("");
  6173. instance._reportBuilder.load_data(instance._reportBuilder.table);
  6174. break;
  6175. }
  6176. }
  6177. removeColumn_ColorsArray(DisplayText) {
  6178. var instance = this;
  6179. var ApplColValueColor = instance.appliedColumnValueColor;
  6180. for (var key in ApplColValueColor) {
  6181. if (key.includes(DisplayText)) {
  6182. delete ApplColValueColor[key];
  6183. ApplColValueColor.length = ApplColValueColor.length - 1;
  6184. }
  6185. }
  6186. var ApplColColor = instance.appliedColumnColor;
  6187. for (var key in ApplColColor) {
  6188. if (key.includes(DisplayText)) {
  6189. delete ApplColColor[key];
  6190. ApplColColor.length = ApplColColor.length - 1;
  6191. }
  6192. }
  6193. }
  6194. removeColumn_Select2(ColumnId, aliasName, Select2Id) {
  6195. var instance = this;
  6196. instance.removeColumn_ColorsArray(aliasName);
  6197. if (Select2Id == instance.ChartAxis.GroupBy) {
  6198. instance._reportBuilder.pivot.PivotRows = [];
  6199. }
  6200. let value = $('#' + Select2Id.toLowerCase() + '_select').val();
  6201. let index = 0;
  6202. let XAxis_Index = -1, YAxis_Index = -1, GroupBy_Index = -1;
  6203. for (var i = 0; i < value.length; i++) {
  6204. if (parseInt(value[i]) == ColumnId) {
  6205. index = i;
  6206. break;
  6207. }
  6208. }
  6209. let Sel_Index = instance._reportBuilder.getIndexByAliasName_selectedColumnsArray(aliasName);
  6210. let ColName = instance._reportBuilder.selectedColumns[Sel_Index].ColumnName;
  6211. value.splice(index, 1);
  6212. $(".select2-selection__rendered").find("[title='" + aliasName + "']").removeClass("bg-success");
  6213. if (Select2Id == instance.ChartAxis.Horizontal) {
  6214. XAxis_Index = instance.getIndexByDisplayText(aliasName, instance.ChartAxis.Horizontal);
  6215. instance.xaxisColumns.splice(XAxis_Index, 1);
  6216. $('#' + Select2Id.toLowerCase() + '_select').val(value).trigger("change");
  6217. }
  6218. else if (Select2Id == instance.ChartAxis.Vertical) {
  6219. YAxis_Index = instance.getIndexByDisplayText(aliasName, instance.ChartAxis.Vertical);
  6220. instance.yaxisColumns.splice(YAxis_Index, 1);
  6221. var len = $("#" + Select2Id.toLowerCase() + "_select").find("option[value='" + ColumnId + "']").length;
  6222. if (len >= 2) {
  6223. $("#" + Select2Id.toLowerCase() + "_select").find("option[value='" + ColumnId + "']")[len - 2].remove();
  6224. $("#" + Select2Id.toLowerCase() + "_select").find("option[value='" + ColumnId + "']")[len - 2].remove();
  6225. }
  6226. else {
  6227. $('#' + Select2Id.toLowerCase() + '_select').val(value).trigger("change");
  6228. }
  6229. }
  6230. else {
  6231. GroupBy_Index = instance.getIndexByDisplayText(aliasName, "GroupBy");
  6232. instance.groupColumns.splice(GroupBy_Index, 1);
  6233. $('#' + Select2Id.toLowerCase() + '_select').val(value).trigger("change");
  6234. }
  6235. XAxis_Index = instance.getIndexByDisplayText(aliasName, instance.ChartAxis.Horizontal);
  6236. YAxis_Index = instance.getIndexByDisplayText(aliasName, instance.ChartAxis.Vertical);
  6237. GroupBy_Index = instance.getIndexByDisplayText(aliasName, instance.ChartAxis.GroupBy);
  6238. if (XAxis_Index == -1 && YAxis_Index == -1 && GroupBy_Index == -1) {
  6239. instance._reportBuilder.selectedColumns.splice(Sel_Index, 1);
  6240. instance._reportBuilder.table.deleteColumn(aliasName);
  6241. instance._reportBuilder.load_data(instance._reportBuilder.table);
  6242. }
  6243. setTimeout(function () {
  6244. instance.coordinate_DropDown(Select2Id);
  6245. if (Select2Id == "YAxis") {
  6246. $("#" + Select2Id.toLowerCase() + "_select").append('<option value="' + ColumnId + '">' + ColName + '</option>');
  6247. }
  6248. }, 100);
  6249. }
  6250. changeAggregation_chart(ColumnId, DisplayText, Select2Id, AggrValue) {
  6251. return __awaiter(this, void 0, void 0, function* () {
  6252. var instance = this;
  6253. if (Select2Id == instance.ChartAxis.Horizontal) {
  6254. let Index = instance.getIndexByDisplayText(DisplayText, instance.ChartAxis.Horizontal);
  6255. instance.xaxisColumns[Index].Aggregation = AggrValue;
  6256. }
  6257. else if (Select2Id == instance.ChartAxis.Vertical) {
  6258. let Index = instance.getIndexByDisplayText(DisplayText, instance.ChartAxis.Vertical);
  6259. instance.yaxisColumns[Index].Aggregation = AggrValue;
  6260. }
  6261. else {
  6262. let Index = instance.getIndexByDisplayText(DisplayText, instance.ChartAxis.GroupBy);
  6263. instance.groupColumns[Index].Aggregation = AggrValue;
  6264. }
  6265. let sel_Index = instance._reportBuilder.getIndexByAliasName_selectedColumnsArray(DisplayText);
  6266. instance._reportBuilder.selectedColumns[sel_Index].Aggregation = AggrValue;
  6267. $(".select2-selection__rendered").find("[title='" + DisplayText + "']").removeClass("bg-success");
  6268. yield instance._reportBuilder.load_data(instance._reportBuilder.table);
  6269. instance.addColumnColors();
  6270. });
  6271. }
  6272. changeAggregationYear_chart(ColumnId, DisplayText, AggrValue, YearComparisonType) {
  6273. return __awaiter(this, void 0, void 0, function* () {
  6274. var instance = this;
  6275. let Index = instance.getIndexByDisplayText(DisplayText, "GroupBy");
  6276. let ColumnName = instance.groupColumns[Index].ColumnName;
  6277. instance.groupColumns[Index].YearComparisonType = YearComparisonType;
  6278. instance.groupColumns[Index].Aggregation = Number(AggrValue);
  6279. let sel_Index = instance._reportBuilder.getIndexByAliasName_selectedColumnsArray(DisplayText);
  6280. instance._reportBuilder.selectedColumns[sel_Index].YearComparisonType = YearComparisonType;
  6281. instance._reportBuilder.selectedColumns[sel_Index].Aggregation = Number(AggrValue);
  6282. yield instance._reportBuilder.getDistinctData(ColumnId, ColumnName, Number(AggrValue));
  6283. $(".select2-selection__rendered").find("[title='" + DisplayText + "']").removeClass("bg-success");
  6284. yield instance._reportBuilder.load_data(instance._reportBuilder.table);
  6285. instance.addColumnColors();
  6286. });
  6287. }
  6288. IsFilterableColumnInSelect2_chart(ColumnId, DisplayText, Select2Id) {
  6289. var instance = this;
  6290. let Index = 0;
  6291. if (Select2Id == instance.ChartAxis.Horizontal) {
  6292. Index = instance.getIndexByDisplayText(DisplayText, instance.ChartAxis.Horizontal);
  6293. let IsFilterable = instance.xaxisColumns[Index].IsFilterable;
  6294. instance.xaxisColumns[Index].IsFilterable = !IsFilterable;
  6295. }
  6296. else if (Select2Id == instance.ChartAxis.Vertical) {
  6297. Index = instance.getIndexByDisplayText(DisplayText, instance.ChartAxis.Vertical);
  6298. let IsFilterable = instance.yaxisColumns[Index].IsFilterable;
  6299. instance.yaxisColumns[Index].IsFilterable = !IsFilterable;
  6300. }
  6301. else {
  6302. Index = instance.getIndexByDisplayText(DisplayText, instance.ChartAxis.GroupBy);
  6303. let IsFilterable = instance.groupColumns[Index].IsFilterable;
  6304. instance.groupColumns[Index].IsFilterable = !IsFilterable;
  6305. }
  6306. Unibase.Platform.Analytics.Components.ReportViewer.Instance().navigationHelper.popup(Index, "", Unibase.Platform.Analytics.Reports.DynamicFilter.Instance(), null, Platform.Helpers.Size.Auto);
  6307. $(".select2-selection__rendered").find("[title='" + DisplayText + "']").removeClass("bg-success");
  6308. }
  6309. changeSortBy_chart(ColumnId, DisplayText, Select2Id, SortByType) {
  6310. var instance = this;
  6311. for (var i = 0; i < instance.xaxisColumns.length; i++) {
  6312. instance.xaxisColumns[i].SortOrder = "none";
  6313. }
  6314. for (var i = 0; i < instance.yaxisColumns.length; i++) {
  6315. instance.yaxisColumns[i].SortOrder = "none";
  6316. }
  6317. for (var i = 0; i < instance.groupColumns.length; i++) {
  6318. instance.groupColumns[i].SortOrder = "none";
  6319. }
  6320. if (Select2Id == instance.ChartAxis.Horizontal) {
  6321. let Index = instance.getIndexByDisplayText(DisplayText, instance.ChartAxis.Horizontal);
  6322. instance.xaxisColumns[Index].SortOrder = SortByType;
  6323. }
  6324. else if (Select2Id == instance.ChartAxis.Vertical) {
  6325. let Index = instance.getIndexByDisplayText(DisplayText, instance.ChartAxis.Vertical);
  6326. instance.yaxisColumns[Index].SortOrder = SortByType;
  6327. }
  6328. else {
  6329. let Index = instance.getIndexByDisplayText(DisplayText, instance.ChartAxis.GroupBy);
  6330. instance.groupColumns[Index].SortOrder = SortByType;
  6331. }
  6332. let Sel_Index = instance._reportBuilder.getIndexByAliasName_selectedColumnsArray(DisplayText);
  6333. instance._reportBuilder.selectedColumns[Sel_Index].SortOrder = SortByType;
  6334. $(".select2-selection__rendered").find("[title='" + DisplayText + "']").removeClass("bg-success");
  6335. instance._reportBuilder.load_data(instance._reportBuilder.table);
  6336. }
  6337. getindexByTooltipArray(ColumnId) {
  6338. var instance = this;
  6339. return instance.toolTipArray.findIndex(x => x.ColumnId == ColumnId);
  6340. }
  6341. pushPivotData() {
  6342. var instance = this;
  6343. var Pivot = instance.groupColumns.filter(g => g.Aggregation == Analytics.Reports.Enums.AggregationType.month || g.Aggregation == Analytics.Reports.Enums.AggregationType.year);
  6344. if (Pivot.length > 0) {
  6345. instance._reportBuilder.pivot.ColumnName = "";
  6346. let Pivot_Agg = instance.yaxisColumns[0];
  6347. if (instance.yaxisColumns.length > 1) {
  6348. alert("While Pivot, need to select only one Y-Axis Column");
  6349. return false;
  6350. }
  6351. if (Pivot_Agg.Aggregation == Analytics.Reports.Enums.AggregationType.none) {
  6352. alert("While Pivot, need to apply aggregation for Y-Axis Column");
  6353. return false;
  6354. }
  6355. instance._reportBuilder.pivot.ColumnName = Pivot[0].ColumnName;
  6356. instance._reportBuilder.pivot.AggColumnName = Pivot_Agg.ColumnName;
  6357. instance._reportBuilder.pivot.AggFuncId = Pivot_Agg.Aggregation;
  6358. instance._reportBuilder.pivot.DateType = Number(Pivot[0].Aggregation);
  6359. }
  6360. else {
  6361. var tenure_len = instance._reportBuilder.TenureReport.length;
  6362. }
  6363. }
  6364. bindChartColumns(chartColumns) {
  6365. var instance = this;
  6366. var _x = [], _y = [], _g = [], _b = [];
  6367. instance.xaxisColumns = [], instance.yaxisColumns = [], instance.groupColumns = [], instance.SelectedValueColorColumns = [], instance.chartBaseColumns = [];
  6368. for (var i = 0; i < chartColumns.length; i++) {
  6369. var chartCol = chartColumns[i];
  6370. let ColId = chartCol.ColumnValue;
  6371. let ColName = chartCol.Name;
  6372. let Color = chartCol.Color;
  6373. const IsNumAbb = chartCol.IsNumAbb;
  6374. var colorType = Unibase.Platform.Analytics.Enums.ColorType;
  6375. instance.CoordinateDisplayText = chartCol.AliasName;
  6376. if (chartCol.IsXaxis == true) {
  6377. _x.push(chartCol.ColumnValue);
  6378. if (chartCol.IsFilterable == true) {
  6379. $("#DropDown_IsFilterableInSelect2_" + chartCol.AliasName).removeClass('hidden');
  6380. if (chartCol.IsFilterable) {
  6381. instance.isFilterable[ColName] = {
  6382. ColumnName: ColName,
  6383. IsFilterable: true
  6384. };
  6385. }
  6386. }
  6387. else {
  6388. $("#DropDown_IsFilterableInSelect2_" + chartCol.AliasName).addClass('hidden');
  6389. }
  6390. let xObj = {
  6391. ColumnId: chartCol.ColumnValue,
  6392. ColumnName: chartCol.Name,
  6393. DisplayText: chartCol.AliasName,
  6394. AliasName: chartCol.AliasName,
  6395. DataType: chartCol.DataType,
  6396. CoordinateTypeId: instance.ChartAxis.Horizontal,
  6397. ColorType: chartCol.ColorAppliedOn,
  6398. divId: "xaxis_selected_columns"
  6399. };
  6400. instance.selected_Coordinate(xObj);
  6401. var index = instance.getIndexByDisplayText(chartCol.AliasName, instance.ChartAxis.Horizontal);
  6402. if (chartCol.AggregationValue != Analytics.Reports.Enums.AggregationType.none) {
  6403. instance.xaxisColumns[index].Aggregation = chartCol.AggregationValue;
  6404. }
  6405. if (chartCol.SortBy != "none") {
  6406. instance.xaxisColumns[index].SortOrder = chartCol.SortBy;
  6407. }
  6408. instance.xaxisColumns[index].IsNumAbb = IsNumAbb;
  6409. $(`#IsNumberAbbrevation_x`).prop('checked', IsNumAbb);
  6410. }
  6411. else if (chartCol.IsYaxis == true) {
  6412. _y.push(chartCol.ColumnValue);
  6413. if (chartCol.IsFilterable == true) {
  6414. $("#DropDown_IsFilterableInSelect2_" + chartCol.AliasName).removeClass('hidden');
  6415. if (chartCol.IsFilterable) {
  6416. instance.isFilterable[ColName] = {
  6417. ColumnName: ColName,
  6418. IsFilterable: true
  6419. };
  6420. }
  6421. }
  6422. else {
  6423. $("#DropDown_IsFilterableInSelect2_" + chartCol.AliasName).addClass('hidden');
  6424. }
  6425. let yObj = {
  6426. ColumnId: chartCol.ColumnValue,
  6427. ColumnName: chartCol.Name,
  6428. DisplayText: chartCol.AliasName,
  6429. AliasName: chartCol.AliasName,
  6430. DataType: chartCol.DataType,
  6431. CoordinateTypeId: instance.ChartAxis.Vertical,
  6432. ColorType: 0,
  6433. divId: "yaxis_selected_columns"
  6434. };
  6435. instance.selected_Coordinate(yObj);
  6436. var index = instance.getIndexByDisplayText(chartCol.AliasName, instance.ChartAxis.Vertical);
  6437. if (chartCol.AggregationValue != Analytics.Reports.Enums.AggregationType.none) {
  6438. instance.yaxisColumns[index].Aggregation = chartCol.AggregationValue;
  6439. }
  6440. if (chartCol.SortBy != "none") {
  6441. instance.yaxisColumns[index].SortOrder = chartCol.SortBy;
  6442. }
  6443. instance.yaxisColumns[index].IsNumAbb = IsNumAbb;
  6444. $(`#IsNumberAbbrevation_y`).prop('checked', IsNumAbb);
  6445. }
  6446. else if (chartCol.IsGroupBy == true) {
  6447. _g.push(chartCol.ColumnValue);
  6448. if (chartCol.IsFilterable == true) {
  6449. $("#DropDown_IsFilterableInSelect2_" + chartCol.AliasName).removeClass('hidden');
  6450. if (chartCol.IsFilterable) {
  6451. instance.isFilterable[ColName] = {
  6452. ColumnName: ColName,
  6453. IsFilterable: true
  6454. };
  6455. }
  6456. }
  6457. else {
  6458. $("#DropDown_IsFilterableInSelect2_" + chartCol.AliasName).addClass('hidden');
  6459. }
  6460. let gObj = {
  6461. ColumnId: chartCol.ColumnValue,
  6462. ColumnName: chartCol.Name,
  6463. DataType: chartCol.DataType,
  6464. DisplayText: chartCol.AliasName,
  6465. AliasName: chartCol.AliasName,
  6466. CoordinateTypeId: instance.ChartAxis.GroupBy,
  6467. ColorType: chartCol.ColorAppliedOn,
  6468. divId: "groupby_selected_columns"
  6469. };
  6470. instance.selected_Coordinate(gObj);
  6471. var index = instance.getIndexByDisplayText(chartCol.AliasName, instance.ChartAxis.GroupBy);
  6472. if (chartCol.AggregationValue != Analytics.Reports.Enums.AggregationType.none) {
  6473. instance.groupColumns[index].Aggregation = chartCol.AggregationValue;
  6474. }
  6475. if (chartCol.SortBy != "none") {
  6476. instance.groupColumns[index].SortOrder = chartCol.SortBy;
  6477. }
  6478. }
  6479. else if (chartCol.IsLineChart == true) {
  6480. _g.push(chartCol.ColumnValue);
  6481. if (chartCol.IsFilterable == true) {
  6482. $("#DropDown_IsFilterableInSelect2_" + chartCol.AliasName).removeClass('hidden');
  6483. if (chartCol.IsFilterable) {
  6484. instance.isFilterable[ColName] = {
  6485. ColumnName: ColName,
  6486. IsFilterable: true
  6487. };
  6488. }
  6489. }
  6490. else {
  6491. $("#DropDown_IsFilterableInSelect2_" + chartCol.AliasName).addClass('hidden');
  6492. }
  6493. let lObj = {
  6494. ColumnId: chartCol.ColumnValue,
  6495. ColumnName: chartCol.Name,
  6496. DataType: chartCol.DataType,
  6497. DisplayText: chartCol.AliasName,
  6498. AliasName: chartCol.AliasName,
  6499. CoordinateTypeId: instance.ChartAxis.LineChart,
  6500. ColorType: chartCol.ColorAppliedOn,
  6501. divId: "line_chart_selected_columns"
  6502. };
  6503. instance.selected_Coordinate(lObj);
  6504. var index = instance.getIndexByDisplayText(chartCol.AliasName, instance.ChartAxis.LineChart);
  6505. if (chartCol.AggregationValue != Analytics.Reports.Enums.AggregationType.none) {
  6506. instance.groupColumns[index].Aggregation = chartCol.AggregationValue;
  6507. }
  6508. if (chartCol.SortBy != "none") {
  6509. instance.lineChartColumns[index].SortOrder = chartCol.SortBy;
  6510. }
  6511. }
  6512. if (chartCol.IsChartBaseColumn) {
  6513. _b.push(chartCol.ColumnValue);
  6514. if (chartCol.IsFilterable == true) {
  6515. $("#DropDown_IsFilterableInSelect2_" + chartCol.AliasName).removeClass('hidden');
  6516. if (chartCol.IsFilterable) {
  6517. instance.isFilterable[ColName] = {
  6518. ColumnName: ColName,
  6519. IsFilterable: true
  6520. };
  6521. }
  6522. }
  6523. else {
  6524. $("#DropDown_IsFilterableInSelect2_" + chartCol.AliasName).addClass('hidden');
  6525. }
  6526. let lObj = {
  6527. ColumnId: chartCol.ColumnValue,
  6528. ColumnName: chartCol.Name,
  6529. DataType: chartCol.DataType,
  6530. DisplayText: chartCol.AliasName,
  6531. AliasName: chartCol.AliasName,
  6532. CoordinateTypeId: instance.ChartAxis.BaseColumn,
  6533. ColorType: chartCol.ColorAppliedOn,
  6534. divId: "base_column_selected_columns"
  6535. };
  6536. instance.selected_Coordinate(lObj);
  6537. var index = instance.getIndexByDisplayText(chartCol.AliasName, instance.ChartAxis.BaseColumn);
  6538. if (chartCol.SortBy && chartCol.SortBy != "none") {
  6539. instance.lineChartColumns[index].SortOrder = chartCol.SortBy;
  6540. }
  6541. instance.coordinate_DropDown(instance.ChartAxis.ChartBase);
  6542. }
  6543. if (chartCol.Color != null) {
  6544. instance.chartViewer_Colors(chartCol.Color, chartCol.ColumnValue, chartCol.Name);
  6545. }
  6546. if (chartCol.IsLineChart == true) {
  6547. _g.push(chartCol.ColumnValue);
  6548. if (chartCol.IsFilterable == true) {
  6549. $("#DropDown_IsFilterableInSelect2_" + chartCol.AliasName).removeClass('hidden');
  6550. if (chartCol.IsFilterable) {
  6551. instance.isFilterable[ColName] = {
  6552. ColumnName: ColName,
  6553. IsFilterable: true
  6554. };
  6555. }
  6556. }
  6557. else {
  6558. $("#DropDown_IsFilterableInSelect2_" + chartCol.AliasName).addClass('hidden');
  6559. }
  6560. let lObj = {
  6561. ColumnId: chartCol.ColumnValue,
  6562. ColumnName: chartCol.Name,
  6563. DataType: chartCol.DataType,
  6564. DisplayText: chartCol.AliasName,
  6565. AliasName: chartCol.AliasName,
  6566. CoordinateTypeId: instance.ChartAxis.LineChart,
  6567. ColorType: chartCol.ColorAppliedOn,
  6568. divId: "line_chart_selected_columns"
  6569. };
  6570. instance.selected_Coordinate(lObj);
  6571. var index = instance.getIndexByDisplayText(chartCol.AliasName, instance.ChartAxis.LineChart);
  6572. if (chartCol.AggregationValue != Analytics.Reports.Enums.AggregationType.none) {
  6573. instance.groupColumns[index].Aggregation = chartCol.AggregationValue;
  6574. }
  6575. if (chartCol.SortBy != "none") {
  6576. instance.lineChartColumns[index].SortOrder = chartCol.SortBy;
  6577. }
  6578. }
  6579. }
  6580. instance.coordinate_DropDown(instance.ChartAxis.Horizontal);
  6581. instance.coordinate_DropDown(instance.ChartAxis.Vertical);
  6582. instance.coordinate_DropDown(instance.ChartAxis.GroupBy);
  6583. instance.CoordinateDisplayText = "";
  6584. }
  6585. reportColumns(crtObj, columns) {
  6586. var instance = this;
  6587. let isTable = this._reportBuilder.reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Table ? true : false;
  6588. for (var i = 0; i < columns.length; i++) {
  6589. var col = crtObj.ReportColumns.find(x => x.AliasName == columns[i]["DisplayText"]) ? true : false;
  6590. let rpCol = instance._reportBuilder.selectedColumns.find(x => x.AliasName == columns[i].AliasName);
  6591. if (col != true) {
  6592. var aggr = instance._reportBuilder.selectedColumns.find(x => x.DisplayText == columns[i]["DisplayText"]);
  6593. var sort = instance._reportBuilder.SortColumns.find(x => x.DisplayText == columns[i]["DisplayText"]);
  6594. let ccol = new ReportColumn();
  6595. ccol.ColumnValue = Number(isTable ? columns[i]["ColumnId"] : rpCol.ColumnId);
  6596. ccol.ReportColumnName = columns[i]["ColumnName"];
  6597. ccol.AliasName = columns[i]["AliasName"];
  6598. ccol.DisplayText = columns[i]["DisplayText"];
  6599. ccol.Isvisible = columns[i]["IsHidden"];
  6600. ccol.AggrFuncId = (aggr) ? aggr.Aggregation : columns[i]["Aggregation"];
  6601. ccol.GroupBy = columns[i]["GroupBy"];
  6602. ccol.SortType = (sort) ? sort.SortOrder : columns[i]["SortOrder"];
  6603. ccol.YearComparisonType = columns[i]["YearComparisonType"];
  6604. ccol.DlColumnName = rpCol && rpCol.DlColumnName;
  6605. ccol.DataListColumnName = rpCol && rpCol.DataListColumnName;
  6606. crtObj.ReportColumns.push(ccol);
  6607. }
  6608. }
  6609. return crtObj;
  6610. }
  6611. chartPreview(ChartTypeName, ChartTypeId) {
  6612. var instance = this;
  6613. instance.ChartTypeId = ChartTypeId, instance.ChartTypeName = ChartTypeName;
  6614. instance.Dataset = [], instance.XaxisData = [];
  6615. if (instance._reportBuilder.pivot.ColumnName) {
  6616. instance.chartType('myChart');
  6617. }
  6618. else {
  6619. instance.ChartSelectedColumns = instance._chartBuilder.coordinate_Elements(true, true, true, true, true, true);
  6620. instance._reportBuilder.load_data(instance._reportBuilder.table);
  6621. instance.loadSortColumnsSelect2();
  6622. }
  6623. }
  6624. chartData() {
  6625. var instance = this;
  6626. var sortColumns = [];
  6627. var totalColumns = [];
  6628. instance.fileCacheHelper.loadJsFile("platform/analytics/managers/reportmanager.js", function () {
  6629. instance.fileCacheHelper.loadJsFile('platform/analytics/enums/charttype.js', function () {
  6630. instance.fileCacheHelper.loadJsFile("platform/core/infos/status.js", function () {
  6631. instance.ChartSelectedColumns = instance._chartBuilder.coordinate_Elements(true, true, true, true, true, true);
  6632. for (var i = 0; i < instance._reportBuilder.SortColumns.length; i++) {
  6633. var colName = instance._reportBuilder.SortColumns[i].DisplayText;
  6634. let chartIdx = instance.ChartSelectedColumns.findIndex(x => x.AliasName == colName);
  6635. let reportIdx = instance._reportBuilder.selectedColumns.findIndex(x => x.AliasName == colName);
  6636. if (chartIdx == -1 && reportIdx != -1) {
  6637. let rpCol = instance._reportBuilder.selectedColumns[reportIdx];
  6638. sortColumns.push({
  6639. Aggregation: rpCol.Aggregation,
  6640. AliasName: rpCol.AliasName,
  6641. ChartColumnId: 0,
  6642. ColorType: 1,
  6643. ColumnId: 0,
  6644. ColumnValue: 0,
  6645. ColumnName: rpCol.ColumnName,
  6646. DataType: rpCol.DataType,
  6647. DisplayText: rpCol.DisplayText,
  6648. GroupBy: rpCol.GroupBy,
  6649. IsBaseColumn: false,
  6650. IsFilterable: false,
  6651. IsHidden: !rpCol.Isvisible,
  6652. IsLineChart: false,
  6653. SortOrder: instance._reportBuilder.SortColumns[i].SortOrder,
  6654. XAxis: true,
  6655. YAxis: false,
  6656. });
  6657. }
  6658. }
  6659. let crtObj = new ReportObject();
  6660. crtObj.DataListId = instance._reportBuilder.DataListId;
  6661. crtObj.TopRecords = Number($("#txt_totalrecords").val());
  6662. crtObj.StaticFilter = instance._reportBuilder.queryBuilderString;
  6663. crtObj.SortColumns = instance._reportBuilder.stringifyed_SortColumns;
  6664. crtObj.FromDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_FromDate;
  6665. crtObj.ToDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_ToDate;
  6666. crtObj.TopRecords = instance._reportBuilder.topRecords;
  6667. crtObj.ReportTypeId = instance._reportBuilder.reportType;
  6668. totalColumns = instance.ChartSelectedColumns.concat(sortColumns);
  6669. instance.reportColumns(crtObj, totalColumns);
  6670. if (crtObj.ReportColumns.length != 0) {
  6671. instance._reportManager.getTableData(crtObj).then(function (response) {
  6672. if (response.status == Unibase.Data.Status.Success) {
  6673. if (response.result != "") {
  6674. var res = JSON.parse(response.result);
  6675. if (res.Data != "")
  6676. var data = JSON.parse(res.Data);
  6677. if (instance.isColumnRename)
  6678. instance._reportBuilder.load_data(instance._reportBuilder.table);
  6679. else if (instance.yaxisColumns.length != 0)
  6680. instance._reportBuilder.table.replaceData(data);
  6681. instance.ChartData = data;
  6682. instance.chart_dataSet();
  6683. }
  6684. }
  6685. else {
  6686. return MessageHelper.Instance().showError(response.message, "div_ReportBuilderErrorMessage");
  6687. }
  6688. });
  6689. }
  6690. });
  6691. });
  6692. });
  6693. }
  6694. chartColumns() {
  6695. var instance = this;
  6696. instance._reportBuilder.ChartColumns = [];
  6697. for (var c = 0; c < instance.ChartSelectedColumns.length; c++) {
  6698. var TableColors = false;
  6699. let chartSelectedColumn = instance.ChartSelectedColumns[c];
  6700. if (instance.colorApplyColumn.length > 0)
  6701. TableColors = instance.colorApplyColumn.find(x => x.ColumnName == chartSelectedColumn.ColumnName) ? true : false;
  6702. var Columncolor = null;
  6703. var ColumnValueColors = null;
  6704. let colors;
  6705. if ((chartSelectedColumn.IsXAxis != undefined && chartSelectedColumn.IsXAxis != true) || (chartSelectedColumn.XAxis != undefined && chartSelectedColumn.XAxis != true)) {
  6706. var col = instance.Colors[chartSelectedColumn.DisplayText];
  6707. if (col != undefined)
  6708. colors = col.colors;
  6709. }
  6710. else {
  6711. colors = "";
  6712. }
  6713. var tooltip = instance.toolTipArray.find(x => x.AliasName == chartSelectedColumn.AliasName);
  6714. instance._reportBuilder.ChartColumns.push({
  6715. Name: chartSelectedColumn.ColumnName || chartSelectedColumn.Name,
  6716. AliasName: chartSelectedColumn.AliasName,
  6717. ColumnValue: Number(chartSelectedColumn.ColumnId) || Number(chartSelectedColumn.ColumnValue),
  6718. DataType: chartSelectedColumn.DataType,
  6719. AggregationValue: chartSelectedColumn.Aggregation || chartSelectedColumn.AggregationValue,
  6720. Color: colors,
  6721. SortBy: chartSelectedColumn.SortOrder,
  6722. IsToolTip: tooltip ? true : false,
  6723. IsXaxis: chartSelectedColumn.XAxis || chartSelectedColumn.IsXaxis,
  6724. IsYaxis: chartSelectedColumn.YAxis || chartSelectedColumn.IsYaxis,
  6725. IsGroupBy: chartSelectedColumn.GroupBy || chartSelectedColumn.IsGroupBy,
  6726. IsLineChart: chartSelectedColumn.IsLineChart,
  6727. IsFilterable: chartSelectedColumn.IsFilterable,
  6728. ColorAppliedOn: chartSelectedColumn.ColorType || chartSelectedColumn.ColorAppliedOn,
  6729. IsChartBaseColumn: chartSelectedColumn.IsBaseColumn,
  6730. IsNumAbb: chartSelectedColumn.IsNumAbb == undefined ? true : chartSelectedColumn.IsNumAbb,
  6731. });
  6732. }
  6733. }
  6734. colourNameToHex(colour) {
  6735. var colours = {
  6736. "aliceblue": "#f0f8ff", "antiquewhite": "#faebd7", "aqua": "#00ffff", "aquamarine": "#7fffd4", "azure": "#f0ffff",
  6737. "beige": "#f5f5dc", "bisque": "#ffe4c4", "black": "#000000", "blanchedalmond": "#ffebcd", "blue": "#0000ff", "blueviolet": "#8a2be2", "brown": "#a52a2a", "burlywood": "#deb887",
  6738. "cadetblue": "#5f9ea0", "chartreuse": "#7fff00", "chocolate": "#d2691e", "coral": "#ff7f50", "cornflowerblue": "#6495ed", "cornsilk": "#fff8dc", "crimson": "#dc143c", "cyan": "#00ffff",
  6739. "darkblue": "#00008b", "darkcyan": "#008b8b", "darkgoldenrod": "#b8860b", "darkgray": "#a9a9a9", "darkgreen": "#006400", "darkkhaki": "#bdb76b", "darkmagenta": "#8b008b", "darkolivegreen": "#556b2f",
  6740. "darkorange": "#ff8c00", "darkorchid": "#9932cc", "darkred": "#8b0000", "darksalmon": "#e9967a", "darkseagreen": "#8fbc8f", "darkslateblue": "#483d8b", "darkslategray": "#2f4f4f", "darkturquoise": "#00ced1",
  6741. "darkviolet": "#9400d3", "deeppink": "#ff1493", "deepskyblue": "#00bfff", "dimgray": "#696969", "dodgerblue": "#1e90ff",
  6742. "firebrick": "#b22222", "floralwhite": "#fffaf0", "forestgreen": "#228b22", "fuchsia": "#ff00ff",
  6743. "gainsboro": "#dcdcdc", "ghostwhite": "#f8f8ff", "gold": "#ffd700", "goldenrod": "#daa520", "gray": "#808080", "green": "#008000", "greenyellow": "#adff2f",
  6744. "honeydew": "#f0fff0", "hotpink": "#ff69b4",
  6745. "indianred ": "#cd5c5c", "indigo": "#4b0082", "ivory": "#fffff0", "khaki": "#f0e68c",
  6746. "lavender": "#e6e6fa", "lavenderblush": "#fff0f5", "lawngreen": "#7cfc00", "lemonchiffon": "#fffacd", "lightblue": "#add8e6", "lightcoral": "#f08080", "lightcyan": "#e0ffff", "lightgoldenrodyellow": "#fafad2",
  6747. "lightgrey": "#d3d3d3", "lightgreen": "#90ee90", "lightpink": "#ffb6c1", "lightsalmon": "#ffa07a", "lightseagreen": "#20b2aa", "lightskyblue": "#87cefa", "lightslategray": "#778899", "lightsteelblue": "#b0c4de",
  6748. "lightyellow": "#ffffe0", "lime": "#00ff00", "limegreen": "#32cd32", "linen": "#faf0e6",
  6749. "magenta": "#ff00ff", "maroon": "#800000", "mediumaquamarine": "#66cdaa", "mediumblue": "#0000cd", "mediumorchid": "#ba55d3", "mediumpurple": "#9370d8", "mediumseagreen": "#3cb371", "mediumslateblue": "#7b68ee",
  6750. "mediumspringgreen": "#00fa9a", "mediumturquoise": "#48d1cc", "mediumvioletred": "#c71585", "midnightblue": "#191970", "mintcream": "#f5fffa", "mistyrose": "#ffe4e1", "moccasin": "#ffe4b5",
  6751. "navajowhite": "#ffdead", "navy": "#000080",
  6752. "oldlace": "#fdf5e6", "olive": "#808000", "olivedrab": "#6b8e23", "orange": "#ffa500", "orangered": "#ff4500", "orchid": "#da70d6",
  6753. "palegoldenrod": "#eee8aa", "palegreen": "#98fb98", "paleturquoise": "#afeeee", "palevioletred": "#d87093", "papayawhip": "#ffefd5", "peachpuff": "#ffdab9", "peru": "#cd853f", "pink": "#ffc0cb", "plum": "#dda0dd", "powderblue": "#b0e0e6", "purple": "#800080",
  6754. "rebeccapurple": "#663399", "red": "#ff0000", "rosybrown": "#bc8f8f", "royalblue": "#4169e1",
  6755. "saddlebrown": "#8b4513", "salmon": "#fa8072", "sandybrown": "#f4a460", "seagreen": "#2e8b57", "seashell": "#fff5ee", "sienna": "#a0522d", "silver": "#c0c0c0", "skyblue": "#87ceeb", "slateblue": "#6a5acd", "slategray": "#708090", "snow": "#fffafa", "springgreen": "#00ff7f", "steelblue": "#4682b4",
  6756. "tan": "#d2b48c", "teal": "#008080", "thistle": "#d8bfd8", "tomato": "#ff6347", "turquoise": "#40e0d0",
  6757. "violet": "#ee82ee",
  6758. "wheat": "#f5deb3", "white": "#ffffff", "whitesmoke": "#f5f5f5",
  6759. "yellow": "#ffff00", "yellowgreen": "#9acd32", "sky": "#87cefa", "grey": "#808080", "neon": "#eb0450", "pumpkin": "#ff7518", "sun": "#FDB813", "primary": "#007bff", "dark": "#a9a9a9", "smoke": "#738276", "rose": "#ff007f"
  6760. };
  6761. let hexCode = [{ color: "indian red", code: { hex: "#B0171F" }, id: 1 }, { color: "crimson ", code: { hex: "#DC143C " }, id: 2 }, { color: "lightpink ", code: { hex: "#FFB6C1 " }, id: 4 }, { color: "lightpink 1 ", code: { hex: "#FFAEB9 " }, id: 4 }, { color: "lightpink 2 ", code: { hex: "#EEA2AD " }, id: 5 }, { color: "lightpink 3 ", code: { hex: "#CD8C95 " }, id: 6 }, { color: "lightpink 4 ", code: { hex: "#8B5F65 " }, id: 7 }, { color: "pink ", code: { hex: "#FFC0CB " }, id: 8 }, { color: "pink 1", code: { hex: "#FFB5C5 " }, id: 9 }, { color: "pink 2", code: { hex: "#EEA9B8 " }, id: 10 }, { color: "pink 3", code: { hex: "#CD919E " }, id: 11 }, { color: "pink 4", code: { hex: "#8B636C" }, id: 12 }, { color: "palevioletred ", code: { hex: "#DB7093" }, id: 13 }, { color: "palevioletred 1 ", code: { hex: "#FF82AB" }, id: 14 }, { color: "palevioletred 2 ", code: { hex: "#EE799F" }, id: 15 }, { color: "palevioletred 3 ", code: { hex: "#CD6889" }, id: 16 }, { color: "palevioletred 4 ", code: { hex: "#8B475D" }, id: 17 }, { color: "lavenderblush 1 (lavenderblush) ", code: { hex: "#FFF0F5" }, id: 18 }, { color: "lavenderblush 2 ", code: { hex: "#EEE0E5" }, id: 19 }, { color: "lavenderblush 3 ", code: { hex: "#CDC1C5" }, id: 20 }, { color: "lavenderblush 4 ", code: { hex: "#8B8386" }, id: 21 }, { color: "violetred 1 ", code: { hex: "#FF3E96" }, id: 22 }, { color: "violetred 2 ", code: { hex: "#EE3A8C" }, id: 23 }, { color: "violetred 3 ", code: { hex: "#CD3278" }, id: 24 }, { color: "violetred 4 ", code: { hex: "#8B2252" }, id: 25 }, { color: "hotpink ", code: { hex: "#FF69B4" }, id: 26 }, { color: "hotpink 1 ", code: { hex: "#FF6EB4" }, id: 27 }, { color: "hotpink 2 ", code: { hex: "#EE6AA7" }, id: 28 }, { color: "hotpink 3 ", code: { hex: "#CD6090" }, id: 29 }, { color: "hotpink 4 ", code: { hex: "#8B3A62" }, id: 30 }, { color: "raspberry ", code: { hex: "#872657" }, id: 31 }, { color: "deeppink 1 (deeppink) ", code: { hex: "#FF1493" }, id: 32 }, { color: "deeppink 2 ", code: { hex: "#EE1289" }, id: 33 }, { color: "deeppink 3 ", code: { hex: "#CD1076" }, id: 34 }, { color: "deeppink 4 ", code: { hex: "#8B0A50" }, id: 35 }, { color: "maroon 1 ", code: { hex: "#FF34B3" }, id: 36 }, { color: "maroon 2 ", code: { hex: "#EE30A7" }, id: 37 }, { color: "maroon 3 ", code: { hex: "#CD2990" }, id: 38 }, { color: "mediumvioletred", code: { hex: "#C71585" }, id: 39 }, { color: "violetred ", code: { hex: "#D02090" }, id: 40 }, { color: "orchid ", code: { hex: "#DA70D6" }, id: 41 }, { color: "orchid 1 ", code: { hex: "#FF83FA" }, id: 42 }, { color: "orchid 2 ", code: { hex: "#EE7AE9" }, id: 43 }, { color: "orchid 3 ", code: { hex: "#CD69C9" }, id: 44 }, { color: "orchid 4 ", code: { hex: "#8B4789" }, id: 45 }, { color: "thistle ", code: { hex: "#D8BFD8" }, id: 46 }, { color: "thistle 1 ", code: { hex: "#FFE1FF" }, id: 47 }, { color: "thistle 2 ", code: { hex: "#EED2EE" }, id: 48 }, { color: "thistle 3 ", code: { hex: "#CDB5CD" }, id: 49 }, { color: "thistle 4 ", code: { hex: "#8B7B8B" }, id: 50 }, { color: "plum 1 ", code: { hex: "#FFBBFF" }, id: 51 }, { color: "plum 2 ", code: { hex: "#EEAEEE" }, id: 52 }, { color: "plum 3 ", code: { hex: "#CD96CD" }, id: 53 }, { color: "plum 4 ", code: { hex: "#8B668B" }, id: 54 }, { color: "plum ", code: { hex: "#DDA0DD" }, id: 55 }, { color: "violet ", code: { hex: "#EE82EE" }, id: 56 }, { color: "magenta (fuchsia*) ", code: { hex: "#FF00FF" }, id: 57 }, { color: "magenta 2 ", code: { hex: "#EE00EE" }, id: 58 }, { color: "magenta 3 ", code: { hex: "#CD00CD" }, id: 59 }, { color: "magenta 4 (darkmagenta) ", code: { hex: "#8B008B" }, id: 60 }, { color: "purple* ", code: { hex: "#800080" }, id: 61 }, { color: "mediumorchid ", code: { hex: "#BA55D3" }, id: 62 }, { color: "mediumorchid 1 ", code: { hex: "#E066FF" }, id: 63 }, { color: "mediumorchid 2 ", code: { hex: "#D15FEE" }, id: 64 }, { color: "mediumorchid 3 ", code: { hex: "#B452CD" }, id: 65 }, { color: "mediumorchid 4 ", code: { hex: "#7A378B" }, id: 66 }, { color: "darkviolet ", code: { hex: "#9400D3" }, id: 67 }, { color: "darkorchid ", code: { hex: "#9932CC" }, id: 68 }, { color: "darkorchid 1 ", code: { hex: "#BF3EFF" }, id: 69 }, { color: "darkorchid 2 ", code: { hex: "#B23AEE" }, id: 70 }, { color: "darkorchid 3 ", code: { hex: "#9A32CD" }, id: 71 }, { color: "darkorchid 4 ", code: { hex: "#68228B" }, id: 72 }, { color: "indigo ", code: { hex: "#4B0082" }, id: 73 }, { color: "blueviolet ", code: { hex: "#8A2BE2" }, id: 74 }, { color: "purple 1 ", code: { hex: "#9B30FF" }, id: 75 }, { color: "purple 2 ", code: { hex: "#912CEE" }, id: 76 }, { color: "purple 3 ", code: { hex: "#7D26CD" }, id: 77 }, { color: "purple 4 ", code: { hex: "#551A8B" }, id: 78 }, { color: "mediumpurple ", code: { hex: "#9370DB" }, id: 79 }, { color: "mediumpurple 1 ", code: { hex: "#AB82FF" }, id: 80 }, { color: "mediumpurple 2 ", code: { hex: "#9F79EE" }, id: 81 }, { color: "mediumpurple 3 ", code: { hex: "#8968CD" }, id: 82 }, { color: "mediumpurple 4 ", code: { hex: "#5D478B" }, id: 83 }, { color: "darkslateblue ", code: { hex: "#483D8B" }, id: 84 }, { color: "lightslateblue ", code: { hex: "#8470FF" }, id: 85 }, { color: "mediumslateblue ", code: { hex: "#7B68EE" }, id: 86 }, { color: "slateblue ", code: { hex: "#6A5ACD" }, id: 87 }, { color: "slateblue 1 ", code: { hex: "#836FFF" }, id: 88 }, { color: "slateblue 2 ", code: { hex: "#7A67EE" }, id: 89 }, { color: "slateblue 3 ", code: { hex: "#6959CD" }, id: 90 }, { color: "slateblue 4 ", code: { hex: "#473C8B" }, id: 91 }, { color: "ghostwhite ", code: { hex: "#F8F8FF" }, id: 92 }, { color: "lavender ", code: { hex: "#E6E6FA" }, id: 93 }, { color: "blue* ", code: { hex: "#0000FF" }, id: 94 }, { color: "blue 2 ", code: { hex: "#0000EE" }, id: 95 }, { color: "blue 3 (mediumblue) ", code: { hex: "#0000CD" }, id: 96 }, { color: "blue 4 (darkblue) ", code: { hex: "#00008B" }, id: 97 }, { color: "navy* ", code: { hex: "#000080" }, id: 98 }, { color: "midnightblue ", code: { hex: "#191970" }, id: 99 }, { color: "cobalt ", code: { hex: "#3D59AB" }, id: 100 }, { color: "royalblue ", code: { hex: "#4169E1" }, id: 101 }, { color: "royalblue 1 ", code: { hex: "#4876FF" }, id: 102 }, { color: "royalblue 2 ", code: { hex: "#436EEE" }, id: 103 }, { color: "royalblue 3 ", code: { hex: "#3A5FCD" }, id: 104 }, { color: "royalblue 4 ", code: { hex: "#27408B" }, id: 105 }, { color: "cornflowerblue ", code: { hex: "#6495ED" }, id: 106 }, { color: "lightsteelblue ", code: { hex: "#B0C4DE" }, id: 107 }, { color: "lightsteelblue 1 ", code: { hex: "#CAE1FF" }, id: 108 }, { color: "lightsteelblue 2 ", code: { hex: "#BCD2EE" }, id: 109 }, { color: "lightsteelblue 3 ", code: { hex: "#A2B5CD" }, id: 110 }, { color: "lightsteelblue 4 ", code: { hex: "#6E7B8B" }, id: 111 }, { color: "lightslategray ", code: { hex: "#778899" }, id: 112 }, { color: "slategray ", code: { hex: "#708090" }, id: 113 }, { color: "slategray 1 ", code: { hex: "#C6E2FF" }, id: 114 }, { color: "slategray 2 ", code: { hex: "#B9D3EE" }, id: 115 }, { color: "slategray 3 ", code: { hex: "#9FB6CD" }, id: 116 }, { color: "slategray 4 ", code: { hex: "#6C7B8B" }, id: 117 }, { color: "dodgerblue 1 (dodgerblue)", code: { hex: "#1E90FF" }, id: 118 }, { color: "dodgerblue 2", code: { hex: "#1C86EE" }, id: 119 }, { color: "dodgerblue 3", code: { hex: "#1874CD" }, id: 120 }, { color: "dodgerblue 4", code: { hex: "#104E8B" }, id: 121 }, { color: "aliceblue", code: { hex: "#F0F8FF" }, id: 122 }, { color: "steelblue", code: { hex: "#4682B4" }, id: 123 }, { color: "steelblue 1", code: { hex: "#63B8FF" }, id: 124 }, { color: "steelblue 2", code: { hex: "#5CACEE" }, id: 125 }, { color: "steelblue 3", code: { hex: "#4F94CD" }, id: 126 }, { color: "steelblue 4", code: { hex: "#36648B" }, id: 127 }, { color: "lightskyblue", code: { hex: "#87CEFA" }, id: 128 }, { color: "lightskyblue 1", code: { hex: "#B0E2FF" }, id: 129 }, { color: "lightskyblue 2", code: { hex: "#A4D3EE" }, id: 130 }, { color: "lightskyblue 3", code: { hex: "#8DB6CD" }, id: 131 }, { color: "lightskyblue 4", code: { hex: "#607B8B" }, id: 132 }, { color: "skyblue 1", code: { hex: "#87CEFF" }, id: 133 }, { color: "skyblue 2", code: { hex: "#7EC0EE" }, id: 134 }, { color: "skyblue 3", code: { hex: "#6CA6CD" }, id: 135 }, { color: "skyblue 4", code: { hex: "#4A708B" }, id: 136 }, { color: "skyblue", code: { hex: "#87CEEB" }, id: 137 }, { color: "deepskyblue 1 (deepskyblue)", code: { hex: "#00BFFF" }, id: 138 }, { color: "deepskyblue 2", code: { hex: "#00B2EE" }, id: 139 }, { color: "deepskyblue 3", code: { hex: "#009ACD" }, id: 140 }, { color: "deepskyblue 4", code: { hex: "#00688B" }, id: 141 }, { color: "peacock", code: { hex: "#33A1C9" }, id: 142 }, { color: "lightblue", code: { hex: "#ADD8E6" }, id: 143 }, { color: "lightblue 1", code: { hex: "#BFEFFF" }, id: 144 }, { color: "lightblue 2", code: { hex: "#B2DFEE" }, id: 145 }, { color: "lightblue 3", code: { hex: "#9AC0CD" }, id: 146 }, { color: "lightblue 4", code: { hex: "#68838B" }, id: 147 }, { color: "powderblue", code: { hex: "#B0E0E6" }, id: 148 }, { color: "cadetblue 1", code: { hex: "#98F5FF" }, id: 149 }, { color: "cadetblue 2", code: { hex: "#8EE5EE" }, id: 150 }, { color: "cadetblue 3", code: { hex: "#7AC5CD" }, id: 151 }, { color: "cadetblue 4", code: { hex: "#53868B" }, id: 152 }, { color: "turquoise 1", code: { hex: "#00F5FF" }, id: 153 }, { color: "turquoise 2", code: { hex: "#00E5EE" }, id: 154 }, { color: "turquoise 3", code: { hex: "#00C5CD" }, id: 155 }, { color: "turquoise 4", code: { hex: "#00868B" }, id: 156 }, { color: "cadetblue", code: { hex: "#5F9EA0" }, id: 157 }, { color: "darkturquoise", code: { hex: "#00CED1" }, id: 158 }, { color: "azure 1 (azure)", code: { hex: "#F0FFFF" }, id: 159 }, { color: "azure 2", code: { hex: "#E0EEEE" }, id: 160 }, { color: "azure 3", code: { hex: "#C1CDCD" }, id: 161 }, { color: "azure 4", code: { hex: "#838B8B" }, id: 162 }, { color: "lightcyan 1 (lightcyan)", code: { hex: "#E0FFFF" }, id: 163 }, { color: "lightcyan 2", code: { hex: "#D1EEEE" }, id: 164 }, { color: "lightcyan 3", code: { hex: "#B4CDCD" }, id: 165 }, { color: "lightcyan 4", code: { hex: "#7A8B8B" }, id: 166 }, { color: "paleturquoise 1", code: { hex: "#BBFFFF" }, id: 167 }, { color: "paleturquoise 2 (paleturquoise)", code: { hex: "#AEEEEE" }, id: 168 }, { color: "paleturquoise 3", code: { hex: "#96CDCD" }, id: 169 }, { color: "paleturquoise 4", code: { hex: "#668B8B" }, id: 170 }, { color: "darkslategray", code: { hex: "#2F4F4F" }, id: 171 }, { color: "darkslategray 1", code: { hex: "#97FFFF" }, id: 172 }, { color: "darkslategray 2", code: { hex: "#8DEEEE" }, id: 173 }, { color: "darkslategray 3", code: { hex: "#79CDCD" }, id: 174 }, { color: "darkslategray 4", code: { hex: "#528B8B" }, id: 175 }, { color: "cyan / aqua*", code: { hex: "#00FFFF" }, id: 176 }, { color: "cyan 2", code: { hex: "#00EEEE" }, id: 177 }, { color: "cyan 3", code: { hex: "#00CDCD" }, id: 178 }, { color: "cyan 4 (darkcyan)", code: { hex: "#008B8B" }, id: 179 }, { color: "teal*", code: { hex: "#008080" }, id: 180 }, { color: "mediumturquoise", code: { hex: "#48D1CC" }, id: 181 }, { color: "lightseagreen", code: { hex: "#20B2AA" }, id: 182 }, { color: "manganeseblue", code: { hex: "#03A89E" }, id: 183 }, { color: "turquoise", code: { hex: "#40E0D0" }, id: 184 }, { color: "coldgrey", code: { hex: "#808A87" }, id: 185 }, { color: "turquoiseblue", code: { hex: "#00C78C" }, id: 186 }, { color: "aquamarine 1 (aquamarine)", code: { hex: "#7FFFD4" }, id: 187 }, { color: "aquamarine 2", code: { hex: "#76EEC6" }, id: 188 }, { color: "aquamarine 3 (mediumaquamarine)", code: { hex: "#66CDAA" }, id: 189 }, { color: "aquamarine 4", code: { hex: "#458B74" }, id: 190 }, { color: "mediumspringgreen", code: { hex: "#00FA9A" }, id: 191 }, { color: "mintcream", code: { hex: "#F5FFFA" }, id: 192 }, { color: "springgreen", code: { hex: "#00FF7F" }, id: 193 }, { color: "springgreen 1", code: { hex: "#00EE76" }, id: 194 }, { color: "springgreen 2", code: { hex: "#00CD66" }, id: 195 }, { color: "springgreen 3", code: { hex: "#008B45" }, id: 196 }, { color: "mediumseagreen", code: { hex: "#3CB371" }, id: 197 }, { color: "seagreen 1", code: { hex: "#54FF9F" }, id: 198 }, { color: "seagreen 2", code: { hex: "#4EEE94" }, id: 199 }, { color: "seagreen 3", code: { hex: "#43CD80" }, id: 200 }, { color: "seagreen 4 (seagreen)", code: { hex: "#2E8B57" }, id: 201 }, { color: "emeraldgreen", code: { hex: "#00C957" }, id: 202 }, { color: "mint", code: { hex: "#BDFCC9" }, id: 203 }, { color: "cobaltgreen", code: { hex: "#3D9140" }, id: 204 }, { color: "honeydew 1 (honeydew)", code: { hex: "#F0FFF0" }, id: 205 }, { color: "honeydew 2", code: { hex: "#E0EEE0" }, id: 206 }, { color: "honeydew 3", code: { hex: "#C1CDC1" }, id: 207 }, { color: "honeydew 4", code: { hex: "#838B83" }, id: 208 }, { color: "darkseagreen", code: { hex: "#8FBC8F" }, id: 209 }, { color: "darkseagreen 1", code: { hex: "#C1FFC1" }, id: 210 }, { color: "darkseagreen 2", code: { hex: "#B4EEB4" }, id: 211 }, { color: "darkseagreen 3", code: { hex: "#9BCD9B" }, id: 212 }, { color: "darkseagreen 4", code: { hex: "#698B69" }, id: 213 }, { color: "palegreen", code: { hex: "#98FB98" }, id: 214 }, { color: "palegreen 1", code: { hex: "#9AFF9A" }, id: 215 }, { color: "palegreen 2 (lightgreen)", code: { hex: "#90EE90" }, id: 216 }, { color: "palegreen 3", code: { hex: "#7CCD7C" }, id: 217 }, { color: "palegreen 4", code: { hex: "#548B54" }, id: 218 }, { color: "limegreen", code: { hex: "#32CD32" }, id: 219 }, { color: "forestgreen", code: { hex: "#228B22" }, id: 220 }, { color: "green 1 (lime*)", code: { hex: "#00FF00" }, id: 221 }, { color: "green 2", code: { hex: "#00EE00" }, id: 222 }, { color: "green 3", code: { hex: "#00CD00" }, id: 223 }, { color: "green 4", code: { hex: "#008B00" }, id: 224 }, { color: "green*", code: { hex: "#008000" }, id: 225 }, { color: "darkgreen", code: { hex: "#006400" }, id: 226 }, { color: "sapgreen", code: { hex: "#308014" }, id: 227 }, { color: "lawngreen", code: { hex: "#7CFC00" }, id: 228 }, { color: "chartreuse 1 (chartreuse)", code: { hex: "#7FFF00" }, id: 229 }, { color: "chartreuse 2", code: { hex: "#76EE00" }, id: 230 }, { color: "chartreuse 3", code: { hex: "#66CD00" }, id: 231 }, { color: "chartreuse 4", code: { hex: "#458B00" }, id: 232 }, { color: "greenyellow", code: { hex: "#ADFF2F" }, id: 233 }, { color: "darkolivegreen 1", code: { hex: "#CAFF70" }, id: 234 }, { color: "darkolivegreen 2", code: { hex: "#BCEE68" }, id: 235 }, { color: "darkolivegreen 3", code: { hex: "#A2CD5A" }, id: 236 }, { color: "darkolivegreen 4", code: { hex: "#6E8B3D" }, id: 237 }, { color: "darkolivegreen", code: { hex: "#556B2F" }, id: 238 }, { color: "olivedrab", code: { hex: "#6B8E23" }, id: 239 }, { color: "olivedrab 1", code: { hex: "#C0FF3E" }, id: 240 }, { color: "olivedrab 2", code: { hex: "#B3EE3A" }, id: 241 }, { color: "olivedrab 3 (yellowgreen)", code: { hex: "#9ACD32" }, id: 242 }, { color: "olivedrab 4", code: { hex: "#698B22" }, id: 243 }, { color: "ivory 1 (ivory)", code: { hex: "#FFFFF0" }, id: 244 }, { color: "ivory 2", code: { hex: "#EEEEE0" }, id: 245 }, { color: "ivory 3", code: { hex: "#CDCDC1" }, id: 246 }, { color: "ivory 4", code: { hex: "#8B8B83" }, id: 247 }, { color: "beige", code: { hex: "#F5F5DC" }, id: 248 }, { color: "lightyellow 1 (lightyellow)", code: { hex: "#FFFFE0" }, id: 249 }, { color: "lightyellow 2", code: { hex: "#EEEED1" }, id: 250 }, { color: "lightyellow 3", code: { hex: "#CDCDB4" }, id: 251 }, { color: "lightyellow 4", code: { hex: "#8B8B7A" }, id: 252 }, { color: "lightgoldenrodyellow", code: { hex: "#FAFAD2" }, id: 253 }, { color: "yellow 1 (yellow*)", code: { hex: "#FFFF00" }, id: 254 }, { color: "yellow 2", code: { hex: "#EEEE00" }, id: 255 }, { color: "yellow 3", code: { hex: "#CDCD00" }, id: 256 }, { color: "yellow 4", code: { hex: "#8B8B00" }, id: 257 }, { color: "warmgrey", code: { hex: "#808069" }, id: 258 }, { color: "olive*", code: { hex: "#808000" }, id: 259 }, { color: "darkkhaki", code: { hex: "#BDB76B" }, id: 260 }, { color: "khaki 1", code: { hex: "#FFF68F" }, id: 261 }, { color: "khaki 2", code: { hex: "#EEE685" }, id: 262 }, { color: "khaki 3", code: { hex: "#CDC673" }, id: 263 }, { color: "khaki 4", code: { hex: "#8B864E" }, id: 264 }, { color: "khaki", code: { hex: "#F0E68C" }, id: 265 }, { color: "palegoldenrod", code: { hex: "#EEE8AA" }, id: 266 }, { color: "lemonchiffon 1 (lemonchiffon)", code: { hex: "#FFFACD" }, id: 267 }, { color: "lemonchiffon 2", code: { hex: "#EEE9BF" }, id: 268 }, { color: "lemonchiffon 3", code: { hex: "#CDC9A5" }, id: 269 }, { color: "lemonchiffon 4", code: { hex: "#8B8970" }, id: 270 }, { color: "lightgoldenrod 1", code: { hex: "#FFEC8B" }, id: 271 }, { color: "lightgoldenrod 2", code: { hex: "#EEDC82" }, id: 272 }, { color: "lightgoldenrod 3", code: { hex: "#CDBE70" }, id: 273 }, { color: "lightgoldenrod 4", code: { hex: "#8B814C" }, id: 274 }, { color: "banana", code: { hex: "#E3CF57" }, id: 275 }, { color: "gold 1 (gold)", code: { hex: "#FFD700" }, id: 276 }, { color: "gold 2", code: { hex: "#EEC900" }, id: 277 }, { color: "gold 3", code: { hex: "#CDAD00" }, id: 278 }, { color: "gold 4", code: { hex: "#8B7500" }, id: 279 }, { color: "cornsilk 1 (cornsilk)", code: { hex: "#FFF8DC" }, id: 280 }, { color: "cornsilk 2", code: { hex: "#EEE8CD" }, id: 281 }, { color: "cornsilk 3", code: { hex: "#CDC8B1" }, id: 282 }, { color: "cornsilk 4", code: { hex: "#8B8878" }, id: 283 }, { color: "goldenrod", code: { hex: "#DAA520" }, id: 284 }, { color: "goldenrod 1", code: { hex: "#FFC125" }, id: 285 }, { color: "goldenrod 2", code: { hex: "#EEB422" }, id: 286 }, { color: "goldenrod 3", code: { hex: "#CD9B1D" }, id: 287 }, { color: "goldenrod 4", code: { hex: "#8B6914" }, id: 288 }, { color: "darkgoldenrod", code: { hex: "#B8860B" }, id: 289 }, { color: "darkgoldenrod 1", code: { hex: "#FFB90F" }, id: 290 }, { color: "darkgoldenrod 2", code: { hex: "#EEAD0E" }, id: 291 }, { color: "darkgoldenrod 3", code: { hex: "#CD950C" }, id: 292 }, { color: "darkgoldenrod 4", code: { hex: "#8B6508" }, id: 293 }, { color: "orange 1 (orange)", code: { hex: "#FFA500" }, id: 294 }, { color: "orange 2", code: { hex: "#EE9A00" }, id: 295 }, { color: "orange 3", code: { hex: "#CD8500" }, id: 296 }, { color: "orange 4", code: { hex: "#8B5A00" }, id: 297 }, { color: "floralwhite", code: { hex: "#FFFAF0" }, id: 298 }, { color: "oldlace", code: { hex: "#FDF5E6" }, id: 299 }, { color: "wheat", code: { hex: "#F5DEB3" }, id: 300 }, { color: "wheat 1", code: { hex: "#FFE7BA" }, id: 301 }, { color: "wheat 2", code: { hex: "#EED8AE" }, id: 302 }, { color: "wheat 3", code: { hex: "#CDBA96" }, id: 303 }, { color: "wheat 4", code: { hex: "#8B7E66" }, id: 304 }, { color: "moccasin", code: { hex: "#FFE4B5" }, id: 305 }, { color: "papayawhip", code: { hex: "#FFEFD5" }, id: 306 }, { color: "blanchedalmond", code: { hex: "#FFEBCD" }, id: 307 }, { color: "navajowhite 1 (navajowhite)", code: { hex: "#FFDEAD" }, id: 308 }, { color: "navajowhite 2", code: { hex: "#EECFA1" }, id: 309 }, { color: "navajowhite 3", code: { hex: "#CDB38B" }, id: 310 }, { color: "navajowhite 4", code: { hex: "#8B795E" }, id: 311 }, { color: "eggshell", code: { hex: "#FCE6C9" }, id: 312 }, { color: "tan", code: { hex: "#D2B48C" }, id: 313 }, { color: "brick", code: { hex: "#9C661F" }, id: 314 }, { color: "cadmiumyellow", code: { hex: "#FF9912" }, id: 315 }, { color: "antiquewhite", code: { hex: "#FAEBD7" }, id: 316 }, { color: "antiquewhite 1", code: { hex: "#FFEFDB" }, id: 317 }, { color: "antiquewhite 2", code: { hex: "#EEDFCC" }, id: 318 }, { color: "antiquewhite 3", code: { hex: "#CDC0B0" }, id: 319 }, { color: "antiquewhite 4", code: { hex: "#8B8378" }, id: 320 }, { color: "burlywood", code: { hex: "#DEB887" }, id: 321 }, { color: "burlywood 1", code: { hex: "#FFD39B" }, id: 322 }, { color: "burlywood 2", code: { hex: "#EEC591" }, id: 323 }, { color: "burlywood 3", code: { hex: "#CDAA7D" }, id: 324 }, { color: "burlywood 4", code: { hex: "#8B7355" }, id: 325 }, { color: "bisque 1 (bisque)", code: { hex: "#FFE4C4" }, id: 326 }, { color: "bisque 2", code: { hex: "#EED5B7" }, id: 327 }, { color: "bisque 3", code: { hex: "#CDB79E" }, id: 328 }, { color: "bisque 4", code: { hex: "#8B7D6B" }, id: 329 }, { color: "melon", code: { hex: "#E3A869" }, id: 330 }, { color: "carrot", code: { hex: "#ED9121" }, id: 331 }, { color: "darkorange", code: { hex: "#FF8C00" }, id: 332 }, { color: "darkorange 1", code: { hex: "#FF7F00" }, id: 333 }, { color: "darkorange 2", code: { hex: "#EE7600" }, id: 334 }, { color: "darkorange 3", code: { hex: "#CD6600" }, id: 335 }, { color: "darkorange 4", code: { hex: "#8B4500" }, id: 336 }, { color: "orange", code: { hex: "#FF8000" }, id: 337 }, { color: "tan 1", code: { hex: "#FFA54F" }, id: 338 }, { color: "tan 2", code: { hex: "#EE9A49" }, id: 339 }, { color: "tan 3 (peru)", code: { hex: "#CD853F" }, id: 340 }, { color: "tan 4", code: { hex: "#8B5A2B" }, id: 341 }, { color: "linen", code: { hex: "#FAF0E6" }, id: 342 }, { color: "peachpuff 1 (peachpuff)", code: { hex: "#FFDAB9" }, id: 343 }, { color: "peachpuff 2", code: { hex: "#EECBAD" }, id: 344 }, { color: "peachpuff 3", code: { hex: "#CDAF95" }, id: 345 }, { color: "peachpuff 4", code: { hex: "#8B7765" }, id: 346 }, { color: "seashell 1 (seashell)", code: { hex: "#FFF5EE" }, id: 347 }, { color: "seashell 2", code: { hex: "#EEE5DE" }, id: 348 }, { color: "seashell 3", code: { hex: "#CDC5BF" }, id: 349 }, { color: "seashell 4", code: { hex: "#8B8682" }, id: 350 }, { color: "sandybrown", code: { hex: "#F4A460" }, id: 351 }, { color: "rawsienna", code: { hex: "#C76114" }, id: 352 }, { color: "chocolate", code: { hex: "#D2691E" }, id: 353 }, { color: "chocolate 1", code: { hex: "#FF7F24" }, id: 354 }, { color: "chocolate 2", code: { hex: "#EE7621" }, id: 355 }, { color: "chocolate 3", code: { hex: "#CD661D" }, id: 356 }, { color: "chocolate 4 (saddlebrown)", code: { hex: "#8B4513" }, id: 357 }, { color: "ivoryblack", code: { hex: "#292421" }, id: 358 }, { color: "flesh", code: { hex: "#FF7D40" }, id: 359 }, { color: "cadmiumorange", code: { hex: "#FF6103" }, id: 360 }, { color: "burntsienna", code: { hex: "#8A360F" }, id: 361 }, { color: "sienna", code: { hex: "#A0522D" }, id: 362 }, { color: "sienna 1", code: { hex: "#FF8247" }, id: 363 }, { color: "sienna 2", code: { hex: "#EE7942" }, id: 364 }, { color: "sienna 3", code: { hex: "#CD6839" }, id: 365 }, { color: "sienna 4", code: { hex: "#8B4726" }, id: 366 }, { color: "lightsalmon 1 (lightsalmon)", code: { hex: "#FFA07A" }, id: 367 }, { color: "lightsalmon 2", code: { hex: "#EE9572" }, id: 368 }, { color: "lightsalmon 3", code: { hex: "#CD8162" }, id: 369 }, { color: "lightsalmon 4", code: { hex: "#8B5742" }, id: 370 }, { color: "coral", code: { hex: "#FF7F50" }, id: 371 }, { color: "orangered 1 (orangered)", code: { hex: "#FF4500" }, id: 372 }, { color: "orangered 2", code: { hex: "#EE4000" }, id: 373 }, { color: "orangered 3", code: { hex: "#CD3700" }, id: 374 }, { color: "orangered 4", code: { hex: "#8B2500" }, id: 375 }, { color: "sepia", code: { hex: "#5E2612" }, id: 376 }, { color: "darksalmon", code: { hex: "#E9967A" }, id: 377 }, { color: "salmon 1", code: { hex: "#FF8C69" }, id: 378 }, { color: "salmon 2", code: { hex: "#EE8262" }, id: 379 }, { color: "salmon 3", code: { hex: "#CD7054" }, id: 380 }, { color: "salmon 4", code: { hex: "#8B4C39" }, id: 381 }, { color: "coral 1", code: { hex: "#FF7256" }, id: 382 }, { color: "coral 2", code: { hex: "#EE6A50" }, id: 383 }, { color: "coral 3", code: { hex: "#CD5B45" }, id: 384 }, { color: "coral 4", code: { hex: "#8B3E2F" }, id: 385 }, { color: "burntumber", code: { hex: "#8A3324" }, id: 386 }, { color: "tomato 1 (tomato)", code: { hex: "#FF6347" }, id: 387 }, { color: "tomato 2", code: { hex: "#EE5C42" }, id: 388 }, { color: "tomato 3", code: { hex: "#CD4F39" }, id: 389 }, { color: "tomato 4", code: { hex: "#8B3626" }, id: 390 }, { color: "salmon", code: { hex: "#FA8072" }, id: 391 }, { color: "mistyrose 1 (mistyrose)", code: { hex: "#FFE4E1" }, id: 392 }, { color: "mistyrose 2", code: { hex: "#EED5D2" }, id: 393 }, { color: "mistyrose 3", code: { hex: "#CDB7B5" }, id: 394 }, { color: "mistyrose 4", code: { hex: "#8B7D7B" }, id: 395 }, { color: "snow 1 (snow)", code: { hex: "#FFFAFA" }, id: 396 }, { color: "snow 2", code: { hex: "#EEE9E9" }, id: 397 }, { color: "snow 3", code: { hex: "#CDC9C9" }, id: 398 }, { color: "snow 4", code: { hex: "#8B8989" }, id: 399 }, { color: "rosybrown", code: { hex: "#BC8F8F" }, id: 400 }, { color: "rosybrown 1", code: { hex: "#FFC1C1" }, id: 401 }, { color: "rosybrown 2", code: { hex: "#EEB4B4" }, id: 402 }, { color: "rosybrown 3", code: { hex: "#CD9B9B" }, id: 403 }, { color: "rosybrown 4", code: { hex: "#8B6969" }, id: 404 }, { color: "lightcoral", code: { hex: "#F08080" }, id: 405 }, { color: "indianred", code: { hex: "#CD5C5C" }, id: 406 }, { color: "indianred 1", code: { hex: "#FF6A6A" }, id: 407 }, { color: "indianred 2", code: { hex: "#EE6363" }, id: 408 }, { color: "indianred 4", code: { hex: "#8B3A3A" }, id: 409 }, { color: "indianred 3", code: { hex: "#CD5555" }, id: 410 }, { color: "brown", code: { hex: "#A52A2A" }, id: 411 }, { color: "brown 1", code: { hex: "#FF4040" }, id: 412 }, { color: "brown 2", code: { hex: "#EE3B3B" }, id: 413 }, { color: "brown 3", code: { hex: "#CD3333" }, id: 414 }, { color: "brown 4", code: { hex: "#8B2323" }, id: 415 }, { color: "firebrick", code: { hex: "#B22222" }, id: 416 }, { color: "firebrick 1", code: { hex: "#FF3030" }, id: 417 }, { color: "firebrick 2", code: { hex: "#EE2C2C" }, id: 418 }, { color: "firebrick 3", code: { hex: "#CD2626" }, id: 419 }, { color: "firebrick 4", code: { hex: "#8B1A1A" }, id: 420 }, { color: "red 1 (red*)", code: { hex: "#FF0000" }, id: 421 }, { color: "red 2", code: { hex: "#EE0000" }, id: 422 }, { color: "red 3", code: { hex: "#CD0000" }, id: 423 }, { color: "red 4 (darkred)", code: { hex: "#8B0000" }, id: 424 }, { color: "maroon*", code: { hex: "#800000" }, id: 425 }, { color: "sgi beet", code: { hex: "#8E388E" }, id: 426 }, { color: "sgi slateblue", code: { hex: "#7171C6" }, id: 427 }, { color: "sgi lightblue", code: { hex: "#7D9EC0" }, id: 428 }, { color: "sgi teal", code: { hex: "#388E8E" }, id: 429 }, { color: "sgi chartreuse", code: { hex: "#71C671" }, id: 430 }, { color: "sgi olivedrab", code: { hex: "#8E8E38" }, id: 431 }, { color: "sgi brightgray", code: { hex: "#C5C1AA" }, id: 432 }, { color: "sgi salmon", code: { hex: "#C67171" }, id: 433 }, { color: "sgi darkgray", code: { hex: "#555555" }, id: 434 }, { color: "sgi gray 12", code: { hex: "#1E1E1E" }, id: 435 }, { color: "sgi gray 16", code: { hex: "#282828" }, id: 436 }, { color: "sgi gray 32", code: { hex: "#515151" }, id: 437 }, { color: "sgi gray 36", code: { hex: "#5B5B5B" }, id: 438 }, { color: "sgi gray 52", code: { hex: "#848484" }, id: 439 }, { color: "sgi gray 56", code: { hex: "#8E8E8E" }, id: 440 }, { color: "sgi lightgray", code: { hex: "#AAAAAA" }, id: 441 }, { color: "sgi gray 72", code: { hex: "#B7B7B7" }, id: 442 }, { color: "sgi gray 76", code: { hex: "#C1C1C1" }, id: 443 }, { color: "sgi gray 92", code: { hex: "#EAEAEA" }, id: 444 }, { color: "sgi gray 96", code: { hex: "#F4F4F4" }, id: 445 }, { color: "white*", code: { hex: "#FFFFFF" }, id: 446 }, { color: "white smoke (gray 96)", code: { hex: "#F5F5F5" }, id: 447 }, { color: "gainsboro", code: { hex: "#DCDCDC" }, id: 448 }, { color: "lightgrey", code: { hex: "#D3D3D3" }, id: 449 }, { color: "silver*", code: { hex: "#C0C0C0" }, id: 450 }, { color: "darkgray", code: { hex: "#A9A9A9" }, id: 451 }, { color: "gray*", code: { hex: "#808080" }, id: 452 }, { color: "dimgray (gray 42)", code: { hex: "#696969" }, id: 453 }, { color: "black*", code: { hex: "#000000" }, id: 454 }, { color: "gray 99", code: { hex: "#FCFCFC" }, id: 455 }, { color: "gray 98", code: { hex: "#FAFAFA" }, id: 456 }, { color: "gray 97", code: { hex: "#F7F7F7" }, id: 457 }, { color: "white smoke (gray 96)", code: { hex: "#F5F5F5" }, id: 458 }, { color: "gray 95", code: { hex: "#F2F2F2" }, id: 459 }, { color: "gray 94", code: { hex: "#F0F0F0" }, id: 460 }, { color: "gray 93", code: { hex: "#EDEDED" }, id: 461 }, { color: "gray 92", code: { hex: "#EBEBEB" }, id: 462 }, { color: "gray 91", code: { hex: "#E8E8E8" }, id: 463 }, { color: "gray 90", code: { hex: "#E5E5E5" }, id: 464 }, { color: "gray 89", code: { hex: "#E3E3E3" }, id: 465 }, { color: "gray 88", code: { hex: "#E0E0E0" }, id: 466 }, { color: "gray 87", code: { hex: "#DEDEDE" }, id: 467 }, { color: "gray 86", code: { hex: "#DBDBDB" }, id: 468 }, { color: "gray 85", code: { hex: "#D9D9D9" }, id: 469 }, { color: "gray 84", code: { hex: "#D6D6D6" }, id: 470 }, { color: "gray 83", code: { hex: "#D4D4D4" }, id: 471 }, { color: "gray 82", code: { hex: "#D1D1D1" }, id: 472 }, { color: "gray 81", code: { hex: "#CFCFCF" }, id: 473 }, { color: "gray 80", code: { hex: "#CCCCCC" }, id: 474 }, { color: "gray 79", code: { hex: "#C9C9C9" }, id: 475 }, { color: "gray 78", code: { hex: "#C7C7C7" }, id: 476 }, { color: "gray 77", code: { hex: "#C4C4C4" }, id: 477 }, { color: "gray 76", code: { hex: "#C2C2C2" }, id: 478 }, { color: "gray 75", code: { hex: "#BFBFBF" }, id: 479 }, { color: "gray 74", code: { hex: "#BDBDBD" }, id: 480 }, { color: "gray 73", code: { hex: "#BABABA" }, id: 481 }, { color: "gray 72", code: { hex: "#B8B8B8" }, id: 482 }, { color: "gray 71", code: { hex: "#B5B5B5" }, id: 483 }, { color: "gray 70", code: { hex: "#B3B3B3" }, id: 484 }, { color: "gray 69", code: { hex: "#B0B0B0" }, id: 485 }, { color: "gray 68", code: { hex: "#ADADAD" }, id: 486 }, { color: "gray 67", code: { hex: "#ABABAB" }, id: 487 }, { color: "gray 66", code: { hex: "#A8A8A8" }, id: 488 }, { color: "gray 65", code: { hex: "#A6A6A6" }, id: 489 }, { color: "gray 64", code: { hex: "#A3A3A3" }, id: 490 }, { color: "gray 63", code: { hex: "#A1A1A1" }, id: 491 }, { color: "gray 62", code: { hex: "#9E9E9E" }, id: 492 }, { color: "gray 61", code: { hex: "#9C9C9C" }, id: 493 }, { color: "gray 60", code: { hex: "#999999" }, id: 494 }, { color: "gray 59", code: { hex: "#969696" }, id: 495 }, { color: "gray 58", code: { hex: "#949494" }, id: 496 }, { color: "gray 57", code: { hex: "#919191" }, id: 497 }, { color: "gray 56", code: { hex: "#8F8F8F" }, id: 498 }, { color: "gray 55", code: { hex: "#8C8C8C" }, id: 499 }, { color: "gray 54", code: { hex: "#8A8A8A" }, id: 500 }, { color: "gray 53", code: { hex: "#878787" }, id: 501 }, { color: "gray 52", code: { hex: "#858585" }, id: 502 }, { color: "gray 51", code: { hex: "#828282" }, id: 503 }, { color: "gray 50", code: { hex: "#7F7F7F" }, id: 504 }, { color: "gray 49", code: { hex: "#7D7D7D" }, id: 505 }, { color: "gray 48", code: { hex: "#7A7A7A" }, id: 506 }, { color: "gray 47", code: { hex: "#787878" }, id: 507 }, { color: "gray 46", code: { hex: "#757575" }, id: 508 }, { color: "gray 45", code: { hex: "#737373" }, id: 509 }, { color: "gray 44", code: { hex: "#707070" }, id: 510 }, { color: "gray 43", code: { hex: "#6E6E6E" }, id: 511 }, { color: "gray 42", code: { hex: "#6B6B6B" }, id: 512 }, { color: "dimgray (gray 42)", code: { hex: "#696969" }, id: 513 }, { color: "gray 40", code: { hex: "#666666" }, id: 514 }, { color: "gray 39", code: { hex: "#636363" }, id: 515 }, { color: "gray 38", code: { hex: "#616161" }, id: 516 }, { color: "gray 37", code: { hex: "#5E5E5E" }, id: 517 }, { color: "gray 36", code: { hex: "#5C5C5C" }, id: 518 }, { color: "gray 35", code: { hex: "#595959" }, id: 519 }, { color: "gray 34", code: { hex: "#575757" }, id: 520 }, { color: "gray 33", code: { hex: "#545454" }, id: 521 }, { color: "gray 32", code: { hex: "#525252" }, id: 522 }, { color: "gray 31", code: { hex: "#4F4F4F" }, id: 523 }, { color: "gray 30", code: { hex: "#4D4D4D" }, id: 524 }, { color: "gray 29", code: { hex: "#4A4A4A" }, id: 525 }, { color: "gray 28", code: { hex: "#474747" }, id: 526 }, { color: "gray 27", code: { hex: "#454545" }, id: 527 }, { color: "gray 26", code: { hex: "#424242" }, id: 528 }, { color: "gray 25", code: { hex: "#404040" }, id: 529 }, { color: "gray 24", code: { hex: "#3D3D3D" }, id: 530 }, { color: "gray 23", code: { hex: "#3B3B3B" }, id: 531 }, { color: "gray 22", code: { hex: "#383838" }, id: 532 }, { color: "gray 21", code: { hex: "#363636" }, id: 533 }, { color: "gray 20", code: { hex: "#333333" }, id: 534 }, { color: "gray 19", code: { hex: "#303030" }, id: 535 }, { color: "gray 18", code: { hex: "#2E2E2E" }, id: 536 }, { color: "gray 17", code: { hex: "#2B2B2B" }, id: 537 }, { color: "gray 16", code: { hex: "#292929" }, id: 538 }, { color: "gray 15", code: { hex: "#262626" }, id: 539 }, { color: "gray 14", code: { hex: "#242424" }, id: 540 }, { color: "gray 13", code: { hex: "#212121" }, id: 541 }, { color: "gray 12", code: { hex: "#1F1F1F" }, id: 542 }, { color: "gray 11", code: { hex: "#1C1C1C" }, id: 543 }, { color: "gray 10", code: { hex: "#1A1A1A" }, id: 544 }, { color: "gray 9", code: { hex: "#171717" }, id: 545 }, { color: "gray 8", code: { hex: "#141414" }, id: 546 }, { color: "gray 7", code: { hex: "#121212" }, id: 547 }, { color: "gray 6", code: { hex: "#0F0F0F" }, id: 548 }, { color: "gray 5", code: { hex: "#0D0D0D" }, id: 549 }, { color: "gray 4", code: { hex: "#0A0A0A" }, id: 550 }, { color: "gray 3", code: { hex: "#080808" }, id: 551 }, { color: "gray 2", code: { hex: "#050505" }, id: 552 }, { color: "gray 1", code: { hex: "#030303" }, id: 553 }];
  6762. let clr = hexCode.find(x => x.color.toLowerCase().trim() == colour.toLowerCase().trim());
  6763. let clr2 = hexCode.find(x => x.color.toLowerCase().trim().indexOf(colour) > 0);
  6764. if (typeof colours[colour.toLowerCase()]) {
  6765. return colours[colour.toLowerCase()];
  6766. }
  6767. else if (clr) {
  6768. return clr.code.hex;
  6769. }
  6770. else if (clr2) {
  6771. return clr2.code.hex;
  6772. }
  6773. else {
  6774. return false;
  6775. }
  6776. }
  6777. select2TooltipDataBinding() {
  6778. var instance = this;
  6779. var data = instance.selectedDatalistColumns();
  6780. $("#tooltip_select").off('select2:select').off('select2:unselect').off('select2:selecting');
  6781. $("#tooltip_select").select2({
  6782. placeholder: 'Select ToolTip columns',
  6783. data: data,
  6784. }).on('select2:select', function (e) {
  6785. let data = e.params.data;
  6786. let dataType = Number($("#allDatalistColumns #li_" + e.params.data.id + " span.datalist_column").attr('data-column-datatype'));
  6787. var sIndex = instance._reportBuilder.getIndexByAliasName_selectedColumnsArray(data.text);
  6788. if (sIndex == -1) {
  6789. var selCol = new SelectedColumns();
  6790. selCol.ColumnId = Number(data.id);
  6791. selCol.ColumnName = data.text;
  6792. selCol.DisplayText = data.text;
  6793. selCol.AliasName = data.text;
  6794. selCol.DataType = dataType;
  6795. selCol.Isvisible = true;
  6796. instance._reportBuilder._selectedColumns(selCol);
  6797. }
  6798. var tIndex = instance.getIndexByDisplayText_tooltipColumnsArray(data.text);
  6799. if (tIndex == -1) {
  6800. instance.toolTipArray.push({ ColumnId: Number(data.id), ColumnName: data.text, DisplayText: data.text, AliasName: data.text });
  6801. }
  6802. instance.ChartSelectedColumns = instance.coordinate_Elements(true, true, true, true, true, true);
  6803. instance.chartData();
  6804. var html = instance._reportBuilderTemplate.loadToolTipColumn(Number(data.id), data.text, dataType, data.text);
  6805. $("#tab_tooltip #tooltip_selected_columns").append(html);
  6806. instance._reportBuilder.setSelectOption("tooltip_select");
  6807. });
  6808. }
  6809. bindChartBaseColumnSelect2() {
  6810. var data = this.selectedDatalistColumns();
  6811. $("#base_column_select").off('select2:select').off('select2:unselect').off('select2:selecting');
  6812. $("#base_column_select").select2({
  6813. placeholder: 'Select Base Column',
  6814. data: data,
  6815. }).on('select2:select', (e) => {
  6816. let data = e.params.data;
  6817. let dataType = Number($("#allDatalistColumns #li_" + e.params.data.id + " span.datalist_column").attr('data-column-datatype'));
  6818. var sIndex = this.getIndexByAliasName_ChartSelectedColumns(data.text);
  6819. if (sIndex == -1) {
  6820. var selCol = new SelectedColumns();
  6821. selCol.ColumnId = Number(data.id);
  6822. selCol.ColumnName = data.text;
  6823. selCol.DisplayText = data.text;
  6824. selCol.AliasName = data.text;
  6825. selCol.DataType = dataType;
  6826. selCol.Isvisible = true;
  6827. this._reportBuilder._selectedColumns(selCol);
  6828. }
  6829. var tIndex = this.getIndexByDisplayText_BaseColumnsArray(data.text);
  6830. if (tIndex == -1) {
  6831. this.chartBaseColumns.push({ ColumnId: Number(data.id), ColumnName: data.text, DisplayText: data.text, AliasName: data.text });
  6832. }
  6833. this.ChartSelectedColumns = this.coordinate_Elements(true, true, true, true, true, true);
  6834. this.chartData();
  6835. var html = this._reportBuilderTemplate.loadSelect2Column(Number(data.id), data.text, dataType);
  6836. $("#base_column #base_column_selected_columns").append(html);
  6837. this._reportBuilder.setSelectOption("base_column_select");
  6838. });
  6839. }
  6840. loadToolTipRightNav() {
  6841. var instance = this;
  6842. let html = `<div class="bg-white card"> <div class="card-header"><span>Tool Tip</span><button class="btn btn-icon btn-icon-circle btn-icon-style-3 ChartToolTipForm" id="Chart_ToolTip"><i class="fa fa-comment"></i></button></div><div class="card-body pl-2 pr-2 rightnav_body"> <ul id="ultooltips"> </ul> </div> </div>`;
  6843. $("#bl-nav-right-tooltip").html(html);
  6844. instance.loadSelectedColumnsInToolTip_RightNav();
  6845. }
  6846. loadSelectedColumnsInToolTip_RightNav() {
  6847. var instance = this;
  6848. let html = "";
  6849. for (var i = 0; i < instance._reportBuilder.datalistColumnsResponseData.length; i++) {
  6850. var datalistcolumn = instance._reportBuilder.datalistColumnsResponseData[i];
  6851. let checked = "";
  6852. let disabled = "disabled";
  6853. let Index = instance.getindexByTooltipArray(datalistcolumn.ColumnId);
  6854. let displayText = datalistcolumn.ColumnName;
  6855. if (Index != -1) {
  6856. displayText = instance.toolTipArray[Index].DisplayText;
  6857. checked = "checked";
  6858. disabled = "";
  6859. }
  6860. html += `<li class="list-group-item pl-2 pr-2" id="li_tooltip_` + datalistcolumn.ColumnId + `"><div class="btn-group pull-right" style="margin-top:-8px" id="divtooltip_` + datalistcolumn.ColumnId + `"><a class="btn pl-1 pr-1 ` + disabled + `" id="btnEditName" onclick="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().showTooltipEditMode(` + datalistcolumn.ColumnId + `)"><span><i class="fa fa-pencil"></i></span></a><span class="btn pl-1 pr-1"><input type="checkbox" class="chktooltips" ` + checked + ` onclick="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().toolTipCheckBox(` + datalistcolumn.ColumnId + `,'` + datalistcolumn.ColumnName + `')" id="tooltip_checkbox"></span></div><div id="divcolumnname_` + datalistcolumn.ColumnId + `" class="col-sm-9 pl-1 pr-1 input-icons"><span id="tooltipcolumnname"> ` + displayText + ` </span> <input id="tooltipcolumnname_displaytext" class="hidden col-sm-12 form-control" value="` + displayText + `"> <span id="closebutton_tooltip" onclick="Unibase.Platform.Analytics.Charts.ChartBuilder.Instance().closeTooltipEditMode(` + datalistcolumn.ColumnId + `,'` + datalistcolumn.ColumnName + `')" class="fa fa-close font-15 mr-10 field-icon hidden"></span> </div></li>`;
  6861. }
  6862. $("#ultooltips").html(html);
  6863. }
  6864. removeSelectedToolTip(AliasName) {
  6865. var instance = this;
  6866. $("#tooltip_selected_columns #dsl_tool_column_" + AliasName).remove();
  6867. var tIndex = instance.getIndexByDisplayText_tooltipColumnsArray(AliasName);
  6868. var cIdx = instance.getIndexByAliasName_ChartSelectedColumns(AliasName);
  6869. if (tIndex > -1)
  6870. instance.toolTipArray.splice(tIndex, 1);
  6871. if (cIdx > -1)
  6872. instance.ChartSelectedColumns[cIdx].IsToolTip = false;
  6873. }
  6874. toolTipEdit(AliasName) {
  6875. var instance = this;
  6876. var tIndex = instance.getIndexByDisplayText_tooltipColumnsArray(AliasName);
  6877. var sIndex = instance._reportBuilder.getIndexByColumnName_selectedColumnsArray(AliasName);
  6878. var toolTipName = $("#dsl_tool_column_" + AliasName + " #txttooltipedit").val();
  6879. if (tIndex > -1 && sIndex > -1) {
  6880. instance.toolTipArray[tIndex].DisplayText = toolTipName;
  6881. instance._reportBuilder.selectedColumns[sIndex].DisplayText = toolTipName;
  6882. instance.isColumnRename = true;
  6883. }
  6884. instance.chartData();
  6885. }
  6886. loadCategoriesSelect2() {
  6887. var instance = this;
  6888. var data;
  6889. $("#categories_select").off('select2:select').off('select2:unselect').empty();
  6890. data = instance._reportBuilder.getSelectedColumns_Select2_Data();
  6891. $("#categories_select").select2({
  6892. placeholder: 'Select categories columns',
  6893. data: data,
  6894. }).on('select2:select', function (e) {
  6895. let data = e.params.data;
  6896. let dataType = Number($("#allDatalistColumns #li_" + e.params.data.id + " span.datalist_column").attr('data-column-datatype'));
  6897. let Index = instance._reportBuilder.getIndexByColumnName_selectedColumnsArray(data.text);
  6898. if (Index != -1) {
  6899. var sel_col = instance._reportBuilder.selectedColumns[Index];
  6900. if (sel_col)
  6901. var catCol = sel_col.GroupByCategory;
  6902. if (!catCol) {
  6903. if (Index != -1) {
  6904. instance._reportBuilder.selectedColumns[Index].GroupByCategory = true;
  6905. }
  6906. else {
  6907. var selCol = new SelectedColumns();
  6908. selCol.ColumnId = parseInt(data.id);
  6909. selCol.ColumnName = data.text;
  6910. selCol.ColumnIndex = instance._reportBuilder.selectedColumns.length;
  6911. selCol.DataType = dataType;
  6912. selCol.Isvisible = true;
  6913. selCol.GroupBy = false;
  6914. selCol.AliasName = data.text;
  6915. selCol.DisplayText = data.text;
  6916. selCol.GroupByCategory = true;
  6917. instance._reportBuilder._selectedColumns(selCol);
  6918. }
  6919. instance._reportBuilder.Categories = $('#categories_select').select2('data');
  6920. var html = instance._reportBuilderTemplate.loadSelect2Column(Number(e.params.data.id), e.params.data.text, dataType);
  6921. $("#categories_selected_columns").append(html);
  6922. instance._reportBuilder.setSelectOption("categories_select");
  6923. $(".dsl_column_filters").addClass('hidden');
  6924. instance._reportBuilder.stringifyed_SortColumns = instance._reportBuilder.getSortColumnsStringify();
  6925. instance._reportBuilder.load_data(instance._reportBuilder.table);
  6926. }
  6927. else {
  6928. instance._reportBuilder.setSelectOption("categories_select");
  6929. $("#categories_select").select2('close').val("");
  6930. alert("Column - " + data.text + " already exists in categories select2. Please change display text and try again");
  6931. return false;
  6932. }
  6933. }
  6934. });
  6935. }
  6936. sortTooltipColumnsEvent() {
  6937. var tooltipContainer = $("#tooltip_selected_columns");
  6938. if (!tooltipContainer)
  6939. return;
  6940. $("#tooltip_selected_columns").sortable({
  6941. connectWith: "#tooltip_selected_columns",
  6942. cursor: 'move',
  6943. update: (event, ui) => {
  6944. var tooltipColumnElements = $(event.target).children();
  6945. tooltipColumnElements.each((index, ele) => {
  6946. let aliasName = ele.id.replace("dsl_tool_column_", "");
  6947. let colIdx = this.toolTipArray.findIndex(x => x.AliasName == aliasName);
  6948. if (colIdx > -1) {
  6949. this.changeIndexOfElementsInArray(this.toolTipArray, colIdx, index);
  6950. }
  6951. });
  6952. }
  6953. });
  6954. }
  6955. changeIndexOfElementsInArray(arr, fromIndex, toIndex) {
  6956. let element = arr[fromIndex];
  6957. arr.splice(fromIndex, 1);
  6958. arr.splice(toIndex, 0, element);
  6959. }
  6960. updateshowTooltipTitleProp(showTooltip) {
  6961. $("#showtooltipheader_checkbox").prop("checked", showTooltip);
  6962. }
  6963. updateIsDataLabelProp(isDataLabel) {
  6964. $("#isdatalabel").prop("checked", isDataLabel);
  6965. }
  6966. isNumberAbbreviation(axis) {
  6967. const instance = this;
  6968. if (axis) {
  6969. const axisProperty = axis === 'x' ? 'IsXaxis' : 'IsYaxis';
  6970. const isChecked = $(`#IsNumberAbbrevation_${axis}`).prop("checked");
  6971. for (const column of instance._chartBuilder.ChartSelectedColumns) {
  6972. if (column[axisProperty]) {
  6973. column.IsNumAbb = isChecked;
  6974. }
  6975. }
  6976. }
  6977. }
  6978. static Instance() {
  6979. if (this.instance === undefined) {
  6980. this.instance = new ChartBuilder();
  6981. }
  6982. return this.instance;
  6983. }
  6984. }
  6985. Charts.ChartBuilder = ChartBuilder;
  6986. })(Charts = Analytics.Charts || (Analytics.Charts = {}));
  6987. })(Analytics = Platform.Analytics || (Platform.Analytics = {}));
  6988. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  6989. })(Unibase || (Unibase = {}));
  6990. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
  6991. function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  6992. return new (P || (P = Promise))(function (resolve, reject) {
  6993. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  6994. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  6995. function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
  6996. step((generator = generator.apply(thisArg, _arguments || [])).next());
  6997. });
  6998. };
  6999. var Unibase;
  7000. (function (Unibase) {
  7001. let Platform;
  7002. (function (Platform) {
  7003. let Analytics;
  7004. (function (Analytics) {
  7005. let Charts;
  7006. (function (Charts) {
  7007. class ChartViewer extends Analytics.Components._Chart {
  7008. constructor() {
  7009. super();
  7010. this.dynamicParameters = [];
  7011. this.reportManager = Analytics.Managers.ReportManager.Instance();
  7012. this.Filter = [];
  7013. }
  7014. jsFiles() {
  7015. return ["libs/chartjs/chart.min.js"];
  7016. }
  7017. cssFiles() {
  7018. return [
  7019. 'libs/tabulator-tables/css/bootstrap/tabulator_bootstrap4.min.css'
  7020. ];
  7021. }
  7022. html(id, containerid) {
  7023. const instance = this;
  7024. var reportid = id;
  7025. let hidden = 'd-none';
  7026. if (containerid.includes("div_kpireport_") || containerid.includes("_previewreport_")) {
  7027. hidden = '';
  7028. }
  7029. let isRestrictHidden = '';
  7030. if (Unibase.Platform.Membership.Infos.Identity.currentUser.isRestrictedUser) {
  7031. isRestrictHidden = 'd-none';
  7032. }
  7033. let html = `<div class="card mb-0" id="chartViewerWrap_${containerid}"><div class="card-header h-50p pa-10 d-flex justify-content-between align-items-center p-relative viewer-header ViewerHeader_${containerid}"><div class="chart-header-left d-flex align-items-center text-truncate"><a href="javascript:void(0);" id="reportCloseBtn_${containerid}" class="report-close-btn btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover w-30p h-30p mr-10 text-dark d-none" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().closeReportPopup('${containerid}');" data-tooltip="true" title="Close"><span class="btn-icon-wrap"><i data-icon="l"></i></span></a><strong class="ChartName_${containerid} hidden">Chart</strong><span id="ReportTitle_${containerid}" class="font-weight-600 biz-highlight-bg-color text-truncate">Title</span><strong id = "Reportid_${containerid}" class="pl-15 Reportid__dynamicfilter hidden"> Title </strong><strong id = "Reportid_${containerid}" class="pl-15 Reportid__commonfilter hidden"> Title </strong>
  7034. ${instance.currentUser.isAdmin ? `<a class="dp-toggle-icon btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover w-20p h-20p flex-shrink-0 d-none ${!isRestrictHidden ? 'd-xl-block' : ''}" href="javascript:;" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" id="ViewerTypes_${containerid}" class="ViewerTypes_${containerid}"><span class="btn-icon-wrap"><i class="fa fa-caret-down" aria-hidden="true"></i></span></a>
  7035. <div class="dropdown-menu dropdown-menu-left ViewerTypes_dropdown" id="dp_${containerid}_viewertypes"><a class="dropdown-item ddbtn_Edit" href = "javascript:;" title = "Edit" id = "edit_" onclick = "Unibase.Platform.Analytics.Components.ReportViewer.Instance().EditReport(${reportid},0,0,0,'${containerid}');">Edit</a>
  7036. <a href="javascript:;" class="dropdown-item" id="DuplicateTable_${containerid}" onclick = "Unibase.Platform.Analytics.Components.ReportViewer.Instance().EditReport(${reportid},1,0,0,'${containerid}')";>Duplicate</a>
  7037. </div>` : ''}<span class="dropdown pull-right mr-30 sp_widget_create_${containerid}" style = "position:static"></span></div>
  7038. <div class="card-header-right d-flex align-items-center"><a class="btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover w-30p h-30p mr-1 chart-maximize-btn" href="javascript:;" id="chartMaximizeBtn_${containerid}" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().report_ViewAll(${reportid}, 0, 'fullscreen_${containerid}','${containerid}');" data-tooltip="true" title="Maximize Chart"><span class="btn-icon-wrap"><i class="las la-expand font-18"></i></span></a><a class="btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover w-30p h-30p mr-1 chart-minimize-btn d-none" href="javascript:;" id="chartMinimizeBtn_${containerid}" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().closeReportPopup('${containerid}');" data-tooltip="true" title="Minimize Chart"><span class="btn-icon-wrap"><i class="las la-compress font-18"></i></span></a><a class="btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover w-30p h-30p mr-1 d-none link-report-icon" id="linkreport${containerid}" href="javascript:;"><span class="btn-icon-wrap"><i class="las la-table font-18"></i></span></a><div class="filter-dp-wrapper biz-dropdown ${isRestrictHidden} d-none" id="filterDpWrap_${containerid}">
  7039. <a href="javascript:;" class="filter-icon btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover w-30p h-30p" id="filter-icon${containerid}"
  7040. onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().loadDynamicFilters(${reportid},'${containerid}','.BindData_${containerid}')" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" data-tooltip="true" title="Dynamic Filters"><span class="btn-icon-wrap"><i class="las la-filter font-18"></i></span></a>
  7041. <div class="dropdown-menu biz-custom-dropdown biz-filter-dropdown"
  7042. id="biz-filter-dropdown${containerid}" onclick="event.stopPropagation();">
  7043. <div class="filter-dropdown-body biz-custom-scrollbar" id="filter-dropdown-body${containerid}">
  7044. <div id="dynamic-filters${containerid}" class="dynamic-filters-list row mx-0"></div>
  7045. </div>
  7046. <div class="filter-dropdown-footer d-none" id="filter-dropdown-footer${containerid}"><a
  7047. href="javascript:;" class="btn btn-outline-danger btn-sm Filterbuttons"
  7048. id="btn_ClearFilter${containerid}"
  7049. onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().clearDynamicFilters(${reportid},'${containerid}')">Clear</a>
  7050. <div class="actions-btn-group"><a href="javascript:;"
  7051. class="btn btn-outline-primary btn-sm create-filter-btn saveViewAs${containerid}"
  7052. onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().saveViewAs(${reportid})">Create</a>
  7053. <div class="btn-group apply-btn-group toggle-btn ml-15"><a href="javascript:;"
  7054. class="btn btn-outline-primary btn-sm Filterbuttons"
  7055. id="ApplyGlobalFilter${containerid}"
  7056. onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance()._applyfilter(${reportid},'${containerid}')">Apply</a><a
  7057. href="javascript:;"
  7058. class="btn btn-outline-primary btn-sm save-filter-btn saveViewAs${containerid} d-none"
  7059. id="saveViewAs${containerid}"
  7060. onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().saveViewAs(${reportid})">Save</a><button
  7061. type="button" class="btn btn-primary btn-sm dropdown-toggle"
  7062. id="applyToggleBtn${containerid}"></button></div>
  7063. </div>
  7064. </div>
  7065. <div class="filter-dropdown-errmessage text-center d-none"
  7066. id="filter-dropdown-errmessage${containerid}">
  7067. <p class="text-danger">No Filters Found!</p><a href="javascript:;"
  7068. class="btn btn-outline-primary btn-sm mt-10 create-filter-btn saveViewAs${containerid}"
  7069. onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().saveViewAs(${reportid})">Create
  7070. Filter</a>
  7071. </div>
  7072. </div>
  7073. </div>
  7074. </div></div>
  7075. <div class="card-body ChartViewer_${containerid} pa-20"><section class="modal-body pa-0 card_section" id="chartSection_${containerid}"><div class="d-none w-100" id="noChartDataMsg_${containerid}"></div><div class="p-relative" id="ChartCanvasDiv${containerid}"><canvas id="${containerid}-chart-canvas" class="chart-canvas"></canvas></div></section></div>
  7076. </div>`;
  7077. return html;
  7078. }
  7079. load(id, containerid, callback) {
  7080. return __awaiter(this, void 0, void 0, function* () {
  7081. const instance = this;
  7082. this.reportManager = Analytics.Managers.ReportManager.Instance();
  7083. this._reportBuilder = Analytics.Reports.ReportBuilder.Instance();
  7084. this._reportBuilder.pivot = new PivotColumns();
  7085. var reportid = id;
  7086. containerid = containerid;
  7087. $("#Reportid_" + containerid).empty();
  7088. $('.Reportid__dynamicfilter').text("");
  7089. $("#Reportid_" + containerid).text(reportid);
  7090. $(`#applyToggleBtn${containerid}`).click(() => {
  7091. $(`#ApplyGlobalFilter${containerid}`).toggleClass('d-none');
  7092. $(`#saveViewAs${containerid}`).toggleClass('d-none');
  7093. });
  7094. if (containerid.indexOf("dashboardportletwidget") > 0) {
  7095. let widgetheight = $("#" + containerid).siblings('#hf_portletwidgetheight').val();
  7096. if (widgetheight == 'undefined' || widgetheight == null || widgetheight == '0px') {
  7097. widgetheight = '240px';
  7098. }
  7099. $(".ChartViewer_" + containerid).find(".card_section").css({ "height": widgetheight, "overflow": "hidden" });
  7100. $(".ChartViewer_" + containerid).find("#ChartCanvasDiv" + containerid).addClass('h-100 w-100');
  7101. }
  7102. if ($(`#${containerid}`).hasClass('_bizgaze_popup_container') || $(`#${containerid}`).hasClass('_bizgaze_detail_container')) {
  7103. $(`#chartViewerWrap_${containerid}`).addClass('chart-viewer-card');
  7104. $(`#chartMaximizeBtn_${containerid}`).addClass('d-none');
  7105. $(`#reportCloseBtn_${containerid},#filterDpWrap_${containerid}`).removeClass('d-none');
  7106. $(`#chartSection_${containerid}`).css('height', '100%');
  7107. if (containerid.includes('div_dashboardportletwidget')) {
  7108. $(`#chartMinimizeBtn_${containerid}`).removeClass('d-none');
  7109. }
  7110. if (Unibase.Themes.Compact.Components.Index.Instance().tabMode) {
  7111. $(`#ChartCanvasDiv${containerid}`).addClass('h-100 w-100');
  7112. }
  7113. else {
  7114. $(`#chartSection_${containerid}`).addClass('d-flex flex-column justify-content-center');
  7115. $(`#ChartCanvasDiv${containerid}`).removeClass('h-100').addClass('h-50 w-100');
  7116. }
  7117. }
  7118. instance.xaxisColumns = [], instance.yaxisColumns = [], instance.groupColumns = [];
  7119. instance.loadData(containerid, reportid);
  7120. });
  7121. }
  7122. loadData(containerid, reporId) {
  7123. return __awaiter(this, void 0, void 0, function* () {
  7124. var instance = this;
  7125. instance.ChartDivId = containerid + "-chart-canvas";
  7126. instance.chartContainerId = containerid;
  7127. let rv_instance;
  7128. if (Unibase.Platform.Helpers.NavigationHelper.reportViewerInstance.length > 0) {
  7129. let reportviewerInstance = Unibase.Platform.Helpers.NavigationHelper.reportViewerInstance.find(x => x.childcontainerid == containerid);
  7130. if (reportviewerInstance != undefined)
  7131. rv_instance = reportviewerInstance.instance;
  7132. else
  7133. rv_instance = instance;
  7134. }
  7135. else {
  7136. rv_instance = instance;
  7137. }
  7138. Unibase.Platform.Helpers.NavigationHelper.Instance().hideLoading();
  7139. let reportInfo = rv_instance.reportResponse.result.ReportInfo;
  7140. instance._reportBuilder.reportid = reporId;
  7141. instance._reportBuilder.DataListId = reportInfo.DataListId;
  7142. instance.IsChartBuilder = false;
  7143. instance.displayLegend = reportInfo.IsLegend;
  7144. instance.isDataLabel = reportInfo.IsDataLabel;
  7145. instance.isTooltipHeader = reportInfo.IsTooltipHeader;
  7146. instance.tickLabelLength = reportInfo.TickLabelLength;
  7147. instance.loadSelectedLegend(reportInfo.LegendTypeId, false);
  7148. if (containerid.indexOf("dashboardportletwidget") > 0) {
  7149. if (containerid.includes('fullscreen')) {
  7150. const widgetContainerId = containerid.replace('fullscreen_', '');
  7151. const widgetName = $(`#${widgetContainerId}`).siblings('[id^=hf_widgetName]').val().toString();
  7152. $("#ReportTitle_" + containerid).text(widgetName);
  7153. }
  7154. else {
  7155. $("#ReportTitle_" + containerid).text(instance.WidgetName);
  7156. }
  7157. }
  7158. else {
  7159. $("#ReportTitle_" + containerid).text(reportInfo.ReportName);
  7160. }
  7161. var reportColumns = reportInfo.ReportColumns;
  7162. instance._reportBuilder.TenureReport = [], instance._reportBuilder.pivot.ColumnName = "";
  7163. var tenure;
  7164. var pivot;
  7165. if (reportColumns.length != 0) {
  7166. tenure = reportColumns.find(x => x.IsTenureApplied == true);
  7167. pivot = reportColumns.find(x => x.IsPivotColumn == true);
  7168. }
  7169. if (tenure) {
  7170. instance._reportBuilder.TenureReport[tenure.DisplayText] = {
  7171. TimeInterval: tenure.TimeInterval,
  7172. };
  7173. var Values_len = instance._reportBuilder.TenureReport.length;
  7174. instance._reportBuilder.TenureReport.length = Values_len + 1;
  7175. instance._reportBuilder.tenureTimeIntervalCol = tenure.DisplayText;
  7176. return instance.tenureChart(instance.ChartDivId, reporId);
  7177. }
  7178. if (reportInfo.ChartColumns.length != 0 && instance._reportBuilder.TenureReport.length == 0) {
  7179. instance.ChartTypeId = reportInfo.ChartTypeId;
  7180. var chartcolumns = reportInfo.ChartColumns;
  7181. instance.loadchart(rv_instance.reportData, chartcolumns, reportColumns, pivot);
  7182. }
  7183. instance.colorAppliedOn = reportInfo.ColorAppliedTypeId;
  7184. if (!reportInfo.LegendTitleTypeId)
  7185. instance.legendTitleTypeId = Unibase.Platform.Analytics.Enums.LegendTitleType.Data;
  7186. else if (reportInfo.LegendTitleTypeId)
  7187. instance.legendTitleTypeId = reportInfo.LegendTitleTypeId;
  7188. if (reportInfo.ChartBaseValue)
  7189. instance.chartBaseValue = reportInfo.ChartBaseValue;
  7190. const indexInstance = Unibase.Themes.Compact.Components.Index.Instance();
  7191. if (reportInfo.PaletteId !== 0 || indexInstance.currentTheme.paletteId) {
  7192. let paletteId = reportInfo.PaletteId;
  7193. if (!paletteId) {
  7194. instance.paletteColors.push(...indexInstance.themePalette);
  7195. }
  7196. else {
  7197. instance.getpaletteColors(paletteId, false);
  7198. }
  7199. }
  7200. instance.chart_dataSet();
  7201. if (reportInfo.LinkReportId != 0)
  7202. $(`#linkreport${containerid}`).removeClass("d-none");
  7203. $(`#linkreport${containerid}`).click(function () {
  7204. let widgetId = Number($(this).closest(".dashboardwidget-addeditem").find("#hf_widgetId").val());
  7205. var commonFilters = Unibase.Platform.Analytics.Components._CommonFilter.Instance().appliedFilters;
  7206. let filters = [];
  7207. if (commonFilters && commonFilters.length) {
  7208. var fil = commonFilters.find(x => x.WidgetId == widgetId);
  7209. if (fil && fil.AutocompleteFilter && fil.AutocompleteFilter.length) {
  7210. filters = fil.AutocompleteFilter;
  7211. }
  7212. }
  7213. var rv_instance = Unibase.Platform.Helpers.NavigationHelper.reportViewerInstance.find(x => x.childcontainerid == containerid);
  7214. var dynamicfilters = (rv_instance.instance) ? rv_instance.instance.dynamicFilters : [];
  7215. if (dynamicfilters && dynamicfilters.length) {
  7216. filters = dynamicfilters;
  7217. }
  7218. (reportInfo.LinkReportId == reportInfo.ReportId) && (reportInfo.LinkReportId = 0);
  7219. instance.linkReport(reportInfo.LinkReportId, filters, "div_linkreport" + containerid.substr(containerid.lastIndexOf("_")) + "_viewall");
  7220. });
  7221. });
  7222. }
  7223. loadchart(chartdata, chartcolumns, reportColumns, pivot) {
  7224. return __awaiter(this, void 0, void 0, function* () {
  7225. var instance = this;
  7226. var data = chartdata;
  7227. instance.ChartData = data;
  7228. const containerid = instance.chartContainerId;
  7229. var chartCols = [];
  7230. if (reportColumns != null && reportColumns.length != 0) {
  7231. reportColumns.map(function (element) {
  7232. var cCol = chartcolumns.find(c => c.AliasName == element.AliasName);
  7233. if (cCol) {
  7234. chartCols.push(cCol);
  7235. }
  7236. });
  7237. }
  7238. else {
  7239. chartCols = chartcolumns;
  7240. }
  7241. if (data.length > 0) {
  7242. for (var i = 0; i < chartCols.length; i++) {
  7243. let chartCol = chartCols[i];
  7244. let ColumnValue = chartCol.ColumnValue;
  7245. let Field = chartCol.Name;
  7246. let AliasName = chartCol.AliasName;
  7247. let DataType = chartCol.DataType;
  7248. let Name = AliasName != null ? AliasName : Field;
  7249. let IsNumAbb = chartCol.IsNumAbb;
  7250. if (chartCol.IsXaxis == true) {
  7251. let xObj = {
  7252. ColumnId: ColumnValue,
  7253. ColumnName: Name,
  7254. DisplayText: AliasName,
  7255. AliasName: AliasName,
  7256. DataType: DataType,
  7257. ColorType: chartCol.ColorAppliedOn,
  7258. CoordinateTypeId: instance.ChartAxis.Horizontal,
  7259. divId: "",
  7260. IsNumAbb: IsNumAbb
  7261. };
  7262. instance.selected_Coordinate(xObj);
  7263. }
  7264. else if (chartCol.IsYaxis == true && chartCol.IsGroupBy != true) {
  7265. let yObj = {
  7266. ColumnId: ColumnValue,
  7267. ColumnName: Name,
  7268. DisplayText: AliasName,
  7269. AliasName: AliasName,
  7270. DataType: DataType,
  7271. ColorType: chartCol.ColorAppliedOn,
  7272. CoordinateTypeId: instance.ChartAxis.Vertical,
  7273. divId: "",
  7274. IsNumAbb: IsNumAbb
  7275. };
  7276. instance.selected_Coordinate(yObj);
  7277. }
  7278. else if (chartCol.IsGroupBy == true) {
  7279. if (chartCol.Color != null) {
  7280. instance.chartViewer_Colors(chartCol.Color, ColumnValue, Name);
  7281. }
  7282. let gObj = {
  7283. ColumnId: ColumnValue,
  7284. ColumnName: Name,
  7285. DisplayText: AliasName,
  7286. AliasName: AliasName,
  7287. DataType: DataType,
  7288. ColorType: chartCol.ColorAppliedOn,
  7289. CoordinateTypeId: instance.ChartAxis.GroupBy,
  7290. divId: ""
  7291. };
  7292. instance.selected_Coordinate(gObj);
  7293. if (pivot) {
  7294. yield instance._reportBuilder.getDistinctData(ColumnValue, Name, chartCol.AggregationValue);
  7295. }
  7296. }
  7297. else if (chartCol.IsLineChart == true) {
  7298. let lObj = {
  7299. ColumnId: ColumnValue,
  7300. ColumnName: Name,
  7301. DisplayText: AliasName,
  7302. AliasName: AliasName,
  7303. DataType: DataType,
  7304. ColorType: chartCol.ColorAppliedOn,
  7305. CoordinateTypeId: instance.ChartAxis.LineChart,
  7306. divId: ""
  7307. };
  7308. instance.selected_Coordinate(lObj);
  7309. }
  7310. if (chartCol.IsChartBaseColumn == true) {
  7311. let lObj = {
  7312. ColumnId: ColumnValue,
  7313. ColumnName: Name,
  7314. DisplayText: AliasName,
  7315. AliasName: AliasName,
  7316. DataType: DataType,
  7317. ColorType: chartCol.ColorAppliedOn,
  7318. CoordinateTypeId: instance.ChartAxis.BaseColumn,
  7319. divId: ""
  7320. };
  7321. instance.selected_Coordinate(lObj);
  7322. }
  7323. }
  7324. }
  7325. else {
  7326. $(`#ChartCanvasDiv${containerid}`).addClass('d-none');
  7327. $(`#chartSection_${containerid}`).removeClass('d-flex');
  7328. $(`#noChartDataMsg_${containerid}`).html('<div class="alert alert-primary border-0 font-14 mb-0 rounded-0 text-center w-100">No data available</div>').removeClass('d-none');
  7329. }
  7330. this.prepareAndBindToolTipColumns(chartCols);
  7331. });
  7332. }
  7333. static Instance() {
  7334. this._instance = new ChartViewer();
  7335. return this._instance;
  7336. }
  7337. }
  7338. Charts.ChartViewer = ChartViewer;
  7339. })(Charts = Analytics.Charts || (Analytics.Charts = {}));
  7340. })(Analytics = Platform.Analytics || (Platform.Analytics = {}));
  7341. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  7342. })(Unibase || (Unibase = {}));
  7343. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
  7344. function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  7345. return new (P || (P = Promise))(function (resolve, reject) {
  7346. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  7347. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  7348. function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
  7349. step((generator = generator.apply(thisArg, _arguments || [])).next());
  7350. });
  7351. };
  7352. var Unibase;
  7353. (function (Unibase) {
  7354. let Platform;
  7355. (function (Platform) {
  7356. let Analytics;
  7357. (function (Analytics) {
  7358. let Components;
  7359. (function (Components) {
  7360. class _ReportViewer extends Platform.Core.BaseComponent {
  7361. constructor() {
  7362. super();
  7363. this.Page = 1;
  7364. this.PageSize = 20;
  7365. this.commonFilterContainerId = "";
  7366. this.ispivottable = false;
  7367. this.ReportId = 0;
  7368. this.InstalledAppId = 0;
  7369. this.RecordId = 0;
  7370. this.CalendarMonthChanged = false;
  7371. this.isWidget = false;
  7372. this.IsPortletWidget = false;
  7373. this.ListSearchTerm = "";
  7374. this.isEnableCount = false;
  7375. this.isApplyFilter = false;
  7376. this.inputParameters = [];
  7377. this.dateFilters = [];
  7378. this.filterId = 0;
  7379. this.dynamicFilters = [];
  7380. this.cascadingFilters = [];
  7381. this.getdynamicfilters = [];
  7382. this.getdetailFilters = [];
  7383. this.reportData = "";
  7384. this.reportDatalength = 0;
  7385. this.PortletWidgetId = 0;
  7386. this.DetailParameters = [];
  7387. this.isShowAll = false;
  7388. this.sortColumn = "";
  7389. this.isReportPopup = false;
  7390. this.reportColumns = [];
  7391. this.groupBy_Category = [];
  7392. this.isPdf = false;
  7393. this.pivotTypeId = 0;
  7394. this.enablePivotTableConfig = false;
  7395. this.pivotTableRowCols = [];
  7396. this.pivotTableColumnCols = [];
  7397. this.pivotTableAggCol = "";
  7398. this.pivotTableAgg = "";
  7399. this.js = "";
  7400. this.pinDynamicFilters = false;
  7401. this.isLinkReport = false;
  7402. this.linkReportFilterObj = { InputParameters: [], DateFilters: [], DynamicFilters: [] };
  7403. this.tblGroupedCols = [];
  7404. this.isListRefresh = false;
  7405. this.totalRecords = 0;
  7406. this.tableDynamicFilters = [];
  7407. this.fromDate = "";
  7408. this.toDate = "";
  7409. this.isSubReport = false;
  7410. this.isCategoriesReport = false;
  7411. this.isCategoryViewer = false;
  7412. this.desktopMode = Unibase.Themes.Compact.Components.Index.Instance().desktopMode;
  7413. this.tabMode = Unibase.Themes.Compact.Components.Index.Instance().tabMode;
  7414. this.layoutIndex = Unibase.Themes.Compact.Components.Index.Instance().layoutIndex;
  7415. this.reportManager = Analytics.Managers.ReportManager.Instance();
  7416. this.viewerManager = Analytics.Managers.ViewerManager.Instance();
  7417. this.appmanager = Platform.Apps.Managers.AppManager.Instance();
  7418. this.filtermanager = Platform.Filters.Managers.FilterManager.Instance();
  7419. this.ReportId = 0;
  7420. }
  7421. _jsFiles() {
  7422. return ["platform/bundle/_reportviewer.min.js"];
  7423. }
  7424. _cssFiles() {
  7425. return [];
  7426. }
  7427. _html(id, containerid) {
  7428. var instance = this;
  7429. let height = '', style = '', islist = '';
  7430. let ifrmd_none = "d-none", ifrm_margin = "ml-1";
  7431. if (Unibase.Themes.Providers.DetailHelper.installedAppId == 0) {
  7432. if ($('.' + containerid).siblings('#hf_portletwidgetheight').length != 0) {
  7433. let reportwidgetheight = $('.' + containerid).siblings('#hf_portletwidgetheight').val().toString().replace(/px/, '');
  7434. let _height = Number(reportwidgetheight) + 48;
  7435. if (reportwidgetheight == '0') {
  7436. height = '';
  7437. }
  7438. else {
  7439. height = "biz-custom-scrollbar";
  7440. style = "style='overflow-y:auto; height:" + _height + "px'";
  7441. }
  7442. }
  7443. }
  7444. var reportid = id, padding_left = 'pl-0 pr-1', detailsPage = '', scrollMargin = 'mx-20', width = $(window).width(), mx_mobile = '', card_header_left_width = '', cardHeaderPY = 'py-1';
  7445. if (containerid.indexOf("div_portletwidget") > -1) {
  7446. this.isWidget = true;
  7447. if (width <= 576) {
  7448. cardHeaderPY = "py-0";
  7449. }
  7450. }
  7451. var reportid = id;
  7452. if (containerid.indexOf("div_portletwidget") > -1) {
  7453. this.isWidget = true;
  7454. }
  7455. if (Unibase.Themes.Providers.DetailHelper.installedAppId != 0) {
  7456. scrollMargin = '';
  7457. if (width <= 576) {
  7458. mx_mobile = 'mx-1';
  7459. padding_left = '', detailsPage = 'px-0';
  7460. }
  7461. else {
  7462. mx_mobile = 'mx-0';
  7463. padding_left = 'pl-sm-15', detailsPage = 'px-1';
  7464. }
  7465. }
  7466. else {
  7467. if (width <= 576) {
  7468. scrollMargin = 'mx-2';
  7469. mx_mobile = 'mx-1';
  7470. }
  7471. else {
  7472. mx_mobile = 'mx-20';
  7473. }
  7474. }
  7475. if ($(`#${containerid}`).hasClass('_bizgaze_popup_container')) {
  7476. scrollMargin = 'mx-10';
  7477. mx_mobile = 'mx-10';
  7478. padding_left = 'pl-0 pr-1';
  7479. }
  7480. if (!containerid.includes('div_dashboardportletwidget') || containerid.includes('div_portletwidget') || containerid.includes('fullscreen')) {
  7481. card_header_left_width = 'w-60';
  7482. }
  7483. if (screen.width <= 576 || isMobileApp()) {
  7484. if (containerid.includes('div_dashboardportletwidget') || containerid.includes('div_portletwidget') || containerid.includes('fullscreen')) {
  7485. card_header_left_width = 'w-100';
  7486. }
  7487. }
  7488. let isExpandHidden = 'd-none';
  7489. if (containerid.includes('div_dashboardportletwidget')) {
  7490. isExpandHidden = '';
  7491. }
  7492. let isRestrictHidden = '';
  7493. if (Unibase.Platform.Membership.Infos.Identity.currentUser.isRestrictedUser) {
  7494. isRestrictHidden = 'd-none';
  7495. }
  7496. if (Unibase.Themes.Providers.DetailHelper.installedAppId !== 0) {
  7497. $(".portletwidget-item").find(".card-header-top").find(".card-header-left").addClass("w-70").removeClass("w-60");
  7498. }
  7499. if (Unibase.Themes.Compact.Components.Nav.Instance().isList) {
  7500. islist = 'invisible';
  7501. }
  7502. if (Unibase.Themes.Compact.Components.Index.Instance().isIframeObj.isListPage) {
  7503. ifrmd_none = "";
  7504. ifrm_margin = "";
  7505. }
  7506. var newHtml = `<div class="card mb-0 ${islist} border-0 BindData_${containerid} findcontainer h-100 list" >
  7507. <div class="card-header ${cardHeaderPY} px-0 ${scrollMargin} search-bar-main-wrapper line-loader-container p-relative border-0 viewer-header" id="ViewerHeader_${containerid}">
  7508. <div class="card-header-top ${detailsPage} d-flex align-items-center justify-content-between line-loader-container p-relative">
  7509. <div class="line-loader"></div>
  7510. <div id="div_ErrorMessage" class="form-error-message ml-0"></div>
  7511. <div class="card-header-left ${card_header_left_width}">
  7512. <ul class="d-flex list-inline align-items-center w-100">
  7513. <li><a href="javascript:void(0);" id="reportCloseBtn_${containerid}" class="report-close-btn btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover w-30p h-30p mr-10 text-dark ${ifrmd_none}" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().closeReportPopup('${containerid}');" data-tooltip="true" title="Close"><span class="btn-icon-wrap"><i data-icon="l"></i></span></a></li>
  7514. <li class="d-flex align-items-center nav-link ${padding_left} report-title-dp-wrapper biz-dropdown " id="viewsDropdown_${containerid}"><span class="d-flex align-items-center biz-highlight-bg-color widget-font text-truncate" id="WidgetTitleLink_${containerid}" data-toggle="" data-target="" aria-expanded="true">
  7515. <span id="ReportTitle_${containerid}" class="biz-highlight-bg-color text-nowrap text-truncate biz-font" role="button" tabindex="0" data-placement="bottom" data-toggle="popover" data-trigger="focus" data-content="" data-template='<div class="popover biz-highlight-color rounded" role="tooltip"><div class="arrow reporttitlepopover"></div><div class="popover-body biz-primary-text-color font-weight-600"></div></div>'>Loading...</span>
  7516. <span id="Reportid_${containerid}" class="Reportid__dynamicfilter hidden"></span>
  7517. <span id="Reportid_${containerid}" class="Reportid__commonfilter hidden">Loading...</span></span>
  7518. <a class="views-dropdown-toggle dp-toggle-icon btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover flex-shrink-0 ${isRestrictHidden} widget_loader_${containerid}" href="javascript:;" id="viewsDpToggle_${containerid}" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().getReportCategories(${reportid},'${containerid}',false,false)" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="btn-icon-wrap"><i class="fa fa-caret-down font-16"></i></span></a>
  7519. <div class="biz-highlight-bg-color main-search-loader search-clear-icon ml-2 hidden report-views-loader" id="reportViewsLoader_${containerid}"></div>
  7520. <div class="dropdown-menu biz-custom-dropdown biz-views-dropdown" id="reportViewsDropdown_${containerid}"><div id="dpErrMessage_${containerid}"></div><div class="custom-dropdown-body biz-custom-scrollbar views-dropdown-body"><ul class="sub-dropdown-menu show-on-hover subdrop_Tempalate_${containerid}" id="subdrop_Tempalate_${containerid}"><li class="li-report-item"><a class="dropdown-item report-title-link text-truncate font-weight-bold px-0 px-sm-10 mb-5" href="javascript:;"></a><ul class="report-views-list mx-0 row w-100"><li class="report-view-item col-lg-4 col-md-6 px-0 px-sm-10 mb-5" id="Table_View_${reportid}_${containerid}"><a href="javascript:;" class="dropdown-item d-flex align-items-center" id="DefaultTable_${reportid}_${containerid}" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().defaultTable(${reportid},'${containerid}');"><span class="ml-1 text-truncate">Table View</span></a></li></ul></li></ul><ul class="report-views-list" id="reportViewsList_${containerid}"></ul></div>${instance.currentUser.isAdmin ? `<div class="views-dropdown-footer mt-10 d-none d-xl-block" id="viewerDpFooter_${containerid}"><div class="row mx-0"><div class="col-lg-4"><a href="javascript:;" class="btn btn-outline-primary btn-sm" id="EditTable_${containerid}" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().EditReport(${reportid},0, {{appinstalledappid}},0,'${containerid}')";><span class="btn-text">Edit Report</span><span class="icon-label ml-1"><i class="las la-pen"></i></span></a></div><div class="col-lg-4"><a href="javascript:;" class="btn btn-outline-primary btn-sm" id="DuplicateTable_${containerid}" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().DuplicateReport(${reportid},'${containerid}')";><span class="btn-text">Duplicate</span><span class="icon-label ml-1"><i class="las la-copy"></i></span></a></div><div class="col-lg-4"><a href="javascript:;" class="btn btn-outline-primary btn-sm" id="reportPermissions_${containerid}" onclick ="Unibase.Platform.Analytics.Components.ReportViewer.Instance().reportPermissions(${reportid})"><span class="btn-text">Permissions</span><span class="icon-label ml-1"><i class="las la-lock"></i></span></a></div></div></div>` : ''}<div class="dp-viewer-options d-none d-xl-flex align-items-center" id="dpViewerOptionsDiv_${containerid}"><span id="closeOptionsSpan_${containerid}"><a href="javascript:;" class="edit-views-link editViewsLink_${containerid} biz-highlight-text-color mr-10 hidden" data-mode="edit" data-tooltip="true" title="Close Views Settings">Close</a><a href="javascript:;" class="view-all-link ViewAllViews_${containerid} biz-highlight-text-color mr-10 hidden" data-viewall="false" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().getAllViewers(${reportid},'${containerid}')" data-tooltip="true" title="Hide All Views">Hide</a></span><a href="javascript:;" class="dp-viewer-options-btn btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover w-30p h-30p text-dark-100 mr-1" id="dpViewerOptions_${containerid}" data-tooltip="true" title="Viewer Settings"><span class="btn-icon-wrap"><i class="las la-ellipsis-h font-23"></i></span></a></div>
  7521. </div>
  7522. <div class="dropdown-menu dp-viewer-options-menu pa-5" id="dpViewerOptionsMenu_${containerid}">
  7523. <div class="sub-dropdown-menu show-on-hover Viewer_Type">
  7524. <a href="javascript:;" class="dropdown-toggle dropdown-item no-caret">New<i class="fa fa-angle-right pull-right mt-5" aria-hidden="true"></i></a>
  7525. <div class="dropdown-menu open-left-side">
  7526. <a class="dropdown-item" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().loadViewerSettings(${reportid},0,null, 'Unibase.Platform.Analytics.Components.TemplateViewerSettings.Instance()' , null, 'Helpers.Size.Auto');;" href="javascript:;">
  7527. <span>New Template</span>
  7528. </a>
  7529. <a class="dropdown-item" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().loadViewerSettings(${reportid},0,null, 'Unibase.Platform.Analytics.Components.CardViewerSettings.Instance()' , null, Unibase.Platform.Helpers.Size.Auto);" href="javascript:;">
  7530. <span>New Card</span>
  7531. </a>
  7532. <a class="dropdown-item" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().loadViewerSettings(${reportid},0,null, 'Unibase.Platform.Analytics.Components.CalendarViewerSettings.Instance()' , null, Unibase.Platform.Helpers.Size.Auto);" href="javascript:;">
  7533. <span>New Calendar</span>
  7534. </a>
  7535. <a class="dropdown-item" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().loadViewerSettings(${reportid},0,null, 'Unibase.Platform.Analytics.Components.MapViewerSettings.Instance()' , null, Unibase.Platform.Helpers.Size.Auto);" href="javascript:;">
  7536. <span>New Map</span>
  7537. </a>
  7538. </div>
  7539. </div>
  7540. <div class="d-none d-xl-block">
  7541. <a href="javascript:;" class="dropdown-item view-all-link ViewAllViews_${containerid} hidden" data-viewall="true" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().getAllViewers(${reportid},'${containerid}')">View All</a>
  7542. <a href="javascript:;" class="dropdown-item edit-views-link editViewsLink_${containerid}" data-mode="list">Edit Views</a>
  7543. </div>
  7544. <a href="javascript:;" class="dropdown-item d-xl-none" id="reportPermissions_${containerid}" onclick ="Unibase.Platform.Analytics.Components.ReportViewer.Instance().reportPermissions(${reportid})">Permissions</a>
  7545. </div>
  7546. </li>
  7547. <li class="d-block d-md-none d-inline-flex align-items-center pagintion-count">
  7548. <span id="Viewer_pagintion_count${containerid}" class="biz-highlight-bg-color biz-count-font text-nowrap"><a href="javascript:;" class="rpt-Count${containerid} biz-highlight-bg-color" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().getCount(${reportid},${this.InstalledAppId},'${containerid}');">(Get count)</a></span></li>
  7549. <li class="detailpage_count"></li>
  7550. </ul>
  7551. </div>
  7552. <div class="card-search-bar w-md-50 w-lg-75" id="cardSearchBar${containerid}">
  7553. <div class="search-wrapper biz-dropdown" id="searchWrapper${containerid}">
  7554. <input class="form-control txt_global_search" id="ListSearch" type="text" placeholder = "Search" autocomplete="off"/>
  7555. <i class="fa fa-search search-left-icon biz-highlight-bg-color"></i>
  7556. <a href="javascript:;" class="unpin-dynamic-filters-icon filter-icon btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover h-30p w-30p d-none" data-tooltip="true" title="Unpin Filters" id="unPinDynamicFiltersIcon_${containerid}" onClick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().unPinDynamicFiltersHandler('${containerid}')"><span class="btn-icon-wrap"><i class="las la-thumbtack font-22"></i></span></a>
  7557. <a href="javascript:;" class="filter-icon btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover h-30p w-30p" id="filter-icon${containerid}" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().loadDynamicFilters(${reportid},'${containerid}');" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" data-tooltip="true" title="Dynamic Filters"><span class="btn-icon-wrap"><i class="font-22 las la-filter"></i><span class="applied-filter-count" id="appliedFilterCount_${containerid}"></span></span></a><div class="biz-highlight-bg-color main-search-loader search-clear-icon hidden"></div><a href="javascript:;" class="search-clear-icon biz-highlight-bg-color d-none" id="search-clear-icon${containerid}" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().clearSearchFilter(${reportid},'${containerid}')"><i class="zmdi zmdi-close"></i></a><div class="dropdown-menu biz-custom-dropdown biz-filter-dropdown" id="biz-filter-dropdown${containerid}" onclick="event.stopPropagation();"><div class="dynamic-filter-content-wrap position-relative" id="dynamicFilterContentWrap_${containerid}"><div class="filter-dropdown-body biz-custom-scrollbar" id="filter-dropdown-body${containerid}"><div id="dynamic-filters${containerid}" class="dynamic-filters-list row mx-0"></div></div><div class="filter-dropdown-footer d-none" id="filter-dropdown-footer${containerid}"><a href="javascript:;" class="btn btn-outline-danger btn-sm Filterbuttons" id="btn_ClearFilter${containerid}" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().clearDynamicFilters(${reportid},'${containerid}')"><span class="btn-text mr-5">Clear</span><span class="icon-label"><i class="las la-filter"></i></span></a>
  7558. <div class="actions-btn-group"><a href="javascript:;" class="btn btn-outline-primary btn-sm create-filter-btn saveViewAs${containerid}" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().saveViewAs(${reportid})">Create</a><div class="btn-group apply-btn-group toggle-btn ml-15"><a href="javascript:;" class="btn btn-outline-primary btn-sm Filterbuttons" id="ApplyGlobalFilter${containerid}" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance()._applyfilter(${reportid},'${containerid}')">Apply</a><a href="javascript:;" class="btn btn-outline-primary btn-sm save-filter-btn saveViewAs${containerid} d-none" id="saveViewAs${containerid}" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().saveViewAs(${reportid})">Save</a><a href="javascript:;" class="btn btn-primary btn-sm dropdown-toggle" id="applyToggleBtn${containerid}"></a></div></div></div><div class="filter-dropdown-errmessage text-center d-none" id="filter-dropdown-errmessage${containerid}"><p class="text-danger">No Filters Found!</p><a href="javascript:;" class="btn btn-outline-primary btn-sm mt-10 create-filter-btn saveViewAs${containerid}" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().saveViewAs(${reportid})">Create Filter</a></div><a href="javascript:;" class="btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover h-30p w-30p shadow dynamic-filter-pin" id="dynamicFilterPin_${containerid}" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().pinDynamicFiltersHandler(${reportid},'${containerid}');" data-tooltip="true" title="Pin Filters"><span class="btn-icon-wrap"><i class="las la-thumbtack font-18"></i></span></a></div></div></div>
  7559. <span class="search-icon-wrapper">
  7560. <a href="javascript:;" class="search_close_icon d-none" id="search_close_icon${containerid}" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().closeIconClickclearall('${reportid}', '${containerid}')"><i class="las la-times text-danger"></i></a></span>
  7561. </div>
  7562. <div class="card-header-right w-50 d-flex align-items-center">
  7563. <a href="javascript:;" class="btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover w-30p h-30p mr-1 report-refresh-btn" id="reportRefreshBtn_${containerid}" data-tooltip="true" title="Refresh" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().refreshReportData(${reportid},'` + containerid + `',null, null)"><span class="btn-icon-wrap"><i class="fa fa-refresh"></i></span></a>
  7564. ${instance.getViewAllHtml(containerid, 'desktop', reportid)}
  7565. <div class="d-flex header-middle-hide">
  7566. <a class="biz-highlight-bg-color d-md-none report-search-icon dashboardAppsearch" id="search_icon${containerid}" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().searchIconClick('${containerid}')"><i class="fa fa-search biz-icon-size" aria-hidden="true"></i></a>
  7567. <div class="create-place d-flex"></div>
  7568. </div>
  7569. <span class="CheckPlusIcon sp_widget_create_${containerid}"></span>
  7570. <a class="btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover w-30p h-30p report-maximize-btn ${isExpandHidden}" href="javascript:;" id="reportMaximizeBtn_${containerid}" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().report_ViewAll(${reportid}, 0, 'fullscreen_${containerid}','${containerid}');" data-tooltip="true" title="Maximize Report"><span class="btn-icon-wrap"><i class="las la-expand font-18"></i></span></a>
  7571. <a class="btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover w-30p h-30p report-minimize-btn d-none" href="javascript:;" id="reportMinimizeBtn_${containerid}" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().closeReportPopup('${containerid}');" data-tooltip="true" title="Minimize Report"><span class="btn-icon-wrap"><i class="las la-compress font-18"></i></span></a>
  7572. <div class="groupby-cat-dp d-none" id="groupByCatDp_${containerid}"><a class="btn btn-primary btn-sm groupby-cat-btn ml-10" href="javascript:;" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" id="groupByCatLnk_${containerid}" data-tooltip="true" title="Select Groupby Columns">
  7573. <span class="btn-icon"><i class="las la-stream"></i></span><span class="btn-text ml-1">Groupby</span>
  7574. </a>
  7575. <div class="dropdown-menu groupby-cat-dp-menu biz-custom-dropdown" id="groupByCatDpMenu_${containerid}" onclick="event.stopPropagation();"><div class="groupby-cat-dp-body custom-dropdown-body"><span>Select Groupby Columns</span><select id="groupByCatSelect_${containerid}" class="form-control groupby-cat-select"></select></div><div class="groupby-cat-dp-footer mt-15 d-flex align-items-center justify-content-between"><a href="javascript:;" class="btn btn-outline-danger btn-sm groupby-cat-clear-btn" id="groupByCatClearBtn_${containerid}" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().clearGroupByCategory('${containerid}')">Clear</a><a href="javascript:;" class="btn btn-outline-primary btn-sm groupby-cat-apply-btn" id="groupByCatApplyBtn_${containerid}" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().applyGroupByCategory('${containerid}')">Apply</a></div></div>
  7576. </div>
  7577. <div class="dropdown report-options-dp my-auto">
  7578. <a class="nav-link no-caret btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover w-30p h-30p reportview-remove-none ${ifrm_margin} ${isRestrictHidden}" href="javascript:;" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" id="ViewerTypes_${containerid}" data-tooltip="true" title="More">
  7579. <span class="btn-icon-wrap"><i class="fa fa-ellipsis-v ellipsis-hover-1" aria-hidden="true"></i></span>
  7580. </a>
  7581. <div class="dropdown-menu dropdown-menu-right ViewerTypes_dropdown" id="dp_${containerid}_viewertypes">
  7582. <div class="sub-dropdown-menu show-on-hover d-none" id="downloadDp_${containerid}" onclick="event.stopPropagation()"><a href="javascript:;" class="dropdown-toggle dropdown-item no-caret d-flex justify-content-between align-items-center">Download <i class="fa fa-angle-right"></i></a>
  7583. <div class="dropdown-menu open-left-side" id="downloadDpMenu_${containerid}"><a class="dropdown-item" href="javascript:;" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().downloadGroupedData(` + reportid + `,'${containerid}','',1,null)">XLSX</a><a class="dropdown-item" href="javascript:;" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().downloadGroupedData(` + reportid + `,'${containerid}','',2,null)">PDF</a></div></div>
  7584. <a href="javascript:;" class="dropdown-item" id="DownloadReport_${containerid}">Download</a>
  7585. <a href="javascript:;" class="dropdown-item d-none" id="exportCSVBtn_${containerid}">Export CSV</a>
  7586. <a href="javascript:;" class="dropdown-item d-none" id="DownloadPdf_${containerid}">PDF</a>
  7587. <a href="javascript:;" class="dropdown-item" id="editFilterOption${containerid}" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().addEditIcons_Filters('${containerid}',${reportid});">${instance.currentUser.isAdmin ? 'Edit Filter' : 'Set Default Filter'}</a>
  7588. <div class="div_appconfigurations"></div>
  7589. </div>
  7590. </div>
  7591. </div>
  7592. </div>
  7593. <div class="justify-content-between align-items-center biz-header-center d-none">
  7594. <div class="d-flex align-items-center pagintion-count">
  7595. <span id="Viewer_pagintion_count_mobile${containerid}" class="biz-highlight-bg-color biz-count-font text-nowrap">
  7596. <a href="javascript:;" class="rpt-Count${containerid} biz-highlight-bg-color" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().getCount(${reportid},${this.InstalledAppId},'${containerid}');">(Get count)</a></span></div>
  7597. <div class="d-flex">
  7598. <a class="biz-highlight-bg-color d-md-none biz-Appsearch dashboardAppsearch" id="search_icon${containerid}" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().searchIconClick('${containerid}')"><i class="fa fa-search biz-icon-size" aria-hidden="true"></i></a>
  7599. <div class="create-place d-flex"></div>
  7600. </div>
  7601. </div>
  7602. <div class="card-header-filters d-none" id="card-header-filters${containerid}">
  7603. <div class="report-filters-list biz-report-filters biz-custom-scrollbar" id="filters-list${containerid}"></div>
  7604. <a href="javascript:;" class="filter-left-icon filter-nav-icon hidden" onclick="Unibase.Themes.Compact.Components.Nav.Instance().changeFilterScroll(this,'${containerid}')" data-operation="-"><i class="fa fa-chevron-left"></i></a>
  7605. <a href="javascript:;" class="filter-right-icon filter-nav-icon hidden" onclick="Unibase.Themes.Compact.Components.Nav.Instance().changeFilterScroll(this,'${containerid}')" data-operation="+"><i class="fa fa-chevron-right"></i></a>
  7606. </div>
  7607. <div class="biz-pinned-dynamic-filters d-none" id="bizPinnedDynamicFilters_${containerid}"><div id="bizPinnedDynamicFiltersBody_${containerid}" class="pa-10"></div></div>
  7608. </div>
  7609. <div class="card-body pa-0 ${mx_mobile} border-removed border-white-removed show templateviewer-tableview ${height}" ${style} id="Viewer_${containerid}" data-iscollapseapplied="false"> </div>
  7610. </div>`;
  7611. return newHtml;
  7612. }
  7613. getViewAllHtml(containerid, device, reportid) {
  7614. if (this.desktopMode && device == 'desktop')
  7615. return `<a id="lnkViewAll_${containerid}" class="nav-link biz-highlight-text-color font-weight-500 text-underline hidden" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().loadReportViewAll(${reportid},'${containerid}');">View all</a>`;
  7616. if (!this.desktopMode && device == 'mobile')
  7617. return `<div class="link-viewall-btn-wrap text-center"><a href="javascript:;" class="btn btn-primary btn-sm link-viewall-btn my-10 hidden" id="lnkViewAll_${containerid}" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().loadReportViewAll(${reportid},'${containerid}');">View All</a></div>`;
  7618. return '';
  7619. }
  7620. loadReport(reportid, reportwidgetdata, containerid, callback) {
  7621. return __awaiter(this, void 0, void 0, function* () {
  7622. var instance = this;
  7623. instance.ContainerId = containerid;
  7624. const rv_instance = instance.getReportViewerInstance(containerid);
  7625. if (rv_instance.isCategoriesReport) {
  7626. rv_instance.inputParameters = [], rv_instance.dynamicFilters = [], rv_instance.ListSearchTerm = "", rv_instance.filterId = 0, rv_instance.dateFilters = [], rv_instance.isShowAll = false;
  7627. $(`#ViewerHeader_${containerid} .filter_design-row`).remove();
  7628. $(`#filter-icon${containerid}`).attr('onclick', `Unibase.Platform.Analytics.Components.ReportViewer.Instance().loadDynamicFilters(${reportid},'${containerid}')`);
  7629. $(`#appliedFilterCount_${containerid}`).text('0').removeClass('active');
  7630. }
  7631. typeof (reportid) == "object" && (reportid = reportid.Data.ReportId);
  7632. if (containerid.indexOf("div_portletwidget") > -1 || containerid.indexOf("div_dashboardportletwidget") > -1 && containerid.indexOf("fullscreen_div_dashboardportletwidget") == -1) {
  7633. instance.isWidget = true;
  7634. }
  7635. if ((containerid.includes('div_dashboardportletwidget') || containerid.includes('div_portletwidget')) && !instance.navigationHelper.isReportPopup(containerid)) {
  7636. $(`#editFilterOption${containerid}`).addClass('d-none');
  7637. }
  7638. if (containerid.indexOf("div_kpireport_") > -1) {
  7639. $(`#reportCloseBtn_${containerid}`).removeClass("d-none");
  7640. }
  7641. $(`#reportViewsDropdown_${containerid}`).off('click').click(function (e) {
  7642. e.stopPropagation();
  7643. $(`#dpViewerOptionsMenu_${containerid},#dpViewerOptions_${containerid}`).removeClass('show');
  7644. });
  7645. $(`#dpViewerOptionsMenu_${containerid}`).off('click').click(function (e) {
  7646. e.stopPropagation();
  7647. $(`#dpViewerOptionsMenu_${containerid},#dpViewerOptions_${containerid}`).removeClass('show');
  7648. });
  7649. $(`#dpViewerOptions_${containerid}`).off('click').click(function (e) {
  7650. e.stopPropagation();
  7651. $(`#dpViewerOptions_${containerid},#dpViewerOptionsMenu_${containerid}`).toggleClass('show');
  7652. });
  7653. $(`#viewsDropdown_${containerid}`).off('hide.bs.dropdown').on('hide.bs.dropdown', function () {
  7654. $(`.dp-viewer-options-menu,#dpViewerOptions_${containerid}`).removeClass('show');
  7655. });
  7656. $(`#searchWrapper${containerid}`).off('show.bs.dropdown').on('show.bs.dropdown', function () {
  7657. $(`#biz-filter-dropdown${containerid}`).detach().appendTo(`#cardSearchBar${containerid}`);
  7658. $(`#filter-icon${containerid} .las`).removeClass('la-filter').addClass('la-times');
  7659. });
  7660. $(`#searchWrapper${containerid}`).off('hide.bs.dropdown').on('hide.bs.dropdown', function () {
  7661. $(`#biz-filter-dropdown${containerid}`).detach().appendTo(`#searchWrapper${containerid}`);
  7662. $(`#filter-icon${containerid} .las`).removeClass('la-times').addClass('la-filter');
  7663. });
  7664. $(`#applyToggleBtn${containerid}`).off('click').click(function () {
  7665. $(`#ApplyGlobalFilter${containerid}`).toggleClass('d-none');
  7666. $(`#saveViewAs${containerid}`).toggleClass('d-none');
  7667. });
  7668. $(`.editViewsLink_${containerid}`).off('click').click(function () {
  7669. if ($(this).attr('data-mode') == 'list') {
  7670. instance.getReportCategories(reportid, containerid, true, true);
  7671. $(`.ViewAllViews_${containerid}`).addClass('hidden');
  7672. }
  7673. else {
  7674. instance.getReportCategories(reportid, containerid, false, false);
  7675. }
  7676. });
  7677. $(`#ReportTitle_${containerid}`).off('click').click(function () {
  7678. let element = this;
  7679. if (element.offsetWidth < element.scrollWidth) {
  7680. $(this).popover('toggle');
  7681. }
  7682. });
  7683. var IsAdmin = Unibase.Platform.Membership.Infos.Identity.getCurrentUser().isAdmin;
  7684. if (!IsAdmin) {
  7685. $(`#dpViewerOptionsDiv_${containerid},#dpViewerOptionsMenu_${containerid},.saveViewAs${containerid}`).remove();
  7686. $(`#applyToggleBtn${containerid}`).addClass('d-none').parent().removeClass('toggle-btn');
  7687. }
  7688. if (!instance.isWidget) {
  7689. yield instance.loadFilters(reportid, containerid);
  7690. }
  7691. instance.loadAppConfigurations(instance.InstalledAppId, containerid);
  7692. if (reportwidgetdata == 0)
  7693. reportwidgetdata = instance.reportWidgetData;
  7694. yield instance.getPortletWidgetData(reportid, containerid, reportwidgetdata, callback);
  7695. if (this.isWidget) {
  7696. if (containerid.includes('_viewall') || containerid.includes("fullscreen")) {
  7697. $(`#ViewerHeader_${containerid}`).find('.card-search-bar,.groupby-cat-btn,.report-refresh-btn').removeClass('d-none');
  7698. }
  7699. else {
  7700. $(`#ViewerHeader_${containerid}`).find('.card-search-bar,.groupby-cat-btn,.report-search-icon,.report-refresh-btn').addClass('d-none');
  7701. }
  7702. $(`#Viewer_pagintion_count${containerid}`).addClass('d-none');
  7703. $(`#Viewer_pagintion_count_mobile${containerid}`).addClass('d-none');
  7704. }
  7705. if (containerid.indexOf("kpireport") > -1)
  7706. $("#reportCloseBtn_" + containerid).removeClass("d-none");
  7707. $("#DownloadReport_" + containerid).off('click').click(function () {
  7708. let rv_instance = instance.getReportViewerInstance(containerid);
  7709. if (rv_instance != undefined)
  7710. instance.download(reportid, rv_instance.filterId, rv_instance.dynamicFilters, rv_instance.inputParameters, rv_instance.dateFilters, rv_instance.ViewerSettings.defaultViewerId);
  7711. });
  7712. $("#exportCSVBtn_" + containerid).off('click').click(function () {
  7713. let data_report = $(`#Viewer_${containerid}`).find(".pvtTable");
  7714. let data_report_name = $(`#ReportTitle_${containerid}`).text();
  7715. instance.TabletoCSV(data_report, data_report_name, containerid);
  7716. });
  7717. $("#DownloadPdf_" + containerid).off('click').click(function () {
  7718. let rv_instance = instance.getReportViewerInstance(containerid);
  7719. if (rv_instance != undefined) {
  7720. instance.isPdf = true;
  7721. instance.download(reportid, rv_instance.filterId, rv_instance.dynamicFilters, rv_instance.inputParameters, rv_instance.dateFilters, rv_instance.ViewerSettings.defaultViewerId);
  7722. }
  7723. });
  7724. $(`#groupByCatDp_${containerid}`).off('show.bs.dropdown').on('show.bs.dropdown', function () {
  7725. let rv_instance = instance.getReportViewerInstance(containerid);
  7726. if (rv_instance != undefined) {
  7727. $(`#groupByCatSelect_${containerid}`).val(rv_instance.groupBy_Category).change();
  7728. }
  7729. });
  7730. });
  7731. }
  7732. TabletoCSV(html, filename, containerid) {
  7733. var data = [];
  7734. var rows = $(`#Viewer_${containerid}`).find(".pvtTable tr");
  7735. for (var i = 0; i < rows.length; i++) {
  7736. var row = [], cols = rows[i].querySelectorAll("td, th");
  7737. for (var j = 0; j < cols.length; j++) {
  7738. let data_none = cols[j].className.includes("d-none");
  7739. let data_hide = cols[j].parentElement.className.includes("hidden");
  7740. let data_hide2 = cols[j].className.includes("hidden");
  7741. if (data_none == true || data_hide == true || data_hide2 == true) {
  7742. cols[j].remove;
  7743. }
  7744. else {
  7745. if (cols[j].textContent.length <= 100) {
  7746. let data_head = cols[j].className.includes("pvtColLabel");
  7747. if (data_head == true) {
  7748. let data_t = cols[j].textContent.includes(' ');
  7749. if (data_t == true) {
  7750. row.push(cols[j].textContent.replace(/[ ,]+/g, "-"));
  7751. }
  7752. }
  7753. else {
  7754. let colspan = cols[j].getAttribute("colspan");
  7755. let cols_data = Number(colspan);
  7756. let data_heads = cols[j].className;
  7757. if (cols_data > 0) {
  7758. if (data_heads == "pvtColLabel" || data_heads == "") {
  7759. for (var k = 0; k < cols_data; k++) {
  7760. row.push(cols[j].textContent);
  7761. }
  7762. }
  7763. else {
  7764. if (cols_data > 0) {
  7765. if (data_heads = "pvtRowLabel") {
  7766. for (var k = 0; k < cols_data; k++) {
  7767. if (k == 0) {
  7768. row.push(cols[j].textContent);
  7769. }
  7770. else {
  7771. row.push("");
  7772. }
  7773. }
  7774. }
  7775. else {
  7776. row.push(cols[j].textContent);
  7777. }
  7778. }
  7779. else {
  7780. row.push(cols[j].textContent);
  7781. }
  7782. }
  7783. }
  7784. else {
  7785. row.push(cols[j].textContent);
  7786. }
  7787. }
  7788. }
  7789. else {
  7790. cols[j].remove;
  7791. }
  7792. }
  7793. }
  7794. data.push(row.join(","));
  7795. }
  7796. const csv_data = data.join("\n");
  7797. const csv_file = new Blob([csv_data], { type: "text/csv" });
  7798. $(`#downloadCSVLink_${containerid}`).remove();
  7799. $(`#${containerid}`).append(`<a href="${window.URL.createObjectURL(csv_file)}" class="d-none" download="${filename}" id="downloadCSVLink_${containerid}"></a>`);
  7800. $(`#downloadCSVLink_${containerid}`)[0].click();
  7801. }
  7802. setDynamicFilterDpBodyHeight(containerid) {
  7803. const parentEl = $(`#biz-filter-dropdown${containerid}`);
  7804. if (parentEl.hasClass('show') && parentEl.parents('.dashboardwidget-item').length == 0) {
  7805. let deductHeight = 35;
  7806. deductHeight += parentEl.offset().top;
  7807. deductHeight += parentEl.find('.filter-dropdown-footer').outerHeight(true);
  7808. parentEl.find('.filter-dropdown-body').css('max-height', `${window.innerHeight - deductHeight}px`).attr('data-deductheight', deductHeight);
  7809. }
  7810. }
  7811. closeReportPopup(containerid) {
  7812. if (Unibase.Themes.Compact.Components.Index.Instance().isIframeObj.isListPage) {
  7813. window.parent.postMessage('close apps', '*');
  7814. }
  7815. var index = Unibase.Platform.Helpers.NavigationHelper.reportViewerInstance.findIndex(function (o) {
  7816. return (o.childcontainerid === containerid);
  7817. });
  7818. if (index > -1)
  7819. Unibase.Platform.Helpers.NavigationHelper.reportViewerInstance.splice(index, 1);
  7820. this.removeSelectedDatesOnReportPreviewClose(containerid);
  7821. $('#' + containerid).modal('hide');
  7822. $('#' + containerid).remove();
  7823. }
  7824. removeSelectedDatesOnReportPreviewClose(containerid) {
  7825. containerid.includes("_") && (containerid = containerid.slice(1));
  7826. let split = (containerid).split("_");
  7827. if (split[1] && Number(split[1])) {
  7828. let report_id = Number(split[1]);
  7829. let filterPanel = Unibase.Platform.Analytics.Components.FilterPanel.Instance();
  7830. let selected_date = filterPanel.selectedDates.find(x => x.Id == report_id);
  7831. if (selected_date) {
  7832. let idx = filterPanel.selectedDates.indexOf(selected_date);
  7833. if (idx != -1) {
  7834. filterPanel.selectedDates.splice(idx, 1);
  7835. }
  7836. }
  7837. }
  7838. }
  7839. searchIconClick(containerid) {
  7840. $(`#search_icon${containerid}`).addClass('d-none');
  7841. $(`#search_close_icon${containerid}`).removeClass('d-none');
  7842. $(`#ViewerHeader_${containerid} .card-search-bar`).addClass('search-visible mt-40');
  7843. $(`#ViewerHeader_${containerid} input.txt_global_search`).addClass('d-block').focus();
  7844. }
  7845. closeIconClickclearall(reportid, containerid) {
  7846. $(`#search_close_icon${containerid}`).addClass('d-none');
  7847. $(`#search_icon${containerid}`).removeClass('d-none');
  7848. $(`#ViewerHeader_${containerid} .card-search-bar`).removeClass('search-visible mt-40');
  7849. Unibase.Platform.Analytics.Components.ReportViewer.Instance().clearSearchFilter(`${reportid}`, `${containerid}`);
  7850. }
  7851. showHideViewsSettings(containerid, modetype) {
  7852. if (modetype) {
  7853. $("#reportViewsDropdown_" + containerid).find(".edit-view-icon,.delete-template-icon,.permission-icon,.export-template-icon").removeClass('hidden');
  7854. $(`#dpViewerOptionsMenu_${containerid} .edit-views-link`).addClass('hidden');
  7855. $(`#closeOptionsSpan_${containerid} .edit-views-link`).removeClass('hidden');
  7856. }
  7857. else {
  7858. $("#reportViewsDropdown_" + containerid).find(".edit-view-icon,.delete-template-icon,.permission-icon").addClass('hidden');
  7859. $(`#dpViewerOptionsMenu_${containerid} .edit-views-link`).removeClass('hidden');
  7860. $(`#closeOptionsSpan_${containerid} .edit-views-link`).addClass('hidden');
  7861. }
  7862. const viewDpEl = $(`#subdrop_Tempalate_${containerid}`);
  7863. const categoriesViewDpEl = $(`#reportViewsList_${containerid}`);
  7864. if (viewDpEl.is(':visible')) {
  7865. if (viewDpEl.find('.report-view-item').length > 1) {
  7866. viewDpEl.find('.report-views-list').removeClass('hidden');
  7867. }
  7868. else {
  7869. viewDpEl.find('.report-views-list').addClass('hidden');
  7870. }
  7871. }
  7872. else if (categoriesViewDpEl.is(':visible')) {
  7873. categoriesViewDpEl.find('.li-report-item').each((i, e) => {
  7874. if ($(e).find('.report-view-item').length > 1) {
  7875. $(e).find('.report-views-list').removeClass('hidden');
  7876. }
  7877. else {
  7878. $(e).find('.report-views-list').addClass('hidden');
  7879. }
  7880. });
  7881. }
  7882. }
  7883. loadGroupByCategorySelect2(containerid) {
  7884. const instance = this;
  7885. let data = [];
  7886. let rv_instance = instance.getReportViewerInstance(containerid);
  7887. if (rv_instance != undefined) {
  7888. rv_instance.reportColumns.forEach(function (obj) {
  7889. data.push({ id: obj.ReportColumnId, text: obj.DisplayText });
  7890. });
  7891. $(`#groupByCatSelect_${containerid}`).select2({
  7892. placeholder: "Select Columns",
  7893. multiple: true,
  7894. data: data
  7895. });
  7896. }
  7897. }
  7898. applyGroupByCategory(containerid) {
  7899. const instance = this;
  7900. let rv_instance = instance.getReportViewerInstance(containerid);
  7901. if (rv_instance && rv_instance.PageSize)
  7902. instance.PageSize = rv_instance.PageSize;
  7903. $(`#groupByCatDp_${containerid}`).dropdown('toggle');
  7904. rv_instance.groupBy_Category = [];
  7905. let { allSortColumns } = this.getStringfySortColsAlongWithGrpByCols(containerid, rv_instance);
  7906. if (!allSortColumns.length) {
  7907. MessageHelper.Instance().showError("Please select a group by column to apply group by", "div_ErrorMessage", containerid);
  7908. }
  7909. this.getReportData(rv_instance.ReportId, containerid, rv_instance.reportWidgetData, null);
  7910. }
  7911. clearGroupByCategory(containerid) {
  7912. const instance = this;
  7913. const rv_instance = instance.getReportViewerInstance(containerid);
  7914. if (rv_instance.groupBy_Category.length) {
  7915. rv_instance.groupBy_Category = [];
  7916. rv_instance.table.setGroupBy([]);
  7917. $(`#groupByCatSelect_${containerid}`).val('').trigger('change');
  7918. }
  7919. if ($(`#groupByCatDpMenu_${containerid}`).hasClass('show')) {
  7920. $(`#groupByCatDp_${containerid}`).dropdown('toggle');
  7921. }
  7922. }
  7923. toggleGroupByAndShowAllBtn(containerid, isTable) {
  7924. if (isTable) {
  7925. $(`#groupByCatDp_${containerid}`).addClass('d-xl-block');
  7926. }
  7927. else {
  7928. $(`#groupByCatDp_${containerid}`).removeClass('d-xl-block');
  7929. }
  7930. }
  7931. getPortletWidgetData(reportid, containerid, reportwidgetdata, callback) {
  7932. var instance = Unibase.Platform.Analytics.Components.ReportViewer.Instance();
  7933. let rv_ins = instance.getReportViewerInstance(containerid);
  7934. $("#calendarViewer_" + containerid).addClass('hidden');
  7935. this.bindExistingPropsOfViewerInstance(containerid);
  7936. if (containerid.indexOf("div_portletwidget") > -1 || containerid.indexOf("div_kpireport") > -1) {
  7937. let portletwidgetid = containerid.split("_")[2];
  7938. instance.parentContainerId = containerid.split("__")[1];
  7939. instance.PortletWidgetId = portletwidgetid;
  7940. Unibase.Platform.Portlets.Managers.PortletManager.Instance().getPortletWidget(portletwidgetid).then(function (resp) {
  7941. return __awaiter(this, void 0, void 0, function* () {
  7942. if (resp.result != null) {
  7943. let filter = Unibase.Themes.Providers.DashboardHelper.Instance().replaceWidgetParameterValues(resp.result.Parameter, resp.result.InstalledAppId);
  7944. let rv_ins = instance.getReportViewerInstance(containerid);
  7945. rv_ins.isWidget = true;
  7946. instance.inputParameters = filter;
  7947. rv_ins.inputParameters = filter;
  7948. rv_ins.getdetailFilters[reportid] = {
  7949. Reportid: reportid,
  7950. Filter: filter
  7951. };
  7952. if (containerid.indexOf("viewall") > -1) {
  7953. instance.PageSize = 20;
  7954. instance.IsPortletWidget = false;
  7955. }
  7956. else {
  7957. if (containerid.indexOf("div_kpireport") == -1) {
  7958. $('#' + containerid).find('.txt_global_search').hide();
  7959. $('#' + containerid).find('.search_icon').addClass("hidden");
  7960. instance.IsPortletWidget = true;
  7961. instance.PageSize = 5;
  7962. }
  7963. }
  7964. instance.reportWidgetData = (reportwidgetdata != undefined) ? reportwidgetdata : 0;
  7965. yield instance.getReportData(reportid, containerid, reportwidgetdata, callback);
  7966. }
  7967. });
  7968. });
  7969. }
  7970. else {
  7971. instance.reportWidgetData = (reportwidgetdata != undefined) ? reportwidgetdata : 0;
  7972. var checkcontainerid = containerid;
  7973. var checkcontainer = checkcontainerid.includes('div_dashboardportletwidget') && !checkcontainerid.includes('userdesignedreportviewer') && !checkcontainerid.includes('_viewall') && !checkcontainerid.includes('fullscreen_');
  7974. if (checkcontainer == true) {
  7975. instance.PageSize = 5;
  7976. rv_ins.isWidget = true;
  7977. }
  7978. instance.getReportData(reportid, containerid, reportwidgetdata, null);
  7979. }
  7980. }
  7981. getReportData(reportid, containerid, reportwidgetdata, callback) {
  7982. return __awaiter(this, void 0, void 0, function* () {
  7983. var instance = this;
  7984. Unibase.Platform.Helpers.NavigationHelper.Instance().showContainerLoading(containerid);
  7985. if ($(`#reportViewsDropdown_${containerid}`).hasClass('show')) {
  7986. $('#viewsDpToggle_' + containerid).dropdown('toggle');
  7987. }
  7988. let rv_instance = instance.getReportViewerInstance(containerid);
  7989. if (rv_instance.isReportPopup) {
  7990. if (containerid.includes('div_dashboardportletwidget') != true && containerid.includes('div_portletwidget') != true || containerid.includes('userdesignedreportviewer_div') == true) {
  7991. if (!rv_instance.isWidget) {
  7992. yield instance.loadFilters(reportid, containerid);
  7993. }
  7994. }
  7995. }
  7996. let listsearch = rv_instance.ListSearchTerm;
  7997. if (listsearch != '') {
  7998. $("#" + containerid).find("#ListSearch").val(listsearch);
  7999. $(`#search-clear-icon${containerid}`).removeClass('d-none').addClass('d-flex');
  8000. }
  8001. let { fromDate, toDate } = this.checkForReportDatePicker(reportid, containerid);
  8002. if (rv_instance.fromDate && rv_instance.toDate) {
  8003. fromDate = rv_instance.fromDate;
  8004. toDate = rv_instance.toDate;
  8005. }
  8006. if (rv_instance.inputParameters && rv_instance.inputParameters.length == 0 && instance.inputParameters.length > 0)
  8007. rv_instance.inputParameters = instance.inputParameters;
  8008. let { stringifiedSortColumns, selectedGroupByText, allSortColumns } = this.getStringfySortColsAlongWithGrpByCols(containerid, rv_instance);
  8009. let reportObj = {
  8010. ReportId: reportid,
  8011. page: instance.Page,
  8012. pageSize: instance.PageSize,
  8013. Filter: rv_instance.dynamicFilters,
  8014. FilterId: (rv_instance.filterId) ? Number(rv_instance.filterId) : instance.filterId,
  8015. InputParameters: rv_instance.inputParameters,
  8016. SearchTerm: listsearch ? listsearch.toString() : null,
  8017. DateFilter: rv_instance.dateFilters,
  8018. DisplayModeTypeId: this.getDisplayModeTypeId(),
  8019. FromDate: fromDate,
  8020. ToDate: toDate,
  8021. viewerTypeId: rv_instance.ViewerSettings && rv_instance.ViewerSettings.selectedViewerTypeId,
  8022. IsPortletWidget: instance.IsPortletWidget,
  8023. IsShowAll: rv_instance.isShowAll,
  8024. SortColumn: stringifiedSortColumns,
  8025. viewerId: rv_instance.ViewerSettings && rv_instance.ViewerSettings.selectedViewerId,
  8026. };
  8027. yield this.reportManager.getReportInfo(reportObj).then(function (reportresponse) {
  8028. return __awaiter(this, void 0, void 0, function* () {
  8029. Unibase.Platform.Helpers.NavigationHelper.Instance().hideContainerLoading(containerid);
  8030. if (reportresponse.status == Unibase.Data.Status.Success) {
  8031. if (reportresponse.result != null) {
  8032. rv_instance.reportResponse = reportresponse;
  8033. if (reportresponse.result.ReportJsonData.Result.Data == "")
  8034. rv_instance.reportData = [];
  8035. else
  8036. rv_instance.reportData = JSON.parse(reportresponse.result.ReportJsonData.Result.Data);
  8037. rv_instance.reportDatalength = rv_instance.reportData.length;
  8038. let reportInfo = reportresponse.result.ReportInfo;
  8039. rv_instance.reportColumns = reportInfo.ReportColumns;
  8040. rv_instance.ReportId = reportInfo.ReportId;
  8041. rv_instance.pivotTypeId = reportInfo.PivotTypeId;
  8042. rv_instance.enablePivotTableConfig = reportInfo.EnablePivotTableConfig;
  8043. rv_instance.js = reportInfo.Js;
  8044. rv_instance.pinDynamicFilters = reportInfo.PinDynamicFilters;
  8045. rv_instance.isDataLabel = reportInfo.IsDataLabel;
  8046. rv_instance.showTooltipHeader = reportInfo.ShowTooltipHeader;
  8047. rv_instance.tickLabelLength = reportInfo.TickLabelLength;
  8048. rv_instance.virtualDom = rv_instance.js ? false : true;
  8049. instance.loadGroupByCategorySelect2(containerid);
  8050. if (!reportInfo.IsEnableCount) {
  8051. if (reportresponse.result.ReportJsonData.Result.Data != "") {
  8052. $(".rpt-Count" + containerid).removeClass("hidden");
  8053. }
  8054. }
  8055. else {
  8056. $(".rpt-Count" + containerid).addClass("hidden");
  8057. }
  8058. if (reportInfo.SortColumns && !rv_instance.sortColumn) {
  8059. rv_instance.sortColumn = JSON.parse(reportInfo.SortColumns);
  8060. }
  8061. instance.tblGroupedColumns(containerid, selectedGroupByText, allSortColumns);
  8062. let isInstance = false;
  8063. let reportViewerInstance = Unibase.Platform.Helpers.NavigationHelper.reportViewerInstance;
  8064. if (reportViewerInstance.length > 0)
  8065. isInstance = reportViewerInstance.find(rv => rv.childcontainerid == containerid) ? true : false;
  8066. if (instance.parentContainerId == undefined) {
  8067. instance.parentContainerId = $("._bizgaze_detail_container:visible").attr("id");
  8068. instance.parentContainerId && instance.parentContainerId.startsWith("_") && (instance.parentContainerId = instance.parentContainerId.slice(1));
  8069. }
  8070. if (!isInstance) {
  8071. reportViewerInstance.push({
  8072. instance: instance,
  8073. childcontainerid: containerid,
  8074. parentcontainerid: "_" + instance.parentContainerId
  8075. });
  8076. }
  8077. if (reportInfo.ReportTypeId == Unibase.Platform.Analytics.Reports.Enums.ReportType.Table) {
  8078. instance.ReportId = reportid;
  8079. let name = reportInfo.DisplayName || reportInfo.ReportName;
  8080. if (reportwidgetdata != null && reportwidgetdata != 0 && containerid.indexOf("_previewreport_") == -1) {
  8081. $("#ReportTitle_" + containerid).text(reportwidgetdata.Data.WidgetName);
  8082. }
  8083. else {
  8084. $("#ReportTitle_" + containerid).text(name).attr('data-content', reportInfo.ReportName).addClass("font-weight-700");
  8085. if (window.innerWidth < 575) {
  8086. let titleVal = $(`#ReportTitle_${containerid}`).width();
  8087. let fullheaderVal = $(`#ViewerHeader_${containerid}`).width();
  8088. let calPer = Math.floor(titleVal * (100 / fullheaderVal));
  8089. if (calPer > 30) {
  8090. const viewerHeaderEl = $(`#ViewerHeader_${containerid}`);
  8091. viewerHeaderEl.find(".header-middle-hide").addClass("d-none").removeClass("d-flex");
  8092. viewerHeaderEl.find(".biz-header-center").removeClass("d-none").addClass("d-flex");
  8093. viewerHeaderEl.find(".biz-count-font a").removeClass("hidden");
  8094. viewerHeaderEl.find(".pagintion-count").addClass("d-none").removeClass("d-block d-md-none d-inline-flex");
  8095. viewerHeaderEl.find(".card-header-left").removeClass("w-60").addClass("w-85");
  8096. viewerHeaderEl.find(".report-title-dp-wrapper").addClass("w-100");
  8097. }
  8098. }
  8099. }
  8100. $("#Reportid_" + containerid).empty();
  8101. $('.Reportid__dynamicfilter').text("");
  8102. $("#Reportid_" + containerid).text(reportInfo.ReportId);
  8103. if (!instance.isWidget) {
  8104. $(".filter_ReportName-li").attr("data-filtername", "All " + name);
  8105. $('.filters-dropdown-div-top-layou button.filterName').text("All " + name);
  8106. }
  8107. if (instance.InstalledAppId != 0) {
  8108. reportid = Number($('.Reportid__dynamicfilter').text());
  8109. }
  8110. else {
  8111. reportid = reportid;
  8112. }
  8113. if (instance.filterId != 0) {
  8114. $(".liFilter_" + instance.filterId).addClass("active-item");
  8115. $(".liFilter_0").removeClass("active-item");
  8116. }
  8117. instance.loadDefaultViewer(reportid, containerid, reportInfo);
  8118. if (reportInfo.PinDynamicFilters || $(`#unPinDynamicFiltersIcon_${containerid}`).is(':visible')) {
  8119. instance.pinDynamicFiltersHandler(reportid, containerid);
  8120. }
  8121. instance.noDataMessage(rv_instance.dynamicFilters, reportInfo.IsAutoData, containerid);
  8122. }
  8123. else {
  8124. var _chartviewer = Unibase.Platform.Analytics.Charts.ChartViewer.Instance();
  8125. _chartviewer.Filter = instance.dynamicFilters;
  8126. if (reportwidgetdata != 0 && reportwidgetdata != null)
  8127. _chartviewer.WidgetName = reportwidgetdata.Data.WidgetName;
  8128. instance.navigationHelper.loadSection(reportid, containerid, _chartviewer, null, callback);
  8129. }
  8130. if (rv_instance.tblGroupedCols.length > 0) {
  8131. $("#downloadDp_" + containerid).removeClass("d-none");
  8132. $("#DownloadReport_" + containerid).addClass("d-none");
  8133. }
  8134. }
  8135. else {
  8136. rv_instance.isListRefresh = false;
  8137. MessageHelper.Instance().showError(reportresponse.message, "div_ErrorMessage", containerid);
  8138. return false;
  8139. }
  8140. }
  8141. else {
  8142. rv_instance.isListRefresh = false;
  8143. MessageHelper.Instance().showError(reportresponse.message, "div_ErrorMessage", containerid);
  8144. return false;
  8145. }
  8146. });
  8147. });
  8148. });
  8149. }
  8150. tblGroupedColumns(containerid, selectedGroupBycols, allSortColumns) {
  8151. var instance = this;
  8152. let rv_instance = instance.getReportViewerInstance(containerid);
  8153. rv_instance.tblGroupedCols = [];
  8154. if (allSortColumns.length) {
  8155. rv_instance.tblGroupedCols = selectedGroupBycols;
  8156. rv_instance.table.setGroupBy(selectedGroupBycols);
  8157. }
  8158. var rptCols = rv_instance.reportColumns;
  8159. if (rptCols && rptCols.length > 0) {
  8160. rptCols = rptCols.filter(x => x.GroupByCategory == true);
  8161. rptCols.forEach(function (rc) {
  8162. if (rv_instance.tblGroupedCols && rv_instance.tblGroupedCols.length > 0) {
  8163. let isGrpCol = rv_instance.tblGroupedCols.find(tgc => tgc == rc.ReportColumnName) ? true : false;
  8164. if (!isGrpCol) {
  8165. rv_instance.tblGroupedCols.push(rc.ReportColumnName);
  8166. rv_instance.groupBy_Category.push(rc.ReportColumnId);
  8167. }
  8168. }
  8169. else {
  8170. rv_instance.tblGroupedCols.push(rc.ReportColumnName);
  8171. rv_instance.groupBy_Category.push(rc.ReportColumnId);
  8172. }
  8173. });
  8174. }
  8175. }
  8176. showAllData(reportid, installedappid, containerid) {
  8177. var instance = this;
  8178. let rv_instance = instance.getReportViewerInstance(containerid);
  8179. if (!rv_instance.isShowAll) {
  8180. rv_instance.Page = 0;
  8181. instance.PageSize = 500;
  8182. rv_instance.PageSize = 500;
  8183. rv_instance.isShowAll = true;
  8184. instance.getReportData(reportid, containerid, rv_instance.reportWidgetData, null);
  8185. }
  8186. else {
  8187. $(`#loadMoreListBtn_${containerid}`).trigger('click');
  8188. }
  8189. }
  8190. getCount(reportid, installedappid, containerid) {
  8191. var instance = this;
  8192. let rv_instance = instance.getReportViewerInstance(containerid);
  8193. let { fromDate, toDate } = instance.checkForReportDatePicker(reportid, containerid);
  8194. if (rv_instance.fromDate && rv_instance.toDate) {
  8195. fromDate = rv_instance.fromDate;
  8196. toDate = rv_instance.toDate;
  8197. }
  8198. let isdynamicfilters = instance.isIdentityFilter(rv_instance.dynamicFilters);
  8199. let listsearch = $("#" + containerid).find("#ListSearch").val();
  8200. rv_instance.isEnableCount = true;
  8201. var rptObj = {
  8202. ReportId: reportid,
  8203. CountOnly: true,
  8204. Page: rv_instance.Page,
  8205. PageSize: rv_instance.PageSize,
  8206. Filter: rv_instance.dynamicFilters,
  8207. FilterId: (rv_instance.filterId) ? Number(rv_instance.filterId) : 0,
  8208. InputParameters: rv_instance.inputParameters,
  8209. SearchTerm: listsearch ? listsearch.toString() : null,
  8210. DateFilter: rv_instance.dateFilters,
  8211. DisplayModeTypeId: this.getDisplayModeTypeId(),
  8212. viewerTypeId: rv_instance && rv_instance.ViewerSettings && rv_instance.ViewerSettings.selectedViewerTypeId,
  8213. viewerId: rv_instance && rv_instance.ViewerSettings && rv_instance.ViewerSettings.selectedViewerId,
  8214. FromDate: fromDate,
  8215. ToDate: toDate,
  8216. IsDynamicFilterApplied: isdynamicfilters
  8217. };
  8218. instance.reportManager.getReportViewerData(rptObj).then((response) => {
  8219. if (response.status == Unibase.Data.Status.Success && response.result != null) {
  8220. instance.bindCountDetails(containerid, response);
  8221. }
  8222. else
  8223. return MessageHelper.Instance().showError("Something went worng on getting count", "div_ErrorMessage");
  8224. });
  8225. }
  8226. getReportViewerInstance(containerid) {
  8227. var instance = this;
  8228. let rv_instance;
  8229. if (Unibase.Platform.Helpers.NavigationHelper.reportViewerInstance.length > 0) {
  8230. let reportviewerInstance = Unibase.Platform.Helpers.NavigationHelper.reportViewerInstance.find(x => x.childcontainerid == containerid);
  8231. if (reportviewerInstance != undefined)
  8232. rv_instance = reportviewerInstance.instance;
  8233. else
  8234. rv_instance = instance;
  8235. }
  8236. else {
  8237. rv_instance = instance;
  8238. }
  8239. return rv_instance;
  8240. }
  8241. load_appconfigurations(config, templatetext, portletwidgetid) {
  8242. var instance = this;
  8243. let settingurltype = config.SettingUrlType;
  8244. var appconfigurationid = config.AppConfigurationId;
  8245. var settingUrl = config.SettingUrl;
  8246. var jsfunction = config.JsFunction;
  8247. var formid = config.FormId;
  8248. let editformid;
  8249. var formpkname = config.FormPrimaryColumn;
  8250. if (config.Icon == "fa fa-plus")
  8251. editformid = 0;
  8252. else if (formpkname != "" && formpkname != null && templatetext == undefined) {
  8253. formpkname = formpkname.toString().toLowerCase();
  8254. editformid = Unibase.Themes.Providers.DetailHelper.recordId;
  8255. }
  8256. else {
  8257. if (templatetext != undefined && templatetext != "") {
  8258. var htmlObject = $(templatetext);
  8259. editformid = htmlObject.find("#hf_widgetitem_Id").val();
  8260. }
  8261. else
  8262. editformid = 0;
  8263. }
  8264. var onclick = "";
  8265. if (settingurltype == 2) {
  8266. onclick = "this.fileCacheHelper.loadJsFile('" + config.SettingUrl + "', function () {var html = Unibase.Apps.Components.Stages.Instance().init();NavigationHelper.Instance().loadPopupHtml(html, Helpers.Size.DockLeft, function(containerid) {" + config.JsFunction + " ;});});";
  8267. }
  8268. else if (settingurltype == 1) {
  8269. if (templatetext.indexOf('hf_widgetid_recordId') > 0) {
  8270. editformid = Unibase.Themes.Providers.DetailHelper.recordId;
  8271. }
  8272. onclick = 'Unibase.Platform.Helpers.NavigationHelper.Instance().loadForm(' + formid + ', ' + editformid + ',' + appconfigurationid + ',' + portletwidgetid + ' )';
  8273. }
  8274. else if (settingurltype == 3) {
  8275. let variablename = "Widget_" + config.SettingUrl.split(",")[0].split(".")[0].trim();
  8276. let methodname = config.SettingUrl.split(".js,")[1];
  8277. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile('widgets/' + config.SettingUrl.split(",")[0], null);
  8278. var onclickurl = "Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile('widgets/" + config.SettingUrl.split(",")[0] + "', function () { " + variablename + "." + methodname + " });";
  8279. onclick = onclickurl;
  8280. }
  8281. else if (settingurltype == 5) {
  8282. onclick = "Unibase.Platform.Analytics.Viewers.TemplateViewer.Instance().dynamicDelete(" + editformid + "," + appconfigurationid + ")";
  8283. }
  8284. return onclick;
  8285. }
  8286. _reportWidgetData(reportid, portletWidgetId, containerid, reportwidgetdata) {
  8287. var instance = this;
  8288. var iconhtml = "";
  8289. if (reportwidgetdata != null) {
  8290. if (reportwidgetdata.AppConfigurations != null && reportwidgetdata.Data.ReportId == reportid) {
  8291. var ungroued = [];
  8292. var widgetcreate = reportwidgetdata.AppConfigurations.WidgetGrouped.filter(function (o) { return o.AppConfigType === 3; });
  8293. if (widgetcreate.length > 0) {
  8294. var onlickurl_grouped = "";
  8295. for (var i = 0; i < widgetcreate.length; i++) {
  8296. var jsfunction = widgetcreate[i].JsFunction;
  8297. onlickurl_grouped = instance.load_appconfigurations(widgetcreate[i], "", portletWidgetId);
  8298. if (widgetcreate[i].Icon == "null" || widgetcreate[i].Icon == "" && widgetcreate[i].SettingUrlType == 3) {
  8299. iconhtml += '<span><a href="javascript:;" class="nav-link biz-highlight-bg-color" id="LinkButton" data-tooltip="true" title="' + widgetcreate[i].SettingName + '" onclick="' + onlickurl_grouped + '">' + HtmlHelper.getHelper().decode(widgetcreate[i].SettingDesignHtml) + '</a></span>';
  8300. }
  8301. else {
  8302. iconhtml += '<span><a href="javascript:;" class="nav-link biz-highlight-bg-color" id="LinkButton" data-tooltip="true" title="' + widgetcreate[i].SettingName + '" onclick="' + onlickurl_grouped + '"><i class="' + widgetcreate[i].Icon + '"></i></a></span>';
  8303. }
  8304. }
  8305. $(".sp_widget_create_" + containerid + "").addClass('d-flex flex-row align-items-center').append(iconhtml);
  8306. }
  8307. var widgetcreateUnGrouped = reportwidgetdata.AppConfigurations.WidgetUnGrouped.filter(function (o) { return o.AppConfigType === 3; });
  8308. if (widgetcreateUnGrouped.length > 0) {
  8309. var onlickurl_Ungrouped = "", iconhtml_ungrouped = "";
  8310. let threeDotsHtml = '<div class="mx-2 my-auto"><a href="javascript:void(0);" id="dropdownMenuButton_' + containerid + '" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><i class="fa fa-ellipsis-v"></i></a><div class="dropdown-menu drop-Button_' + containerid + '" aria-labelledby="dropdownMenuButton_"' + containerid + '></div></div>';
  8311. $('#dropdownMenuButton_' + containerid).parent().remove();
  8312. $(".sp_widget_create_" + containerid + "").parent().append(threeDotsHtml);
  8313. for (var i = 0; i < widgetcreateUnGrouped.length; i++) {
  8314. var jsfunction = widgetcreateUnGrouped[i].JsFunction;
  8315. onlickurl_Ungrouped = instance.load_appconfigurations(widgetcreateUnGrouped[i], "", portletWidgetId);
  8316. if (widgetcreateUnGrouped[i].Icon == "null" || widgetcreateUnGrouped[i].Icon == "" && widgetcreate[i].SettingUrlType == 3) {
  8317. iconhtml_ungrouped += '<a href="javascript:;" class="nav-link biz-highlight-bg-color" id="LinkButton" data-tooltip="true" title="' + widgetcreateUnGrouped[i].SettingName + '" onclick="' + onlickurl_Ungrouped + '">' + HtmlHelper.getHelper().decode(widgetcreateUnGrouped[i].SettingDesignHtml) + '</a>';
  8318. }
  8319. else {
  8320. iconhtml_ungrouped += '<a href="javascript:;" class="nav-link biz-highlight-bg-color d-flex flex-row align-items-center" id="LinkButton" data-tooltip="true" title="' + widgetcreateUnGrouped[i].SettingName + '" onclick="' + onlickurl_Ungrouped + '"><span> ' + widgetcreateUnGrouped[i].SettingName + '</span><i class="font-14 ml-auto ' + widgetcreateUnGrouped[i].Icon + '"></i></a>';
  8321. }
  8322. }
  8323. $('.drop-Button_' + containerid).empty().append(iconhtml_ungrouped);
  8324. }
  8325. }
  8326. }
  8327. }
  8328. loadCurrentReportViews(reportid, reportresponse, containerid, viewall, iseditmode) {
  8329. var instance = this;
  8330. let rv_instance = instance.getReportViewerInstance(containerid);
  8331. instance.viewerManager.getReportViewerTypes(reportid).then(function (viewerresponse) {
  8332. if (viewerresponse.result != null) {
  8333. rv_instance.viewerResponse = viewerresponse;
  8334. instance.getViewers(viewerresponse, reportresponse, reportid, null, containerid, viewall, iseditmode);
  8335. }
  8336. });
  8337. }
  8338. defaultTable(reportid, containerid) {
  8339. var instance = this;
  8340. let rv_instance = instance.getReportViewerInstance(containerid);
  8341. rv_instance.ViewerSettings.selectedViewerId = 0;
  8342. rv_instance.ViewerSettings.selectedViewerTypeId = Unibase.Platform.Analytics.Reports.Enums.ViewerType.Table;
  8343. var viewertype = rv_instance.ViewerSettings.viewertypes.filter(function (o) { return o.ViewerTypeId === Unibase.Platform.Analytics.Reports.Enums.ViewerType.Table; });
  8344. var classname = viewertype[0].Classname;
  8345. var viewerComponent = new Unibase.Platform.Analytics.Viewers[classname]();
  8346. var ireportviewer = viewerComponent;
  8347. ireportviewer.loadView(rv_instance.reportResponse, reportid, 0, instance.Page, rv_instance.PageSize, containerid, rv_instance.ViewerSettings, null, rv_instance.reportWidgetData);
  8348. $(".setAsDefault").removeClass("hidden");
  8349. $('#viewsDpToggle_' + containerid).dropdown('toggle');
  8350. }
  8351. reportSearch(reportid, containerid, reportwidgetdata) {
  8352. var instance = this;
  8353. var textbox = $("#" + containerid).find("#ListSearch");
  8354. $(textbox).unbind("input");
  8355. var delay = 1500;
  8356. var timer;
  8357. let rv_instance = instance.getReportViewerInstance(containerid);
  8358. $(textbox).on('input', function () {
  8359. $("#search-clear-icon" + containerid).addClass('d-none').removeClass('d-flex');
  8360. $("#cardSearchBar" + containerid).find('.main-search-loader').removeClass('hidden');
  8361. window.clearTimeout(timer);
  8362. timer = window.setTimeout(function () {
  8363. instance.ListSearchTerm = $(textbox).val().toString();
  8364. rv_instance && (rv_instance.ListSearchTerm = instance.ListSearchTerm);
  8365. if (!containerid.includes("div_portletwidget")) {
  8366. Unibase.Platform.Helpers.NavigationHelper.ListSearchTerm = $(textbox).val().toString();
  8367. }
  8368. let listsearch = instance.ListSearchTerm;
  8369. if (listsearch.length == 0) {
  8370. $("#search-clear-icon" + containerid).addClass('d-none').removeClass('d-flex');
  8371. ;
  8372. $("#ViewerHeader_" + containerid).find(".txt_global_search").removeClass('contain-value');
  8373. $('.main-search-loader').addClass('hidden');
  8374. }
  8375. else {
  8376. $("#search-clear-icon" + containerid).removeClass('d-none').addClass('d-flex');
  8377. ;
  8378. $("#ViewerHeader_" + containerid).find(".txt_global_search").addClass('contain-value');
  8379. $('.main-search-loader').addClass('hidden');
  8380. }
  8381. $("#" + containerid).find("#ListSearch").val(listsearch);
  8382. let { fromDate, toDate } = instance.checkForReportDatePicker(reportid, containerid);
  8383. if (rv_instance.fromDate && rv_instance.toDate) {
  8384. fromDate = rv_instance.fromDate;
  8385. toDate = rv_instance.toDate;
  8386. }
  8387. let { stringifiedSortColumns } = instance.getStringfySortColsAlongWithGrpByCols(containerid, rv_instance);
  8388. let reportObj = {
  8389. ReportId: reportid,
  8390. page: instance.Page,
  8391. pageSize: instance.PageSize,
  8392. IsEnableCount: rv_instance.isEnableCount,
  8393. Filter: instance.dynamicFilters.length ? instance.dynamicFilters : rv_instance.dynamicFilters,
  8394. FilterId: (instance.filterId) ? Number(instance.filterId) : rv_instance.filterId,
  8395. InputParameters: rv_instance.inputParameters,
  8396. DateFilter: instance.dateFilters,
  8397. SearchTerm: listsearch ? listsearch.toString() : null,
  8398. FromDate: fromDate,
  8399. ToDate: toDate,
  8400. viewerTypeId: rv_instance && rv_instance.ViewerSettings && rv_instance.ViewerSettings.selectedViewerTypeId,
  8401. DisplayModeTypeId: instance.getDisplayModeTypeId(),
  8402. SortColumn: stringifiedSortColumns,
  8403. viewerId: rv_instance && rv_instance.ViewerSettings && rv_instance.ViewerSettings.selectedViewerId,
  8404. isShowAll: rv_instance.isShowAll,
  8405. };
  8406. instance.navigationHelper.showContainerLoading(containerid);
  8407. instance.reportManager.getReportInfo(reportObj).then(function (response) {
  8408. if (response.status == Unibase.Data.Status.Error)
  8409. return MessageHelper.Instance().showError(response.message, "div_ErrorMessage", containerid);
  8410. rv_instance.reportResponse = response;
  8411. if (response.result.ReportJsonData.Result.Data != "")
  8412. rv_instance.reportDatalength = JSON.parse(response.result.ReportJsonData.Result.Data).length;
  8413. instance.loadViewer(response, reportid, containerid, reportwidgetdata);
  8414. instance.navigationHelper.hideContainerLoading(containerid);
  8415. });
  8416. }, delay);
  8417. });
  8418. }
  8419. loadDefaultViewer(reportid, containerid, reportInfo) {
  8420. return __awaiter(this, void 0, void 0, function* () {
  8421. var instance = this;
  8422. let rv_instance = instance.getReportViewerInstance(containerid);
  8423. let viewerId = 0;
  8424. let isAdmin = Unibase.Platform.Membership.Infos.Identity.getCurrentUser().isAdmin;
  8425. if (!isAdmin) {
  8426. yield instance.viewerManager.getReportViewerTypes(reportid).then(function (viewerresponse) {
  8427. let viewres = viewerresponse.result;
  8428. if (viewres != null) {
  8429. let Res = "";
  8430. var width = $(window).width();
  8431. if (width <= 576) {
  8432. Res = viewres.filter(f => f.DisplayModeTypeId == Unibase.Platform.Analytics.Reports.Enums.DisplayModeType.Mobile);
  8433. viewerId = reportInfo.MobileViewerId;
  8434. }
  8435. else {
  8436. Res = viewres.filter(f => f.DisplayModeTypeId == Unibase.Platform.Analytics.Reports.Enums.DisplayModeType.DeskTop || f.DisplayModeTypeId == Unibase.Platform.Analytics.Reports.Enums.DisplayModeType.Both);
  8437. viewerId = reportInfo.DesktopViewerId;
  8438. }
  8439. if (Res.length > 0) {
  8440. let defaultViewer = Res.find(r => r.ViewerId == viewerId);
  8441. if (defaultViewer)
  8442. viewerId = defaultViewer.ViewerId;
  8443. else
  8444. viewerId = Res[0].ViewerId;
  8445. }
  8446. }
  8447. });
  8448. }
  8449. if (viewerId == 0) {
  8450. var width = $(window).width();
  8451. if (width <= 1198) {
  8452. viewerId = reportInfo.MobileViewerId;
  8453. }
  8454. else {
  8455. viewerId = reportInfo.DesktopViewerId;
  8456. }
  8457. }
  8458. let viewerttypeid = 0;
  8459. if (viewerId != 0 && reportInfo.ViewerTypes && reportInfo.ViewerTypes.length) {
  8460. let viewerRes = reportInfo.ViewerTypes.filter(f => f.ViewerId == viewerId);
  8461. let viewerresponse = viewerRes[0];
  8462. if (viewerresponse != undefined)
  8463. viewerttypeid = viewerresponse.ViewerTypeId;
  8464. else
  8465. viewerttypeid = 1;
  8466. }
  8467. else {
  8468. viewerttypeid = 1;
  8469. }
  8470. if (!rv_instance.ViewerSettings || rv_instance.isCategoriesReport) {
  8471. let selectedViewerId = 0, selectedViewerTypeId = 0;
  8472. let isCategoryReport = false;
  8473. if (rv_instance.isCategoriesReport && rv_instance.isCategoryViewer) {
  8474. isCategoryReport = true;
  8475. selectedViewerId = rv_instance.ViewerSettings.selectedViewerId;
  8476. selectedViewerTypeId = rv_instance.ViewerSettings.selectedViewerTypeId;
  8477. }
  8478. rv_instance.ViewerSettings = new Analytics.Providers.ViewerSettings();
  8479. rv_instance.ViewerSettings.defaultViewerId = viewerId;
  8480. rv_instance.ViewerSettings.defaultViewerTypeId = viewerttypeid;
  8481. rv_instance.ViewerSettings.selectedViewerId = isCategoryReport ? selectedViewerId : viewerId;
  8482. rv_instance.ViewerSettings.selectedViewerTypeId = isCategoryReport ? selectedViewerTypeId : viewerttypeid;
  8483. rv_instance.ViewerSettings.InstalledAppId = Unibase.Platform.Helpers.NavigationHelper.installedAppId ? Unibase.Platform.Helpers.NavigationHelper.installedAppId : Unibase.Themes.Providers.DetailHelper.installedAppId;
  8484. rv_instance.ViewerSettings.OnClick = reportInfo.Onclick;
  8485. rv_instance.ViewerSettings.ReportId = reportid;
  8486. }
  8487. rv_instance.reportname = reportInfo.ReportName;
  8488. yield instance.loadViewer(rv_instance.reportResponse, reportid, containerid, rv_instance.reportWidgetData);
  8489. instance.loadReportConfigurations(containerid);
  8490. });
  8491. }
  8492. loadReportConfigurations(containerid) {
  8493. var instance = this;
  8494. let rv_instance = instance.getReportViewerInstance(containerid);
  8495. $("#viewsDpToggle_" + containerid).click(function () {
  8496. let EditTableOnClick = $("#EditTable_" + containerid).attr("onClick").replace("{{appinstalledappid}}", rv_instance.ViewerSettings.InstalledAppId.toString());
  8497. $("#EditTable_" + containerid).attr("OnClick", EditTableOnClick);
  8498. let DuplicateTableOnClick = $("#DuplicateTable_" + containerid).attr("onClick").replace("{{appinstalledappid}}", rv_instance.ViewerSettings.InstalledAppId.toString());
  8499. $("#DuplicateTable_" + containerid).attr("OnClick", DuplicateTableOnClick);
  8500. });
  8501. }
  8502. loadViewerSettings(reportid, id, container, instance, callback, size, ev) {
  8503. if (ev != undefined) {
  8504. ev.stopPropagation();
  8505. }
  8506. if (container == null)
  8507. container = "";
  8508. var _fileCacheHelper = this.fileCacheHelper;
  8509. var Reportid = this.ReportId;
  8510. var settings = eval(instance);
  8511. var viewersettings;
  8512. viewersettings = settings;
  8513. viewersettings.ReportId = reportid;
  8514. Unibase.Platform.Analytics.Components.ReportViewer.Instance().navigationHelper.popup(id, "", settings, callback, size);
  8515. }
  8516. loadViewer(reportresponse, reportid, containerid, reportwidgetdata) {
  8517. var instance = this;
  8518. Unibase.Platform.Helpers.NavigationHelper.Instance().showContainerLoading(containerid);
  8519. let rv_instance;
  8520. if (Unibase.Platform.Helpers.NavigationHelper.reportViewerInstance.length > 0) {
  8521. let reportviewerInstance = Unibase.Platform.Helpers.NavigationHelper.reportViewerInstance.find(x => x.childcontainerid == containerid);
  8522. if (reportviewerInstance != undefined)
  8523. rv_instance = reportviewerInstance.instance;
  8524. else
  8525. rv_instance = instance;
  8526. }
  8527. else {
  8528. rv_instance = instance;
  8529. }
  8530. instance.reportSearch(reportid, containerid, reportwidgetdata);
  8531. Unibase.Platform.Analytics.Components.ReportViewer.Instance().CalendarMonthChanged = false;
  8532. let reportInfo = reportresponse.result.ReportInfo;
  8533. var portletWidgetId = 0;
  8534. $(".sp_widget_create_" + containerid + "").find("span").remove();
  8535. if (containerid.indexOf("div_portletwidget") > -1) {
  8536. portletWidgetId = Number(containerid.split("_")[2]);
  8537. if (containerid.indexOf("viewall") == -1) {
  8538. instance.IsPortletWidget = true;
  8539. $(`#ViewerHeader_${containerid} .card-header-right`).on('click', '.nav-link:not([data-toggle="dropdown"])', function (e) {
  8540. e.stopPropagation();
  8541. });
  8542. }
  8543. }
  8544. else {
  8545. $(".report-search").addClass("d-sm-flex");
  8546. $('.search_icon').removeClass("hidden");
  8547. }
  8548. if (rv_instance.ViewerSettings.selectedViewerId != 0) {
  8549. instance.toggleGroupByAndShowAllBtn(containerid, false);
  8550. }
  8551. instance._reportWidgetData(reportid, portletWidgetId, containerid, reportwidgetdata);
  8552. var viewertype = rv_instance.ViewerSettings.viewertypes.filter(function (o) { return o.ViewerTypeId === rv_instance.ViewerSettings.selectedViewerTypeId; });
  8553. var classname = viewertype[0].Classname;
  8554. var viewerComponent = new Unibase.Platform.Analytics.Viewers[classname]();
  8555. var ireportviewer = viewerComponent;
  8556. ireportviewer.loadView(reportresponse, reportid, rv_instance.ViewerSettings.selectedViewerId, instance.Page, instance.PageSize, containerid, rv_instance.ViewerSettings, null, reportwidgetdata);
  8557. rv_instance.parentContainerId = containerid;
  8558. Unibase.Platform.Helpers.NavigationHelper.Instance().hideContainerLoading(containerid);
  8559. }
  8560. getViewers(viewerresponse, reportresponse, reportid, reportwidgetdata, containerid, viewall, iseditmode) {
  8561. var _fileCacheHelper = this.fileCacheHelper;
  8562. var instance = this;
  8563. var reportInfo = reportresponse.result.ReportInfo;
  8564. let rv_instance = instance.getReportViewerInstance(containerid);
  8565. let ViewerId = rv_instance.ViewerSettings.defaultViewerId;
  8566. let ViewerTypeId = rv_instance.ViewerSettings.defaultViewerTypeId;
  8567. let installedAppId = rv_instance.ViewerSettings.InstalledAppId;
  8568. $(`.subdrop_Tempalate_${containerid} .report-views-list`).find(".report-view-item").not(`#Table_View_${reportid}_${containerid}`).remove();
  8569. $(".subdrop_Tempalate_" + containerid).find(".report-title-link").text(reportresponse.result.ReportInfo.DisplayName);
  8570. $("#reportViewsList_" + containerid).addClass('d-none');
  8571. var bindhtml = '';
  8572. var SetAsDefault = "", Viewer = "", Viewer_icon = "", Edit = "", displayName = "";
  8573. let selectedViewerId = rv_instance.ViewerSettings.selectedViewerId;
  8574. if (viewerresponse.result != null) {
  8575. const displayModeId = instance.getDisplayModeTypeId();
  8576. let displayModeTypes = [];
  8577. for (let i = 0; i < viewerresponse.result.length; i++) {
  8578. let viewer = viewerresponse.result[i];
  8579. if (viewer.ViewerTypeId != Unibase.Platform.Analytics.Reports.Enums.ViewerType.Template || viewer.DisplayModeTypeId == displayModeId || viewer.DisplayModeTypeId == Unibase.Platform.Analytics.Reports.Enums.DisplayModeType.Both || viewall) {
  8580. if (viewer.DisplayName != "" && viewer.DisplayName != null)
  8581. displayName = viewer.DisplayName;
  8582. else
  8583. displayName = viewer.ViewerName;
  8584. if (viewer.ViewerTypeId != 0) {
  8585. var viewertype = rv_instance.ViewerSettings.viewertypes.filter(function (o) { return o.ViewerTypeId === viewer.ViewerTypeId; });
  8586. var icontext = viewertype[0].icontext;
  8587. var formclass = viewertype[0].formclass;
  8588. Viewer_icon = icontext;
  8589. Edit = `Unibase.Platform.Analytics.Components.ReportViewer.Instance().loadViewerSettings(${reportid},${viewer.ViewerId},null, 'Unibase.Platform.Analytics.Components.${formclass}.Instance()', null, Unibase.Platform.Helpers.Size.Auto,event)`;
  8590. }
  8591. let radioInput = '';
  8592. if ((viewer.ViewerTypeId != Unibase.Platform.Analytics.Reports.Enums.ViewerType.Template || viewer.DisplayModeTypeId == displayModeId || viewer.DisplayModeTypeId == Unibase.Platform.Analytics.Reports.Enums.DisplayModeType.Both) && instance.currentUser.isAdmin) {
  8593. radioInput = `<input type="radio" name="SetAsDefault" class="view-radio-input" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().setAsDefault(${reportid},'${containerid}',${viewer.ViewerId},${viewer.ViewerTypeId})">`;
  8594. if (!$(`#DefaultTable_${reportid}_${containerid} input`).hasClass('view-radio-input')) {
  8595. $(`#DefaultTable_${reportid}_${containerid}`).prepend(`<input type="radio" name="SetAsDefault" class="view-radio-input" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().setAsDefault(${reportid},'${containerid}',0,1)">`);
  8596. }
  8597. }
  8598. bindhtml = `<li class="report-view-item col-lg-4 col-md-6 px-0 px-sm-10 mb-5">
  8599. <a class="dropdown-item flex-between-center" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().loadSelectedViewer(` + reportid + `,'` + containerid + `',` + viewer.ViewerId + `,` + viewer.ViewerTypeId + `)" id="viewItem_${viewer.ViewerId}_${containerid}" href="javascript:;">
  8600. <span class="text-truncate d-flex align-items-center">${radioInput}<span class="report-view-title ml-1" id="loadViewer_` + i + "_" + containerid + `">` + displayName + `</span></span>
  8601. <span class="viewer-setting-icons"><span onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().viewerPermissions('` + containerid + `',` + viewer.ViewerId + `,event)" class="ml-1 permission-icon hidden" data-tooltip="true" title="Viewer Permissions"><i class="las la-lock font-18"></i></span><span onclick="${Edit}" class="ml-2 edit-view-icon hidden" data-tooltip="true" title="Edit Template"><i class="las la-pen font-18"></i></span>
  8602. <span class="ml-2 delete-template-icon hidden" id="deleteTemplateIcon_${viewer.ViewerId}" data-tooltip="true" title="Delete Template" onclick="Unibase.Platform.Analytics.Components.TemplateViewerSettings.Instance().deleteViewer(${viewer.ViewerId},${viewer.ViewerTypeId},'${containerid}',event);"><i class="las la-trash-alt font-18"></i></span>
  8603. <span class="ml-2 export-template-icon hidden" id="Icon_${viewer.ViewerId}" data-tooltip="true" title="Export Template" onclick="Unibase.Platform.Analytics.Components.ReportBuilder.ImportAndExport.Instance().exportViewers(${viewer.ViewerId},'${viewer.DisplayName || viewer.ViewerName}',0,'${containerid}',event);"><i class="fa fa-download font-18"></i></span></span>
  8604. </a></li>`;
  8605. $(`.subdrop_Tempalate_${containerid}`).find(`#Table_View_${reportid}_${containerid}`).before(bindhtml);
  8606. }
  8607. else {
  8608. if ($.inArray(viewer.DisplayModeTypeId, displayModeTypes) == -1) {
  8609. displayModeTypes.push(viewer.DisplayModeTypeId);
  8610. }
  8611. }
  8612. }
  8613. instance.showHideViewsSettings(containerid, iseditmode);
  8614. if (ViewerId != 0) {
  8615. $(`#viewItem_${ViewerId}_${containerid}`).addClass('active').find('.view-radio-input').prop('checked', true);
  8616. }
  8617. else {
  8618. $(`#DefaultTable_${reportid}_${containerid}`).addClass('active').find('.view-radio-input').prop('checked', true);
  8619. }
  8620. if (selectedViewerId != 0 && selectedViewerId != undefined) {
  8621. $(`.subdrop_Tempalate_${containerid} .report-view-item`).find(".dropdown-item").removeClass('active');
  8622. $(`#viewItem_${selectedViewerId}_${containerid}`).addClass('active');
  8623. }
  8624. else if (selectedViewerId == 0) {
  8625. $(`.subdrop_Tempalate_${containerid} .report-view-item`).find(".dropdown-item").removeClass('active');
  8626. $(`#DefaultTable_${reportid}_${containerid}`).addClass('active');
  8627. }
  8628. if (displayModeTypes.length > 0) {
  8629. $(`#dpViewerOptionsMenu_${containerid} .view-all-link`).removeClass('hidden');
  8630. }
  8631. else {
  8632. $(`#dpViewerOptionsMenu_${containerid} .view-all-link`).addClass('hidden');
  8633. }
  8634. if (viewerresponse.result.length === 0) {
  8635. $(`#dpViewerOptionsMenu_${containerid} .edit-views-link`).addClass('hidden');
  8636. }
  8637. }
  8638. $(`#reportViewsLoader_${containerid}`).addClass('hidden');
  8639. }
  8640. ;
  8641. loadSelectedViewer(reportid, containerid, viewerId, viewerTypeId) {
  8642. var instance = this;
  8643. let rv_instance = instance.getReportViewerInstance(containerid);
  8644. var selectedViewerType = rv_instance.ViewerSettings.viewertypes.find(o => o.ViewerTypeId === viewerTypeId);
  8645. var previousViewerType = rv_instance.ViewerSettings.viewertypes.find(o => o.ViewerTypeId === rv_instance.ViewerSettings.selectedViewerTypeId);
  8646. if ((selectedViewerType && selectedViewerType.ViewerTypeId == Unibase.Platform.Analytics.Reports.Enums.ViewerType.Card) ||
  8647. (previousViewerType && previousViewerType.ViewerTypeId == Unibase.Platform.Analytics.Reports.Enums.ViewerType.Card)) {
  8648. let fromToDates = this.getFromDateToDate();
  8649. let reportObj = {
  8650. ReportId: reportid,
  8651. page: instance.Page,
  8652. pageSize: instance.PageSize,
  8653. Filter: rv_instance.dynamicFilters,
  8654. FilterId: (rv_instance.filterId) ? Number(rv_instance.filterId) : instance.filterId,
  8655. InputParameters: rv_instance.inputParameters,
  8656. SearchTerm: instance.ListSearchTerm,
  8657. DateFilter: rv_instance.dateFilters,
  8658. DisplayModeTypeId: this.getDisplayModeTypeId(),
  8659. FromDate: fromToDates.FromDate,
  8660. ToDate: fromToDates.ToDate,
  8661. viewerTypeId: selectedViewerType && selectedViewerType.ViewerTypeId,
  8662. viewerId: viewerId,
  8663. };
  8664. this.reportManager.getReportInfo(reportObj).then((reportresponse) => __awaiter(this, void 0, void 0, function* () {
  8665. if (reportresponse.status == Unibase.Data.Status.Success) {
  8666. rv_instance.reportResponse = reportresponse;
  8667. if (rv_instance.reportResponse.result && rv_instance.reportResponse.result.ReportJsonData && rv_instance.reportResponse.result.ReportJsonData.Result && rv_instance.reportResponse.result.ReportJsonData.Result.Data) {
  8668. rv_instance.reportData = JSON.parse(rv_instance.reportResponse.result.ReportJsonData.Result.Data);
  8669. $(".reportCountWrap_" + containerid).children().first().removeClass("hidden").next().addClass("hidden");
  8670. rv_instance.reportDatalength && (rv_instance.reportDatalength = rv_instance.reportData.length);
  8671. }
  8672. this.loadViewWrapperFn(rv_instance, reportid, selectedViewerType, containerid, viewerId);
  8673. }
  8674. else
  8675. return MessageHelper.Instance().showError(reportresponse.message, "div_ErrorMessage");
  8676. }));
  8677. }
  8678. else {
  8679. this.loadViewWrapperFn(rv_instance, reportid, selectedViewerType, containerid, viewerId);
  8680. }
  8681. }
  8682. loadViewWrapperFn(rv_instance, reportid, selectedViewerType, containerid, viewerId) {
  8683. const instance = this;
  8684. rv_instance.ViewerSettings.selectedViewerId = viewerId;
  8685. rv_instance.ViewerSettings.selectedViewerTypeId = selectedViewerType.ViewerTypeId;
  8686. var classname = selectedViewerType.Classname;
  8687. var viewerComponent = new Unibase.Platform.Analytics.Viewers[classname]();
  8688. var ireportviewer = viewerComponent;
  8689. ireportviewer.loadView(rv_instance.reportResponse, reportid, viewerId, instance.Page, rv_instance.PageSize, containerid, rv_instance.ViewerSettings, null, rv_instance.reportWidgetData);
  8690. if (viewerId != 0) {
  8691. instance.toggleGroupByAndShowAllBtn(containerid, false);
  8692. }
  8693. $('#viewsDpToggle_' + containerid).dropdown('toggle');
  8694. }
  8695. setAsDefault(reportid, containerid, viewerid, viewertypeid) {
  8696. var instance = this;
  8697. let rv_instance = instance.getReportViewerInstance(containerid);
  8698. rv_instance.ViewerSettings.defaultViewerId = viewerid;
  8699. rv_instance.ViewerSettings.defaultViewerTypeId = viewertypeid;
  8700. instance.updateDefaultViewer(rv_instance.reportResponse, reportid, rv_instance.ViewerSettings.defaultViewerId, rv_instance.ViewerSettings.defaultViewerTypeId, containerid, rv_instance.ViewerSettings.InstalledAppId, rv_instance.reportWidgetData);
  8701. }
  8702. updateDefaultViewer(reportresponse, reportid, ViewerId, ViewerTypeId, containerid, InstalledAppId, reportwidgetdata) {
  8703. var instance = this;
  8704. let rv_instance = instance.getReportViewerInstance(containerid);
  8705. instance.fileCacheHelper.loadJsFile('platform/analytics/requests/new/report.js', function () {
  8706. var resp = reportresponse.result.ReportInfo;
  8707. var mobileViewerId = 0;
  8708. var desktopVieweId = 0;
  8709. let viewerresponse;
  8710. if (ViewerId != 0) {
  8711. let viewerRes = rv_instance.viewerResponse.result.filter(f => f.ViewerId == ViewerId);
  8712. viewerresponse = viewerRes[0];
  8713. if (viewerresponse.ViewerTypeId == Unibase.Platform.Analytics.Reports.Enums.ViewerType.Template) {
  8714. if (viewerresponse.DisplayModeTypeId == Unibase.Platform.Analytics.Reports.Enums.DisplayModeType.DeskTop) {
  8715. desktopVieweId = ViewerId;
  8716. }
  8717. else {
  8718. desktopVieweId = reportresponse.result.ReportInfo.DesktopViewerId;
  8719. }
  8720. if (viewerresponse.DisplayModeTypeId == Unibase.Platform.Analytics.Reports.Enums.DisplayModeType.Mobile) {
  8721. mobileViewerId = ViewerId;
  8722. }
  8723. else {
  8724. mobileViewerId = reportresponse.result.ReportInfo.MobileViewerId;
  8725. }
  8726. if (viewerresponse.DisplayModeTypeId == Unibase.Platform.Analytics.Reports.Enums.DisplayModeType.Both) {
  8727. var width = $(window).width();
  8728. if (width <= 576) {
  8729. mobileViewerId = ViewerId;
  8730. }
  8731. else {
  8732. desktopVieweId = ViewerId;
  8733. }
  8734. }
  8735. }
  8736. else {
  8737. desktopVieweId = ViewerId;
  8738. mobileViewerId = ViewerId;
  8739. }
  8740. }
  8741. let obj = rv_instance.reportResponse.result.ReportInfo;
  8742. obj.ReportId = resp.ReportId;
  8743. obj.ViewerId = 0;
  8744. obj.MobileViewerId = mobileViewerId;
  8745. obj.DesktopViewerId = desktopVieweId;
  8746. obj.ViewerTypeId = ViewerTypeId;
  8747. obj.UpdateDefautViewer = true;
  8748. instance.reportManager.saveReport(obj).then(function (response) {
  8749. if (response.status == Unibase.Data.Status.Success) {
  8750. var data = JSON.parse(response.result);
  8751. let rpt_reponse = reportresponse;
  8752. rpt_reponse.result.ReportInfo = JSON.parse(data.ReportJson);
  8753. rv_instance.reportResponse = rpt_reponse;
  8754. MessageHelper.Instance().showSuccess("Default Viewer Updated", "div_ErrorMessage");
  8755. }
  8756. else {
  8757. MessageHelper.Instance().showError(response.message, "div_ErrorMessage", containerid);
  8758. return false;
  8759. }
  8760. });
  8761. });
  8762. }
  8763. getAllViewers(reportid, containerid) {
  8764. var instance = this;
  8765. let isViewAll = true;
  8766. let viewAllEl = $(`.ViewAllViews_${containerid}:visible`);
  8767. if (viewAllEl.attr('data-viewall') == 'true') {
  8768. isViewAll = true;
  8769. }
  8770. else {
  8771. isViewAll = false;
  8772. }
  8773. if (isViewAll == true) {
  8774. viewAllEl.addClass('hidden');
  8775. $(`#closeOptionsSpan_${containerid}`).find(`.ViewAllViews_${containerid}`).removeClass('hidden');
  8776. }
  8777. else {
  8778. viewAllEl.addClass('hidden');
  8779. $(`#closeOptionsSpan_${containerid}`).find(`.ViewAllViews_${containerid}`).addClass('hidden');
  8780. }
  8781. instance.getReportCategories(reportid, containerid, isViewAll, false);
  8782. }
  8783. getReportCategories(reportid, containerid, viewall, iseditmode) {
  8784. if (!$(`#reportViewsDropdown_${containerid}`).hasClass('show')) {
  8785. $(`#closeOptionsSpan_${containerid}`).find('a').addClass('hidden');
  8786. $(`#dpViewerOptionsMenu_${containerid}`).find(`.editViewsLink_${containerid}`).removeClass('hidden');
  8787. $(`#reportViewsLoader_${containerid}`).removeClass('hidden');
  8788. }
  8789. var instance = this;
  8790. let rv_instance = instance.getReportViewerInstance(containerid);
  8791. let reportResponse = rv_instance.reportResponse;
  8792. instance.reportManager.getReportCategoriesByReportId(reportid).then(function (rcresponse) {
  8793. if (rcresponse.status == Unibase.Data.Status.Success) {
  8794. var rc_res = "";
  8795. if (rcresponse.result != "[]") {
  8796. rc_res = JSON.parse(rcresponse.result);
  8797. rv_instance.isCategoriesReport = true;
  8798. let reportTitleHtml = "";
  8799. let reportViewHtml = "";
  8800. let Edit = "";
  8801. let addedReportsArr = [];
  8802. $(`#Table_View_${reportid}_${containerid}`).addClass("d-none");
  8803. $(".subdrop_Tempalate_" + containerid).addClass("d-none");
  8804. $("#reportViewsList_" + containerid).html("");
  8805. instance.viewerManager.getReportViewerTypes(rv_instance.ReportId).then(function (viewerresponse) {
  8806. if (viewerresponse.result != null) {
  8807. rv_instance.viewerResponse = viewerresponse;
  8808. }
  8809. });
  8810. let sortedRes = rc_res.reduce((acc, obj) => {
  8811. if (obj.ReportId == reportid) {
  8812. return [obj, ...acc];
  8813. }
  8814. return [...acc, obj];
  8815. }, []);
  8816. for (var rc = 0; rc < sortedRes.length; rc++) {
  8817. let { ReportId, ReportName } = sortedRes[rc];
  8818. let isReportInArray = $.inArray(ReportId, addedReportsArr);
  8819. let isDefaultActive = false, isSelectActive = false;
  8820. if (isReportInArray == -1) {
  8821. addedReportsArr.push(ReportId);
  8822. if (ReportId == rv_instance.ReportId && rv_instance.ViewerSettings.selectedViewerId == 0) {
  8823. isSelectActive = true;
  8824. }
  8825. if (ReportId == rv_instance.ReportId && rv_instance.ViewerSettings.defaultViewerId == 0) {
  8826. isDefaultActive = true;
  8827. }
  8828. let setDafaultRadioHtml = '';
  8829. if (instance.currentUser.isAdmin) {
  8830. setDafaultRadioHtml = `<input type="radio" name="SetAsDefault_${ReportId}" class="view-radio-input" ${isDefaultActive && 'checked'} onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().setAsDefault(${ReportId},'${containerid}',0,1)">`;
  8831. }
  8832. reportTitleHtml += `<li class="li-report-item" id="reportCatItem_${ReportId}"><a class="dropdown-item report-title-link text-truncate font-weight-bold px-0 px-sm-10 mb-5" href="javascript:;" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().loadCategoryReport(${ReportId},'${containerid}');">${ReportName}</a><ul class="report-views-list mx-0 row w-100"><li class="report-view-item col-lg-4 col-md-6 px-0 px-sm-10 mb-5" id="Table_View_${ReportId}_${containerid}"><a href="javascript:;" class="dropdown-item d-flex align-items-center table-view-item ${isSelectActive ? 'active' : ''}" id="DefaultTable_${ReportId}_${containerid}" data-reportid="${ReportId}" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().loadCategoryBySelectedViewer(${ReportId},'${containerid}',0,1);">${setDafaultRadioHtml}<span class="ml-1 text-truncate">Table View</span></a></li></ul></li>`;
  8833. }
  8834. }
  8835. $("#reportViewsList_" + containerid).append(reportTitleHtml);
  8836. const displayModeId = instance.getDisplayModeTypeId();
  8837. for (var rc = 0; rc < sortedRes.length; rc++) {
  8838. let { ReportId, DisplayModeTypeId, ViewerId, DisplayName, ViewerTypeId, ViewerName } = sortedRes[rc];
  8839. if (DisplayModeTypeId == displayModeId || viewall) {
  8840. let displayName = "";
  8841. let isDefaultActive = false, isSelectActive = false;
  8842. let isReportInArray = addedReportsArr.indexOf(ReportId) > -1;
  8843. if (isReportInArray) {
  8844. if (ViewerTypeId != 0) {
  8845. if (ReportId == rv_instance.ReportId && rv_instance.ViewerSettings.selectedViewerId == ViewerId) {
  8846. isSelectActive = true;
  8847. }
  8848. if (ReportId == rv_instance.ReportId && rv_instance.ViewerSettings.defaultViewerId == ViewerId) {
  8849. isDefaultActive = true;
  8850. }
  8851. var viewertype = rv_instance.ViewerSettings.viewertypes.filter(function (o) { return o.ViewerTypeId === ViewerTypeId; });
  8852. var formclass = viewertype[0].formclass;
  8853. Edit = `Unibase.Platform.Analytics.Components.ReportViewer.Instance().loadViewerSettings(${reportid},${ViewerId},null, 'Unibase.Platform.Analytics.Components.${formclass}.Instance()', null, Unibase.Platform.Helpers.Size.Auto,event)`;
  8854. if (DisplayName != "" && DisplayName != null)
  8855. displayName = DisplayName;
  8856. else
  8857. displayName = ViewerName;
  8858. let setDafaultRadioHtml = '';
  8859. if ((ViewerTypeId != Unibase.Platform.Analytics.Reports.Enums.ViewerType.Template || DisplayModeTypeId == displayModeId || DisplayModeTypeId == Unibase.Platform.Analytics.Reports.Enums.DisplayModeType.Both) && instance.currentUser.isAdmin) {
  8860. setDafaultRadioHtml = `<input type="radio" name="SetAsDefault_${ReportId}" class="view-radio-input" ${isDefaultActive && 'checked'} onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().setAsDefault(${reportid},'${containerid}',${ViewerId},${ViewerTypeId})">`;
  8861. }
  8862. reportViewHtml = `<li class="report-view-item col-lg-4 col-md-6 px-0 px-sm-10 mb-5"><a class="dropdown-item flex-between-center ${isSelectActive ? 'active' : ''}" href="javascript:;" id="viewItem_${ViewerId}_${containerid}" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().loadCategoryBySelectedViewer(${ReportId},'${containerid}',${ViewerId},${ViewerTypeId});"><span class="text-truncate d-flex align-items-center">${setDafaultRadioHtml}<span class="report-view-title text-truncate ml-1" id="loadViewer_${rc}_${containerid}">${displayName}</span></span><span class="viewer-setting-icons"><span onclick="${Edit}" class="ml-1 edit-view-icon hidden" data-tooltip="true" title="Edit Template"><i class="las la-pen font-18" aria-hidden="true"></i></span><span class="ml-10 delete-template-icon hidden" id="deleteTemplateIcon_${ViewerId}" data-tooltip="true" title="Delete Template" onclick="Unibase.Platform.Analytics.Components.TemplateViewerSettings.Instance().deleteTemplate(${ViewerId},'${containerid}',event);"><i class="las la-trash-alt font-18"></i></span></span></a></li>`;
  8863. $("#reportCatItem_" + ReportId).find(`#Table_View_${ReportId}_${containerid}`).before(reportViewHtml);
  8864. }
  8865. }
  8866. }
  8867. }
  8868. instance.showHideViewsSettings(containerid, iseditmode);
  8869. $(`#reportViewsLoader_${containerid}`).addClass('hidden');
  8870. const templateViews = sortedRes.find(view => view.ViewerTypeId !== Unibase.Platform.Analytics.Reports.Enums.ViewerType.Table && view.ViewerTypeId !== 0);
  8871. if (!templateViews) {
  8872. $(`#dpViewerOptionsMenu_${containerid} .edit-views-link`).addClass('hidden');
  8873. }
  8874. else {
  8875. $(`#dpViewerOptionsMenu_${containerid} .view-all-link`).removeClass('hidden');
  8876. }
  8877. }
  8878. else {
  8879. instance.loadCurrentReportViews(reportid, reportResponse, containerid, viewall, iseditmode);
  8880. }
  8881. }
  8882. else {
  8883. MessageHelper.Instance().showError(rcresponse.message, "div_ErrorMessage", containerid);
  8884. return false;
  8885. }
  8886. });
  8887. }
  8888. loadCategoryBySelectedViewer(reportid, containerid, viewerid, viewertypeid) {
  8889. var instance = this;
  8890. const rv_instance = instance.getReportViewerInstance(containerid);
  8891. if (rv_instance.ReportId === reportid) {
  8892. instance.loadSelectedViewer(reportid, containerid, viewerid, viewertypeid);
  8893. }
  8894. else {
  8895. instance.viewerManager.getReportViewerTypes(reportid).then(function (viewerresponse) {
  8896. if (viewerresponse.result != null) {
  8897. rv_instance.viewerResponse = viewerresponse;
  8898. rv_instance.ViewerSettings.selectedViewerId = viewerid;
  8899. rv_instance.ViewerSettings.selectedViewerTypeId = viewertypeid;
  8900. rv_instance.isCategoryViewer = true;
  8901. instance.loadReport(reportid, null, containerid, null);
  8902. }
  8903. });
  8904. }
  8905. }
  8906. loadCategoryReport(reportid, containerid) {
  8907. const instance = this;
  8908. const rv_instance = instance.getReportViewerInstance(containerid);
  8909. rv_instance.isCategoryViewer = false;
  8910. instance.loadReport(reportid, null, containerid, null);
  8911. }
  8912. loadReportViewAll(reportid, containerid) {
  8913. const instance = this;
  8914. instance.IsPortletWidget = false;
  8915. let portletwidgetid = containerid.split("_")[2];
  8916. let contnrid = "div_portletwidget_" + portletwidgetid + "_viewall";
  8917. Unibase.Platform.Analytics.Components.ReportViewer.Instance().report_ViewAll(reportid, Number(portletwidgetid), contnrid, containerid);
  8918. }
  8919. getReportByUniqueId(uniqueId, staticFilter, inputparameters, dateFilters, fromDate, toDate) {
  8920. var instance = this;
  8921. instance.fromDate = fromDate;
  8922. instance.toDate = toDate;
  8923. instance.report_ViewAllByUniqueId(uniqueId, staticFilter, inputparameters, dateFilters);
  8924. }
  8925. report_ViewAllByUniqueId(uniqueId, staticFilter, inputparameters, dateFilters) {
  8926. var instance = this;
  8927. instance.inputParameters = inputparameters;
  8928. instance.dateFilters = dateFilters;
  8929. instance.reportManager.getReportByUniqueId(uniqueId).then(function (response) {
  8930. let containerid = "_ViewAllByUniqueId_" + moment().unix();
  8931. instance.report_ViewAll(response.result.ReportId, 0, containerid);
  8932. });
  8933. }
  8934. report_ViewAll(reportid, portletwidgetid, containerid, widgetcontainerid) {
  8935. var instance = this;
  8936. var ReportId = 0;
  8937. var reportWidgetData = "";
  8938. var inputParameters = [];
  8939. var containerindex = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.findIndex(x => x == containerid);
  8940. if (containerindex == -1) {
  8941. Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.push(containerid);
  8942. }
  8943. if (reportid == 0) {
  8944. ReportId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key.endsWith("_reportid")).Value);
  8945. containerid = "_previewreport_" + ReportId;
  8946. }
  8947. else
  8948. ReportId = reportid;
  8949. let rv_instance;
  8950. let reportViewerInstance = Unibase.Platform.Helpers.NavigationHelper.reportViewerInstance;
  8951. if (reportViewerInstance.length > 0) {
  8952. if (portletwidgetid != 0) {
  8953. rv_instance = reportViewerInstance.find(x => x.instance.PortletWidgetId == Number(portletwidgetid));
  8954. reportWidgetData = rv_instance.instance.reportWidgetData;
  8955. }
  8956. }
  8957. if (portletwidgetid != 0) {
  8958. Unibase.Platform.Portlets.Managers.PortletManager.Instance().getPortletWidget(portletwidgetid).then(function (resp) {
  8959. return __awaiter(this, void 0, void 0, function* () {
  8960. if (resp.result != null) {
  8961. let filter = Unibase.Themes.Providers.DashboardHelper.Instance().replaceWidgetParameterValues(resp.result.Parameter, resp.result.InstalledAppId);
  8962. inputParameters = filter;
  8963. }
  8964. });
  8965. });
  8966. }
  8967. if (rv_instance != undefined) {
  8968. instance.reportWidgetData = reportWidgetData;
  8969. if (inputParameters.length != 0) {
  8970. instance.inputParameters = inputParameters;
  8971. }
  8972. }
  8973. instance.isReportPopup = true;
  8974. if (widgetcontainerid) {
  8975. const widgetInstance = instance.getReportViewerInstance(widgetcontainerid);
  8976. $.extend(true, instance.dynamicFilters, widgetInstance.dynamicFilters);
  8977. if (widgetInstance.reportResponse.result.ReportInfo.ReportTypeId === Unibase.Platform.Analytics.Reports.Enums.ReportType.Table) {
  8978. instance.ViewerSettings = new Analytics.Providers.ViewerSettings();
  8979. $.extend(true, instance.ViewerSettings, widgetInstance.ViewerSettings);
  8980. }
  8981. }
  8982. reportViewerInstance.push({
  8983. instance: instance,
  8984. childcontainerid: containerid,
  8985. parentcontainerid: "_" + instance.parentContainerId
  8986. });
  8987. var checkdashboard = containerid;
  8988. var selectsize = Unibase.Platform.Helpers.Size.ExtraLarge;
  8989. var rv_obj = Unibase.Platform.Analytics.Components.ReportViewer.Instance();
  8990. rv_obj.reportWidgetData = reportWidgetData;
  8991. rv_obj.fromDate = instance.fromDate;
  8992. rv_obj.toDate = instance.toDate;
  8993. instance.linkReportFilterObj.InputParameters = instance.inputParameters;
  8994. instance.linkReportFilterObj.DateFilters = instance.dateFilters;
  8995. instance.linkReportFilterObj.DynamicFilters = instance.dynamicFilters;
  8996. instance.isLinkReport = true;
  8997. instance.navigationHelper.popup(ReportId, containerid, rv_obj, function () {
  8998. if (containerid) {
  8999. instance.reportViewAllCallBack(containerid);
  9000. }
  9001. }, selectsize);
  9002. }
  9003. reportViewAllCallBack(containerid) {
  9004. const instance = this;
  9005. const containerEl = $(`#${containerid}`);
  9006. containerEl.find(".card-search-bar").removeClass("d-none");
  9007. $(`#reportCloseBtn_${containerid}`).removeClass('d-none');
  9008. $(`#reportMaximizeBtn_${containerid}`).addClass('d-none');
  9009. if (containerid.includes('div_dashboardportletwidget') && !containerid.includes('userdesignedreportviewer')) {
  9010. $(`#reportMinimizeBtn_${containerid}`).removeClass('d-none');
  9011. }
  9012. if (window.outerWidth < 768) {
  9013. $(`#ViewerHeader_${containerid} .report-search-icon`).removeClass('d-none');
  9014. }
  9015. if (!containerid.includes('_linkedreport_')) {
  9016. const rv_instance = instance.getReportViewerInstance(containerid);
  9017. instance.bindAppliedFilterCount(rv_instance, containerid);
  9018. }
  9019. }
  9020. loadAppConfigurations(Installedappid, containerid) {
  9021. var instance = this;
  9022. var jsfiles = [];
  9023. var filecachelper = this.fileCacheHelper;
  9024. $(".ViewerTypes_dropdown").find(".div_appconfigurations").removeClass("hidden");
  9025. var html = `<div class="">
  9026. <div class="dropdown-divider" id="childAppsDivider_${containerid}"></div>
  9027. <span id="span_configgroup"></span>
  9028. <div class="btn-group createbuttonhide d-none" id="layout_create_` + containerid + `"></div>
  9029. <div class="config_dropdown hidden">
  9030. <div class="d-none"><a class="no-caret dropdown-toggle biz-highlight-bg-color w-40p ViewerTypes_` + containerid + `" href="javascript:;" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" id="Template_ViewerTypes_` + containerid + `"></a></div>
  9031. <div id="layout-list-settings_` + containerid + `" class=""> </div></div>`;
  9032. $("#ViewerHeader_" + containerid).find(".card-header-right .div_appconfigurations").html(html);
  9033. var apphtml = "";
  9034. var createhtml = "";
  9035. var childapphtml = "";
  9036. if (Installedappid !== undefined && Installedappid != 0) {
  9037. $("#layout-list-settings_" + containerid).html('<a class="hidden layout-list-settings-item" id="layout-list-settings-item_' + containerid + '"></a>');
  9038. instance.appmanager.getListAppConfigurations(Installedappid).then(function (response) {
  9039. for (let i = 0; i < (response.result ? response.result.length : 0); i++) {
  9040. instance.appCnfigType = Number(response.result[i].AppConfigType);
  9041. if (Number(response.result[i].SettingUrlType) == Unibase.Platform.Apps.Enums.SettingUrlType.Component && Number(response.result[i].AppConfigType) == Unibase.Platform.Apps.Enums.AppConfigeType.List && response.result[i].Ungrouped == false) {
  9042. $(".config_dropdown").removeClass("hidden");
  9043. jsfiles.push(response.result[i].SettingUrl);
  9044. var jsfunction = response.result[i].JsFunction;
  9045. filecachelper.loadJsFile(response.result[i].SettingUrl, function () { });
  9046. apphtml += '<a class="dropdown-item layout-list-settings-item_' + containerid + '" href="javascript:;" id="configuration_' + response.result[i].AppConfigurationId + '" onclick ="Unibase.Platform.Analytics.Components.ReportViewer.Instance().Configurationclick(' + response.result[i].AppConfigurationId + ')" value=' + response.result[i].AppConfigurationId + '>' + response.result[i].SettingName + ' </a>';
  9047. }
  9048. if (Number(response.result[i].SettingUrlType) == Unibase.Platform.Apps.Enums.SettingUrlType.Component && Number(response.result[i].AppConfigType) == Unibase.Platform.Apps.Enums.AppConfigeType.List && response.result[i].Ungrouped == true) {
  9049. $(".config_dropdown").removeClass("hidden");
  9050. jsfiles.push(response.result[i].SettingUrl);
  9051. var jsfunction = response.result[i].JsFunction;
  9052. filecachelper.loadJsFile(response.result[i].SettingUrl, function () { });
  9053. createhtml += '<a class="btn btn-sm btn-primary create-btn mx-2" href="javascript:;" id="configuration_' + response.result[i].AppConfigurationId + '" onclick ="Unibase.Platform.Analytics.Components.ReportViewer.Instance().Configurationclick(' + response.result[i].AppConfigurationId + ')" value=' + response.result[i].AppConfigurationId + '>' + response.result[i].SettingName + ' </a>';
  9054. }
  9055. if (Number(response.result[i].SettingUrlType) == Unibase.Platform.Apps.Enums.SettingUrlType.JsFunction && Number(response.result[i].AppConfigType) == Unibase.Platform.Apps.Enums.AppConfigeType.List && response.result[i].Ungrouped == false) {
  9056. $(".config_dropdown").removeClass("hidden");
  9057. jsfiles.push(response.result[i].SettingUrl);
  9058. var jsfunction = response.result[i].JsFunction;
  9059. filecachelper.loadJsFile(response.result[i].SettingUrl, function () { });
  9060. apphtml += '<a class="dropdown-item layout-list-settings-item_' + containerid + '" href="javascript:;" id="configuration_' + response.result[i].AppConfigurationId + '" onclick ="' + jsfunction + '" value=' + response.result[i].AppConfigurationId + '>' + response.result[i].SettingName + ' </a>';
  9061. }
  9062. if (Number(response.result[i].SettingUrlType) == Unibase.Platform.Apps.Enums.SettingUrlType.Form && Number(response.result[i].AppConfigType) == Unibase.Platform.Apps.Enums.AppConfigeType.List && response.result[i].Ungrouped == true) {
  9063. var onclickhtml = "Unibase.Platform.Helpers.NavigationHelper.Instance().loadForm(" + response.result[i].FormId + ", 0, " + response.result[i].AppConfigurationId + ")";
  9064. createhtml += '<div class="d-none d-md-block"><a class="btn btn-sm btn-primary create-btn" href = "javascript:;" onclick="' + onclickhtml + '" id = "btn_' + response.result[i].SettingName + '" > <span class="' + response.result[i].Icon + ' font-10 mr-1" > </span> Create </a></div><div class="d-block d-md-none"><a class="biz-highlight-bg-color " href = "javascript:;" onclick="' + onclickhtml + '" id = "btn_' + response.result[i].SettingName + '" > <span class="biz-icon-size ' + response.result[i].Icon + ' font-10 create-icon"> </span></a></div>';
  9065. if ($("#ViewerHeader_" + containerid).find(".card-header-right .create-btn").length == 0) {
  9066. $("#ViewerHeader_" + containerid).find(".card-header-right .create-place,.biz-header-center .create-place").html(createhtml);
  9067. }
  9068. }
  9069. if (Number(response.result[i].SettingUrlType) == Unibase.Platform.Apps.Enums.SettingUrlType.Form && Number(response.result[i].AppConfigType) == Unibase.Platform.Apps.Enums.AppConfigeType.List && response.result[i].Ungrouped == false) {
  9070. $(".config_dropdown").removeClass("hidden");
  9071. var onclickhtml = "Unibase.Platform.Helpers.NavigationHelper.Instance().loadForm(" + response.result[i].FormId + ", 0, " + response.result[i].AppConfigurationId + ")";
  9072. apphtml += '<a class="dropdown-item layout-list-settings-item_' + containerid + '" href="javascript:;" id="configuration_' + response.result[i].AppConfigurationId + '" onclick="' + onclickhtml + '" id = "btn_' + response.result[i].SettingName + '" >' + response.result[i].SettingName + '</a>';
  9073. }
  9074. if (Number(response.result[i].SettingUrlType) == Unibase.Platform.Apps.Enums.SettingUrlType.JsFunction && Number(response.result[i].AppConfigType) == Unibase.Platform.Apps.Enums.AppConfigeType.List && response.result[i].Ungrouped == true) {
  9075. var jsfunction = response.result[i].JsFunction;
  9076. filecachelper.loadJsFile(response.result[i].SettingUrl, function () { });
  9077. createhtml += '<a class="btn btn-sm btn-primary create-btn mx-2" href = "javascript:;" onclick="' + jsfunction + '" id = "btn_' + response.result[i].SettingName + '" > <span class="' + response.result[i].Icon + ' font-10" > </span></a>';
  9078. }
  9079. if (Number(response.result[i].AppConfigType == Unibase.Platform.Apps.Enums.AppConfigeType.Settings && response.result[i].Ungrouped == true)) {
  9080. var onclickhtml = "Unibase.Platform.Helpers.NavigationHelper.Instance().loadList(" + response.result[i].LinkAppId + ", null) ";
  9081. createhtml += '<a class="biz-highlight-bg-color" href = "javascript:;" onclick="' + onclickhtml + '" id = "btn_' + response.result[i].SettingName + '" > <span class="fa fa-cog biz-icon-size" > </span></a>';
  9082. $("._bizgaze_detail_container").find(".card-header-top").find(".card-header-left").addClass("w-60").removeClass("w-70");
  9083. }
  9084. if (Number(response.result[i].SettingUrlType) == Unibase.Platform.Apps.Enums.SettingUrlType.Procedure && Number(response.result[i].AppConfigType) == Unibase.Platform.Apps.Enums.AppConfigeType.List && response.result[i].Ungrouped == false) {
  9085. var onclickhtml = "Unibase.Platform.Apps.Managers.AppManager.Instance().executeProc('" + response.result[i].LinkProcName + "')";
  9086. apphtml += '<a class="dropdown-item layout-list-settings-item_' + containerid + '" href="javascript:;" id="configuration_' + response.result[i].AppConfigurationId + '" onclick="' + onclickhtml + '" id = "btn_' + response.result[i].SettingName + '" >' + response.result[i].SettingName + '</a>';
  9087. }
  9088. if (Number(response.result[i].SettingUrlType) == Unibase.Platform.Apps.Enums.SettingUrlType.Procedure && Number(response.result[i].AppConfigType) == Unibase.Platform.Apps.Enums.AppConfigeType.List && response.result[i].Ungrouped == true) {
  9089. var onclick = "Unibase.Platform.Apps.Managers.AppManager.Instance().executeProc('" + response.result[i].LinkProcName + "')";
  9090. createhtml += '<a class="btn btn-sm text-primary" href = "javascript:;" onclick="' + onclick + '" id = "btn_' + response.result[i].SettingName + '" > <span class="' + response.result[i].Icon + ' font-10" > </span></a>';
  9091. }
  9092. if (response.result[i].IsChildApp) {
  9093. $(".config_dropdown").removeClass("hidden");
  9094. childapphtml += '<a class="dropdown-item layout-list-settings-item_' + containerid + '" href="javascript:;" onclick ="javascript:Unibase.Platform.Helpers.NavigationHelper.Instance().loadList(' + response.result[i].InstalledAppId + ',null);" value=' + response.result[i].InstalledAppId + '>' + response.result[i].AppTitle + ' </a>';
  9095. }
  9096. }
  9097. if (childapphtml.trim().length != 0) {
  9098. childapphtml += `<div class="dropdown-divider" id="AppConfigsDivider_${containerid}"></div>`;
  9099. }
  9100. $("#ViewerHeader_" + containerid).find(".card-header-right .create-place,.biz-header-center .create-place").html(createhtml);
  9101. $("#layout-list-settings-item_" + containerid + ":last").after(apphtml);
  9102. $("#layout-list-settings-item_" + containerid + ":last").before(childapphtml);
  9103. if (childapphtml.trim().length == 0 && apphtml.trim().length == 0) {
  9104. $(`#childAppsDivider_${containerid}`).remove();
  9105. }
  9106. });
  9107. $("#ViewerHeader_" + containerid).find(".create-icon").addClass("pl-1");
  9108. }
  9109. else {
  9110. $(`#dp_${containerid}_viewertypes`).find('.div_appconfigurations').addClass('d-none');
  9111. }
  9112. }
  9113. Configurationclick(id) {
  9114. var instance = this;
  9115. instance.appmanager.getAppConfiguration(id).then(function (response) {
  9116. var jsfunction = response.result.JsFunction;
  9117. instance.fileCacheHelper.loadJsFile(response.result.SettingUrl, function () { });
  9118. if (jsfunction != null && jsfunction != "") {
  9119. var split = jsfunction.split("Instance()");
  9120. var splitinstance = split[0] + "Instance()";
  9121. var jsinstance = eval(splitinstance);
  9122. var component = jsinstance;
  9123. var appSettingComponent = jsinstance;
  9124. if (appSettingComponent !== null && appSettingComponent !== undefined) {
  9125. appSettingComponent.appSettings.InstalledAppId = response.result.InstalledAppId;
  9126. }
  9127. if (component != null && component != undefined) {
  9128. instance.navigationHelper.popup(0, '', component, function () {
  9129. }, Platform.Helpers.Size.Large);
  9130. }
  9131. }
  9132. });
  9133. }
  9134. EditReport(ReportId, type, InstalledAppId, AppConfigType, containerId) {
  9135. const instance = this;
  9136. var reportId = 0;
  9137. if (ReportId == 0)
  9138. reportId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key.endsWith("reportid")).Value);
  9139. else
  9140. reportId = ReportId;
  9141. var reportbuilder = Unibase.Platform.Analytics.Reports.ReportBuilder.Instance();
  9142. if (type == 1)
  9143. reportbuilder.isduplicate = true;
  9144. else
  9145. reportbuilder.isduplicate = false;
  9146. reportbuilder.InstalledAppId = InstalledAppId;
  9147. reportbuilder.appConfigType = reportbuilder.appConfigType != 0 ? reportbuilder.appConfigType : AppConfigType;
  9148. instance.navigationHelper.showLoading();
  9149. instance.navigationHelper.popup(reportId, "", reportbuilder, function () {
  9150. if (containerId) {
  9151. reportbuilder.lastContainerId = containerId;
  9152. if (containerId.includes('div_dashboardportletwidget') || containerId.includes('div_portletwidget') || containerId.includes('div_kpireport') || containerId.includes('_previewreport_') || containerId.includes('_ViewAllByUniqueId_') || containerId.includes('fullscreen') || containerId == 'preview') {
  9153. if (containerId.includes('_viewall') || containerId.includes('_ViewAllByUniqueId_') || containerId.includes('fullscreen') || containerId.includes('_linkedreport_')) {
  9154. reportbuilder.isReportWidget = false;
  9155. return;
  9156. }
  9157. reportbuilder.isReportWidget = true;
  9158. if (containerId.includes('div_dashboardportletwidget') || containerId.includes('div_kpireport')) {
  9159. reportbuilder.reportWidgetType = 'dashboard';
  9160. }
  9161. else if (containerId.includes('div_portletwidget') || containerId.includes('div_kpireport') || containerId.includes('_previewreport_') || containerId == 'preview') {
  9162. reportbuilder.reportWidgetType = 'portlet';
  9163. reportbuilder.lastContainerId = "";
  9164. }
  9165. }
  9166. else {
  9167. reportbuilder.isReportWidget = false;
  9168. reportbuilder.reportWidgetType = '';
  9169. }
  9170. }
  9171. }, Unibase.Platform.Helpers.Size.ExtraLarge);
  9172. }
  9173. refreshStaticObj(ReportId) {
  9174. var reportId = 0;
  9175. if (ReportId == 0)
  9176. reportId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key.endsWith("reportid")).Value);
  9177. else
  9178. reportId = ReportId;
  9179. Unibase.Platform.Analytics.Managers.ReportManager.Instance().refreshStaticObj(reportId).then(function (response) {
  9180. if (response.status == Unibase.Data.Status.Success) {
  9181. MessageHelper.Instance().showSuccess(response.message, '');
  9182. }
  9183. else if (response.status == Unibase.Data.Status.Error) {
  9184. MessageHelper.Instance().showSuccess(response.message, '');
  9185. }
  9186. });
  9187. }
  9188. exportReport(ReportId) {
  9189. var instance = this;
  9190. var reportId = 0;
  9191. if (ReportId == 0)
  9192. reportId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key.endsWith("reportid")).Value);
  9193. if (reportId != 0) {
  9194. instance.navigationHelper.showLoading();
  9195. instance.reportManager.getReportById(reportId).then(function (rptresponse) {
  9196. var exportreportname = rptresponse.result.ReportName;
  9197. instance.reportManager.exportreport(reportId).then(function (response) {
  9198. var filename = exportreportname + ".xml";
  9199. var xmltext = response.result;
  9200. var pom = document.createElement('a');
  9201. var bb = new Blob([xmltext], { type: 'text/plain' });
  9202. pom.setAttribute('href', window.URL.createObjectURL(bb));
  9203. pom.setAttribute('download', filename);
  9204. pom.dataset.downloadurl = ['text/plain', pom.download, pom.href].join(':');
  9205. pom.draggable = true;
  9206. pom.classList.add('dragout');
  9207. pom.click();
  9208. instance.navigationHelper.hideLoading();
  9209. });
  9210. });
  9211. }
  9212. }
  9213. Export(reportid, containerid) {
  9214. var instance = this;
  9215. var _fileCacheHelper = this.fileCacheHelper;
  9216. _fileCacheHelper.loadJsFile('libs/xlsx/xlsx.full.min.js', function () {
  9217. Unibase.Platform.Analytics.Viewers.TableViewer.Instance().Export(reportid, $("#ReportTitle_" + containerid["id"]).text());
  9218. });
  9219. }
  9220. downloadReport(containerid, reportid, filterid, filters, datefilters) {
  9221. var instance = this;
  9222. this.dynamicFilters = filters;
  9223. this.dateFilters = datefilters;
  9224. $("#DownloadReport_" + containerid).unbind().click(function () {
  9225. instance.download(reportid, filterid, instance.dynamicFilters, filters, instance.dateFilters, instance.ViewerSettings.defaultViewerId);
  9226. });
  9227. }
  9228. download(reportid, filterid, dynamicfilters, inputparams, datefilters, viewerid) {
  9229. var instance = this;
  9230. instance.DetailParameters = [];
  9231. instance.getDetailInputParameters();
  9232. let { fromDate, toDate } = this.checkForReportDatePicker(reportid, instance.ContainerId);
  9233. let isdynamicfilters = instance.isIdentityFilter(dynamicfilters);
  9234. let listsearch = instance.ListSearchTerm;
  9235. var postData = {
  9236. ReportId: reportid,
  9237. FilterId: filterid,
  9238. Filter: dynamicfilters,
  9239. InputParameters: inputparams,
  9240. DateFilter: datefilters,
  9241. SearchTerm: listsearch ? listsearch.toString() : null,
  9242. FromDate: fromDate,
  9243. ToDate: toDate,
  9244. ViewerId: viewerid,
  9245. DetailInputParameters: instance.DetailParameters,
  9246. IsDynamicFilterApplied: isdynamicfilters,
  9247. IsPdf: instance.isPdf
  9248. };
  9249. Unibase.Platform.Analytics.Managers.ReportManager.Instance().startDownloadLargeFile(postData).then(function (response) {
  9250. if (response.status == Unibase.Data.Status.Success) {
  9251. MessageHelper.Instance().showSuccess(response.message, '');
  9252. }
  9253. });
  9254. }
  9255. downloadLargeFile(reportid) {
  9256. var instance = this;
  9257. var postData = {
  9258. ReportId: reportid,
  9259. Filter: instance.dynamicFilters
  9260. };
  9261. Unibase.Platform.Analytics.Managers.ReportManager.Instance().startDownloadLargeFile(postData).then(function (Response) {
  9262. });
  9263. }
  9264. reportPermissions(reportid) {
  9265. this.navigationHelper.popup(reportid, '', Unibase.Platform.Analytics.Components.ReportPermissions.Instance(), null, Platform.Helpers.Size.Auto);
  9266. }
  9267. viewerPermissions(containerId, viewerid, ev) {
  9268. if (ev != undefined)
  9269. ev.stopPropagation();
  9270. var obj = Unibase.Platform.Analytics.Components.ViewerPermissions.Instance();
  9271. if (containerId) {
  9272. var rv_ins = this.getReportViewerInstance(containerId);
  9273. if (rv_ins) {
  9274. obj.reportId = rv_ins.ReportId;
  9275. let viewer = rv_ins.viewerResponse.result.find(x => x.ViewerId == viewerid);
  9276. obj.viewerTypeId = viewer && viewer.ViewerTypeId;
  9277. this.navigationHelper.popup(viewerid, '', Unibase.Platform.Analytics.Components.ViewerPermissions.Instance(), null, Platform.Helpers.Size.Auto);
  9278. }
  9279. }
  9280. }
  9281. getDetailInputParameters() {
  9282. var instance = this;
  9283. var inpparams = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters;
  9284. for (var i = 0; i < inpparams.length; i++) {
  9285. var name = inpparams[i].Key.split("_")[2];
  9286. var val = (inpparams[i].Value) ? inpparams[i].Value.toString() : "";
  9287. instance.DetailParameters.push({ "Key": name, "Value": val });
  9288. }
  9289. }
  9290. saveViewAs(reportid) {
  9291. Unibase.Platform.Filters.Components.Filter.Instance().reportId = reportid;
  9292. Unibase.Platform.Filters.Components.EditFilter.Instance().reportId = reportid;
  9293. this.navigationHelper.popup(0, '', Unibase.Platform.Filters.Components.EditFilter.Instance(), null, Platform.Helpers.Size.Auto);
  9294. }
  9295. loadFilters(reportid, containerid) {
  9296. return __awaiter(this, void 0, void 0, function* () {
  9297. var instance = this;
  9298. let filterId = 1;
  9299. Unibase.Platform.Filters.Components.Filter.Instance().filtersContainerId = containerid;
  9300. instance.ReportId = reportid;
  9301. const filterParentEl = $(`#filters-list${containerid}`);
  9302. var html = '';
  9303. var IsAdmin = Unibase.Platform.Membership.Infos.Identity.getCurrentUser().isAdmin;
  9304. if (reportid != 0 && reportid != undefined) {
  9305. html += `<div class="filter-item btn liFilter_${filterId} filter_ReportName-li active" data-filtername="" data-filterId="${filterId}"><a onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().applyFilter(${filterId},${reportid},'${containerid}',true)" href="javascript:;" class="filter-link" id="lnkFilter_${filterId}"><span class="filter-name">All</span></a></div>`;
  9306. yield instance.filtermanager.getReportFilters(reportid).then(function (response) {
  9307. return __awaiter(this, void 0, void 0, function* () {
  9308. if (response.result.length != 0) {
  9309. for (let i = 0; i < response.result.length; i++) {
  9310. var data = response.result[i];
  9311. html += `<div class="filter-item btn liFilter_${data.FilterId}" data-filtername="${data.FilterName}" data-filterId="${data.FilterId}"><a data-tooltip="true" title="${data.FilterName}" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().applyFilter(${data.FilterId},${reportid},'${containerid}',true)" href="javascript:;" class="filter-link" id="lnkFilter_${data.FilterId}"><span>${data.FilterName}</span></a></div>`;
  9312. }
  9313. if (filterParentEl.hasClass('pinned-report-filters')) {
  9314. filterParentEl.find('.filter-item').remove();
  9315. filterParentEl.prepend(html);
  9316. instance.loadPinFiltersAutoComplete(containerid);
  9317. }
  9318. else {
  9319. filterParentEl.html(html);
  9320. }
  9321. $(`#card-header-filters${containerid}`).removeClass('d-none');
  9322. }
  9323. else {
  9324. $(`#card-header-filters${containerid}`).addClass('d-none');
  9325. filterParentEl.html('');
  9326. if (!instance.currentUser.isAdmin) {
  9327. $(`#editFilterOption${containerid}`).remove();
  9328. }
  9329. }
  9330. const navInstance = Unibase.Themes.Compact.Components.Nav.Instance();
  9331. navInstance.removeToolTipForFilterItem($("#" + containerid));
  9332. navInstance.setFiltersNavigation(containerid);
  9333. yield instance.loadDefaultFilter(reportid, containerid);
  9334. let filterOption = `#filters-list${containerid} .nav-item`;
  9335. $(filterOption).first().addClass('active-item');
  9336. $(filterOption).click(function () {
  9337. $(filterOption).removeClass('active-item');
  9338. $(this).addClass('active-item');
  9339. if (instance.layoutIndex == 2 || instance.layoutIndex == 3) {
  9340. $(".filters-dropdown-div-top-layout button.filterName").text($(this).attr('data-filtername'));
  9341. }
  9342. if (!instance.desktopMode)
  9343. $('.biz-wrapper').removeClass('biz__nav__toggle');
  9344. });
  9345. });
  9346. });
  9347. }
  9348. });
  9349. }
  9350. clearSearchFilter(reportid, containerid) {
  9351. $("#ViewerHeader_" + containerid).find(".txt_global_search").removeClass('contain-value');
  9352. $("#" + containerid).find("#ListSearch").val("").trigger("input");
  9353. }
  9354. editFilter(filterid, reportid) {
  9355. Unibase.Platform.Filters.Components.EditFilter.Instance().reportId = reportid;
  9356. this.navigationHelper.popup(filterid, '', Unibase.Platform.Filters.Components.EditFilter.Instance(), null, Platform.Helpers.Size.Auto);
  9357. }
  9358. filterPermissions(filterid) {
  9359. this.navigationHelper.popup(filterid, '', Unibase.Platform.Filters.Components.FilterPermission.Instance(), null, Platform.Helpers.Size.Auto);
  9360. }
  9361. applyFilter(filterid, reportid, containerid, isallrecords, statusname) {
  9362. var instance = this;
  9363. instance.navigationHelper.showLoading();
  9364. if (statusname == 'active' || statusname == 'inactive' || statusname == 'deleted') {
  9365. instance.statusFilters(statusname);
  9366. }
  9367. let rv_ins = instance.getReportViewerInstance(containerid);
  9368. if (rv_ins && rv_ins.PageSize)
  9369. instance.PageSize = rv_ins.PageSize;
  9370. instance.loadFilteredReport(reportid, filterid, containerid);
  9371. }
  9372. statusFilters(statusname) {
  9373. var instance = this;
  9374. let parVal = 0;
  9375. if (statusname == 'active') {
  9376. parVal = Unibase.Platform.Core.Enums.RowStatus.Active;
  9377. }
  9378. else if (statusname == 'inactive') {
  9379. parVal = Unibase.Platform.Core.Enums.RowStatus.InActive;
  9380. }
  9381. else if (statusname == 'deleted') {
  9382. parVal = Unibase.Platform.Core.Enums.RowStatus.Deleted;
  9383. }
  9384. instance.dynamicFilters.push({ ParameterName: "statusid", ParameterValue: parVal.toString(), ExpOp: Platform.Core.Enums.ExpressionOperator.Equals });
  9385. }
  9386. deleteFilter(filterid) {
  9387. var instance = this;
  9388. bootbox.confirm("Do you want to delete the filter?", function (result) {
  9389. if (result) {
  9390. instance.filtermanager.deleteFilter(filterid).then(function (response) {
  9391. if (response.status == Unibase.Data.Status.Success) {
  9392. MessageHelper.Instance().showSuccess(response.message, '');
  9393. $(`.liFilter_${filterid}`).remove();
  9394. $('#reportFiltersList .filter-item').each(function (i, e) {
  9395. $(e).find('.filter-index').text(i + 1);
  9396. });
  9397. let reportid = Unibase.Platform.Filters.Components.Editfilters.Instance().reportId;
  9398. Unibase.Platform.Filters.Managers.FilterManager.Instance().getReportFilters(reportid).then(function (response) {
  9399. return __awaiter(this, void 0, void 0, function* () {
  9400. if (response.result.length == 0) {
  9401. $('#staticFiltersCard').addClass('d-none');
  9402. if (!$('#dynamicFiltersCard').is(':visible'))
  9403. $('#noFiltersErrMsg').removeClass('d-none');
  9404. }
  9405. });
  9406. });
  9407. instance.navigationHelper.closePopUp();
  9408. }
  9409. else if (response.status == Unibase.Data.Status.Error) {
  9410. MessageHelper.Instance().showError(response.message, 'divEditFilterErrMsg');
  9411. }
  9412. });
  9413. }
  9414. });
  9415. }
  9416. sliceText(text) {
  9417. let newText = text.length > 10 ? text.slice(0, 10) + ' ...' : text;
  9418. return newText;
  9419. }
  9420. sliceTooltip(text) {
  9421. let tooltip = text.length > 15 ? text : '';
  9422. return tooltip;
  9423. }
  9424. addEditIcons_Filters(containerid, reportid) {
  9425. var instance = this;
  9426. instance.navigationHelper.popup(reportid, '', Unibase.Platform.Filters.Components.Editfilters.Instance(), null, Platform.Helpers.Size.Auto);
  9427. }
  9428. loadDefaultFilter(reportId, containerid) {
  9429. return __awaiter(this, void 0, void 0, function* () {
  9430. var instance = this;
  9431. let isInstance = false;
  9432. let reportViewerInstance = Unibase.Platform.Helpers.NavigationHelper.reportViewerInstance;
  9433. if (reportViewerInstance.length > 0)
  9434. isInstance = reportViewerInstance.find(rv => rv.childcontainerid == containerid) ? true : false;
  9435. if (!isInstance) {
  9436. reportViewerInstance.push({
  9437. instance: instance,
  9438. childcontainerid: containerid,
  9439. parentcontainerid: "_" + instance.parentContainerId
  9440. });
  9441. }
  9442. let rv_instance = instance.getReportViewerInstance(containerid);
  9443. yield instance.filtermanager.getDefaultFilterByReport(reportId).then(function (response) {
  9444. if (response.result != null && response.result != "") {
  9445. rv_instance.filterId = response.result.FilterId;
  9446. $('.defaultfilter_' + rv_instance.filterId).addClass("imchecked");
  9447. $('.defaultfilter_' + rv_instance.filterId).prop('checked', true);
  9448. $(`#ViewerHeader_${containerid} .filter-item.active`).removeClass('active');
  9449. $('.liFilter_' + rv_instance.filterId).addClass('active');
  9450. }
  9451. else {
  9452. $('.defaultfilter_1').addClass("imchecked");
  9453. $('.defaultfilter_1').prop('checked', true);
  9454. }
  9455. });
  9456. });
  9457. }
  9458. defaultFilter(filterid, reportid) {
  9459. return __awaiter(this, void 0, void 0, function* () {
  9460. if ($('.defaultfilter_' + filterid).hasClass("imchecked")) {
  9461. return false;
  9462. }
  9463. if (filterid == 1) {
  9464. $('.defaultfilter_' + filterid).addClass("imchecked");
  9465. this.deleteDefaultFilter(filterid, reportid);
  9466. return false;
  9467. }
  9468. yield Unibase.Platform.Filters.Components.Filter.Instance().saveDefaultFilter(reportid, Number(filterid));
  9469. $("input[type=radio][name=options]").removeClass("imchecked");
  9470. $('.defaultfilter_' + filterid).addClass("imchecked");
  9471. });
  9472. }
  9473. deleteDefaultFilter(filterid, reportid) {
  9474. return __awaiter(this, void 0, void 0, function* () {
  9475. var instance = this;
  9476. instance.filtermanager.deletedafultfilter(reportid).then(function (response) {
  9477. return __awaiter(this, void 0, void 0, function* () {
  9478. if (response.status == Unibase.Data.Status.Success) {
  9479. return MessageHelper.Instance().showSuccess(response.message, "divEditFiltersErrMsg");
  9480. }
  9481. else {
  9482. return MessageHelper.Instance().showError(response.message, "divEditFiltersErrMsg");
  9483. }
  9484. });
  9485. });
  9486. });
  9487. }
  9488. updateDefaultFilter(filterid, reportid) {
  9489. return __awaiter(this, void 0, void 0, function* () {
  9490. var instance = this;
  9491. yield instance.filtermanager.getReportFilters(reportid).then(function (response) {
  9492. return __awaiter(this, void 0, void 0, function* () {
  9493. if (response.result != null) {
  9494. for (var df = 0; df < response.result.length; df++) {
  9495. if (response.result[df].FilterId != filterid) {
  9496. if (response.result[df].IsDefault) {
  9497. $('.defaultfilter_' + filterid).removeClass("imchecked");
  9498. Unibase.Platform.Filters.Components.Filter.Instance().updateDefaultFilter(response.result[df].FilterId, false);
  9499. }
  9500. }
  9501. }
  9502. }
  9503. });
  9504. });
  9505. });
  9506. }
  9507. pinDynamicFiltersHandler(reportid, containerid) {
  9508. const instance = this;
  9509. if (instance.tabMode) {
  9510. $(`#card-header-filters${containerid}`).removeClass('d-none');
  9511. const filterParentEl = $(`#filters-list${containerid}`);
  9512. $(`#card-header-filters${containerid} .filter-nav-icon`).addClass('hidden');
  9513. filterParentEl.addClass('pinned-report-filters');
  9514. instance.loadPinFiltersAutoComplete(containerid);
  9515. $(`#dynamic-filters${containerid} .filter_design-row`).each(function (i, e) {
  9516. const classList = $(e).attr('class').split(' ');
  9517. $.each(classList, function (id, item) {
  9518. if (item.indexOf('col-') == 0) {
  9519. $(e).removeClass(item);
  9520. }
  9521. });
  9522. $(e).find('input.pl-0').removeClass('pl-0');
  9523. });
  9524. const filterEl = $(`#dynamic-filters${containerid} .filter_design-row`);
  9525. const filtersLength = filterEl.length;
  9526. filterEl.detach().appendTo(filterParentEl);
  9527. if (filtersLength) {
  9528. filterParentEl.removeClass('d-none');
  9529. instance.bindPinnedDynamicFiltersActionBtns(reportid, containerid);
  9530. }
  9531. filterParentEl.find('.filter_design-row').each(function (i, e) {
  9532. if ($(e).find('select').length) {
  9533. const selectContainer = $(e).find('select').data('select2').$container;
  9534. selectContainer.attr('style', `width:${selectContainer.width()}px !important`);
  9535. }
  9536. });
  9537. }
  9538. else {
  9539. $(`#dynamicFilterContentWrap_${containerid}`).children().not('.dynamic-filter-pin').detach().appendTo(`#bizPinnedDynamicFiltersBody_${containerid}`);
  9540. $(`#filter-dropdown-body${containerid}`).css('max-height', '').removeAttr('data-deductheight');
  9541. $(`#bizPinnedDynamicFilters_${containerid}`).removeClass('d-none');
  9542. }
  9543. $(`#unPinDynamicFiltersIcon_${containerid},#cardSearchBar${containerid}`).removeClass('d-none');
  9544. $(`#filter-icon${containerid}`).addClass('d-none');
  9545. $(`#biz-filter-dropdown${containerid}`).removeClass('show');
  9546. if (containerid.includes('div_dashboardportletwidget') || containerid.includes('div_portletwidget') && !instance.navigationHelper.isReportPopup(containerid)) {
  9547. $(`#ViewerHeader_${containerid} .card-header-left`).addClass('w-50');
  9548. $(`#ViewerHeader_${containerid} .txt_global_search`).show();
  9549. }
  9550. if (!$(`#ViewerHeader_${containerid} .filter_design-row`).length) {
  9551. instance.loadDynamicFilters(reportid, containerid);
  9552. }
  9553. }
  9554. unPinDynamicFiltersHandler(containerid) {
  9555. const instance = this;
  9556. if (instance.tabMode) {
  9557. const filterParentEl = $(`#filters-list${containerid}`);
  9558. filterParentEl.removeClass('pinned-report-filters');
  9559. filterParentEl.find('.filter_design-row,.pinned-filters-action-btns,.static-filters-select-wrap').remove();
  9560. filterParentEl.find('.filter-item').removeClass('d-none');
  9561. if (!filterParentEl.find('.filter-item').length) {
  9562. filterParentEl.addClass('d-none');
  9563. }
  9564. else {
  9565. Unibase.Themes.Compact.Components.Nav.Instance().setFiltersNavigation(containerid);
  9566. }
  9567. }
  9568. else {
  9569. $(`#bizPinnedDynamicFiltersBody_${containerid}`).children().detach().appendTo(`#dynamicFilterContentWrap_${containerid}`);
  9570. $(`#bizPinnedDynamicFilters_${containerid}`).addClass('d-none');
  9571. }
  9572. $(`#unPinDynamicFiltersIcon_${containerid}`).addClass('d-none');
  9573. $(`#filter-icon${containerid}`).removeClass('d-none');
  9574. }
  9575. bindPinnedDynamicFiltersActionBtns(reportid, containerid) {
  9576. $(`#pinnedFiltersActionBtns_${containerid}`).remove();
  9577. const html = `<div class="pinned-filters-action-btns d-flex c-gap-10 ml-auto" id="pinnedFiltersActionBtns_${containerid}"><a href="javascript:;" class="btn btn-outline-primary btn-xs rounded" id="ApplyGlobalFilter${containerid}" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance()._applyfilter(${reportid},'${containerid}')"><span class="btn-text mr-5">Apply</span><span class="icon-label"><i class="las la-filter"></i></span></a><a href="javascript:;" class="btn btn-outline-danger btn-xs rounded" id="btn_ClearFilter${containerid}" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().clearDynamicFilters(${reportid},'${containerid}')"><span class="btn-text mr-5">Clear</span><span class="icon-label"><i class="las la-times"></i></span></a></div>`;
  9578. $(`#filters-list${containerid}`).append(html);
  9579. }
  9580. loadPinFiltersAutoComplete(containerid) {
  9581. const instance = this;
  9582. const rv_instance = instance.getReportViewerInstance(containerid);
  9583. const filterParentEl = $(`#filters-list${containerid}`);
  9584. const filterData = [];
  9585. filterParentEl.find('.filter-item').each(function (i, e) {
  9586. $(e).addClass('d-none');
  9587. const filterId = +$(e).attr('data-filterid');
  9588. const filterName = filterId == 1 ? 'All' : $(e).attr('data-filtername');
  9589. filterData.push({
  9590. id: filterId,
  9591. text: filterName
  9592. });
  9593. });
  9594. if (filterData.length) {
  9595. $(`#staticFiltersSelectWrap_${containerid}`).remove();
  9596. filterParentEl.prepend(`<div class="static-filters-select-wrap" id="staticFiltersSelectWrap_${containerid}"><select id="staticFiltersSelect_${containerid}" class="static-filters-select"></select></div>`);
  9597. $(`#staticFiltersSelect_${containerid}`).select2({
  9598. placeholder: 'Select Filter',
  9599. data: filterData,
  9600. dropdownAutoWidth: true,
  9601. dropdownParent: $(`#${containerid}`),
  9602. }).on('select2:select', function () {
  9603. const filterId = +$(this).val();
  9604. Unibase.Platform.Analytics.Components.ReportViewer.Instance().applyFilter(filterId, rv_instance.ReportId, containerid, true);
  9605. filterParentEl.find(`.filter-item.active`).addClass('active');
  9606. filterParentEl.find(`.liFilter_${filterId}`).addClass('active');
  9607. });
  9608. $(`#staticFiltersSelect_${containerid}`).val(rv_instance.filterId || 1).trigger('change');
  9609. }
  9610. }
  9611. getDynamicFiltersResponse(reportid) {
  9612. return __awaiter(this, void 0, void 0, function* () {
  9613. var res;
  9614. yield Unibase.Platform.Analytics.Managers.ReportManager.Instance().getDynamicFilters(reportid).then(function (response) {
  9615. res = response;
  9616. });
  9617. return res;
  9618. });
  9619. }
  9620. loadDynamicFilters(reportid, containerid) {
  9621. return __awaiter(this, void 0, void 0, function* () {
  9622. var instance = this;
  9623. if ($(`#ViewerHeader_${containerid} .filter_design-row`).length) {
  9624. return;
  9625. }
  9626. $("#dynamic-filters" + containerid).html("");
  9627. yield instance.dynamicFilter(reportid, containerid);
  9628. });
  9629. }
  9630. dynamicFilter(reportid, containerid) {
  9631. return __awaiter(this, void 0, void 0, function* () {
  9632. var instance = this;
  9633. let rv_instance = instance.getReportViewerInstance(containerid);
  9634. if (rv_instance.reportResponse.result.ReportInfo.IsEnableGlobalDatepicker)
  9635. Unibase.Platform.Analytics.Components._CommonFilter.Instance().commonFilter(reportid, containerid);
  9636. Unibase.Platform.Analytics.Managers.ReportManager.Instance().getDynamicFilters(reportid).then(yield function (response) {
  9637. if (response.length != 0) {
  9638. instance.bindDynamicFilters(response, reportid, containerid);
  9639. $("#filter-dropdown-footer" + containerid).removeClass('d-none');
  9640. instance.setDynamicFilterDpBodyHeight(containerid);
  9641. }
  9642. else if (rv_instance.reportResponse.result.ReportInfo.IsEnableGlobalDatepicker) {
  9643. $("#filter-dropdown-footer" + containerid).removeClass('d-none');
  9644. instance.setDynamicFilterDpBodyHeight(containerid);
  9645. }
  9646. else {
  9647. $("#filter-dropdown-errmessage" + containerid).removeClass('d-none');
  9648. $(`#filters-list${containerid}`).removeClass('pinned-report-filters');
  9649. $(`#dynamicFilterPin_${containerid},#unPinDynamicFiltersIcon_${containerid}`).addClass('d-none');
  9650. $(`#filter-icon${containerid}`).removeClass('d-none');
  9651. if (!$(`#filters-list${containerid} .filter-item`).length) {
  9652. $(`#card-header-filters${containerid}`).addClass('d-none');
  9653. }
  9654. }
  9655. });
  9656. });
  9657. }
  9658. bindDynamicFilters(response, reportid, containerid) {
  9659. var instance = this;
  9660. instance.dateFilters = [];
  9661. instance.getdynamicfilters = [];
  9662. var html = "";
  9663. let filterpanel_instance = Unibase.Platform.Analytics.Components.FilterPanel.Instance();
  9664. let rv_instance = instance.getReportViewerInstance(containerid);
  9665. rv_instance.getdynamicfilters = [];
  9666. filterpanel_instance.dateFilters = [];
  9667. if (rv_instance != undefined) {
  9668. instance.dynamicFilters = rv_instance.dynamicFilters;
  9669. if (!rv_instance.isApplyFilter) {
  9670. rv_instance.dateFilters = [];
  9671. for (var d = 0; d < filterpanel_instance.selectedDates.length; d++) {
  9672. if (filterpanel_instance.selectedDates[d].containerid != "_navCmnDateFilter") {
  9673. filterpanel_instance.selectedDates.splice(d, 1);
  9674. }
  9675. }
  9676. }
  9677. }
  9678. let isPinFilters = false, isPl_0 = 'pl-0';
  9679. let parentEl = $(`#dynamic-filters${containerid}`);
  9680. if ($(`#filters-list${containerid}`).hasClass('pinned-report-filters')) {
  9681. isPinFilters = true;
  9682. parentEl = $(`#filters-list${containerid}`);
  9683. parentEl.removeClass('d-none');
  9684. isPl_0 = '';
  9685. }
  9686. for (let i = 0; i < response.length; i++) {
  9687. var data = response.find(x => x.Index == i);
  9688. let existingFilter;
  9689. if (data) {
  9690. const { DynamicFilterId: dynamicFilterId, DisplayName: displayName, IsRequired } = data;
  9691. const containerIdWithFilterId = containerid + '-' + dynamicFilterId;
  9692. const containerIdWith_FilterId = containerid + '_' + dynamicFilterId;
  9693. let rowindex = response.findIndex(el => el.DynamicFilterId === dynamicFilterId);
  9694. var obj = {
  9695. datalistId: data.DatalistId,
  9696. valueColumn: data.ValueColumn,
  9697. textColumn: data.TextColumn,
  9698. isFilterableColumn: data.IsFilterableColumn,
  9699. dynamicFilterId: data.DynamicFilterId,
  9700. controlTypeId: data.ControlTypeId,
  9701. fontCaseTypeId: data.FontCaseTypeId,
  9702. isUnLimited: data.IsUnLimited,
  9703. IsRequired: data.IsRequired,
  9704. applyFor: data.ApplyFor,
  9705. parentColumn: data.ParentColumn,
  9706. isCustomFilter: data.IsCustomFilter
  9707. };
  9708. if (rv_instance.getdynamicfilters.length > 0) {
  9709. var dFill = rv_instance.getdynamicfilters.find(x => x.isFilterableColumn == data.IsFilterableColumn);
  9710. if (!dFill)
  9711. rv_instance.getdynamicfilters.push(obj);
  9712. }
  9713. else
  9714. rv_instance.getdynamicfilters.push(obj);
  9715. html = `<div class="filter_design-row ${!isPinFilters ? 'col-sm-6 col-lg-4 col-xl-3' : ''}" id="filter_design-row${rowindex}"><div class="" id="div_ReportColumns">`;
  9716. if (data.DataType == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime) {
  9717. html += `<div class="filter-input-wrap"><input type="hidden" id ="hfBizgaze_FromDate${containerIdWith_FilterId}"/><input type ="hidden" id ="hfBizgaze_ToDate${containerIdWith_FilterId}"/><input type="hidden" id = "hfBizgaze_ReportFromDate${containerIdWith_FilterId}" /><input type="hidden" id = "hfBizgaze_ReportToDate${containerIdWith_FilterId}" /><input type="hidden" id="hfBizgaze_RFilterDate${containerIdWith_FilterId}"/><input class="form-control datepicker-input hasDatepicker ${isPl_0} ${IsRequired ? 'form-group-required' : ''}" type="text" id="report-daterange${containerIdWithFilterId}" placeholder="${displayName}" data-placeholder="${displayName}"/><a href="javascript:;" class="input-clear-link" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().clearDateFilter('${containerid}',${dynamicFilterId})"><i class="icon daterange-cross-icon${containerIdWith_FilterId}" data-icon="9"></i></a></div>`;
  9718. parentEl.append(html);
  9719. if (instance.dateFilters.length != 0)
  9720. Unibase.Platform.Analytics.Components.FilterPanel.Instance().dateFilters = instance.dateFilters;
  9721. let datefills = rv_instance.dateFilters.find(d => d.ParameterValue == dynamicFilterId);
  9722. Unibase.Platform.Analytics.Components.FilterPanel.Instance().isPartition = data.IsPartition;
  9723. Unibase.Platform.Analytics.Components.FilterPanel.Instance().load(dynamicFilterId, containerid, datefills ? false : data.IsDefault);
  9724. if (datefills == undefined && !data.IsDefault) {
  9725. $(`#report-daterange${containerIdWithFilterId}`).val("");
  9726. $(`.daterange-cross-icon${containerIdWith_FilterId}`).addClass("hidden");
  9727. }
  9728. instance.reportManager.getReportColumnByAliasName(reportid, data.IsFilterableColumn).then(res => {
  9729. if (res.status == Unibase.Data.Status.Success)
  9730. $("#" + containerid + " #filter_design-row" + rowindex).find(".display-name").text(res.result.DisplayText);
  9731. else
  9732. return MessageHelper.Instance().showError(res.message, "filter-dropdown-errmessage" + containerid);
  9733. });
  9734. }
  9735. else {
  9736. if (instance.dynamicFilters != null)
  9737. existingFilter = instance.dynamicFilters.find(f => f.DynamicFilterId == dynamicFilterId);
  9738. if ((containerid.includes("_ViewAllByUniqueId") || containerid.includes("_linkedreport_")) && instance.dynamicFilters.length > 0) {
  9739. for (let i = 0; i < rv_instance.getdynamicfilters.length; i++) {
  9740. existingFilter = instance.dynamicFilters.find(d => d.ParameterName == rv_instance.getdynamicfilters[i].isFilterableColumn);
  9741. }
  9742. }
  9743. if (data.ControlTypeId == Unibase.Platform.Analytics.Enums.ControlType.textbox) {
  9744. html += `<div class="filter-input-wrap"><input type="text" id= "txtboxcolumn${containerIdWith_FilterId}" class="txtboxcolumn form-control required floating-label-control ${isPl_0} ${IsRequired ? 'form-group-required' : ''}" value="" placeholder="${displayName}" data-placeholder="${displayName}" oninput="Unibase.Platform.Analytics.Components.ReportViewer.Instance().toggleTextBoxClearIcon('${containerid}',${dynamicFilterId})" title="${data.TextColumn}"><a href="javascript:;" class="input-clear-link d-none" id="inputClearIcon_${containerIdWith_FilterId}" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().clearTextBox('${containerid}',${dynamicFilterId})"><i class="icon" data-icon="9"></i></a></div>`;
  9745. $(`#txtboxcolumn${containerIdWith_FilterId}`).append(data.IsFilterableColumn);
  9746. $(`#txtboxcolumn${containerIdWith_FilterId}`).children().remove();
  9747. parentEl.append(html);
  9748. if (existingFilter != null) {
  9749. const containerWith_DynamicFilterId = containerid + "_" + existingFilter.dynamicFilterId;
  9750. $(`#txtboxcolumn${containerWith_DynamicFilterId}`).val(existingFilter.ParameterValue);
  9751. $(`#inputClearIcon_${containerWith_DynamicFilterId}`).removeClass('d-none');
  9752. $(`#autotxtcolumn${containerWith_DynamicFilterId}`).val(existingFilter.ParameterValue).trigger("change");
  9753. }
  9754. }
  9755. else if (data.ControlTypeId == Unibase.Platform.Analytics.Enums.ControlType.select2) {
  9756. var select2id = `select2${containerIdWith_FilterId}`;
  9757. html += `<select id="${select2id}" class="form-control" data-placeholder="${displayName}"></select>`;
  9758. parentEl.append(html);
  9759. instance.loadSelect2(select2id, reportid, true, containerid, obj);
  9760. if (existingFilter != null) {
  9761. for (let j = 0; j < existingFilter.ParameterValues.length; j++) {
  9762. $("#" + select2id).append(`<option value='${existingFilter.ParameterValues[j]}'>${existingFilter.Select2Text[j]}</option>`);
  9763. }
  9764. $("#" + select2id).val(existingFilter.ParameterValues);
  9765. }
  9766. }
  9767. else if (data.ControlTypeId == Unibase.Platform.Analytics.Enums.ControlType.autocomplete || data.ControlTypeId == Unibase.Platform.Analytics.Enums.ControlType.cascadingautocomplete) {
  9768. html = instance.loadAutocompleteHtml(html, containerid, dynamicFilterId, data.IsFilterableColumn, rowindex, displayName);
  9769. parentEl.append(html);
  9770. var select2id = `autotxtcolumn${containerIdWith_FilterId}`;
  9771. instance.loadSelect2(select2id, reportid, false, containerid, obj);
  9772. if (existingFilter != undefined) {
  9773. $("#" + select2id).append(`<option value='${existingFilter.ParameterValue}'>${existingFilter.ParameterText}</option>`);
  9774. $("#" + select2id).val(existingFilter.ParameterValue).trigger('change');
  9775. }
  9776. }
  9777. }
  9778. }
  9779. }
  9780. if (isPinFilters) {
  9781. instance.bindPinnedDynamicFiltersActionBtns(reportid, containerid);
  9782. }
  9783. }
  9784. loadAutocompleteHtml(html, containerid, dynamicfilterid, isfilterablecolumn, rowindex, displayName) {
  9785. const containerIdWith_FilterId = containerid + '_' + dynamicfilterid;
  9786. html += `<input type="hidden" class="ColumnName no-border" id="ColumnName" value="${isfilterablecolumn}" /><input type="hidden" class="ColumnId" id="ColumnId${rowindex}" value="${dynamicfilterid}"/><input type="hidden" class="ReqQuery" id="ReqQuery${rowindex}"/><div class="div_autocomplete"><div class="floating-label-form-group-with-value"><div class="input-group"><select id="autotxtcolumn${containerIdWith_FilterId}" data-placeholder="${displayName}" type="text" class="form-control autotxtcolumn_ required floating-label-control"></select><input type="hidden" id="hf_autotxtcolumn_${rowindex}" class="hf_autotxtcolumn_" value=""></div></div></div>`;
  9787. $(`#autotxtcolumn${containerIdWith_FilterId}`).append(isfilterablecolumn);
  9788. $(`#autotxtcolumn${containerIdWith_FilterId}`).children().remove();
  9789. return html;
  9790. }
  9791. loadAutoComplete(select2id, reportid, textcolumn) {
  9792. var url = _appsettings.server_url() + '/apis/v4/unibase/platform/analytics/dynamicfilterautocomplete/reportid/' + reportid + '/isfilterablecolumn/' + textcolumn;
  9793. AutoCompleteHelper.getHelper().Create("#" + select2id, "#hf_filtercolumn_" + 0, url, null);
  9794. }
  9795. loadSelect2(select2id, reportid, isMultiple, containerid, res) {
  9796. var instance = this;
  9797. var data = [];
  9798. var Ids = 0;
  9799. var value = null;
  9800. var rv_instance = instance.getReportViewerInstance(containerid);
  9801. var userinfo = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
  9802. var url = _appsettings.server_url() + '/apis/v4/unibase/platform/analytics/getdynamicfilterdata';
  9803. const selectEl = $("#" + select2id);
  9804. selectEl.select2({
  9805. placeholder: "Select",
  9806. multiple: isMultiple,
  9807. allowClear: true,
  9808. dropdownAutoWidth: true,
  9809. dropdownParent: $(`#${containerid}`),
  9810. data: data,
  9811. ajax: {
  9812. url: function (request) {
  9813. var reqUrl = url;
  9814. return reqUrl;
  9815. },
  9816. contentType: 'application/json',
  9817. type: "POST",
  9818. delay: 250,
  9819. data: function (params) {
  9820. var parentCol = rv_instance.cascadingFilters.find(cf => cf.ChildColumn == res.isFilterableColumn);
  9821. if (parentCol)
  9822. $("#autotxtcolumn" + containerid + "_" + parentCol.DynamicFilterId).val(Ids).trigger('change');
  9823. if (res.controlTypeId == Unibase.Platform.Analytics.Enums.ControlType.cascadingautocomplete) {
  9824. if (rv_instance.cascadingFilters.length > 0) {
  9825. var casFil = rv_instance.cascadingFilters.find(cf => cf.ChildColumn == res.isFilterableColumn);
  9826. if (casFil)
  9827. value = casFil.Value;
  9828. }
  9829. else
  9830. value = "";
  9831. }
  9832. let encoded_term = (params.term) ? btoa(params.term) : "";
  9833. var obj = {
  9834. ReportId: reportid,
  9835. DataListId: res.datalistId,
  9836. IsFilterableColumn: res.isFilterableColumn,
  9837. TextColumn: res.textColumn,
  9838. ValueColumn: res.valueColumn,
  9839. CasCadingValue: value,
  9840. ApplyFor: res.applyFor,
  9841. ParentColumn: res.parentColumn,
  9842. ControlTypeId: res.controlTypeId,
  9843. Term: encoded_term,
  9844. AuthToken: userinfo.sessionId,
  9845. };
  9846. return JSON.stringify(obj);
  9847. },
  9848. beforeSend: function (xhr) {
  9849. if (userinfo !== undefined && userinfo !== null) {
  9850. xhr.setRequestHeader("Authorization", "Basic " + userinfo.sessionId);
  9851. xhr.setRequestHeader('geoposition', userinfo.latd + ':' + userinfo.lgId);
  9852. }
  9853. },
  9854. processResults: function (data) {
  9855. var selectData = [];
  9856. var Data;
  9857. var result = JSON.parse(data.result);
  9858. if (!result.Data) {
  9859. selectData.push({ id: 123456, text: "No results found", disabled: true });
  9860. }
  9861. else {
  9862. Data = JSON.parse(result.Data);
  9863. for (var i = 0; i < Data.length; i++) {
  9864. selectData.push({
  9865. id: Data[i][res.valueColumn],
  9866. text: Data[i][res.textColumn]
  9867. });
  9868. }
  9869. ;
  9870. }
  9871. return { results: selectData };
  9872. }
  9873. },
  9874. templateResult: function (item) { return item.text; },
  9875. templateSelection: function (item) { return item.text; },
  9876. }).on('select2:select', function (e) {
  9877. let value = e.params.data.id;
  9878. if (rv_instance) {
  9879. for (var d = 0; d < rv_instance.getdynamicfilters.length; d++) {
  9880. var parentCol = rv_instance.getdynamicfilters[d];
  9881. if (parentCol.parentColumn == res.isFilterableColumn) {
  9882. var casFil = { ParentColumn: parentCol.parentColumn, ChildColumn: parentCol.isFilterableColumn, Value: value.toString(), DynamicFilterId: parentCol.dynamicFilterId };
  9883. if (rv_instance.cascadingFilters.length > 0) {
  9884. var index = rv_instance.cascadingFilters.findIndex(f => f.ChildColumn == parentCol.isFilterableColumn);
  9885. if (index > -1) {
  9886. rv_instance.cascadingFilters.splice(index, 1);
  9887. }
  9888. }
  9889. rv_instance.cascadingFilters.push(casFil);
  9890. }
  9891. }
  9892. }
  9893. if (isMultiple) {
  9894. instance.toggleSelect2CountInPinFilters($(this), containerid);
  9895. }
  9896. }).on('select2:clear', function (e) {
  9897. for (var sc = 0; sc < rv_instance.cascadingFilters.length; sc++) {
  9898. var casFil = rv_instance.cascadingFilters[sc];
  9899. if (casFil.ParentColumn == res.isFilterableColumn) {
  9900. $("#autotxtcolumn" + containerid + "_" + casFil.DynamicFilterId).val(Ids).trigger('change');
  9901. rv_instance.cascadingFilters.splice(sc, 1);
  9902. sc--;
  9903. }
  9904. }
  9905. }).on('select2:open', function (e) {
  9906. const dropdownEl = $(this).data('select2').dropdown.$dropdown;
  9907. dropdownEl.off('click').click(function (e) {
  9908. e.stopPropagation();
  9909. });
  9910. dropdownEl.on('click', '.select2-search--dropdown,.select2-search__field', function (e) {
  9911. e.stopPropagation();
  9912. });
  9913. }).on('select2:unselecting', function () {
  9914. $(this).data('unselecting', true);
  9915. }).on('select2:unselect', function () {
  9916. if (isMultiple) {
  9917. instance.toggleSelect2CountInPinFilters($(this), containerid);
  9918. }
  9919. }).on('select2:opening', function (e) {
  9920. if ($(this).data('unselecting')) {
  9921. $(this).removeData('unselecting');
  9922. e.preventDefault();
  9923. }
  9924. });
  9925. selectEl.val(Ids).trigger('change');
  9926. const selectionEl = selectEl.data('select2').$selection;
  9927. res.IsRequired && selectionEl.addClass('form-group-required');
  9928. if ($(`#filters-list${containerid}`).hasClass('pinned-report-filters')) {
  9929. const selectContainer = selectEl.data('select2').$container;
  9930. selectContainer.attr('style', `width:${selectContainer.width()}px !important`);
  9931. }
  9932. }
  9933. toggleSelect2CountInPinFilters(element, containerid) {
  9934. if ($(`#filters-list${containerid}`).hasClass('pinned-report-filters')) {
  9935. const selectedCount = element.select2('data').length;
  9936. const searchEl = element.data('select2').$selection;
  9937. searchEl.find('.select2-selection__count').remove();
  9938. if (selectedCount > 1) {
  9939. searchEl.append(`<span class="select2-selection__count"><span class="badge badge-danger flex-center">${selectedCount > 9 ? '9+' : selectedCount - 1}</span></span>`);
  9940. }
  9941. }
  9942. }
  9943. changeDateFilters(dynamicfilterid, containerid) {
  9944. var instance = this;
  9945. let rv_instance = instance.getReportViewerInstance(containerid);
  9946. if (rv_instance != undefined) {
  9947. let date = rv_instance.dateFilters.find(d => d.ParameterValue == dynamicfilterid);
  9948. if (date == undefined) {
  9949. let getfill = rv_instance.getdynamicfilters.find(gd => gd.dynamicFilterId == dynamicfilterid);
  9950. if (getfill) {
  9951. var dateFilter = {
  9952. ParameterName: getfill.isFilterableColumn,
  9953. ParameterValue: dynamicfilterid,
  9954. FromDate: $("#hfBizgaze_FromDate" + containerid + '_' + dynamicfilterid).val(),
  9955. ToDate: $("#hfBizgaze_ToDate" + containerid + '_' + dynamicfilterid).val(),
  9956. };
  9957. rv_instance.dateFilters.push(dateFilter);
  9958. }
  9959. }
  9960. else if (date) {
  9961. date.FromDate = $("#hfBizgaze_FromDate" + containerid + '_' + dynamicfilterid).val();
  9962. date.ToDate = $("#hfBizgaze_ToDate" + containerid + '_' + dynamicfilterid).val();
  9963. }
  9964. var index = rv_instance.dateFilters.findIndex(x => x.ParameterValue == dynamicfilterid);
  9965. if (index > -1) {
  9966. rv_instance.dateFilters[index].FromDate = $("#hfBizgaze_FromDate" + containerid + '_' + dynamicfilterid).val();
  9967. rv_instance.dateFilters[index].ToDate = $("#hfBizgaze_ToDate" + containerid + '_' + dynamicfilterid).val();
  9968. }
  9969. }
  9970. }
  9971. exportToExcel(tablename) {
  9972. $(document).ready(function () {
  9973. var tab_text = '<table border="1px" >';
  9974. var textRange;
  9975. var txtArea1;
  9976. var j = 0;
  9977. var tab = document.getElementById('table-data');
  9978. var lines = tab.rows.length;
  9979. $('tr:empty').remove();
  9980. var excelheader = "<table border='1px'>";
  9981. if (lines > 0) {
  9982. tab_text = tab_text + '<tr>' + tab.rows[0].innerHTML + '</tr>';
  9983. }
  9984. excelheader += tab_text;
  9985. for (j = 1; j < lines; j++) {
  9986. if (tab.rows[j].style.display != 'none') {
  9987. tab_text = tab_text + "<tr>" + tab.rows[j].innerHTML + "</tr>";
  9988. }
  9989. }
  9990. tab_text = tab_text + "</table>";
  9991. tab_text = tab_text + "</table>";
  9992. tab_text = tab_text.replace(/<A[^>]*>|<\/A>/g, "");
  9993. tab_text = tab_text.replace(/<img[^>]*>/gi, "");
  9994. tab_text = tab_text.replace(/<input[^>]*>|<\/input>/gi, "");
  9995. var ua = window.navigator.userAgent;
  9996. var msie = ua.indexOf("MSIE ");
  9997. if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) {
  9998. txtArea1.document.open("txt/html", "replace");
  9999. txtArea1.document.write(tab_text);
  10000. txtArea1.document.close();
  10001. txtArea1.focus();
  10002. let sa = txtArea1.document.execCommand("SaveAs", true, "DataTableExport.pdf");
  10003. }
  10004. else
  10005. var myBlob = new Blob([tab_text], { type: 'application/vnd.ms-excel' });
  10006. var url = window.URL.createObjectURL(myBlob);
  10007. var a = document.createElement("a");
  10008. document.body.appendChild(a);
  10009. a.href = url;
  10010. a.download = tablename + '.xls';
  10011. a.click();
  10012. setTimeout(function () { window.URL.revokeObjectURL(url); }, 0);
  10013. });
  10014. }
  10015. clearDateFilter(containerid, dynamicfilterid) {
  10016. var instance = this;
  10017. let filterpanel_instance = Unibase.Platform.Analytics.Components.FilterPanel.Instance();
  10018. let rv_instance = instance.getReportViewerInstance(containerid);
  10019. if (rv_instance) {
  10020. if (rv_instance.dateFilters.length > 0) {
  10021. let index = rv_instance.dateFilters.findIndex(d => d.ParameterValue == dynamicfilterid);
  10022. if (index > -1)
  10023. rv_instance.dateFilters.splice(index, 1);
  10024. }
  10025. }
  10026. if (filterpanel_instance.selectedDates.length > 0) {
  10027. let dIndex = filterpanel_instance.selectedDates.findIndex(s => s.Id == dynamicfilterid && s.containerid == containerid);
  10028. if (dIndex > -1)
  10029. filterpanel_instance.selectedDates.splice(dIndex, 1);
  10030. }
  10031. $("#report-daterange" + containerid + '-' + dynamicfilterid).val("");
  10032. $(".daterange-cross-icon" + containerid + '_' + dynamicfilterid).addClass("hidden");
  10033. }
  10034. clearTextBox(containerid, dynamicfilterid) {
  10035. var instance = this;
  10036. let rv_instance = instance.getReportViewerInstance(containerid);
  10037. if (rv_instance) {
  10038. if (rv_instance.dynamicFilters.length > 0) {
  10039. let index = rv_instance.dynamicFilters.findIndex(d => d.DynamicFilterId == dynamicfilterid);
  10040. if (index > -1)
  10041. rv_instance.dynamicFilters.splice(index, 1);
  10042. }
  10043. }
  10044. $('#txtboxcolumn' + containerid + '_' + dynamicfilterid).val('');
  10045. $(`#inputClearIcon_${containerid}_${dynamicfilterid}`).addClass('d-none');
  10046. }
  10047. toggleTextBoxClearIcon(containerid, dynamicfilterid) {
  10048. const inputVal = $(`#txtboxcolumn${containerid}_${dynamicfilterid}`).val();
  10049. const clearIconEl = $(`#inputClearIcon_${containerid}_${dynamicfilterid}`);
  10050. if (inputVal.trim().length > 0) {
  10051. clearIconEl.removeClass('d-none');
  10052. }
  10053. else {
  10054. clearIconEl.addClass('d-none');
  10055. }
  10056. }
  10057. clearDynamicFilters(reportid, containerid, ignoreLoadingFilterRequest) {
  10058. var instance = this;
  10059. let filterpanel_instance = Unibase.Platform.Analytics.Components.FilterPanel.Instance();
  10060. let rv_instance = instance.getReportViewerInstance(containerid);
  10061. if (rv_instance) {
  10062. if (rv_instance.dynamicFilters.length > 0) {
  10063. for (let i = 0; i < rv_instance.dynamicFilters.length; i++) {
  10064. $("#txtboxcolumn" + containerid + '_' + rv_instance.dynamicFilters[i].DynamicFilterId).val('');
  10065. if (rv_instance.dynamicFilters[i].ParameterValues && rv_instance.dynamicFilters[i].ParameterValues.length > 0) {
  10066. $("#select2" + containerid + "_" + rv_instance.dynamicFilters[i].DynamicFilterId).val("");
  10067. $("#select2" + containerid + "_" + rv_instance.dynamicFilters[i].DynamicFilterId).trigger("change");
  10068. }
  10069. }
  10070. }
  10071. if (rv_instance.dateFilters.length > 0) {
  10072. for (let d = 0; d < filterpanel_instance.selectedDates.length; d++) {
  10073. let datefills = rv_instance.dateFilters.find(df => df.ParameterValue == filterpanel_instance.selectedDates[d].Id);
  10074. if (datefills) {
  10075. filterpanel_instance.selectedDates.splice(d, 1);
  10076. }
  10077. }
  10078. for (let i = 0; i < rv_instance.dateFilters.length; i++) {
  10079. let datefills = rv_instance.dateFilters[i];
  10080. instance.clearDateFilter(containerid, datefills.ParameterValue);
  10081. if (datefills) {
  10082. filterpanel_instance.selectedDates.splice(i, 1);
  10083. }
  10084. }
  10085. }
  10086. if ($(`#filters-list${containerid}`).hasClass('pinned-report-filters')) {
  10087. $(`#staticFiltersSelect_${containerid}`).val(1).trigger('change');
  10088. rv_instance.filterId = 1;
  10089. }
  10090. if (rv_instance.reportResponse && rv_instance.reportResponse.result && rv_instance.reportResponse.result.ReportInfo && rv_instance.reportResponse.result.ReportInfo.IsEnableGlobalDatepicker) {
  10091. instance.clearGlobalDateFilter(containerid, rv_instance.ReportId);
  10092. }
  10093. if (rv_instance.isSubReport) {
  10094. instance.removeSubReportDynamicFilters(rv_instance);
  10095. }
  10096. else {
  10097. rv_instance.dynamicFilters = [];
  10098. rv_instance.dateFilters = [];
  10099. instance.dynamicFilters = [];
  10100. }
  10101. Unibase.Platform.Helpers.NavigationHelper.Filter = [];
  10102. instance.navigationHelper.showLoading();
  10103. instance.PageSize = rv_instance.PageSize;
  10104. !ignoreLoadingFilterRequest && this.loadFilteredReport(reportid, instance.filterId ? instance.filterId : rv_instance.filterId, containerid);
  10105. if ($(`#biz-filter-dropdown${containerid}`).hasClass('show')) {
  10106. $(`#filter-icon${containerid}`).dropdown('toggle');
  10107. }
  10108. let parentEl = $(`#dynamic-filters${containerid},#filters-list${containerid}`);
  10109. parentEl.find('select').not('.static-filters-select').each(function (i, el) {
  10110. $(el).val('').trigger('change');
  10111. });
  10112. $('.dynamic-filters' + containerid).addClass('invisible');
  10113. }
  10114. }
  10115. _applyfilter(reportid, containerid) {
  10116. var _a, _b;
  10117. var instance = this;
  10118. let ErrorProduced = false;
  10119. var IsAdmin = Unibase.Platform.Membership.Infos.Identity.getCurrentUser().isAdmin;
  10120. if (IsAdmin) {
  10121. $(`#applyToggleBtn${containerid}`).removeClass('d-none').parent().addClass('toggle-btn');
  10122. }
  10123. instance.navigationHelper.showLoading();
  10124. let rv_instance = instance.getReportViewerInstance(containerid);
  10125. if (rv_instance) {
  10126. for (var i = 0; i < rv_instance.getdynamicfilters.length; i++) {
  10127. var fil = rv_instance.getdynamicfilters[i];
  10128. var autocompletecolvalue = "";
  10129. var autocompletecoltext = "";
  10130. var select2colvalues = [];
  10131. var select2coltexts = [];
  10132. var expobj = Platform.Core.Enums.ExpressionOperator.Equals;
  10133. let id = "";
  10134. if (fil.controlTypeId == Unibase.Platform.Analytics.Enums.ControlType.textbox) {
  10135. id = "#txtboxcolumn" + containerid + '_' + fil.dynamicFilterId;
  10136. autocompletecolvalue = $(id).val();
  10137. autocompletecoltext = $("option:selected", "#autotxtcolumn" + containerid + '_' + fil.dynamicFilterId).text();
  10138. if (fil.IsRequired && !autocompletecolvalue) {
  10139. $(id).addClass("form-group-required");
  10140. ErrorProduced = true;
  10141. }
  10142. else if ($(id).hasClass("form-group-required")) {
  10143. $(id).removeClass("form-group-required");
  10144. ErrorProduced = false;
  10145. }
  10146. }
  10147. else if (fil.controlTypeId == Unibase.Platform.Analytics.Enums.ControlType.select2) {
  10148. let select2 = "#select2" + containerid + '_' + fil.dynamicFilterId;
  10149. let data = $(select2).select2('data');
  10150. const selectionEl = (_a = $(select2).data('select2')) === null || _a === void 0 ? void 0 : _a.$selection;
  10151. if (selectionEl) {
  10152. select2colvalues = data.map(x => x.id);
  10153. select2coltexts = data.map(x => x.text);
  10154. expobj = Platform.Core.Enums.ExpressionOperator.In;
  10155. if (fil.IsRequired && (!select2colvalues || (select2colvalues && !select2colvalues.length))) {
  10156. selectionEl.addClass("form-group-required");
  10157. ErrorProduced = true;
  10158. }
  10159. else if (selectionEl.hasClass("form-group-required")) {
  10160. selectionEl.removeClass("form-group-required");
  10161. ErrorProduced = false;
  10162. }
  10163. }
  10164. }
  10165. else if (fil.controlTypeId == Unibase.Platform.Analytics.Enums.ControlType.autocomplete || fil.controlTypeId == Unibase.Platform.Analytics.Enums.ControlType.cascadingautocomplete) {
  10166. let id = "#autotxtcolumn" + containerid + '_' + fil.dynamicFilterId;
  10167. autocompletecolvalue = $("option:selected", id).val();
  10168. autocompletecoltext = $("option:selected", id).text();
  10169. const selectionEl = (_b = $(id).data('select2')) === null || _b === void 0 ? void 0 : _b.$selection;
  10170. if (selectionEl) {
  10171. if (fil.IsRequired && (autocompletecolvalue == "Select" || autocompletecolvalue == "0" || !autocompletecolvalue)) {
  10172. selectionEl.addClass("form-group-required");
  10173. ErrorProduced = true;
  10174. }
  10175. else if (selectionEl.hasClass("form-group-required")) {
  10176. selectionEl.removeClass("form-group-required");
  10177. ErrorProduced = false;
  10178. }
  10179. }
  10180. }
  10181. var duplicateFilIndex = instance.dynamicFilters.findIndex(x => x.ParameterName == fil.isFilterableColumn.trim() && x.ParameterValue != autocompletecolvalue);
  10182. if (duplicateFilIndex > -1)
  10183. instance.dynamicFilters.splice(duplicateFilIndex, 1);
  10184. var filter = instance.dynamicFilters.find(x => x.ParameterName == fil.isFilterableColumn.trim()) ? true : false;
  10185. if (!filter && autocompletecolvalue || select2colvalues.length > 0) {
  10186. if (autocompletecolvalue != "Select" && autocompletecolvalue || select2colvalues.length > 0) {
  10187. instance.dynamicFilters.push({
  10188. ParameterName: fil.isFilterableColumn.trim(),
  10189. ParameterValue: autocompletecolvalue,
  10190. ParameterValues: select2colvalues,
  10191. Select2Text: select2coltexts,
  10192. ExpOp: expobj,
  10193. ParameterText: autocompletecoltext,
  10194. DynamicFilterId: fil.dynamicFilterId,
  10195. FontCaseTypeId: fil.fontCaseTypeId,
  10196. IsUnLimited: fil.isUnLimited,
  10197. IsCustomFilter: fil.isCustomFilter,
  10198. IsDynamicFitler: true,
  10199. });
  10200. instance.ReportId = reportid;
  10201. }
  10202. }
  10203. }
  10204. Unibase.Platform.Filters.Components.EditFilter.Instance().filters = instance.dynamicFilters;
  10205. if (rv_instance.isSubReport) {
  10206. instance.dynamicFilters.forEach(filter => {
  10207. const index = rv_instance.dynamicFilters.findIndex(x => x.ParameterName === filter.ParameterName);
  10208. if (index !== -1) {
  10209. rv_instance.dynamicFilters[index] = filter;
  10210. }
  10211. else {
  10212. rv_instance.dynamicFilters.push(filter);
  10213. }
  10214. });
  10215. if (instance.dynamicFilters.length !== rv_instance.getdynamicfilters.length) {
  10216. instance.removeSubReportDynamicFilters(rv_instance);
  10217. }
  10218. }
  10219. else {
  10220. rv_instance.dynamicFilters = instance.dynamicFilters;
  10221. }
  10222. if (rv_instance && rv_instance.PageSize)
  10223. instance.PageSize = rv_instance.PageSize;
  10224. !ErrorProduced && instance.loadFilteredReport(reportid, instance.filterId ? instance.filterId : rv_instance.filterId, containerid);
  10225. !ErrorProduced && $(`#filter-icon${containerid}`).dropdown('toggle');
  10226. if (ErrorProduced) {
  10227. instance.navigationHelper.hideLoading();
  10228. rv_instance.dynamicFilters = [];
  10229. instance.dynamicFilters = [];
  10230. }
  10231. }
  10232. }
  10233. removeSubReportDynamicFilters(rv_instance) {
  10234. const instance = this;
  10235. rv_instance.getdynamicfilters.forEach(filter => {
  10236. if (filter.isFilterableColumn) {
  10237. const appliedFilterIndex = instance.dynamicFilters.findIndex(x => x.ParameterName === filter.isFilterableColumn);
  10238. if (appliedFilterIndex === -1) {
  10239. const filterIndex = rv_instance.dynamicFilters.findIndex(x => x.ParameterName === filter.isFilterableColumn);
  10240. if (filterIndex !== -1) {
  10241. rv_instance.dynamicFilters.splice(filterIndex, 1);
  10242. }
  10243. }
  10244. }
  10245. });
  10246. }
  10247. loadFilteredReport(reportid, filterid, containerid) {
  10248. var instance = this;
  10249. let rv_instance = instance.getReportViewerInstance(containerid);
  10250. let { fromDate, toDate } = this.checkForReportDatePicker(reportid, containerid);
  10251. if (rv_instance.fromDate && rv_instance.toDate) {
  10252. fromDate = rv_instance.fromDate;
  10253. toDate = rv_instance.toDate;
  10254. }
  10255. if (!rv_instance.PageSize)
  10256. instance.PageSize = rv_instance.PageSize;
  10257. !rv_instance.dateFilters && (rv_instance.dateFilters = []);
  10258. rv_instance.filterId = instance.filterId = Number(filterid);
  10259. let isdynamicfilters = instance.isIdentityFilter(rv_instance.dynamicFilters);
  10260. let { stringifiedSortColumns } = this.getStringfySortColsAlongWithGrpByCols(containerid, rv_instance);
  10261. var repObj = {
  10262. ReportId: Number(reportid),
  10263. Filter: rv_instance.dynamicFilters,
  10264. DateFilter: rv_instance.dateFilters,
  10265. FilterId: Number(filterid),
  10266. Page: instance.Page,
  10267. pageSize: instance.PageSize,
  10268. IsEnableCount: rv_instance.isEnableCount,
  10269. InputParameters: rv_instance.inputParameters,
  10270. SearchTerm: rv_instance.ListSearchTerm,
  10271. FromDate: fromDate,
  10272. ToDate: toDate,
  10273. viewerTypeId: rv_instance && rv_instance.ViewerSettings && rv_instance.ViewerSettings.selectedViewerTypeId,
  10274. DisplayModeTypeId: this.getDisplayModeTypeId(),
  10275. IsDynamicFilterApplied: isdynamicfilters,
  10276. SortColumn: stringifiedSortColumns,
  10277. viewerId: rv_instance.ViewerSettings && rv_instance.ViewerSettings.selectedViewerId,
  10278. isShowAll: rv_instance.isShowAll,
  10279. };
  10280. instance.reportManager.getReportInfo(repObj).then(function (response) {
  10281. return __awaiter(this, void 0, void 0, function* () {
  10282. if (response.status != Unibase.Data.Status.Success) {
  10283. instance.navigationHelper.hideLoading();
  10284. MessageHelper.Instance().showError(response.message, "div_ErrorMessage", containerid);
  10285. return false;
  10286. }
  10287. rv_instance.isApplyFilter = true;
  10288. rv_instance.reportResponse = response;
  10289. if (response.result.ReportJsonData.Result.Data != "") {
  10290. rv_instance.reportDatalength = JSON.parse(response.result.ReportJsonData.Result.Data).length;
  10291. rv_instance.reportData = JSON.parse(response.result.ReportJsonData.Result.Data);
  10292. }
  10293. else {
  10294. rv_instance.reportData = [];
  10295. }
  10296. instance.bindAppliedFilterCount(rv_instance, containerid);
  10297. if (!response.result.ReportInfo.IsEnableCount) {
  10298. if (response.result.ReportJsonData.Result.Data == "") {
  10299. $("#Viewer_pagintion" + containerid).addClass("hidden");
  10300. }
  10301. else {
  10302. $("#Viewer_pagintion" + containerid).addClass("hidden");
  10303. $(".rpt-Count" + containerid).removeClass("hidden");
  10304. }
  10305. }
  10306. else {
  10307. if (response.result.ReportJsonData.Result.Data == "")
  10308. $("#Viewer_pagintion" + containerid).addClass("hidden");
  10309. else
  10310. $("#Viewer_pagintion" + containerid).removeClass("hidden");
  10311. $(".rpt-Count" + containerid).addClass("hidden");
  10312. }
  10313. if (response.result.ReportInfo.ReportTypeId == Unibase.Platform.Analytics.Reports.Enums.ReportType.Table) {
  10314. if ($("#" + containerid + " .templateviewer-body").is(":visible") != true && instance.isTableView(containerid)) {
  10315. var filterresponse = response.result.ReportJsonData;
  10316. instance.navigationHelper.hideLoading();
  10317. let tableViewer = Unibase.Platform.Analytics.Viewers.TableViewer.Instance();
  10318. if (response.result.ReportInfo.PivotTypeId != 0 && !response.result.ReportInfo.IsTreeExpand) {
  10319. tableViewer.loadView(response, reportid, rv_instance.ViewerSettings.selectedViewerTypeId, instance.Page, instance.PageSize, containerid, rv_instance.ViewerSettings, null, rv_instance.reportWidgetData);
  10320. instance.noDataMessage(rv_instance.dynamicFilters, rv_instance.reportResponse.result.ReportInfo.IsAutoData, containerid);
  10321. }
  10322. else {
  10323. let responseData = filterresponse.Result.Data;
  10324. if (responseData == "")
  10325. responseData = [];
  10326. else {
  10327. let { hasImageUrl, data } = tableViewer.checkForImageUrlAndUpdateTableData(rv_instance.reportColumns, JSON.parse(responseData));
  10328. if (hasImageUrl)
  10329. responseData = data;
  10330. }
  10331. rv_instance.table.replaceData(responseData).then(function (rows) {
  10332. if (!responseData.length) {
  10333. $("#btn-list-load-more_div_" + containerid).addClass('hidden');
  10334. $(`#Viewer_${containerid} .report-viewer-footer`).addClass('hidden');
  10335. instance.noDataMessage(rv_instance.dynamicFilters, rv_instance.reportResponse.result.ReportInfo.IsAutoData, containerid);
  10336. }
  10337. else {
  10338. $(`#Viewer_${containerid} .report-viewer-footer`).removeClass('hidden');
  10339. }
  10340. rv_instance.table.redraw(true);
  10341. tableViewer.bindWidgetConfigurations(containerid, rows);
  10342. });
  10343. }
  10344. let datalength;
  10345. if (filterresponse.Result.Data == "")
  10346. datalength = 0;
  10347. else if (typeof (filterresponse.Result.Data) == 'string')
  10348. datalength = JSON.parse(filterresponse.Result.Data).length;
  10349. else
  10350. datalength = filterresponse.Result.Data.length;
  10351. if (datalength >= filterresponse.TotalRecords) {
  10352. if (filterresponse.TotalRecords != 0)
  10353. $("#btn-list-load-more_" + containerid).addClass('hidden');
  10354. $('#Viewer_pagintion' + containerid).html(filterresponse.TotalRecords + ' ' + 'of' + ' ' + filterresponse.TotalRecords);
  10355. }
  10356. else {
  10357. $('#Viewer_pagintion' + containerid).html(datalength + ' ' + 'of' + ' ' + filterresponse.TotalRecords);
  10358. }
  10359. $("#Viewer_pagintion_count" + containerid).html(`(${filterresponse.TotalRecords})`);
  10360. let VisibleContainerId = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  10361. var notdashboard = $("#" + VisibleContainerId).find("#dashboardwidget-container").length;
  10362. var notdetailspage = $("#" + VisibleContainerId).find(".detail-container-content").length;
  10363. var nomodal = $("._bizgaze_popup_container").find(".NoMore-Records").length;
  10364. if (datalength < 20 || datalength == 0) {
  10365. $("#btn-list-load-more_" + containerid).addClass('hidden');
  10366. if (notdashboard == 0 && notdetailspage == 0 && nomodal == 0 && datalength != 0) {
  10367. $("#btn-list-load-more_" + containerid).parents().find(".NoMore-Records").removeClass('d-none');
  10368. }
  10369. }
  10370. else {
  10371. $("#btn-list-load-more_" + containerid).removeClass('hidden').parent().removeClass("hidden");
  10372. if (notdashboard == 0 && notdetailspage == 0 && nomodal == 0 && datalength != 0) {
  10373. $("#btn-list-load-more_" + containerid).parents().find(".NoMore-Records").addClass('d-none');
  10374. }
  10375. }
  10376. }
  10377. else {
  10378. Unibase.Platform.Analytics.Viewers.TemplateViewer.Instance().last_page = 1;
  10379. Unibase.Platform.Analytics.Viewers.TemplateViewer.Instance().ListSearchTerm = Unibase.Platform.Helpers.NavigationHelper.ListSearchTerm;
  10380. instance.loadDefaultViewer(reportid, containerid, rv_instance && rv_instance.reportResponse && rv_instance.reportResponse.result && rv_instance.reportResponse.result.ReportInfo);
  10381. }
  10382. }
  10383. else {
  10384. var _chartviewer = Unibase.Platform.Analytics.Charts.ChartViewer.Instance();
  10385. _chartviewer.Filter = instance.dynamicFilters;
  10386. if (rv_instance.reportWidgetData != 0 && rv_instance.reportWidgetData != null)
  10387. _chartviewer.WidgetName = rv_instance.reportWidgetData.Data.WidgetName;
  10388. instance.navigationHelper.loadSection(reportid, containerid, _chartviewer, null, null);
  10389. }
  10390. if (filterid) {
  10391. $(`#ViewerHeader_${containerid} .filter-item.active`).removeClass('active');
  10392. $("#ViewerHeader_" + containerid).find(".liFilter_" + filterid).addClass('active');
  10393. }
  10394. });
  10395. });
  10396. }
  10397. noDataMessage(dynamicFilters, isAutoData, containerid) {
  10398. if (!dynamicFilters.length && !isAutoData)
  10399. $("#" + containerid).find(".tabulator-placeholder").children().children().text("Select filter to show data");
  10400. else
  10401. $("#" + containerid).find(".tabulator-placeholder").children().children().text("No data available");
  10402. }
  10403. clearGlobalDateFilter(containerId, reportId) {
  10404. var dateTimeHelper = Unibase.Platform.Helpers.DateTimeHelper.Instance();
  10405. let user = Unibase.Platform.Membership.Infos.Identity.currentUser;
  10406. let formattedFromDate = dateTimeHelper.formatLocalDateTime(user.fromDate).split(" ")[0];
  10407. let formattedToDate = dateTimeHelper.formatLocalDateTime(user.toDate).split(" ")[0];
  10408. let serverFromDate = dateTimeHelper.formatServerDate(formattedFromDate);
  10409. let serverToDate = dateTimeHelper.formatServerDate(formattedToDate);
  10410. var datetype = Unibase.Platform.Analytics.Components.FilterPanel.Instance().getDateRangeString(Unibase.Platform.Membership.Infos.Identity.currentUser.globalDateRangeTypeId);
  10411. $(`#hfBizgaze_FromDate${containerId}_${reportId}`).val(serverFromDate);
  10412. $(`#hfBizgaze_ToDate${containerId}_${reportId}`).val(serverToDate);
  10413. $(`#report-daterange${containerId}-${reportId}`).val(formattedFromDate + " -" + formattedToDate);
  10414. $(`#dynamic-filters${containerId} #hfSelectedRangeKey`).val(datetype);
  10415. }
  10416. bindAppliedFilterCount(rv_instance, containerid) {
  10417. let dynamicFilterCount = 0;
  10418. if (rv_instance.dynamicFilters.length && rv_instance.dateFilters.length) {
  10419. dynamicFilterCount = rv_instance.dynamicFilters.length + rv_instance.dateFilters.length;
  10420. }
  10421. else if (rv_instance.dateFilters && rv_instance.dateFilters.length) {
  10422. dynamicFilterCount = rv_instance.dateFilters.length;
  10423. }
  10424. else {
  10425. dynamicFilterCount = rv_instance.dynamicFilters.length;
  10426. }
  10427. if (dynamicFilterCount) {
  10428. $(`#appliedFilterCount_${containerid}`).text(dynamicFilterCount).addClass('active');
  10429. }
  10430. else {
  10431. $(`#appliedFilterCount_${containerid}`).text('0').removeClass('active');
  10432. }
  10433. }
  10434. renderReportDeleteDailog() {
  10435. bootbox.confirm("Are you sure you want delete this report ?", (result) => {
  10436. if (result) {
  10437. let reportId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key.endsWith("reportid")).Value);
  10438. this.reportManager.deleteReport(reportId).then((delresponse) => {
  10439. if (delresponse.status == Unibase.Data.Status.Success) {
  10440. Unibase.Platform.Apps.Managers.AppManager.Instance().getInstallAppId("Unibase_Platform_Analytics_Reports_App_Reports").then((response) => {
  10441. if (response.status == Unibase.Data.Status.Success)
  10442. Unibase.Themes.Compact.Components.Nav.Instance().loadList(response.result.InstalledAppId);
  10443. });
  10444. MessageHelper.Instance().showSuccess(delresponse.message, 'div_message');
  10445. }
  10446. else
  10447. MessageHelper.Instance().showError(delresponse.message, 'div_message');
  10448. });
  10449. }
  10450. });
  10451. }
  10452. getDisplayModeTypeId() {
  10453. let displayModeId = 0;
  10454. const width = $(window).width();
  10455. if (width <= 576) {
  10456. displayModeId = Unibase.Platform.Analytics.Reports.Enums.DisplayModeType.Mobile;
  10457. }
  10458. else {
  10459. displayModeId = Unibase.Platform.Analytics.Reports.Enums.DisplayModeType.DeskTop;
  10460. }
  10461. return displayModeId;
  10462. }
  10463. getFromDateToDate() {
  10464. var fromDate = "";
  10465. var toDate = "";
  10466. var cf_fromDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_FromDate;
  10467. var cf_toDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_ToDate;
  10468. if (cf_fromDate != null && cf_toDate != null) {
  10469. fromDate = cf_fromDate.toString();
  10470. toDate = cf_toDate.toString();
  10471. }
  10472. else {
  10473. fromDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
  10474. toDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
  10475. }
  10476. return { FromDate: fromDate, ToDate: toDate };
  10477. }
  10478. updateStatus(reportid, statusid) {
  10479. var instance = this;
  10480. let reportId;
  10481. if (reportid != 0)
  10482. reportId = reportid;
  10483. else
  10484. reportId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key.endsWith("reportid")).Value);
  10485. let statusId;
  10486. if (statusid != 0)
  10487. statusId = statusid;
  10488. else
  10489. statusId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key.endsWith("statusid")).Value);
  10490. let installedappId = Number(Unibase.Themes.Providers.DetailHelper.installedAppId);
  10491. $("#DetailSetting_" + installedappId + "_Active").removeClass("btn-outline-primary");
  10492. if (statusId == Unibase.Platform.Core.Enums.RowStatus.Active) {
  10493. $("#DetailSetting_" + installedappId + "_Active").addClass("btn-success");
  10494. $("#DetailSetting_" + installedappId + "_Active").removeClass("btn-red");
  10495. }
  10496. else {
  10497. $("#DetailSetting_" + installedappId + "_Active").removeClass("btn-success");
  10498. $("#DetailSetting_" + installedappId + "_Active").addClass("btn-red");
  10499. }
  10500. $("#DetailSetting_" + installedappId + "_Active").text((statusId == Unibase.Platform.Core.Enums.RowStatus.Active) ? "Active" : "InActive");
  10501. $("#DetailSetting_" + installedappId + "_Active").click(function () {
  10502. let id = Unibase.Platform.Core.Enums.RowStatus.Active;
  10503. if ($("#DetailSetting_" + installedappId + "_Active").text() == "Active")
  10504. id = Unibase.Platform.Core.Enums.RowStatus.InActive;
  10505. instance.reportManager.updateReportStatus(reportId, id).then(function (statusres) {
  10506. if (statusres.status == Unibase.Data.Status.Success) {
  10507. instance.updateStatus(reportId, id);
  10508. }
  10509. });
  10510. });
  10511. }
  10512. getUserIdentityParameters() {
  10513. return [{ ColumnName: "branchid" }, { ColumnName: "companyid" }];
  10514. }
  10515. isIdentityFilter(dynamicfilters) {
  10516. var instance = this;
  10517. let isdynamicfilters = false;
  10518. if (dynamicfilters.length > 0) {
  10519. for (var i = 0; i < dynamicfilters.length; i++) {
  10520. let identity_params = instance.getUserIdentityParameters().find(u => u.ColumnName == dynamicfilters[i].ParameterName) ? true : false;
  10521. if (identity_params)
  10522. isdynamicfilters = true;
  10523. }
  10524. }
  10525. return isdynamicfilters;
  10526. }
  10527. getStringfySortColsAlongWithGrpByCols(containerid, rv_instance) {
  10528. let allSortColumns = [];
  10529. let selectedGroupByText = [];
  10530. let selectElement = $(`#groupByCatSelect_${containerid}`);
  10531. if (selectElement.length && selectElement.hasClass("select2-hidden-accessible")) {
  10532. $(`#groupByCatSelect_${containerid}`).select2('data').forEach((obj) => {
  10533. if (rv_instance.sortColumn && rv_instance.sortColumn.length) {
  10534. let idx = rv_instance.sortColumn.findIndex(x => x.Name == obj.text.trim());
  10535. if (idx == -1) {
  10536. allSortColumns.push({ Name: obj.text, Order: "Desc" });
  10537. }
  10538. }
  10539. else {
  10540. allSortColumns.push({ Name: obj.text, Order: "Desc" });
  10541. }
  10542. rv_instance.groupBy_Category.push(obj.id);
  10543. selectedGroupByText.push(obj.text);
  10544. });
  10545. if (allSortColumns && allSortColumns.length) {
  10546. allSortColumns = allSortColumns.concat(rv_instance.sortColumn);
  10547. if (allSortColumns && allSortColumns.length) {
  10548. return {
  10549. stringifiedSortColumns: JSON.stringify(allSortColumns),
  10550. selectedGroupByText: selectedGroupByText,
  10551. allSortColumns
  10552. };
  10553. }
  10554. }
  10555. else if (rv_instance.sortColumn && rv_instance.sortColumn.length) {
  10556. return {
  10557. stringifiedSortColumns: typeof (rv_instance.sortColumn) == 'string' ? rv_instance.sortColumn : JSON.stringify(rv_instance.sortColumn),
  10558. selectedGroupByText: "",
  10559. allSortColumns
  10560. };
  10561. }
  10562. }
  10563. return {
  10564. stringifiedSortColumns: "",
  10565. selectedGroupByText: "",
  10566. allSortColumns
  10567. };
  10568. }
  10569. refreshReportData(reportid, containerid, reportWidgetData) {
  10570. return __awaiter(this, void 0, void 0, function* () {
  10571. var instance = this;
  10572. var rv_instance = instance.getReportViewerInstance(containerid);
  10573. var filters = rv_instance.dynamicFilters.filter(x => !x.IsDynamicFitler);
  10574. rv_instance.inputParameters = [], rv_instance.ListSearchTerm = "",
  10575. rv_instance.filterId = 0, rv_instance.dateFilters = [], rv_instance.isShowAll = false, this.filterId = 0;
  10576. rv_instance.clearDynamicFilters(reportid, containerid, true);
  10577. if (filters && filters.length) {
  10578. rv_instance.dynamicFilters = filters;
  10579. }
  10580. if (rv_instance.isLinkReport && rv_instance.linkReportFilterObj != null) {
  10581. if (rv_instance.linkReportFilterObj.InputParameters && rv_instance.linkReportFilterObj.InputParameters.length) {
  10582. rv_instance.inputParameters = rv_instance.linkReportFilterObj.InputParameters;
  10583. }
  10584. if (rv_instance.linkReportFilterObj.DateFilters && rv_instance.linkReportFilterObj.DateFilters.length) {
  10585. rv_instance.dateFilters = rv_instance.linkReportFilterObj.DateFilters;
  10586. }
  10587. if (rv_instance.linkReportFilterObj.DynamicFilters && rv_instance.linkReportFilterObj.DynamicFilters.length) {
  10588. rv_instance.dynamicFilters = rv_instance.linkReportFilterObj.DynamicFilters;
  10589. }
  10590. }
  10591. if (rv_instance.isWidget && rv_instance.getdetailFilters && rv_instance.getdetailFilters[rv_instance.ReportId]) {
  10592. let fil = rv_instance.getdetailFilters[rv_instance.ReportId].Filter;
  10593. if (fil && fil.length)
  10594. rv_instance.inputParameters = fil;
  10595. }
  10596. if (rv_instance.ViewerSettings.selectedViewerTypeId
  10597. === Unibase.Platform.Analytics.Reports.Enums.ViewerType.Table) {
  10598. instance.clearGroupByCategory(containerid);
  10599. }
  10600. $(`#${containerid} #ListSearch`).val("");
  10601. $(`#search-clear-icon${containerid}`).addClass('d-none').removeClass('d-flex');
  10602. $(`#ViewerHeader_${containerid} .filter-item.active`).removeClass('active');
  10603. $(`#ViewerHeader_${containerid} .liFilter_1`).addClass('active');
  10604. if (!rv_instance.isWidget) {
  10605. yield instance.loadFilters(reportid, containerid);
  10606. }
  10607. instance.getReportData(reportid, containerid, rv_instance.reportWidgetData, null);
  10608. });
  10609. }
  10610. DuplicateReport(reportId) {
  10611. if (!reportId) {
  10612. reportId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key.endsWith("reportid")).Value);
  10613. }
  10614. this.navigationHelper.popup(reportId, "", Unibase.Platform.Analytics.Components.DuplicateReport.Instance(), null, Unibase.Platform.Helpers.Size.Large);
  10615. }
  10616. downloadGroupedData(reportid, containerid, reportwidgetdata, typeid, callback) {
  10617. return __awaiter(this, void 0, void 0, function* () {
  10618. var instance = this;
  10619. let rv_instance = instance.getReportViewerInstance(containerid);
  10620. instance.Page = 0;
  10621. instance.PageSize = 0;
  10622. var jsfiles = ["libs/xlsx/xlsx.full.min.js", "libs/tabulator-tables/js/jspdf.min.js", "libs/tabulator-tables/js/jspdf.plugin.autotable.js"];
  10623. instance.fileCacheHelper.loadJsFiles(jsfiles, function () {
  10624. return __awaiter(this, void 0, void 0, function* () {
  10625. yield instance.getReportData(reportid, containerid, null, null);
  10626. var data = rv_instance.reportResponse && rv_instance.reportResponse.result && rv_instance.reportResponse.result.ReportJsonData && rv_instance.reportResponse.result.ReportJsonData.Result && rv_instance.reportResponse.result.ReportJsonData.Result.Data;
  10627. yield Unibase.Platform.Analytics.Viewers.TableViewer.Instance().setGroupBy(rv_instance, containerid, data ? JSON.parse(data) : []);
  10628. if (typeid == 1) {
  10629. rv_instance.table.download("xlsx", rv_instance.reportname + ".xlsx", { sheetName: "My Data" });
  10630. }
  10631. else {
  10632. rv_instance.table.download("pdf", rv_instance.reportname + ".pdf", {
  10633. orientation: "portrait",
  10634. title: rv_instance.reportname,
  10635. });
  10636. }
  10637. });
  10638. });
  10639. });
  10640. }
  10641. isTableView(containerId) {
  10642. let rv_ins = this.getReportViewerInstance(containerId);
  10643. if (rv_ins && rv_ins.ViewerSettings && rv_ins.ViewerSettings.selectedViewerTypeId) {
  10644. return rv_ins.ViewerSettings.selectedViewerTypeId == Unibase.Platform.Analytics.Reports.Enums.ViewerType.Table;
  10645. }
  10646. return false;
  10647. }
  10648. checkForReportDatePicker(reportid, containerid) {
  10649. let datetimeIns = Unibase.Platform.Helpers.DateTimeHelper.Instance();
  10650. var fromDate = "";
  10651. var toDate = "";
  10652. var cf_fromDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_FromDate;
  10653. var cf_toDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_ToDate;
  10654. let rv_instance = this.getReportViewerInstance(containerid);
  10655. if (rv_instance && rv_instance.reportResponse && rv_instance.reportResponse.result && rv_instance.reportResponse.result.ReportInfo && rv_instance.reportResponse.result.ReportInfo.IsEnableGlobalDatepicker) {
  10656. let dyFilDate = $("#" + containerid).find("#report-daterange" + containerid + "-" + reportid).val();
  10657. if (dyFilDate) {
  10658. cf_fromDate = datetimeIns.formatLocalDateformat(cf_fromDate, "DD/MM/YYYY");
  10659. cf_toDate = datetimeIns.formatLocalDateformat(cf_toDate, "DD/MM/YYYY");
  10660. if (dyFilDate != cf_fromDate + " - " + cf_toDate) {
  10661. fromDate = dyFilDate.split("-")[0].trim();
  10662. toDate = dyFilDate.split("-")[1].trim();
  10663. fromDate = datetimeIns.formatServerDate(fromDate);
  10664. toDate = datetimeIns.formatServerDate(toDate);
  10665. }
  10666. }
  10667. }
  10668. return { fromDate: fromDate, toDate: toDate };
  10669. }
  10670. bindCountDetails(containerid, response) {
  10671. let rv_instance = this.getReportViewerInstance(containerid);
  10672. let data = 0;
  10673. let res = typeof (response.result) == "string" ? JSON.parse(response.result) : response.result;
  10674. if (rv_instance) {
  10675. if (rv_instance.reportResponse.result.ReportJsonData.Result.Data != "") {
  10676. if (typeof (rv_instance.reportResponse.result.ReportJsonData.Result.Data) == "string")
  10677. data = JSON.parse(rv_instance.reportResponse.result.ReportJsonData.Result.Data).length;
  10678. else
  10679. data = rv_instance.reportResponse.result.ReportJsonData.Result.Data.length;
  10680. }
  10681. }
  10682. if (response.totalRecords || res.TotalRecords || (res.ReportJsonData && res.ReportJsonData.TotalRecords))
  10683. rv_instance.totalRecords = response.totalRecords || res.TotalRecords || (res.ReportJsonData && res.ReportJsonData.TotalRecords);
  10684. if (rv_instance.totalRecords == 0)
  10685. rv_instance.reportDatalength = 0;
  10686. if (rv_instance && rv_instance.ViewerSettings && rv_instance.ViewerSettings.selectedViewerTypeId == Unibase.Platform.Analytics.Reports.Enums.ViewerType.Card) {
  10687. $(`#Viewer_pagintion${containerid}`).html(data + ' ' + 'of' + ' ' + rv_instance.totalRecords).removeClass('hidden');
  10688. }
  10689. else {
  10690. $(`#Viewer_pagintion${containerid}`).html(rv_instance.reportDatalength + ' ' + 'of' + ' ' + rv_instance.totalRecords).removeClass('hidden');
  10691. }
  10692. $(`.rpt-Count${containerid},#visibleReportCountWrap_${containerid}`).addClass('hidden');
  10693. var display_count = `<span>(${rv_instance.totalRecords})</span>`;
  10694. $(`#Viewer_pagintion_count${containerid}`).html(display_count);
  10695. var display_count_InMobile = `<span class="font-weight-500">Count : ${rv_instance.totalRecords}</span>`;
  10696. $(`#Viewer_pagintion_count_mobile${containerid}`).html(display_count_InMobile);
  10697. }
  10698. bindExistingPropsOfViewerInstance(containerid) {
  10699. let details_ins = Unibase.Themes.Compact.Components.Details.Instance();
  10700. if (details_ins.lastReportInstance) {
  10701. let rv_ins = this.getReportViewerInstance(containerid);
  10702. if (rv_ins.filterId) {
  10703. const id = rv_ins.filterId;
  10704. rv_ins.filterId = 0;
  10705. this.filterId = id;
  10706. $("#filters-list" + containerid).find(".active").removeClass("active");
  10707. $("#filters-list" + containerid).find(".liFilter_" + this.filterId).addClass("active");
  10708. }
  10709. if (rv_ins.dynamicFilters && rv_ins.dynamicFilters.length) {
  10710. this.bindAppliedFilterCount(rv_ins, containerid);
  10711. }
  10712. if (rv_ins.isEnableCount) {
  10713. this.bindCountDetails(containerid, rv_ins.reportResponse);
  10714. }
  10715. details_ins.lastReportInstance = null;
  10716. }
  10717. }
  10718. appendWidgetNoDataIcon(reportresp, containerid) {
  10719. $("#Viewer_" + containerid).addClass('widget-template-view');
  10720. if (reportresp && reportresp.Data == '') {
  10721. $("#Viewer_" + containerid).removeClass('show');
  10722. if (!$(`#widgetNoDataIcon_${containerid}`).length) {
  10723. $("#ViewerHeader_" + containerid).attr('aria-expanded', 'false').find('.card-header-right').append(`<a href="javascript:;" id="widgetNoDataIcon_${containerid}" class="btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover d-30 mr-10 no-report-data-icon" data-tooltip="true" title="No data available"><span class="btn-icon-wrap"><i class="fa fa-exclamation-triangle no-data-icon text-danger"></i></span></a>`);
  10724. }
  10725. }
  10726. else {
  10727. if (!$(`#widgetCollapseIcon_${containerid}`).length) {
  10728. $(`#ViewerHeader_${containerid} .card-header-right`).append(`<a href="javascript:;" id="widgetCollapseIcon_${containerid}" class="btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover d-30 widget-collapse-icon mr-10"><span class="btn-icon-wrap"><i class="fa fa-chevron-right"></i></span></a>`);
  10729. }
  10730. }
  10731. }
  10732. bindShowAllCountChangeEvents(containerid) {
  10733. const showAllCountEl = $(`#showAllCount_${containerid}`);
  10734. const showAllInputEl = $(`#showAllCount_${containerid}`);
  10735. $(`#btn-list-load-more_${containerid}`).on('shown.bs.dropdown', function () {
  10736. showAllInputEl.addClass('hidden');
  10737. showAllCountEl.removeClass('hidden');
  10738. });
  10739. }
  10740. }
  10741. Components._ReportViewer = _ReportViewer;
  10742. })(Components = Analytics.Components || (Analytics.Components = {}));
  10743. })(Analytics = Platform.Analytics || (Platform.Analytics = {}));
  10744. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  10745. })(Unibase || (Unibase = {}));
  10746. var Unibase;
  10747. (function (Unibase) {
  10748. let Platform;
  10749. (function (Platform) {
  10750. let Analytics;
  10751. (function (Analytics) {
  10752. let Components;
  10753. (function (Components) {
  10754. class ReportViewer extends Components._ReportViewer {
  10755. constructor() {
  10756. super();
  10757. }
  10758. jsFiles() {
  10759. return this._jsFiles();
  10760. }
  10761. cssFiles() {
  10762. return this._cssFiles();
  10763. }
  10764. html(id, containerid) {
  10765. return this._html(id, containerid);
  10766. }
  10767. load(id, containerid, callback) {
  10768. Unibase.Platform.Helpers.FileCacheHelper.Instance().addCacheFiles([
  10769. "platform/analytics/components/reportviewer/viewerpermissions.js",
  10770. "platform/analytics/components/reportbuilder/importandexport.js",
  10771. "platform/core/helpers/navigation/size.js",
  10772. "platform/dataapis/managers/dataapimanager.js",
  10773. "platform/integrations/managers/integrationmanager.js",
  10774. "platform/analytics/providers/ifiltersettings.js",
  10775. "platform/analytics/providers/iviewersettings.js",
  10776. "platform/filters/components/filterpermission.js",
  10777. "platform/analytics/components/filterpanel/filterpanel.js",
  10778. "platform/datasources/components/queryparser/queryparser.js",
  10779. "platform/analytics/components/mapviewer/mapviewer.settings.js",
  10780. "platform/analytics/components/mapviewer/mapviewer.js"
  10781. ]);
  10782. this.loadReport(id, 0, containerid, callback);
  10783. }
  10784. static Instance() {
  10785. return new ReportViewer();
  10786. }
  10787. }
  10788. Components.ReportViewer = ReportViewer;
  10789. })(Components = Analytics.Components || (Analytics.Components = {}));
  10790. })(Analytics = Platform.Analytics || (Platform.Analytics = {}));
  10791. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  10792. })(Unibase || (Unibase = {}));
  10793. var Unibase;
  10794. (function (Unibase) {
  10795. let Platform;
  10796. (function (Platform) {
  10797. let Analytics;
  10798. (function (Analytics) {
  10799. let Components;
  10800. (function (Components) {
  10801. class LinkReport extends Components._ReportViewer {
  10802. constructor() {
  10803. super();
  10804. this.linkreportid = 0;
  10805. this.LinkTableData = [];
  10806. this.LinkReportColumns = [];
  10807. this.isLinkReport = false;
  10808. this.PortletWidgetId = 0;
  10809. this._reportManager = Analytics.Managers.ReportManager.Instance();
  10810. }
  10811. cssFiles() {
  10812. return [];
  10813. }
  10814. jsFiles() {
  10815. var jsfiles = ["platform/analytics/components/reportviewer/_reportviewer.js"];
  10816. return jsfiles;
  10817. }
  10818. html(id, containerid) {
  10819. var reportid = id;
  10820. var newHtml_old = `<div class="card mb-0 border-0 BindData_` + containerid + ` findcontainer" style="background:none">
  10821. <div class="card-header py-0 px-5 search-bar-main-wrapper line-loader-container bg-white p-relative" id="ViewerHeader_` + containerid + `">
  10822. <div class="card-header-top d-flex align-items-center justify-content-between line-loader-container p-relative">
  10823. <div class="line-loader"></div>
  10824. <div id="div_ErrorMessage" class="form-error-message" style="margin-left:-5px; z-index:100;"></div>
  10825. <div class="card-header-left">
  10826. <ul class="w-100 d-flex list-inline align-items-center">
  10827. <li><span class="nav-link biz-highlight-bg-color widget-font" id="WidgetTitleLink_` + containerid + `" data-toggle="" data-target="" aria-expanded="true">
  10828. <span id="ReportTitle_` + containerid + `" class="">Loading...</span>
  10829. <span id="Reportid_` + containerid + `" class="Reportid__dynamicfilter hidden"></span>
  10830. <span id="Reportid_` + containerid + `" class="Reportid__commonfilter hidden">Loading...</span>
  10831. </span></li>
  10832. <li>
  10833. <a class="nav-link d-none biz-removepadding biz-highlight-bg-color" href="javascript:;" id="Viewer_pagintion_Badge_count` + containerid + `"> (<span id="Viewer_pagintion_Badge_count_badge` + containerid + `">0 Records</span>) </a></li>
  10834. </ul>
  10835. </div>
  10836. <div class="card-header-right">
  10837. ${Unibase.Platform.Analytics.Components.ReportViewer.Instance().getViewAllHtml(containerid, 'desktop', reportid)}
  10838. <div class="card-search-bar">
  10839. <div class="search-wrapper">
  10840. <input class="form-control txt_global_search" id="ListSearch" type="text" placeholder = "Search" autocomplete="off"/>
  10841. <i class="fa fa-search search-left-icon"></i>
  10842. <a href="javascript:;" class="filter-icon" id="filter-icon` + containerid + `" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().loadDynamicFilters(${reportid},'${containerid}','.BindData_${containerid}',event)"><i class="las la-filter"></i></a></div>
  10843. <span class="search-icon-wrapper">
  10844. <a class="biz-highlight-bg-color search_icon" id="search_icon` + containerid + `" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().searchIconClick('${containerid}')"><i class="fa fa-search" aria-hidden="true"></i></a>
  10845. <a href="javascript:;" class="search_close_icon biz-text-dark d-none" id="search_close_icon` + containerid + `" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().closeIconClick('${containerid}')"><i class="fa fa-close"></i></a></span>
  10846. </div>
  10847. <span class="sp_widget_create_` + containerid + `"></span>
  10848. <div class="my-auto">
  10849. <a class="nav-link no-caret biz-highlight-bg-color" href="javascript:;" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" id="ViewerTypes_` + containerid + `" class="ViewerTypes_` + containerid + `" style="display:inline-block;">
  10850. <i class="fa fa-ellipsis-v" aria-hidden="true"></i>
  10851. </a>
  10852. <div class="dropdown-menu dropdown-menu-right ViewerTypes_dropdown" id="dp_` + containerid + `_viewertypes">
  10853. <div class="sub-dropdown-menu show-on-hover subdrop_Tempalate_` + containerid + `"> </div>
  10854. <div id="Table_View_` + containerid + `" class="report-view-item">
  10855. <a href="javascript:;" class="dropdown-item d-flex align-items-center" id="DefaultTable_` + containerid + `"><input type="radio" name="SetAsDefault">
  10856. <span class="ml-5">Table View</span>
  10857. </a>
  10858. </div>
  10859. <div class="sub-dropdown-menu show-on-hover Viewer_Type">
  10860. <a href="javascript:;" class="dropdown-toggle dropdown-item no-caret pl-30">New<i class="fa fa-angle-right pull-right mt-5" aria-hidden="true"></i></a>
  10861. <div class="dropdown-menu open-left-side">
  10862. <a class="dropdown-item" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().loadViewerSettings(` + reportid + `,0,null, 'Unibase.Platform.Analytics.Components.TemplateViewerSettings.Instance()' , null, 'Helpers.Size.Auto');;" href="javascript:;">
  10863. <span>New Template</span>
  10864. </a>
  10865. <a class="dropdown-item" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().loadViewerSettings(` + reportid + `,0,null, 'Unibase.Platform.Analytics.Components.CardViewerSettings.Instance()' , null, Unibase.Platform.Helpers.Size.Auto);" href="javascript:;">
  10866. <span>New Card</span>
  10867. </a>
  10868. <a class="dropdown-item" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().loadViewerSettings(` + reportid + `,0,null, 'Unibase.Platform.Analytics.Components.CalendarViewerSettings.Instance()' , null, Unibase.Platform.Helpers.Size.Auto);" href="javascript:;">
  10869. <span>New Calendar</span>
  10870. </a>
  10871. <a class="dropdown-item" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().loadViewerSettings(` + reportid + `,0,null, 'Unibase.Platform.Analytics.Components.MapViewerSettings.Instance()' , null, Unibase.Platform.Helpers.Size.Auto);" href="javascript:;">
  10872. <span>New Map</span>
  10873. </a>
  10874. </div>
  10875. </div>
  10876. <a href="javascript:;" class="dropdown-item pl-30" id="EditTable_` + containerid + `" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().EditReport(` + reportid + `,0, {{appinstalledappid}},0,'${containerid}')" ;>Edit Table</a>
  10877. <a href="javascript:;" class="dropdown-item pl-30" id="DuplicateTable_` + containerid + `" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().EditReport(` + reportid + `,1, {{appinstalledappid}},0,'${containerid}')" ;>Duplicate</a>
  10878. <a href="javascript:;" class="dropdown-item pl-30"></a>
  10879. <a href="javascript:;" class="dropdown-item pl-30" id="DownloadReport_` + containerid + `" >Download</a>
  10880. <a href = "javascript:;" class="dropdown-item pl-30" id="reportPermissions_` + containerid + `" onclick ="Unibase.Platform.Analytics.Components.ReportViewer.Instance().reportPermissions(` + reportid + `)"> Permissions </a>
  10881. <a href="javascript:;" class="dropdown-item pl-30 saveViewAs" id="saveViewAs" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().saveViewAs(` + reportid + `)">Save View As</a>
  10882. <a href="javascript:;" class="dropdown-item pl-30" id="editFilterOption` + containerid + `" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().addEditIcons_Filters('` + containerid + `',` + reportid + `)">Edit Filter</a>
  10883. ${Unibase.Platform.Analytics.Components.ReportViewer.Instance().getViewAllHtml(containerid, 'mobile', reportid)}
  10884. </div>
  10885. </div>
  10886. </div>
  10887. <div class="biz-filter-dropdown dropdown-menu" id="biz-filter-dropdown` + containerid + `"><div data-simplebar class="filter-dropdown-body" id="filter-dropdown-body` + containerid + `"><div id="dynamic-filters` + containerid + `" class="dynamic-filters-list row mx-0"></div></div><div class="filter-dropdown-footer d-none" id="filter-dropdown-footer` + containerid + `"><a href="javascript:;" class="btn btn-outline-danger Filterbuttons" id="btn_ClearFilter` + containerid + `"><span class="btn-text mr-5">Clear</span><span class="icon-label"><i class="las la-filter"></i></span></a>
  10888. <div class="apply-btn-group" id="apply-btn-group` + containerid + `"><a href="javascript:;" class="btn btn-outline-primary Filterbuttons" id="ApplyGlobalFilter` + containerid + `">Apply</a><a href="javascript:;" class="btn btn-outline-primary ml-15 save-filter-btn" id="saveViewAs` + containerid + `" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().saveViewAs(` + reportid + `)">Save</a></div></div><div class="filter-dropdown-errmessage d-none" id="filter-dropdown-errmessage` + containerid + `"><div class="alert alert-danger mb-0 text-center" role="alert">No Filters!</div></div></div></div>
  10889. <div class="card-header-filters d-none" id="card-header-filters` + containerid + `"><div id="nav-filters" class="nav-filters` + containerid + `"></div><a href="javascript:;" class="filter-left-icon filter-nav-icon hidden" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().changeFilterScroll(this,'${containerid}')" data-operation="-"><i class="fa fa-chevron-left"></i></a><a href="javascript:;" class="filter-right-icon filter-nav-icon hidden" onclick="Unibase.Platform.Analytics.Components.ReportViewer.Instance().changeFilterScroll(this,'${containerid}')" data-operation="+"><i class="fa fa-chevron-right"></i></a></div>
  10890. </div>
  10891. <div class="card-body pa-0 border-removed border-white-removed show templateviewer-tableview" id="Viewer_` + containerid + `"> </div>
  10892. <div class="footer bg-white" id="ViewerFooter_` + containerid + `"><button id="btn-link-report-close" class="btn-linkReport-close btn btn-secondary btn-sm mr-auto">Close</button><span id="Viewer_pagintion` + containerid + `">0 of 0</span></div>
  10893. </div>`;
  10894. let newHtml = `<section id="link-report-section" class="modal-content">
  10895. <div class="modal-header pa-10" id="linkreport_header">
  10896. <strong class="modal-title biz-highlight-bg-color">Link other report</strong>
  10897. </div>
  10898. <div data-simplebar class="simple-scroll-bar">
  10899. <div id="divlinkreport_ErrorMessage"></div>
  10900. <div class="modal-body bg-charcoal-light-5" id="linkreport_modal1">
  10901. <div class="sub-report-block card" data-select2-id="24">
  10902. <div data-select2-id="23">
  10903. <header class="sub-report-head">
  10904. <h6 class="required">
  10905. Link Report
  10906. </h6>
  10907. </header>
  10908. <div id="subrpts_div" data-select2-id="subrpts_div" class="">
  10909. <div class="report-body">
  10910. <div class="form-group">
  10911. <div id="divsubrpt_0" data-select2-id="divsubrpt_">
  10912. <div id="div_Kanban" class="mb-10">
  10913. <input type="hidden" id="hfReportAutoComplete" value="" />
  10914. <select class="select_reports form-control custom-select" id="linkreport">
  10915. </select>
  10916. </div>
  10917. </div>
  10918. </div>
  10919. </div>
  10920. </div>
  10921. </div>
  10922. </div>
  10923. </div>
  10924. </div>
  10925. <div class="modal-footer pa-10" id="linkreport_footer">
  10926. <button type="button" class="btn btn-sm btn-light mr-auto" id="btnLinkReportClose">Cancel</button>
  10927. <button type="button" class="btn btn-sm btn-theme" id="btnLinkReportSave">Save</button>
  10928. </div>
  10929. </section>`;
  10930. return newHtml;
  10931. }
  10932. load(id, containerid, callback) {
  10933. var instance = this;
  10934. var url = _appsettings.server_url() + '/apis/v4/unibase/platform/analytics/reports';
  10935. AutoCompleteHelper.getHelper().Create("#linkreport", "hfReportAutoComplete", url, null);
  10936. if (instance.linkreportid != 0) {
  10937. this._reportManager.getReportById(instance.linkreportid).then((res) => {
  10938. if (res.status == Unibase.Data.Status.Success) {
  10939. $("#linkreport").empty().append('<option value = "' + res.result.ReportId + '" > ' + res.result.ReportName + ' </option>');
  10940. $("#linkreport").val(res.result.ReportId);
  10941. ;
  10942. }
  10943. });
  10944. }
  10945. $("#btn-link-report-close").click(function () {
  10946. $('#' + containerid).modal('hide');
  10947. $('#' + containerid).remove();
  10948. Unibase.Platform.Analytics.Viewers.TableViewer.Instance().IsSelectable = false;
  10949. instance.isLinkReport = false;
  10950. instance.InputParameters = [];
  10951. });
  10952. $("#biz-filter-dropdown" + containerid).off().click(function (e) {
  10953. e.stopPropagation();
  10954. });
  10955. $("#LinkReportTitle_" + containerid).text(instance.LinkReportName);
  10956. $("#btnLinkReportClose").click(() => {
  10957. $('#' + containerid).modal('hide');
  10958. $('#' + containerid).remove();
  10959. });
  10960. $("#btnLinkReportSave").click(function () {
  10961. Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().linkReportId = Number($("#linkreport").val());
  10962. instance.linkreportid = Number($("#linkreport").val());
  10963. $('#' + containerid).modal('hide');
  10964. $('#' + containerid).remove();
  10965. });
  10966. }
  10967. linkreport() {
  10968. this.navigationHelper.popup(0, '', this, null, Platform.Helpers.Size.Medium);
  10969. }
  10970. ;
  10971. static Instance() {
  10972. if (this._instance === undefined)
  10973. this._instance = new LinkReport();
  10974. return this._instance;
  10975. }
  10976. }
  10977. Components.LinkReport = LinkReport;
  10978. })(Components = Analytics.Components || (Analytics.Components = {}));
  10979. })(Analytics = Platform.Analytics || (Platform.Analytics = {}));
  10980. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  10981. })(Unibase || (Unibase = {}));
  10982. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
  10983. function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  10984. return new (P || (P = Promise))(function (resolve, reject) {
  10985. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  10986. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  10987. function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
  10988. step((generator = generator.apply(thisArg, _arguments || [])).next());
  10989. });
  10990. };
  10991. var Unibase;
  10992. (function (Unibase) {
  10993. let Platform;
  10994. (function (Platform) {
  10995. let Analytics;
  10996. (function (Analytics) {
  10997. let Managers;
  10998. (function (Managers) {
  10999. class ViewerManager extends Platform.Core.BaseManager {
  11000. getTemplateViews() {
  11001. return __awaiter(this, void 0, void 0, function* () {
  11002. const url = 'apis/v4/unibase/platform/analytics/templateviews';
  11003. return yield this.dataHelper().getAsync(url).then(function (response) {
  11004. if (response.result !== null) {
  11005. response.result = JSON.parse(response.result);
  11006. }
  11007. return response;
  11008. });
  11009. });
  11010. }
  11011. getTemplateView(templateviewid) {
  11012. return __awaiter(this, void 0, void 0, function* () {
  11013. const url = 'apis/v4/unibase/platform/analytics/templateview/' + templateviewid;
  11014. return yield this.dataHelper().getAsync(url).then(function (response) {
  11015. if (response.result !== null) {
  11016. response.result = JSON.parse(response.result);
  11017. }
  11018. return response;
  11019. });
  11020. });
  11021. }
  11022. getReportTemplate(ReportId) {
  11023. return __awaiter(this, void 0, void 0, function* () {
  11024. const url = 'apis/v4/unibase/platform/analytics/templateview/reportid/' + ReportId;
  11025. return yield this.dataHelper().getAsync(url).then(function (response) {
  11026. return JSON.parse(response.result);
  11027. });
  11028. });
  11029. }
  11030. getSubTemplate(templateviewid) {
  11031. return __awaiter(this, void 0, void 0, function* () {
  11032. const url = 'apis/v4/unibase/platform/analytics/subtemplates/templateviewid/' + templateviewid;
  11033. return yield this.dataHelper().getAsync(url).then(function (response) {
  11034. if (response.result !== null) {
  11035. response.result = JSON.parse(response.result);
  11036. }
  11037. return response;
  11038. });
  11039. });
  11040. }
  11041. saveTemplateView(obj) {
  11042. return __awaiter(this, void 0, void 0, function* () {
  11043. const url = 'apis/v4/unibase/platform/analytics/templateview';
  11044. return yield this.dataHelper().postAsync(url, obj).then(function (response) {
  11045. return response;
  11046. });
  11047. });
  11048. }
  11049. deleteTemplate(templateviewid, reportid) {
  11050. return __awaiter(this, void 0, void 0, function* () {
  11051. const url = 'apis/v4/unibase/platform/analytics/deletetemplateview/templateviewid/' + templateviewid + '/reportid/' + reportid;
  11052. return yield this.dataHelper().postAsync(url, templateviewid).then(function (response) {
  11053. return response;
  11054. });
  11055. });
  11056. }
  11057. getTemplates(templateNames) {
  11058. return __awaiter(this, void 0, void 0, function* () {
  11059. const url = 'apis/v4/unibase/platform/analytics/gettempates/tempatenames/' + templateNames;
  11060. return yield this.dataHelper().getAsync(url).then(function (response) {
  11061. if (response.result !== null) {
  11062. response.result = JSON.parse(response.result);
  11063. }
  11064. return response;
  11065. });
  11066. });
  11067. }
  11068. getCalendarView(calendarviewid) {
  11069. return __awaiter(this, void 0, void 0, function* () {
  11070. const url = 'apis/v4/unibase/platform/analytics/calendarview/' + calendarviewid;
  11071. return yield this.dataHelper().getAsync(url).then(function (response) {
  11072. if (response.result !== null) {
  11073. response.result = JSON.parse(response.result);
  11074. }
  11075. return response;
  11076. });
  11077. });
  11078. }
  11079. saveCalendarView(obj) {
  11080. return __awaiter(this, void 0, void 0, function* () {
  11081. const url = 'apis/v4/unibase/platform/analytics/calendarview';
  11082. return yield this.dataHelper().postAsync(url, obj).then(function (response) {
  11083. return response;
  11084. });
  11085. });
  11086. }
  11087. getMapView(mapviewid) {
  11088. return __awaiter(this, void 0, void 0, function* () {
  11089. const url = 'apis/v4/unibase/platform/analytics/mapview/' + mapviewid;
  11090. return yield this.dataHelper().getAsync(url).then(function (response) {
  11091. if (response.result !== null) {
  11092. response.result = JSON.parse(response.result);
  11093. }
  11094. return response;
  11095. });
  11096. });
  11097. }
  11098. saveMapView(obj) {
  11099. return __awaiter(this, void 0, void 0, function* () {
  11100. const url = 'apis/v4/unibase/platform/analytics/mapview';
  11101. return yield this.dataHelper().postAsync(url, obj).then(function (response) {
  11102. return response;
  11103. });
  11104. });
  11105. }
  11106. getCardView(CardViewId) {
  11107. return __awaiter(this, void 0, void 0, function* () {
  11108. const url = 'apis/v4/unibase/platform/analytics/cardview/' + CardViewId;
  11109. return yield this.dataHelper().getAsync(url).then(function (response) {
  11110. return JSON.parse(response.result);
  11111. });
  11112. });
  11113. }
  11114. getCardViewerData(repObj) {
  11115. return __awaiter(this, void 0, void 0, function* () {
  11116. const url = 'apis/v4/unibase/platform/analytics/kanban';
  11117. return yield this.dataHelper().postAsync(url, repObj).then(function (response) {
  11118. return JSON.parse(response.result);
  11119. });
  11120. });
  11121. }
  11122. saveCardView(obj) {
  11123. return __awaiter(this, void 0, void 0, function* () {
  11124. const url = 'apis/v4/unibase/platform/analytics/cardview';
  11125. return yield this.dataHelper().postAsync(url, obj).then(function (response) {
  11126. return response;
  11127. });
  11128. });
  11129. }
  11130. getReportViewerTypes(reportid) {
  11131. return __awaiter(this, void 0, void 0, function* () {
  11132. const url = 'apis/v4/unibase/platform/analytics/viewertypes/reportid/' + reportid;
  11133. return yield this.dataHelper().getAsync(url).then(function (response) {
  11134. if (response.result !== null) {
  11135. response.result = JSON.parse(response.result);
  11136. }
  11137. return response;
  11138. });
  11139. });
  11140. }
  11141. deleteViewer(reportid, viewerid, viewertypeid) {
  11142. return __awaiter(this, void 0, void 0, function* () {
  11143. const url = 'apis/v4/unibase/platform/analytics/deleteviewer/reportid/' + reportid + "/viewerid/" + viewerid + "/viewertypeid/" + viewertypeid;
  11144. return yield this.dataHelper().postAsync(url, null).then(function (response) {
  11145. if (response.result !== null) {
  11146. response.result = JSON.parse(response.result);
  11147. }
  11148. return response;
  11149. });
  11150. });
  11151. }
  11152. updateViewerStatus(viewerid, viewertypeid) {
  11153. return __awaiter(this, void 0, void 0, function* () {
  11154. const url = 'apis/v4/unibase/platform/analytics/updateviewerstatus/viewerid/' + viewerid + "/viewertypeid/" + viewertypeid;
  11155. return yield this.dataHelper().postAsync(url, null).then(function (response) {
  11156. return response;
  11157. });
  11158. });
  11159. }
  11160. getViewer(viewerid) {
  11161. return __awaiter(this, void 0, void 0, function* () {
  11162. const url = 'apis/v4/unibase/platform/analytics/getviewer/viewerid/' + viewerid;
  11163. return yield this.dataHelper().getAsync(url).then(function (response) {
  11164. if (response.result !== null)
  11165. response.result = JSON.parse(response.result);
  11166. return response;
  11167. });
  11168. });
  11169. }
  11170. getViewerRoles(viewerid, reportid) {
  11171. return __awaiter(this, void 0, void 0, function* () {
  11172. const url = 'apis/v4/unibase/platform/analytics/getviewerroles/viewerid/' + viewerid + '/reportid/' + reportid;
  11173. return yield this.dataHelper().getAsync(url).then(function (response) {
  11174. if (response.result !== null)
  11175. response.result = JSON.parse(response.result);
  11176. return response;
  11177. });
  11178. });
  11179. }
  11180. addViewerRole(obj) {
  11181. return __awaiter(this, void 0, void 0, function* () {
  11182. const url = 'apis/v4/unibase/platform/analytics/saveviewerrole';
  11183. return yield this.dataHelper().postAsync(url, obj).then(function (response) {
  11184. if (response.result !== null)
  11185. response.result = JSON.parse(response.result);
  11186. return response;
  11187. });
  11188. });
  11189. }
  11190. removeViewerRole(obj) {
  11191. return __awaiter(this, void 0, void 0, function* () {
  11192. const url = 'apis/v4/unibase/platform/analytics/removeviewerrole';
  11193. return yield this.dataHelper().postAsync(url, obj).then(function (response) {
  11194. if (response.result !== null)
  11195. response.result = JSON.parse(response.result);
  11196. return response;
  11197. });
  11198. });
  11199. }
  11200. setViewable(viewerid, viewAll, viewerTypeId) {
  11201. return __awaiter(this, void 0, void 0, function* () {
  11202. const url = 'apis/v4/unibase/platform/analytics/setasviewerviewable/viewerid/' + viewerid + '/viewall/' + viewAll + '/viewerTypeId/' + viewerTypeId;
  11203. return yield this.dataHelper().postAsync(url, null).then(function (response) {
  11204. if (response.result !== null)
  11205. response.result = JSON.parse(response.result);
  11206. return response;
  11207. });
  11208. });
  11209. }
  11210. exportViewers(viewerId, reportId) {
  11211. return __awaiter(this, void 0, void 0, function* () {
  11212. const url = 'apis/v4/unibase/platform/analytics/exportreportviewers/reportid/' + reportId + '/viewerid/' + viewerId;
  11213. return yield this.dataHelper().getAsync(url).then(function (response) {
  11214. return response;
  11215. });
  11216. });
  11217. }
  11218. static Instance() {
  11219. if (this._instance === undefined)
  11220. this._instance = new ViewerManager();
  11221. return this._instance;
  11222. }
  11223. }
  11224. Managers.ViewerManager = ViewerManager;
  11225. })(Managers = Analytics.Managers || (Analytics.Managers = {}));
  11226. })(Analytics = Platform.Analytics || (Platform.Analytics = {}));
  11227. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  11228. })(Unibase || (Unibase = {}));
  11229. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
  11230. function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  11231. return new (P || (P = Promise))(function (resolve, reject) {
  11232. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  11233. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  11234. function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
  11235. step((generator = generator.apply(thisArg, _arguments || [])).next());
  11236. });
  11237. };
  11238. var Unibase;
  11239. (function (Unibase) {
  11240. let Platform;
  11241. (function (Platform) {
  11242. let Filters;
  11243. (function (Filters) {
  11244. let Managers;
  11245. (function (Managers) {
  11246. class FilterManager extends Platform.Core.BaseManager {
  11247. getFilterBy(installeappid, filterId) {
  11248. return __awaiter(this, void 0, void 0, function* () {
  11249. const url = 'apis/v4/unibase/platform/apps/getfilter/installedappid/' + installeappid + '/filterid/' + filterId;
  11250. return yield this.dataHelper().getAsync(url).then(function (response) {
  11251. if (response.result !== null)
  11252. response.result = JSON.parse(response.result);
  11253. return response;
  11254. });
  11255. });
  11256. }
  11257. getFilterByReport(reportid) {
  11258. return __awaiter(this, void 0, void 0, function* () {
  11259. const url = 'apis/v4/unibase/platform/apps/getfilter/reportid/' + reportid;
  11260. return yield this.dataHelper().getAsync(url).then(function (response) {
  11261. if (response.result !== null)
  11262. response.result = JSON.parse(response.result);
  11263. return response;
  11264. });
  11265. });
  11266. }
  11267. getDatalistQuery(installeappid) {
  11268. return __awaiter(this, void 0, void 0, function* () {
  11269. const url = 'apis/v4/unibase/platform/apps/getdatalistquery/installedappid/' + installeappid;
  11270. return yield this.dataHelper().getAsync(url).then(function (response) {
  11271. if (response.result !== null)
  11272. response.result = JSON.parse(response.result);
  11273. return response;
  11274. });
  11275. });
  11276. }
  11277. getFilters(installeappid) {
  11278. return __awaiter(this, void 0, void 0, function* () {
  11279. const url = 'apis/v4/unibase/platform/apps/filters/installedappid/' + installeappid;
  11280. return yield this.dataHelper().getAsync(url).then(function (response) {
  11281. if (response.result !== null)
  11282. response.result = JSON.parse(response.result);
  11283. return response;
  11284. });
  11285. });
  11286. }
  11287. getReportFilters(reportid) {
  11288. return __awaiter(this, void 0, void 0, function* () {
  11289. const url = 'apis/v4/unibase/platform/apps/reportfilters/reportid/' + reportid;
  11290. return yield this.dataHelper().getAsync(url).then(function (response) {
  11291. if (response.result !== null)
  11292. response.result = JSON.parse(response.result);
  11293. return response;
  11294. });
  11295. });
  11296. }
  11297. refreshFilterIndex(filterids) {
  11298. return __awaiter(this, void 0, void 0, function* () {
  11299. const url = 'apis/v4/unibase/platform/apps/refreshfilterindexes/filterids/' + filterids;
  11300. return yield this.dataHelper().postAsync(url, filterids).then(function (response) {
  11301. if (response.result !== null)
  11302. response.result = JSON.parse(response.result);
  11303. return response;
  11304. });
  11305. });
  11306. }
  11307. getFilter(filterId) {
  11308. return __awaiter(this, void 0, void 0, function* () {
  11309. const url = 'apis/v4/unibase/platform/apps/getfilter/filterid/' + filterId;
  11310. return yield this.dataHelper().getAsync(url).then(function (response) {
  11311. if (response.result !== null)
  11312. response.result = JSON.parse(response.result);
  11313. return response;
  11314. });
  11315. });
  11316. }
  11317. saveFilter(obj) {
  11318. return __awaiter(this, void 0, void 0, function* () {
  11319. const url = 'apis/v4/unibase/platform/apps/savefilter';
  11320. return yield this.dataHelper().postAsync(url, obj).then(function (response) {
  11321. if (response.result !== null)
  11322. response.result = JSON.parse(response.result);
  11323. return response;
  11324. });
  11325. });
  11326. }
  11327. deleteFilter(filterid) {
  11328. return __awaiter(this, void 0, void 0, function* () {
  11329. const url = 'apis/v4/unibase/platform/analytics/deletefilter/filterid/' + filterid;
  11330. return yield this.dataHelper().postAsync(url, null).then(function (response) {
  11331. return response;
  11332. });
  11333. });
  11334. }
  11335. updatefilterindex(filterId, defaultindex) {
  11336. return __awaiter(this, void 0, void 0, function* () {
  11337. const url = 'apis/v4/unibase/platform/apps/updatefilterindex/filterid/' + filterId + '/defaultindex/' + defaultindex;
  11338. return yield this.dataHelper().postAsync(url, null).then(function (response) {
  11339. if (response.result !== null)
  11340. response.result = JSON.parse(response.result);
  11341. return response;
  11342. });
  11343. });
  11344. }
  11345. getFilterOptions(filterId) {
  11346. return __awaiter(this, void 0, void 0, function* () {
  11347. const url = 'apis/v4/unibase/platform/apps/getfilteroptions/filterid/' + filterId;
  11348. return yield this.dataHelper().getAsync(url).then(function (response) {
  11349. if (response.result !== null)
  11350. response.result = JSON.parse(response.result);
  11351. return response;
  11352. });
  11353. });
  11354. }
  11355. removeFilterOption(obj) {
  11356. return __awaiter(this, void 0, void 0, function* () {
  11357. const url = 'apis/v4/unibase/platform/apps/removefilteroption';
  11358. return yield this.dataHelper().postAsync(url, obj).then(function (response) {
  11359. if (response.result !== null)
  11360. response.result = JSON.parse(response.result);
  11361. return response;
  11362. });
  11363. });
  11364. }
  11365. getFilterRoles(filterId) {
  11366. return __awaiter(this, void 0, void 0, function* () {
  11367. const url = 'apis/v4/unibase/platform/apps/filterroles/filterid/' + filterId;
  11368. return yield this.dataHelper().getAsync(url).then(function (response) {
  11369. if (response.result !== null)
  11370. response.result = JSON.parse(response.result);
  11371. return response;
  11372. });
  11373. });
  11374. }
  11375. setViewable(filterId, viewAll) {
  11376. return __awaiter(this, void 0, void 0, function* () {
  11377. const url = 'apis/v4/unibase/platform/apps/setasviewable/filterid/' + filterId + '/viewall/' + viewAll;
  11378. return yield this.dataHelper().postAsync(url, null).then(function (response) {
  11379. if (response.result !== null)
  11380. response.result = JSON.parse(response.result);
  11381. return response;
  11382. });
  11383. });
  11384. }
  11385. addFilterRole(obj) {
  11386. return __awaiter(this, void 0, void 0, function* () {
  11387. const url = 'apis/v4/unibase/platform/apps/savefilterrole';
  11388. return yield this.dataHelper().postAsync(url, obj).then(function (response) {
  11389. if (response.result !== null)
  11390. response.result = JSON.parse(response.result);
  11391. return response;
  11392. });
  11393. });
  11394. }
  11395. removeFilterRole(obj) {
  11396. return __awaiter(this, void 0, void 0, function* () {
  11397. const url = 'apis/v4/unibase/platform/apps/removefilterrole';
  11398. return yield this.dataHelper().postAsync(url, obj).then(function (response) {
  11399. if (response.result !== null)
  11400. response.result = JSON.parse(response.result);
  11401. return response;
  11402. });
  11403. });
  11404. }
  11405. getDefaultFilterByReport(reportid) {
  11406. return __awaiter(this, void 0, void 0, function* () {
  11407. const url = 'apis/v4/unibase/platform/analytics/getdefaultfilter/reportid/' + reportid;
  11408. return yield this.dataHelper().getAsync(url).then(function (response) {
  11409. if (response.result !== "")
  11410. response.result = JSON.parse(response.result);
  11411. return response;
  11412. });
  11413. });
  11414. }
  11415. saveDefaultFilter(obj) {
  11416. return __awaiter(this, void 0, void 0, function* () {
  11417. const url = 'apis/v4/unibase/platform/analytics/savedefaultfilter';
  11418. return yield this.dataHelper().postAsync(url, obj).then(function (response) {
  11419. if (response.result !== null)
  11420. response.result = JSON.parse(response.result);
  11421. return response;
  11422. });
  11423. });
  11424. }
  11425. updatedefaultfilter(filterId, defaultfilter) {
  11426. return __awaiter(this, void 0, void 0, function* () {
  11427. const url = 'apis/v4/unibase/platform/apps/updatedefaultfilter/filterid/' + filterId + '/isdefault/' + defaultfilter;
  11428. return yield this.dataHelper().postAsync(url, null).then(function (response) {
  11429. if (response.result !== null)
  11430. response.result = JSON.parse(response.result);
  11431. return response;
  11432. });
  11433. });
  11434. }
  11435. deletedafultfilter(reportid) {
  11436. return __awaiter(this, void 0, void 0, function* () {
  11437. const url = 'apis/v4/unibase/platform/apps/deletedafultfilter/reportid/' + reportid;
  11438. return yield this.dataHelper().postAsync(url, null).then(function (response) {
  11439. return response;
  11440. });
  11441. });
  11442. }
  11443. static Instance() {
  11444. if (this._instance === undefined)
  11445. this._instance = new FilterManager();
  11446. return this._instance;
  11447. }
  11448. }
  11449. Managers.FilterManager = FilterManager;
  11450. })(Managers = Filters.Managers || (Filters.Managers = {}));
  11451. })(Filters = Platform.Filters || (Platform.Filters = {}));
  11452. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  11453. })(Unibase || (Unibase = {}));
  11454. class HtmlHelper {
  11455. encode(value) {
  11456. var unencoded = value;
  11457. return encodeURIComponent(unencoded).replace(/'/g, "%27").replace(/"/g, "%22");
  11458. }
  11459. decode(value) {
  11460. var encoded = value;
  11461. return decodeURIComponent(encoded.replace(/\+/g, " "));
  11462. }
  11463. static getHelper() {
  11464. return new HtmlHelper();
  11465. }
  11466. }
  11467. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
  11468. function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  11469. return new (P || (P = Promise))(function (resolve, reject) {
  11470. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  11471. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  11472. function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
  11473. step((generator = generator.apply(thisArg, _arguments || [])).next());
  11474. });
  11475. };
  11476. var Unibase;
  11477. (function (Unibase) {
  11478. let Platform;
  11479. (function (Platform) {
  11480. let Apps;
  11481. (function (Apps) {
  11482. let Managers;
  11483. (function (Managers) {
  11484. class AppManager extends Platform.Core.BaseManager {
  11485. getAppGroups() {
  11486. return __awaiter(this, void 0, void 0, function* () {
  11487. let appgroupname = 'Sales';
  11488. const url = 'apis/v4/unibase/platform/apps/' + appgroupname;
  11489. return yield this.dataHelper().getAsync(url).then(function (response) {
  11490. if (response.result != null) {
  11491. response.result = JSON.parse(response.result);
  11492. }
  11493. return response;
  11494. });
  11495. });
  11496. }
  11497. previewDocument(documentFileId) {
  11498. var instance = this;
  11499. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile('platform/files/managers/filemanager.js', function () {
  11500. Unibase.Platform.Files.Managers.FileManager.Instance().getDocumentFile(documentFileId).then(function (response) {
  11501. var filePath = response.result.DocumentFilePath;
  11502. var result = response.result;
  11503. var byteCharacters = atob(result.FileData);
  11504. var byteNumbers = new Array(byteCharacters.length);
  11505. for (var i = 0; i < byteCharacters.length; i++) {
  11506. byteNumbers[i] = byteCharacters.charCodeAt(i);
  11507. }
  11508. var byteArray = new Uint8Array(byteNumbers);
  11509. var file = new Blob([byteArray], { type: result.DocumentFilePath + ';base64' });
  11510. var fileURL = URL.createObjectURL(file);
  11511. var fileName = result.DocumentFileName + "." + result.FileType;
  11512. window.open(result.DocumentFilePath);
  11513. });
  11514. });
  11515. }
  11516. refreshApps() {
  11517. return __awaiter(this, void 0, void 0, function* () {
  11518. const url = 'apis/v4/unibase/platform/apps/refreshapps/np';
  11519. return yield this.dataHelper().postAsync(url, "{}").then(function (response) {
  11520. if (response.result != null) {
  11521. response.result = JSON.parse(response.result);
  11522. }
  11523. return response;
  11524. });
  11525. });
  11526. }
  11527. getParentApps() {
  11528. return __awaiter(this, void 0, void 0, function* () {
  11529. const url = 'apis/v4/unibase/platform/apps/getparentapps';
  11530. return yield this.dataHelper().getAsync(url).then(function (response) {
  11531. if (response.result != null) {
  11532. response.result = JSON.parse(response.result);
  11533. }
  11534. return response;
  11535. });
  11536. });
  11537. }
  11538. updateAppProvider(appproviderid, datalistid) {
  11539. return __awaiter(this, void 0, void 0, function* () {
  11540. const url = 'apis/v4/unibase/platform/apps/updatereportid/appproviderid/' + appproviderid + '/datalistid/' + datalistid;
  11541. var result = "";
  11542. yield this.dataHelper().post(url, null, function (response) {
  11543. result = JSON.parse(response.result);
  11544. }, function (response) {
  11545. result = JSON.parse(response.result);
  11546. });
  11547. return result;
  11548. });
  11549. }
  11550. saveDynamicApp(obj) {
  11551. return __awaiter(this, void 0, void 0, function* () {
  11552. const url = 'apis/v4/unibase/platform/apps/savedynamicapp';
  11553. return yield this.dataHelper().postAsync(url, obj).then(function (response) {
  11554. if (response.result != null) {
  11555. response.result = JSON.parse(response.result);
  11556. }
  11557. return response;
  11558. });
  11559. });
  11560. }
  11561. updateDynamicApp(obj) {
  11562. return __awaiter(this, void 0, void 0, function* () {
  11563. const url = 'apis/v4/unibase/platform/apps/updatedynamicapp';
  11564. return yield this.dataHelper().postAsync(url, obj).then(function (response) {
  11565. if (response.result != null) {
  11566. response.result = JSON.parse(response.result);
  11567. }
  11568. return response;
  11569. });
  11570. });
  11571. }
  11572. geAppInfoandappConfigurationInfo(installeappid, appconfigurationid) {
  11573. return __awaiter(this, void 0, void 0, function* () {
  11574. const url = 'apis/v4/unibase/platform/apps/getappinfoandconfigurationinfo/installedappid/' + installeappid + '/appconfigurationid/' + appconfigurationid;
  11575. return yield this.dataHelper().getAsync(url).then(function (response) {
  11576. if (response.result != null && response.result != "") {
  11577. response.result = JSON.parse(response.result);
  11578. }
  11579. return response;
  11580. });
  11581. });
  11582. }
  11583. updateAppStatus(installedAppId, statusId) {
  11584. return __awaiter(this, void 0, void 0, function* () {
  11585. const url = 'apis/v4/unibase/platform/apps/updateappstatus/installedappid/' + installedAppId + '/statusid/' + statusId;
  11586. return yield this.dataHelper().postAsync(url, null).then(function (response) {
  11587. if (response.result != null) {
  11588. response.result = JSON.parse(response.result);
  11589. }
  11590. return response;
  11591. });
  11592. });
  11593. }
  11594. updateWishList(installedAppId, statusId) {
  11595. return __awaiter(this, void 0, void 0, function* () {
  11596. const url = 'apis/v4/unibase/platform/apps/updatewishlist/installedappid/' + installedAppId + '/status/' + statusId;
  11597. return yield this.dataHelper().postAsync(url, null).then(function (response) {
  11598. if (response.result != null) {
  11599. response.result = JSON.parse(response.result);
  11600. }
  11601. return response;
  11602. });
  11603. });
  11604. }
  11605. saveStatus(statusid, doctypeid, recordid, versionguid) {
  11606. return __awaiter(this, void 0, void 0, function* () {
  11607. const url = 'apis/v4/unibase/platform/apps/savestatus/statusid/' + statusid + '/doctypeid/' + doctypeid + '/recordid/' + recordid + '/versionguid/' + versionguid;
  11608. return yield this.dataHelper().postAsync(url, null).then(function (response) {
  11609. if (response.result != null) {
  11610. response.result = JSON.parse(response.result);
  11611. }
  11612. return response;
  11613. });
  11614. });
  11615. }
  11616. getInstallApp(installeappid) {
  11617. return __awaiter(this, void 0, void 0, function* () {
  11618. const url = 'apis/v4/unibase/platform/apps/getinstalledapp/id/' + installeappid;
  11619. return yield this.dataHelper().getAsync(url).then(function (response) {
  11620. if (response.result != null && response.result != "") {
  11621. response.result = JSON.parse(response.result);
  11622. }
  11623. return response;
  11624. });
  11625. });
  11626. }
  11627. getAppVersion(versionid) {
  11628. return __awaiter(this, void 0, void 0, function* () {
  11629. const url = 'apis/v4/unibase/platform/apps/getappversionid/id/' + versionid;
  11630. return yield this.dataHelper().getAsync(url).then(function (response) {
  11631. if (response.result != null && response.result != "") {
  11632. response.result = JSON.parse(response.result);
  11633. }
  11634. return response;
  11635. });
  11636. });
  11637. }
  11638. getApp(appid) {
  11639. return __awaiter(this, void 0, void 0, function* () {
  11640. const url = 'apis/v4/unibase/platform/apps/getappid/id/' + appid;
  11641. return yield this.dataHelper().getAsync(url).then(function (response) {
  11642. if (response.result != null && response.result != "") {
  11643. response.result = JSON.parse(response.result);
  11644. }
  11645. return response;
  11646. });
  11647. });
  11648. }
  11649. getDocumentFileId(documentid) {
  11650. return __awaiter(this, void 0, void 0, function* () {
  11651. const url = 'apis/v4/unibase/platform/apps/getdocumentfileid/id/' + documentid;
  11652. return yield this.dataHelper().getAsync(url).then(function (response) {
  11653. if (response.result != null && response.result != "") {
  11654. response.result = JSON.parse(response.result);
  11655. }
  11656. return response;
  11657. });
  11658. });
  11659. }
  11660. getWidgetVersion(widgetid) {
  11661. return __awaiter(this, void 0, void 0, function* () {
  11662. const url = 'apis/v4/unibase/platform/apps/getwidgetid/id/' + widgetid;
  11663. return yield this.dataHelper().getAsync(url).then(function (response) {
  11664. if (response.result != null && response.result != "") {
  11665. response.result = JSON.parse(response.result);
  11666. }
  11667. return response;
  11668. });
  11669. });
  11670. }
  11671. getDashboardVersion(portletid) {
  11672. return __awaiter(this, void 0, void 0, function* () {
  11673. const url = 'apis/v4/unibase/platform/apps/getportletid/id/' + portletid;
  11674. return yield this.dataHelper().getAsync(url).then(function (response) {
  11675. if (response.result != null && response.result != "") {
  11676. response.result = JSON.parse(response.result);
  11677. }
  11678. return response;
  11679. });
  11680. });
  11681. }
  11682. getCurrentDashboardVersion(portletid) {
  11683. return __awaiter(this, void 0, void 0, function* () {
  11684. const url = 'apis/v4/unibase/platform/apps/getcurrentportletversion/id/' + portletid;
  11685. return yield this.dataHelper().getAsync(url).then(function (response) {
  11686. if (response.result != null && response.result != "") {
  11687. response.result = JSON.parse(response.result);
  11688. }
  11689. return response;
  11690. });
  11691. });
  11692. }
  11693. getReportVersion(reportId) {
  11694. return __awaiter(this, void 0, void 0, function* () {
  11695. const url = 'apis/v4/unibase/platform/apps/getreportid/id/' + reportId;
  11696. return yield this.dataHelper().getAsync(url).then(function (response) {
  11697. if (response.result != null && response.result != "") {
  11698. response.result = JSON.parse(response.result);
  11699. }
  11700. return response;
  11701. });
  11702. });
  11703. }
  11704. getCurrentReportVersion(reportId) {
  11705. return __awaiter(this, void 0, void 0, function* () {
  11706. const url = 'apis/v4/unibase/platform/apps/getcurrentversiond/id/' + reportId;
  11707. return yield this.dataHelper().getAsync(url).then(function (response) {
  11708. if (response.result != null && response.result != "") {
  11709. response.result = JSON.parse(response.result);
  11710. }
  11711. return response;
  11712. });
  11713. });
  11714. }
  11715. getAllApps(installeappid) {
  11716. return __awaiter(this, void 0, void 0, function* () {
  11717. const url = 'apis/v4/unibase/platform/apps/getallapps/installedappid/' + installeappid;
  11718. return yield this.dataHelper().getAsync(url).then(function (response) {
  11719. if (response.result != null && response.result != "") {
  11720. response.result = JSON.parse(response.result);
  11721. }
  11722. return response;
  11723. });
  11724. });
  11725. }
  11726. getInstallAppId(uniqueid) {
  11727. return __awaiter(this, void 0, void 0, function* () {
  11728. const url = 'apis/v4/unibase/platform/apps/getinstalledappid/uniqueid/' + uniqueid;
  11729. return yield this.dataHelper().getAsync(url).then(function (response) {
  11730. if (response.result != null && response.result != "") {
  11731. response.result = JSON.parse(response.result);
  11732. }
  11733. return response;
  11734. });
  11735. });
  11736. }
  11737. getInstalledApps() {
  11738. return __awaiter(this, void 0, void 0, function* () {
  11739. const url = 'apis/v4/unibase/platform/apps/getinstalledapps';
  11740. return yield this.dataHelper().getAsync(url).then(function (response) {
  11741. if (response.result != null) {
  11742. response.result = JSON.parse(response.result);
  11743. }
  11744. return response;
  11745. });
  11746. });
  11747. }
  11748. getChildApps(installedappid) {
  11749. return __awaiter(this, void 0, void 0, function* () {
  11750. const url = 'apis/v4/unibase/platform/apps/getchildapps/parentid/' + installedappid;
  11751. return yield this.dataHelper().getAsync(url).then(function (response) {
  11752. if (response.result != null) {
  11753. response.result = JSON.parse(response.result);
  11754. }
  11755. return response;
  11756. });
  11757. });
  11758. }
  11759. getChilds(installedappid) {
  11760. return __awaiter(this, void 0, void 0, function* () {
  11761. const url = 'apis/v4/unibase/platform/apps/getchilds/parentid/' + installedappid;
  11762. return yield this.dataHelper().getAsync(url).then(function (response) {
  11763. if (response.result != null) {
  11764. response.result = JSON.parse(response.result);
  11765. }
  11766. return response;
  11767. });
  11768. });
  11769. }
  11770. getdependentApps(installedappid) {
  11771. return __awaiter(this, void 0, void 0, function* () {
  11772. const url = 'apis/v4/unibase/platform/apps/getdependentapps/' + installedappid;
  11773. return yield this.dataHelper().getAsync(url).then(function (response) {
  11774. if (response.result != null) {
  11775. response.result = JSON.parse(response.result);
  11776. }
  11777. return response;
  11778. });
  11779. });
  11780. }
  11781. updateAppIndex(obj) {
  11782. return __awaiter(this, void 0, void 0, function* () {
  11783. const url = 'apis/v4/unibase/platform/apps/updateindexes/';
  11784. return yield this.dataHelper().postAsync(url, obj).then(function (response) {
  11785. if (response.result != null) {
  11786. response.result = JSON.parse(response.result);
  11787. }
  11788. return response;
  11789. });
  11790. });
  11791. }
  11792. duplicateApp(obj) {
  11793. return __awaiter(this, void 0, void 0, function* () {
  11794. const url = 'apis/v4/unibase/platform/apps/duplicateapp';
  11795. return yield this.dataHelper().postAsync(url, obj).then(function (response) {
  11796. if (response.result != null) {
  11797. response.result = JSON.parse(response.result);
  11798. }
  11799. return response;
  11800. });
  11801. });
  11802. }
  11803. getAppPermission(apppermissionid) {
  11804. return __awaiter(this, void 0, void 0, function* () {
  11805. const url = 'apis/v4/unibase/platform/apps/getapppermission/apppermissionid/' + apppermissionid;
  11806. return yield this.dataHelper().getAsync(url).then(function (response) {
  11807. if (response.result !== null)
  11808. response.result = JSON.parse(response.result);
  11809. return response;
  11810. });
  11811. });
  11812. }
  11813. getAppPermissions(installedAppId) {
  11814. return __awaiter(this, void 0, void 0, function* () {
  11815. const url = 'apis/v4/unibase/platform/apps/getapppermissions/installedappid/' + installedAppId;
  11816. return yield this.dataHelper().getAsync(url).then(function (response) {
  11817. if (response.result !== null)
  11818. response.result = JSON.parse(response.result);
  11819. return response;
  11820. });
  11821. });
  11822. }
  11823. saveAppPermission(obj) {
  11824. return __awaiter(this, void 0, void 0, function* () {
  11825. const url = 'apis/v4/unibase/platform/apps/saveapppermissionid';
  11826. return yield this.dataHelper().postAsync(url, obj).then(function (response) {
  11827. if (response.result !== null)
  11828. response.result = JSON.parse(response.result);
  11829. return response;
  11830. });
  11831. });
  11832. }
  11833. deleteAppPermission(apppermissionid) {
  11834. return __awaiter(this, void 0, void 0, function* () {
  11835. const url = 'apis/v4/unibase/platform/apps/deleteapppermission/apppermissionid/' + apppermissionid;
  11836. return yield this.dataHelper().postAsync(url, null);
  11837. });
  11838. }
  11839. getAppPermissionBySystemName(installedAppId, SystemName) {
  11840. return __awaiter(this, void 0, void 0, function* () {
  11841. const url = 'apis/v4/unibase/platform/apps/getapppermissions/installedappid/' + installedAppId + "/systemname/" + SystemName;
  11842. var approlesettings;
  11843. return yield this.dataHelper().getAsync(url).then(function (response) {
  11844. if (response.result !== null)
  11845. response.result = JSON.parse(response.result);
  11846. return response;
  11847. });
  11848. });
  11849. }
  11850. getAllAppConfigurations(installedappid) {
  11851. return __awaiter(this, void 0, void 0, function* () {
  11852. const url = 'apis/v4/unibase/platform/apps/getappconfigurations/installedappid/' + installedappid;
  11853. return yield this.dataHelper().getAsync(url).then(function (response) {
  11854. if (response.result != null) {
  11855. response.result = JSON.parse(response.result);
  11856. }
  11857. return response;
  11858. });
  11859. });
  11860. }
  11861. getListAppConfigurations(installedappid) {
  11862. return __awaiter(this, void 0, void 0, function* () {
  11863. const url = 'apis/v4/unibase/platform/apps/listappconfigurations/installedappid/' + installedappid;
  11864. return yield this.dataHelper().getAsync(url).then(function (response) {
  11865. if (response.result != null) {
  11866. response.result = JSON.parse(response.result);
  11867. }
  11868. return response;
  11869. });
  11870. });
  11871. }
  11872. getDetailAppConfigurations(installedappid) {
  11873. return __awaiter(this, void 0, void 0, function* () {
  11874. const url = 'apis/v4/unibase/platform/apps/detailappconfigurations/installedappid/' + installedappid;
  11875. return yield this.dataHelper().getAsync(url).then(function (response) {
  11876. if (response.result != null) {
  11877. response.result = JSON.parse(response.result);
  11878. }
  11879. return response;
  11880. });
  11881. });
  11882. }
  11883. getFormAppConfigurations(installedappid) {
  11884. return __awaiter(this, void 0, void 0, function* () {
  11885. const url = 'apis/v4/unibase/platform/apps/getformconfigurations/installedappid/' + installedappid;
  11886. return yield this.dataHelper().getAsync(url).then(function (response) {
  11887. if (response.result != null) {
  11888. response.result = JSON.parse(response.result);
  11889. }
  11890. return response;
  11891. });
  11892. });
  11893. }
  11894. getAppConfiguration(appconfigurationid) {
  11895. return __awaiter(this, void 0, void 0, function* () {
  11896. const url = 'apis/v4/unibase/platform/apps/getconfiguration/id/' + appconfigurationid;
  11897. return yield this.dataHelper().getAsync(url).then(function (response) {
  11898. if (response.result != null) {
  11899. response.result = JSON.parse(response.result);
  11900. }
  11901. return response;
  11902. });
  11903. });
  11904. }
  11905. getAppConfigurationByUniqueId(uniqueId) {
  11906. return __awaiter(this, void 0, void 0, function* () {
  11907. const url = 'apis/v4/unibase/platform/apps/getconfiguration/uniqueid/' + uniqueId;
  11908. return yield this.dataHelper().getAsync(url).then(function (response) {
  11909. if (response.result != null) {
  11910. response.result = JSON.parse(response.result);
  11911. }
  11912. return response;
  11913. });
  11914. });
  11915. }
  11916. saveAppConfiguration(obj) {
  11917. return __awaiter(this, void 0, void 0, function* () {
  11918. const url = 'apis/v4/unibase/platform/apps/saveappconfiguration';
  11919. return yield this.dataHelper().postAsync(url, obj).then(function (response) {
  11920. if (response.result != null) {
  11921. response.result = JSON.parse(response.result);
  11922. }
  11923. return response;
  11924. });
  11925. });
  11926. }
  11927. deleteAppConfiguration(appConfigurationId) {
  11928. return __awaiter(this, void 0, void 0, function* () {
  11929. const url = 'apis/v4/unibase/platform/apps/delete/id/' + appConfigurationId;
  11930. return yield this.dataHelper().postAsync(url, null);
  11931. });
  11932. }
  11933. updateConfigurationStatus(appConfigurationId, statusId) {
  11934. return __awaiter(this, void 0, void 0, function* () {
  11935. const url = 'apis/v4/unibase/platform/apps/updatestatus/appconfigurationid/' + appConfigurationId + '/statusid/' + statusId;
  11936. return yield this.dataHelper().postAsync(url, null).then(function (response) {
  11937. if (response.result != null) {
  11938. response.result = JSON.parse(response.result);
  11939. }
  11940. return response;
  11941. });
  11942. });
  11943. }
  11944. getUserApps() {
  11945. return __awaiter(this, void 0, void 0, function* () {
  11946. var url = "apis/v4/unibase/platform/apps/userapps/contactid/" + Platform.Membership.Infos.Identity.getCurrentUser().userId;
  11947. return yield this.dataHelper().getAsync(url).then(function (response) {
  11948. if (response.result !== null)
  11949. response.result = JSON.parse(response.result);
  11950. return response;
  11951. });
  11952. });
  11953. }
  11954. getMyApps() {
  11955. return __awaiter(this, void 0, void 0, function* () {
  11956. var url = "apis/v4/unibase/platform/apps/myapps";
  11957. return yield this.dataHelper().getAsync(url).then(function (response) {
  11958. if (response.result !== null)
  11959. response.result = JSON.parse(response.result);
  11960. return response;
  11961. });
  11962. });
  11963. }
  11964. exportApp(installedappid) {
  11965. return __awaiter(this, void 0, void 0, function* () {
  11966. const url = 'apis/v4/unibase/platform/apps/exportapp/' + installedappid;
  11967. return yield this.dataHelper().getAsync(url).then(function (response) {
  11968. if (response.result != null) {
  11969. response.result = response.result;
  11970. }
  11971. return response;
  11972. });
  11973. });
  11974. }
  11975. exportAppRoleSettings() {
  11976. return __awaiter(this, void 0, void 0, function* () {
  11977. const url = 'apis/v4/unibase/platform/apps/exportapprolesettings';
  11978. return yield this.dataHelper().getAsync(url).then(function (response) {
  11979. if (response.result != null) {
  11980. response.result = response.result;
  11981. }
  11982. return response;
  11983. });
  11984. });
  11985. }
  11986. saveVersion(obj) {
  11987. return __awaiter(this, void 0, void 0, function* () {
  11988. debugger;
  11989. const url = 'apis/v4/unibase/platform/apps/saveversion';
  11990. return yield this.dataHelper().postAsync(url, obj).then(function (response) {
  11991. if (response.result != null) {
  11992. response.result = JSON.parse(response.result);
  11993. }
  11994. return response;
  11995. });
  11996. });
  11997. }
  11998. getCurrentVersionByApp(installedappid) {
  11999. return __awaiter(this, void 0, void 0, function* () {
  12000. var url = "apis/v4/unibase/platform/apps/getcurrentversionbyapp/" + installedappid;
  12001. return yield this.dataHelper().getAsync(url).then(function (response) {
  12002. return response;
  12003. });
  12004. });
  12005. }
  12006. upgradeApp(installedappid, versionno) {
  12007. return __awaiter(this, void 0, void 0, function* () {
  12008. var url = "apis/v4/unibase/platform/apps/upgradeappversion/installedappid/" + installedappid + "/versionno/" + versionno;
  12009. return yield this.dataHelper().postAsync(url, null).then(function (response) {
  12010. if (response.result != null) {
  12011. response.result = JSON.parse(response.result);
  12012. }
  12013. return response;
  12014. });
  12015. });
  12016. }
  12017. upgradeAvailableApp(installedappid) {
  12018. return __awaiter(this, void 0, void 0, function* () {
  12019. var url = "apis/v4/unibase/platform/apps/UpgradeAppAvailable/installedappid/" + installedappid;
  12020. return yield this.dataHelper().postAsync(url, null).then(function (response) {
  12021. if (response.result != null) {
  12022. response.result = JSON.parse(response.result);
  12023. }
  12024. return response;
  12025. });
  12026. });
  12027. }
  12028. upgradeWidgetVersionAvailable(widgetid) {
  12029. return __awaiter(this, void 0, void 0, function* () {
  12030. var url = "apis/v4/unibase/platform/apps/upgradewidgetversionavailable/widgetid/" + widgetid;
  12031. return yield this.dataHelper().postAsync(url, null).then(function (response) {
  12032. if (response.result != null) {
  12033. response.result = JSON.parse(response.result);
  12034. }
  12035. return response;
  12036. });
  12037. });
  12038. }
  12039. upgradeDashboardVersionAvailable(portletid) {
  12040. return __awaiter(this, void 0, void 0, function* () {
  12041. var url = "apis/v4/unibase/platform/apps/upgradedashboardversionavailable/portletid/" + portletid;
  12042. return yield this.dataHelper().postAsync(url, null).then(function (response) {
  12043. debugger;
  12044. if (response.result != null) {
  12045. response.result = JSON.parse(response.result);
  12046. }
  12047. return response;
  12048. });
  12049. });
  12050. }
  12051. upgradeReportVersionAvailable(reportId) {
  12052. return __awaiter(this, void 0, void 0, function* () {
  12053. var url = "apis/v4/unibase/platform/apps/upgradereportversion/reportid/" + reportId;
  12054. return yield this.dataHelper().postAsync(url, null).then(function (response) {
  12055. debugger;
  12056. if (response.result != null) {
  12057. response.result = JSON.parse(response.result);
  12058. }
  12059. return response;
  12060. });
  12061. });
  12062. }
  12063. checkAppPermission(installedAppId) {
  12064. return __awaiter(this, void 0, void 0, function* () {
  12065. var url = "apis/v4/unibase/platform/apps/checkapppermission/installedappid/" + installedAppId;
  12066. return yield this.dataHelper().postAsync(url, null).then(function (response) {
  12067. if (response.result != null) {
  12068. response.result = JSON.parse(response.result);
  12069. }
  12070. return response;
  12071. });
  12072. });
  12073. }
  12074. exportAppPermissions(appId) {
  12075. return __awaiter(this, void 0, void 0, function* () {
  12076. const url = 'apis/v4/unibase/platform/apps/exportapppermissions/installedappid/' + appId;
  12077. return yield this.dataHelper().getAsync(url).then(function (response) {
  12078. if (response.result != null) {
  12079. response.result = response.result;
  12080. }
  12081. return response;
  12082. });
  12083. });
  12084. }
  12085. getSettingApps() {
  12086. return __awaiter(this, void 0, void 0, function* () {
  12087. const url = 'apis/v4/unibase/platform/apps/getsettingapps';
  12088. return yield this.dataHelper().getAsync(url).then(function (response) {
  12089. if (response.result != null) {
  12090. response.result = JSON.parse(response.result);
  12091. }
  12092. return response;
  12093. });
  12094. });
  12095. }
  12096. getDevApps() {
  12097. return __awaiter(this, void 0, void 0, function* () {
  12098. const url = 'apis/v4/unibase/platform/apps/getdevapps';
  12099. return yield this.dataHelper().getAsync(url).then(function (response) {
  12100. if (response.result != null) {
  12101. response.result = JSON.parse(response.result);
  12102. }
  12103. return response;
  12104. });
  12105. });
  12106. }
  12107. executeProc(procName) {
  12108. return __awaiter(this, void 0, void 0, function* () {
  12109. const url = 'apis/v4/unibase/platform/apps/executestoredprocedure/procname/' + procName;
  12110. return yield this.dataHelper().postAsync(url, '{}').then(function (response) {
  12111. if (response.result != null) {
  12112. response.result = JSON.parse(response.result);
  12113. }
  12114. return response;
  12115. });
  12116. });
  12117. }
  12118. getActiveUserApps() {
  12119. return __awaiter(this, void 0, void 0, function* () {
  12120. var url = "apis/v4/unibase/platform/apps/getactiveuserapps";
  12121. return yield this.dataHelper().getAsync(url).then(function (response) {
  12122. if (response.result !== null)
  12123. response.result = JSON.parse(response.result);
  12124. return response;
  12125. });
  12126. });
  12127. }
  12128. getConfigurationApps() {
  12129. return __awaiter(this, void 0, void 0, function* () {
  12130. const url = 'apis/v4/unibase/platform/apps/getconfigurationapps';
  12131. return yield this.dataHelper().getAsync(url).then(function (response) {
  12132. if (response.result != null) {
  12133. response.result = JSON.parse(response.result);
  12134. }
  12135. return response;
  12136. });
  12137. });
  12138. }
  12139. static Instance() {
  12140. if (this._instance === undefined)
  12141. this._instance = new AppManager();
  12142. return this._instance;
  12143. }
  12144. }
  12145. Managers.AppManager = AppManager;
  12146. })(Managers = Apps.Managers || (Apps.Managers = {}));
  12147. })(Apps = Platform.Apps || (Platform.Apps = {}));
  12148. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  12149. })(Unibase || (Unibase = {}));
  12150. var Unibase;
  12151. (function (Unibase) {
  12152. let Platform;
  12153. (function (Platform) {
  12154. let Analytics;
  12155. (function (Analytics) {
  12156. let Components;
  12157. (function (Components) {
  12158. class FilterPanel extends Platform.Core.BaseComponent {
  12159. constructor() {
  12160. super();
  12161. this.serverFormat = "YYYY/MM/DD";
  12162. this._unibase_dateFormat = "DD/MM/YYYY";
  12163. this.dateFilters = [];
  12164. this.isPartition = false;
  12165. this.selectedDates = [];
  12166. this._dateTimeHelper = Unibase.Platform.Helpers.DateTimeHelper.Instance();
  12167. }
  12168. jsFiles() {
  12169. var jsfiles = ["platform/core/helpers/datetimehelper/datetimehelper.js"];
  12170. return jsfiles;
  12171. }
  12172. cssFiles() {
  12173. return [];
  12174. }
  12175. html(id, containerid) {
  12176. var html = `<div>
  12177. <input type="hidden" id="hfBizgaze_CompareFromDate" />
  12178. <input type="hidden" id="hfBizgaze_CompareToDate" />
  12179. <input type="hidden" id="hfBizgaze_RFilterDate"/>
  12180. <input type="hidden" id="hfBizgaze_CFilterDate"/>
  12181. <div class="settings-panel-wrap">
  12182. <div class="settings-panel-head text-right p-2 hidden">
  12183. <a href="javascript:void(0);" id="filter_panel_close" class="settings-panel-close"><i class="ti-close"></i></a>
  12184. </div>
  12185. <div class="row">
  12186. <div class="form-inline">
  12187. <h6 class="col-12 text-white mb-2">Report</h6>
  12188. <div class="form-group col-12">
  12189. <input class="form-control ml-10" type="text" id="report-daterange" />
  12190. </div>
  12191. </div>
  12192. </div>
  12193. <div class="row">
  12194. <div class="form-inline hidden">
  12195. <h6 class="col-12 text-white mb-2">Compare</h6>
  12196. <div class="form-group col-12">
  12197. <input class="form-control ml-10" type="text" id="compare-daterange" />
  12198. </div>
  12199. </div>
  12200. </div>
  12201. </div>
  12202. <div id="_report_filter_container"></div>
  12203. <footer id="_report_filter_buttons" style="position: fixed;left:auto;right:auto;bottom:0;" class="modal-footer pa-10"></footer>
  12204. </div>
  12205. </div>`;
  12206. return html;
  12207. }
  12208. load(id, containerid, callback) {
  12209. var instance = this;
  12210. var width = $("#hk-filter-panel").width();
  12211. $("#_report_filter_buttons").css("width", width);
  12212. var fDate = null;
  12213. var tDate = null;
  12214. if (instance.isPartition) {
  12215. fDate = instance._dateTimeHelper.formatLocalDateformat(new Date(Unibase.Platform.Membership.Infos.Identity.getCurrentUser().partitionFromDate), "YYYY/MM/DD");
  12216. tDate = instance._dateTimeHelper.formatLocalDateformat(new Date(Unibase.Platform.Membership.Infos.Identity.getCurrentUser().partitionToDate), "YYYY/MM/DD");
  12217. }
  12218. else {
  12219. let currentUser = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
  12220. let _fromDate, _toDate;
  12221. var sd = instance.selectedDates.find(s => s.Id == id);
  12222. if (!currentUser.globalDateRangeTypeId) {
  12223. currentUser.globalDateRangeTypeId = Unibase.Platform.Analytics.Enums.DateRangeType.FiyYear;
  12224. }
  12225. let dateRange = this.getDateRangeString(currentUser.globalDateRangeTypeId);
  12226. if (sd) {
  12227. dateRange = sd.SelectedRangeKey;
  12228. }
  12229. $("#hfBizgaze_RFilterDate" + containerid + '_' + id).val(dateRange);
  12230. $(`#cmnDateRangeSelect_${containerid}-${id}`).val(dateRange);
  12231. if (currentUser.fromDate.includes("0001")) {
  12232. let { fromDate, toDate } = this.getFIY();
  12233. _fromDate = this._dateTimeHelper.formatLocalDate1(fromDate.toString(), 'YYYY-MM-DDThh:mm:ss') + 'Z';
  12234. _toDate = this._dateTimeHelper.formatLocalDate1(toDate.toString(), 'YYYY-MM-DDThh:mm:ss') + 'Z';
  12235. currentUser.fromDate = _fromDate;
  12236. currentUser.toDate = _toDate;
  12237. }
  12238. else if (dateRange.toLowerCase().includes("custom range")) {
  12239. _fromDate = currentUser.fromDate;
  12240. _toDate = currentUser.toDate;
  12241. }
  12242. else {
  12243. let dates = this.getFromDateAndToDateByDateRange(dateRange, false, "", "");
  12244. _fromDate = dates.fromDate.format();
  12245. _toDate = dates.toDate.format('yyyy-MM-DD') + 'T00:00:00+05:30';
  12246. }
  12247. let formattedFromDate = instance._dateTimeHelper.formatLocalDateTime(_fromDate).split(" ")[0];
  12248. let formattedToDate = instance._dateTimeHelper.formatLocalDateTime(_toDate).split(" ")[0];
  12249. let serverFromDate = instance._dateTimeHelper.formatServerDate(formattedFromDate);
  12250. let serverToDate = instance._dateTimeHelper.formatServerDate(formattedToDate);
  12251. $(`#hfBizgaze_ReportFromDate${containerid}_${id}`).val(serverFromDate);
  12252. $(`#hfBizgaze_ReportToDate${containerid}_${id}`).val(serverToDate);
  12253. if (id == '0') {
  12254. $(".CommonFilter_FromDate").val(formattedFromDate);
  12255. $(".CommonFilter_ToDate").val(formattedToDate);
  12256. Unibase.Platform.Helpers.NavigationHelper.commonFilter_FromDate = serverFromDate;
  12257. Unibase.Platform.Helpers.NavigationHelper.commonFilter_ToDate = serverToDate;
  12258. }
  12259. instance.SetRange(containerid, id);
  12260. }
  12261. Unibase.Platform.Analytics.Components.ReportViewer.Instance().dateFilters = instance.dateFilters;
  12262. if (callback && id != '0')
  12263. instance.addSelectedDateRange(id, containerid, callback);
  12264. if (instance.selectedDates.length > 0) {
  12265. instance.selectedDates.map(function (f) {
  12266. if (f.containerid != containerid && !f.containerid.includes('CmnDateFilter') && !containerid.includes('CmnDateFilter')) {
  12267. let dIndex = instance.selectedDates.findIndex(s => s.Id == id);
  12268. if (dIndex > -1)
  12269. instance.selectedDates.splice(dIndex, 1);
  12270. }
  12271. });
  12272. var sd = instance.selectedDates.find(s => s.Id == id);
  12273. if (sd) {
  12274. $("#report-daterange" + containerid + '-' + id).val(sd.DateRange);
  12275. $("#hfBizgaze_FromDate" + containerid + '_' + id).val(sd.FromDate);
  12276. $("#hfBizgaze_ToDate" + containerid + '_' + id).val(sd.ToDate);
  12277. $("#hfBizgaze_RFilterDate" + containerid + '_' + id).val(sd.SelectedRangeKey);
  12278. }
  12279. }
  12280. $("#report-daterange" + containerid + '-' + id).change(function (e) {
  12281. instance.onChangeDateRange(containerid, id, callback);
  12282. $('#report-daterange' + containerid + '-' + id).on('apply.daterangepicker', function (ev, picker) {
  12283. instance.onApplyDateRange(containerid, id);
  12284. if ($(`#biz-filter-dropdown${containerid}`).length)
  12285. instance.dateRangeShowEvent(containerid, id);
  12286. });
  12287. });
  12288. $("#report-daterange" + containerid + '-' + id).keypress(function (e) {
  12289. var x = e.which || e.keyCode;
  12290. if ((x >= 45 && x <= 57) || x == 32) {
  12291. return true;
  12292. }
  12293. else if (x == 13) {
  12294. $(this).trigger('change');
  12295. $(this).trigger('apply.daterangepicker');
  12296. }
  12297. else {
  12298. return false;
  12299. }
  12300. });
  12301. instance.dateRangeShowEvent(containerid, id);
  12302. if (containerid.includes('_navCmnDateFilter')) {
  12303. $('#report-daterange_navCmnDateFilter-0').on('hide.daterangepicker,cancel.daterangepicker', function () {
  12304. $('#navCmnDateFilterDp,#dynamic-filters_navCmnDateFilter').removeClass('show right-sunbnav-active');
  12305. });
  12306. }
  12307. if (instance.isMobileDatePicker(containerid)) {
  12308. const containerIdWithPortletId = containerid + '-' + id;
  12309. const containerIdWith_PortletId = containerid + '_' + id;
  12310. const cmnDateRangeEls = $(`#cmnFromDateRange_${containerIdWithPortletId},#cmnToDateRange_${containerIdWithPortletId}`);
  12311. $(`#cmnDateRangeSelect_${containerIdWithPortletId}`).change(function () {
  12312. $(`#hfBizgaze_RFilterDate${containerIdWith_PortletId}`).val($(this).val());
  12313. instance.SetRange(containerid, id);
  12314. instance.onChangeDateRange(containerid, id, null);
  12315. if ($(this).val() !== 'Custom Range') {
  12316. instance.onApplyDateRange(containerid, id);
  12317. }
  12318. });
  12319. $('#bizCmnDateFilterModal').off('apply.daterangepicker').on('apply.daterangepicker', cmnDateRangeEls, function () {
  12320. $(`#cmnDateRangeSelect_${containerIdWithPortletId}`).val('Custom Range');
  12321. $('#bizCmnDateFilterModal .modal-footer').removeClass('d-none');
  12322. });
  12323. $(`#cmnDateRangeApply_${containerIdWithPortletId}`).click(function (event) {
  12324. let fromDate = $(`#cmnFromDateRange_${containerIdWithPortletId}`).val();
  12325. let toDate = $(`#cmnToDateRange_${containerIdWithPortletId}`).val();
  12326. fromDate = instance._dateTimeHelper.formatServerDate(fromDate.trim());
  12327. toDate = instance._dateTimeHelper.formatServerDate(toDate.trim());
  12328. if (moment(fromDate).isSameOrAfter(toDate)) {
  12329. MessageHelper.Instance().showError('From date cannot be greater!', 'cmnDateFilterModalErrMsg');
  12330. return;
  12331. }
  12332. instance.onChangeDateRange(containerid, id, null, event);
  12333. instance.onApplyDateRange(containerid, id);
  12334. });
  12335. }
  12336. }
  12337. isMobileDatePicker(containerid) {
  12338. if (!Unibase.Themes.Compact.Components.Index.Instance().desktopMode && containerid.includes('CmnDateFilter')) {
  12339. return true;
  12340. }
  12341. return false;
  12342. }
  12343. onChangeDateRange(containerid, id, callback, event) {
  12344. const instance = this;
  12345. this.filterRange = this.getDateFilterRange(containerid, id);
  12346. $("#hfBizgaze_RFilterDate" + containerid + '_' + id).val(this.filterRange);
  12347. $(".daterange-cross-icon" + containerid + '_' + id).removeClass("hidden");
  12348. const { fromDate, toDate } = instance.getFromDateToDate(containerid, id);
  12349. $('#hfBizgaze_FromDate' + containerid + '_' + id).val(fromDate);
  12350. $('#hfBizgaze_ToDate' + containerid + '_' + id).val(toDate);
  12351. id != '0' && instance.addSelectedDateRange(id, containerid, callback);
  12352. if (this.filterRange != "Custom Range") {
  12353. if (id != 0) {
  12354. Unibase.Platform.Analytics.Components.ReportViewer.Instance().changeDateFilters(id, containerid);
  12355. }
  12356. if (instance.isMobileDatePicker(containerid)) {
  12357. $('#bizCmnDateFilterModal .modal-footer').addClass('d-none');
  12358. }
  12359. else {
  12360. instance.SetRange(containerid, id);
  12361. }
  12362. }
  12363. else {
  12364. if (instance.isMobileDatePicker(containerid)) {
  12365. let isApplyClicked = false;
  12366. if (event) {
  12367. isApplyClicked = $(event.currentTarget).attr('id').includes('cmnDateRangeApply_');
  12368. }
  12369. if (!isApplyClicked) {
  12370. $(`#cmnFromDateRange_${containerid + '-' + id}`).trigger('click');
  12371. $('#bizCmnDateFilterModal .modal-footer').removeClass('d-none');
  12372. }
  12373. }
  12374. }
  12375. }
  12376. getFromDateToDate(containerid, id) {
  12377. let range = $("#report-daterange" + containerid + '-' + id).val();
  12378. if (this.isMobileDatePicker(containerid)) {
  12379. range = $(`#cmnFromDateRange_${containerid + '-' + id}`).val() + '-' + $(`#cmnToDateRange_${containerid + '-' + id}`).val();
  12380. }
  12381. let date = range.split("-");
  12382. return { fromDate: this._dateTimeHelper.formatServerDate(date[0].trim()), toDate: this._dateTimeHelper.formatServerDate(date[1].trim()) };
  12383. }
  12384. getDateFilterRange(containerid, id) {
  12385. let filterdate = "";
  12386. if (!this.isMobileDatePicker(containerid)) {
  12387. var Rli = $(`#reportdatepicker_${containerid + '_' + id}`).find("ul");
  12388. if ($(Rli).find("li.active").data()) {
  12389. filterdate = $(Rli).find("li.active").data().rangeKey;
  12390. }
  12391. }
  12392. else {
  12393. filterdate = $(`#cmnDateRangeSelect_${containerid + '-' + id}`).val();
  12394. }
  12395. this.filterRange = filterdate;
  12396. return filterdate;
  12397. }
  12398. onApplyDateRange(containerid, id) {
  12399. const instance = this;
  12400. const navigationHelper = Unibase.Platform.Helpers.NavigationHelper;
  12401. if (id == "0") {
  12402. $('#hfBizgaze_FromDate' + containerid + '_' + id).val(navigationHelper.commonFilter_FromDate);
  12403. $('#hfBizgaze_ToDate' + containerid + '_' + id).val(navigationHelper.commonFilter_ToDate);
  12404. }
  12405. if (id != 0) {
  12406. Unibase.Platform.Analytics.Components.ReportViewer.Instance().changeDateFilters(id, containerid);
  12407. }
  12408. let sd = instance.selectedDates.find(s => s.Id == id);
  12409. if (sd) {
  12410. sd.IsDefault = false;
  12411. }
  12412. if (containerid.includes('CmnDateFilter')) {
  12413. let userInfo = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
  12414. const { fromDate, toDate } = instance.getFromDateToDate(containerid, id);
  12415. let _fromDate = this._dateTimeHelper.formatLocalDate1(fromDate, 'YYYY-MM-DD') + 'T00:00:00Z';
  12416. let _toDate = this._dateTimeHelper.formatLocalDate1(toDate, 'YYYY-MM-DD') + 'T00:00:00Z';
  12417. let rangeType = instance.getDateRangeType(this.filterRange);
  12418. let postObj = {
  12419. userid: userInfo.userId,
  12420. fromdate: _fromDate,
  12421. todate: _toDate,
  12422. DefaultFilterColumn: rangeType,
  12423. };
  12424. let currentUser = Unibase.Platform.Membership.Infos.Identity.currentUser;
  12425. currentUser.fromDate = _fromDate;
  12426. currentUser.toDate = _toDate;
  12427. currentUser.globalDateRangeTypeId = rangeType;
  12428. Unibase.Platform.Membership.Managers.AccountManager.Instance().updateUserDetails(postObj).then((res) => {
  12429. if (res.status == Unibase.Data.Status.Success) {
  12430. Unibase.Platform.Membership.Infos.Identity.setCurrentUser(currentUser);
  12431. const installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  12432. if ($("#hf_DashboardPortletId").val() != undefined) {
  12433. Unibase.Themes.Compact.Components.Dashboard.Instance().loadWidgets($("#hf_DashboardPortletId").val(), $("#hf_DashboardPortletName").val());
  12434. }
  12435. else if ($("#hf_DashboardPortletId").val() == undefined && installedAppId == 0) {
  12436. const lastContainerId = navigationHelper.ModalContainerIds[navigationHelper.ModalContainerIds.length - 1];
  12437. const reportId = Unibase.Platform.Analytics.Components.ReportViewer.Instance().getReportViewerInstance(lastContainerId).ReportId;
  12438. instance.navigationHelper.closeAllModals();
  12439. let obj = Unibase.Platform.Analytics.Components.ReportViewer.Instance();
  12440. obj.InstalledAppId = Unibase.Themes.Compact.Components.List.Instance().InstalledAppId;
  12441. instance.navigationHelper.popin(reportId, "", obj, null);
  12442. }
  12443. else if (installedAppId != 0) {
  12444. $('#layout-detail-tabs').find('.tab-item a.active').trigger('click');
  12445. }
  12446. }
  12447. });
  12448. if (!instance.isMobileDatePicker(containerid)) {
  12449. if ($(this).parents('.biz-common-filter-dropdown').length > 0) {
  12450. $(`#filter_toggle_btn${containerid}`).dropdown('toggle');
  12451. }
  12452. if (containerid.includes('_modalCmnDateFilter')) {
  12453. instance.load('0', '_navCmnDateFilter', null);
  12454. }
  12455. $('#navCmnDateFilterDp,#dynamic-filters_navCmnDateFilter').removeClass('show right-sunbnav-active');
  12456. $('#settingsModal').modal('hide');
  12457. }
  12458. else {
  12459. $('#bizCmnDateFilterModal,#settingsModal').modal('hide');
  12460. }
  12461. }
  12462. }
  12463. dateRangeShowEvent(containerid, id) {
  12464. const instance = this;
  12465. $('#report-daterange' + containerid + '-' + id).on('show.daterangepicker', function (ev, picker) {
  12466. let rangePickerUl = picker.container.find('.ranges');
  12467. rangePickerUl.find('.active').removeClass('active');
  12468. var daterange = instance.selectedDates.find(s => s.Id == id);
  12469. if (daterange) {
  12470. let globalDate = instance.selectedDates.find(x => x.Id == "0");
  12471. if (globalDate && daterange.IsDefault)
  12472. rangePickerUl.find(`li[data-range-key='${globalDate.SelectedRangeKey}']`).addClass('active');
  12473. else
  12474. rangePickerUl.find(`li[data-range-key='${daterange.SelectedRangeKey}']`).addClass('active');
  12475. }
  12476. else {
  12477. let userInfo = Unibase.Platform.Membership.Infos.Identity.currentUser;
  12478. if (userInfo.globalDateRangeTypeId != undefined) {
  12479. rangePickerUl.find(`li[data-range-key='${instance.getDateRangeString(userInfo.globalDateRangeTypeId)}']`).addClass('active');
  12480. }
  12481. }
  12482. const pickerContainerEl = $(picker.container);
  12483. const leftPos = pickerContainerEl.offset().left;
  12484. rangePickerUl.find("li[data-range-key='Custom Range']").off('click').click((e) => {
  12485. if (pickerContainerEl.outerWidth(true) + leftPos < 710) {
  12486. pickerContainerEl.addClass('picker-fullwidth');
  12487. }
  12488. });
  12489. instance.setDateRangePickerHeight(picker);
  12490. });
  12491. }
  12492. setDateRangePickerHeight(picker) {
  12493. const pickerEl = picker.container;
  12494. const deductHeight = pickerEl.offset().top + 15;
  12495. const finalHeight = window.innerHeight - deductHeight;
  12496. pickerEl.css({ 'max-height': finalHeight, 'overflow': 'auto' }).attr('data-deductheight', deductHeight).addClass('biz-custom-scrollbar cmn-daterange-picker');
  12497. }
  12498. addSelectedDateRange(id, containerid, callback) {
  12499. const instance = this;
  12500. let range;
  12501. if (!instance.isMobileDatePicker(containerid)) {
  12502. range = $("#report-daterange" + containerid + '-' + id).val();
  12503. }
  12504. else {
  12505. range = $("#cmnFromDateRange_" + containerid + '-' + id).val() + '-' + $("#cmnToDateRange_" + containerid + '-' + id).val();
  12506. }
  12507. let date = range.split("-");
  12508. const fromDate = instance._dateTimeHelper.formatServerDate(date[0].trim());
  12509. const toDate = instance._dateTimeHelper.formatServerDate(date[1].trim());
  12510. let dIndex = instance.selectedDates.findIndex(s => s.Id == id);
  12511. if (dIndex > -1)
  12512. instance.selectedDates.splice(dIndex, 1);
  12513. instance.selectedDates.push({
  12514. FromDate: fromDate,
  12515. ToDate: toDate,
  12516. DateRange: range,
  12517. SelectedRangeKey: $("#hfBizgaze_RFilterDate" + containerid + '_' + id).val(),
  12518. Id: id,
  12519. containerid: containerid,
  12520. IsDefault: callback
  12521. });
  12522. if (id == "0") {
  12523. Unibase.Platform.Helpers.NavigationHelper.commonFilter_FromDate = fromDate;
  12524. Unibase.Platform.Helpers.NavigationHelper.commonFilter_ToDate = toDate;
  12525. }
  12526. }
  12527. SetRange(containerid, id) {
  12528. let dateRange = $("#hfBizgaze_CFilterDate").val();
  12529. let dates;
  12530. if (dateRange) {
  12531. dates = this.getFromDateAndToDateByDateRange(dateRange, false, containerid, id);
  12532. this.SetCompareDate(dates.fromDate, dates.toDate, containerid);
  12533. }
  12534. let dateRange_container = $("#hfBizgaze_RFilterDate" + containerid + '_' + id).val();
  12535. if (dateRange_container) {
  12536. dates = this.getFromDateAndToDateByDateRange(dateRange_container, true, containerid, id);
  12537. this.SetReportDate(dates.fromDate, dates.toDate, containerid, id);
  12538. }
  12539. }
  12540. SetCompareDate(FromDate, ToDate, containerid) {
  12541. var instance = this;
  12542. $("#hfBizgaze_CompareFromDate").val(FromDate.format(instance.serverFormat));
  12543. $("#hfBizgaze_CompareToDate").val(ToDate.format(instance.serverFormat));
  12544. var d = new Date();
  12545. var FiyYear = null;
  12546. if (d.getMonth() + 1 >= 4) {
  12547. FiyYear = [moment().startOf('year').add(3, 'month').startOf('month'), moment().add(1, 'year').startOf('year').add(2, 'month').endOf('month')];
  12548. }
  12549. else {
  12550. FiyYear = [moment().startOf('year').add(-1, 'year').add(3, 'month').startOf('month'), moment().add(1, 'year').startOf('year').add(-1, 'year').add(2, 'month').endOf('month')];
  12551. }
  12552. $("#compare-daterange").daterangepicker({
  12553. startDate: FromDate,
  12554. endDate: ToDate,
  12555. locale: {
  12556. format: instance._unibase_dateFormat
  12557. },
  12558. ranges: {
  12559. 'Today': [moment(), moment()],
  12560. 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
  12561. 'Last 7 Days': [moment().subtract(6, 'days'), moment()],
  12562. 'Last 30 Days': [moment().subtract(29, 'days'), moment()],
  12563. 'This Month': [moment().startOf('month'), moment().endOf('month')],
  12564. 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],
  12565. 'YTD': [moment().startOf('year').startOf('month'), moment().startOf('year').add(11, 'month').endOf('month')],
  12566. 'FIY Year': FiyYear
  12567. }
  12568. });
  12569. }
  12570. SetReportDate(FromDate, ToDate, containerid, id) {
  12571. var instance = this;
  12572. $("#hfBizgaze_FromDate" + containerid + '_' + id).val(FromDate.format(instance.serverFormat));
  12573. $("#hfBizgaze_ToDate" + containerid + '_' + id).val(ToDate.format(instance.serverFormat));
  12574. var d = new Date();
  12575. var FiyYear = null;
  12576. if (d.getMonth() + 1 >= 4) {
  12577. FiyYear = [moment().startOf('year').add(3, 'month').startOf('month'), moment().add(1, 'year').startOf('year').add(2, 'month').endOf('month')];
  12578. }
  12579. else {
  12580. FiyYear = [moment().startOf('year').add(-1, 'year').add(3, 'month').startOf('month'), moment().add(1, 'year').startOf('year').add(-1, 'year').add(2, 'month').endOf('month')];
  12581. }
  12582. var PFiyYear = null;
  12583. if (d.getMonth() + 1 >= 4) {
  12584. PFiyYear = [moment().subtract(1, 'year').startOf('year').add(3, 'month').startOf('month'), moment().subtract(1, 'year').add(1, 'year').startOf('year').add(2, 'month').endOf('month')];
  12585. }
  12586. else {
  12587. PFiyYear = [moment().subtract(1, 'year').startOf('year').add(-1, 'year').add(3, 'month').startOf('month'), moment().subtract(1, 'year').add(1, 'year').startOf('year').add(-1, 'year').add(2, 'month').endOf('month')];
  12588. }
  12589. if (!instance.isMobileDatePicker(containerid)) {
  12590. $("#report-daterange" + containerid + '-' + id).daterangepicker({
  12591. startDate: FromDate,
  12592. endDate: ToDate,
  12593. drops: 'down',
  12594. showDropdowns: true,
  12595. showWeekNumbers: true,
  12596. linkedCalendars: false,
  12597. locale: {
  12598. format: instance._unibase_dateFormat,
  12599. firstDay: 1
  12600. },
  12601. ranges: {
  12602. 'Today': [moment(), moment()],
  12603. 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
  12604. 'Last 7 Days': [moment().subtract(6, 'days'), moment()],
  12605. 'Last 30 Days': [moment().subtract(29, 'days'), moment()],
  12606. 'This Month': [moment().startOf('month'), moment().endOf('month')],
  12607. 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],
  12608. 'This Quarter': [moment().startOf('quarter'), moment().endOf('quarter')],
  12609. 'Last Quarter': [moment().subtract(1, 'quarter').startOf('quarter'), moment().subtract(1, 'quarter').endOf('quarter')],
  12610. 'YTD': [moment().startOf('year').startOf('month'), moment().startOf('year').add(11, 'month').endOf('month')],
  12611. 'Last Year': [[moment().subtract(1, 'year').startOf('year'), moment().subtract(1, 'year').endOf('year')][0], [moment().subtract(1, 'year').startOf('year'), moment().subtract(1, 'year').endOf('year')][1]],
  12612. 'FIY Year': FiyYear,
  12613. 'PFIY Year': PFiyYear,
  12614. }
  12615. });
  12616. if ($(`div[id=reportdatepicker_${containerid + '_' + id}]`).length)
  12617. $(`div[id=reportdatepicker_${containerid + '_' + id}]`).remove();
  12618. $(".daterangepicker").last().attr("id", `reportdatepicker_${containerid + '_' + id}`);
  12619. }
  12620. else {
  12621. const containerIdWithId = containerid + '-' + id;
  12622. const fromDateRangeEl = $(`#cmnFromDateRange_${containerIdWithId}`);
  12623. const toDateRangeEl = $(`#cmnToDateRange_${containerIdWithId}`);
  12624. const initiateDateRangePicker = (el, startDate) => {
  12625. el.daterangepicker({
  12626. startDate: startDate,
  12627. singleDatePicker: true,
  12628. showDropdowns: true,
  12629. locale: {
  12630. format: instance._unibase_dateFormat,
  12631. firstDay: 1
  12632. },
  12633. });
  12634. };
  12635. initiateDateRangePicker(fromDateRangeEl, FromDate);
  12636. initiateDateRangePicker(toDateRangeEl, ToDate);
  12637. $(`.mobiledaterangepicker`).remove();
  12638. $(".daterangepicker").slice(-2).addClass(`mobiledaterangepicker`);
  12639. }
  12640. }
  12641. getDateRangeString(typeId) {
  12642. let range = "";
  12643. switch (typeId) {
  12644. case Unibase.Platform.Analytics.Enums.DateRangeType.Last7Days:
  12645. range = 'Last 7 Days';
  12646. break;
  12647. case Unibase.Platform.Analytics.Enums.DateRangeType.Last30Days:
  12648. range = 'Last 30 Days';
  12649. break;
  12650. case Unibase.Platform.Analytics.Enums.DateRangeType.ThisMonth:
  12651. range = 'This Month';
  12652. break;
  12653. case Unibase.Platform.Analytics.Enums.DateRangeType.LastMonth:
  12654. range = 'Last Month';
  12655. break;
  12656. case Unibase.Platform.Analytics.Enums.DateRangeType.ThisQuarter:
  12657. range = 'This Quarter';
  12658. break;
  12659. case Unibase.Platform.Analytics.Enums.DateRangeType.LastQuarter:
  12660. range = 'Last Quarter';
  12661. break;
  12662. case Unibase.Platform.Analytics.Enums.DateRangeType.YTD:
  12663. range = 'YTD';
  12664. break;
  12665. case Unibase.Platform.Analytics.Enums.DateRangeType.LastYear:
  12666. range = 'Last Year';
  12667. break;
  12668. case Unibase.Platform.Analytics.Enums.DateRangeType.FiyYear:
  12669. range = 'FIY Year';
  12670. break;
  12671. case Unibase.Platform.Analytics.Enums.DateRangeType.PFiyYear:
  12672. range = 'PFIY Year';
  12673. break;
  12674. case Unibase.Platform.Analytics.Enums.DateRangeType.Today:
  12675. range = 'Today';
  12676. break;
  12677. case Unibase.Platform.Analytics.Enums.DateRangeType.Yesterday:
  12678. range = 'Yesterday';
  12679. break;
  12680. default:
  12681. range = 'Custom Range';
  12682. break;
  12683. }
  12684. return range;
  12685. }
  12686. getDateRangeType(range) {
  12687. let id = Unibase.Platform.Analytics.Enums.DateRangeType.CustomRange;
  12688. switch (range) {
  12689. case 'Last 7 Days':
  12690. id = Unibase.Platform.Analytics.Enums.DateRangeType.Last7Days;
  12691. break;
  12692. case 'Last 30 Days':
  12693. id = Unibase.Platform.Analytics.Enums.DateRangeType.Last30Days;
  12694. break;
  12695. case 'This Month':
  12696. id = Unibase.Platform.Analytics.Enums.DateRangeType.ThisMonth;
  12697. break;
  12698. case 'Last Month':
  12699. id = Unibase.Platform.Analytics.Enums.DateRangeType.LastMonth;
  12700. break;
  12701. case 'This Quarter':
  12702. id = Unibase.Platform.Analytics.Enums.DateRangeType.ThisQuarter;
  12703. break;
  12704. case 'Last Quarter':
  12705. id = Unibase.Platform.Analytics.Enums.DateRangeType.LastQuarter;
  12706. break;
  12707. case 'YTD':
  12708. id = Unibase.Platform.Analytics.Enums.DateRangeType.YTD;
  12709. break;
  12710. case 'Last Year':
  12711. id = Unibase.Platform.Analytics.Enums.DateRangeType.LastYear;
  12712. break;
  12713. case 'FIY Year':
  12714. id = Unibase.Platform.Analytics.Enums.DateRangeType.FiyYear;
  12715. break;
  12716. case 'PFIY Year':
  12717. id = Unibase.Platform.Analytics.Enums.DateRangeType.PFiyYear;
  12718. break;
  12719. case 'Today':
  12720. id = Unibase.Platform.Analytics.Enums.DateRangeType.Today;
  12721. break;
  12722. case 'Yesterday':
  12723. id = Unibase.Platform.Analytics.Enums.DateRangeType.Yesterday;
  12724. break;
  12725. }
  12726. return id;
  12727. }
  12728. getYesterday() {
  12729. var dates = [moment().subtract(1, 'days'), moment().subtract(1, 'days')];
  12730. return { fromDate: dates[0], toDate: dates[1] };
  12731. }
  12732. getToday() {
  12733. var dates = [moment(), moment()];
  12734. return { fromDate: dates[0], toDate: dates[1] };
  12735. }
  12736. getLast7days() {
  12737. var dates = [moment().subtract(6, 'days'), moment()];
  12738. return { fromDate: dates[0], toDate: dates[1] };
  12739. }
  12740. getLast30days() {
  12741. var dates = [moment().subtract(29, 'days'), moment()];
  12742. return { fromDate: dates[0], toDate: dates[1] };
  12743. }
  12744. getThisMonth() {
  12745. var dates = [moment().startOf('month'), moment().endOf('month')];
  12746. return { fromDate: dates[0], toDate: dates[1] };
  12747. }
  12748. getLastMonth() {
  12749. var dates = [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')];
  12750. return { fromDate: dates[0], toDate: dates[1] };
  12751. }
  12752. getThisQuarter() {
  12753. var dates = [moment().startOf('quarter'), moment().endOf('quarter')];
  12754. return { fromDate: dates[0], toDate: dates[1] };
  12755. }
  12756. getLastQuarter() {
  12757. var dates = [moment().subtract(1, 'quarter').startOf('quarter'), moment().subtract(1, 'quarter').endOf('quarter')];
  12758. return { fromDate: dates[0], toDate: dates[1] };
  12759. }
  12760. getYTD() {
  12761. var dates = [moment().startOf('year').startOf('month'), moment().startOf('year').add(11, 'month').endOf('month')];
  12762. return { fromDate: dates[0], toDate: dates[1] };
  12763. }
  12764. getLastYear() {
  12765. var dates = [moment().subtract(1, 'year').startOf('year'), moment().subtract(1, 'year').endOf('year')];
  12766. return { fromDate: dates[0], toDate: dates[1] };
  12767. }
  12768. getFIY() {
  12769. var d = new Date();
  12770. var FiyFromDate, FiyToDate;
  12771. if (d.getMonth() + 1 >= 4) {
  12772. FiyFromDate = [moment().startOf('year').add(3, 'month').startOf('month'), moment().add(1, 'year').startOf('year').add(2, 'month').endOf('month')][0];
  12773. FiyToDate = [moment().startOf('year').add(3, 'month').startOf('month'), moment().add(1, 'year').startOf('year').add(2, 'month').endOf('month')][1];
  12774. }
  12775. else {
  12776. FiyFromDate = [moment().startOf('year').add(-1, 'year').add(3, 'month').startOf('month'), moment().add(1, 'year').startOf('year').add(-1, 'year').add(2, 'month').endOf('month')][0];
  12777. FiyToDate = [moment().startOf('year').add(-1, 'year').add(3, 'month').startOf('month'), moment().add(1, 'year').startOf('year').add(-1, 'year').add(2, 'month').endOf('month')][1];
  12778. }
  12779. return { fromDate: FiyFromDate, toDate: FiyToDate };
  12780. }
  12781. getPFIY() {
  12782. var d = new Date();
  12783. var FiyFromDate, FiyToDate;
  12784. if (d.getMonth() + 1 >= 4) {
  12785. FiyFromDate = [moment().subtract(1, 'year').startOf('year').add(3, 'month').startOf('month'), moment().subtract(1, 'year').add(1, 'year').startOf('year').add(2, 'month').endOf('month')][0];
  12786. FiyToDate = [moment().subtract(1, 'year').startOf('year').add(3, 'month').startOf('month'), moment().subtract(1, 'year').add(1, 'year').startOf('year').add(2, 'month').endOf('month')][1];
  12787. }
  12788. else {
  12789. FiyFromDate = [moment().subtract(1, 'year').startOf('year').add(-1, 'year').add(3, 'month').startOf('month'), moment().subtract(1, 'year').add(1, 'year').startOf('year').add(-1, 'year').add(2, 'month').endOf('month')][0];
  12790. FiyToDate = [moment().subtract(1, 'year').startOf('year').add(-1, 'year').add(3, 'month').startOf('month'), moment().subtract(1, 'year').add(1, 'year').startOf('year').add(-1, 'year').add(2, 'month').endOf('month')][1];
  12791. }
  12792. return { fromDate: FiyFromDate, toDate: FiyToDate };
  12793. }
  12794. getFromDateAndToDateByDateRange(dateRange, isContainer, containterId, id) {
  12795. let dates;
  12796. switch (dateRange.toLowerCase()) {
  12797. case 'yesterday':
  12798. dates = this.getYesterday();
  12799. break;
  12800. case 'today':
  12801. dates = this.getToday();
  12802. break;
  12803. case 'last 7 days':
  12804. dates = this.getLast7days();
  12805. break;
  12806. case 'last 30 days':
  12807. dates = this.getLast30days();
  12808. break;
  12809. case 'this month':
  12810. dates = this.getThisMonth();
  12811. break;
  12812. case 'last month':
  12813. dates = this.getLastMonth();
  12814. break;
  12815. case 'this quarter':
  12816. dates = this.getThisQuarter();
  12817. break;
  12818. case 'last quarter':
  12819. dates = this.getLastQuarter();
  12820. break;
  12821. case 'ytd':
  12822. dates = this.getYTD();
  12823. break;
  12824. case 'last year':
  12825. dates = this.getLastYear();
  12826. break;
  12827. case 'fiy year':
  12828. dates = this.getFIY();
  12829. break;
  12830. case 'pfiy year':
  12831. dates = this.getPFIY();
  12832. break;
  12833. case 'custom range':
  12834. case 'null':
  12835. dates = { fromDate: '', toDate: '' };
  12836. if (!isContainer) {
  12837. let FromDate = $("#hfBizgaze_CompareFromDate").val();
  12838. let ToDate = $("#hfBizgaze_CompareToDate").val();
  12839. var format = "YYYY/MM/DD";
  12840. if (FromDate == "" && ToDate == "") {
  12841. FromDate = moment().startOf('year').format(format);
  12842. ToDate = moment().endOf('year').format(format);
  12843. }
  12844. dates.fromDate = moment.utc(FromDate, format);
  12845. dates.toDate = moment.utc(ToDate, format);
  12846. }
  12847. else {
  12848. let FromDate = $("#hfBizgaze_ReportFromDate" + containterId + '_' + id).val();
  12849. let ToDate = $("#hfBizgaze_ReportToDate" + containterId + '_' + id).val();
  12850. var format = "YYYY/MM/DD";
  12851. if (FromDate == "" && ToDate == "") {
  12852. FromDate = moment().startOf('year').format(format);
  12853. ToDate = moment().endOf('year').format(format);
  12854. }
  12855. dates.fromDate = moment.utc();
  12856. dates.toDate = moment.utc();
  12857. if (this.dateFilters.length != 0) {
  12858. var date = this.dateFilters.find(d => d.ParameterValue == id);
  12859. if (date != null) {
  12860. dates.fromDate = moment.utc(date.FromDate, format);
  12861. dates.toDate = moment.utc(date.ToDate, format);
  12862. }
  12863. }
  12864. else {
  12865. dates.fromDate = moment.utc(FromDate, format);
  12866. dates.toDate = moment.utc(ToDate, format);
  12867. }
  12868. }
  12869. break;
  12870. default:
  12871. if (isContainer) {
  12872. $("#hfBizgaze_FromDate" + containterId + '_' + id).val(moment().startOf('year').format(this.serverFormat));
  12873. $("#hfBizgaze_ToDate_" + containterId + '_' + id).val(moment().endOf('year').format(this.serverFormat));
  12874. var _datetimehelper = Unibase.Platform.Helpers.DateTimeHelper.Instance();
  12875. _datetimehelper.dateRangePicker('#report-daterange' + containterId + '-' + id, function (start, end) {
  12876. $("#hfBizgaze_FromDate" + containterId + '_' + id).val(start.format(this.serverFormat));
  12877. $("#hfBizgaze_ToDate_" + containterId + '_' + id).val(end.format(this.serverFormat));
  12878. $(".daterangepicker").css("top", "100px").css("right", "100px").css("display", "block");
  12879. });
  12880. $("#hfBizgaze_CompareFromDate").val(moment().startOf('year').format(this.serverFormat));
  12881. $("#hfBizgaze_CompareToDate").val(moment().endOf('year').format(this.serverFormat));
  12882. _datetimehelper.dateRangePicker('#compare-daterange', function (start, end) {
  12883. $("#hfBizgaze_CompareFromDate").val(start.format(this.serverFormat));
  12884. $("#hfBizgaze_CompareToDate").val(end.format(this.serverFormat));
  12885. });
  12886. }
  12887. break;
  12888. }
  12889. return dates;
  12890. }
  12891. static Instance() {
  12892. if (this.instance === undefined) {
  12893. this.instance = new FilterPanel();
  12894. }
  12895. return this.instance;
  12896. }
  12897. }
  12898. Components.FilterPanel = FilterPanel;
  12899. })(Components = Analytics.Components || (Analytics.Components = {}));
  12900. })(Analytics = Platform.Analytics || (Platform.Analytics = {}));
  12901. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  12902. })(Unibase || (Unibase = {}));
  12903. var Unibase;
  12904. (function (Unibase) {
  12905. let Platform;
  12906. (function (Platform) {
  12907. let Analytics;
  12908. (function (Analytics) {
  12909. let Infos;
  12910. (function (Infos) {
  12911. class ReportGroup {
  12912. }
  12913. Infos.ReportGroup = ReportGroup;
  12914. class ReportWithGroup {
  12915. }
  12916. Infos.ReportWithGroup = ReportWithGroup;
  12917. class Report {
  12918. }
  12919. Infos.Report = Report;
  12920. class ReportColumn {
  12921. }
  12922. Infos.ReportColumn = ReportColumn;
  12923. class ReportRole {
  12924. }
  12925. Infos.ReportRole = ReportRole;
  12926. class ViewerRole {
  12927. }
  12928. Infos.ViewerRole = ViewerRole;
  12929. class ReportRoleSetting {
  12930. }
  12931. Infos.ReportRoleSetting = ReportRoleSetting;
  12932. class TemplateView {
  12933. }
  12934. Infos.TemplateView = TemplateView;
  12935. class CalendarView {
  12936. }
  12937. Infos.CalendarView = CalendarView;
  12938. class MapView {
  12939. }
  12940. Infos.MapView = MapView;
  12941. class CardView {
  12942. }
  12943. Infos.CardView = CardView;
  12944. class ViewerType {
  12945. }
  12946. Infos.ViewerType = ViewerType;
  12947. class SubReport {
  12948. }
  12949. Infos.SubReport = SubReport;
  12950. class ReportCategory {
  12951. }
  12952. Infos.ReportCategory = ReportCategory;
  12953. })(Infos = Analytics.Infos || (Analytics.Infos = {}));
  12954. })(Analytics = Platform.Analytics || (Platform.Analytics = {}));
  12955. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  12956. })(Unibase || (Unibase = {}));
  12957. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
  12958. function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  12959. return new (P || (P = Promise))(function (resolve, reject) {
  12960. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  12961. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  12962. function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
  12963. step((generator = generator.apply(thisArg, _arguments || [])).next());
  12964. });
  12965. };
  12966. var Unibase;
  12967. (function (Unibase) {
  12968. let Platform;
  12969. (function (Platform) {
  12970. let Analytics;
  12971. (function (Analytics) {
  12972. let Reports;
  12973. (function (Reports) {
  12974. class ReportBuilder extends Platform.Core.BaseComponent {
  12975. constructor() {
  12976. super(...arguments);
  12977. this.dateColumns = [];
  12978. this.selectedColumns = [];
  12979. this.ReportColumns = [];
  12980. this.ChartColumns = [];
  12981. this.datalistColumnsResponseData = [];
  12982. this.identityColumnsResponseData = [];
  12983. this.subreport_count = 1;
  12984. this.dynamicFilters = [];
  12985. this.reportname = null;
  12986. this.cardviewerpage = 2;
  12987. this.reportwidgetdata = null;
  12988. this.toolTipTemplateArray = [];
  12989. this.tableData = "";
  12990. this.last_page = 2;
  12991. this.whole_tableData = [];
  12992. this.loadTableData = 0;
  12993. this.tableData_Array = [];
  12994. this.isduplicate = false;
  12995. this.reportType = 1;
  12996. this.duplicateColIndex = [];
  12997. this.appliedFilter = 0;
  12998. this.filtersArray = [];
  12999. this.queryBuilderArray = [];
  13000. this.tabulatorColumns = [];
  13001. this.IsclickedSelect2Caret = false;
  13002. this.Categories = [];
  13003. this.groupBy_Category = [];
  13004. this.TenureReport = [];
  13005. this.reportViewer_scrolled = 0;
  13006. this.subreportdata = [];
  13007. this.columns_Data = [];
  13008. this.dataTreeRowExpandedColumn = [];
  13009. this.ViewerId = 0;
  13010. this.ViewerTypeId = Unibase.Platform.Analytics.Reports.Enums.ViewerType.Table;
  13011. this.QB_KeyUp = 0;
  13012. this.EditableTitle = true;
  13013. this.HeaderSort = false;
  13014. this.QueryBuilder_Columns = [];
  13015. this.DataListId = 0;
  13016. this.Aggregations = ["count", "sum", "avg", "max", "min", "Month", "Year", "none"];
  13017. this.DataSourceId = 0;
  13018. this.IsPivotTree = false;
  13019. this.Edit_BindData = false;
  13020. this.IsNotification = false;
  13021. this.SearchColumns = "";
  13022. this.selectedCategoryColumnsArray = [];
  13023. this.IsInternalReport = true;
  13024. this.appConfigType = 0;
  13025. this.parameterNumber = 1;
  13026. this.parameterArray = [];
  13027. this.isEdit = false;
  13028. this.selectedOption = 1;
  13029. this.index = 0;
  13030. this.roleSettings = [];
  13031. this.SortColumns = [];
  13032. this.querybuilderCheckboxes = [];
  13033. this.enableCount = false;
  13034. this.enableGlobalDatepicker = false;
  13035. this.reportGroupId = 0;
  13036. this.paletteId = 0;
  13037. this.isReportWidget = false;
  13038. this.reportWidgetType = '';
  13039. this.connectedAppsData = [];
  13040. this.linkReportId = 0;
  13041. this.viewAll = false;
  13042. this.lastContainerId = "";
  13043. this.enablePivotTableConfig = false;
  13044. this.pinDynamicFilters = false;
  13045. this.showDynamicFilters = false;
  13046. this.legendTypeId = 0;
  13047. }
  13048. cssFiles() {
  13049. var cssfiles = ['platform/analytics/components/reportbuilder/style.reportbuilder.css'];
  13050. return cssfiles;
  13051. }
  13052. jsFiles() {
  13053. var jsfiles = ["platform/bundle/index.reportbuilder.js"];
  13054. return jsfiles;
  13055. }
  13056. html(id, containerid) {
  13057. var instance = this;
  13058. let html = `<div id="biz-wrapper" class="biz-wrapper biz-reportbuilder-wrap drawer-small drawer-right biz-drawer-push">
  13059. <!-- Right Nav -->
  13060. <div id="reportBuilderRightNav"></div>
  13061. <!-- /Right Nav -->
  13062. <!-- Main Content -->
  13063. <div class="biz-pg-wrapper py-0">
  13064. <div class="biz-pg-body">
  13065. <div class="biz-bldr-wrap bldr__aside__left">
  13066. <header class="bldr-head report-builder">
  13067. <div id="div_ReportBuilderErrorMessage" class="form-error-message" style="margin-left:-5px; z-index:100;"></div>
  13068. <div class="d-flex align-items-center">
  13069. <input class="form-control w-180p report-name" id="txt_reportname" onchange="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().changeDisplayname()" value="New Report">
  13070. <span class="badge badge-soft-primary ml-10" id="header_datalist_name">datalist 1</span>
  13071. </div>
  13072. <div class="bldr-options-wrap" id="top-nav-menu">
  13073. <a class="btn btn-icon btn-flush-primary btn-rounded flush-soft-hover" id="btnRefresh" href="javascript:;" data-tooltip="true" data-placement="top" title="Refresh"><span class="btn-icon-wrap"><span class="line-icon"><i class="las la-sync"></i></span></span></a>
  13074. <a class="btn btn-icon btn-flush-dark btn-rounded flush-soft-hover" id="RoleSettingIcon" href="javscript:;" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().reportRoleSetting()"><span class="btn-icon-wrap" data-tooltip="true" title="Report RoleSetting"><span class="line-icon"><i class="las la-user-cog"></i></span></span></a>
  13075. <a class="btn btn-icon btn-flush-dark btn-rounded flush-soft-hover hidden" id="headerLinkReportIcon" href="javscript:;" onclick="Unibase.Platform.Analytics.Components.LinkReport.Instance().linkreport()"><span class="btn-icon-wrap" data-tooltip="true" title="Link Report"><span class="line-icon"><i class="las la-link"></i></span></span></a>
  13076. <a class="btn btn-icon btn-flush-dark btn-rounded flush-soft-hover" id="subreporticon" href="javscript:;" onclick="Unibase.Platform.Analytics.Reports.SubReport.Instance().linkreport()"><span class="btn-icon-wrap" data-tooltip="true" title="Sub Report"><span class="line-icon"><i class="las la-columns "></i></span></span></a>
  13077. <div class="bl-report-title" id="bl-report-title">Report</div>
  13078. <a class="btn btn-icon btn-flush-dark btn-rounded flush-soft-hover qry-builder-open" href="javascript:;" id="ReportFilter" data-tooltip="true" title="Info"><span class="btn-icon-wrap"><span class="line-icon"><i class="las la-code-branch"></i></span></span></a>
  13079. <a class="btn btn-icon btn-flush-dark btn-rounded flush-soft-hover d-none hidden" href="javascript:;" id="chartPivotBtn" data-tooltip="true" title="Pivot"><span class="btn-icon-wrap"><span class="line-icon"><i class="las la-columns"></i></span></span></a>
  13080. <div class="dropdown">
  13081. <a class="btn btn-icon btn-flush-dark btn-rounded btn-mob flush-soft-hover dropdown-toggle no-caret" aria-expanded="false" data-toggle="dropdown" href="#"><span class="btn-icon-wrap"><span class="line-icon"><i class="las la-save"></i></span></span></a>
  13082. <a class="btn btn-theme btn-web mx-10 h-100" href="javscript:;" id="saveAsModalBtn">Save report</a>
  13083. </div>
  13084. <a class="btn btn-icon btn-flush-dark btn-rounded btn-mob flush-soft-hover" href="#"><span class="btn-icon-wrap"><span class="line-icon"><i class="las la-times"></i></span></span></a>
  13085. <a class="btn btn-outline-danger btn-web btn-reportbuilder-close" href="javascript:;" id="btn-report-builder-close">Discard</a>
  13086. </div>
  13087. </header>
  13088. <div class="bldr-aside-left">
  13089. <ul class="nav nav-light nav-tabs">
  13090. <li class="nav-item">
  13091. <a class="nav-link active" data-toggle="tab" href="#tab_outline">
  13092. <span class="nav-link-text">Outline</span>
  13093. </a>
  13094. </li>
  13095. <li class="nav-item">
  13096. <a class="nav-link" data-toggle="tab" href="#tab_column">
  13097. <span class="nav-link-text">Columns</span>
  13098. </a>
  13099. </li>
  13100. </ul>
  13101. <div data-simplebar class="simple-scroll-bar">
  13102. <div class="tab-content">
  13103. <div class="tab-pane fade show active" id="tab_outline">
  13104. <div class="rightnav_body" id="DefaultLeftNav_body">
  13105. </div>
  13106. </div>
  13107. <div class="tab-pane fade" id="tab_column">
  13108. <div class="biz-adj-drawer-wrap">
  13109. <button data-target="adj_drawer_1" class="btn btn-secondary btn-block btn-wth-icon icon-left adj-drawer-open mb-15"><span><span class="icon-label"><span class="line-icon"><i class="las la-plus"></i></span></span><span class="btn-text">Add Columns</span></span></button>
  13110. <div id="adj_drawer_1" class="biz-adj-drawer">
  13111. <header>
  13112. <h6>Add Columns</h6>
  13113. <span class="close btn-adj-drawer-close alldatalistcolumns_dlg_close_btn"></span>
  13114. </header>
  13115. <div class="drawer-body">
  13116. <div class="form-search mb-20">
  13117. <input class="form-control DatalistColumns_Search" placeholder="Search Columns" >
  13118. </div>
  13119. <div class="nicescroll-bar" id="allDatalistColumns">
  13120. </div>
  13121. </div>
  13122. <footer class="justify-content-between">
  13123. <a href="javascript:;" class="btn btn-light btn-adj-drawer-close mr-10 alldatalistcolumns_dlg_close_btn">Cancel</a>
  13124. <a href="javascript:;" class="btn btn-theme btn-adj-drawer-close" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().appendExtraSelectedColumns()">Add Columns</a>
  13125. </footer>
  13126. </div>
  13127. </div>
  13128. <div class="flex-between-center mb-10">
  13129. <span class="line-icon mr-2"><i class="las la-filter font-26"></i></span>
  13130. <select class="custom-select form-control" id="filter-by">
  13131. </select>
  13132. </div>
  13133. <div class="dsl-block-wrap dd-list droppable-area1 connected-sortable" id="selectedColumns">
  13134. </div>
  13135. <div class="dsl-block-wrap dd-list droppable-area1 connected-sortable" id="selectedColumns_hidden"></div>
  13136. </div>
  13137. </div>
  13138. </div>
  13139. </div>
  13140. <div class="bldr-body">
  13141. <header class="bldr-sec-head justify-content-end py-10 pl-10 h-50p">
  13142. <div class="left-aside-togglable"></div>
  13143. <a class="btn btn-icon btn-flush-theme flush-soft-hover h-35p w-35p drawer-toggle-link active right-aside-togglable" id="PivotIcon" href="#"><span
  13144. class="btn-icon-wrap"><span class="line-icon"><i class="las la-border-all font-25"></i></span></span></a>
  13145. </header>
  13146. <div class="reportbuilder-main-wrap">
  13147. <div id="chart-container" class="card chart-wrap hidden"></div>
  13148. <div class="table-wrap">
  13149. <div id="tabulatorReportbuilder" class="tabulator-reportbuilder table-bordered border-0 h-100"></div>
  13150. </div>
  13151. </div>
  13152. <div class="qry-builder-container">
  13153. <header>
  13154. <h6>Conditional formating</h6>
  13155. <button type="button" class="close" aria-label="Close">
  13156. <span aria-hidden="true">&times;</span>
  13157. </button>
  13158. </header>
  13159. <div id="QueryBuilder" class="bg-white"></div>
  13160. <footer>
  13161. <button type="button" class="btn btn-light mr-10" id="btn-reset-query">Reset</button>
  13162. <button type="button" class="btn btn-theme w-150p" id="btn-apply-query">Apply</button>
  13163. </footer>
  13164. </div>
  13165. </div>
  13166. </div>
  13167. <!-- Save as Modal -->
  13168. <div class="modal" id="save_as_modal" tabindex="-1" role="dialog" aria-labelledby="save_as_modal" aria-hidden="true">
  13169. <div class="modal-dialog" role="document">
  13170. <div class="modal-content">
  13171. <div id="divReport_ErrorMessage"></div>
  13172. <div class="modal-header border-0">
  13173. <h5 class="modal-title">Save report</h5>
  13174. <button type="button" class="close">
  13175. <span aria-hidden="true">&times;</span>
  13176. </button>
  13177. </div>
  13178. <div class="modal-body h-100">
  13179. <div class="form-group">
  13180. <div class="form-label-group">
  13181. <label for="userName">Select Folder<span class="text-danger " id="spnIsRequired_folder"> *</span></label>
  13182. <a href="javascript:;" id="reportCreateFolder" class="link-theme font-14 font-weight-500">+ Create Group</a>
  13183. </div>
  13184. <select class="form-control custom-select mb-10" id="RptGroup_AutoComplete">
  13185. <option selected>Select Group</option>
  13186. </select>
  13187. <input type="hidden" id="hfAutoComplete_ReportGroup" class="hfAutoCompleteId_ReportGroup value-control" data-isdynamic="true"/>
  13188. </div>
  13189. <div class="form-group">
  13190. <input type="checkbox" class="chkInternalReport mt-1 mr-10" onclick="" id="internalreport_checkbox" checked="true"><label for="internalreport_checkbox" class="mb-0">IsInternalReport</label>
  13191. </div>
  13192. <div class="custom-control custom-radio radio-theme">
  13193. <input type="radio" id="customRadio_v1" name="customRadioV1" class="custom-control-input" checked>
  13194. <label class="custom-control-label" for="customRadio_v1">Visible to all users</label>
  13195. </div>
  13196. <div class="custom-control custom-radio radio-theme">
  13197. <input type="radio" id="customRadio_v2" name="customRadioV1" class="custom-control-input">
  13198. <label class="custom-control-label" for="customRadio_v2">Visible to only me</label>
  13199. </div>
  13200. </div>
  13201. <div class="modal-footer justify-content-start">
  13202. <button type="button" id="btn-reportbuilder-save" class="btn btn-theme w-150p">Save</button>
  13203. </div>
  13204. </div>
  13205. </div>
  13206. </div>
  13207. <!-- /Save as Modal -->
  13208. <!-- Link Report Modal -->
  13209. <div id="linkReportModalDiv"></div>
  13210. <!-- /Link Report Modal -->
  13211. </div>
  13212. </div>
  13213. <div id="divSelectDataList"></div>
  13214. </div>`;
  13215. $(".biz-new-report").hide();
  13216. return html;
  13217. }
  13218. load(id, containerid, callback) {
  13219. Unibase.Platform.Helpers.FileCacheHelper.Instance().addCacheFiles(["platform/analytics/components/reportbuilder/reportfilter.js", "platform/analytics/requests/reportgroup.js", "platform/analytics/components/reportbuilder/reportgroup.js", "platform/analytics/components/reportbuilder/subreport.js", "platform/analytics/components/reportbuilder/columnformat.js", "platform/analytics/components/reportbuilder/reportrolesettings.js"]);
  13220. let instance = this;
  13221. instance.res = null;
  13222. this.reportManager = Analytics.Managers.ReportManager.Instance();
  13223. this._chartBuilder = Unibase.Platform.Analytics.Charts.ChartBuilder.Instance();
  13224. this._reportViewer = Analytics.Components.ReportViewer.Instance();
  13225. this._reportGroup = Reports.ReportGroup.Instance();
  13226. this._reportBuilderTemplate = Reports.ReportBuilder_Template.Instance();
  13227. this._columnFormat = Reports.ColumnFormat.Instance();
  13228. this._pivot = Reports.Pivot.Instance();
  13229. this.pivot = new PivotColumns();
  13230. Unibase.Platform.Analytics.Reports.SubReport.Instance().isReportDuplicate = false;
  13231. instance.dataTreeRowExpandedColumn = [];
  13232. let reportid = id;
  13233. instance.reportid = id;
  13234. instance.containerId = containerid;
  13235. $(".Datalist_Search").val("");
  13236. $("#" + containerid).find(".report-builder-body").height($(window).outerHeight() - 100);
  13237. $("#" + containerid).find("#tabulatorReportbuilder").addClass(containerid + "-table-canvas");
  13238. $("#" + containerid).find("#chart-container").addClass(containerid + "-chart-canvas");
  13239. $(".TableIcon").addClass("text-right").addClass("pull-right");
  13240. $('#saveAsModalBtn').click(function (e) {
  13241. return __awaiter(this, void 0, void 0, function* () {
  13242. $('#save_as_modal').fadeIn().css('background-color', 'rgba(0, 0, 0, 0.5)');
  13243. var isChecked = $("#internalreport_checkbox").prop('checked');
  13244. if (isChecked) {
  13245. let groupName = "InternalGroup";
  13246. instance.reportManager.getReportGroupByName(groupName).then(yield function (grpresponse) {
  13247. if (grpresponse.result != "") {
  13248. $("#RptGroup_AutoComplete").append("<option selected value=" + grpresponse.result.ReportGroupId + ">InternalGroup</option>");
  13249. $('#RptGroup_AutoComplete').attr('disabled', 'true');
  13250. }
  13251. });
  13252. }
  13253. });
  13254. });
  13255. $('#save_as_modal .close').click(function (e) {
  13256. $('#save_as_modal').fadeOut().css('background-color', 'none');
  13257. });
  13258. $("#btn-reportbuilder-save").click(function () {
  13259. if ($("#RptGroup_AutoComplete option:selected").val() == "Select Group")
  13260. return MessageHelper.Instance().showError("Please select ReportGroup", 'divReport_ErrorMessage');
  13261. $("#modalDataListItems .datalist-items, #modalDataListColumns").find(".active").removeClass("active");
  13262. instance.saveReport(containerid, reportid);
  13263. });
  13264. instance._chartBuilder.loadTopIcons();
  13265. instance.loadTableToggleButtons();
  13266. instance.loadLeftNav();
  13267. instance.loadReportGroups();
  13268. instance.loadInstalledApps();
  13269. instance.loadConnectedApps();
  13270. instance.bindConnectedReportsSelect2("#connectedreports");
  13271. if (reportid > 0) {
  13272. instance.loadreportviewerdata(reportid);
  13273. }
  13274. else {
  13275. instance.linkReportId = 0;
  13276. instance.loadDataList_Modal();
  13277. instance.loadDataLists();
  13278. }
  13279. instance.table = instance.initTable(containerid);
  13280. if (callback !== null) {
  13281. callback();
  13282. instance.table.redraw(true);
  13283. }
  13284. $('#' + containerid).find("#btnRefresh").click(function () {
  13285. return __awaiter(this, void 0, void 0, function* () {
  13286. yield instance.load_data(instance.table);
  13287. });
  13288. });
  13289. $('#reportBuilderModal').on('hidden.bs.modal', function () {
  13290. $('#reportBuilderModal').remove();
  13291. });
  13292. $('.btn-reportbuilder-close').on('click', function () {
  13293. instance.closeReportBuilder(containerid, reportid);
  13294. });
  13295. $("#DataListColumnsDiv").addClass("hidden");
  13296. instance.loadAddedColumnFilter();
  13297. $("#filter-by").select2({ minimumResultsForSearch: -1 });
  13298. $('#filter-by').on('change', function (e) {
  13299. instance.loadSelectedDataListColumns();
  13300. });
  13301. $("#reportCreateFolder").click(function () {
  13302. instance.navigationHelper.popup(reportid, '', instance._reportGroup, null, Platform.Helpers.Size.Medium);
  13303. });
  13304. $("#notification_checkbox").click(function () {
  13305. instance.isNotificationCheck();
  13306. });
  13307. $("#internalreport_checkbox").click(function () {
  13308. return __awaiter(this, void 0, void 0, function* () {
  13309. if ($('#internalreport_checkbox').prop('checked') == false) {
  13310. instance.IsInternalReport = false;
  13311. $("#RptGroup_AutoComplete").append("<option selected value=0>Select</option>");
  13312. $('#RptGroup_AutoComplete').removeAttr('disabled');
  13313. }
  13314. else {
  13315. instance.IsInternalReport = true;
  13316. let groupName = "InternalGroup";
  13317. instance.reportManager.getReportGroupByName(groupName).then(yield function (grpresponse) {
  13318. if (grpresponse.result != "") {
  13319. $("#RptGroup_AutoComplete").append("<option selected value=" + grpresponse.result.ReportGroupId + ">InternalGroup</option>");
  13320. $('#RptGroup_AutoComplete').attr('disabled', 'true');
  13321. }
  13322. });
  13323. }
  13324. });
  13325. });
  13326. $("#count_checkbox").click(function () {
  13327. if ($('#count_checkbox').prop('checked') == false) {
  13328. instance.enableCount = false;
  13329. $('#count_checkbox').prop('checked', false);
  13330. }
  13331. else {
  13332. instance.enableCount = true;
  13333. $('#count_checkbox').prop('checked', true);
  13334. }
  13335. });
  13336. $("#enableglobaldatepicker_checkbox").click(function () {
  13337. if ($('#enableglobaldatepicker_checkbox').prop('checked') == false) {
  13338. instance.enableGlobalDatepicker = false;
  13339. $('#enableglobaldatepicker_checkbox').prop('checked', false);
  13340. }
  13341. else {
  13342. instance.enableGlobalDatepicker = true;
  13343. $('#enableglobaldatepicker_checkbox').prop('checked', true);
  13344. }
  13345. });
  13346. $('#btn-apply-query').on('click', function () {
  13347. var qelement = $("#builder");
  13348. var obj = qelement.queryBuilder('getRules');
  13349. !obj && (obj = []);
  13350. instance.queryBuilderJson = JSON.stringify(obj);
  13351. instance.load_data(instance.table);
  13352. $(".qry-builder-container").hide();
  13353. });
  13354. $(".alldatalistcolumns_dlg_close_btn").click(() => {
  13355. let selectedColumns = $("#allDatalistColumns").find(".selected");
  13356. if (selectedColumns.length) {
  13357. for (var i = 0; i < selectedColumns.length; i++)
  13358. $(selectedColumns[i]).removeClass("selected");
  13359. }
  13360. $(".DatalistColumns_Search").val("").trigger("keyup");
  13361. });
  13362. $("#divDatalistModal_ErrorMessage").empty();
  13363. $('.biz-reportbuilder-wrap').click(function () {
  13364. $('#tabulatorReportbuilder').find('.column-dp-menu.show').removeClass('show');
  13365. });
  13366. $("#showdatalistcolumns_checkbox").click((e) => {
  13367. instance.showDynamicFilters = e.currentTarget.checked;
  13368. instance._chartBuilder.loadDynamicFilterSelect(instance.showDynamicFilters);
  13369. });
  13370. $("#InstalledApp_AutoComplete").change(e => {
  13371. });
  13372. $('#DefaultLeftNav_body .reset-btn').click(e => {
  13373. e.preventDefault();
  13374. e.stopPropagation();
  13375. });
  13376. $("#RptGroup_AutoComplete").change(e => {
  13377. let groupId = Number(e.target.value);
  13378. instance.reportManager.getReportGroupById(groupId).then(res => {
  13379. if (res.status == Unibase.Data.Status.Success) {
  13380. instance.isInternalGroup = res.result.IsInternalGroup;
  13381. instance.updateInternalReportCb(res.result.IsInternalGroup, instance.isInternalGroup);
  13382. if (instance.isInternalGroup)
  13383. instance.IsInternalReport = true;
  13384. }
  13385. });
  13386. });
  13387. }
  13388. loadForm(FormId, Pk_Value, AppConfigurationId, Callback, ElementId) {
  13389. this.init(0, null);
  13390. }
  13391. init(reportid, callback) {
  13392. var instance = this;
  13393. instance.reportid = reportid;
  13394. instance.render(reportid, callback);
  13395. }
  13396. render(reportid, callback) {
  13397. var instance = this;
  13398. reportid = reportid;
  13399. this.navigationHelper.popup(reportid, '', instance, null, Platform.Helpers.Size.ExtraLarge);
  13400. }
  13401. loadReportForm(iscreate) {
  13402. var Pk_Value = 0;
  13403. if (!iscreate) {
  13404. Pk_Value = Unibase.Themes.Providers.DetailHelper.recordId;
  13405. }
  13406. this.init(Pk_Value, null);
  13407. }
  13408. initiateDataListSearch() {
  13409. $('.Datalist_Search,.DatalistColumns_Search').on('keyup', function () {
  13410. let ulClass = "";
  13411. if ($(this).hasClass('Datalist_Search')) {
  13412. ulClass = '.datalist-items';
  13413. }
  13414. else {
  13415. ulClass = '.columns-list';
  13416. }
  13417. $(ulClass + ' li').each(function () {
  13418. $(this).attr('data-search-term', $(this).text().replaceAll(" ", "_").toLowerCase());
  13419. });
  13420. let searchTerm = $(this).val().toString().toLowerCase();
  13421. searchTerm.includes(" ") && (searchTerm = searchTerm.replaceAll(" ", "_"));
  13422. if (searchTerm != "") {
  13423. let count = 0;
  13424. $(ulClass + ' li').each(function () {
  13425. if ($(this).filter('[data-search-term *= ' + searchTerm + ']').length > 0 || searchTerm.length < 1) {
  13426. $(this).show();
  13427. count++;
  13428. }
  13429. else {
  13430. $(this).hide();
  13431. }
  13432. });
  13433. if (!count)
  13434. return MessageHelper.Instance().showError("No results found", 'divDatalistModal_ErrorMessage');
  13435. else if ($("#divDatalistModal_ErrorMessage").children().length)
  13436. $("#divDatalistModal_ErrorMessage").empty();
  13437. }
  13438. else {
  13439. $(ulClass + ' li').each(function () {
  13440. $(this).show();
  13441. });
  13442. }
  13443. });
  13444. }
  13445. loadDataList_Modal() {
  13446. const instance = this;
  13447. let reportBuilder_DataListModalHtml = `<div class="modal fade biz-new-report" id="reportBuilderModal" tabindex="-1" role="dialog" aria-labelledby="reportBuilderPopup" aria-hidden="true">
  13448. <div class="modal-dialog modal-dialog-centered modal-lg" role="document">
  13449. <div class="modal-content">
  13450. <div id="divDatalistModal_ErrorMessage"></div>
  13451. <div class="modal-header flex-column">
  13452. <h5 class="mb-5">Create New Report</h5>
  13453. <p>Choose datalist and columns to your report</p>
  13454. </div>
  13455. <div class="modal-body pa-0 h-400p">
  13456. <div class="dataset-list-wrap">
  13457. <div class="form-search">
  13458. <input class="form-control Datalist_Search" placeholder="Search Datalist">
  13459. </div>
  13460. <div data-simplebar class="simple-scroll-bar" id="DataListsDropDownDiv">
  13461. <div id="modalDataListItems">
  13462. </div>
  13463. </div>
  13464. </div>
  13465. <div class="columns-list-wrap">
  13466. <div class="d-flex align-items-center">
  13467. <button class="btn btn-icon btn-flush-dark btn-rounded flush-soft-hover close-columns-list" href="#"><span class="btn-icon-wrap" ><span class="feather-icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-left"><line x1="19" y1="12" x2="5" y2="12"></line><polyline points="12 19 5 12 12 5"></polyline></svg></span></span></button>
  13468. <div class="form-search col">
  13469. <input class="form-control DatalistColumns_Search" placeholder="Search Columns">
  13470. </div>
  13471. </div>
  13472. <div data-simplebar class="simple-scroll-bar">
  13473. <div id="modalDataListColumns">
  13474. </div>
  13475. </div>
  13476. </div>
  13477. </div>
  13478. <div class="modal-footer justify-content-center">
  13479. <a class="btn btn-light mr-10 btn-reportbuilder-close" href="javascript:;" data-dismiss="modal">cancel</a>
  13480. <a class="btn btn-theme btn-reportbuilder-next" href="javascript:;" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().loadReportColumns()"> next </a>
  13481. </div>
  13482. </div>
  13483. </div>
  13484. </div>`;
  13485. $("#_bizgaze_modal").append(reportBuilder_DataListModalHtml);
  13486. $('#reportBuilderModal').modal({
  13487. backdrop: 'static',
  13488. keyboard: true,
  13489. show: true
  13490. });
  13491. instance.initiateDataListSearch();
  13492. }
  13493. loadDataLists() {
  13494. var instance = this;
  13495. let dataListHtml = "";
  13496. instance.reportManager.getDataLists().then(function (response) {
  13497. dataListHtml += '<ul class="nav nav-vertical nav-tabs datalist-items">';
  13498. for (var i = 0; i < response.length; i++) {
  13499. let obj = response[i];
  13500. dataListHtml += `<li class="nav-item">
  13501. <a class="nav-link data-list-sel" data-toggle="tab"
  13502. href="#tab_col_1" title="${obj.DataListName.trim()}" data-list-id="${obj.DataListId}" data-list-name="${obj.DataListName.trim().replaceAll(" ", "_")}" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().loadDataListColumns(${obj.DataListId},null,${false},${false},${obj.DataSourceId})">
  13503. <span class="nav-link-text">${obj.DataListName.trim()}</span>
  13504. </a>
  13505. </li>`;
  13506. }
  13507. dataListHtml += '</ul>';
  13508. $('#modalDataListItems').append(dataListHtml);
  13509. if (!window.matchMedia('(max-width: 1200px)').matches) {
  13510. $("#modalDataListItems ul li a:first").addClass("active").trigger('click');
  13511. }
  13512. });
  13513. }
  13514. loadDataListColumns(datalistid, term, search, IsForm, DataSourceId) {
  13515. return __awaiter(this, void 0, void 0, function* () {
  13516. $('#modalDataListColumns').html("");
  13517. $("#reportBuilderModal").find(".DatalistColumns_Search").val("");
  13518. var instance = this;
  13519. instance.DataSourceId = DataSourceId;
  13520. if (datalistid != 0) {
  13521. var dataListColumnsHtml = "";
  13522. yield instance.reportManager.getDataListColumns(datalistid, term, null).then(function (response) {
  13523. if (response.status == Unibase.Data.Status.Success) {
  13524. if (response.result != "") {
  13525. var dc_res = JSON.parse(response.result);
  13526. instance.datalistColumnsResponseData = [];
  13527. if (dc_res.length > 0) {
  13528. dataListColumnsHtml += `<div class="tab-content">
  13529. <div class="tab-pane fade show active" id="tab_col_1">
  13530. <ul class="columns-list multi-sel">`;
  13531. for (var i = 0; i < dc_res.length; i++) {
  13532. let obj = dc_res[i];
  13533. let columnIcon = instance.getColumnIconByDataTypes(obj.DataTypeId);
  13534. let dobj = { ColumnId: obj.ColumnId, DataType: obj.DataTypeId, ColumnName: obj.AliasName, DisplayText: obj.AliasName, AliasName: obj.AliasName, DlColumnName: obj.ColumnName, Isvisible: false, StaticFilterControlType: obj.StaticFilterControlTypeId };
  13535. instance.datalistColumnsResponseData.push(dobj);
  13536. dataListColumnsHtml += `<li>
  13537. <a href="#">
  13538. <span class="col-type-icon">
  13539. <span class="line-icon">
  13540. ${columnIcon}
  13541. </span>
  13542. </span>
  13543. <span>
  13544. <span class="col-name dataListModalColumn" data-column-datatype=${obj.DataTypeId} data-column-id='${obj.ColumnId}' data-column-dlcolumnname='${obj.ColumnName}'>${obj.AliasName}</span>
  13545. </span>
  13546. </a>
  13547. </li>`;
  13548. }
  13549. dataListColumnsHtml += `</ul></div>`;
  13550. $('#modalDataListColumns').html(dataListColumnsHtml);
  13551. instance.QueryBuilder_Columns = instance.datalistColumnsResponseData;
  13552. }
  13553. else {
  13554. $('#modalDataListColumns').html("");
  13555. }
  13556. }
  13557. else {
  13558. return MessageHelper.Instance().showError("DataListColumns does'nt exist", "divDatalistModal_ErrorMessage");
  13559. }
  13560. }
  13561. else {
  13562. return MessageHelper.Instance().showError(response.message, "divDatalistModal_ErrorMessage");
  13563. }
  13564. });
  13565. }
  13566. });
  13567. }
  13568. _selectedColumns(selCol) {
  13569. var instance = this;
  13570. let colFormat;
  13571. if (selCol.DataType == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime && selCol.ColumnFormat)
  13572. colFormat = selCol.ColumnFormat;
  13573. else if (selCol.DataType == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime && !(selCol.ColumnFormat))
  13574. colFormat = "Default";
  13575. instance.selectedColumns.push({
  13576. ReportColumnId: (selCol.ReportColumnId) ? selCol.ReportColumnId : 0,
  13577. ColumnId: selCol.ColumnId,
  13578. ColumnName: selCol.ColumnName,
  13579. AliasName: selCol.AliasName && selCol.AliasName.toLowerCase(),
  13580. DataListColumnName: selCol.DataListColumnName,
  13581. DlColumnName: selCol.DlColumnName,
  13582. DisplayText: (selCol.DisplayText) ? selCol.DisplayText : selCol.AliasName,
  13583. DataType: selCol.DataType,
  13584. DataTypeString: selCol.DataTypeString,
  13585. GroupBy: (selCol.GroupBy) ? selCol.GroupBy : false,
  13586. Isvisible: (selCol.Isvisible) ? selCol.Isvisible : false,
  13587. Aggregation: !isNaN(selCol.Aggregation) ? selCol.Aggregation : Reports.Enums.AggregationType.none,
  13588. SortOrder: (selCol.SortOrder) ? selCol.SortOrder : "none",
  13589. SortIndex: (selCol.SortIndex) ? selCol.SortIndex : 0,
  13590. IsFilterable: false,
  13591. IsPrimaryKey: (selCol.IsPrimaryKey) ? selCol.IsPrimaryKey : false,
  13592. IsContactColumn: (selCol.IsContactColumn) ? selCol.IsContactColumn : false,
  13593. ColumnIndex: instance.selectedColumns.length,
  13594. IsDragged: (selCol.IsDragged) ? selCol.IsDragged : false,
  13595. GroupByCategory: (selCol.GroupByCategory) ? selCol.GroupByCategory : false,
  13596. ColumnFormat: (colFormat) ? colFormat : "",
  13597. DistinctOn: (selCol.DistinctOn) ? selCol.DistinctOn : false,
  13598. IsPivotColumn: selCol.IsPivotColumn,
  13599. IsPivotAggrColumn: selCol.IsPivotAggrColumn,
  13600. IsPivotTableCol: (selCol.IsPivotTableCol) ? selCol.IsPivotTableCol : false,
  13601. IsDownload: (selCol.IsDownload) ? selCol.IsDownload : false,
  13602. TableAggrTypeId: !isNaN(selCol.TableAggrTypeId) ? selCol.TableAggrTypeId : Reports.Enums.AggregationType.none,
  13603. IsNumFormatting: (selCol.IsNumFormatting) ? selCol.IsNumFormatting : false,
  13604. IsRowTotal: (selCol.IsRowTotal) ? selCol.IsRowTotal : false,
  13605. IsImageUrl: (selCol.IsImageUrl) ? selCol.IsImageUrl : false,
  13606. PivotTableAggrTypeId: (selCol.PivotTableAggrTypeId) ? selCol.PivotTableAggrTypeId : 0,
  13607. });
  13608. var Width = selCol.Width;
  13609. if (Width != undefined) {
  13610. let index = instance.getIndexByAliasName_selectedColumnsArray(selCol.AliasName);
  13611. if (index != -1)
  13612. instance.selectedColumns[index].Width = Width;
  13613. }
  13614. var ColumnName = selCol.ColumnName;
  13615. let EditableTitle = true;
  13616. let HeaderSort = false;
  13617. if (instance.reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Chart) {
  13618. EditableTitle = false;
  13619. HeaderSort = true;
  13620. }
  13621. instance.table.addColumn({ title: selCol.AliasName && selCol.AliasName.toLowerCase(), field: ColumnName && ColumnName.toLowerCase(), editableTitle: EditableTitle, headerSort: HeaderSort }, true, "LastColumn");
  13622. instance.EditableTabulatorTitle();
  13623. }
  13624. loadReportColumns() {
  13625. var instance = this;
  13626. if ($('#modalDataListItems .nav-link.data-list-sel.active').length == 0)
  13627. return MessageHelper.Instance().showError("Please select Datalist", 'divDatalistModal_ErrorMessage');
  13628. if ($('#modalDataListColumns .columns-list li.selected').length == 0)
  13629. return MessageHelper.Instance().showError("Please select Columns", 'divDatalistModal_ErrorMessage');
  13630. instance.datalistColumnsResponseData = [];
  13631. instance.DataListId = parseInt($('#modalDataListItems ul li a.active').attr('data-list-id'));
  13632. const DataListName = $('#modalDataListItems ul li a.active').attr('data-list-name');
  13633. var asb = 0;
  13634. $('#datalist_name').val(DataListName);
  13635. $('#header_datalist_name').html(DataListName);
  13636. if (!isNaN(instance.DataListId)) {
  13637. $('#modalDataListColumns ul.multi-sel li span.dataListModalColumn').each(function () {
  13638. let _id = Number($(this).attr('data-column-id'));
  13639. let _datatype = Number($(this).attr('data-column-datatype'));
  13640. let _datatypeString = $(this).attr('data-column-datatype');
  13641. let _dlcolumnname = $(this).attr('data-column-dlcolumnname');
  13642. let _dlaliasname = $(this).text();
  13643. let obj = { ColumnId: _id, DataType: _datatype, DataTypeString: _datatypeString, ColumnName: _dlaliasname, DisplayText: _dlaliasname, AliasName: _dlaliasname, DlColumnName: _dlcolumnname, Isvisible: false };
  13644. instance.datalistColumnsResponseData.push(obj);
  13645. });
  13646. $('#modalDataListColumns ul.multi-sel li.selected span.dataListModalColumn').each(function () {
  13647. let _id = Number($(this).attr('data-column-id'));
  13648. let _datatype = Number($(this).attr('data-column-datatype'));
  13649. let _datatypeString = $(this).attr('data-column-datatype');
  13650. let _dlaliasname = $(this).text();
  13651. let _dlcolumnname = $(this).attr('data-column-dlcolumnname');
  13652. let obj = { ColumnId: _id, DataType: _datatype, DataTypeString: _datatypeString, ColumnName: _dlaliasname, AliasName: _dlaliasname, DlColumnName: _dlcolumnname, Isvisible: true, IsDownload: true };
  13653. instance._selectedColumns(obj);
  13654. });
  13655. instance.loadSelectedDataListColumns();
  13656. instance.loadAllDataListColumns();
  13657. instance._chartBuilder.select2DataBinding("");
  13658. $('#reportBuilderModal').modal('hide');
  13659. $('.Datalist_Search').val("");
  13660. $('.DatalistColumns_Search').val("");
  13661. instance.load_data(instance.table);
  13662. }
  13663. ;
  13664. }
  13665. loadAllDataListColumns() {
  13666. var instance = this;
  13667. let allDatalistColumnsHtml = "";
  13668. allDatalistColumnsHtml += '<ul class="columns-list multi-sel">';
  13669. for (var i = 0; i < instance.datalistColumnsResponseData.length; i++) {
  13670. var obj = instance.datalistColumnsResponseData[i];
  13671. let columnIcon = instance.getColumnIconByDataTypes(obj.DataType);
  13672. allDatalistColumnsHtml += `<li id="li_${obj.ColumnId}">
  13673. <a href="#">
  13674. <span class="col-type-icon">
  13675. <span class="line-icon">${columnIcon}</span>
  13676. </span>
  13677. <span>
  13678. <span class="col-name datalist_column" data-column-datatype=${obj.DataType} data-column-id='${obj.ColumnId}' data-column-dlcolumnname='${obj.DlColumnName}'>${obj.ColumnName}</span></span>
  13679. </a>
  13680. </li>`;
  13681. }
  13682. allDatalistColumnsHtml += '</ul>';
  13683. $('#allDatalistColumns').html(allDatalistColumnsHtml);
  13684. }
  13685. loadSelectedDataListColumns() {
  13686. let opt = Number($('#filter-by').val());
  13687. let check = '';
  13688. var hiddenColumnsHtml = '';
  13689. if (opt == Unibase.Platform.Analytics.Enums.FilterType.allcolumns) {
  13690. }
  13691. else if (opt == Unibase.Platform.Analytics.Enums.FilterType.contactcolumns) {
  13692. check = 'IsContactColumn';
  13693. }
  13694. else if (opt == Unibase.Platform.Analytics.Enums.FilterType.primarykeycolumns) {
  13695. check = 'IsPrimaryKey';
  13696. }
  13697. var instance = this;
  13698. let selectedColumnsHtml = "";
  13699. $.each(instance.selectedColumns, function (index, value) {
  13700. var { selectedColumnHtml, hiddenColumnHtml } = instance.getSelectedColumnHtml(value, index, check);
  13701. selectedColumnsHtml += selectedColumnHtml;
  13702. if (!check)
  13703. hiddenColumnsHtml += hiddenColumnHtml;
  13704. });
  13705. $('#selectedColumns').html(selectedColumnsHtml);
  13706. $('#selectedColumns_hidden').html(hiddenColumnsHtml);
  13707. instance.sortSelectedColums();
  13708. }
  13709. getColumnHtml(AliasName, ColumnName, ColumnId, dnoneClass, Isvisible, isColumnVisible, DataType, DisplayText, isHiddenColumn) {
  13710. var idValue = isHiddenColumn ? "_hidden" : "";
  13711. const draggerClass = isHiddenColumn ? 'pl-40' : 'las la-braille dragger';
  13712. return `<div class="dsl-block ${Isvisible ? '' : 'd-none'}" id="column_${AliasName}_block${idValue}" data-isvisible="${isColumnVisible}">
  13713. <span>
  13714. <i class="${draggerClass}"></i>
  13715. <span class="dsl-block-name" data-column-id='${ColumnId}' data-report-columnname = '${ColumnName} ' data-report-aliasname ='${AliasName}' data-column-datatype='${DataType}'>${DisplayText}</span>
  13716. </span>
  13717. <span>
  13718. <a class="btn btn-xs btn-icon btn-flush-dark btn-rounded flush-soft-hover text-secondary ${dnoneClass}" id="${AliasName}_EyeIcon${idValue}" href="javascript:;" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().showOrHideColumn_table('${ColumnId}','${AliasName}')" title="Show Column"><span class="btn-icon-wrap"><span class="line-icon"><i class="las la-eye-slash font-20"></i></span></span></a>
  13719. </span>
  13720. </div>`;
  13721. }
  13722. getSelectedColumnHtml(value, index, check) {
  13723. var instance = this;
  13724. var selectedColumnHtml = '', hiddenColumnHtml = '';
  13725. let dnoneClass = 'd-none';
  13726. let isColumnVisible = "true";
  13727. if (!value.Isvisible) {
  13728. dnoneClass = '';
  13729. isColumnVisible = "false";
  13730. }
  13731. var colIndex = instance.getIndexByAliasName_selectedColumnsArray(value.AliasName);
  13732. instance.selectedColumns[colIndex].ColumnIndex = index;
  13733. if (check == '' && !value.IsPrimaryKey) {
  13734. selectedColumnHtml += instance.getColumnHtml(value.AliasName, value.ColumnName, value.ColumnId, dnoneClass, value.Isvisible, isColumnVisible, value.DataType, value.DisplayText);
  13735. }
  13736. else if (check == "IsPrimaryKey" && value.IsPrimaryKey) {
  13737. selectedColumnHtml += instance.getColumnHtml(value.AliasName, value.ColumnName, value.ColumnId, dnoneClass, value.Isvisible, isColumnVisible, value.DataType, value.ColumnName);
  13738. }
  13739. else if (check == '' && value.IsPrimaryKey) {
  13740. selectedColumnHtml += instance.getColumnHtml(value.AliasName, value.ColumnName, value.ColumnId, dnoneClass, value.Isvisible, isColumnVisible, value.DataType, value.AliasName);
  13741. }
  13742. else if (check == 'IsContactColumn' && value.IsContactColumn) {
  13743. selectedColumnHtml += `<div class="dsl-block ${value.Isvisible ? '' : 'd-none'}" id="column_${value.AliasName}_block" data-isvisible="${isColumnVisible}">
  13744. <span>
  13745. <i class="las la-braille dragger"></i>
  13746. <span class="dsl-block-name" data-column-id='${value.ColumnId}' data-report-columnname = '${value.ColumnName}' data-report-aliasname ='${value.AliasName}' data-column-datatype='${value.DataType}'>${value.AliasName}</span>
  13747. </span>
  13748. <span>
  13749. <a class="btn btn-xs btn-icon btn-flush-dark btn-rounded flush-soft-hover text-secondary ${dnoneClass}" id="${value.AliasName}_EyeIcon" href="javascript:;" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().showOrHideColumn_table('${value.ColumnId}','${value.AliasName}')" title="Show Column"><span class="btn-icon-wrap"><span class="line-icon"><i class="las la-eye-slash font-20"></i></span></span></a>
  13750. </span>
  13751. </div>`;
  13752. }
  13753. if (!value.Isvisible) {
  13754. hiddenColumnHtml += instance.getColumnHtml(value.AliasName, value.ColumnName, value.ColumnId, dnoneClass, true, isColumnVisible, value.DataType, value.DisplayText, true);
  13755. }
  13756. return {
  13757. selectedColumnHtml: selectedColumnHtml,
  13758. hiddenColumnHtml: hiddenColumnHtml
  13759. };
  13760. }
  13761. sortSelectedColums() {
  13762. var instance = this;
  13763. let list = $('#selectedColumns');
  13764. if (!list)
  13765. return;
  13766. list.sortable({
  13767. connectWith: "#selectedColumns",
  13768. cursor: 'move',
  13769. update: function (event, ui) {
  13770. instance.updateSelectedColumnIndex();
  13771. instance.load_data(instance.table);
  13772. }
  13773. });
  13774. }
  13775. appendExtraSelectedColumns() {
  13776. var instance = this;
  13777. let obj;
  13778. let newColumnsHtml = "";
  13779. if (instance.DataListId != 0) {
  13780. let show = false;
  13781. $('#allDatalistColumns ul.multi-sel li.selected span.datalist_column').each(function () {
  13782. let _id = Number($(this).attr('data-column-id'));
  13783. let _datatype = Number($(this).attr('data-column-datatype'));
  13784. let _datatypeString = $(this).attr('data-column-datatype');
  13785. let _name = $(this).text();
  13786. let _dlcolumnname = $(this).attr('data-column-dlcolumnname');
  13787. let opt = Number($('#filter-by').val());
  13788. if (opt == Unibase.Platform.Analytics.Enums.FilterType.primarykeycolumns && _datatype != Unibase.Platform.Analytics.Reports.Enums.DataType.int32 && _datatype != Unibase.Platform.Analytics.Reports.Enums.DataType.int64) {
  13789. return MessageHelper.Instance().showError("Please select integer data type column for selecting primary key", "div_ReportBuilderErrorMessage");
  13790. }
  13791. obj = { ColumnId: _id, DataType: _datatype, DataTypeString: _datatypeString, ColumnName: _name, AliasName: _name, DlColumnName: _dlcolumnname, Isvisible: true, IsDownload: true };
  13792. var column = instance.selectedColumns.find(x => x.AliasName == _name) ? true : false;
  13793. if (!column)
  13794. instance._selectedColumns(obj);
  13795. if (opt == Unibase.Platform.Analytics.Enums.FilterType.allcolumns) {
  13796. if (column) {
  13797. show = true;
  13798. return instance.error(_name);
  13799. }
  13800. newColumnsHtml += instance.addDataListColumns_ColumnsTab(obj.ColumnId, obj.ColumnName, obj.AliasName, obj.DataType, _name);
  13801. }
  13802. else if (opt == Unibase.Platform.Analytics.Enums.FilterType.contactcolumns) {
  13803. var contccol = instance.selectedColumns.find(x => x.AliasName == _name && x.IsContactColumn == true) ? true : false;
  13804. if (contccol) {
  13805. show = true;
  13806. return instance.error(_name);
  13807. }
  13808. newColumnsHtml += instance.addDataListColumns_ColumnsTab(obj.ColumnId, obj.ColumnName, obj.AliasName, obj.DataType, _name);
  13809. instance.IsContactColumn(_id, _name);
  13810. }
  13811. else if (opt == Unibase.Platform.Analytics.Enums.FilterType.primarykeycolumns) {
  13812. var pkcol = instance.selectedColumns.find(x => x.ColumnName == _name && x.IsPrimaryKey == true) ? true : false;
  13813. if (pkcol) {
  13814. show = true;
  13815. return MessageHelper.Instance().showError('Please remove existing pk_id column to add new primarykey column', 'div_ReportBuilderErrorMessage');
  13816. }
  13817. newColumnsHtml += instance.addDataListColumns_ColumnsTab(obj.ColumnId, obj.ColumnName, "pk_id", obj.DataType, _name);
  13818. obj["AliasName"] = "pk_id";
  13819. obj["IsPrimaryKey"] = true;
  13820. instance._selectedColumns(obj);
  13821. $("#txtAliasName_pk_id").val("pk_id");
  13822. }
  13823. });
  13824. $("#selectedColumns").append(newColumnsHtml);
  13825. instance.sortSelectedColums();
  13826. instance.loadAllDataListColumns();
  13827. instance._chartBuilder.select2DataBinding("");
  13828. instance._chartBuilder.loadSearchSelect2();
  13829. $(".DatalistColumns_Search").val("").trigger("keyup");
  13830. this._pivot.loadPivotSelect2s();
  13831. instance.load_data(instance.table);
  13832. if (!show)
  13833. $('#adj_drawer_1').hide();
  13834. }
  13835. ;
  13836. }
  13837. addDataListColumns_ColumnsTab(ColumnId, ColumnName, AliasName, DataType, name) {
  13838. let newColumnsHtml = `<div class="dsl-block" id="column_${AliasName}_block">
  13839. <span>
  13840. <i class="las la-braille dragger"></i>
  13841. <span class="dsl-block-name" data-column-id='${ColumnId}' data-report-columnname = '${ColumnName}' data-report-aliasname ='${AliasName}' data-column-datatype='${DataType}'>${ColumnName}</span>
  13842. </span>
  13843. <span>
  13844. <a class="btn btn-xs btn-icon btn-flush-dark btn-rounded flush-soft-hover text-secondary d-none" id="${AliasName}_EyeIcon" href="javascript:;" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().showOrHideColumn_table('${ColumnId}','${AliasName}')" title="Show Column"><span class="btn-icon-wrap"><span class="line-icon"><i class="las la-eye-slash font-20"></i></span></span></a>
  13845. </span>
  13846. </div>`;
  13847. return newColumnsHtml;
  13848. }
  13849. addDuplicateColumn(columnName) {
  13850. var instance = this;
  13851. let duplicateCol;
  13852. let index = 0;
  13853. if (instance.duplicateColIndex.length > 0) {
  13854. let col = instance.duplicateColIndex[columnName];
  13855. if (col) {
  13856. index = col.index + 1;
  13857. duplicateCol = columnName + "_" + index;
  13858. delete instance.duplicateColIndex[columnName];
  13859. instance.duplicateColIndex[columnName] = { ColName: columnName, AliasName: duplicateCol, index: index };
  13860. }
  13861. else {
  13862. duplicateCol = columnName + "_" + index;
  13863. instance.duplicateColIndex[columnName] = { ColName: columnName, AliasName: duplicateCol, index: index };
  13864. instance.duplicateColIndex.length = instance.duplicateColIndex.length + 1;
  13865. }
  13866. }
  13867. else {
  13868. duplicateCol = columnName + "_" + index;
  13869. instance.duplicateColIndex[columnName] = { ColName: columnName, AliasName: duplicateCol, index: index };
  13870. instance.duplicateColIndex.length = instance.duplicateColIndex.length + 1;
  13871. }
  13872. return duplicateCol;
  13873. }
  13874. pivotData() {
  13875. var instance = this;
  13876. let sel_Col = instance.selectedColumns;
  13877. instance.table.options.dataTree = true;
  13878. for (var i = 0; i < sel_Col.length; i++) {
  13879. if (instance.pivot.ColumnName == sel_Col[i].ColumnName) {
  13880. let Col = [];
  13881. let row = instance.pivot.PivotRows;
  13882. for (var r = 0; r < row.length; r++) {
  13883. Col.push({ title: row[r], field: row[r], visible: true, editableTitle: instance.EditableTitle, headerSort: instance.HeaderSort });
  13884. }
  13885. instance.tabulatorColumns = instance.tabulatorColumns.concat(Col);
  13886. }
  13887. else {
  13888. if (sel_Col[i].Width != undefined) {
  13889. instance.tabulatorColumns.push({ title: sel_Col[i].ColumnName, field: sel_Col[i].ColumnName, visible: sel_Col[i].Isvisible, editableTitle: instance.EditableTitle, headerSort: instance.HeaderSort, width: sel_Col[i].Width });
  13890. }
  13891. else {
  13892. if (instance.pivot.AggColumnName != sel_Col[i].ColumnName) {
  13893. instance.tabulatorColumns.push({ title: sel_Col[i].ColumnName, field: sel_Col[i].ColumnName, visible: sel_Col[i].Isvisible, editableTitle: instance.EditableTitle, headerSort: instance.HeaderSort });
  13894. }
  13895. }
  13896. }
  13897. }
  13898. }
  13899. findChildren(row, action) {
  13900. var instance = this;
  13901. if (action == "expand") {
  13902. row.treeExpand();
  13903. }
  13904. else {
  13905. row.treeCollapse();
  13906. }
  13907. ;
  13908. var childRows = row.getTreeChildren();
  13909. if (childRows.length > 0) {
  13910. childRows.forEach(function (child) {
  13911. if (child.getTreeChildren().length > 0) {
  13912. instance.findChildren(child, action);
  13913. }
  13914. });
  13915. }
  13916. }
  13917. getDistinctData(colId, colName, AggrFuncId) {
  13918. return __awaiter(this, void 0, void 0, function* () {
  13919. var instance = this;
  13920. var cf_fromDate = btoa(Unibase.Platform.Helpers.NavigationHelper.commonFilter_FromDate);
  13921. var cf_toDate = btoa(Unibase.Platform.Helpers.NavigationHelper.commonFilter_ToDate);
  13922. yield Unibase.Platform.Analytics.Managers.ReportManager.Instance().getDistinctColumnData(instance.DataListId, colName, AggrFuncId, cf_fromDate, cf_toDate).then(function (response) {
  13923. if (response != "") {
  13924. instance.distinctColumnData = response;
  13925. let PivotRows = [];
  13926. instance.pivot.ColumnName = colName;
  13927. for (var i = 0; i < instance.distinctColumnData.length; i++) {
  13928. PivotRows.push(instance.distinctColumnData[i][colName]);
  13929. }
  13930. if ($("#PivotRows_Select2").is(":visible")) {
  13931. $("#PivotRows_Select2").select2({
  13932. placeholder: 'Select Pivot Rows',
  13933. data: PivotRows,
  13934. });
  13935. }
  13936. instance.pivot.PivotRows = PivotRows;
  13937. }
  13938. else {
  13939. instance.pivot.PivotRows = [];
  13940. }
  13941. });
  13942. });
  13943. }
  13944. timeIntervels(pivotCol) {
  13945. var instance = this;
  13946. var timeInterval = instance.TenureReport[pivotCol].TimeInterval.split(',');
  13947. var tenure = [];
  13948. for (var t = 0; t < timeInterval.length; t++) {
  13949. var start = 0;
  13950. if (t != timeInterval.length - 1) {
  13951. if (t == 0) {
  13952. start = Number(timeInterval[t]);
  13953. }
  13954. else {
  13955. start = Number(timeInterval[t]) + 1;
  13956. }
  13957. var end = timeInterval[t + 1];
  13958. tenure.push(start + "-" + end);
  13959. }
  13960. else {
  13961. tenure.push(">" + timeInterval[t]);
  13962. }
  13963. }
  13964. return tenure;
  13965. }
  13966. tenureData() {
  13967. var instance = this;
  13968. let sel_Col = instance.selectedColumns;
  13969. instance.tenureTimeIntervalCol = instance.pivot.ColumnName;
  13970. var tenure = instance.timeIntervels(instance.tenureTimeIntervalCol);
  13971. for (var i = 0; i < sel_Col.length; i++) {
  13972. if (instance.pivot.ColumnName == sel_Col[i].ColumnName) {
  13973. let Col = [];
  13974. for (var t = 0; t < tenure.length; t++) {
  13975. if (sel_Col[i].Width) {
  13976. Col.push({ title: tenure[t], field: tenure[t], visible: true, editableTitle: instance.EditableTitle, headerSort: instance.HeaderSort, width: sel_Col[i].Width });
  13977. }
  13978. else {
  13979. Col.push({ title: tenure[t], field: tenure[t], visible: true, editableTitle: instance.EditableTitle, headerSort: instance.HeaderSort });
  13980. }
  13981. }
  13982. instance.tabulatorColumns[sel_Col[i].ColumnIndex + 1] =
  13983. {
  13984. title: sel_Col[i].ColumnName,
  13985. columns: Col,
  13986. };
  13987. }
  13988. else {
  13989. if (instance.pivot.AggColumnName !== sel_Col[i].ColumnName) {
  13990. instance.tabulatorColumns[sel_Col[i].ColumnIndex + 1] =
  13991. { title: sel_Col[i].AliasName, field: sel_Col[i].ColumnName, visible: sel_Col[i].Isvisible, editableTitle: instance.EditableTitle, headerSort: instance.HeaderSort, width: sel_Col[i].Width };
  13992. }
  13993. }
  13994. }
  13995. }
  13996. initTable(containerid) {
  13997. var instance = this;
  13998. var autoNumFormatter = function (cell) {
  13999. var row = cell.getRow();
  14000. var rowIndex = row.getPosition(false);
  14001. return (rowIndex + 1);
  14002. };
  14003. let serviceurl = "apis/v4/unibase/platform/analytics/tabledata";
  14004. serviceurl = _appsettings.server_url() + (serviceurl.startsWith('/') ? serviceurl : ('/' + serviceurl));
  14005. instance.table = new Tabulator("." + containerid + "-table-canvas", {
  14006. columns: [
  14007. { title: "", formatter: autoNumFormatter, frozen: true, minWidth: 40, width: 40 },
  14008. { title: "LastColumn", field: "LastColumn", visible: false, headerSort: false }
  14009. ],
  14010. layout: "fitDataFill",
  14011. dataTree: true,
  14012. movableColumns: false,
  14013. dataTreeStartExpanded: instance._pivot.isDataTreeExpand,
  14014. dataTreeChildIndent: 15,
  14015. dataTreeRowExpanded: function (row, level) {
  14016. return __awaiter(this, void 0, void 0, function* () {
  14017. var array = [];
  14018. var _children = [];
  14019. if (instance.datatreeIndex_Width / 70 <= level) {
  14020. instance.datatreeIndex_Width = instance.datatreeIndex_Width + 70;
  14021. }
  14022. Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().tabulatorColumns[0].width = instance.datatreeIndex_Width;
  14023. Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().tabulatorColumns[0].minWidth = instance.datatreeIndex_Width;
  14024. if (instance.dataTreeRowExpandedColumn.length != 0) {
  14025. instance.table.setColumns(instance.tabulatorColumns);
  14026. instance.EditableTabulatorTitle();
  14027. $(".tabulator-frozen").css("width", instance.datatreeIndex_Width);
  14028. var Columns = instance.table.getColumns();
  14029. for (var c = 0; c < Columns.length; c++) {
  14030. var field = Columns[c].getField();
  14031. var width = Columns[c]["_column"].width;
  14032. $("#" + instance.containerId).find("[tabulator-field = '" + field + "']").css("width", width);
  14033. }
  14034. }
  14035. var parentcolName = instance.pivot.ParentColumnName;
  14036. var parentValue = row.getData()[parentcolName];
  14037. instance.dataTreeRowExpandedColumn = [];
  14038. instance.dataTreeRowExpandedColumn.push({ ColumnName: parentcolName, ColumnValue: parentValue, Level: level });
  14039. instance.pivot.ChildColumnValue = parentValue;
  14040. yield instance.load_data(instance.table);
  14041. setTimeout(function () {
  14042. instance.table.options.dataTree = true;
  14043. var tabledata = JSON.parse(instance.tableData);
  14044. var hasChild = tabledata.filter(x => x.haschild == true).forEach(c => c["_children"] = []);
  14045. row.getData()._children = tabledata;
  14046. return row.update(row.getData());
  14047. }, 1000);
  14048. });
  14049. },
  14050. rowClick: function (e, row) {
  14051. },
  14052. cellClick: function (e, cell) {
  14053. var Interval = cell["_cell"].column.definition.title;
  14054. Unibase.Platform.Analytics.Reports.Tenure.Instance().tenureDetailsTable(Interval);
  14055. },
  14056. placeholder: "No data available",
  14057. columnResized: function (column) {
  14058. let col = column["_column"].field;
  14059. let width = column["_column"].width;
  14060. let index = instance.getIndexByAliasName_selectedColumnsArray(col);
  14061. instance.selectedColumns[index].Width = width;
  14062. },
  14063. scrollHorizontal: function () {
  14064. $('#tabulatorReportbuilder .tabulator-header').find('.column-dp-menu.show').removeClass('show');
  14065. },
  14066. dataLoading: function (data) {
  14067. if (data && data.length) {
  14068. instance.navigationHelper.showLoading();
  14069. }
  14070. },
  14071. dataLoaded: function () {
  14072. if (instance.tableData) {
  14073. instance.navigationHelper.hideLoading();
  14074. }
  14075. }
  14076. });
  14077. var height = $(".report-builder-body").height() - 40 + "px";
  14078. instance.table.setHeight(height);
  14079. $("#table-canvan").height(height);
  14080. return instance.table;
  14081. }
  14082. getReportData() {
  14083. var instance = this;
  14084. instance.ReportColumns = [];
  14085. if (instance.reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Chart) {
  14086. instance._chartBuilder.pushPivotData();
  14087. }
  14088. if (instance.TenureReport.length != 0) {
  14089. instance.TenureReport;
  14090. }
  14091. var fromDate = "";
  14092. var toDate = "";
  14093. var cf_fromDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_FromDate;
  14094. var cf_toDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_ToDate;
  14095. if (cf_fromDate != null && cf_toDate != null) {
  14096. fromDate = cf_fromDate.toString();
  14097. toDate = cf_toDate.toString();
  14098. }
  14099. else {
  14100. fromDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
  14101. toDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
  14102. }
  14103. let repObj = new ReportObject();
  14104. repObj.DataListId = instance.DataListId;
  14105. repObj.StaticFilter = instance.queryBuilderJson;
  14106. repObj.SortColumns = instance.stringifyed_SortColumns;
  14107. repObj.Filter = null;
  14108. repObj.LinkSubReport = false;
  14109. repObj.PivotTypeId = instance._pivot.pivotTypeId;
  14110. repObj.IsPivotTree = instance.IsPivotTree;
  14111. repObj.TimeInterval = instance.Interval;
  14112. repObj.FromDate = fromDate;
  14113. repObj.ToDate = toDate;
  14114. repObj.IsTreeExpand = instance._pivot.isDataTreeExpand;
  14115. repObj.ReportTypeId = instance.reportType;
  14116. repObj.TopRecords = instance.topRecords;
  14117. if ($("#txt_totalrecords").val() != "") {
  14118. repObj.TopRecords = Number($("#txt_totalrecords").val());
  14119. }
  14120. if (instance.selectedColumns.length > 0) {
  14121. for (var i = 0; i < instance.selectedColumns.length; i++) {
  14122. var index = instance.selectedColumns.findIndex(x => x.ColumnIndex == i);
  14123. let col = new ReportColumn();
  14124. col.ColumnValue = Number(instance.selectedColumns[index]["ColumnId"]);
  14125. col.ReportColumnName = instance.selectedColumns[index]["ColumnName"];
  14126. col.AliasName = instance.selectedColumns[index]["AliasName"];
  14127. col.DisplayText = instance.selectedColumns[index]["DisplayText"];
  14128. col.DlColumnName = instance.selectedColumns[index]["DlColumnName"];
  14129. col.DataListColumnName = instance.selectedColumns[index]["DataListColumnName"];
  14130. col.ColumnIndex = instance.selectedColumns[index]["ColumnIndex"];
  14131. col.DataType = instance.selectedColumns[index]["DataType"];
  14132. col.AggrFuncId = instance.selectedColumns[index]["Aggregation"];
  14133. col.SortType = instance.selectedColumns[index]["SortOrder"];
  14134. col.SortIndex = instance.selectedColumns[index]["SortIndex"];
  14135. col.Isvisible = instance.selectedColumns[index]["Isvisible"];
  14136. col.GroupBy = instance.selectedColumns[index]["GroupBy"];
  14137. col.IsPrimaryKey = instance.selectedColumns[index]["IsPrimaryKey"];
  14138. col.PivotValueSelected = instance.pivot.PivotValue_Selected;
  14139. col.ColumnFormat = instance.selectedColumns[index]["ColumnFormat"];
  14140. col.YearComparisonType = instance.selectedColumns[index]["YearComparisonType"];
  14141. col.DistinctOn = instance.selectedColumns[index]["DistinctOn"];
  14142. col.IsPivotColumn = instance.selectedColumns[index]["IsPivotColumn"];
  14143. col.IsPivotAggrColumn = instance.selectedColumns[index]["IsPivotAggrColumn"];
  14144. col.IsPivotTableCol = instance.selectedColumns[index]["IsPivotTableCol"];
  14145. col.IsDownload = instance.selectedColumns[index]["IsDownload"];
  14146. col.TableAggrTypeId = instance.selectedColumns[index]["TableAggrTypeId"];
  14147. col.IsNumFormatting = instance.selectedColumns[index]["IsNumFormatting"];
  14148. col.IsRowTotal = instance.selectedColumns[index]["IsRowTotal"];
  14149. col.PivotTableAggrTypeId = instance.selectedColumns[index]["PivotTableAggrTypeId"];
  14150. if (col.ColumnFormat && col.ColumnFormat.toLowerCase() == "default") {
  14151. col.ColumnFormat = '';
  14152. }
  14153. instance.reportColumns_Array(col);
  14154. }
  14155. }
  14156. repObj.ReportColumns = instance.ReportColumns;
  14157. return repObj;
  14158. }
  14159. load_data(table) {
  14160. return __awaiter(this, void 0, void 0, function* () {
  14161. var instance = this;
  14162. var repObj = instance.getReportData();
  14163. yield instance.reportManager.getTableData(repObj).then(function (response) {
  14164. instance.navigationHelper.hideLoading();
  14165. if (response.status == Unibase.Data.Status.Success) {
  14166. if (response.result != "") {
  14167. var res = JSON.parse(response.result);
  14168. instance.tableData = res.Data;
  14169. if (instance.dataTreeRowExpandedColumn.length == 0) {
  14170. if (instance.tableData) {
  14171. instance.table.setData(instance.tableData);
  14172. }
  14173. instance.groupbyData();
  14174. if (instance.reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Chart) {
  14175. if (instance.TenureReport.length == 0) {
  14176. if (res.Data != "") {
  14177. var data = JSON.parse(res.Data);
  14178. instance._chartBuilder.ChartData = data;
  14179. instance._chartBuilder.chart_dataSet();
  14180. }
  14181. }
  14182. }
  14183. }
  14184. else {
  14185. }
  14186. }
  14187. else {
  14188. MessageHelper.Instance().showError("No data found", "div_ReportBuilderErrorMessage");
  14189. return false;
  14190. }
  14191. }
  14192. else {
  14193. MessageHelper.Instance().showError(response.message, "div_ReportBuilderErrorMessage");
  14194. return false;
  14195. }
  14196. });
  14197. instance.loadTableData = 1;
  14198. });
  14199. }
  14200. groupbyData() {
  14201. var instance = this;
  14202. var groupBy_Category = [];
  14203. for (var i = 0; i < instance.selectedColumns.length; i++) {
  14204. var data = instance.selectedColumns[i];
  14205. if (data.GroupByCategory) {
  14206. if (jQuery.inArray(data.AliasName, groupBy_Category) == -1) {
  14207. groupBy_Category.push(data.AliasName);
  14208. }
  14209. }
  14210. }
  14211. if (instance.datatreeIndex_Width == undefined) {
  14212. instance.datatreeIndex_Width = 70;
  14213. }
  14214. var tableData = [];
  14215. if (instance.tableData != "") {
  14216. tableData = JSON.parse(instance.tableData);
  14217. }
  14218. else {
  14219. $(".tabulator-loader").remove();
  14220. }
  14221. let sel_Col = instance.selectedColumns;
  14222. var ScrollPosition = $(".tabulator-tableHolder").scrollTop();
  14223. var autoNumFormatter = function (cell) {
  14224. var row = cell.getRow();
  14225. var rowIndex = row.getPosition(false);
  14226. return (rowIndex + 1);
  14227. };
  14228. instance.tabulatorColumns = [];
  14229. if (sel_Col.length != 0) {
  14230. instance.tabulatorColumns.push({ title: "", formatter: autoNumFormatter, frozen: true, minWidth: 50, width: 60, hozAlign: 'right' });
  14231. let btmCal_noneArray = [];
  14232. let IsAggr = false;
  14233. var tableData;
  14234. if (instance._pivot.pivotTypeId == Unibase.Platform.Analytics.Reports.Enums.PivotType.Pivot) {
  14235. instance.pivotData();
  14236. }
  14237. else if (instance._pivot.pivotTypeId == Unibase.Platform.Analytics.Reports.Enums.PivotType.TimeInterval) {
  14238. instance.tenureData();
  14239. }
  14240. else if (instance._pivot.pivotTypeId == Unibase.Platform.Analytics.Reports.Enums.PivotType.PivotTreeView) {
  14241. instance.pivotData();
  14242. tableData.filter(x => x.haschild == true).forEach(c => c["_children"] = []);
  14243. }
  14244. else {
  14245. if (instance._pivot.pivotTypeId == Unibase.Platform.Analytics.Reports.Enums.PivotType.TreeView) {
  14246. tableData.filter(x => x.haschild == true).forEach(c => c["_children"] = []);
  14247. }
  14248. for (var i = 0; i < sel_Col.length; i++) {
  14249. let sCol = sel_Col[i];
  14250. let Aggr = sCol.TableAggrTypeId;
  14251. let AggrName = instance.getAggregationName(Aggr);
  14252. const colHozAlign = instance.getColHorizontalAlign(sCol);
  14253. if (instance.DataSourceId == 0 || instance.DataSourceId == Platform.DataSources.Enums.DataSource.Sql || instance.DataSourceId == Platform.DataSources.Enums.DataSource.MySql) {
  14254. instance.tabulatorColumns[sCol.ColumnIndex + 1] =
  14255. { title: sCol.DisplayText, field: sCol.AliasName.toLowerCase(), visible: sCol.Isvisible, editableTitle: instance.EditableTitle, headerSort: instance.HeaderSort, bottomCalc: AggrName, bottomCalcParams: { precision: 2 }, hozAlign: colHozAlign };
  14256. }
  14257. else {
  14258. instance.tabulatorColumns[sCol.ColumnIndex + 1] =
  14259. { title: sCol.AliasName, field: sCol.AliasName, visible: sCol.Isvisible, editableTitle: instance.EditableTitle, headerSort: instance.HeaderSort, bottomCalc: AggrName, bottomCalcParams: { precision: 2 }, hozAlign: colHozAlign };
  14260. }
  14261. if (sCol.Width == undefined) {
  14262. delete instance.tabulatorColumns[sCol.ColumnIndex + 1].width;
  14263. }
  14264. if (AggrName != "none") {
  14265. IsAggr = true;
  14266. }
  14267. else {
  14268. delete instance.tabulatorColumns[sCol.ColumnIndex + 1].bottomCalc;
  14269. btmCal_noneArray.push({ ColumnName: sCol.ColumnName });
  14270. }
  14271. }
  14272. }
  14273. instance.tabulatorColumns.push({ title: "LastColumn", field: "LastColumn", visible: false, headerSort: instance.HeaderSort });
  14274. instance.table.options.dataTree = false;
  14275. instance.table.setColumns(instance.tabulatorColumns);
  14276. if (instance.reportid != 0) {
  14277. instance.getSubReports(instance.reportid);
  14278. }
  14279. if (instance.dataTreeRowExpandedColumn.length == 0) {
  14280. instance.table.options.dataTree = true;
  14281. instance.table.setData(tableData);
  14282. }
  14283. if (groupBy_Category.length == 0) {
  14284. instance.table.options.dataTree = false;
  14285. instance.table.setGroupBy("");
  14286. }
  14287. else {
  14288. instance.table.options.dataTree = false;
  14289. instance.table.setGroupBy(groupBy_Category);
  14290. }
  14291. for (i = 0; i < btmCal_noneArray.length; i++) {
  14292. $(".tabulator-calcs-holder").find("[tabulator-field='" + btmCal_noneArray[i].ColumnName + "']").text("");
  14293. }
  14294. if (IsAggr == false) {
  14295. $("#tabulatorReportbuilder .tabulator-footer").addClass("hidden");
  14296. }
  14297. else {
  14298. if (groupBy_Category.length == 0) {
  14299. $("#tabulatorReportbuilder .tabulator-footer").removeClass("hidden");
  14300. }
  14301. }
  14302. instance.EditableTabulatorTitle();
  14303. }
  14304. else {
  14305. instance.table.clearData();
  14306. }
  14307. $(".tabulator-tableHolder").scrollTop(ScrollPosition);
  14308. }
  14309. getColHorizontalAlign(col) {
  14310. let colHozAlign = '';
  14311. if (col.DataType == Reports.Enums.DataType.decimal || col.DataType == Reports.Enums.DataType.int32 || col.DataType == Reports.Enums.DataType.int64) {
  14312. colHozAlign = 'right';
  14313. }
  14314. else if (col.DataType == Reports.Enums.DataType.date || col.DataType == Reports.Enums.DataType.dateTime) {
  14315. colHozAlign = 'center';
  14316. }
  14317. else {
  14318. colHozAlign = 'left';
  14319. }
  14320. return colHozAlign;
  14321. }
  14322. getTreeViewData(reportresponse) {
  14323. var instance = this;
  14324. if (reportresponse.result.ReportJsonData.Result.Data != "") {
  14325. let parentrecords = [];
  14326. let reportjsondata = JSON.parse(reportresponse.result.ReportJsonData.Result.Data);
  14327. parentrecords = reportjsondata.filter(function (col) {
  14328. return col.parentid == reportresponse.result.ReportInfo.PivotValue;
  14329. });
  14330. if (parentrecords.length == 0) {
  14331. parentrecords = reportjsondata;
  14332. }
  14333. for (var p = 0; p < parentrecords.length; p++) {
  14334. let childrecords = _children(parentrecords[p].childid);
  14335. if (childrecords != undefined) {
  14336. parentrecords[p]["_children"] = [];
  14337. parentrecords[p]._children = childrecords;
  14338. }
  14339. }
  14340. function _children(childid) {
  14341. let childrecords = instance.gettreeChildRecords(reportjsondata, childid);
  14342. if (childrecords.length > 0) {
  14343. for (var c = 0; c < childrecords.length; c++) {
  14344. let subchilds = _children(childrecords[c].childid);
  14345. if (subchilds != undefined) {
  14346. childrecords[c]["_children"] = [];
  14347. childrecords[c]._children = subchilds;
  14348. }
  14349. }
  14350. return childrecords;
  14351. }
  14352. }
  14353. return parentrecords;
  14354. }
  14355. }
  14356. gettreeChildRecords(reportjsondata, childid) {
  14357. return reportjsondata.filter(function (col) {
  14358. return col.parentid == childid;
  14359. });
  14360. }
  14361. getSubReports(reportid) {
  14362. var instance = this;
  14363. instance.reportManager.getSubReports(reportid).then(function (response) {
  14364. if (response.status == Unibase.Data.Status.Success && response.result && response.result.length) {
  14365. var subreportdata = response.result;
  14366. instance.subreportdata = subreportdata;
  14367. if (subreportdata.length > 0) {
  14368. var subdata = subreportdata.find(s => s.RowClick == true);
  14369. if (subdata) {
  14370. var hideIcon = function (cell, formatterParams, onRendered) {
  14371. return "<i class='fa fa-eye'></i>";
  14372. };
  14373. instance.table.addColumn({ formatter: hideIcon, width: 5, title: "", headerSort: false }, true);
  14374. }
  14375. }
  14376. }
  14377. });
  14378. }
  14379. changeAliasName_table(columnId, aliasName) {
  14380. var instance = this;
  14381. let lowercase_ColumnName = aliasName;
  14382. if (instance.DataSourceId == 0 || instance.DataSourceId == Platform.DataSources.Enums.DataSource.Sql || instance.DataSourceId == Platform.DataSources.Enums.DataSource.MySql) {
  14383. lowercase_ColumnName = aliasName.toLowerCase();
  14384. }
  14385. let Index = instance.getIndexByAliasName_selectedColumnsArray(aliasName);
  14386. let colName = instance.selectedColumns[Index].ColumnName;
  14387. let _aliasText = $("#txtAliasName_" + aliasName).val();
  14388. let changed_aliasText = _aliasText.trim().toLocaleLowerCase();
  14389. let sortHtml = "";
  14390. if (changed_aliasText != "") {
  14391. if (Index > -1) {
  14392. if (changed_aliasText.toLocaleLowerCase() == "pk_id") {
  14393. $("#txtAliasName_" + aliasName).val(colName);
  14394. return MessageHelper.Instance().showError('Can not change pk_id as aliasname', 'div_ReportBuilderErrorMessage');
  14395. }
  14396. if (changed_aliasText.indexOf(' ') >= 0) {
  14397. $("#txtAliasName_" + aliasName).val(colName);
  14398. return MessageHelper.Instance().showError('Please Remove Spaces Form "' + changed_aliasText + '"', 'div_ReportBuilderErrorMessage');
  14399. }
  14400. var sCols = instance.selectedColumns.find(s => s.AliasName == changed_aliasText) ? true : false;
  14401. if (sCols) {
  14402. $("#txtAliasName_" + aliasName).val(colName);
  14403. return instance.error(changed_aliasText);
  14404. }
  14405. $("#selectedColumns").find("#column_" + colName + "_block").attr("id", "column_" + _aliasText + "_block");
  14406. $("#column_" + colName + "_block").find(".dsl-block-name").attr("data-report-aliasname", changed_aliasText);
  14407. $("#" + aliasName + "_EyeIcon").attr("id", changed_aliasText + "_EyeIcon");
  14408. $("#" + changed_aliasText + "_EyeIcon").attr("onclick", "Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().showOrHideColumn_table(" + columnId + ",'" + changed_aliasText + "')");
  14409. $("#txtAliasName_" + aliasName).attr("onchange", "Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().changeAliasName_table(" + columnId + ",'" + changed_aliasText + "')");
  14410. $("#txtAliasName_" + aliasName).attr("id", "txtAliasName_" + changed_aliasText);
  14411. instance.selectedColumns[Index].AliasName = changed_aliasText;
  14412. if (instance.SearchColumns) {
  14413. let searchColumns = instance.SearchColumns.split('|');
  14414. let srchIdx = searchColumns.indexOf(aliasName);
  14415. if (srchIdx != -1) {
  14416. searchColumns[srchIdx] = changed_aliasText;
  14417. instance.SearchColumns = searchColumns.join("|");
  14418. }
  14419. }
  14420. this._chartBuilder.loadSortColumnsSelect2();
  14421. this._chartBuilder.loadDynamicFilterSelect(this.showDynamicFilters);
  14422. this._chartBuilder.loadSearchSelect2();
  14423. let sortIdx = this.SortColumns.findIndex(x => x.DisplayText == aliasName);
  14424. let dyfilIdx = this.dynamicFilters.findIndex(x => x.IsFilterableColumn == aliasName);
  14425. if (sortIdx != -1)
  14426. this.SortColumns[sortIdx].DisplayText = changed_aliasText;
  14427. if (dyfilIdx != -1)
  14428. this.dynamicFilters[dyfilIdx].IsFilterableColumn = changed_aliasText;
  14429. for (var i = 0; i < this.SortColumns.length; i++) {
  14430. let selCol = this.selectedColumns.find(x => x.AliasName == this.SortColumns[i].DisplayText);
  14431. if (selCol)
  14432. sortHtml += this._reportBuilderTemplate.loadSortSelect2Column(selCol.ColumnId, selCol.AliasName, selCol.DataType);
  14433. }
  14434. $("#sort_selected_columns").html(sortHtml);
  14435. this.stringifyed_SortColumns = this.getSortColumnsStringify();
  14436. $("#dynamic-list-group-wrapper").empty();
  14437. for (var i = 0; i < this.dynamicFilters.length; i++) {
  14438. let currentFilter = this.dynamicFilters[i];
  14439. let dyfilterHtml = "";
  14440. let selCol = this.selectedColumns.find(x => x.AliasName == currentFilter.IsFilterableColumn);
  14441. if (selCol)
  14442. dyfilterHtml += this._reportBuilderTemplate.loadDynamicFilterColumn(selCol.ColumnId, selCol.AliasName, selCol.DataType);
  14443. $("#dynamic-list-group-wrapper").append(dyfilterHtml);
  14444. if (selCol && selCol.DataType == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime) {
  14445. $(".dynamic-filter-icon-" + parseInt(selCol.ColumnId)).addClass("hidden");
  14446. if (currentFilter.IsDefault)
  14447. $("#dynamicfilter-defaultdate_" + currentFilter.IsFilterableColumn).prop("checked", true);
  14448. else if (currentFilter.IsPartition)
  14449. $("#chk_ispartition_" + currentFilter.IsFilterableColumn).prop("checked", true);
  14450. }
  14451. }
  14452. instance.load_data(instance.table);
  14453. }
  14454. }
  14455. else {
  14456. $("[tabulator-field = '" + lowercase_ColumnName + "']").find(".tabulator-title-editor").val(colName);
  14457. }
  14458. }
  14459. changeDisplayText_table(columnId, aliasName) {
  14460. var instance = this;
  14461. let displayText = $("[tabulator-field = '" + aliasName + "']").find(".tabulator-title-editor").val().toString();
  14462. if (displayText) {
  14463. let sIndex = instance.getIndexByAliasName_selectedColumnsArray(aliasName);
  14464. if (sIndex > -1) {
  14465. instance.selectedColumns[sIndex].DisplayText = displayText;
  14466. $(".tabulator-col-title").find("#DisplayText_" + aliasName).val(displayText);
  14467. $(".tabulator-col-title").find("#DisplayText_" + aliasName).focus();
  14468. $("#selectedColumns #column_" + aliasName + "_block").find(".dsl-block-name").text(displayText);
  14469. }
  14470. let xIdx = this._chartBuilder.xaxisColumns.findIndex(x => x.AliasName == aliasName);
  14471. if (xIdx > -1) {
  14472. this._chartBuilder.xaxisColumns[xIdx].DisplayText = displayText;
  14473. }
  14474. let yIdx = this._chartBuilder.yaxisColumns.findIndex(x => x.AliasName == aliasName);
  14475. if (yIdx > -1) {
  14476. this._chartBuilder.yaxisColumns[yIdx].DisplayText = displayText;
  14477. }
  14478. let cbcIdx = this._chartBuilder.chartBaseColumns.findIndex(x => x.AliasName == aliasName);
  14479. if (cbcIdx > -1) {
  14480. this._chartBuilder.chartBaseColumns[cbcIdx].DisplayText = displayText;
  14481. }
  14482. let cscIdx = this._chartBuilder.ChartSelectedColumns.findIndex(x => x.AliasName == aliasName);
  14483. if (cscIdx > -1) {
  14484. this._chartBuilder.ChartSelectedColumns[cscIdx].DisplayText = displayText;
  14485. }
  14486. }
  14487. }
  14488. showOrHideColumn_table(ColumnId, AliasName) {
  14489. var instance = this;
  14490. let Index = instance.getIndexByAliasName_selectedColumnsArray(AliasName);
  14491. let col = instance.selectedColumns[Index];
  14492. if (instance.selectedColumns[Index].Isvisible == true) {
  14493. instance.selectedColumns[Index].Isvisible = false;
  14494. var { hiddenColumnHtml } = instance.getSelectedColumnHtml(col, Index, '');
  14495. $("#selectedColumns_hidden").append(hiddenColumnHtml);
  14496. $('#column_' + AliasName + '_block').addClass("d-none").find('#ShowOrHideColumn').text("Show Column");
  14497. if (instance.selectedColumns[Index].DataType == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime)
  14498. instance.selectedColumns[Index].ColumnFormat = "";
  14499. }
  14500. else {
  14501. $('#' + AliasName + '_EyeIcon').addClass('d-none');
  14502. instance.selectedColumns[Index].Isvisible = true;
  14503. $('#column_' + AliasName + '_block').removeClass("d-none").find('#ShowOrHideColumn').text("Hide Column");
  14504. $('#column_' + AliasName + '_block_hidden').remove();
  14505. if (instance.selectedColumns[Index].DataType == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime)
  14506. instance.selectedColumns[Index].ColumnFormat = "Default";
  14507. }
  14508. instance.load_data(instance.table);
  14509. }
  14510. updateSelectedColumnIndex() {
  14511. const instance = this;
  14512. $('#selectedColumns .dsl-block').each(function (index, item) {
  14513. const itemName = $(item).attr('id').slice(7).replace('_block', '');
  14514. const colIndex = instance.selectedColumns.findIndex(x => x.AliasName == itemName);
  14515. if (colIndex > -1) {
  14516. instance.selectedColumns[colIndex].ColumnIndex = index;
  14517. }
  14518. });
  14519. }
  14520. isDistinct(columnId, aliasName) {
  14521. var instance = this;
  14522. let index = instance.getIndexByAliasName_selectedColumnsArray(aliasName);
  14523. if (index > -1) {
  14524. if ($("#isDistinct_" + columnId).prop("checked") == true) {
  14525. instance.selectedColumns[index].DistinctOn = true;
  14526. }
  14527. else {
  14528. instance.selectedColumns[index].DistinctOn = false;
  14529. }
  14530. }
  14531. }
  14532. changeSortBy_table(columnId, aliasName, sortType) {
  14533. var instance = this;
  14534. if (sortType == 'Asc') {
  14535. instance.table.setSort(aliasName, "asc");
  14536. $("#dsl_column_" + aliasName + " .sort-icon").removeClass('la-sort-down');
  14537. $("#dsl_column_" + aliasName + " .sort-icon").addClass('la-sort-up');
  14538. }
  14539. else {
  14540. instance.table.setSort(aliasName, "desc");
  14541. $("#dsl_column_" + aliasName + " .sort-icon").addClass('la-sort-down');
  14542. $("#dsl_column_" + aliasName + " .sort-icon").removeClass('la-sort-up');
  14543. }
  14544. let index = instance.getIndexByAliasName_selectedColumnsArray(aliasName);
  14545. instance.selectedColumns[index].SortOrder = sortType;
  14546. let sortcolindex = instance.getIndexByDisplayText_sortColumnsArray(aliasName);
  14547. if (instance.SortColumns.length != 0) {
  14548. instance.SortColumns[sortcolindex].SortOrder = sortType;
  14549. }
  14550. if (instance.stringifyed_SortColumns) {
  14551. let ss = JSON.parse(instance.stringifyed_SortColumns);
  14552. if (ss.length > 0) {
  14553. let sindex = ss.findIndex(s => s.Name == aliasName);
  14554. ss[sindex].Order = sortType;
  14555. }
  14556. instance.stringifyed_SortColumns = JSON.stringify(ss);
  14557. }
  14558. instance.load_data(instance.table);
  14559. if (instance.reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Chart) {
  14560. var cindex = instance._chartBuilder.getIndexByDisplayText_ChartSelectedColumns(aliasName);
  14561. if (cindex > -1) {
  14562. instance._chartBuilder.ChartSelectedColumns[cindex].SortOrder = sortType;
  14563. instance._chartBuilder.ChartSelectedColumns[cindex].SortIndex = instance.SortColumns.length;
  14564. }
  14565. instance._chartBuilder.chartPreview(instance._chartBuilder.ChartTypeName, instance._chartBuilder.ChartTypeId);
  14566. }
  14567. }
  14568. changeAggregation_table(aliasName, aggrValue, type) {
  14569. var instance = this;
  14570. let Index = instance.getIndexByAliasName_selectedColumnsArray(aliasName);
  14571. if (type == 1 || instance.reportType == Reports.Enums.ReportType.Chart)
  14572. instance.selectedColumns[Index].Aggregation = aggrValue;
  14573. else
  14574. instance.selectedColumns[Index].TableAggrTypeId = aggrValue;
  14575. if (instance.reportType == Analytics.Reports.Enums.ReportType.Chart) {
  14576. let CIndex = instance.getIndexByAliasName_chartSelectedColumnsArray(aliasName);
  14577. if (CIndex > -1)
  14578. instance._chartBuilder.ChartSelectedColumns[CIndex].Aggregation = aggrValue;
  14579. if (aggrValue == Unibase.Platform.Analytics.Reports.Enums.AggregationType.month || aggrValue == Unibase.Platform.Analytics.Reports.Enums.AggregationType.year) {
  14580. let colName = instance.selectedColumns[CIndex].ColumnName;
  14581. let colId = instance.selectedColumns[CIndex].ColumnValue;
  14582. }
  14583. instance.load_data(instance.table);
  14584. instance._chartBuilder.chartPreview(instance._chartBuilder.ChartTypeName, instance._chartBuilder.ChartTypeId);
  14585. }
  14586. else {
  14587. instance.load_data(instance.table);
  14588. }
  14589. }
  14590. changeColumnFormat_table(DisplayText, ColumnFormat) {
  14591. let format;
  14592. if (ColumnFormat == "Default")
  14593. format = "Default";
  14594. if (ColumnFormat == "No Format")
  14595. format = "No Format";
  14596. else if (ColumnFormat == Unibase.Platform.Analytics.Enums.DateFormat.hhmmss)
  14597. format = "hh:mi:ss";
  14598. else if (ColumnFormat == Unibase.Platform.Analytics.Enums.DateFormat.hhmmssAM)
  14599. format = "hh:mi:ss AM";
  14600. else if (ColumnFormat == Unibase.Platform.Analytics.Enums.DateFormat.ddmmyyyyhhmmss)
  14601. format = "dd/mm/yyyy hh:mi:ss";
  14602. else if (ColumnFormat == Unibase.Platform.Analytics.Enums.DateFormat.ddmmyyyyhhmm)
  14603. format = "dd/mm/yyyy hh:mi";
  14604. else if (ColumnFormat == Unibase.Platform.Analytics.Enums.DateFormat.ddmmyyyyhhmmssAM)
  14605. format = "dd/mm/yyyy hh:mi:ss AM";
  14606. else if (ColumnFormat == Unibase.Platform.Analytics.Enums.DateFormat.momddyyyyhhmmssAM)
  14607. format = "Mon dd, yyyy hh:mi:ss AM";
  14608. else
  14609. format = ColumnFormat;
  14610. var instance = this;
  14611. let Index = instance.getIndexByAliasName_selectedColumnsArray(DisplayText);
  14612. instance.selectedColumns[Index].ColumnFormat = format;
  14613. instance.load_data(instance.table);
  14614. }
  14615. changeColumnIndex_table(DisplayText) {
  14616. var instance = this;
  14617. let Index = instance.getIndexByAliasName_selectedColumnsArray(DisplayText);
  14618. let selCols = instance.selectedColumns;
  14619. let ColIndex = 0;
  14620. for (var i = 0; i < selCols.length; i++) {
  14621. if (selCols[i].ColumnIndex > ColIndex) {
  14622. ColIndex = selCols[i].ColumnIndex;
  14623. }
  14624. }
  14625. if (selCols.length == 1) {
  14626. ColIndex = 0;
  14627. }
  14628. else {
  14629. ColIndex = ColIndex + 1;
  14630. }
  14631. instance.selectedColumns[Index].ColumnIndex = ColIndex;
  14632. }
  14633. IsContactColumn(columnId, aliasName) {
  14634. var instance = this;
  14635. let selected_Index = instance.getIndexByAliasName_selectedColumnsArray(aliasName);
  14636. let IsContactColumn = instance.selectedColumns[selected_Index].IsContactColumn;
  14637. instance.selectedColumns[selected_Index].IsContactColumn = !IsContactColumn;
  14638. }
  14639. IsFilterableColumn_table(columnId, aliasName, dataTypeId) {
  14640. var instance = this;
  14641. let selected_Index = instance.getIndexByAliasName_selectedColumnsArray(aliasName);
  14642. if (dataTypeId == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime) {
  14643. $("#DropDown_IsFilterable_" + aliasName).removeClass("hidden");
  14644. selected_Index > -1 && (instance.selectedColumns[selected_Index].IsFilterable = true);
  14645. }
  14646. if (selected_Index == -1) {
  14647. Unibase.Platform.Analytics.Reports.DynamicFilter.Instance().dataListColumnName = aliasName;
  14648. selected_Index = this.datalistColumnsResponseData.findIndex(x => { return x.AliasName == aliasName; });
  14649. }
  14650. Unibase.Platform.Analytics.Components.ReportViewer.Instance().navigationHelper.popup(selected_Index, "", Unibase.Platform.Analytics.Reports.DynamicFilter.Instance(), null, Platform.Helpers.Size.Auto);
  14651. }
  14652. loadFormats(DataType, ColId, DisplayText) {
  14653. var instance = this;
  14654. var html = "";
  14655. if (instance._columnFormat.loadFormats(DataType).length > 0) {
  14656. var formats = instance._columnFormat.loadFormats(DataType);
  14657. for (var i = 0; i < formats.length; i++) {
  14658. html += `<a class="dropdown-item Format_` + DisplayText + `_` + formats[i].id + `" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().changeColumnFormat_table('` + DisplayText + `','` + formats[i].format + `')" id="Format_` + DisplayText + `_` + formats[i].id + `" onclick="" href="javascript: ; "><i class="ri-checkbox-blank-circle-line dropdown-icon" id="DropDown_ColumnFormat_` + DisplayText + `_` + formats[i].id + `" id="` + DisplayText.replace(" ", "") + `"></i><span class="text-uppercase">` + formats[i].format + `</span></a>`;
  14659. }
  14660. }
  14661. return html;
  14662. }
  14663. removeSelectedColumn_table(ColumnId, AliasName) {
  14664. var instance = this;
  14665. var isChartBaseColumn = false;
  14666. var cbcIndex = instance._chartBuilder.chartBaseColumns.findIndex(csc => csc.AliasName === AliasName);
  14667. let cscIdx = instance._chartBuilder.ChartSelectedColumns.findIndex(csc => csc.AliasName === AliasName);
  14668. var XIndex = instance._chartBuilder.xaxisColumns.findIndex(x => x.AliasName === AliasName);
  14669. var YIndex = instance._chartBuilder.yaxisColumns.findIndex(x => x.AliasName === AliasName);
  14670. var GIndex = instance._chartBuilder.groupColumns.findIndex(x => x.AliasName === AliasName);
  14671. var LCIndex = instance._chartBuilder.lineChartColumns.findIndex(csc => csc.AliasName === AliasName);
  14672. if (cbcIndex != -1) {
  14673. instance._chartBuilder.chartBaseColumns.splice(cbcIndex, 1);
  14674. isChartBaseColumn = true;
  14675. if (cscIdx != -1 && XIndex == -1 && YIndex == -1 && GIndex == -1 && LCIndex == -1) {
  14676. instance._chartBuilder.ChartSelectedColumns.splice(cscIdx, 1);
  14677. }
  14678. }
  14679. if (XIndex != -1 && !isChartBaseColumn) {
  14680. instance._chartBuilder.xaxisColumns.splice(XIndex, 1);
  14681. if (YIndex == -1 && GIndex == -1 && LCIndex == -1 && cbcIndex == -1 && cscIdx != -1)
  14682. instance._chartBuilder.ChartSelectedColumns.splice(cscIdx, 1);
  14683. }
  14684. if (YIndex != -1 && !isChartBaseColumn) {
  14685. instance._chartBuilder.yaxisColumns.splice(YIndex, 1);
  14686. if (XIndex == -1 && GIndex == -1 && LCIndex == -1 && cbcIndex == -1 && cscIdx != -1)
  14687. instance._chartBuilder.ChartSelectedColumns.splice(cscIdx, 1);
  14688. }
  14689. if (GIndex != -1 && !isChartBaseColumn) {
  14690. instance._chartBuilder.groupColumns.splice(GIndex, 1);
  14691. if (XIndex == -1 && YIndex == -1 && LCIndex == -1 && cbcIndex == -1 && cscIdx != -1)
  14692. instance._chartBuilder.ChartSelectedColumns.splice(cscIdx, 1);
  14693. }
  14694. if (LCIndex != -1 && !isChartBaseColumn) {
  14695. instance._chartBuilder.lineChartColumns.splice(LCIndex, 1);
  14696. if (XIndex == -1 && YIndex == -1 && GIndex == -1 && cbcIndex == -1 && cscIdx != -1)
  14697. instance._chartBuilder.ChartSelectedColumns.splice(cscIdx, 1);
  14698. }
  14699. if (LCIndex == -1 && GIndex == -1 && YIndex == -1 && XIndex == -1 && cbcIndex == -1 && cscIdx != -1) {
  14700. instance._chartBuilder.ChartSelectedColumns.splice(cscIdx, 1);
  14701. }
  14702. var SC_Index = instance.getIndexByAliasName_selectedColumnsArray(AliasName);
  14703. let isGroupByCategory = this.selectedColumns[SC_Index].GroupByCategory;
  14704. if (SC_Index != -1) {
  14705. let dyfil = this.dynamicFilters.find(x => x.IsFilterableColumn == AliasName);
  14706. let srtCol = this.SortColumns.find(x => x.DisplayText === AliasName);
  14707. if (dyfil)
  14708. return MessageHelper.Instance().showError("Please remove the dynamic filter associated with this column, before trying to remove the column", 'div_ReportBuilderErrorMessage');
  14709. if (instance.SearchColumns) {
  14710. let srchCol = instance.SearchColumns.split("|");
  14711. let srchIdx = srchCol.indexOf(AliasName);
  14712. if (srchIdx != -1)
  14713. return MessageHelper.Instance().showError(`${this.selectedColumns[SC_Index].AliasName} is used in search column, please remove from search columns and try again`, 'div_ReportBuilderErrorMessage');
  14714. }
  14715. if (srtCol && !isGroupByCategory && instance.reportType != Reports.Enums.ReportType.Chart)
  14716. return MessageHelper.Instance().showError(`${this.selectedColumns[SC_Index].AliasName} is used in sort column, please remove from sort column and try again`, 'div_ReportBuilderErrorMessage');
  14717. else if (instance.reportType == Reports.Enums.ReportType.Chart && srtCol)
  14718. return;
  14719. if (isGroupByCategory && event.target.closest("#categories_selected_columns")) {
  14720. this.selectedColumns[SC_Index].GroupByCategory = false;
  14721. $("#categories_selected_columns #dsl_column_" + AliasName).remove();
  14722. $("#sort_selected_columns #dsl_column_" + AliasName).remove();
  14723. this.removeAndUpdateStringfiedSortColumns(AliasName);
  14724. instance.load_data(instance.table);
  14725. return "";
  14726. }
  14727. }
  14728. if (!isChartBaseColumn) {
  14729. instance.selectedColumns.splice(SC_Index, 1);
  14730. instance.table.deleteColumn(AliasName);
  14731. instance.loadSelectedDataListColumns();
  14732. }
  14733. var GTableIndex = instance.groupBy_Category.findIndex(x => x.AliasName === AliasName);
  14734. if (GTableIndex != -1) {
  14735. instance.groupBy_Category.splice(GTableIndex, 1);
  14736. instance.setSelectOption('groupby_select');
  14737. instance.groupbyData();
  14738. }
  14739. instance.removeAndUpdateStringfiedSortColumns(AliasName);
  14740. instance._chartBuilder.enableOrDisableChartIcons();
  14741. var sindex = instance.SortColumns.findIndex(function (s) {
  14742. return AliasName == s.AliasName;
  14743. });
  14744. if (sindex > -1) {
  14745. instance.removeSelectedSortColumn_table(ColumnId, AliasName);
  14746. }
  14747. else {
  14748. instance.load_data(instance.table);
  14749. }
  14750. this._chartBuilder.loadSortColumnsSelect2();
  14751. this._chartBuilder.loadDynamicFilterSelect(instance.showDynamicFilters);
  14752. this._chartBuilder.loadSearchSelect2();
  14753. this._pivot.loadPivotSelect2s();
  14754. }
  14755. removeSelectedSortColumn_table(columnId, aliasName) {
  14756. var instance = this;
  14757. let sortIndex = instance.getIndexByAliasName_selectedColumnsArray(aliasName);
  14758. instance.selectedColumns[sortIndex].SortOrder = "none";
  14759. var index = instance.SortColumns.findIndex(function (s) {
  14760. return aliasName == s.DisplayText;
  14761. });
  14762. instance.SortColumns.splice(index, 1);
  14763. instance.stringifyed_SortColumns = "";
  14764. if (instance.SortColumns.length != 0) {
  14765. var _sort = [];
  14766. for (var i = 0; i < instance.SortColumns.length; i++) {
  14767. instance.SortColumns[i].SortIndex = i;
  14768. let s = instance.SortColumns[i];
  14769. _sort.push({ Name: s.DisplayText, Order: s.SortOrder });
  14770. }
  14771. instance.stringifyed_SortColumns = JSON.stringify(_sort);
  14772. }
  14773. instance.load_data(instance.table);
  14774. }
  14775. setSelectOption(selectId) {
  14776. $('#' + selectId).prop('selectedIndex', 0);
  14777. $('#' + selectId).select2({
  14778. allowClear: true
  14779. });
  14780. $('#select2-' + selectId + '-container .select2-selection__clear').hide();
  14781. }
  14782. loadInstalledApps() {
  14783. var url = _appsettings.server_url() + '/apis/v4/unibase/platform/apps/InstalledAppAutocomplete';
  14784. AutoCompleteHelper.getHelper().Create("#InstalledApp_AutoComplete", "#hfAutoComplete_InstalledApp", url, null);
  14785. AutoCompleteHelper.getHelper().Create("#dependecyapps", "#hfAutoCompleteId_dependency", url, null);
  14786. }
  14787. loadConnectedApps() {
  14788. Unibase.Platform.Apps.Managers.AppManager.Instance().getInstalledApps().then((res) => {
  14789. this.connectedAppsData = [];
  14790. for (var i = 0; i < res.result.length; i++) {
  14791. this.connectedAppsData.push({ id: res.result[i].InstalledAppId, text: res.result[i].AppTitle });
  14792. }
  14793. $("#connectedapps").select2({
  14794. placeholder: 'Select connected apps',
  14795. data: this.connectedAppsData,
  14796. });
  14797. });
  14798. }
  14799. loadAddedColumnFilter() {
  14800. let dataOptions = [
  14801. { id: 1, text: "All added columns", selected: true },
  14802. { id: 2, text: "Contact columns" },
  14803. { id: 3, text: "PrimaryKey columns" }
  14804. ];
  14805. $("#filter-by").select2({
  14806. placeholder: 'Filter By',
  14807. data: dataOptions
  14808. });
  14809. }
  14810. loadTableToggleButtons() {
  14811. var instance = this;
  14812. $("#PivotIcon").click(function () {
  14813. var DataListId = instance.DataListId;
  14814. $("#DatalistColumns_Search").val("");
  14815. instance._pivot.load(0, null, null);
  14816. });
  14817. }
  14818. reportRoleSetting() {
  14819. var instance = this;
  14820. instance.navigationHelper.popup(0, '', Unibase.Platform.Analytics.Reports.ReportRoleSettings.Instance(), null, Platform.Helpers.Size.Medium);
  14821. }
  14822. EditableTabulatorTitle() {
  14823. var instance = this;
  14824. if (instance.EditableTitle == true) {
  14825. let sel_Col = instance.selectedColumns;
  14826. var len = sel_Col.length;
  14827. for (var i = 0; i < len; i++) {
  14828. let colId = sel_Col[i].ColumnId;
  14829. let aliasName = sel_Col[i].AliasName.replace(" ", "");
  14830. let colName = sel_Col[i].ColumnName;
  14831. let DataType = sel_Col[i].DataType;
  14832. let html = "";
  14833. if (DataType == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime || Unibase.Platform.Analytics.Reports.Enums.DataType.decimal) {
  14834. html = `<div class="dropdown column-dropdown"><span class="dropdown-toggle no-caret pl-1 column-dpmenu-icon" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().tabulatorColumnMoreIcon_Click(` + colId + `,'` + aliasName + `',` + DataType + `,event)"><span class="tabulator-header-menu-button">&#8942;</span></span>
  14835. <ul class="dropdown-menu column-dp-menu dropdown-radio dropdown-menu_` + colId + ` open-left-side">
  14836. <li><h6 class="dropdown-header" href="javascript:;" >` + colName + `</h6></li><div class="dropdown-divider"></div>
  14837. <li class="dropdown-item"><input type="textbox" id="txtAliasName_` + aliasName + `" value="` + aliasName + `" onchange="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().changeAliasName_table(` + colId + `,'` + aliasName + `')" placeholder="displaytext"/></li>
  14838. <li id="dropdown_Aggregation_` + aliasName + `">
  14839. <div class="sub-dropdown-menu show-on-hover">
  14840. <a class="dropdown-item" href="javascript:;" onclick=""><span id="AggregateOperation"> Aggregation </span></a>
  14841. <div class="dropdown-menu dropdown-radio open-left-side"></div></div></li>
  14842. <li id="dropdown_Table_Aggregation_` + aliasName + `">
  14843. <div class="sub-dropdown-menu show-on-hover">
  14844. <a class="dropdown-item" href="javascript:;" onclick=""><span id="TableAggregateOperation"> Table Aggregation </span></a>
  14845. <div class="dropdown-menu dropdown-radio open-left-side"></div></div></li>
  14846. <li><a class="dropdown-item pr-0 hidden" href="javascript:;" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().IsPrimaryKey(` + colId + `,'` + aliasName + `')"><span id="IsPrimaryKeyColumn hidden">IsPrimaryKey<i class="dropdown-icon fa fa-check pull-right hidden text-primary" id="DropDown_IsPrimaryKey_` + aliasName + `"></i></span> </a></li>
  14847. <li><a class="dropdown-item pr-0 hidden" href="javascript:;" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().IsContactColumn(` + colId + `,'` + aliasName + `')"><span id="IsContactColumn" class="flex-center">IsContactColumn<i class="dropdown-icon fa fa-check pull-right hidden text-primary" id="DropDown_IsContactColumn_` + aliasName + `"></i></span></a></li>
  14848. <li id="ColumnFormat_` + aliasName + `"><div class="sub-dropdown-menu show-on-hover"><a class="dropdown-item" href="javascript:;" onclick=""><span id="ColumnFormat">Date Format </span></a><div class="dropdown-menu dropdown-radio open-left-side biz-custom-scrollbar h-350p " style=""></div></div></li><div class="dropdown-divider"></div><li><a class="dropdown-item" href="javascript:;" onclick="Unibase.Platform.Analytics.Reports.SubReport.Instance().linkreport('` + aliasName + `')">Link Report</a></li><div class="dropdown-divider"></div>
  14849. <li><a class="dropdown-item" href="javascript:;" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().showOrHideColumn_table(` + colId + `,'` + aliasName + `')"><span id="ShowOrHideColumn">Hide Column</span> </a></li>
  14850. <li><a class="dropdown-item flex-between-center" href="javascript:;" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().isDistinct(` + colId + `,'` + aliasName + `')"><label class="distinct-label" for="isDistinct_${colId}">IsDistinct</label><input type="checkbox" class="pull-right" id="isDistinct_` + colId + `"></a></li>
  14851. <li><a class="dropdown-item flex-between-center" href="javascript:;" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().isDownload(` + colId + `,'` + aliasName + `')"><label class="distinct-label" for="isDownload_${colId}">IsDownload</label><input type="checkbox" class="pull-right" id="isDownload_` + colId + `"></a></li>
  14852. <li><a class="dropdown-item flex-between-center isnumformatting hidden" href="javascript:;" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().isNumFormatting(` + colId + `,'` + aliasName + `')"><label class="distinct-label" for="isNumFormatting_${colId}">Number Formatting</label><input type="checkbox" class="pull-right" id="isNumFormatting_` + colId + `"></a></li>
  14853. <li><a class="dropdown-item flex-between-center isrowtotal hidden" href="javascript:;" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().isRowTotal(` + colId + `,'` + aliasName + `')"><label class="rowtotal-label" for="isRowTotal_${colId}">IsRowTotal</label><input type="checkbox" class="pull-right" id="isRowTotal_` + colId + `"></a></li>
  14854. <li><a class="dropdown-item flex-between-center isimageurl hidden" href="javascript:;" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().isImageUrl(` + colId + `,'` + aliasName + `')"><label class="rowtotal-label" for="isimageurl_${colId}">Is Image Url</label><input type="checkbox" class="pull-right" id="isimageurl_` + colId + `"></a></li>
  14855. <li><a class="dropdown-item link-danger" href="javascript:;" onclick=""><span id="RemoveSelectedColumn" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().removeSelectedColumn_table(` + colId + `,'` + aliasName + `')"> Remove Column </span></a></li></ul></div>`;
  14856. }
  14857. else {
  14858. html = `<div class="dropdown column-dropdown"><span class="dropdown-toggle no-caret pl-1 column-dpmenu-icon" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().tabulatorColumnMoreIcon_Click(` + colId + `,'` + aliasName + `',` + DataType + `,event)"><span class="tabulator-header-menu-button">&#8942;</span></span>
  14859. <ul class="dropdown-menu column-dp-menu dropdown-radio dropdown-menu-right dropdown-menu_` + colId + ` open-left-side"><li><h6 class="dropdown-header">` + colName + `</h6></li><div class="dropdown-divider"></div>
  14860. <li><input type="textbox" id="txtAliasName_` + aliasName + `" value="` + aliasName + `" onchange="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().changeAliasName_table(` + colId + `,'` + aliasName + `')" placeholder="displaytext"/></li>
  14861. <li id="dropdown_Aggregation_` + aliasName + `"><div class="sub-dropdown-menu show-on-hover"><a class="dropdown-item" href="javascript:;" onclick=""><span id="AggregateOperation"> Aggregation </span></a><div class="dropdown-menu dropdown-radio open-left-side"></div></div></li>
  14862. <li id="dropdown_Table_Aggregation_` + aliasName + `">
  14863. <div class="sub-dropdown-menu show-on-hover">
  14864. <a class="dropdown-item" href="javascript:;" onclick=""><span id="TableAggregateOperation"> Table Aggregation </span></a>
  14865. <div class="dropdown-menu dropdown-radio open-left-side"></div></div></li>
  14866. <li><a class="dropdown-item pr-0 hidden" href="javascript:;" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().IsFilterableColumn_table(` + colId + `,'` + aliasName + `',` + DataType + `)"><span id="IsFilterableColumn">IsFilterable<i class="dropdown-icon fa fa-check pull-right hidden text-primary" id="DropDown_IsFilterable_` + aliasName + `"></i></span> </a></li>
  14867. <li><a class="dropdown-item pr-0" href="javascript:;" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().IsPrimaryKey(` + colId + `,'` + aliasName + `')"><span id="IsPrimaryKeyColumn">IsPrimaryKey<i class="dropdown-icon fa fa-check pull-right hidden text-primary" id="DropDown_IsPrimaryKey_` + aliasName + `"></i></span> </a></li>
  14868. <li><a class="dropdown-item pr-0 hidden" href="javascript:;" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().IsContactColumn(` + colId + `,'` + aliasName + `')"><span id="IsContactColumn">IsContactColumn<i class="dropdown-icon fa fa-check pull-right text-primary" id="DropDown_IsContactColumn_` + aliasName + `"></i></span></a></li>
  14869. <div class="dropdown-divider"></div><li><a class="dropdown-item" href="javascript:;" onclick="Unibase.Platform.Analytics.Reports.SubReport.Instance().linkreport('` + aliasName + `')">Link Report</a></li><div class="dropdown-divider"></div>
  14870. <li><a class="dropdown-item" href="javascript:;" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().showOrHideColumn_table(` + colId + `,'` + aliasName + `')"><span id="ShowOrHideColumn">Hide Column</span> </a></li>
  14871. <li><a class="dropdown-item flex-between-center" href="javascript:;" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().isDistinct(` + colId + `,'` + aliasName + `')"><label class="distinct-label" for="isDistinct_${colId}">IsDistinct</label><input type="checkbox" class="pull-right" id="isDistinct_` + colId + `"></a></li>
  14872. <li><a class="dropdown-item flex-between-center" href="javascript:;" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().isDownload(` + colId + `,'` + aliasName + `')"><label class="distinct-label" for="isDownload_${colId}">IsDownload</label><input type="checkbox" class="pull-right" id="isDownload_` + colId + `"></a></li>
  14873. <li><a class="dropdown-item flex-between-center isnumformatting hidden" href="javascript:;" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().isNumFormatting(` + colId + `,'` + aliasName + `')"><label class="distinct-label" for="isNumFormatting_${colId}">Number Formatting</label><input type="checkbox" class="pull-right" id="isNumFormatting_` + colId + `"></a></li>
  14874. <li><a class="dropdown-item flex-between-center isrowtotal hidden" href="javascript:;" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().isRowTotal(` + colId + `,'` + aliasName + `')"><label class="rowtotal-label" for="isRowTotal_${colId}">IsRowTotal</label><input type="checkbox" class="pull-right" id="isRowTotal_` + colId + `"></a></li>
  14875. <li><a class="dropdown-item flex-between-center isimageurl hidden" href="javascript:;" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().isImageUrl(` + colId + `,'` + aliasName + `')"><label class="rowtotal-label" for="isimageurl_${colId}">Is Image Url</label><input type="checkbox" class="pull-right" id="isimageurl_` + colId + `"></a></li>
  14876. <li><a class="dropdown-item link-danger" href="javascript:;" onclick=""><span id="RemoveSelectedColumn" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().removeSelectedColumn_table(` + colId + `,'` + aliasName + `')"> Remove Column </span></a></li></ul></div>`;
  14877. }
  14878. if ($('#tabulatorReportbuilder .pvtUi').length !== 0) {
  14879. const pivotTableEl = $('#tabulatorReportbuilder .pvtUi');
  14880. const columnEl = pivotTableEl.find(`.pvtAttr:contains(${aliasName.toLocaleLowerCase()})`);
  14881. columnEl.find('.column-dropdown').remove();
  14882. columnEl.append(html);
  14883. columnEl.find('.dropdown-menu.open-left-side').removeClass('open-left-side').addClass('open-right-side');
  14884. if (sel_Col[i].Isvisible == false) {
  14885. columnEl.find("#ShowOrHideColumn").text("Show Column");
  14886. columnEl.find("#DropDown_Eye_EyeSlash").removeClass("fa-eye-slash").addClass("fa-eye");
  14887. }
  14888. }
  14889. else {
  14890. const tabulatorEl = $('#tabulatorReportbuilder');
  14891. tabulatorEl.find("[tabulator-field='" + aliasName.toLocaleLowerCase() + "']").find(".tabulator-col-title").prepend(html);
  14892. tabulatorEl.find("[tabulator-field='" + aliasName.toLocaleLowerCase() + "']").find(".tabulator-col-title").html(html).append(`<input class="tabulator-title-editor ml-0 w-95" value="` + sel_Col[i].DisplayText + `" id="DisplayText_` + sel_Col[i].DisplayText + `" onchange="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().changeDisplayText_table(` + colId + `,'` + aliasName + `','` + sel_Col[i].DisplayText + `')">`);
  14893. if (sel_Col[i].Isvisible == false) {
  14894. tabulatorEl.find("[tabulator-field='" + aliasName + "']").find("#ShowOrHideColumn").text("Show Column");
  14895. tabulatorEl.find("[tabulator-field='" + aliasName + "']").find("#DropDown_Eye_EyeSlash").removeClass("fa-eye-slash").addClass("fa-eye");
  14896. }
  14897. }
  14898. }
  14899. }
  14900. }
  14901. traverseRows(tbl, action) {
  14902. var instance = this;
  14903. var tblRows = tbl.getRows();
  14904. tblRows.forEach(function (row) {
  14905. if (row.getData()._children != undefined) {
  14906. instance.findChildren(row, action);
  14907. }
  14908. });
  14909. }
  14910. bindAggregations(aggregations, aggrval, aliasName, type, id) {
  14911. let html = "";
  14912. if (aggregations) {
  14913. for (var i = 0; i < aggregations.length; i++) {
  14914. let Aggregation = aggregations[i];
  14915. if (i == 0) {
  14916. aggrval = Aggregation.Value;
  14917. }
  14918. html += `<a class="dropdown-item Aggregation_` + aliasName + `" id="` + id + `_Aggr_` + aliasName + `_` + Aggregation.Value + `" onclick="javascript: Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().changeAggregation_table('` + aliasName + `', ` + Aggregation.Value + `,` + type + `); " href="javascript: "><span class="tabulator-header-menu-button"></span><i class="ri-checkbox-blank-circle-line dropdown-icon" id="DropDown_` + Aggregation.Value + `_` + aliasName + `"></i><span class="text-uppercase">` + Aggregation.AggrType + `</span></a>`;
  14919. }
  14920. $('#' + id).find(".dropdown-menu").html(html);
  14921. $("#dsl_column_" + aliasName).find('#' + id).find(".dropdown-menu").html(html);
  14922. }
  14923. return aggrval;
  14924. }
  14925. tabulatorColumnMoreIcon_Click(elementId, aliasName, dataTypeId, event) {
  14926. if (event) {
  14927. event.stopPropagation();
  14928. }
  14929. var instance = this;
  14930. let html = "";
  14931. var Aggr, tableaggr = 0;
  14932. var Sortby = "none";
  14933. var ColumnFormat = "";
  14934. let isDistinct = false;
  14935. let displayText = "";
  14936. let isDownload = false;
  14937. var aggregations = instance.getAggregationsByDataType(dataTypeId);
  14938. Aggr = instance.bindAggregations(aggregations, Aggr, aliasName, 1, "dropdown_Aggregation_" + aliasName);
  14939. tableaggr = instance.bindAggregations(aggregations, Aggr, aliasName, 2, "dropdown_Table_Aggregation_" + aliasName);
  14940. if (dataTypeId == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime) {
  14941. var formathtml = "";
  14942. formathtml = instance.loadFormats(dataTypeId, elementId, aliasName);
  14943. $('#ColumnFormat_' + aliasName).find(".dropdown-menu").html(formathtml);
  14944. $("#dsl_column_" + aliasName).find('#ColumnFormat_' + aliasName).find(".dropdown-menu").html(formathtml);
  14945. }
  14946. else {
  14947. $('#ColumnFormat_' + aliasName).remove();
  14948. $("#dsl_column_" + aliasName).find('#ColumnFormat_' + aliasName).remove();
  14949. }
  14950. let Index = instance.getIndexByAliasName_selectedColumnsArray(aliasName);
  14951. let column = instance.selectedColumns[Index];
  14952. Aggr = column.Aggregation;
  14953. Sortby = column.SortOrder;
  14954. aliasName = column.AliasName;
  14955. ColumnFormat = column.ColumnFormat == "" ? "Default" : column.ColumnFormat;
  14956. isDistinct = column.DistinctOn;
  14957. isDownload = column.IsDownload;
  14958. displayText = column.DisplayText;
  14959. if (column.DataType == Reports.Enums.DataType.int32 || column.DataType == Reports.Enums.DataType.int64 || column.DataType == Reports.Enums.DataType.decimal) {
  14960. $(event.currentTarget).closest(".dropdown.column-dropdown").find(".isrowtotal").removeClass("hidden");
  14961. $(event.currentTarget).closest(".dropdown.column-dropdown").find(".isnumformatting").removeClass("hidden");
  14962. }
  14963. else if (column.DataType == Reports.Enums.DataType.string) {
  14964. $(event.currentTarget).closest(".dropdown.column-dropdown").find(".isimageurl").removeClass("hidden");
  14965. }
  14966. if (isDistinct)
  14967. $("#isDistinct_" + elementId).prop("checked", true);
  14968. else
  14969. $("#isDistinct_" + elementId).prop("checked", false);
  14970. if (isDownload)
  14971. $("#isDownload_" + elementId).prop("checked", true);
  14972. else
  14973. $("#isDownload_" + elementId).prop("checked", false);
  14974. if (column.IsNumFormatting)
  14975. $("#isNumFormatting_" + elementId).prop("checked", true);
  14976. else
  14977. $("#isNumFormatting_" + elementId).prop("checked", false);
  14978. if (column.IsImageUrl)
  14979. $("#isimageurl_" + elementId).prop("checked", true);
  14980. else
  14981. $("#isimageurl_" + elementId).prop("checked", false);
  14982. let grpby = $("#groupby_select").val();
  14983. if (jQuery.inArray(elementId.toString(), grpby) != -1) {
  14984. $('#dropdown_Aggregation_' + aliasName).find(".sub-dropdown-menu").removeClass("show-on-hover");
  14985. $('#dropdown_Aggregation_' + aliasName).find(".sub-dropdown-menu").find(".dropdown-item").css("cursor", "not-allowed");
  14986. }
  14987. else {
  14988. $('#dropdown_Aggregation_' + aliasName).find(".sub-dropdown-menu").addClass("show-on-hover");
  14989. $('#dropdown_Aggregation_' + aliasName).find(".sub-dropdown-menu").find(".dropdown-item").css("cursor", "pointer");
  14990. }
  14991. let IsFilterable = column.IsFilterable;
  14992. if (IsFilterable == true)
  14993. $("#DropDown_IsFilterable_" + aliasName).removeClass('hidden');
  14994. else
  14995. $("#DropDown_IsFilterable_" + aliasName).addClass('hidden');
  14996. let IsPrimaryKey = column.IsPrimaryKey;
  14997. if (IsPrimaryKey == true)
  14998. $("#DropDown_IsPrimaryKey_" + aliasName).removeClass('hidden');
  14999. else
  15000. $("#DropDown_IsPrimaryKey_" + aliasName).addClass('hidden');
  15001. let IsContactColumn = column.IsContactColumn;
  15002. if (IsContactColumn == true)
  15003. $("#DropDown_IsContactColumn_" + aliasName).removeClass('hidden');
  15004. else
  15005. $("#DropDown_IsContactColumn_" + aliasName).addClass('hidden');
  15006. let IsAggregation = column.Aggregation;
  15007. if (IsAggregation == Unibase.Platform.Analytics.Reports.Enums.AggregationType.none)
  15008. $("#dropdown_Aggregation_" + aliasName + "_Aggr_" + aliasName + "_" + IsAggregation).addClass("selected");
  15009. else
  15010. $("#dropdown_Aggregation_" + aliasName + "_Aggr_" + aliasName + "_" + IsAggregation).addClass("selected");
  15011. let tableAggrTypeId = column.TableAggrTypeId;
  15012. if (tableAggrTypeId == Unibase.Platform.Analytics.Reports.Enums.AggregationType.none)
  15013. $("#dropdown_Table_Aggregation_" + aliasName + "_Aggr_" + aliasName + "_" + tableAggrTypeId).addClass("selected");
  15014. else
  15015. $("#dropdown_Table_Aggregation_" + aliasName + "_Aggr_" + aliasName + "_" + tableAggrTypeId).addClass("selected");
  15016. let IsSortBy = column.SortOrder;
  15017. if (IsSortBy == "Asc") {
  15018. $("#SortOrder_" + elementId + "_Asc").addClass('selected');
  15019. $("#SortOrder_" + elementId + "_Desc").removeClass('selected');
  15020. }
  15021. else if (IsSortBy == "Desc") {
  15022. $("#SortOrder_" + elementId + "_Desc").addClass('selected');
  15023. $("#SortOrder_" + elementId + "_Asc").removeClass('selected');
  15024. }
  15025. else {
  15026. $("#SortOrder_" + elementId + "_Asc").addClass('selected');
  15027. }
  15028. let format = instance._columnFormat.loadFormats(dataTypeId).find(x => x.format == ColumnFormat);
  15029. if (format != undefined) {
  15030. $("#" + instance.containerId).find(".Format_" + aliasName + "_" + format.id).addClass("selected");
  15031. }
  15032. if ($('#tabulatorReportbuilder .pvtUi').length !== 0) {
  15033. $(`.column-dp-menu.show`).not(`.dropdown-menu_${elementId}`).removeClass('show');
  15034. $(`.column-dp-menu.dropdown-menu_${elementId}`).toggleClass('show');
  15035. return;
  15036. }
  15037. for (var i = 0; i == Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().table.columnManager.columns.length; i++) {
  15038. if (Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().table.columnManager.columns[i].definition.visible == true) {
  15039. $(".dropdown-menu_" + i).find(".dropdown-menu").removeClass("open-left-side");
  15040. $(".dropdown-menu_" + i).find(".dropdown-menu").addClass("open-right-side");
  15041. break;
  15042. }
  15043. }
  15044. $($(".table-wrap .tabulator-col:visible")[1]).find('ul.dropdown-menu .dropdown-menu').removeClass('open-left-side').addClass('open-right-side');
  15045. $($(".table-wrap .tabulator-col:visible")[2]).find('ul.dropdown-menu .dropdown-menu').removeClass('open-left-side').addClass('open-right-side');
  15046. if (event) {
  15047. instance.setColumnDpMenuPosition(event);
  15048. }
  15049. }
  15050. setColumnDpMenuPosition(event) {
  15051. event.stopPropagation();
  15052. const targetEl = $(event.currentTarget);
  15053. if (targetEl.siblings('.column-dp-menu').hasClass('show')) {
  15054. targetEl.siblings('.column-dp-menu').removeClass('show');
  15055. }
  15056. else {
  15057. $('#tabulatorReportbuilder .tabulator-header').find('.column-dp-menu.show').removeClass('show');
  15058. const elLeftPos = targetEl.offset().left - $('#tabulatorReportbuilder').offset().left;
  15059. const headerHeight = $('#tabulatorReportbuilder .tabulator-header').outerHeight(true);
  15060. targetEl.siblings('.column-dp-menu').css({ position: 'fixed', top: headerHeight, left: elLeftPos }).addClass('show').attr('onclick', 'event.stopPropagation();');
  15061. }
  15062. }
  15063. loadLeftNav() {
  15064. var instance = this;
  15065. let html = instance._reportBuilderTemplate.loadLeftNav();
  15066. $("#DefaultLeftNav_body").html(html);
  15067. }
  15068. loadSorting(elementId, displayText) {
  15069. var instance = this;
  15070. let Index = instance.getIndexByDisplayText_sortColumnsArray(displayText);
  15071. let IsSortBy = instance.SortColumns[Index].SortOrder;
  15072. if (IsSortBy == "Asc") {
  15073. $("#SortOrder_" + elementId + "_Asc").addClass('selected');
  15074. $("#SortOrder_" + elementId + "_Desc").removeClass('selected');
  15075. }
  15076. else if (IsSortBy == "Desc") {
  15077. $("#SortOrder_" + elementId + "_Desc").addClass('selected');
  15078. $("#SortOrder_" + elementId + "_Asc").removeClass('selected');
  15079. }
  15080. else {
  15081. $("#SortOrder_" + elementId + "_Asc").addClass('selected');
  15082. }
  15083. for (var i = 0; i < Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().table.columnManager.columns.length; i++) {
  15084. if (Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().table.columnManager.columns[i].definition.visible == true) {
  15085. $(".dropdown-menu_" + i).find(".dropdown-menu").removeClass("open-left-side");
  15086. $(".dropdown-menu_" + i).find(".dropdown-menu").addClass("open-right-side");
  15087. break;
  15088. }
  15089. }
  15090. }
  15091. clickedTableCaret(ElementId, DisplayText, DataType) {
  15092. var instance = this;
  15093. let html = "";
  15094. var Aggr = 0;
  15095. var Sortby = "none";
  15096. var ColumnFormat = "";
  15097. var Aggregation = instance.getAggregationsByDataType(DataType);
  15098. if (Aggregation) {
  15099. for (var i = 0; i < Aggregation.length; i++) {
  15100. if (i == 0) {
  15101. Aggr = Aggregation[i].Value;
  15102. }
  15103. html += `<a class="dropdown-item Aggregation_` + DisplayText + `" id="Aggr_` + DisplayText + `_` + Aggregation[i].Value + `" onclick="javascript: Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().changeAggregation_table('` + DisplayText + `', ` + Aggregation[i].Value + `); " href="javascript: "><span class="tabulator-header-menu-button"></span><i class="ri-checkbox-blank-circle-line dropdown-icon" id="DropDown_` + Aggregation[i].Value + `_` + DisplayText + `"></i><span class="text-uppercase">` + Aggregation[i].AggrType + `</span></a>`;
  15104. }
  15105. }
  15106. $('#dropdown_Aggregation_' + DisplayText).find(".dropdown-menu").html(html);
  15107. $("#dsl_column_" + DisplayText).find('#dropdown_Aggregation_' + DisplayText).find(".dropdown-menu").html(html);
  15108. if (DataType == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime) {
  15109. var formathtml = "";
  15110. formathtml = instance.loadFormats(DataType, ElementId, DisplayText);
  15111. $('#ColumnFormat_' + DisplayText).find(".dropdown-menu").html(formathtml);
  15112. $("#dsl_column_" + DisplayText).find('#ColumnFormat_' + DisplayText).find(".dropdown-menu").html(formathtml);
  15113. }
  15114. else {
  15115. $('#ColumnFormat_' + DisplayText).remove();
  15116. $("#dsl_column_" + DisplayText).find('#ColumnFormat_' + DisplayText).remove();
  15117. }
  15118. let Index = instance.getIndexByAliasName_selectedColumnsArray(DisplayText);
  15119. Aggr = instance.selectedColumns[Index].Aggregation;
  15120. Sortby = instance.selectedColumns[Index].SortOrder;
  15121. DisplayText = instance.selectedColumns[Index].AliasName;
  15122. ColumnFormat = instance.selectedColumns[Index].ColumnFormat == "" ? "Default" : instance.selectedColumns[Index].ColumnFormat;
  15123. $("#DisplayText_" + DisplayText).val(DisplayText);
  15124. $("#DisplayText_" + DisplayText).focus();
  15125. let grpby = $("#groupby_select").val();
  15126. if (jQuery.inArray(ElementId.toString(), grpby) != -1) {
  15127. $('#dropdown_Aggregation_' + DisplayText).find(".sub-dropdown-menu").removeClass("show-on-hover");
  15128. $('#dropdown_Aggregation_' + DisplayText).find(".sub-dropdown-menu").find(".dropdown-item").css("cursor", "not-allowed");
  15129. }
  15130. else {
  15131. $('#dropdown_Aggregation_' + DisplayText).find(".sub-dropdown-menu").addClass("show-on-hover");
  15132. $('#dropdown_Aggregation_' + DisplayText).find(".sub-dropdown-menu").find(".dropdown-item").css("cursor", "pointer");
  15133. }
  15134. let IsFilterable = instance.selectedColumns[Index].IsFilterable;
  15135. if (IsFilterable == true)
  15136. $("#DropDown_IsFilterable_" + DisplayText).removeClass('hidden');
  15137. else
  15138. $("#DropDown_IsFilterable_" + DisplayText).addClass('hidden');
  15139. let IsPrimaryKey = instance.selectedColumns[Index].IsPrimaryKey;
  15140. if (IsPrimaryKey == true)
  15141. $("#DropDown_IsPrimaryKey_" + DisplayText).removeClass('hidden');
  15142. else
  15143. $("#DropDown_IsPrimaryKey_" + DisplayText).addClass('hidden');
  15144. let IsContactColumn = instance.selectedColumns[Index].IsContactColumn;
  15145. if (IsContactColumn == true)
  15146. $("#DropDown_IsContactColumn_" + DisplayText).removeClass('hidden');
  15147. else
  15148. $("#DropDown_IsContactColumn_" + DisplayText).addClass('hidden');
  15149. let IsAggregation = instance.selectedColumns[Index].Aggregation;
  15150. if (IsAggregation == Unibase.Platform.Analytics.Reports.Enums.AggregationType.none)
  15151. $("#Aggr_" + DisplayText + "_" + IsAggregation).addClass("selected");
  15152. else
  15153. $("#Aggr_" + DisplayText + "_" + IsAggregation).addClass("selected");
  15154. let IsSortBy = instance.selectedColumns[Index].SortOrder;
  15155. if (IsSortBy == "Asc") {
  15156. $("#SortOrder_" + ElementId + "_Asc").addClass('selected');
  15157. $("#SortOrder_" + ElementId + "_Desc").removeClass('selected');
  15158. }
  15159. else if (IsSortBy == "Desc") {
  15160. $("#SortOrder_" + ElementId + "_Desc").addClass('selected');
  15161. $("#SortOrder_" + ElementId + "_Asc").removeClass('selected');
  15162. }
  15163. else {
  15164. $("#SortOrder_" + ElementId + "_Asc").addClass('selected');
  15165. }
  15166. let format = instance._columnFormat.loadFormats(DataType).find(x => x.format == ColumnFormat);
  15167. if (format != undefined) {
  15168. $("#" + instance.containerId).find(".Format_" + DisplayText + "_" + format.id).addClass("selected");
  15169. }
  15170. for (i = 1; i <= Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().table.columnManager.columns.length; i++) {
  15171. if (Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().table.columnManager.columns[i].definition.visible == true) {
  15172. $(".dropdown-menu_" + i).find(".dropdown-menu").removeClass("open-left-side");
  15173. $(".dropdown-menu_" + i).find(".dropdown-menu").addClass("open-right-side");
  15174. break;
  15175. }
  15176. }
  15177. }
  15178. loadQueryBuilderDiv() {
  15179. var instance = this;
  15180. var fromDate = "";
  15181. var toDate = "";
  15182. var cf_fromDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_FromDate;
  15183. var cf_toDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_ToDate;
  15184. if (cf_fromDate != null && cf_toDate != null) {
  15185. fromDate = cf_fromDate.toString();
  15186. toDate = cf_toDate.toString();
  15187. }
  15188. else {
  15189. fromDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
  15190. toDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
  15191. }
  15192. if (instance.reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Table) {
  15193. $("#Categories").removeClass("hidden");
  15194. }
  15195. else if (instance.reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Chart) {
  15196. $("#Categories").addClass("hidden");
  15197. }
  15198. $("#QueryBuilder").html(`<div class="qry-builder-body"><div data-simplebar class="simple-scroll-bar"><div id="builder"></div></div></div>`);
  15199. var DataListId = instance.DataListId;
  15200. $("#DatalistColumns_Search").val("");
  15201. let qelem;
  15202. qelem = $('#builder');
  15203. instance.filtersArray = [];
  15204. qelem.on("afterAddRule.queryBuilder", (event, group) => {
  15205. this.addCheckbox();
  15206. });
  15207. for (var i = 0; i < instance.QueryBuilder_Columns.length; i++) {
  15208. let element = instance.QueryBuilder_Columns[i];
  15209. let dataType = "";
  15210. let IsInput = false;
  15211. let serviceurl = "apis/v4/unibase/platform/analytics/reportcolumndata";
  15212. serviceurl = _appsettings.server_url() + (serviceurl.startsWith('/') ? serviceurl : ('/' + serviceurl));
  15213. let dataTypeid = element.DataType;
  15214. let plugin_config = {
  15215. placeholder: "Select Options",
  15216. width: "auto",
  15217. unique: true,
  15218. allowClear: true,
  15219. tags: true,
  15220. ajax: {
  15221. url: serviceurl,
  15222. contentType: 'application/json',
  15223. dataType: 'json',
  15224. type: "POST",
  15225. traditional: true,
  15226. crossDomain: true,
  15227. async: true,
  15228. beforeSend: function (xhr) {
  15229. if (Unibase.Platform.Membership.Infos.Identity.getCurrentUser() !== undefined && Unibase.Platform.Membership.Infos.Identity.getCurrentUser() !== null) {
  15230. xhr.setRequestHeader('Authorization', 'Basic ' + Unibase.Platform.Membership.Infos.Identity.getCurrentUser().sessionId);
  15231. xhr.setRequestHeader('geoposition', Unibase.Platform.Membership.Infos.Identity.getCurrentUser().latd + ':' + Unibase.Platform.Membership.Infos.Identity.getCurrentUser().lgId);
  15232. }
  15233. },
  15234. data: function (params) {
  15235. let name = this[0].name.substring(0, this[0].name.indexOf("_value_"));
  15236. searchName = params.term;
  15237. var Qb_Col = instance.QueryBuilder_Columns.find(q => q.ColumnId == element.ColumnId);
  15238. let repObj = new ReportObject();
  15239. repObj.DataListId = instance.DataListId;
  15240. let Aggr = Reports.Enums.AggregationType.none;
  15241. if (params.hasOwnProperty("term") == true) {
  15242. repObj.StaticFilter = "CAST(" + element.ColumnName + " AS text) " + " ILIKE('%" + params.term + "%')";
  15243. if (instance.DataSourceId == Number(Platform.DataSources.Enums.DataSource.MongoDB)) {
  15244. repObj.StaticFilter = "{" + element.ColumnName + ":" + params.term + "}";
  15245. if (Analytics.Reports.Enums.DataType[element.DataType] == "string") {
  15246. repObj.StaticFilter = "{" + element.ColumnName + ":{$regex:'" + params.term + "'" + "}}";
  15247. }
  15248. }
  15249. }
  15250. repObj.TopRecords = 5;
  15251. repObj.Distinct = true;
  15252. let col = new ReportColumn();
  15253. col.ColumnValue = element.ColumnId;
  15254. col.ReportColumnName = element.ColumnName;
  15255. col.AliasName = element.ColumnName;
  15256. col.DlColumnName = (Qb_Col) ? Qb_Col.DlColumnName : null;
  15257. col.AggrFuncId = Aggr;
  15258. repObj.ReportColumns = [];
  15259. repObj.ReportColumns.push(col);
  15260. repObj.FromDate = fromDate;
  15261. repObj.ToDate = toDate;
  15262. return JSON.stringify(repObj);
  15263. },
  15264. processResults: function (data) {
  15265. var col = [];
  15266. var defaultid;
  15267. var id = searchName;
  15268. var autoCompleteId = $(".select2-container--open").parent().parent()[1].id;
  15269. console.log(autoCompleteId);
  15270. var identity = $("#" + autoCompleteId + "_checkbox").prop("checked");
  15271. if (identity) {
  15272. var identityinfo = Unibase.Platform.Membership.Infos.Identity.currentUser;
  15273. var keys = Object.keys(identityinfo);
  15274. for (let i = 0; i < keys.length; i++) {
  15275. col.push({ id: "Identity_" + keys[i], text: "Identity_" + keys[i] });
  15276. }
  15277. var settings = identityinfo.settings;
  15278. if (settings && settings.length != 0) {
  15279. for (var s = 0; s < settings.length; s++) {
  15280. col.push({ id: "Identity_" + settings[s].settingName, text: "Identity_" + settings[s].settingName });
  15281. }
  15282. }
  15283. console.log(col);
  15284. }
  15285. else {
  15286. if (JSON.parse(data.result).Data != "") {
  15287. defaultid = {
  15288. id: 0,
  15289. text: '------'
  15290. };
  15291. col.push(defaultid);
  15292. for (let i = 0; i < JSON.parse(JSON.parse(data.result).Data).length; i++) {
  15293. let jsondata = JSON.parse(JSON.parse(data.result).Data);
  15294. var col_text = jsondata[i][element.ColumnName];
  15295. if (col_text != null) {
  15296. var ids = {
  15297. id: jsondata[i][element.ColumnName],
  15298. text: col_text.toString()
  15299. };
  15300. col.push(ids);
  15301. }
  15302. }
  15303. }
  15304. else {
  15305. if (searchName == "") {
  15306. defaultid = {
  15307. id: 0,
  15308. text: '------'
  15309. };
  15310. }
  15311. else {
  15312. defaultid = {
  15313. id: id,
  15314. text: searchName
  15315. };
  15316. }
  15317. col.push(defaultid);
  15318. }
  15319. }
  15320. return {
  15321. results: col
  15322. };
  15323. }
  15324. },
  15325. };
  15326. let Values = [];
  15327. let Input = 'select';
  15328. let Plugin = 'select2';
  15329. if (dataTypeid == Unibase.Platform.Analytics.Reports.Enums.DataType.string) {
  15330. dataType = "string";
  15331. }
  15332. else if (dataTypeid == Unibase.Platform.Analytics.Reports.Enums.DataType.int32 || dataTypeid == Unibase.Platform.Analytics.Reports.Enums.DataType.int64) {
  15333. dataType = "integer";
  15334. }
  15335. else if (dataTypeid == Unibase.Platform.Analytics.Reports.Enums.DataType.decimal) {
  15336. dataType = "double";
  15337. }
  15338. else if (dataTypeid == Unibase.Platform.Analytics.Reports.Enums.DataType.boolean) {
  15339. dataType = "string";
  15340. Values = ["true", "false"];
  15341. Input = 'radio';
  15342. Plugin = '';
  15343. }
  15344. else if (dataTypeid == Unibase.Platform.Analytics.Reports.Enums.DataType.date || dataTypeid == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime) {
  15345. dataType = 'date';
  15346. IsInput = true;
  15347. }
  15348. if (element.StaticFilterControlType == Unibase.Platform.Analytics.Reports.Enums.StaicFilterControlType.Text) {
  15349. IsInput = true;
  15350. Input = 'text';
  15351. }
  15352. let searchName = "";
  15353. let filter = {};
  15354. if (dataTypeid == Unibase.Platform.Analytics.Reports.Enums.DataType.date || dataTypeid == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime) {
  15355. filter = {
  15356. id: element.ColumnName,
  15357. label: element.ColumnName,
  15358. field: element.ColumnName,
  15359. type: dataType,
  15360. validation: {
  15361. format: 'YYYY/MM/DD'
  15362. },
  15363. plugin: 'datepicker',
  15364. plugin_config: {
  15365. format: 'yyyy/mm/dd',
  15366. todayBtn: 'linked',
  15367. todayHighlight: true,
  15368. autoclose: true
  15369. }
  15370. };
  15371. }
  15372. else {
  15373. filter = {
  15374. id: element.ColumnName,
  15375. label: element.ColumnName,
  15376. field: element.ColumnName,
  15377. type: dataType,
  15378. size: 30,
  15379. unique: true,
  15380. input: Input,
  15381. plugin: !IsInput && Plugin,
  15382. plugin_config: !IsInput && plugin_config,
  15383. values: Values
  15384. };
  15385. }
  15386. instance.filtersArray.push(filter);
  15387. }
  15388. qelem.queryBuilder({
  15389. filters: instance.filtersArray
  15390. });
  15391. if (instance.queryBuilderJson && instance.queryBuilderJson != "[]") {
  15392. let qeleme = $('#builder');
  15393. let qb_json = JSON.parse(instance.queryBuilderJson);
  15394. let qb_rules = instance.changeFieldnametoId(qb_json.rules);
  15395. qeleme.queryBuilder('setRules', qb_rules);
  15396. var ruledata = JSON.parse(instance.queryBuilderJson);
  15397. var jsonarray = JSON.stringify(ruledata);
  15398. jsonarray = jsonarray.replace(/[{}\[\]']/g, '');
  15399. jsonarray = jsonarray.split(',"');
  15400. var finalarray = [];
  15401. for (var arrayvalue of jsonarray) {
  15402. if (arrayvalue.includes('value') == true) {
  15403. var value = arrayvalue.split(':');
  15404. if (value[1].includes('"') == true) {
  15405. value[1] = value[1].replace(/"/g, '');
  15406. }
  15407. finalarray.push(value[1]);
  15408. }
  15409. }
  15410. for (let k = 0; k < finalarray.length; k++) {
  15411. var id = $('[id*=select2-builder_rule_' + k + ']').attr('id');
  15412. $('#' + id).html('');
  15413. $('#' + id).css('width', $('#' + id).width() + 150);
  15414. $('#' + id).html('<span class="select2-selection__placeholder text-dark">' + finalarray[k] + '</span>');
  15415. if (finalarray[k] && finalarray[k].includes("Identity_")) {
  15416. let valueContainer = $('#' + id).closest(".rule-value-container").next();
  15417. valueContainer.children().first().removeClass("hidden");
  15418. valueContainer.find("input").prop("checked", true);
  15419. }
  15420. }
  15421. }
  15422. $('#btn-reset-query').on('click', function () {
  15423. instance.queryBuilderString = "";
  15424. instance.querybuilderCheckboxes = [];
  15425. instance.queryBuilderJson = "";
  15426. $(".qry-builder-container").hide();
  15427. instance.load_data(instance.table);
  15428. qelem.queryBuilder('reset');
  15429. instance.queryBuilderJson = "";
  15430. });
  15431. $('#builder').on('afterApplyRuleFlags.queryBuilder', function (e, rule) {
  15432. let selectValue = $("#" + rule.id).find(".rule-filter-container").children().first().val();
  15433. if (selectValue != -1 && selectValue) {
  15434. $("#" + rule.id).find(".rule-check-container").children().first().removeClass("hidden");
  15435. }
  15436. });
  15437. $('#builder-widgets').on('afterUpdateRuleValue.queryBuilder', function (e, rule) {
  15438. if (rule.filter.plugin === 'datepicker') {
  15439. rule.$el.find('.rule-value-container input').datepicker('update');
  15440. }
  15441. });
  15442. $('#builder').on('afterUpdateRuleOperator.queryBuilder', (e, rule) => {
  15443. if (rule.operator.type == "in")
  15444. rule.$el.find(".rule-value-container select").prop('multiple', true).attr('name', 'sub_type[]');
  15445. else
  15446. rule.$el.find(".rule-value-container select").prop('multiple', false).attr('name', 'sub_type');
  15447. });
  15448. }
  15449. addCheckbox() {
  15450. let instance = this;
  15451. let isChecked = '';
  15452. let checkboxId = $($('.rule-container')[$('.rule-container').length - 1]).attr('id') + '_checkbox';
  15453. console.log(instance.querybuilderCheckboxes);
  15454. for (let i = 0; i < instance.querybuilderCheckboxes.length; i++) {
  15455. if (checkboxId.replace('_checkbox', '') == instance.querybuilderCheckboxes[i]) {
  15456. isChecked = 'checked';
  15457. break;
  15458. }
  15459. }
  15460. $($('.rule-container')[$('.rule-container').length - 1]).append(`<div class="rule-check-container">
  15461. <div class="custom-control hidden custom-checkbox checkbox-teal">
  15462. <input type="checkbox" class="custom-control-input" id="${checkboxId}" ${isChecked}>
  15463. <label class="custom-control-label" for="${checkboxId}">Indentity</label>
  15464. </div>
  15465. </div>`);
  15466. $('#' + checkboxId).change(function () {
  15467. var id = $(this).attr('id').replace('_checkbox', '');
  15468. $("#" + id).find(".rule-value-container select").empty();
  15469. if ($(this).is(':checked')) {
  15470. instance.querybuilderCheckboxes.push(id);
  15471. }
  15472. else {
  15473. for (let i = 0; i < instance.querybuilderCheckboxes.length; i++) {
  15474. let checkbox_id = instance.querybuilderCheckboxes[i];
  15475. if (checkbox_id == id) {
  15476. instance.querybuilderCheckboxes.splice(i, 1);
  15477. break;
  15478. }
  15479. }
  15480. }
  15481. });
  15482. }
  15483. changeFieldnametoId(rules) {
  15484. var instance = this;
  15485. for (var r = 0; r < rules.length; r++) {
  15486. let rule = rules[r];
  15487. if (rule.rules)
  15488. rule.rules = instance.changeFieldnametoId(rule.rules);
  15489. rules[r].id = rule.field;
  15490. }
  15491. return rules;
  15492. }
  15493. toggleQueryBuilderDiv() {
  15494. $(".report-builder-body").toggleClass("hidden");
  15495. $("#QueryBuilder").toggleClass("hidden");
  15496. }
  15497. reportTypeChange(id) {
  15498. var instance = this;
  15499. if (id == "fa fa-bar-chart-o") {
  15500. instance.reportType = Unibase.Platform.Analytics.Reports.Enums.ReportType.Chart;
  15501. instance._chartBuilder.loadChartIcons();
  15502. if (instance.TenureReport.length != 0 && instance.reportid == 0) {
  15503. Unibase.Platform.Analytics.Reports.Tenure.Instance().CheckedTenure();
  15504. instance._chartBuilder.tenureChart('myChart', instance.reportid);
  15505. }
  15506. else {
  15507. if (instance.reportid != 0) {
  15508. instance._chartBuilder.select2DataBinding("");
  15509. }
  15510. instance._chartBuilder.select2DataBinding("ReportTypeChanged");
  15511. }
  15512. $('.report-builder-body').find('#table-canvan').height($(window).outerHeight() - $('.report-builder-body').find('#chart-container').height() - $(".modal-footer").height() - 100);
  15513. }
  15514. else {
  15515. instance.reportType = Unibase.Platform.Analytics.Reports.Enums.ReportType.Table;
  15516. }
  15517. $(".ChartIcons").toggleClass("hidden");
  15518. $("#ChartIcon_Default").toggleClass("hidden");
  15519. if (instance.reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Chart) {
  15520. instance._chartBuilder.IsChartBuilder = true;
  15521. instance.EditableTitle = false, instance.HeaderSort = true;
  15522. $(".divselect2_GroupBy").removeClass("hidden");
  15523. $(".TableIcon").addClass("hidden");
  15524. $("#datalabel_div").removeClass("hidden");
  15525. $("#chart-container").removeClass("hidden");
  15526. $('.report-builder-body').find('#table-canvan').height($(window).outerHeight() - $('.report-builder-body').find('#chart-container').height() - $(".modal-footer").height() - 105);
  15527. if ($("#DataListsDiv").hasClass("hidden") && instance.TenureReport.length == 0) {
  15528. $("#XAxis").removeClass("hidden");
  15529. $("#YAxis").removeClass("hidden");
  15530. var x_val = $('#xaxis_select').val().toString();
  15531. var y_val = $('#yaxis_select').val().toString();
  15532. if (x_val.length == 0) {
  15533. $('#xaxis_select').val('').trigger('change');
  15534. }
  15535. if (y_val.length == 0) {
  15536. $('#yaxis_select').val('').trigger('change');
  15537. }
  15538. }
  15539. $("#ChartCanvasDiv").removeClass("hidden");
  15540. if ($("#txt_totalrecords").val() == "") {
  15541. $("#txt_totalrecords").val("5");
  15542. }
  15543. if (instance._chartBuilder.legendTitleTypeId == Unibase.Platform.Analytics.Enums.LegendTitleType.Column) {
  15544. $("#lagendtypecolumn").prop("checked", true);
  15545. }
  15546. else {
  15547. $("#lagendtypedata").prop("checked", true);
  15548. }
  15549. $("#showtooltipheader_checkbox").prop("checked", instance._chartBuilder.isTooltipHeader);
  15550. $("#isdatalabel").prop("checked", instance._chartBuilder.isDataLabel);
  15551. $("#label_length").val(instance._chartBuilder.tickLabelLength);
  15552. if (instance._chartBuilder.chartBaseValue)
  15553. $("#dataset_base_value").val(instance._chartBuilder.chartBaseValue);
  15554. }
  15555. else {
  15556. if ($("#DataListsDiv").hasClass("hidden")) {
  15557. $("#Categories").removeClass("hidden");
  15558. }
  15559. instance.EditableTitle = true, instance.HeaderSort = false;
  15560. instance._chartBuilder.select2DataBinding("");
  15561. if (instance.selectedColumns.length > 0) {
  15562. instance.load_data(instance.table);
  15563. }
  15564. $(".TableIcon").removeClass("hidden");
  15565. $("#datalabel_div").addClass("hidden");
  15566. $("#ExpandIcon, #CollapseIcon").addClass("hidden");
  15567. $("#chart-container").addClass("hidden");
  15568. var height = $(".report-builder-body").height() - 35 + "px";
  15569. instance.table.setHeight(height);
  15570. $("#table-canvan").height(height);
  15571. $(".bl-nav-right").addClass("hidden");
  15572. $("#bl-nav-right-default").removeClass("hidden");
  15573. $("#XAxis").addClass("hidden");
  15574. $("#YAxis").addClass("hidden");
  15575. $("#ChartCanvasDiv").addClass("hidden");
  15576. }
  15577. }
  15578. getAggregationName(AggrFuncId) {
  15579. var AggrName = Unibase.Platform.Analytics.Reports.Enums.AggregationType[AggrFuncId];
  15580. return AggrName;
  15581. }
  15582. getAggregationsByDataTypes(DataType) {
  15583. var aggrType = Unibase.Platform.Analytics.Reports.Enums.AggregationType;
  15584. var items = {
  15585. "String": [{ "Value": aggrType.none, "AggrType": "none" },
  15586. { "Value": aggrType.count, "AggrType": "count" }],
  15587. "DateTime": [{ "Value": aggrType.none, "AggrType": "none" },
  15588. { "Value": aggrType.count, "AggrType": "count" },
  15589. { "Value": aggrType.month, "AggrType": "month" },
  15590. { "Value": aggrType.year, "AggrType": "year" }],
  15591. "Int64": [{ "Value": aggrType.none, "AggrType": "none" },
  15592. { "Value": aggrType.count, "AggrType": "count" },
  15593. { "Value": aggrType.sum, "AggrType": "sum" },
  15594. { "Value": aggrType.avg, "AggrType": "avg" },
  15595. { "Value": aggrType.max, "AggrType": "max" },
  15596. { "Value": aggrType.min, "AggrType": "min" }],
  15597. "Int32": [{ "Value": aggrType.none, "AggrType": "none" },
  15598. { "Value": aggrType.count, "AggrType": "count" },
  15599. { "Value": aggrType.sum, "AggrType": "sum" },
  15600. { "Value": aggrType.avg, "AggrType": "avg" },
  15601. { "Value": aggrType.max, "AggrType": "max" },
  15602. { "Value": aggrType.min, "AggrType": "min" }],
  15603. "Decimal": [{ "Value": aggrType.none, "AggrType": "none" },
  15604. { "Value": aggrType.count, "AggrType": "count" },
  15605. { "Value": aggrType.sum, "AggrType": "sum" },
  15606. { "Value": aggrType.avg, "AggrType": "avg" },
  15607. { "Value": aggrType.max, "AggrType": "max" },
  15608. { "Value": aggrType.min, "AggrType": "min" }],
  15609. "Boolean": [{ "Value": aggrType.none, "AggrType": "none" },
  15610. { "Value": aggrType.count, "AggrType": "count" }],
  15611. "none": [
  15612. {}
  15613. ]
  15614. };
  15615. return items[DataType];
  15616. }
  15617. getAggregationsByDataType(DataType) {
  15618. var items = [];
  15619. var aggrType = Unibase.Platform.Analytics.Reports.Enums.AggregationType;
  15620. switch (DataType) {
  15621. case Unibase.Platform.Analytics.Reports.Enums.DataType.string:
  15622. items = [{ "Value": aggrType.none, "AggrType": "none" },
  15623. { "Value": aggrType.count, "AggrType": "count" }];
  15624. break;
  15625. case Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime:
  15626. items = [{ "Value": aggrType.none, "AggrType": "none" },
  15627. { "Value": aggrType.count, "AggrType": "count" },
  15628. { "Value": aggrType.month, "AggrType": "month" },
  15629. { "Value": aggrType.year, "AggrType": "year" }];
  15630. break;
  15631. case Unibase.Platform.Analytics.Reports.Enums.DataType.int64:
  15632. items = [{ "Value": aggrType.none, "AggrType": "none" },
  15633. { "Value": aggrType.count, "AggrType": "count" },
  15634. { "Value": aggrType.sum, "AggrType": "sum" },
  15635. { "Value": aggrType.avg, "AggrType": "avg" },
  15636. { "Value": aggrType.max, "AggrType": "max" },
  15637. { "Value": aggrType.min, "AggrType": "min" }];
  15638. break;
  15639. case Unibase.Platform.Analytics.Reports.Enums.DataType.int32:
  15640. items = [{ "Value": aggrType.none, "AggrType": "none" },
  15641. { "Value": aggrType.count, "AggrType": "count" },
  15642. { "Value": aggrType.sum, "AggrType": "sum" },
  15643. { "Value": aggrType.avg, "AggrType": "avg" },
  15644. { "Value": aggrType.max, "AggrType": "max" },
  15645. { "Value": aggrType.min, "AggrType": "min" }];
  15646. break;
  15647. case Unibase.Platform.Analytics.Reports.Enums.DataType.decimal:
  15648. items = [{ "Value": aggrType.none, "AggrType": "none" },
  15649. { "Value": aggrType.count, "AggrType": "count" },
  15650. { "Value": aggrType.sum, "AggrType": "sum" },
  15651. { "Value": aggrType.avg, "AggrType": "avg" },
  15652. { "Value": aggrType.max, "AggrType": "max" },
  15653. { "Value": aggrType.min, "AggrType": "min" }];
  15654. break;
  15655. case Unibase.Platform.Analytics.Reports.Enums.DataType.boolean:
  15656. items = [{ "Value": aggrType.none, "AggrType": "none" },
  15657. { "Value": aggrType.count, "AggrType": "count" }];
  15658. break;
  15659. case Unibase.Platform.Analytics.Reports.Enums.DataType.none:
  15660. [{}];
  15661. break;
  15662. }
  15663. return items;
  15664. }
  15665. getColumnIconByDataTypes(DataTypeId) {
  15666. let icon = "";
  15667. switch (DataTypeId) {
  15668. case Unibase.Platform.Analytics.Reports.Enums.DataType.string:
  15669. icon = `<i class="las la-text-width"></i>`;
  15670. break;
  15671. case Unibase.Platform.Analytics.Reports.Enums.DataType.int32:
  15672. case Unibase.Platform.Analytics.Reports.Enums.DataType.int64:
  15673. case Unibase.Platform.Analytics.Reports.Enums.DataType.decimal:
  15674. case Unibase.Platform.Analytics.Reports.Enums.DataType.boolean:
  15675. icon = `<i class="las la-hashtag"></i>`;
  15676. break;
  15677. case Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime:
  15678. icon = `<i class="las la-calendar-minus"></i>`;
  15679. break;
  15680. }
  15681. return icon;
  15682. }
  15683. dataType(type) {
  15684. var DataType;
  15685. switch (type) {
  15686. case "String":
  15687. DataType = Unibase.Platform.Analytics.Reports.Enums.DataType.string;
  15688. break;
  15689. case "Int32":
  15690. DataType = Unibase.Platform.Analytics.Reports.Enums.DataType.int32;
  15691. break;
  15692. case "Int64":
  15693. DataType = Unibase.Platform.Analytics.Reports.Enums.DataType.int64;
  15694. break;
  15695. case "DateTime":
  15696. DataType = Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime;
  15697. break;
  15698. case "Decimal":
  15699. DataType = Unibase.Platform.Analytics.Reports.Enums.DataType.decimal;
  15700. break;
  15701. case "Boolean":
  15702. DataType = Unibase.Platform.Analytics.Reports.Enums.DataType.boolean;
  15703. break;
  15704. }
  15705. return DataType;
  15706. }
  15707. _sortColumns() {
  15708. var instance = this;
  15709. let list = $('#sort_selected_columns');
  15710. if (!list)
  15711. return;
  15712. let itemName;
  15713. let endIndex;
  15714. list.sortable({
  15715. connectWith: "#sort_selected_columns",
  15716. cursor: 'move',
  15717. update: function (event, ui) {
  15718. $.each($('#sort_selected_columns .dsl-block'), function (index, item) {
  15719. let itemName = $(item).attr('id').slice(11);
  15720. let sindex = instance.SortColumns.findIndex(x => x.AliasName == itemName);
  15721. if (sindex > -1) {
  15722. instance.SortColumns[sindex].SortIndex = index;
  15723. }
  15724. let scolindex = instance.selectedColumns.findIndex(x => x.ColumnName == itemName);
  15725. if (scolindex > -1) {
  15726. instance.selectedColumns[scolindex].SortIndex = index;
  15727. }
  15728. });
  15729. instance.load_data(instance.reportid);
  15730. }
  15731. });
  15732. }
  15733. getIndexByColumnName_selectedColumnsArray(ColumnName) {
  15734. var instance = this;
  15735. return instance.selectedColumns.findIndex(x => x.ColumnName == ColumnName);
  15736. }
  15737. getIndexByAliasName_selectedColumnsArray(AliasName) {
  15738. var instance = this;
  15739. return instance.selectedColumns.findIndex(x => x.AliasName == AliasName);
  15740. }
  15741. getIndexByDisplayTextAndColumnName_selectedColumnsArray(AliasName, ColumnName) {
  15742. var instance = this;
  15743. return instance.selectedColumns.findIndex(x => x.AliasName == AliasName && x.ColumnName == ColumnName);
  15744. }
  15745. getColumnId_ByColumnName_datalistColumnsArray(ColumnName) {
  15746. var instance = this;
  15747. let Col = instance.datalistColumnsResponseData.find(x => x.ColumnName == ColumnName);
  15748. return Col.ColumnId;
  15749. }
  15750. getDlColumn_ByColumnId_datalistColumnsArray(ColumnId) {
  15751. var instance = this;
  15752. let Col = instance.datalistColumnsResponseData.find(x => x.ColumnId == ColumnId);
  15753. return Col.DlColumnName;
  15754. }
  15755. getIndexByDisplayText_sortColumnsArray(DisplayText) {
  15756. var instance = this;
  15757. return instance.SortColumns.findIndex(x => x.DisplayText == DisplayText);
  15758. }
  15759. getIndexByAliasName_DatalistColumnsArray(AliasName) {
  15760. return this.datalistColumnsResponseData.findIndex(x => x.AliasName == AliasName);
  15761. }
  15762. getIndexByAliasName_chartSelectedColumnsArray(AliasName) {
  15763. var instance = this;
  15764. return instance._chartBuilder.ChartSelectedColumns.findIndex(x => x.AliasName == AliasName);
  15765. }
  15766. loadReportGroups() {
  15767. var url = _appsettings.server_url() + '/apis/v4/unibase/platform/analytics/reportgroups_autocomplete';
  15768. AutoCompleteHelper.getHelper().Create("#RptGroup_AutoComplete", "#hfAutoComplete_ReportGroup", url, null);
  15769. }
  15770. getAvailableReportGroups(reportGroupsResponseData) {
  15771. var instance = this;
  15772. let html = "";
  15773. for (let i = 0; i < reportGroupsResponseData.length; i++) {
  15774. var template = instance._reportBuilderTemplate.loadDataListsTemplate();
  15775. var templateScript = Handlebars.compile(template);
  15776. var context = { "SelectText": reportGroupsResponseData[i].GroupName, "Value": reportGroupsResponseData[i].ReportGroupId };
  15777. html += templateScript(context);
  15778. }
  15779. if (reportGroupsResponseData.length == 0) {
  15780. var template = instance._reportBuilderTemplate.loadDataListsTemplate();
  15781. var templateScript = Handlebars.compile(template);
  15782. }
  15783. $("#RptGroup_AutoComplete").append(html);
  15784. }
  15785. reportColumns_Array(repCol) {
  15786. var instance = this;
  15787. let col = new ReportColumn();
  15788. col.ReportColumnId = instance.isduplicate == true ? 0 : repCol.ReportColumnId;
  15789. col.ColumnValue = (repCol.ColumnValue) ? repCol.ColumnValue : 0;
  15790. col.ReportColumnName = repCol.ReportColumnName;
  15791. col.DataListColumnName = repCol.DataListColumnName;
  15792. col.DlColumnName = repCol.DlColumnName;
  15793. col.DisplayText = (repCol.DisplayText) ? repCol.DisplayText : repCol.AliasName;
  15794. col.AliasName = (repCol.AliasName) ? repCol.AliasName : col.DisplayText;
  15795. col.DataType = (repCol.DataType) ? repCol.DataType : 0;
  15796. col.Isvisible = (repCol.Isvisible) ? repCol.Isvisible : false;
  15797. col.AggrFuncId = !isNaN(repCol.AggrFuncId) ? repCol.AggrFuncId : Reports.Enums.AggregationType.none,
  15798. col.SortType = (repCol.SortType) ? repCol.SortType : "none";
  15799. col.SortIndex = (repCol.SortIndex) ? repCol.SortIndex : 0;
  15800. col.GroupBy = (repCol.GroupBy) ? repCol.GroupBy : false;
  15801. col.IsPivotAggrColumn = (repCol.IsPivotAggrColumn) ? repCol.IsPivotAggrColumn : false;
  15802. col.IsPivotColumn = (repCol.IsPivotColumn) ? repCol.IsPivotColumn : false;
  15803. col.IsPivotRow = (repCol.IsPivotRow) ? repCol.IsPivotRow : false;
  15804. col.IsPivotRowSelected = (repCol.IsPivotRowSelected) ? repCol.IsPivotRowSelected : false;
  15805. col.IsPivotParentColumn = (repCol.IsPivotParentColumn) ? repCol.IsPivotParentColumn : false;
  15806. col.IsPivotChildColumn = (repCol.IsPivotChildColumn) ? repCol.IsPivotChildColumn : false;
  15807. col.PivotValue = 0;
  15808. col.PivotValueSelected = (instance.pivot && instance.pivot.PivotValue_Selected) ? repCol.PivotValueSelected : 0;
  15809. col.IsPivotRowSelected = (repCol.IsPivotRowSelected) ? repCol.IsPivotRowSelected : false;
  15810. col.PivotDateType = isNaN(repCol.PivotDateType) ? 0 : Number(repCol.PivotDateType);
  15811. col.TimeInterval = (repCol.TimeInterval) ? repCol.TimeInterval : "";
  15812. col.ColumnFormat = (repCol.ColumnFormat == "No Format" || !(repCol.ColumnFormat)) ? "" : repCol.ColumnFormat;
  15813. col.YearComparisonType = (repCol.YearComparisonType) ? repCol.YearComparisonType : 0;
  15814. col.WidthUnit = "px";
  15815. col.RoleId = "0";
  15816. col.IsFilterable = false;
  15817. col.IsPrimaryKey = (repCol.IsPrimaryKey) ? repCol.IsPrimaryKey : false;
  15818. col.IsContactColumn = (repCol.IsContactColumn) ? repCol.IsContactColumn : false;
  15819. col.GroupByCategory = (repCol.GroupByCategory) ? repCol.GroupByCategory : false;
  15820. col.IsTenureApplied = (repCol.IsTenureApplied) ? repCol.IsTenureApplied : false;
  15821. col.Width = (repCol.Width) ? repCol.Width : 0;
  15822. col.ColumnIndex = (repCol.ColumnIndex) ? repCol.ColumnIndex : 0;
  15823. col.DistinctOn = (repCol.DistinctOn) ? repCol.DistinctOn : false;
  15824. col.IsPivotTableCol = (repCol.IsPivotTableCol) ? repCol.IsPivotTableCol : false;
  15825. col.IsDownload = (repCol.IsDownload) ? repCol.IsDownload : false;
  15826. col.TableAggrTypeId = !isNaN(repCol.TableAggrTypeId) ? repCol.TableAggrTypeId : Reports.Enums.AggregationType.none;
  15827. col.IsNumFormatting = (repCol.IsNumFormatting) ? repCol.IsNumFormatting : false;
  15828. col.IsRowTotal = (repCol.IsRowTotal) ? repCol.IsRowTotal : false;
  15829. col.IsImageUrl = (repCol.IsImageUrl) ? repCol.IsImageUrl : false;
  15830. col.PivotTableAggrTypeId = (repCol.PivotTableAggrTypeId) ? repCol.PivotTableAggrTypeId : 0;
  15831. let PivotDateType = instance.pivot && instance.pivot.DateType ? instance.pivot.DateType : 0;
  15832. if (instance.pivot && instance.pivot.AggColumnName != "") {
  15833. if (instance.pivot.AggColumnName == col.ReportColumnName) {
  15834. col.AggrFuncId = Number(instance.pivot.AggFuncId);
  15835. col.IsPivotAggrColumn = true;
  15836. }
  15837. if (instance.pivot.ColumnName == col.ReportColumnName) {
  15838. col.IsPivotColumn = true;
  15839. var Tenure = instance.TenureReport[instance.pivot.ColumnName];
  15840. col.TimeInterval = Tenure != undefined ? Tenure.TimeInterval : "";
  15841. col.PivotDateType = Number(PivotDateType);
  15842. }
  15843. if (instance.pivot.ChildColumnName != "") {
  15844. if (instance.pivot.ChildColumnName == col.ReportColumnName) {
  15845. col.IsPivotChildColumn = true;
  15846. if (repCol.PivotValue == undefined) {
  15847. col.PivotValue = Number(instance.pivot.ChildColumnValue);
  15848. }
  15849. else {
  15850. col.PivotValue = Number(instance.pivot.PivotValue_Selected);
  15851. }
  15852. instance.IsPivotTree = true;
  15853. }
  15854. if (instance.pivot.ParentColumnName == col.ReportColumnName) {
  15855. col.IsPivotParentColumn = true;
  15856. }
  15857. }
  15858. }
  15859. if (repCol.TimeInterval != "") {
  15860. }
  15861. instance.ReportColumns.push(col);
  15862. }
  15863. groupByAggregation() {
  15864. var instance = this;
  15865. var isGrp = instance.selectedColumns.find(g => g.GroupBy == true);
  15866. if (isGrp) {
  15867. for (var i = 0; i < instance.selectedColumns.length; i++) {
  15868. var scol = instance.selectedColumns[i];
  15869. if (!scol.GroupBy && scol.Aggregation == Unibase.Platform.Analytics.Reports.Enums.AggregationType.none) {
  15870. let Index = instance.getIndexByColumnName_selectedColumnsArray(scol.AliasName);
  15871. var Col = instance.selectedColumns[Index];
  15872. Col.Aggregation = Unibase.Platform.Analytics.Reports.Enums.AggregationType.count;
  15873. }
  15874. }
  15875. }
  15876. }
  15877. saveReport(containerid, reportid) {
  15878. var instance = this;
  15879. this.navigationHelper.showLoading();
  15880. let rptGroupId = Number($("#RptGroup_AutoComplete").val());
  15881. if (rptGroupId == 0)
  15882. return MessageHelper.Instance().showError("Please select ReportGroup", 'divReport_ErrorMessage');
  15883. instance.ReportColumns = [];
  15884. var grpby = instance.selectedColumns.filter(x => x.GroupBy == true);
  15885. var agg = [];
  15886. var SortArry = [];
  15887. if (grpby.length > 0) {
  15888. agg = instance.selectedColumns.filter(x => x.Aggregation == Reports.Enums.AggregationType.none).filter(x => x.GroupBy == false);
  15889. }
  15890. if (agg.length > 0 && instance.reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Table) {
  15891. var cols = "";
  15892. if (agg.length == 1) {
  15893. cols = " Column \"";
  15894. }
  15895. else {
  15896. cols = " Columns \"";
  15897. }
  15898. for (var a = 0; a < agg.length; a++) {
  15899. cols += " " + agg[a].ColumnName + ",";
  15900. }
  15901. cols = cols.substring(0, cols.length - 1) + " ";
  15902. alert("SAVE FAILED: " + cols + "\" must be added in groupby or need to give aggregation. For UI Groupby add in Categories instead of groupby");
  15903. return false;
  15904. }
  15905. else {
  15906. for (var i = 0; i < instance.selectedColumns.length; i++) {
  15907. let selectedColumn = instance.selectedColumns[i];
  15908. let Width = 0;
  15909. if (selectedColumn.Width != undefined) {
  15910. Width = selectedColumn.Width;
  15911. }
  15912. var Tenure = instance.TenureReport[selectedColumn.ColumnName];
  15913. let AggrFuncId = selectedColumn.Aggregation;
  15914. let col = new ReportColumn();
  15915. col.ReportColumnId = selectedColumn.ReportColumnId,
  15916. col.ReportColumnName = selectedColumn.ColumnName,
  15917. col.AliasName = selectedColumn.AliasName,
  15918. col.DisplayText = selectedColumn.DisplayText,
  15919. col.DlColumnName = selectedColumn.DlColumnName,
  15920. col.ColumnIndex = selectedColumn.ColumnIndex,
  15921. col.Width = Width,
  15922. col.ColumnValue = Number(selectedColumn.ColumnId),
  15923. col.DataType = selectedColumn.DataType,
  15924. col.IsFilterable = selectedColumn.IsFilterable,
  15925. col.IsPrimaryKey = selectedColumn.IsPrimaryKey,
  15926. col.IsContactColumn = selectedColumn.IsContactColumn,
  15927. col.Isvisible = selectedColumn.Isvisible,
  15928. col.GroupBy = selectedColumn.GroupBy,
  15929. col.SortType = selectedColumn.SortOrder,
  15930. col.SortIndex = selectedColumn.SortIndex,
  15931. col.AggrFuncId = AggrFuncId,
  15932. col.IsTenureApplied = Tenure != undefined ? true : false,
  15933. col.GroupByCategory = selectedColumn.GroupByCategory,
  15934. col.ColumnFormat = selectedColumn.ColumnFormat == "Default" ? "" : selectedColumn.ColumnFormat,
  15935. col.PivotValue = instance.pivot.PivotValue_Selected,
  15936. col.DistinctOn = selectedColumn.DistinctOn,
  15937. col.IsPivotTableCol = selectedColumn.IsPivotTableCol,
  15938. col.IsDownload = selectedColumn.IsDownload,
  15939. col.TableAggrTypeId = selectedColumn.TableAggrTypeId,
  15940. col.IsNumFormatting = selectedColumn.IsNumFormatting,
  15941. col.IsRowTotal = selectedColumn.IsRowTotal,
  15942. col.IsImageUrl = selectedColumn.IsImageUrl,
  15943. col.PivotTableAggrTypeId = selectedColumn.PivotTableAggrTypeId,
  15944. instance.reportColumns_Array(col);
  15945. }
  15946. let pivotRows = instance.pivot.PivotRows;
  15947. if (instance.SortColumns.length != 0) {
  15948. for (var i = 0; i < instance.SortColumns.length; i++) {
  15949. var col = instance.SortColumns.find(x => x.SortIndex == i);
  15950. if (col)
  15951. SortArry.push({ Name: col.DisplayText, Order: col.SortOrder });
  15952. }
  15953. }
  15954. if (SortArry.length == 0) {
  15955. if (instance.reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Chart) {
  15956. instance.navigationHelper.hideLoading();
  15957. return MessageHelper.Instance().showError('Please Select SortColumn', 'div_ReportBuilderErrorMessage');
  15958. }
  15959. SortArry.push({ Name: instance.selectedColumns[0].AliasName, Order: "Desc" });
  15960. }
  15961. instance._chartBuilder.chartColumns();
  15962. if (instance.isduplicate == true) {
  15963. $("#txt_reportid").val(0);
  15964. if ($("#txt_reportname").val() == "") {
  15965. $("#errordiv").show();
  15966. $("#errordiv").html('<div id="Bizgaze-messageInfo" class="alert alert-danger " ><strong>Error! </strong>Mandatory fields are missing</div>');
  15967. $("#errordiv").css({ "height": "50px", "visibility": "hidden", "opacity": "0", "transition": "visibility 0s 6s,opacity 6s linear" });
  15968. setTimeout(function () {
  15969. $("#errordiv").removeAttr('style');
  15970. $("#errordiv").hide();
  15971. }, 6000);
  15972. return false;
  15973. }
  15974. }
  15975. var dependencyapps = $("#dependecyapps").val();
  15976. let ReportName = $("#txt_reportname").val().toString();
  15977. instance.reportname = String($("#txt_reportname").val());
  15978. var SearchColumns_Data = $("#searchcolumns").select2('data');
  15979. var SearchCols = "";
  15980. for (var i = 0; i < SearchColumns_Data.length; i++) {
  15981. SearchCols += SearchColumns_Data[i].text + "|";
  15982. }
  15983. let connectedAppsArray = $("#connectedapps").select2('data');
  15984. let connectedReportsArray = $("#connectedreports").select2('data').map(x => x.id);
  15985. let connectedApps = connectedAppsArray.map(x => x.id).join("|");
  15986. let connectedReports = connectedReportsArray.join("|");
  15987. let baseValue = $("#dataset_base_value").val();
  15988. if (instance.res && instance.res.UniqueId) {
  15989. if (connectedReportsArray.includes(instance.res.UniqueId)) {
  15990. instance.navigationHelper.hideLoading();
  15991. return MessageHelper.Instance().showError("Same report cannot be selected as connected report", 'divReport_ErrorMessage');
  15992. }
  15993. }
  15994. instance.updateDynamicFilterIndex();
  15995. var fromDate = "";
  15996. var toDate = "";
  15997. var cf_fromDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_FromDate;
  15998. var cf_toDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_ToDate;
  15999. if (cf_fromDate != null && cf_toDate != null) {
  16000. fromDate = cf_fromDate.toString();
  16001. toDate = cf_toDate.toString();
  16002. }
  16003. else {
  16004. fromDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
  16005. toDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
  16006. }
  16007. let uniqueId = instance.res && instance.res.UniqueId ? instance.res.UniqueId : "Bizgaze_Platform_Analytics_Reports_" + ReportName.replace(/\s/g, '');
  16008. let model = new Unibase.Platform.Analytics.Requests.Report();
  16009. model.SearchColumns = SearchCols;
  16010. model.SubReports = instance.subreportdata;
  16011. model.DependencyApps = dependencyapps.join('|');
  16012. model.DynamicFilters = instance.dynamicFilters;
  16013. model.ReportId = Number($("#txt_reportid").val());
  16014. model.ReportName = String($("#txt_reportname").val());
  16015. model.DisplayName = String($("#txt_displayname").val());
  16016. model.ReportTypeId = instance.reportType;
  16017. model.DataListId = instance.DataListId;
  16018. model.Description = '';
  16019. model.ReportGroupId = Number($("#RptGroup_AutoComplete").val());
  16020. model.ReportColumns = instance.ReportColumns;
  16021. model.ChartColumns = instance.ChartColumns;
  16022. model.RoleSettings = instance.roleSettings;
  16023. model.EditFilters = null;
  16024. model.StaticFilter = instance.queryBuilderJson;
  16025. model.SortColumns = JSON.stringify(SortArry);
  16026. model.TopRecords = Number($("#txt_totalrecords").val());
  16027. model.Parameters = String($("#txt_dynamicparameters").val()).trim();
  16028. model.ChartTypeId = instance._chartBuilder.ChartTypeId;
  16029. model.DateColumn = String($("#DateColumnDropDown").val());
  16030. model.UniqueId = uniqueId;
  16031. model.ViewerId = instance.ViewerId;
  16032. model.ViewerTypeId = instance.ViewerTypeId;
  16033. model.OnClick = String($("#txt_onclick").val());
  16034. model.InstalledAppId = isNaN(Number($("#InstalledApp_AutoComplete option:selected").val())) == true ? 0 : Number($("#InstalledApp_AutoComplete option:selected").val());
  16035. model.IsNotification = instance.IsNotification;
  16036. model.TableTypeId = Number($("#tableTypeSelect").val());
  16037. model.DisplayName = String($("#txt_displayname").val());
  16038. model.IsLegend = instance._chartBuilder.displayLegend;
  16039. model.LegendTypeId = isNaN(Number($("#legend-select").val())) == true ? 0 : Number($("#legend-select").val());
  16040. model.IsInternalReport = instance.IsInternalReport;
  16041. model.IsPivotTree = instance.IsPivotTree;
  16042. model.PivotValue = (instance.pivot.PivotValue_Selected) ? Number(instance.pivot.PivotValue_Selected) : 0;
  16043. model.IsEnableCount = instance.enableCount;
  16044. model.IsEnableGlobalDatepicker = instance.enableGlobalDatepicker;
  16045. model.PaletteId = instance.paletteId;
  16046. model.ColorAppliedTypeId = instance._chartBuilder.colorAppliedOn;
  16047. model.PivotTypeId = instance._pivot.pivotTypeId;
  16048. model.TimeInterval = instance.Interval;
  16049. model.ConnectedApps = connectedApps;
  16050. model.LinkReportId = instance.linkReportId;
  16051. model.IsTreeExpand = instance._pivot.isDataTreeExpand;
  16052. model.ReportIndex = 0;
  16053. model.ViewAll = instance.viewAll;
  16054. model.ConnectedReports = connectedReports;
  16055. model.LegendTitleTypeId = instance._chartBuilder.legendTitleTypeId;
  16056. model.ChartBaseValue = baseValue === undefined ? 0 : Number(baseValue);
  16057. model.FromDate = fromDate;
  16058. model.ToDate = toDate;
  16059. model.EnablePivotTableConfig = instance.enablePivotTableConfig;
  16060. model.Js = String($("#txt_js").val());
  16061. model.PinDynamicFilters = $('#pindynamicfilters_checkbox').is(":checked");
  16062. model.IsDataLabel = $("#isdatalabel").prop("checked");
  16063. model.IsTooltipHeader = $("#showtooltipheader_checkbox").prop("checked");
  16064. model.ShowDataListColsOnDynFil = instance.showDynamicFilters;
  16065. model.TickLabelLength = instance._chartBuilder.tickLabelLength;
  16066. instance.reportManager.saveReport(model).then(function (response) {
  16067. instance.navigationHelper.hideLoading();
  16068. if (response.status == Unibase.Data.Status.Error) {
  16069. MessageHelper.Instance().showError(response.message, 'divReport_ErrorMessage');
  16070. $('#save_as_modal #divReport_ErrorMessage #Bizgaze-messageInfo').addClass('btn mx-4 my-3');
  16071. $('#save_as_modal #divReport_ErrorMessage #Bizgaze-messageInfo').css('border-radius', '.25rem');
  16072. }
  16073. else {
  16074. MessageHelper.Instance().showSuccess(response.message, '');
  16075. $('#' + containerid).modal('hide');
  16076. $('#' + containerid).remove();
  16077. instance._chartBuilder.clearSelectedChartFields();
  16078. instance.clearSelectedTableFields();
  16079. instance.querybuilderCheckboxes = [];
  16080. var res = JSON.parse(response.result);
  16081. if (reportid != 0 && !instance.isReportWidget) {
  16082. const lastContainerId = instance.lastContainerId;
  16083. $(`#${lastContainerId}`).modal("hide");
  16084. $(`#${lastContainerId}`).remove();
  16085. if (lastContainerId.includes('_viewall') || lastContainerId.includes('_ViewAllByUniqueId_') || lastContainerId.includes('fullscreen') || lastContainerId.includes('_linkedreport_')) {
  16086. Unibase.Platform.Helpers.NavigationHelper.reportViewerInstance = Unibase.Platform.Helpers.NavigationHelper.reportViewerInstance.filter(instance => instance.childcontainerid !== lastContainerId);
  16087. instance._reportViewer.report_ViewAll(reportid, 0, lastContainerId, null);
  16088. if (lastContainerId.includes('fullscreen') && lastContainerId.includes('div_dashboardportletwidget')) {
  16089. const widgetContainerId = lastContainerId.replace('fullscreen_', '');
  16090. instance.reloadDashboardPortletWidget(widgetContainerId);
  16091. }
  16092. }
  16093. else {
  16094. instance._reportViewer.InstalledAppId = res.InstalledAppId;
  16095. instance.navigationHelper.popin(res.ReportId, "", instance._reportViewer, null);
  16096. }
  16097. }
  16098. else if (instance.isReportWidget) {
  16099. instance.reloadReportWidget(instance.reportWidgetType);
  16100. if (instance.reportWidgetType == 'portlet' && instance.lastContainerId) {
  16101. $("#" + instance.lastContainerId).modal("hide");
  16102. $("#" + instance.lastContainerId).remove();
  16103. instance._reportViewer.report_ViewAll(0, 0, 0, null);
  16104. }
  16105. }
  16106. }
  16107. });
  16108. }
  16109. }
  16110. reloadDashboardPortletWidget(widgetContainerId) {
  16111. const instance = this;
  16112. const containerId = widgetContainerId ? widgetContainerId : instance.lastContainerId;
  16113. const widgetItem = $(`#${containerId}`).closest('.dashboardwidget-item');
  16114. const widgetId = Number($(`#${containerId}`).closest('.dashboardwidget-item').find('#hf_widgetId').val());
  16115. const portletwidgetid = Number(widgetItem.find('#hf_portletwidgetId').val());
  16116. Unibase.Themes.Compact.Components.ReportWidgets.Default.Instance().getReportWidget(portletwidgetid, widgetId, containerId, [], [], false, 0, false);
  16117. }
  16118. reloadReportWidget(widgetType) {
  16119. const instance = this;
  16120. if (widgetType == 'dashboard') {
  16121. instance.reloadDashboardPortletWidget();
  16122. }
  16123. else if (widgetType == 'portlet') {
  16124. $('._bizgaze_detail_container:visible').find('#layout-detail-tabs .tab-item a.active').trigger('click');
  16125. }
  16126. }
  16127. clearSelectedTableFields() {
  16128. var instance = this;
  16129. instance.datalistColumnsResponseData = [];
  16130. instance.selectedColumns = [];
  16131. instance.ReportColumns = [];
  16132. instance.SortColumns = [];
  16133. instance.stringifyed_SortColumns = "";
  16134. instance.queryBuilderJson = "";
  16135. instance.reportGroupId = 0;
  16136. instance.reportType = 1;
  16137. instance.Categories = [];
  16138. instance.dynamicFilters = [];
  16139. instance.roleSettings = [];
  16140. instance.TenureReport = [];
  16141. instance.subreportdata = [];
  16142. instance.dataTreeRowExpandedColumn = [];
  16143. instance.Edit_BindData = false;
  16144. instance.isEdit = false;
  16145. instance._pivot.pivotTypeId = 0;
  16146. instance.IsInternalReport = true;
  16147. }
  16148. defaultReportGroup() {
  16149. var instance = this;
  16150. if (instance.IsInternalReport) {
  16151. let groupName = "InternalGroup";
  16152. instance.reportManager.getReportGroupByName(groupName).then(function (grpresponse) {
  16153. if (grpresponse.result == "") {
  16154. let model = new Unibase.Platform.Analytics.Reports.Requests.ReportGroup();
  16155. model.GroupName = groupName;
  16156. instance.reportManager.saveReportGroup(model).then(function (response) {
  16157. if (response.result != null) {
  16158. let res = JSON.parse(response.result);
  16159. instance.reportGroupId = res.ReportGroupId;
  16160. $("#RptGroup_AutoComplete").append("<option selected value=" + res.ReportGroupId + ">" + res.GroupName + "</option>");
  16161. }
  16162. });
  16163. }
  16164. else {
  16165. instance.reportGroupId = grpresponse.result.ReportGroupId;
  16166. $("#RptGroup_AutoComplete").append("<option selected value=" + grpresponse.result.ReportGroupId + ">" + grpresponse.result.GroupName + "</option>");
  16167. }
  16168. });
  16169. }
  16170. else {
  16171. $('#RptGroup_AutoComplete').removeAttr('disabled');
  16172. }
  16173. }
  16174. closeReportBuilder(containerid, reportid) {
  16175. var instance = this;
  16176. instance._chartBuilder.clearSelectedChartFields();
  16177. instance.clearSelectedTableFields();
  16178. $('#' + containerid).modal('hide');
  16179. $('#' + containerid).remove();
  16180. }
  16181. loadreportviewerdata(reportid) {
  16182. var instance = this;
  16183. instance.isEdit = true;
  16184. instance.loadDynmaicFilters(reportid);
  16185. instance.bindReportData(reportid);
  16186. }
  16187. loadDynmaicFilters(reportid) {
  16188. var instance = this;
  16189. instance.reportManager.getDynamicFilters(reportid).then(function (response) {
  16190. instance.dynamicFilters = [];
  16191. for (let i = 0; i < response.length; i++) {
  16192. var data = response.find(d => d.Index == i);
  16193. if (data != undefined) {
  16194. var model = new DynamicFilterModel();
  16195. model.DynamicFilterId = data.DynamicFilterId;
  16196. model.IsFilterableColumn = data.IsFilterableColumn.trim();
  16197. model.DataListId = Number(data.DatalistId);
  16198. model.DataListName = data.DataListName != null ? (data.DataListName).toString() : null;
  16199. model.ReportId = data.ReportId;
  16200. model.MappedColumn = data.MappedColumn;
  16201. model.TextColumn = data.TextColumn != null ? data.TextColumn : null;
  16202. model.ValueColumn = data.TextColumn != null ? data.ValueColumn : null;
  16203. model.Index = data.Index;
  16204. model.ControlTypeId = data.ControlTypeId;
  16205. model.DataType = data.DataType;
  16206. model.DisplayName = data.DisplayName;
  16207. model.IsPartition = data.IsPartition;
  16208. model.FontCaseTypeId = data.FontCaseTypeId;
  16209. model.IsDefault = data.IsDefault;
  16210. model.IsUnLimited = data.IsUnLimited;
  16211. model.IsRequired = data.IsRequired;
  16212. model.ParentColumn = data.ParentColumn;
  16213. model.ApplyFor = data.ApplyFor;
  16214. model.IsCustomFilter = data.IsCustomFilter;
  16215. model.ReplaceExistingDates = data.ReplaceExistingDates;
  16216. model.DateRangeTypeId = data.DateRangeTypeId;
  16217. instance.dynamicFilters.push(model);
  16218. Unibase.Platform.Analytics.Reports.DynamicFilter.Instance().dynamicFilters = instance.dynamicFilters;
  16219. let html = instance._reportBuilderTemplate.loadDynamicFilterColumn(Number(model.DynamicFilterId), model.IsFilterableColumn, '');
  16220. $("#dynamic-list-group-wrapper").append(html);
  16221. if (data.DataType == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime) {
  16222. }
  16223. if (data.IsPartition)
  16224. $("#chk_ispartition_" + data.IsFilterableColumn.trim()).prop("checked", true);
  16225. if (data.IsUnLimited)
  16226. $('#isunlimited_checkbox').prop('checked', true);
  16227. else
  16228. $('#isunlimited_checkbox').prop('checked', false);
  16229. Unibase.Platform.Analytics.Reports.DynamicFilter.Instance().sortDynamicFilter(model);
  16230. }
  16231. }
  16232. });
  16233. }
  16234. bindReportData(reportid) {
  16235. var instance = this;
  16236. var reportObj = {
  16237. ReportId: reportid,
  16238. IsEditReport: true
  16239. };
  16240. instance.reportManager.getReportInfo(reportObj).then(function (response) {
  16241. return __awaiter(this, void 0, void 0, function* () {
  16242. if (response.status == Unibase.Data.Status.Error) {
  16243. return MessageHelper.Instance().showError(response.message, 'div_ReportBuilderErrorMessage');
  16244. }
  16245. var res = response.result.ReportInfo;
  16246. instance.DataListId = res.DataListId;
  16247. instance.DataSourceId = res.DataSourceId;
  16248. instance.topRecords = res.TopRecords;
  16249. yield instance.loadDataListColumns(res.DataListId, null, false, false, instance.DataSourceId);
  16250. instance.initiateDataListSearch();
  16251. instance._chartBuilder.isDataLabel = response.result.ReportInfo.IsDataLabel;
  16252. instance.pinDynamicFilters = res.PinDynamicFilters;
  16253. if (res.appDependents != null) {
  16254. let dependecyapps = [];
  16255. if (res.appDependents.length) {
  16256. for (let i = 0; i < res.appDependents.length; i++) {
  16257. dependecyapps.push(res.appDependents[i].InstalledAppId);
  16258. }
  16259. $("#dependecyapps").val(dependecyapps).trigger("change");
  16260. }
  16261. }
  16262. $("#txt_reportid").val(res.ReportId);
  16263. if (instance.isduplicate != true) {
  16264. $("#txt_reportname").val(res.ReportName);
  16265. $("#txt_reportname").attr("disabled", "disabled");
  16266. }
  16267. if (res.SearchColumns != null) {
  16268. instance.SearchColumns = res.SearchColumns;
  16269. }
  16270. $("#header_datalist_name").text(res.DataListName);
  16271. $("#txt_totalrecords").val(res.TopRecords);
  16272. $("#txt_onclick").val(res.Onclick);
  16273. $("#txt_js").val(res.Js);
  16274. $("#pindynamicfilters_checkbox").prop("checked", res.PinDynamicFilters);
  16275. instance.togglePinDynamicFilters();
  16276. if (res.ShowDataListColsOnDynFil)
  16277. $("#showdatalistcolumns_checkbox").trigger("click");
  16278. if (res.Js) {
  16279. instance.Js = res.Js;
  16280. }
  16281. if (res.InstalledAppId != 0) {
  16282. $("#InstalledApp_AutoComplete").append(`<option value="` + res.InstalledAppId + `">` + res.AppTitle + `</option>`);
  16283. $("#InstalledApp_AutoComplete").val(res.InstalledAppId).trigger("change");
  16284. }
  16285. if (res.ConnectedApps) {
  16286. let connectApps = res.ConnectedApps.split("|");
  16287. $("#connectedapps").val(connectApps).trigger("change");
  16288. }
  16289. if (res.ConnectedReports) {
  16290. let connectedReports = res.ConnectedReports.split("|");
  16291. for (var i = 0; i < connectedReports.length; i++) {
  16292. yield Unibase.Platform.Analytics.Managers.ReportManager.Instance().getReportByUniqueIdEncoded(btoa(connectedReports[i])).then((res) => {
  16293. if (res.result && res.status == Unibase.Data.Status.Success) {
  16294. let option = new Option(res.result.ReportName, connectedReports[i], true);
  16295. $("#connectedreports").append(option);
  16296. }
  16297. });
  16298. }
  16299. ;
  16300. $("#connectedreports").val(connectedReports).trigger("change");
  16301. }
  16302. if (res.IsNotification) {
  16303. $(".chkNotification").attr("checked", "checked");
  16304. }
  16305. instance.Interval = res.TimeInterval;
  16306. instance.IsInternalReport = res.IsInternalReport;
  16307. $('#internalreport_checkbox').prop('checked', instance.IsInternalReport);
  16308. instance.isInternalGroup = res.IsInternalGroup;
  16309. if (instance.isInternalGroup) {
  16310. instance.updateInternalReportCb(true, true);
  16311. }
  16312. if (!res.IsEnableCount) {
  16313. instance.enableCount = false;
  16314. $('#count_checkbox').prop('checked', false);
  16315. }
  16316. else {
  16317. instance.enableCount = true;
  16318. $('#count_checkbox').prop('checked', true);
  16319. }
  16320. if (!res.IsEnableGlobalDatepicker) {
  16321. instance.enableGlobalDatepicker = false;
  16322. $('#enableglobaldatepicker_checkbox').prop('checked', false);
  16323. }
  16324. else {
  16325. instance.enableGlobalDatepicker = true;
  16326. $('#enableglobaldatepicker_checkbox').prop('checked', true);
  16327. }
  16328. Unibase.Platform.Analytics.Components.LinkReport.Instance().linkreportid = res.LinkReportId;
  16329. instance.reportGroupId = res.ReportGroupId;
  16330. $("#RptGroup_AutoComplete").append(`<option value="` + res.ReportGroupId + `">` + res.GroupName + `</option>`);
  16331. $("#RptGroup_AutoComplete").val(res.ReportGroupId);
  16332. $("#txt_displayname").val(res.DisplayName);
  16333. $("#tableTypeSelect").val(res.TableTypeId);
  16334. $('#chkPivotTableConfig_checkbox').prop('checked', res.EnablePivotTableConfig);
  16335. $('#chktreeexpand_checkbox').prop('checked', res.IsTreeExpand);
  16336. instance.enablePivotTableConfig = res.EnablePivotTableConfig;
  16337. instance._pivot.isDataTreeExpand = res.IsTreeExpand;
  16338. instance.IsPivotTree = res.IsPivotTree;
  16339. instance._pivot.pivotTypeId = res.PivotTypeId;
  16340. instance._pivot.intervals = res.TimeInterval;
  16341. instance._chartBuilder.displayLegend = res.IsLegend;
  16342. instance._chartBuilder.tickLabelLength = res.TickLabelLength;
  16343. instance._pivot.selectedpivotType(res.PivotTypeId);
  16344. if (res.StaticFilter != null) {
  16345. instance.queryBuilderJson = res.StaticFilter;
  16346. }
  16347. instance.ViewerTypeId = res.ViewerTypeId;
  16348. instance.ViewerId = res.ViewerId;
  16349. if (res.SortColumns != null) {
  16350. instance.stringifyed_SortColumns = res.SortColumns;
  16351. var sortCols = JSON.parse(res.SortColumns);
  16352. for (var sc = 0; sc < sortCols.length; sc++) {
  16353. let sortcol = sortCols[sc];
  16354. instance.SortColumns.push({ DisplayText: sortcol.Name, SortOrder: sortcol.Order, SortIndex: sc });
  16355. var rptCols;
  16356. if (res.DataSourceId == Number(Unibase.Platform.DataSources.Enums.DataSource.MongoDB)) {
  16357. rptCols = res.ReportColumns.find(s => s.AliasName.toLowerCase() == sortcol.Name.toLowerCase());
  16358. }
  16359. else {
  16360. rptCols = res.ReportColumns.find(s => s.AliasName.toLowerCase() == sortcol.Name);
  16361. }
  16362. var html = instance._reportBuilderTemplate.loadSortSelect2Column(rptCols.ColumnValue, rptCols.AliasName, rptCols.DataType);
  16363. $("#sort_selected_columns").append(html);
  16364. if (instance.SortColumns[0].SortOrder == "Desc") {
  16365. $("#dsl_column_" + sortcol.DisplayText + " .sort-icon").addClass('la-sort-down');
  16366. $("#dsl_column_" + sortcol.DisplayText + " .sort-icon").removeClass('la-sort-up');
  16367. }
  16368. else {
  16369. $("#dsl_column_" + sortcol.DisplayText + " .sort-icon").removeClass('la-sort-down');
  16370. $("#dsl_column_" + sortcol.DisplayText + " .sort-icon").addClass('la-sort-up');
  16371. }
  16372. instance.setSelectOption("sortColumns_select");
  16373. instance._sortColumns();
  16374. }
  16375. }
  16376. instance.roleSettings = res.RoleSettings ? res.RoleSettings : [];
  16377. if (!res.LegendTitleTypeId)
  16378. res.LegendTitleTypeId = Unibase.Platform.Analytics.Enums.LegendTitleType.Column;
  16379. instance.legendTypeId = res.LegendTypeId;
  16380. if (res.LegendTitleTypeId == Unibase.Platform.Analytics.Enums.LegendTitleType.Column) {
  16381. $("#lagendtypecolumn").prop("checked", true);
  16382. instance._chartBuilder.legendTitleTypeId = Unibase.Platform.Analytics.Enums.LegendTitleType.Column;
  16383. }
  16384. else {
  16385. $("#lagendtypedata").prop("checked", true);
  16386. instance._chartBuilder.legendTitleTypeId = Unibase.Platform.Analytics.Enums.LegendTitleType.Data;
  16387. }
  16388. instance._chartBuilder.chartBaseValue = res.ChartBaseValue;
  16389. instance.viewAll = res.ViewAll;
  16390. if (res.LinkReportId) {
  16391. instance.linkReportId = res.LinkReportId;
  16392. }
  16393. instance.res = res;
  16394. let id = "";
  16395. id = res.ReportTypeId == Unibase.Platform.Analytics.Reports.Enums.ReportType.Table ? 'fa fa-table' : 'fa fa-bar-chart-o';
  16396. instance.reportTypeChange(id);
  16397. if (res.ReportTypeId == Unibase.Platform.Analytics.Reports.Enums.ReportType.Table) {
  16398. yield instance.bindTableData(res.ReportColumns, reportid);
  16399. instance.reportType = res.ReportTypeId;
  16400. $("#no_of_records").closest(".card").first().addClass("hidden");
  16401. }
  16402. else {
  16403. instance._chartBuilder.ChartTypeId = res.ChartTypeId;
  16404. instance.reportType = res.ReportTypeId;
  16405. $("#ReportTypeChart").find('i').toggleClass('fa-table fa-bar-chart-o');
  16406. instance._reportBuilderTemplate.loadChartSideBar();
  16407. instance._chartBuilder.sortTooltipColumnsEvent();
  16408. instance._chartBuilder.loadReportTypeChart('fa fa-bar-chart-o');
  16409. $('#tabulatorReportbuilder').addClass('contains-chartview');
  16410. if (res.ColorAppliedTypeId == Unibase.Platform.Analytics.Enums.ColorType.column) {
  16411. $("#columnRadio").prop("checked", true);
  16412. instance._chartBuilder.colorAppliedOn = Unibase.Platform.Analytics.Enums.ColorType.column;
  16413. }
  16414. else {
  16415. $("#rowRadio").prop("checked", true);
  16416. instance._chartBuilder.colorAppliedOn = Unibase.Platform.Analytics.Enums.ColorType.row;
  16417. }
  16418. instance._chartBuilder.ChartSelectedColumns = res.ChartColumns;
  16419. instance._chartBuilder.bindChartColumns(res.ChartColumns);
  16420. instance._chartBuilder.prepareAndBindToolTipColumns(res.ChartColumns);
  16421. instance.paletteId = res.PaletteId;
  16422. const indexInstance = Unibase.Themes.Compact.Components.Index.Instance();
  16423. if (instance.paletteId !== 0 || indexInstance.currentTheme.paletteId) {
  16424. let paletteId = instance.paletteId;
  16425. if (!paletteId) {
  16426. instance._chartBuilder.paletteColors.push(...indexInstance.themePalette);
  16427. }
  16428. else {
  16429. instance._chartBuilder.getpaletteColors(paletteId, false);
  16430. }
  16431. }
  16432. $("#legend-select").val(res.LegendTypeId);
  16433. instance._chartBuilder.loadSelectedLegend(res.LegendTypeId, false);
  16434. instance.bindTableData(res.ReportColumns, reportid);
  16435. }
  16436. instance.loadAllDataListColumns();
  16437. instance.loadSelectedDataListColumns();
  16438. instance._chartBuilder.loadSearchSelect2();
  16439. instance._chartBuilder.loadSortColumnsSelect2();
  16440. instance._chartBuilder.loadDynamicFilterSelect(instance.showDynamicFilters);
  16441. instance._chartBuilder.loadCategoriesSelect2();
  16442. });
  16443. });
  16444. }
  16445. bindTableData(reportColumns, reportid) {
  16446. return __awaiter(this, void 0, void 0, function* () {
  16447. var instance = this;
  16448. if (reportColumns && reportColumns.length) {
  16449. reportColumns = reportColumns.sort((x, y) => x.ColumnIndex - y.ColumnIndex);
  16450. }
  16451. var data = reportColumns;
  16452. instance.pivot.ColumnName = "";
  16453. var pivotChildCol = data.filter(c => c.IsPivotChildColumn == true);
  16454. var pivotParentCol = data.filter(c => c.IsPivotParentColumn == true);
  16455. var groupby = [];
  16456. var categories = [];
  16457. var categories_text = [];
  16458. var searchcolumns = instance.SearchColumns.split('|');
  16459. for (var i = 0; i < data.length; i++) {
  16460. var selCol = new SelectedColumns();
  16461. selCol.ReportColumnId = data[i].ReportColumnId;
  16462. selCol.ColumnId = data[i].ColumnValue;
  16463. selCol.ColumnName = data[i].ReportColumnName;
  16464. selCol.AliasName = data[i].AliasName;
  16465. selCol.DataListColumnName = data[i].DataListColumnName;
  16466. selCol.DlColumnName = data[i].DlColumnName;
  16467. selCol.DataType = data[i].DataType;
  16468. selCol.GroupBy = data[i].GroupBy;
  16469. selCol.Aggregation = data[i].AggrFuncId;
  16470. selCol.SortOrder = data[i].SortType;
  16471. selCol.Isvisible = data[i].Isvisible;
  16472. selCol.SortIndex = data[i].SortIndex;
  16473. selCol.DisplayText = data[i].DisplayText;
  16474. selCol.IsFilterable = data[i].IsFilterable;
  16475. selCol.IsPrimaryKey = data[i].IsPrimaryKey;
  16476. selCol.IsContactColumn = data[i].IsContactColumn;
  16477. selCol.ColumnIndex = data[i].ColumnIndex;
  16478. selCol.GroupByCategory = data[i].GroupByCategory;
  16479. selCol.DistinctOn = data[i].DistinctOn;
  16480. selCol.IsPivotColumn = data[i].IsPivotColumn;
  16481. selCol.IsPivotAggrColumn = data[i].IsPivotAggrColumn;
  16482. selCol.IsPivotTableCol = data[i].IsPivotTableCol;
  16483. selCol.IsDownload = data[i].IsDownload;
  16484. selCol.TableAggrTypeId = data[i].TableAggrTypeId;
  16485. selCol.IsNumFormatting = data[i].IsNumFormatting;
  16486. selCol.IsRowTotal = data[i].IsRowTotal;
  16487. selCol.IsImageUrl = data[i].IsImageUrl;
  16488. selCol.PivotTableAggrTypeId = data[i].PivotTableAggrTypeId;
  16489. selCol.ColumnFormat = data[i].ColumnFormat;
  16490. if (data[i].Width != 0) {
  16491. selCol.Width = data[i].Width;
  16492. }
  16493. selCol.IsDragged = true;
  16494. if (data[i].GroupBy == true) {
  16495. groupby.push(data[i].ColumnValue);
  16496. }
  16497. if (data[i].GroupByCategory == true) {
  16498. categories.push(data[i].ColumnValue);
  16499. categories_text.push({ id: data[i].ColumnValue, text: data[i].ReportColumnName });
  16500. }
  16501. if (data[i].IsFilterable) {
  16502. $("#DropDown_IsFilterable_" + data[i].AliasName).removeClass('hidden');
  16503. }
  16504. else {
  16505. $("#DropDown_IsFilterable_" + data[i].AliasName).addClass('hidden');
  16506. }
  16507. if (data[i].IsPrimaryKey) {
  16508. $("#DropDown_IsPrimaryKey_" + data[i].AliasName).removeClass('hidden');
  16509. }
  16510. else {
  16511. $("#DropDown_IsPrimaryKey_" + data[i].AliasName).addClass('hidden');
  16512. }
  16513. if (data[i].IsContactColumn) {
  16514. $("#DropDown_IsContactColumn_" + data[i].AliasName).removeClass('hidden');
  16515. }
  16516. else {
  16517. $("#DropDown_IsContactColumn_" + data[i].AliasName).addClass('hidden');
  16518. }
  16519. instance._selectedColumns(selCol);
  16520. if (selCol.GroupByCategory) {
  16521. var html = instance._reportBuilderTemplate.loadSelect2Column(selCol.ColumnId, selCol.AliasName, selCol.DataType);
  16522. $("#categories_selected_columns").append(html);
  16523. instance.setSelectOption("categories_select");
  16524. }
  16525. if (data[i].TimeInterval != "" && data[i].TimeInterval != null) {
  16526. instance.TenureReport[data[i].ReportColumnName] = {
  16527. TimeInterval: data[i].TimeInterval
  16528. };
  16529. instance.TenureReport.length = instance.TenureReport.length + 1;
  16530. }
  16531. if (data[i].IsPivotColumn) {
  16532. instance.pivot.ColumnName = data[i].ReportColumnName;
  16533. yield instance.getDistinctData(0, data[i].ReportColumnName, data[i].PivotDateType);
  16534. }
  16535. if (data[i].IsPivotAggrColumn) {
  16536. instance.pivot.AggColumnName = data[i].ReportColumnName;
  16537. instance.pivot.AggFuncId = data[i].AggrFuncId;
  16538. }
  16539. if (data[i].PivotDateType != "") {
  16540. instance.pivot.DateType = data[i].PivotDateType;
  16541. }
  16542. if (data[i].IsPivotChildColumn) {
  16543. instance.pivot.ChildColumnName = pivotChildCol[0].ReportColumnName;
  16544. instance.pivot.ChildColumnValue = data[i].PivotValue;
  16545. instance.pivot.PivotValue_Selected = data[i].PivotValue;
  16546. instance.pivot.ParentColumnName = pivotParentCol[0].ReportColumnName;
  16547. }
  16548. }
  16549. instance.Categories = categories_text;
  16550. instance._chartBuilder.select2DataBinding("");
  16551. if (instance._pivot.pivotTypeId == Unibase.Platform.Analytics.Reports.Enums.PivotType.PivotTable) {
  16552. yield instance._pivot.loadPivotTable(instance.table);
  16553. instance.getSubReports(reportid);
  16554. instance.navigationHelper.hideLoading();
  16555. }
  16556. else {
  16557. yield instance.load_data(instance.table);
  16558. }
  16559. if (instance.TenureReport.length != 0) {
  16560. Unibase.Platform.Analytics.Reports.Tenure.Instance().CheckedTenure();
  16561. instance._chartBuilder.tenureChart('myChart', instance.reportid);
  16562. }
  16563. if (instance.reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Chart) {
  16564. if (instance.pivot.ColumnName) {
  16565. instance._chartBuilder.chartType('myChart');
  16566. }
  16567. }
  16568. var SearchCols = [];
  16569. for (var s = 0; s < searchcolumns.length; s++) {
  16570. if (searchcolumns[s] != "") {
  16571. let SearchCol_Index = instance.datalistColumnsResponseData.findIndex(x => x.ColumnName == searchcolumns[s]);
  16572. if (SearchCol_Index != -1) {
  16573. var col = instance.datalistColumnsResponseData[SearchCol_Index].ColumnId;
  16574. SearchCols.push(col);
  16575. }
  16576. }
  16577. }
  16578. $("#searchcolumns").val(SearchCols).trigger("change");
  16579. });
  16580. }
  16581. addParameter() {
  16582. let parameterHtml = "";
  16583. let parameterDropdownHtml = "";
  16584. let elementNumber = this.parameterNumber;
  16585. parameterHtml += `<div class="custom-control custom-radio adj-drawer-open" data-target="para_${elementNumber}">
  16586. <input type="radio" id="customRadio${elementNumber}" name="customRadio" class="custom-control-input">
  16587. <label class="custom-control-label d-flex justify-content-between" for="customRadio${elementNumber}"> Parameter ${elementNumber} <a class="btn btn-xs btn-icon btn-flush-dark btn-rounded flush-soft-hover float-right" href="javascript:;" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().removeSelectParameter('para_${elementNumber}')"><span class="btn-icon-wrap"><span class="line-icon"><i class="las la-times font-16"></i></span></span></a></label>
  16588. </div>`;
  16589. $("#parameter-options").append(parameterHtml);
  16590. parameterDropdownHtml += `<div id="para_${elementNumber}" class="biz-mini-adj-drawer">
  16591. <header>
  16592. <h6>Parameter ${elementNumber}</h6>
  16593. <span class="close btn-mini-drawer-close"></span>
  16594. </header>
  16595. <div class="drawer-body">
  16596. <div class="nicescroll-bar">
  16597. <p>All option related to parameter will be listed here</p>
  16598. </div>
  16599. </div>
  16600. <footer>
  16601. <a href="#" class="btn btn-light btn-mini-drawer-close mr-10">clear</a>
  16602. <a href="#" class="btn btn-theme btn-mini-drawer-close">save</a>
  16603. </footer>
  16604. </div>`;
  16605. $("#parameter-dropdown").append(parameterDropdownHtml);
  16606. let para = `para_${elementNumber}`;
  16607. let obj = { paraId: para };
  16608. this.parameterArray.push(obj);
  16609. this.parameterNumber++;
  16610. }
  16611. removeSelectParameter(paraId) {
  16612. var instance = this;
  16613. for (var i = 0; i < instance.parameterArray.length; i++)
  16614. if (instance.parameterArray[i].paraId === paraId) {
  16615. instance.parameterArray.splice(i, 1);
  16616. $("#parameter-options").find('[data-target = ' + paraId + ']').remove();
  16617. $("#parameter-dropdown").find('#' + paraId).remove();
  16618. break;
  16619. }
  16620. }
  16621. error(name) {
  16622. return MessageHelper.Instance().showError('Column -"' + name + '" Already Exists. Please change display text and try again', 'div_ReportBuilderErrorMessage');
  16623. }
  16624. isNotificationCheck() {
  16625. var instance = this;
  16626. var tenantindex = instance.selectedColumns.findIndex(x => x.ColumnName == "tenantid");
  16627. var versionguidindex = instance.selectedColumns.findIndex(x => x.ColumnName == "versionguid");
  16628. if ($('#notification_checkbox').prop('checked') == true) {
  16629. if (tenantindex == -1) {
  16630. let tenantcol = instance.datalistColumnsResponseData.find(d => d.ColumnName == "tenantid");
  16631. if (tenantcol) {
  16632. tenantcol.Isvisible = true;
  16633. instance._selectedColumns(tenantcol);
  16634. }
  16635. else {
  16636. $('#notification_checkbox').prop('checked', false);
  16637. return MessageHelper.Instance().showError("tenantid Column doesn't exist", "div_ReportBuilderErrorMessage");
  16638. }
  16639. if (versionguidindex > -1)
  16640. instance.load_data(instance.table);
  16641. }
  16642. if (versionguidindex == -1) {
  16643. let versionguidcol = instance.datalistColumnsResponseData.find(d => d.ColumnName == "versionguid");
  16644. if (versionguidcol) {
  16645. versionguidcol.Isvisible = true;
  16646. instance._selectedColumns(versionguidcol);
  16647. }
  16648. else {
  16649. $('#notification_checkbox').prop('checked', false);
  16650. return MessageHelper.Instance().showError("versionguid Column doesn't exist", "div_ReportBuilderErrorMessage");
  16651. }
  16652. if (tenantindex > -1)
  16653. instance.load_data(instance.table);
  16654. }
  16655. instance.IsNotification = true;
  16656. }
  16657. else {
  16658. instance.IsNotification = false;
  16659. if (tenantindex > -1)
  16660. instance.selectedColumns.splice(tenantindex);
  16661. if (versionguidindex > -1)
  16662. instance.selectedColumns.splice(versionguidindex);
  16663. return instance.load_data(instance.table);
  16664. }
  16665. if (tenantindex == -1 && versionguidindex == -1 || tenantindex > -1 && versionguidindex > -1)
  16666. instance.load_data(instance.table);
  16667. }
  16668. getSelectedColumns_Select2_Data() {
  16669. let data = [{ id: "0", text: "- Select Columns -" }];
  16670. for (var i = 0; i < this.selectedColumns.length; i++) {
  16671. data.push({ id: this.selectedColumns[i].ColumnId, text: this.selectedColumns[i].AliasName });
  16672. }
  16673. return data;
  16674. }
  16675. getSelectedColumns_Select2_Data_AliasName_As_TextValue() {
  16676. let data = [{ id: "0", text: "- Select Columns -" }];
  16677. for (var i = 0; i < this.selectedColumns.length; i++) {
  16678. data.push({ id: this.selectedColumns[i].AliasName, text: this.selectedColumns[i].AliasName });
  16679. }
  16680. return data;
  16681. }
  16682. getSelect2DataForDynamicFiltersDatalistColumns() {
  16683. let data = [{ id: "0", text: "- Select Columns -" }];
  16684. for (var i = 0; i < this.datalistColumnsResponseData.length; i++) {
  16685. data.push({ id: this.datalistColumnsResponseData[i].ColumnId, text: this.datalistColumnsResponseData[i].AliasName });
  16686. }
  16687. return data;
  16688. }
  16689. bindSearchColumns() {
  16690. var searchcolumns = this.SearchColumns.split('|');
  16691. var SearchCols = [];
  16692. for (var s = 0; s < searchcolumns.length; s++) {
  16693. if (searchcolumns[s] != "") {
  16694. let SearchCol_Index = this.selectedColumns.findIndex(x => x.AliasName == searchcolumns[s]);
  16695. if (SearchCol_Index != -1) {
  16696. var col = this.selectedColumns[SearchCol_Index].ColumnId;
  16697. SearchCols.push(col);
  16698. }
  16699. }
  16700. }
  16701. $("#searchcolumns").val(searchcolumns).trigger("change");
  16702. }
  16703. changeDisplayname() {
  16704. $("#txt_displayname").val($("#txt_reportname").val());
  16705. }
  16706. getSortColumnsStringify() {
  16707. let SortArry = [];
  16708. for (var i = 0; i < this.SortColumns.length; i++) {
  16709. var col = this.SortColumns.find(x => x.SortIndex == i);
  16710. if (col)
  16711. SortArry.push({ Name: col.DisplayText, Order: col.SortOrder });
  16712. }
  16713. return SortArry.length ? JSON.stringify(SortArry) : "";
  16714. }
  16715. bindConnectedReportsSelect2(id) {
  16716. var url = _appsettings.server_url() + '/apis/v4/unibase/platform/analytics/reportsautocompletevalueasuniqueid';
  16717. AutoCompleteHelper.getHelper().Create(id, "hfReportAutoComplete", url, null);
  16718. }
  16719. removeAndUpdateStringfiedSortColumns(AliasName) {
  16720. let index = this.SortColumns.findIndex(i => i.DisplayText === AliasName);
  16721. if (index != -1) {
  16722. this.SortColumns.splice(index, 1);
  16723. let item = `#sort_selected_columns #dsl_column_${AliasName}`;
  16724. $(item).remove();
  16725. this.stringifyed_SortColumns = this.getSortColumnsStringify();
  16726. }
  16727. }
  16728. isDownload(columnId, aliasName) {
  16729. var instance = this;
  16730. let index = instance.getIndexByAliasName_selectedColumnsArray(aliasName);
  16731. if (index > -1) {
  16732. if ($("#isDownload_" + columnId).prop("checked") == true) {
  16733. instance.selectedColumns[index].IsDownload = true;
  16734. }
  16735. else {
  16736. instance.selectedColumns[index].IsDownload = false;
  16737. }
  16738. }
  16739. }
  16740. isNumFormatting(columnId, aliasName) {
  16741. var instance = this;
  16742. let index = instance.getIndexByAliasName_selectedColumnsArray(aliasName);
  16743. if (index > -1) {
  16744. if ($("#isNumFormatting_" + columnId).prop("checked") == true) {
  16745. instance.selectedColumns[index].IsNumFormatting = true;
  16746. }
  16747. else {
  16748. instance.selectedColumns[index].IsNumFormatting = false;
  16749. }
  16750. }
  16751. }
  16752. isRowTotal(columnId, aliasName) {
  16753. var instance = this;
  16754. let index = instance.getIndexByAliasName_selectedColumnsArray(aliasName);
  16755. if (index > -1) {
  16756. if ($("#isRowTotal_" + columnId).prop("checked") == true) {
  16757. instance.selectedColumns[index].IsRowTotal = true;
  16758. }
  16759. else {
  16760. instance.selectedColumns[index].IsRowTotal = false;
  16761. }
  16762. }
  16763. }
  16764. isImageUrl(columnId, aliasName) {
  16765. var instance = this;
  16766. let index = instance.getIndexByAliasName_selectedColumnsArray(aliasName);
  16767. if (index > -1) {
  16768. if ($("#isimageurl_" + columnId).prop("checked") == true) {
  16769. instance.selectedColumns[index].IsImageUrl = true;
  16770. }
  16771. else {
  16772. instance.selectedColumns[index].IsImageUrl = false;
  16773. }
  16774. }
  16775. }
  16776. updateDynamicFilterIndex() {
  16777. $("#dynamic-list-group-wrapper").children().each((i, e) => {
  16778. let colAliasName = $(e).data("isfilterablecolumn");
  16779. if (colAliasName) {
  16780. let idx = this.dynamicFilters.findIndex(x => x.IsFilterableColumn == colAliasName);
  16781. if (idx != -1) {
  16782. this.dynamicFilters[idx].Index = i;
  16783. }
  16784. }
  16785. });
  16786. }
  16787. updateInternalReportCb(isInternalreport, disabled) {
  16788. $("#internalreport_checkbox").prop('checked', isInternalreport).attr("disabled", disabled);
  16789. }
  16790. togglePinDynamicFilters() {
  16791. const instance = this;
  16792. const filter = instance.dynamicFilters.find(x => x.IsRequired === true);
  16793. if (filter) {
  16794. $('#pindynamicfilters_checkbox').prop({ 'checked': true, 'disabled': true });
  16795. }
  16796. else if (!instance.pinDynamicFilters) {
  16797. $('#pindynamicfilters_checkbox').prop({ 'checked': false, 'disabled': false });
  16798. }
  16799. else {
  16800. $('#pindynamicfilters_checkbox').prop('disabled', false);
  16801. }
  16802. }
  16803. static Instance() {
  16804. if (this.rb_instance === undefined) {
  16805. this.rb_instance = new ReportBuilder();
  16806. }
  16807. return this.rb_instance;
  16808. }
  16809. }
  16810. Reports.ReportBuilder = ReportBuilder;
  16811. })(Reports = Analytics.Reports || (Analytics.Reports = {}));
  16812. })(Analytics = Platform.Analytics || (Platform.Analytics = {}));
  16813. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  16814. })(Unibase || (Unibase = {}));
  16815. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
  16816. function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  16817. return new (P || (P = Promise))(function (resolve, reject) {
  16818. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  16819. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  16820. function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
  16821. step((generator = generator.apply(thisArg, _arguments || [])).next());
  16822. });
  16823. };
  16824. var Unibase;
  16825. (function (Unibase) {
  16826. let Platform;
  16827. (function (Platform) {
  16828. let Analytics;
  16829. (function (Analytics) {
  16830. let Managers;
  16831. (function (Managers) {
  16832. class ReportManager extends Platform.Core.BaseManager {
  16833. updatecolumns(reportid) {
  16834. return __awaiter(this, void 0, void 0, function* () {
  16835. const url = 'apis/v4/unibase/platform/analytics/datalistcolumnstring/reportid/' + reportid;
  16836. return yield this.dataHelper().getAsync(url).then(function (response) {
  16837. return response;
  16838. });
  16839. });
  16840. }
  16841. getViewableReports() {
  16842. return __awaiter(this, void 0, void 0, function* () {
  16843. const url = 'apis/v4/unibase/platform/analytics/viewablereportgroups';
  16844. var groups;
  16845. return yield this.dataHelper().getAsync(url).then(function (response) {
  16846. if (response.result !== null)
  16847. response.result = JSON.parse(response.result);
  16848. return response;
  16849. });
  16850. });
  16851. }
  16852. getViewableReportsByparentgroupid(parentid) {
  16853. return __awaiter(this, void 0, void 0, function* () {
  16854. const url = 'apis/v4/unibase/platform/analytics/viewablereportgroupswithparent/' + parentid;
  16855. return yield this.dataHelper().getAsync(url).then(function (response) {
  16856. if (response.result !== null)
  16857. response.result = JSON.parse(response.result);
  16858. return response;
  16859. });
  16860. });
  16861. }
  16862. getReportGroupById(reportgroupid) {
  16863. return __awaiter(this, void 0, void 0, function* () {
  16864. const url = 'apis/v4/unibase/platform/analytics/reportgroup/reportgroupid/' + reportgroupid;
  16865. var groups;
  16866. return yield this.dataHelper().getAsync(url).then(function (response) {
  16867. if (response.result !== null)
  16868. response.result = JSON.parse(response.result);
  16869. return response;
  16870. });
  16871. });
  16872. }
  16873. getReportGroupByName(groupname) {
  16874. return __awaiter(this, void 0, void 0, function* () {
  16875. const url = 'apis/v4/unibase/platform/analytics/reportgroupname/reportgroupname/' + groupname;
  16876. var groups;
  16877. return yield this.dataHelper().getAsync(url).then(function (response) {
  16878. if (response.result !== null && response.result !== "")
  16879. response.result = JSON.parse(response.result);
  16880. return response;
  16881. });
  16882. });
  16883. }
  16884. saveReportGroup(obj) {
  16885. return __awaiter(this, void 0, void 0, function* () {
  16886. const url = 'apis/v4/unibase/platform/analytics/savereportgroup';
  16887. return yield this.dataHelper().postAsync(url, obj).then(function (response) {
  16888. return response;
  16889. });
  16890. });
  16891. }
  16892. exportGroupreports(reportgroupid) {
  16893. return __awaiter(this, void 0, void 0, function* () {
  16894. const url = 'apis/v4/unibase/platform/analytics/exportgroupreports/reportgroupid/' + reportgroupid;
  16895. return yield this.dataHelper().getAsync(url).then(function (response) {
  16896. return response;
  16897. });
  16898. });
  16899. }
  16900. deleteReportGroup(reportgroupid) {
  16901. return __awaiter(this, void 0, void 0, function* () {
  16902. const url = 'apis/v4/unibase/platform/analytics/deletereportgroup/reportgroupid/' + reportgroupid;
  16903. return yield this.dataHelper().postAsync(url, null).then(function (response) {
  16904. return response;
  16905. });
  16906. });
  16907. }
  16908. getReportGroups() {
  16909. return __awaiter(this, void 0, void 0, function* () {
  16910. const url = 'apis/v4/bizgaze/integrations/reportgroup/getreportfolders';
  16911. return yield this.dataHelper().getAsync(url).then(function (response) {
  16912. if (response.result !== null)
  16913. response.result = JSON.parse(response.result);
  16914. return response;
  16915. });
  16916. });
  16917. }
  16918. getReportsbyGroupId(groupid) {
  16919. return __awaiter(this, void 0, void 0, function* () {
  16920. const url = 'apis/v4/bizgaze/integrations/reportgroup/getreportbygroupid/reportgroupid/' + groupid;
  16921. return yield this.dataHelper().getAsync(url).then(function (response) {
  16922. if (response.result !== null)
  16923. response.result = JSON.parse(response.result);
  16924. return response;
  16925. });
  16926. });
  16927. }
  16928. checkReportGroupDependency(groupid, parentGroupId) {
  16929. return __awaiter(this, void 0, void 0, function* () {
  16930. const url = 'apis/v4/unibase/platform/analytics/checkreportgroupdependency/groupid/' + groupid + '/parentgroupid/' + parentGroupId;
  16931. return yield this.dataHelper().getAsync(url).then(function (response) {
  16932. if (response.result !== null)
  16933. response.result = JSON.parse(response.result);
  16934. return response;
  16935. });
  16936. });
  16937. }
  16938. updateReportGroupStatus(groupid, statusId) {
  16939. return __awaiter(this, void 0, void 0, function* () {
  16940. const url = 'apis/v4/unibase/platform/analytics/updatereportgroupstatus/reportgroupid/' + groupid + '/statusid/' + statusId;
  16941. return yield this.dataHelper().postAsync(url, null).then(function (response) {
  16942. if (response.result !== null)
  16943. response.result = JSON.parse(response.result);
  16944. return response;
  16945. });
  16946. });
  16947. }
  16948. getReportById(reportid) {
  16949. return __awaiter(this, void 0, void 0, function* () {
  16950. const url = 'apis/v4/unibase/platform/analytics/report/' + reportid;
  16951. return yield this.dataHelper().getAsync(url).then(function (response) {
  16952. if (response.result !== null)
  16953. response.result = JSON.parse(response.result);
  16954. return response;
  16955. });
  16956. });
  16957. }
  16958. getReportByUniqueId(uniqueid) {
  16959. return __awaiter(this, void 0, void 0, function* () {
  16960. const url = 'apis/v4/unibase/platform/analytics/reportbyuniqueid/' + uniqueid;
  16961. return yield this.dataHelper().getAsync(url).then(function (response) {
  16962. if (response.result != "" && response.result !== null)
  16963. response.result = JSON.parse(response.result);
  16964. return response;
  16965. });
  16966. });
  16967. }
  16968. getReportByUniqueIdEncoded(encodedUniqueId) {
  16969. return __awaiter(this, void 0, void 0, function* () {
  16970. const url = 'apis/v4/unibase/platform/analytics/reportbyuniqueidencoded/' + encodedUniqueId;
  16971. return yield this.dataHelper().getAsync(url).then(function (response) {
  16972. if (response.result != "" && response.result !== null)
  16973. response.result = JSON.parse(response.result);
  16974. return response;
  16975. });
  16976. });
  16977. }
  16978. getReports() {
  16979. return __awaiter(this, void 0, void 0, function* () {
  16980. const url = 'apis/v4/unibase/platform/analytics/getallreports';
  16981. var reports;
  16982. return yield this.dataHelper().getAsync(url).then(function (response) {
  16983. reports = JSON.parse(response.result);
  16984. return reports;
  16985. });
  16986. });
  16987. }
  16988. getReportCategoriesByReportId(reportid) {
  16989. return __awaiter(this, void 0, void 0, function* () {
  16990. const url = 'apis/v4/unibase/platform/analytics/reportcategories/reportid/' + reportid;
  16991. return yield this.dataHelper().getAsync(url).then(function (response) {
  16992. return response;
  16993. });
  16994. });
  16995. }
  16996. getReportInfo(repObj) {
  16997. return __awaiter(this, void 0, void 0, function* () {
  16998. const url = 'apis/v4/unibase/platform/analytics/reportinfo';
  16999. return yield this.dataHelper().postAsync(url, repObj).then(function (response) {
  17000. if (response.result !== null) {
  17001. response.result = JSON.parse(response.result);
  17002. }
  17003. return response;
  17004. });
  17005. });
  17006. }
  17007. getFullReportInfo(reportid) {
  17008. return __awaiter(this, void 0, void 0, function* () {
  17009. const url = `apis/v4/unibase/platform/analytics/getfullreportinfo/${reportid}`;
  17010. return yield this.dataHelper().getAsync(url).then(function (response) {
  17011. if (response.result !== null) {
  17012. response.result = JSON.parse(response.result);
  17013. }
  17014. return response;
  17015. });
  17016. });
  17017. }
  17018. getSubReports(reportid) {
  17019. return __awaiter(this, void 0, void 0, function* () {
  17020. let term = null;
  17021. const url = 'apis/v4/unibase/platform/analytics/subreports/reportid/' + reportid;
  17022. return yield this.dataHelper().getAsync(url).then(function (response) {
  17023. if (response.result)
  17024. response.result = JSON.parse(response.result);
  17025. return response;
  17026. });
  17027. });
  17028. }
  17029. getSubReportById(reportid) {
  17030. return __awaiter(this, void 0, void 0, function* () {
  17031. let term = null;
  17032. const url = 'apis/v4/unibase/platform/analytics/subreportsbyid/subreportid/' + reportid;
  17033. return yield this.dataHelper().getAsync(url).then(function (response) {
  17034. if (response.result)
  17035. response.result = JSON.parse(response.result);
  17036. return response;
  17037. });
  17038. });
  17039. }
  17040. saveReport(obj) {
  17041. return __awaiter(this, void 0, void 0, function* () {
  17042. const url = 'apis/v4/unibase/platform/analytics/report';
  17043. return yield this.dataHelper().postAsync(url, obj).then(function (response) {
  17044. return response;
  17045. });
  17046. });
  17047. }
  17048. deleteReport(reportid) {
  17049. return __awaiter(this, void 0, void 0, function* () {
  17050. const url = 'apis/v4/unibase/platform/analytics/deletereport/reportid/' + reportid;
  17051. return yield this.dataHelper().postAsync(url, null).then(function (response) {
  17052. return response;
  17053. });
  17054. });
  17055. }
  17056. getColumns(reportid) {
  17057. return __awaiter(this, void 0, void 0, function* () {
  17058. let term = null;
  17059. const url = 'apis/v4/unibase/platform/analytics/reportcolumns/reportid/' + reportid;
  17060. return yield this.dataHelper().getAsync(url).then(function (response) {
  17061. if (response.result !== null) {
  17062. response.result = JSON.parse(response.result);
  17063. }
  17064. return response;
  17065. });
  17066. });
  17067. }
  17068. getIsContactReportColumns(reportid) {
  17069. return __awaiter(this, void 0, void 0, function* () {
  17070. let term = null;
  17071. const url = 'apis/v4/unibase/platform/analytics/getiscontactreportcolumns/reportid/' + reportid;
  17072. return yield this.dataHelper().getAsync(url).then(function (response) {
  17073. if (response.result !== null) {
  17074. response.result = JSON.parse(response.result);
  17075. }
  17076. return response;
  17077. });
  17078. });
  17079. }
  17080. getReportColumnsByAppId(installedAppId) {
  17081. return __awaiter(this, void 0, void 0, function* () {
  17082. const url = 'apis/v4/unibase/platform/analytics/getreportcolumnsbyappid/installedappid/' + installedAppId;
  17083. return yield this.dataHelper().getAsync(url).then(function (response) {
  17084. if (response.result !== null) {
  17085. response.result = JSON.parse(response.result);
  17086. }
  17087. return response;
  17088. });
  17089. });
  17090. }
  17091. getReportColumnByAliasName(reportid, aliasName) {
  17092. return __awaiter(this, void 0, void 0, function* () {
  17093. const url = 'apis/v4/unibase/platform/analytics/getreportcolumnbyaliasname/reportid/' + reportid + '/aliasname/' + aliasName;
  17094. return yield this.dataHelper().getAsync(url).then(function (response) {
  17095. if (response.result !== null) {
  17096. response.result = JSON.parse(response.result);
  17097. }
  17098. return response;
  17099. });
  17100. });
  17101. }
  17102. getDataLists() {
  17103. return __awaiter(this, void 0, void 0, function* () {
  17104. const url = 'apis/v4/unibase/platform/datalists/getallnoninternaldatalists';
  17105. var dataList;
  17106. return yield this.dataHelper().getAsync(url).then(function (response) {
  17107. dataList = JSON.parse(response.result);
  17108. return dataList;
  17109. });
  17110. });
  17111. }
  17112. getDataListColumns(datalistid, term, parameters) {
  17113. return __awaiter(this, void 0, void 0, function* () {
  17114. const url = 'apis/v4/unibase/platform/analytics/datalistcolumns/datalistid/' + datalistid + '/term/' + term + '/parameters/' + parameters;
  17115. return yield this.dataHelper().getAsync(url).then(function (response) {
  17116. return response;
  17117. });
  17118. });
  17119. }
  17120. getTableData(postdata) {
  17121. return __awaiter(this, void 0, void 0, function* () {
  17122. const url = 'apis/v4/unibase/platform/analytics/reportpreviewdata';
  17123. return yield this.dataHelper().postAsync(url, postdata).then(function (response) {
  17124. return response;
  17125. });
  17126. });
  17127. }
  17128. getTenureData(postdata) {
  17129. return __awaiter(this, void 0, void 0, function* () {
  17130. const url = 'apis/v4/unibase/platform/analytics/tenuredata';
  17131. return yield this.dataHelper().postAsync(url, postdata).then(function (response) {
  17132. return JSON.parse(response.result);
  17133. });
  17134. });
  17135. }
  17136. getReportNamesByGroup(reportgroupid) {
  17137. return __awaiter(this, void 0, void 0, function* () {
  17138. const url = 'apis/v4/unibase/platform/analytics/reports/reportgroupid/' + reportgroupid;
  17139. var reportDetails;
  17140. return yield this.dataHelper().getAsync(url).then(function (response) {
  17141. if (response.result !== null)
  17142. response.result = JSON.parse(response.result);
  17143. return response;
  17144. });
  17145. });
  17146. }
  17147. refreshReports() {
  17148. return __awaiter(this, void 0, void 0, function* () {
  17149. const url = 'apis/v4/unibase/platform/analytics/refreshreports/np';
  17150. return yield this.dataHelper().postAsync(url, "{}").then(function (response) {
  17151. return response.message;
  17152. });
  17153. });
  17154. }
  17155. getHeaderColumns(reportid) {
  17156. return __awaiter(this, void 0, void 0, function* () {
  17157. const url = 'apis/v4/unibase/platform/analytics/headers/reportid/' + reportid;
  17158. var headers;
  17159. return yield this.dataHelper().getAsync(url).then(function (response) {
  17160. headers = JSON.parse(response.result);
  17161. return headers;
  17162. });
  17163. });
  17164. }
  17165. getDynamicFilterData(reportid, columnname) {
  17166. return __awaiter(this, void 0, void 0, function* () {
  17167. const url = 'apis/v4/unibase/platform/analytics/dynamicfilterdata/reportid/' + reportid + '/columnname/' + columnname;
  17168. var dynamicfilters;
  17169. return yield this.dataHelper().getAsync(url).then(function (response) {
  17170. dynamicfilters = JSON.parse(response.result);
  17171. return dynamicfilters;
  17172. });
  17173. });
  17174. }
  17175. getDynamicFilterCascadingData(dynamicFilObj) {
  17176. return __awaiter(this, void 0, void 0, function* () {
  17177. const url = 'apis/v4/unibase/platform/analytics/dynamicfiltercascadingdata';
  17178. return yield this.dataHelper().postAsync(url, dynamicFilObj).then(function (response) {
  17179. return response;
  17180. });
  17181. });
  17182. }
  17183. getDynamicFilters(reportid) {
  17184. return __awaiter(this, void 0, void 0, function* () {
  17185. const url = 'apis/v4/unibase/platform/analytics/dynamicfilters/reportid/' + reportid;
  17186. var commonfilters;
  17187. return yield this.dataHelper().getAsync(url).then(function (response) {
  17188. commonfilters = JSON.parse(response.result);
  17189. return commonfilters;
  17190. });
  17191. });
  17192. }
  17193. getReportViewerData(repObj) {
  17194. return __awaiter(this, void 0, void 0, function* () {
  17195. const url = 'apis/v4/unibase/platform/analytics/tabledata';
  17196. return yield this.dataHelper().postAsync(url, repObj).then(function (response) {
  17197. return response;
  17198. });
  17199. });
  17200. }
  17201. getReportCount(repObj) {
  17202. return __awaiter(this, void 0, void 0, function* () {
  17203. const url = 'apis/v4/unibase/platform/analytics/tablecount';
  17204. return yield this.dataHelper().postAsync(url, repObj).then(function (response) {
  17205. return response;
  17206. });
  17207. });
  17208. }
  17209. getDistinctColumnData(datalistid, columnname, aggregationtypeid, fromdate, todate) {
  17210. return __awaiter(this, void 0, void 0, function* () {
  17211. const url = 'apis/v4/unibase/platform/analytics/distinctcolumndata/datalistid/' + datalistid + '/columnname/' + columnname + '/aggregationtypeid/' + aggregationtypeid + '/fromdate/' + fromdate + '/todate/' + todate;
  17212. return yield this.dataHelper().getAsync(url).then(function (response) {
  17213. if (response.result) {
  17214. response.result = JSON.parse(response.result);
  17215. }
  17216. return response.result;
  17217. });
  17218. });
  17219. }
  17220. startDownloadLargeFile(repObj) {
  17221. return __awaiter(this, void 0, void 0, function* () {
  17222. const url = 'apis/v4/unibase/platform/analytics/downloadreportlargefile';
  17223. return yield this.dataHelper().postAsync(url, repObj).then(function (response) {
  17224. return response;
  17225. });
  17226. });
  17227. }
  17228. deleteDynamicFilter(reportid) {
  17229. return __awaiter(this, void 0, void 0, function* () {
  17230. const url = 'apis/v4/unibase/platform/analytics/deletedynamicfilter/reportid/' + reportid;
  17231. return yield this.dataHelper().postAsync(url, null).then(function (response) {
  17232. return response;
  17233. });
  17234. });
  17235. }
  17236. getCommonFilters(portletid) {
  17237. return __awaiter(this, void 0, void 0, function* () {
  17238. const url = 'apis/v4/unibase/platform/analytics/commonfilters/portletid/' + portletid;
  17239. var commonfilters;
  17240. return yield this.dataHelper().getAsync(url).then(function (response) {
  17241. if (response.result != "")
  17242. commonfilters = JSON.parse(response.result);
  17243. return commonfilters;
  17244. });
  17245. });
  17246. }
  17247. getCommonFilterColumns(portletid) {
  17248. return __awaiter(this, void 0, void 0, function* () {
  17249. const url = 'apis/v4/unibase/platform/analytics/commonfiltercolumns/portletid/' + portletid;
  17250. var commonfiltercolumns;
  17251. return yield this.dataHelper().getAsync(url).then(function (response) {
  17252. commonfiltercolumns = JSON.parse(response.result);
  17253. return commonfiltercolumns;
  17254. });
  17255. });
  17256. }
  17257. getCommonFilterColumnsByCommonFilterId(commonfilterid) {
  17258. return __awaiter(this, void 0, void 0, function* () {
  17259. const url = 'apis/v4/unibase/platform/analytics/commonfiltercolumnsbycommonfilterid/commonfilterid/' + commonfilterid;
  17260. var commonfiltercolumns;
  17261. return yield this.dataHelper().getAsync(url).then(function (response) {
  17262. commonfiltercolumns = JSON.parse(response.result);
  17263. return commonfiltercolumns;
  17264. });
  17265. });
  17266. }
  17267. getCommonFiltersByWidgetId(widgetid) {
  17268. return __awaiter(this, void 0, void 0, function* () {
  17269. const url = 'apis/v4/unibase/platform/analytics/commonfiltercolumnsbywidgetid/widgetid/' + widgetid;
  17270. var commonfiltercolumns;
  17271. return yield this.dataHelper().getAsync(url).then(function (response) {
  17272. commonfiltercolumns = JSON.parse(response.result);
  17273. return commonfiltercolumns;
  17274. });
  17275. });
  17276. }
  17277. getCommonFilterColumnData(cfObj) {
  17278. return __awaiter(this, void 0, void 0, function* () {
  17279. const url = 'apis/v4/unibase/platform/analytics/commonfiltercolumndata';
  17280. return yield this.dataHelper().postAsync(url, cfObj).then(function (response) {
  17281. return response;
  17282. });
  17283. });
  17284. }
  17285. getCommonFilterTreeData(cfObj) {
  17286. return __awaiter(this, void 0, void 0, function* () {
  17287. const url = 'apis/v4/unibase/platform/analytics/getcommonfiltertreedata';
  17288. return yield this.dataHelper().postAsync(url, cfObj).then(function (response) {
  17289. return response;
  17290. });
  17291. });
  17292. }
  17293. deleteCommonFilterColumnId(commonfiltercolumnid) {
  17294. return __awaiter(this, void 0, void 0, function* () {
  17295. const url = 'apis/v4/unibase/platform/analytics/deletecommonfiltercolumn/commonfiltercolumnid/' + commonfiltercolumnid;
  17296. return yield this.dataHelper().postAsync(url, commonfiltercolumnid).then(function (response) {
  17297. return response;
  17298. });
  17299. });
  17300. }
  17301. deleteCommonFilter(commonfilterid) {
  17302. return __awaiter(this, void 0, void 0, function* () {
  17303. const url = 'apis/v4/unibase/platform/analytics/deletecommonfilter/commonfilterid/' + commonfilterid;
  17304. return yield this.dataHelper().postAsync(url, commonfilterid).then(function (response) {
  17305. return response;
  17306. });
  17307. });
  17308. }
  17309. exportCommonFilter(commonfilterid, portletId) {
  17310. return __awaiter(this, void 0, void 0, function* () {
  17311. const url = 'apis/v4/unibase/platform/analytics/exportcommonfilters/commonfilterid/' + commonfilterid + "/portletid/" + portletId;
  17312. return yield this.dataHelper().getAsync(url).then(function (response) {
  17313. return response;
  17314. });
  17315. });
  17316. }
  17317. exportReports() {
  17318. return __awaiter(this, void 0, void 0, function* () {
  17319. const url = 'apis/v4/unibase/platform/analytics/exportreports/';
  17320. return yield this.dataHelper().getAsync(url).then(function (response) {
  17321. return response;
  17322. });
  17323. });
  17324. }
  17325. exportreport(reportid) {
  17326. return __awaiter(this, void 0, void 0, function* () {
  17327. const url = 'apis/v4/unibase/platform/analytics/exportreport/reportid/' + reportid;
  17328. return yield this.dataHelper().getAsync(url).then(function (response) {
  17329. return response;
  17330. });
  17331. });
  17332. }
  17333. getReportRoles(reportid) {
  17334. return __awaiter(this, void 0, void 0, function* () {
  17335. const url = 'apis/v4/unibase/platform/analytics/reportroles/reportid/' + reportid;
  17336. return yield this.dataHelper().getAsync(url).then(function (response) {
  17337. if (response.result !== null)
  17338. response.result = JSON.parse(response.result);
  17339. return response;
  17340. });
  17341. });
  17342. }
  17343. addReportRole(obj) {
  17344. return __awaiter(this, void 0, void 0, function* () {
  17345. const url = 'apis/v4/unibase/platform/analytics/savereportrole';
  17346. return yield this.dataHelper().postAsync(url, obj).then(function (response) {
  17347. if (response.result !== null)
  17348. response.result = JSON.parse(response.result);
  17349. return response;
  17350. });
  17351. });
  17352. }
  17353. removeReportRole(obj) {
  17354. return __awaiter(this, void 0, void 0, function* () {
  17355. const url = 'apis/v4/unibase/platform/analytics/removereportrole';
  17356. return yield this.dataHelper().postAsync(url, obj).then(function (response) {
  17357. if (response.result !== null)
  17358. response.result = JSON.parse(response.result);
  17359. return response;
  17360. });
  17361. });
  17362. }
  17363. setViewable(reportId, viewAll) {
  17364. return __awaiter(this, void 0, void 0, function* () {
  17365. const url = 'apis/v4/unibase/platform/analytics/setasviewable/reportid/' + reportId + '/viewall/' + viewAll;
  17366. return yield this.dataHelper().postAsync(url, null).then(function (response) {
  17367. if (response.result !== null)
  17368. response.result = JSON.parse(response.result);
  17369. return response;
  17370. });
  17371. });
  17372. }
  17373. saveReportRoleSettings(obj) {
  17374. return __awaiter(this, void 0, void 0, function* () {
  17375. const url = 'apis/v4/unibase/platform/analytics/savereportrolesetting';
  17376. return yield this.dataHelper().postAsync(url, obj).then(function (response) {
  17377. if (response.result !== null)
  17378. response.result = JSON.parse(response.result);
  17379. return response;
  17380. });
  17381. });
  17382. }
  17383. refreshStaticObj(reportid) {
  17384. return __awaiter(this, void 0, void 0, function* () {
  17385. const url = 'apis/v4/unibase/platform/analytics/refreshstaticreportobj/reportid/' + reportid;
  17386. return yield this.dataHelper().getAsync(url).then(function (response) {
  17387. return response;
  17388. });
  17389. });
  17390. }
  17391. saveDynamicFilter(reportid, array) {
  17392. return __awaiter(this, void 0, void 0, function* () {
  17393. const url = 'apis/v4/unibase/platform/analytics/savedynamicfilter/' + reportid + "/List";
  17394. return yield this.dataHelper().postAsync(url, array).then(function (response) {
  17395. return response;
  17396. });
  17397. });
  17398. }
  17399. updateReportStatus(reportid, statusid) {
  17400. return __awaiter(this, void 0, void 0, function* () {
  17401. const url = 'apis/v4/unibase/platform/analytics/updatereportstatus/reportid/' + reportid + "/statusid/" + statusid;
  17402. return yield this.dataHelper().postAsync(url, null).then(function (response) {
  17403. return response;
  17404. });
  17405. });
  17406. }
  17407. duplicateReport(obj) {
  17408. return __awaiter(this, void 0, void 0, function* () {
  17409. const url = 'apis/v4/unibase/platform/analytics/duplicatereport';
  17410. return yield this.dataHelper().postAsync(url, obj).then(function (response) {
  17411. return response;
  17412. });
  17413. });
  17414. }
  17415. exportDynamicFilters(reportId) {
  17416. return __awaiter(this, void 0, void 0, function* () {
  17417. const url = 'apis/v4/unibase/platform/analytics/exportdynamicfilters/reportid/' + reportId;
  17418. return yield this.dataHelper().getAsync(url).then(function (response) {
  17419. return response;
  17420. });
  17421. });
  17422. }
  17423. static Instance() {
  17424. if (this._instance === undefined)
  17425. this._instance = new ReportManager();
  17426. return this._instance;
  17427. }
  17428. }
  17429. Managers.ReportManager = ReportManager;
  17430. })(Managers = Analytics.Managers || (Analytics.Managers = {}));
  17431. })(Analytics = Platform.Analytics || (Platform.Analytics = {}));
  17432. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  17433. })(Unibase || (Unibase = {}));
  17434. var Unibase;
  17435. (function (Unibase) {
  17436. let Platform;
  17437. (function (Platform) {
  17438. let Analytics;
  17439. (function (Analytics) {
  17440. let Components;
  17441. (function (Components) {
  17442. class WidgetReportviewer extends Components._ReportViewer {
  17443. constructor() {
  17444. super();
  17445. this.PortletWidgetId = 0;
  17446. this.widgetmanager = Platform.Widgets.Managers.WidgetManager.Instance();
  17447. }
  17448. jsFiles() {
  17449. return this._jsFiles();
  17450. }
  17451. cssFiles() {
  17452. return this._cssFiles();
  17453. }
  17454. html(id, containerid) {
  17455. return this._html(id.Data.ReportId, containerid);
  17456. }
  17457. load(id, containerid, callback) {
  17458. var reportwidgetdata = id;
  17459. if (containerid.includes("div_dashboardportletwidget_")) {
  17460. $('.BindData_' + containerid).parents().closest('div._bizgaze_detail_container').removeClass('hidden');
  17461. }
  17462. else {
  17463. var ModalContainers = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds;
  17464. var ContainerId = ModalContainers[ModalContainers.length - 1];
  17465. $('#' + ContainerId).removeClass('hidden');
  17466. }
  17467. $(".Border").find(".cardbody").addClass("bg-white");
  17468. $(".Border").find(".Templateheader").addClass(" mx-10 my-0");
  17469. Unibase.Platform.Analytics.Components.ReportViewer.Instance().PortletWidgetId = this.PortletWidgetId;
  17470. let _PortletWidgetId;
  17471. if (Unibase.Themes.Providers.DetailHelper.installedAppId == 0) {
  17472. _PortletWidgetId = $('#' + containerid).siblings('#hf_PortletWidgetId').val();
  17473. }
  17474. if (Unibase.Themes.Providers.DetailHelper.installedAppId != 0) {
  17475. _PortletWidgetId = $('#' + containerid).parent().siblings('#hf_PortletWidgetId').val();
  17476. }
  17477. reportwidgetdata.Data.PortletWidgetId = _PortletWidgetId;
  17478. if (_PortletWidgetId != undefined) {
  17479. Unibase.Platform.Widgets.Managers.WidgetManager.Instance().getPortletWidget(_PortletWidgetId).then(function (portletresponse) {
  17480. if (portletresponse.result.PortletWidgetHeight != null) {
  17481. reportwidgetdata.Data.PortletWidgetHeight = portletresponse.result.PortletWidgetHeight;
  17482. }
  17483. if (portletresponse.result.IsCollapse != null) {
  17484. reportwidgetdata.Data.portletWidgetIsCollapse = portletresponse.result.IsCollapse;
  17485. }
  17486. if (portletresponse.result.PortletWidgetCss != null || portletresponse.result.PortletWidgetCss != '') {
  17487. reportwidgetdata.Data.PortletWidgetCss = portletresponse.result.PortletWidgetCss;
  17488. }
  17489. });
  17490. }
  17491. this.loadReport(reportwidgetdata.Data.ReportId, reportwidgetdata, containerid, callback);
  17492. }
  17493. static Instance() {
  17494. if (this._instance === undefined)
  17495. this._instance = new WidgetReportviewer();
  17496. return this._instance;
  17497. }
  17498. }
  17499. Components.WidgetReportviewer = WidgetReportviewer;
  17500. })(Components = Analytics.Components || (Analytics.Components = {}));
  17501. })(Analytics = Platform.Analytics || (Platform.Analytics = {}));
  17502. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  17503. })(Unibase || (Unibase = {}));
  17504. var Unibase;
  17505. (function (Unibase) {
  17506. let Platform;
  17507. (function (Platform) {
  17508. let Analytics;
  17509. (function (Analytics) {
  17510. let Components;
  17511. (function (Components) {
  17512. class UserDesignConfigApps extends Components._ReportViewer {
  17513. constructor() {
  17514. super(...arguments);
  17515. this.PortletWidgetId = 0;
  17516. this.totalreportWidgetData = [];
  17517. this.ReportId = 0;
  17518. }
  17519. jsFiles() {
  17520. return this._jsFiles();
  17521. }
  17522. cssFiles() {
  17523. return this._cssFiles();
  17524. }
  17525. html(id, containerid) {
  17526. var instance = this;
  17527. let html = ``;
  17528. return html;
  17529. }
  17530. load(id, containerid, callback) {
  17531. var instance = this;
  17532. }
  17533. init(containerid) {
  17534. var instance = this;
  17535. instance.loadConfigSettings(containerid);
  17536. }
  17537. loadConfigSettings(containerid) {
  17538. let reportid = 0;
  17539. let totalcontent = '';
  17540. var jsfiles = ["apps/transact/managers/inventory/transactsettingmanager.js"];
  17541. $(`.${containerid}`).append(`<div class="card mb-0 border-0 BindData_` + containerid + ` findcontainer h-100" style="background:0 0">
  17542. <div class="card-header py-2 px-2 search-bar-main-wrapper border-0 viewer-header position-sticky t-0 bg-white z-index-2" id="ViewerHeader_` + containerid + `">
  17543. <div class="card-header-top d-flex justify-content-center line-loader-container p-relative">
  17544. <div class=line-loader></div>
  17545. <div id=div_ErrorMessage class=form-error-message style=margin-left:-5px;z-index:100></div>
  17546. <div class="card-search-bar report-tree-view-search m-0" id=cardSearchBar${containerid}>
  17547. <div class='search-wrapper d-flex w-100' id=searchWrapper${containerid}>
  17548. <input class="form-control txt_global_search" id=ListSearch placeholder="Search Configurations" autocomplete=off >
  17549. <i class="fa fa-search search-left-icon biz-highlight-bg-color"></i>
  17550. <div class="biz-highlight-bg-color main-search-loader search-clear-icon hidden"></div>
  17551. <a href=javascript:; class="search-clear-icon biz-highlight-bg-color clear_icon position-absolute r-0 t-0 mt-3 d-none" id="search-clear-icon` + containerid + `" ><i class="zmdi zmdi-close"></i></a>
  17552. </div>
  17553. </div>
  17554. </div>
  17555. </div>
  17556. <div class="card-body p-2 border-removed border-white-removed show userDesignWidgetCardBody" id="Viewer_` + containerid + `" data-iscollapseapplied=false>
  17557. <ul class="userdesignedTreeview_${containerid} userDesignReportSettings" id="userdesignedTreeview" style="column-count:3"></ul>
  17558. </div>
  17559. </div>`);
  17560. let height = $(`.${containerid}`).siblings('#hf_portletwidgetheight').val();
  17561. if (height != '0px') {
  17562. $('.userDesignWidgetCardBody').css({ "height": `` + height + ``, "overflow-x": "hidden" }).addClass("biz-custom-scrollbar");
  17563. }
  17564. var instance = this;
  17565. instance.fileCacheHelper.loadJsFiles(["apps/transact/managers/inventory/transactsettingmanager.js"], () => {
  17566. Unibase.Platform.Apps.Managers.AppManager.Instance().getConfigurationApps().then((res) => {
  17567. let appdata = res.result.sort(function (a, b) {
  17568. var a1 = a.AppGroupName.toLowerCase(), b1 = b.AppGroupName.toLowerCase();
  17569. if (a1 == b1)
  17570. return 0;
  17571. return a1 > b1 ? 1 : -1;
  17572. });
  17573. let totalcount = res.result.length;
  17574. let old_groupname = "";
  17575. for (var i = 0; i < appdata.length; i++) {
  17576. let icon = '';
  17577. let imgurl = '';
  17578. var data = res.result[i];
  17579. let appname = data.AppTitle;
  17580. let appdescription = data.Description;
  17581. icon = data.IconName;
  17582. imgurl = data.ImageUrl;
  17583. let installedappid = data.MyAppId;
  17584. let count = i;
  17585. let appgroupname = data.AppGroupName;
  17586. if (appgroupname == '')
  17587. appgroupname = "No Group";
  17588. let avatarTxt = "";
  17589. let matches = appname.match(/\b(\w)/g);
  17590. if (matches.length == 1) {
  17591. avatarTxt = $.trim(appname).substr(0, 2).toUpperCase();
  17592. }
  17593. else {
  17594. avatarTxt = matches.join('').slice(0, 2).toUpperCase();
  17595. }
  17596. if (appgroupname != old_groupname) {
  17597. let appgroupnameid = appgroupname.replace(/ /g, "_");
  17598. appgroupnameid = appgroupnameid.replace(/&/g, "_");
  17599. let groupnamecontent = '';
  17600. if (old_groupname != '') {
  17601. groupnamecontent = `</ul></li>`;
  17602. groupnamecontent = `</ul></li>`;
  17603. }
  17604. groupnamecontent += `<li class="nav-item border report-group-tree-view border-dark mb-2 w-100 text-truncate" id="settingreport_` + appgroupnameid + `" style="display: grid;break-inside: avoid;">
  17605. <a class="nav-link report-Header-Title biz-highlight-opacity border-bottom text-dark font-weight-600" href ="javascript:void(0);" ><span class="report-group-tree-name">` + appgroupname + `</span></a>
  17606. <ul class="flex-column text-truncate w-100 group-drp-` + appgroupnameid + `" id="reportgroup-tree_` + appgroupnameid + `" name='` + appgroupnameid + `'><li class="nav-item lireportgrp-item pl-5 m-1 rounded-4 lireportgrp-addeditem " style="grid-row: 1 / -1;grid-column: 1;"><a href="javascript:;" class="nav-link text-dark onclickclass px-2 py-1" onclick="Unibase.Platform.Analytics.Components.UserDesignConfigApps.Instance().getform('` + appname + `',` + installedappid + `)"><div class="d-flex align-items-center"><div class="img_tag p-2 w-40p h-40p text-center align-items-center d-flex bg-white border rounded-circle font-14 justify-content-center font-weight-600" style="background:url('');background-size:100%">` + avatarTxt + `</div><div class="pl-2 text-truncate"><span id="ReportName_{{ReportId}}" class="appname"><u>` + appname + `</u></span><div class=" text-truncate description-Text font-12 w-100">` + appdescription + `</div></div></div></a></li>`;
  17607. totalcontent += groupnamecontent;
  17608. old_groupname = appgroupname;
  17609. }
  17610. else {
  17611. let childsetting = `<li class="nav-item lireportgrp-item pl-5 m-1 rounded-4 lireportgrp-addeditem w-100 text-truncate" style="grid-row: 1 / -1;grid-column: 1;"><a href="javascript:;" class="nav-link text-dark onclickclass px-2 py-1" onclick="Unibase.Platform.Analytics.Components.UserDesignConfigApps.Instance().getform('` + appname + `',` + installedappid + `)"><div class="d-flex align-items-center"><div class="img_tag p-2 w-40p h-40p text-center align-items-center d-flex bg-white border rounded-circle font-14 justify-content-center font-weight-600" style="background:url('');background-size:100%">` + avatarTxt + `</div><div class="pl-2 text-truncate"><span id="ReportName_{{ReportId}}" class="appname"><u>` + appname + `</u></span><div class=" text-truncate description-Text font-12 w-100">` + appdescription + `</div></div></div></a></li>`;
  17612. totalcontent += childsetting;
  17613. }
  17614. }
  17615. $("#userdesignedTreeview").html(totalcontent);
  17616. if (screen.width < 1198) {
  17617. $(".appname").addClass("font-12");
  17618. $(".text-truncate.description-Text").addClass("font-11").removeClass("font-12");
  17619. }
  17620. });
  17621. });
  17622. instance.settingsearch(containerid);
  17623. }
  17624. getform(AppName, InstalledAppId, callback) {
  17625. var instance = this;
  17626. if (AppName != " ") {
  17627. Unibase.Platform.Helpers.NavigationHelper.Instance().loadSettings(InstalledAppId, callback);
  17628. }
  17629. else {
  17630. Bizgaze.Apps.Transact.Managers.TransactSettingManager.Instance().getBranchSettingByInstalledApp(InstalledAppId).then(function (bs_res) {
  17631. let Pk_Id = 0;
  17632. if (bs_res.result != "" && bs_res.result != null) {
  17633. Pk_Id = bs_res.result.BranchSettingId;
  17634. }
  17635. var FormUniqueId = 'Bizgaze_Extension_Transact_Apps_' + AppName;
  17636. Unibase.Platform.Forms.Managers.FormManager.Instance().getFormbyUniqueId(FormUniqueId).then(function (response) {
  17637. var successCallBack = {
  17638. CallBack: function (id) {
  17639. },
  17640. Parameters: null,
  17641. };
  17642. var formviewerObj = {
  17643. FormId: response.result.FormId,
  17644. AppConfigurationId: 0,
  17645. Pk_Value: Pk_Id,
  17646. PortletWidgetId: 0,
  17647. OnSuccess: successCallBack,
  17648. OnFail: null,
  17649. OnLoad: null,
  17650. FormSize: Platform.Helpers.Size.Medium,
  17651. };
  17652. Unibase.Platform.Forms.Components.FormViewer.Instance().init(formviewerObj);
  17653. instance.navigationHelper.hideLoading();
  17654. });
  17655. });
  17656. }
  17657. }
  17658. settingsearch(containerid) {
  17659. $(".biz-highlight-opacity").mouseover(function () {
  17660. $(this).css({ "cursor": "context-menu" });
  17661. });
  17662. $('.clear_icon').click(function () {
  17663. $("#ListSearch").val('');
  17664. $('.userdesignedTreeview_' + containerid).find('.report-group-tree-view').css("display", "block");
  17665. $('.userdesignedTreeview_' + containerid).find('.report-group-tree-view').find('.lireportgrp-item').css("display", "block");
  17666. $(".clear_icon").addClass("d-none");
  17667. });
  17668. if (($(window).width()) <= 1198) {
  17669. $("#userdesignedTreeview").css({ "column-count": "2" });
  17670. $(".search-wrapper").css({ "display": "block !important" });
  17671. }
  17672. if (($(window).width()) <= 576) {
  17673. $("#userdesignedTreeview").css({ "column-count": "1" });
  17674. $(".search-wrapper").css({ "display": "block !important" });
  17675. $(".report-group-tree-view").each(function (index) {
  17676. let width = $(this).width();
  17677. let maxwidth = $(this).width() - 100;
  17678. $(this).find(".report-Header-Title").css("width", width + 'px');
  17679. $(this).find(".lireportgrp-item").find(".description-Text").css("max-width", maxwidth + 'px');
  17680. });
  17681. }
  17682. $('#' + containerid).find("#ListSearch").on('keyup', function () {
  17683. $(".clear_icon").removeClass("d-none");
  17684. var _value = $(this).val().toString(), value = _value.toUpperCase();
  17685. if (_value == '') {
  17686. $(".clear_icon").addClass("d-none");
  17687. }
  17688. $('.userdesignedTreeview_' + containerid).find('.report-group-tree-view').each(function () {
  17689. let reportName = $(this).find('.lireportgrp-item a').text();
  17690. if (reportName.toUpperCase().indexOf(value) > -1) {
  17691. $(this).css('display', 'block');
  17692. $(this).find('.lireportgrp-item a').each(function () {
  17693. let reportName = $(this).text();
  17694. let reportGroupName = $(this).find('.a').text();
  17695. if (reportName.toUpperCase().indexOf(value) > -1) {
  17696. $(this).parent().css('display', 'block');
  17697. }
  17698. else {
  17699. $(this).parent().css('display', 'none');
  17700. }
  17701. });
  17702. }
  17703. else {
  17704. $(this).css('display', 'none');
  17705. }
  17706. });
  17707. });
  17708. }
  17709. generatecolor() {
  17710. }
  17711. static Instance() {
  17712. if (this._instance === undefined)
  17713. this._instance = new UserDesignConfigApps();
  17714. return this._instance;
  17715. }
  17716. }
  17717. Components.UserDesignConfigApps = UserDesignConfigApps;
  17718. })(Components = Analytics.Components || (Analytics.Components = {}));
  17719. })(Analytics = Platform.Analytics || (Platform.Analytics = {}));
  17720. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  17721. })(Unibase || (Unibase = {}));
  17722. var Unibase;
  17723. (function (Unibase) {
  17724. let Platform;
  17725. (function (Platform) {
  17726. let Analytics;
  17727. (function (Analytics) {
  17728. let Components;
  17729. (function (Components) {
  17730. class UserDesignSettingReport extends Components._ReportViewer {
  17731. constructor() {
  17732. super(...arguments);
  17733. this.PortletWidgetId = 0;
  17734. this.totalreportWidgetData = [];
  17735. this.ReportId = 0;
  17736. }
  17737. jsFiles() {
  17738. return this._jsFiles();
  17739. }
  17740. cssFiles() {
  17741. return this._cssFiles();
  17742. }
  17743. html(id, containerid) {
  17744. var instance = this;
  17745. let html = ``;
  17746. return html;
  17747. }
  17748. load(id, containerid, callback) {
  17749. var instance = this;
  17750. }
  17751. init(containerid) {
  17752. var instance = this;
  17753. instance.loadSettings(containerid);
  17754. }
  17755. loadSettings(containerid) {
  17756. let reportid = 0;
  17757. let totalcontent = '';
  17758. var jsfiles = ["apps/transact/managers/inventory/transactsettingmanager.js"];
  17759. $(`.${containerid}`).append(`<div class="card mb-0 border-0 BindData_` + containerid + ` findcontainer h-100" style="background:0 0">
  17760. <div class="card-header py-2 px-2 search-bar-main-wrapper border-0 viewer-header position-sticky t-0 bg-white z-index-2" id="ViewerHeader_` + containerid + `">
  17761. <div class="card-header-top d-flex justify-content-center line-loader-container p-relative">
  17762. <div class=line-loader></div>
  17763. <div id=div_ErrorMessage class=form-error-message style=margin-left:-5px;z-index:100></div>
  17764. <div class="card-search-bar report-tree-view-search m-0" id=cardSearchBar${containerid}>
  17765. <div class='search-wrapper d-flex w-100' id=searchWrapper${containerid}>
  17766. <input class="form-control txt_global_search" id=ListSearch placeholder="Search Settings" autocomplete=off >
  17767. <i class="fa fa-search search-left-icon biz-highlight-bg-color"></i>
  17768. <div class="biz-highlight-bg-color main-search-loader search-clear-icon hidden"></div>
  17769. <a href=javascript:; class="search-clear-icon biz-highlight-bg-color clear_icon position-absolute r-0 t-0 mt-3 d-none" id="search-clear-icon` + containerid + `" ><i class="zmdi zmdi-close"></i></a>
  17770. </div>
  17771. </div>
  17772. </div>
  17773. </div>
  17774. <div class="card-body p-2 border-removed border-white-removed show userDesignWidgetCardBody" id="Viewer_` + containerid + `" data-iscollapseapplied=false>
  17775. <ul class="userdesignedTreeview_${containerid}" id="userdesignedTreeview" style="column-count:3"></ul>
  17776. </div>
  17777. </div>`);
  17778. let height = $(`.${containerid}`).siblings('#hf_portletwidgetheight').val();
  17779. if (height != '0px') {
  17780. $('.userDesignWidgetCardBody').css({ "height": `` + height + ``, "overflow-x": "hidden" }).addClass("biz-custom-scrollbar");
  17781. }
  17782. var instance = this;
  17783. instance.fileCacheHelper.loadJsFiles(["apps/transact/managers/inventory/transactsettingmanager.js"], () => {
  17784. Unibase.Platform.Apps.Managers.AppManager.Instance().getSettingApps().then((res) => {
  17785. let appdata = res.result.sort(function (a, b) {
  17786. var a1 = a.AppGroupName.toLowerCase(), b1 = b.AppGroupName.toLowerCase();
  17787. if (a1 == b1)
  17788. return 0;
  17789. return a1 > b1 ? 1 : -1;
  17790. });
  17791. let totalcount = res.result.length;
  17792. let old_groupname = "";
  17793. for (var i = 0; i < appdata.length; i++) {
  17794. let icon = '';
  17795. let imgurl = '';
  17796. var data = res.result[i];
  17797. let appname = data.AppTitle;
  17798. let appdescription = data.Description;
  17799. icon = data.IconName;
  17800. imgurl = data.ImageUrl;
  17801. let installedappid = data.MyAppId;
  17802. let count = i;
  17803. let appgroupname = data.AppGroupName;
  17804. if (appgroupname == '')
  17805. appgroupname = "No Group";
  17806. let avatarTxt = "";
  17807. let matches = appname.match(/\b(\w)/g);
  17808. if (matches.length == 1) {
  17809. avatarTxt = $.trim(appname).substr(0, 2).toUpperCase();
  17810. }
  17811. else {
  17812. avatarTxt = matches.join('').slice(0, 2).toUpperCase();
  17813. }
  17814. if (appgroupname != old_groupname) {
  17815. let appgroupnameid = appgroupname.replace(/ /g, "_");
  17816. appgroupnameid = appgroupnameid.replace(/&/g, "_");
  17817. let groupnamecontent = '';
  17818. if (old_groupname != '') {
  17819. groupnamecontent = `</ul></li>`;
  17820. groupnamecontent = `</ul></li>`;
  17821. }
  17822. groupnamecontent += `<li class="nav-item border report-group-tree-view border-dark mb-2 w-100 text-truncate" id="settingreport_` + appgroupnameid + `" style="display: grid;break-inside: avoid;">
  17823. <a class="nav-link report-Header-Title biz-highlight-opacity border-bottom text-dark font-weight-600" href ="javascript:void(0);" ><span class="report-group-tree-name">` + appgroupname + `</span></a>
  17824. <ul class="flex-column text-truncate w-100 group-drp-` + appgroupnameid + `" id="reportgroup-tree_` + appgroupnameid + `" name='` + appgroupnameid + `'><li class="nav-item lireportgrp-item pl-5 m-1 rounded-4 lireportgrp-addeditem " style="grid-row: 1 / -1;grid-column: 1;"><a href="javascript:;" class="nav-link text-dark onclickclass px-2 py-1" onclick="Unibase.Platform.Analytics.Components.UserDesignSettingReport.Instance().getform('` + appname + `',` + installedappid + `)"><div class="d-flex align-items-center"><div class="img_tag p-2 w-40p h-40p text-center align-items-center d-flex bg-white border rounded-circle font-14 justify-content-center font-weight-600" style="background:url('');background-size:100%">` + avatarTxt + `</div><div class="pl-2 text-truncate"><div id="ReportName_{{ReportId}}" class="appname"><u>` + appname + `</u></div><div class=" text-truncate description-Text font-12 w-100" >` + appdescription + `</div></div></div></a></li>`;
  17825. totalcontent += groupnamecontent;
  17826. old_groupname = appgroupname;
  17827. }
  17828. else {
  17829. let childsetting = `<li class="nav-item lireportgrp-item pl-5 m-1 w-100 text-truncate rounded-4 lireportgrp-addeditem " style="grid-row: 1 / -1;grid-column: 1;"><a href="javascript:;" class="nav-link text-dark onclickclass px-2 py-1" onclick="Unibase.Platform.Analytics.Components.UserDesignSettingReport.Instance().getform('` + appname + `',` + installedappid + `)"><div class="d-flex align-items-center"><div class="img_tag p-2 w-40p h-40p text-center align-items-center d-flex bg-white border rounded-circle font-14 justify-content-center font-weight-600" style="background:url('');background-size:100%">` + avatarTxt + `</div><div class="pl-2 text-truncate"><span id="ReportName_{{ReportId}}"><u>` + appname + `</u></span><div class=" text-truncate description-Text font-12 w-100">` + appdescription + `</div></div></div></a></li>`;
  17830. totalcontent += childsetting;
  17831. }
  17832. }
  17833. $("#userdesignedTreeview").html(totalcontent);
  17834. if (screen.width < 1198) {
  17835. $(".appname").addClass("font-12");
  17836. $(".text-truncate.description-Text").addClass("font-11").removeClass("font-12");
  17837. }
  17838. });
  17839. });
  17840. instance.settingsearch(containerid);
  17841. }
  17842. getform(AppName, InstalledAppId, callback) {
  17843. var instance = this;
  17844. if (AppName != " ") {
  17845. Unibase.Platform.Helpers.NavigationHelper.Instance().loadSettings(InstalledAppId, callback);
  17846. }
  17847. else {
  17848. Bizgaze.Apps.Transact.Managers.TransactSettingManager.Instance().getBranchSettingByInstalledApp(InstalledAppId).then(function (bs_res) {
  17849. let Pk_Id = 0;
  17850. if (bs_res.result != "" && bs_res.result != null) {
  17851. Pk_Id = bs_res.result.BranchSettingId;
  17852. }
  17853. var FormUniqueId = 'Bizgaze_Extension_Transact_Apps_' + AppName;
  17854. Unibase.Platform.Forms.Managers.FormManager.Instance().getFormbyUniqueId(FormUniqueId).then(function (response) {
  17855. var successCallBack = {
  17856. CallBack: function (id) {
  17857. },
  17858. Parameters: null,
  17859. };
  17860. var formviewerObj = {
  17861. FormId: response.result.FormId,
  17862. AppConfigurationId: 0,
  17863. Pk_Value: Pk_Id,
  17864. PortletWidgetId: 0,
  17865. OnSuccess: successCallBack,
  17866. OnFail: null,
  17867. OnLoad: null,
  17868. FormSize: Platform.Helpers.Size.Medium,
  17869. };
  17870. Unibase.Platform.Forms.Components.FormViewer.Instance().init(formviewerObj);
  17871. instance.navigationHelper.hideLoading();
  17872. });
  17873. });
  17874. }
  17875. }
  17876. settingsearch(containerid) {
  17877. $(".biz-highlight-opacity").mouseover(function () {
  17878. $(this).css({ "cursor": "context-menu" });
  17879. });
  17880. $('.clear_icon').click(function () {
  17881. $("#ListSearch").val('');
  17882. $('.userdesignedTreeview_' + containerid).find('.report-group-tree-view').css("display", "block");
  17883. $('.userdesignedTreeview_' + containerid).find('.report-group-tree-view').find('.lireportgrp-item').css("display", "block");
  17884. $(".clear_icon").addClass("d-none");
  17885. });
  17886. if (($(window).width()) <= 1198) {
  17887. $("#userdesignedTreeview").css({ "column-count": "2" });
  17888. $(".search-wrapper").css({ "display": "block !important" });
  17889. }
  17890. if (($(window).width()) <= 576) {
  17891. $("#userdesignedTreeview").css({ "column-count": "1" });
  17892. $(".search-wrapper").css({ "display": "block !important" });
  17893. $(".report-group-tree-view").each(function (index) {
  17894. let width = $(this).width();
  17895. let maxwidth = $(this).width() - 100;
  17896. $(this).find(".report-Header-Title").css("width", width + 'px');
  17897. $(this).find(".lireportgrp-item").find(".description-Text").css("max-width", maxwidth + 'px');
  17898. });
  17899. }
  17900. $('#' + containerid).find("#ListSearch").on('keyup', function () {
  17901. $(".clear_icon").removeClass("d-none");
  17902. var _value = $(this).val().toString(), value = _value.toUpperCase();
  17903. if (_value == '') {
  17904. $(".clear_icon").addClass("d-none");
  17905. }
  17906. $('.userdesignedTreeview_' + containerid).find('.report-group-tree-view').each(function () {
  17907. let reportName = $(this).find('.lireportgrp-item a').text();
  17908. if (reportName.toUpperCase().indexOf(value) > -1) {
  17909. $(this).css('display', 'block');
  17910. $(this).find('.lireportgrp-item a').each(function () {
  17911. let reportName = $(this).text();
  17912. let reportGroupName = $(this).find('.a').text();
  17913. if (reportName.toUpperCase().indexOf(value) > -1) {
  17914. $(this).parent().css('display', 'block');
  17915. }
  17916. else {
  17917. $(this).parent().css('display', 'none');
  17918. }
  17919. });
  17920. }
  17921. else {
  17922. $(this).css('display', 'none');
  17923. }
  17924. });
  17925. });
  17926. }
  17927. generatecolor() {
  17928. }
  17929. settingsListEditForm(pkid, formid, configureid) {
  17930. let id = pkid;
  17931. let form = Number(formid);
  17932. let configure = configureid;
  17933. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFiles(["platform/forms/components/formviewer/formviewer.js"], function () {
  17934. var formviewerobj = {
  17935. FormId: form,
  17936. Pk_Value: id,
  17937. AppConfigurationId: configure,
  17938. PortletWidgetId: 0,
  17939. OnLoad: null,
  17940. OnSuccess: null,
  17941. OnFail: null,
  17942. FormContainer: null,
  17943. FormSize: Unibase.Platform.Helpers.Size.Medium,
  17944. OnClose: null,
  17945. };
  17946. Unibase.Platform.Forms.Components.FormViewer.Instance().init(formviewerobj);
  17947. $("#btn_CloseForm_" + formid).click(function () {
  17948. Unibase.Platform.Helpers.NavigationHelper.Instance().closePopUp();
  17949. });
  17950. });
  17951. }
  17952. static Instance() {
  17953. if (this._instance === undefined)
  17954. this._instance = new UserDesignSettingReport();
  17955. return this._instance;
  17956. }
  17957. }
  17958. Components.UserDesignSettingReport = UserDesignSettingReport;
  17959. })(Components = Analytics.Components || (Analytics.Components = {}));
  17960. })(Analytics = Platform.Analytics || (Platform.Analytics = {}));
  17961. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  17962. })(Unibase || (Unibase = {}));
  17963. var Bizgaze,__awaiter,Unibase;(function(Bizgaze){let Apps;(function(Apps){let Crm;(function(Crm){let Components;(function(Components){class SelfDeclaration extends Unibase.Platform.Core.BaseComponent{constructor(){super(...arguments);this._dateTimeHelper=Unibase.Platform.Helpers.DateTimeHelper.Instance()}jsFiles(){return["platform/forms/components/formviewer/formviewer.js","libs/parsley/parsley.min.js"]}cssFiles(){return[]}html(){return""}loadhtml(Containerid){$("."+Containerid).html('<form data-validate="parsley" data-isdynamic="false"><div class="card"><div class="card-header"><h3 class="text-center" style ="color:deepskyblue"><u>Self - Declaration<\/u><\/h3 ><\/div><div style="overflow-x:hidden;" class="d modal-body bg-light"><div class="bg-white mb-10"><div id="bizgaze_CreateErrorMessages" class="clear"><\/div><div class="col-md-12" style ="height:300px; border:1px solid pink"><h4><p>I, <b><span id="userName1"><\/span><\/b> on behalf of <b><span id="lblDistributorName1"><\/span><\/b> hereby, declare that <b><span id="lblDistributorName2"><\/span><\/b> has utilized DMS system to conduct all Mobil related business transactions accurately, completely and in a timely manner for the month of <b><span id="MonthAndYear1"><\/span><\/b>, and the transactional data pertaining to purchase, inventory, sales and market collections (payments received from customers) for the month of <b><span id="MonthAndYear2"><\/span><\/b> is accurate as per my knowledge.<br/><br/><br/> Name: <b><span id="userName2"><\/span><\/b><br/> Date: <b><span id="CurrentDate"><\/span><\/b><br/><br/><\/p><\/h4><span><b><input type="checkbox" style ="width:30px;height:14px;" id="isSelfDeclared"> <span><\/span> Yes, I declare <span id="DeclarationMonthI_e_PreviousMonth" class="hidden"><\/span> <br/><br/><\/span><div class="text-center"><input type="button" class="btn btn-primary btn-md" id="btnSubmit" value="Submit" disabled /><\/div><\/div><\/div><\/div><\/form>')}load(){}init(Containerid){let instance=this;SelfDeclaration.Instance().fileCacheHelper.loadJsFiles(["platform/forms/components/formviewer/formviewer.js","libs/parsley/parsley.min.js"],function(){var tenantname;SelfDeclaration.Instance().loadhtml(Containerid);$("#btn_Close").click(function(){SelfDeclaration.Instance().navigationHelper.closePopUp()});tenantname="";Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/crm/contacts/managers/contactmanager.js",function(){Bizgaze.Apps.Crm.Contacts.Managers.ContactManager.Instance().GetTenants(Number(Unibase.Platform.Membership.Infos.Identity.getCurrentUser().tenantId)).then(function(res){res.result!=null&&(tenantname=res.result.TenantName,$("#lblDistributorName1").text(tenantname.toString()),$("#lblDistributorName2").text(tenantname.toString()))})});$("#userName1").text(Unibase.Platform.Membership.Infos.Identity.getCurrentUser().name);$("#lblDistributorName1").text(tenantname.toString());$("#lblDistributorName2").text(tenantname.toString());$("#userName2").text(Unibase.Platform.Membership.Infos.Identity.getCurrentUser().name);var TotalDate=new Date,months=["JANUARY","FEBRUARY","MARCH","APRIL","MAY","JUNE","JULY","AUGUST","SEPTEMBER","OCTOBER","NOVEMBER","DECEMBER"],date=TotalDate.getDate(),month=TotalDate.getMonth()+1,year=TotalDate.getFullYear();months[TotalDate.getMonth()]=="DECEMBER"&&(year=year-1);$("#MonthAndYear1").text(months[TotalDate.getMonth()]+"-"+year);$("#MonthAndYear2").text(months[TotalDate.getMonth()]+"-"+year);$("#CurrentDate").text(date+"/"+month+"/"+year);$("#DeclarationMonthI_e_PreviousMonth").text(months[TotalDate.getMonth()]);var todayDate=new Date($.now()),serverdate=instance._dateTimeHelper.formatServerDate(todayDate),OnlyDate=serverdate.split("/");Number(OnlyDate[2])>=1&&Number(OnlyDate[2])<=10?$("#btnSubmit").prop("disabled",!1):$("#btnSubmit").prop("disabled",!0);Number(OnlyDate[2])>10&&($("#btnSubmit").hide(),$("#isSelfDeclared").hide(),$("#description").hide());SelfDeclaration.Instance().Enable();$("#btnSubmit").click(function(){SelfDeclaration.Instance().save()})})}Enable(){var da,date,month;let instance=this;da=new Date($.now());date=instance._dateTimeHelper.formatServerDate(da);date=date.replace("/","-").replace("/","-");month=$("#DeclarationMonthI_e_PreviousMonth").text();Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/crm/contacts/managers/contactmanager.js",function(){Bizgaze.Apps.Crm.Contacts.Managers.ContactManager.Instance().getSelfDeclarationByDate(date,month).then(function(response){response.result=="Record not Found"?$("#btnSubmit").prop("disabled",!1):($("#btnSubmit").prop("disabled",!0),$("#btnSubmit").prop("value","Submitted"),$("#isSelfDeclared").prop("checked",!0),$("#isSelfDeclared").prop("disabled",!0))})})}save(){var date=Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate(),IsDeclared=$("#isSelfDeclared").prop("checked"),data;if(IsDeclared==!1)return MessageHelper.Instance().showError("Please Check Declaration","bizgaze_CreateErrorMessages"),!1;data={PciDeclared:IsDeclared,UserId:Unibase.Platform.Membership.Infos.Identity.getCurrentUser().userId,DeclarationDate:new Date,MonthOfDeclaration:$("#DeclarationMonthI_e_PreviousMonth").text(),PartitionId:Unibase.Platform.Membership.Infos.Identity.getCurrentUser().partitionId};Bizgaze.Apps.Crm.Contacts.Managers.ContactManager.Instance().saveSelfDeclaration(data).then(function(response){MessageHelper.Instance().showSuccess(response.message,"");$("#isSelfDeclared").prop("checked",!0);$("#isSelfDeclared").prop("disabled",!0);$("#btnSubmit").prop("value","Submitted")})}static Instance(){return this.instance===undefined&&(this.instance=new SelfDeclaration),this.instance}}Components.SelfDeclaration=SelfDeclaration})(Components=Crm.Components||(Crm.Components={}))})(Crm=Apps.Crm||(Apps.Crm={}))})(Apps=Bizgaze.Apps||(Bizgaze.Apps={}))})(Bizgaze||(Bizgaze={})),function(Unibase){let Platform;(function(Platform){let Membership;(function(Membership){let Components;(function(Components){class UserLoginDetailsWidget extends Platform.Core.BaseComponent{init(containerid){var instance=this;instance.userdetails(containerid);$(".user-toggle-notification-btn").click(function(){if($(".biz-wrapper").addClass("biz-settings-toggle"),$(".hk-wrapper").addClass("biz-settings-toggle"),$(window).width()<=575){$(".settings-panel-head").find("#myTab").remove();var notification_header=$(".settings-panel-head").find("#settings-panel-head-title").length;notification_header==0&&$(".settings-panel-head #settings_panel_close").before(` <span class="biz-secondary-text-color d-flex flex-row align-items-center py-1" id = "settings-panel-head-title"> <span class="my-2 font-16 font-weight-400"> Notifications </span><span class="badge border rounded-circle badge-sm badge-link ml-2 font-14" id="notification_count"></span> </span>`).parent().addClass("px-3 border-bottom").removeClass("py-10");Unibase.Themes.Compact.Components.Notification.Instance().loadReminders()}else Unibase.Themes.Compact.Components.Notification.Instance().loadReminders()});$(".user-toggle-task-btn").click(function(){if($(".biz-wrapper").addClass("biz-settings-toggle"),$(".hk-wrapper").addClass("biz-settings-toggle"),$(window).width()<=575){$(".settings-panel-head").find("#myTab").remove();var notification_header=$(".settings-panel-head").find("#settings-panel-head-title").length;notification_header==0&&$(".settings-panel-head #settings_panel_close").before(` <span class="biz-secondary-text-color d-flex flex-row align-items-center py-1" id = "settings-panel-head-title"> <span class="my-2 font-16 font-weight-400">Tasks</span><span class="ml-2 px-2 border rounded-circle font-14" id="tasks_count"></span> </span>`).parent().addClass("px-3 border-bottom").removeClass("py-10");Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("/tenants/themes/compact/components/notifications/notification.js",function(){Unibase.Themes.Compact.Components.Notification.Instance().loadTasks()})}else Unibase.Themes.Compact.Components.Notification.Instance().loadTasks()})}userdetails(containerid){let notification,task,data=Unibase.Platform.Membership.Infos.Identity.getCurrentUser(),imageurl=data.photoUrl,companyname=data.settings.filter(function(o){return o.settingName==="companyname"})[0].settingValue,branchname=data.settings.filter(function(o){return o.settingName==="branchname"})[0].settingValue,branchcode=data.settings.filter(function(o){return o.settingName==="branchcode"})[0].settingValue,username=data.name,html="";html=`<div class="user_login_detials b-0 shadow rounded-4 p-3"><div class="card m-0 px-2 border-0 shadow-none"><div class="user_login_pic d-flex align-items-center font-11"><div class=" biz-login-image rounded-circle w-70p h-70p d-flex align-items-center text-center p-2" data-src="`+imageurl+`" ><div class="user-login-img bg-light rounded-circle w-100 h-100 d-flex align-items-center text-center"></div></div><div class="ml-2"><div>Hi Welcome,</div><div class="user_Name m-0" style="font-size:12px !important" >`+username+`</div></div></div><div class="user_Company_Name ml-2 mt-1 font-11"><span><i class="fa fa-building-o font-14"></i></span> `+companyname+`</div><div class="user_Branch_Name ml-2 font-11"><span><i class="fa fa-map-marker "></i></span> `+branchname+` (`+branchcode+`)</div></div></div></div>`;$(`#${containerid}`).html(html);$(".user-login-img-div").mouseover(function(){$(this).find(".edit-picture").removeClass("d-none").addClass("d-flex").css("cursor","pointer")}).mouseout(function(){$(this).find(".edit-picture").addClass("d-none").removeClass("d-flex")});let dataSrc=$(".biz-login-image").data("src");if(dataSrc==""||dataSrc==null||dataSrc=="undefined"){let avatarTxt="",headingTxt=$(".user_Name").text(),matches=headingTxt.match(/\b(\w)/g);avatarTxt=matches&&matches.length==1?$.trim(headingTxt).substr(0,2).toUpperCase():matches.join("").slice(0,2).toUpperCase();$(".user-login-img").html(`<h5 class="w-100 font-weight-600 biz-hightlight-bg-color font-30" data-btnclick="profile">${avatarTxt}</h5>`)}else dataSrc&&dataSrc.includes("~")&&(dataSrc=dataSrc.slice(2)),$(".user-login-img").html(`<img src="${dataSrc}" onerror="ReloadImage(event)" data-dynamic="1" class="avatar-img img-fluid rounded-circle w-100 h-100" data-btnclick="profile" alt="img" style="object-fit: cover;">`);return Unibase.Platform.Forms.Managers.FormManager.Instance().getFormbyUniqueId("Bizgaze_Crm_Employess_App_AddPhotoUrl_Dashboard").then(function(response){$(".edit-picture").attr("onclick",`Unibase.Platform.Membership.Components.UserLoginDetailsWidget.Instance().profileupdate(${response.result.FormId}, 0)`);$('[data-btnclick="profile"]').attr("onclick",`Unibase.Platform.Membership.Components.UserLoginDetailsWidget.Instance().profileupdate(${response.result.FormId}, 0)`)}),$(".user_login_detials").closest(".col-lg-12.droppablePlaceCol").removeClass("px-md-5"),Unibase.Platform.Communications.Managers.ReminderManager.Instance().getUnreadRemindersCountByUserId().then(function(response){var obj=response.result;notification=obj.NotificationCount;task=obj.TasksCount;$(".notification_count").html(notification);$(".tasks_count").html(task)}),html}profilePicSuccess(){$("#layout-dashboard-tabs .filter-item.active a").trigger("click")}profileupdate(formid){var successobj={CallBack:function(){Unibase.Platform.Membership.Components.UserLoginDetailsWidget.Instance().profilePicSuccess()},Parameters:null},formviewerObj={FormId:formid,AppConfigurationId:0,Pk_Value:0,PortletWidgetId:0,OnSuccess:successobj,OnFail:null,OnLoad:null,FormSize:Unibase.Platform.Helpers.Size.Large};Unibase.Platform.Forms.Components.FormViewer.Instance().init(formviewerObj)}jsFiles(){return["tenants/themes/compact/components/nav/nav.js"]}cssFiles(){return[]}html(){return``}load(){}static Instance(){return this._instance===undefined&&(this._instance=new UserLoginDetailsWidget),this._instance}}Components.UserLoginDetailsWidget=UserLoginDetailsWidget})(Components=Membership.Components||(Membership.Components={}))})(Membership=Platform.Membership||(Platform.Membership={}))})(Platform=Unibase.Platform||(Unibase.Platform={}))}(Unibase||(Unibase={}));__awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})},function(Bizgaze){let Apps;(function(Apps){let Hrms;(function(Hrms){let Components;(function(Components){class Attendence extends Unibase.Platform.Core.BaseComponent{constructor(){super(...arguments);this.attendencelogid=0;this.timer=null;this.timer_arrref=[];this.starttimerobj=[]}init(containerid){let instance=this;instance.fileCacheHelper.loadJsFiles(["platform/membership/components/checkindetails.js","apps/hrms/managers/attendencemanager.js","apps/communications/ai/components/resumeparsingmanager.js"],function(){instance.loadCustomHTML(containerid)})}cssFiles(){return[]}html(){var instance=this;return``}load(){var instance=this}jsFiles(){return["apps/hrms/components/attendence.js","apps/hrms/managers/attendencemanager.js","apps/communications/ai/components/resumeparsingmanager.js","platform/core/helpers/mobile/interfaces/imobilehelper.js"]}loadCustomHTML(containerid){let instance=this,capture_modal=`
  17964. <div class="modal fade hide" id="caputerModel" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
  17965. <div class="modal-dialog modal-dialog-centered" role="document">
  17966. <div class="modal-content">
  17967. <div class="modal-header border-0 py-2">
  17968. <button type="button" class="close" data-dismiss="modal" id="CancelBtn" aria-label="Close" data-tooltip="true" data-placement="right" title="Cancel">
  17969. <span aria-hidden="true">&times;</span>
  17970. </button>
  17971. </div>
  17972. <div class="modal-body pt-0 position-relative">
  17973. <div class="pb-40 pt-40 shift_err text-center d-none"><p>No Shift's Available</p></div>
  17974. <div class="pb-20 pt-40 checkIn_err text-center d-none"><p>You are Already Check Out</p></div>
  17975. <div id="caputer_video" class="d-none User_Picture">
  17976. <div class="position-relative">
  17977. <video id="cam" autoplay muted playsinline style="transform: scaleX(-1);">Not available </video>
  17978. <canvas id="canvas" class="d-none" style="transform: scaleX(-1);"></canvas>
  17979. <img id="photo" alt="The screen capture will appear in this box." style="transform: scaleX(-1);" class="d-none">
  17980. <div class="text-center position-absolute suggest_err">
  17981. <span class="loader-pendulums d-none" id="img_check"></span>
  17982. <span class="capture_err d-none text-danger font-16"></span>
  17983. </div>
  17984. <div class="position-absolute switch_cam d-none" style="bottom:0px;width:100%;text-align:center;font-size:20px">
  17985. <div class="cam_view" style="width:100%;max-width:10%;margin:auto">
  17986. <input type="checkbox" id="camera_view" class="d-none"/>
  17987. <label class="cam_front" for="camera_view">
  17988. <img src="tenants/themes/compact/imgs/rotate.png" class="cam_img p-1 bg-white" style="width:100%;"/>
  17989. </label>
  17990. </div>
  17991. </div>
  17992. </div>
  17993. <div class="bg-white" id="location_data"></div>
  17994. </div>
  17995. </div>
  17996. </div>
  17997. </div>`;$("#_bizgaze_modal").html(capture_modal);let html="";screen.width>576?(html=` <div class="check_in_timer" id="Check_in_timer">
  17998. <div class="card border-0 shadow p-3">
  17999. <div class="check_in_body">
  18000. <div class="d-flex align-items-center justify-content-between pb-1">
  18001. <span class="biz-highlight-bg-color font-weight-500 font-16">Attendance</span>
  18002. <span class="" data-tooltip="true" title="Report"><i class="dripicons dripicons-graph-pie view_Details cursor-pointer"></i></span>
  18003. </div>
  18004. <div class="text-center">
  18005. <div class="timer font-weight-600 font-25 d-flex justify-content-center align-items-center">
  18006. <img src="tenants/themes/compact/imgs/start_timer.png" class="timing"/>
  18007. <img src="tenants/themes/compact/imgs/start_timer1.gif" class="d-none start_timing"/>
  18008. <div class="run_time">
  18009. <span class="output">00:00:00</span>
  18010. <span class="output_re d-none"></span>
  18011. </div>
  18012. <div>Hrs</div>
  18013. </div>
  18014. <div class="text-dark h-10p">
  18015. <span class="list-item-main-title font-weight-500 shift_name font-14"></span>
  18016. <span class="shift_timeings font-14"></span>
  18017. </div>
  18018. </div>
  18019. <div class="text-center pt-4 pb-3">
  18020. <div>
  18021. <button type="button" class="btn btn-primary px-0 w-50" id="check_in_btn">
  18022. <span>Check-in</span>
  18023. </button>
  18024. <button type="button" class="btn btn-primary text-white py-1 d-none px-0 w-50" id="check_out_btn">
  18025. <span>Check-out</span>
  18026. </button>
  18027. </div>
  18028. </div>
  18029. <div class="pt-1 check_timings">
  18030. <div class="row align-items-center font-weight-500">
  18031. <div class="col-4 strttime">
  18032. <div class="d-flex align-items-center startime justify-content-md-center">
  18033. <img src="tenants/themes/compact/imgs/Start.png"/>
  18034. <div class="d-flex flex-column flex-shrink-0" id="Check_in_time">
  18035. <span class="start_time mb-0 text-dark font-13">00:00</span>
  18036. <span class="font-13">Check In</span>
  18037. </div>
  18038. </div>
  18039. </div>
  18040. <div class="col-4 text-center border-left border-right endtime">
  18041. <div class="d-flex justify-content-center align-items-center">
  18042. <img src="tenants/themes/compact/imgs/End.png"/>
  18043. <div class="d-flex flex-column flex-shrink-0 text-left" id="Check_out_time">
  18044. <span class="end_time mb-0 text-dark font-13">00:00</span>
  18045. <span class="font-13">Check Out</span>
  18046. </div>
  18047. </div>
  18048. </div>
  18049. <div class="col-4 text-right">
  18050. <div class="d-flex justify-content-center align-items-center duration">
  18051. <img src="tenants/themes/compact/imgs/Duration.png"/>
  18052. <div class="d-flex flex-column flex-shrink-0 text-left" id="Check_duration">
  18053. <span class="mb-0 Duration_time font-13 text-danger"><span class="due_time">00:00</span> Hrs</span>
  18054. <span class="font-13">Duration</span>
  18055. </div>
  18056. </div>
  18057. </div>
  18058. </div>
  18059. </div>
  18060. </div>
  18061. </div>
  18062. </div>`,$(".suggest_err").attr({style:"top:50%;width:100%;max-width:100%"})):(html=`<div class="check_in_timer" id="Check_in_timer">
  18063. <div class="card border-0 shadow p-3">
  18064. <div class="check_in_body">
  18065. <div class="d-flex align-items-center justify-content-between">
  18066. <span class="font-weight-600 font-18">Attendance</span>
  18067. <span><i class="dripicons dripicons-graph-pie view_Details cursor-pointer"></i></span>
  18068. </div>
  18069. <div class="py-1">
  18070. <div class="timer d-flex justify-content-between align-items-center">
  18071. <div class="timer font-weight-600 font-25 d-flex flex-grow-1 align-items-center">
  18072. <img src="tenants/themes/compact/imgs/start_timer.png" class="timing"/>
  18073. <img src="tenants/themes/compact/imgs/start_timer1.gif" class="d-none start_timing"/>
  18074. <div class="run_time">
  18075. <span class="output">00:00:00</span>
  18076. <span class="output_re d-none"></span>
  18077. </div>
  18078. <div class="font-18">Hrs</div>
  18079. </div>
  18080. <div class="">
  18081. <button type="button" class="btn btn-primary" id="check_in_btn">
  18082. <span class="font-14">Check In</span>
  18083. </button>
  18084. <button type="button" class="btn biz-highlight-color text-white d-none" id="check_out_btn">
  18085. <span class="font-14">Check Out</span>
  18086. </button>
  18087. </div>
  18088. </div>
  18089. <div class="d-flex align-items-center font-13">
  18090. <div class="list-item-main-title pr-1 font-weight-500 font-13 shift_name"></div>
  18091. <div class="text-dark">
  18092. <span class="shift_timeings"></span>
  18093. </div>
  18094. </div>
  18095. </div>
  18096. <div class="pt-2 check_timings">
  18097. <div class="row align-items-center font-weight-500">
  18098. <div class="col-4 strttime">
  18099. <div class="d-flex align-items-center">
  18100. <img src="tenants/themes/compact/imgs/Start.png"/>
  18101. <div class="d-flex flex-column flex-shrink-0 " id="Check_in_time">
  18102. <span class="start_time mb-0 text-dark">00:00</span>
  18103. <span class="check">Check In</span>
  18104. </div>
  18105. </div>
  18106. </div>
  18107. <div class="col-4 text-center border-left border-right endtime">
  18108. <div class="d-flex justify-content-center align-items-center">
  18109. <img src="tenants/themes/compact/imgs/End.png"/>
  18110. <div class="d-flex flex-column flex-shrink-0 text-left" id="Check_out_time">
  18111. <span class="end_time mb-0 text-dark">00:00</span>
  18112. <span class="check">Check Out</span>
  18113. </div>
  18114. </div>
  18115. </div>
  18116. <div class="col-4 text-right duration">
  18117. <div class="d-flex justify-content-center align-items-center">
  18118. <img src="tenants/themes/compact/imgs/Duration.png"/>
  18119. <div class="d-flex flex-column flex-shrink-0 text-left" id="Check_duration">
  18120. <span class="mb-0 Duration_time text-danger"><span class="due_time">00:00</span> Hrs</span>
  18121. <span class="check">Duration</span>
  18122. </div>
  18123. </div>
  18124. </div>
  18125. </div>
  18126. </div>
  18127. </div>
  18128. </div>
  18129. </div>`,$(".suggest_err").attr({style:"top:50%;width:100%;max-width:100%"}),$("#canvas").removeAttr("width"),$("#canvas").removeAttr("height"));$("#"+containerid).html(html);let check_profile=Unibase.Platform.Membership.Infos.Identity.currentUser.photoUrl;if(check_profile==""||check_profile==null){let err_html=`<div>
  18130. <p class="font-15 no_profile pt-10 text-center text-danger">Please Upload Your Profile Picture</p>
  18131. </div>`;$("#location_data").html(err_html);$(".loader-icon").addClass("d-none");$("#caputerModel").removeClass("show").attr("style","display:none;")}else{let no_html=`<div> <p id="user_location" class="font-14 py-2 text-dark text-left"></p>
  18132. <div class="d-flex align-items-center justify-content-end pb-3">
  18133. <button type="button" class="btn btn-primary rounded-pill py-1" id="snapBtn" aria-label="Close">Capture</button>
  18134. <button type="button" class="btn btn-danger rounded-pill d-none py-1" id="retakeBtn">Re-Capture</button>
  18135. <button type="button" class="btn btn-primary rounded-pill d-none py-1" data-dismiss="modal" aria-label="Close" id="modal_closebtn">Ok</button>
  18136. </div>
  18137. </div>`;$("#location_data").html(no_html)}instance.getAttendanceLog();instance.attendenceCheckIn();instance.getUserApplicableShifts();instance.takeImage();instance.retakeImage();instance.viewattendenceReport();instance.afterload();instance.attendencecheckout();instance.modalcheckout();instance.attendenceCancle()}loadCheckIn(containerid){let instance=this;instance.loadCustomHTML(containerid)}Location(){navigator.geolocation?($("#snapBtn").attr("disabled","disabled"),navigator.geolocation.getCurrentPosition(Bizgaze.Apps.Hrms.Components.Attendence.Instance().geoLocationSuccess,Bizgaze.Apps.Hrms.Components.Attendence.Instance().geoLocationError,{timeout:1e4})):alert("your browser doesn't support geolocation")}geoLocationSuccess(pos){var loading,request;const instance=Bizgaze.Apps.Hrms.Components.Attendence.Instance();let loadingTimeout;instance.mylatitude=pos.coords.latitude;instance.mylongtitude=pos.coords.longitude;loading=function(){$("#user_location").text("fetching...")};loadingTimeout=setTimeout(loading,600);const apikey=_mapsettings.key();request=$.get(`https://maps.googleapis.com/maps/api/geocode/json?latlng=${instance.mylatitude},${instance.mylongtitude}&key=${apikey}`).done(function(data){if(loadingTimeout){clearTimeout(loadingTimeout);loadingTimeout=null;instance.address=data.results[0].formatted_address;$("#user_location").html("<span class='font-weight-600'>Location :<\/span> "+instance.address);let ele=$("#user_location").find("span"),ele_val=ele[0],Cam_ele=$("#cam").hasClass("d-none");ele_val!=undefined&&Cam_ele==!1?$("#snapBtn").removeAttr("disabled"):$("#snapBtn").attr("disabled","disabled")}}).fail(function(){$("#snapBtn").addClass("d-none")})}geoLocationError(error){({1:"Permission denied",2:"Position unavailable",3:"Request timeout"})[error.code]&&($("#user_location").html("<span class='font-weight-500 text-danger'>Please enable your Location...<\/span>"),$("#snapBtn").attr("disabled","disabled"))}addzero(x){return x<10?"0"+x:x}twelvehours(x){return x>12?x-12:x==0?12:x}cemeraCapture(){const instance=Bizgaze.Apps.Hrms.Components.Attendence.Instance();instance.constraints={audio:!1,video:{width:{ideal:640},height:{ideal:480},facingMode:"user"}};instance.getMediaStream()}getMediaStream(){function getMediaStream(constraints){return __awaiter(this,void 0,void 0,function*(){try{instance.mediaStream=yield navigator.mediaDevices.getUserMedia(constraints);instance.video=document.getElementById("cam");instance.video.srcObject=instance.mediaStream;instance.video.onloadedmetadata=event=>{let cam_err=event.currentTarget;if(cam_err!=null){let shift_err=$(".checkIn_err").hasClass("d-none");shift_err==!0&&($("#cam").removeClass("d-none"),instance.video.play(),$(".cam_err").remove())}}}catch(err){console.log(err.message);$("#cam").addClass("d-none");$(".cam_err").removeClass("d-none");let arr_val=$("#user_location").find("span").hasClass("cam_loc_err");arr_val!=!0&&$("#cam").after("<span class='font-weight-500 text-danger cam_err'>Please enable your Camera...<\/span>");let cam_val=$("#cam").parent().find("span").hasClass("cam_err"),loc_val=$("#user_location").find("span").hasClass("text-danger");cam_val&&loc_val&&($("#cam").parent().find(".cam_err").remove(),$("#user_location").html("<span class='font-weight-500 text-danger cam_loc_err'>Please enable your Location and Camera...<\/span>"));$("#snapBtn").attr("disabled","disabled")}})}const instance=Bizgaze.Apps.Hrms.Components.Attendence.Instance();getMediaStream(instance.constraints)}switchCamera(cameraMode){return __awaiter(this,void 0,void 0,function*(){const instance=Bizgaze.Apps.Hrms.Components.Attendence.Instance();try{if(instance.mediaStream!=null&&instance.mediaStream.active){var tracks=instance.mediaStream.getVideoTracks();tracks.forEach(track=>{track.stop()})}document.getElementById("cam").srcObject=null;instance.constraints.video.facingMode=cameraMode;yield instance.getMediaStream()}catch(err){console.log(err.message)}})}takePicture(){const instance=Bizgaze.Apps.Hrms.Components.Attendence.Instance();instance.canvas=document.getElementById("canvas");instance.videos=document.getElementById("cam");let photo=document.getElementById("photo"),context=instance.canvas.getContext("2d");const height=instance.videos.videoHeight,width=instance.videos.videoWidth;if(width&&height){instance.canvas.width=width;instance.canvas.height=height;context.drawImage(instance.video,0,0,width,height);var data=instance.canvas.toDataURL("image/png");const webp=context.canvas.toDataURL("image/webp",.8);photo.setAttribute("style","transform: scaleX(-1)");$("#photo").attr("src",data)}else Bizgaze.Apps.Hrms.Components.Attendence.Instance().clearPhoto()}clearPhoto(){let instance=Bizgaze.Apps.Hrms.Components.Attendence.Instance(),photo=document.getElementById("photo"),context=instance.canvas.getContext("2d");context.fillStyle="#AAA";context.fillRect(0,0,instance.canvas.width,instance.canvas.height);var data=instance.canvas.toDataURL("image/png");photo.removeAttribute("src")}clockTick(){const instance=Bizgaze.Apps.Hrms.Components.Attendence.Instance();let r_datd=$(".output_re").hasClass("d-none");const date=Date.now(),timer_run=$("#check_in_btn").hasClass("d-none");if(timer_run==!0)if(r_datd==!1){instance.timer_arrref;const timeref=new Date(date-Number(instance.timer_arrref)),refhours=timeref.getUTCHours(),refmins=timeref.getUTCMinutes(),refsecs=timeref.getUTCSeconds(),refcount_hrs=refhours>9?refhours:"0"+refhours,refcount_mins=refmins>9?refmins:"0"+refmins,refcount_secs=refsecs>9?refsecs:"0"+refsecs;$(".output").html(`${refcount_hrs}:${refcount_mins}:${refcount_secs}`)}else{const timeElaspsed=new Date(date-Number(instance.starttimerobj)),hours=timeElaspsed.getUTCHours(),mins=timeElaspsed.getUTCMinutes(),secs=timeElaspsed.getUTCSeconds(),count_hrs=hours>9?hours:"0"+hours,count_mins=mins>9?mins:"0"+mins,count_secs=secs>9?secs:"0"+secs;$(".output").html(`${count_hrs}:${count_mins}:${count_secs}`)}}reset(){const instance=Bizgaze.Apps.Hrms.Components.Attendence.Instance();clearInterval(instance.timer);let timerreset=$(".output").text(),timerin=timerreset.includes("NaN");timerin==!0?($(".output").empty(),$(".output").html(`00:00:00`)):($(".output").empty(),$(".output").html(`00:00:00`))}attenanceSnap(){let instance=Bizgaze.Apps.Hrms.Components.Attendence.Instance(),checkedIn=$("#check_in_btn").hasClass("d-none"),online_cather=window.navigator.onLine;if(checkedIn==!1)if(online_cather){$("#check_in_btn").attr({"data-toggle":"modal","data-backdrop":"false","data-target":"#caputerModel"});let shift_name=$(".shift_name").text(),shift_time=$(".shift_timeings").text();shift_name==""&&shift_time==""?($(".close").removeClass("d-none"),$(".shift_err").removeClass("d-none")):($("#caputer_video").removeClass("d-none"),$("#user_location").removeClass("d-none"),$("#CancelBtn").removeClass("d-none"),$(".capture_err").addClass("d-none"),$(".loader-icon").addClass("d-none"),$(".checkIn_err").addClass("d-none"),$("#modal_closebtn").addClass("d-none"),$("#Check_in_time").removeClass("d-none"),$("#cam").removeClass("d-none"),$("#location_data").removeClass("d-none"),$("#snapBtn").removeClass("d-none"),$("#retakeBtn").addClass("d-none"),$("#close_btn").addClass("d-none"))}else $(this).removeAttr("data-target data-toggle data-backdrop");else if(online_cather){$("#check_out_btn").attr({"data-toggle":"modal","data-backdrop":"false","data-target":"#caputerModel"});$("#caputer_video").removeClass("d-none");$(".capture_err").addClass("d-none");$(".loader-icon").addClass("d-none");$("#Check_in_time").removeClass("d-none");$("#cam").removeClass("d-none");$("#location_data").removeClass("d-none");$("#CancelBtn").removeClass("d-none");$("#snapBtn").removeClass("d-none");$("#retakeBtn").addClass("d-none");let removeVide=$("#modal_closebtn").hasClass("d-none");removeVide==!1&&instance.mediaStream.getTracks().forEach(track=>{track.stop()})}else $(this).removeAttr("data-target data-toggle data-backdrop")}attendenceCheckIn(){isMobileApp()&&(Unibase.Platform.Helpers.MobileHelper.Instance().grantPermission(Unibase.Platform.Helpers.Enums.MobilePermissionType.Camera,Bizgaze.Apps.Hrms.Components.Attendence.Instance().cemeraCapture),Unibase.Platform.Helpers.MobileHelper.Instance().grantPermission(Unibase.Platform.Helpers.Enums.MobilePermissionType.Location,Bizgaze.Apps.Hrms.Components.Attendence.Instance().Location));$("#check_in_btn").click(function(){$("#canvas").addClass("d-none");Bizgaze.Apps.Hrms.Components.Attendence.Instance().Location();Bizgaze.Apps.Hrms.Components.Attendence.Instance().cemeraCapture();Bizgaze.Apps.Hrms.Components.Attendence.Instance().attenanceSnap()})}attendencecheckout(){isMobileApp()&&(Unibase.Platform.Helpers.MobileHelper.Instance().grantPermission(Unibase.Platform.Helpers.Enums.MobilePermissionType.Camera,Bizgaze.Apps.Hrms.Components.Attendence.Instance().cemeraCapture),Unibase.Platform.Helpers.MobileHelper.Instance().grantPermission(Unibase.Platform.Helpers.Enums.MobilePermissionType.Location,Bizgaze.Apps.Hrms.Components.Attendence.Instance().Location));$("#check_out_btn").click(function(){$("#canvas").addClass("d-none");Bizgaze.Apps.Hrms.Components.Attendence.Instance().getAttendanceLogLastRecord();Bizgaze.Apps.Hrms.Components.Attendence.Instance().Location();Bizgaze.Apps.Hrms.Components.Attendence.Instance().cemeraCapture();Bizgaze.Apps.Hrms.Components.Attendence.Instance().attenanceSnap()})}attendenceCancle(){const instance=Bizgaze.Apps.Hrms.Components.Attendence.Instance();$("#CancelBtn").click(function(){$(this).addClass("d-none");$("#caputer_video").addClass("d-none");$("#photo").attr("src","");$("#retakeBtn").addClass("d-none");$("#close_btn").addClass("d-none");$("#img_check").addClass("d-none");$(".cam_err").remove();$(".cam_loc_err").remove();instance.mediaStream.getTracks().forEach(track=>{track.stop()});$(".capture_err").addClass("d-none");$(".capture_err").parent().removeClass("align-items-end")})}modalcheckout(){const instance=Bizgaze.Apps.Hrms.Components.Attendence.Instance();$("#modal_closebtn").click(function(){instance.mediaStream.getTracks().forEach(track=>{track.stop()});Bizgaze.Apps.Hrms.Components.Attendence.Instance().reset();(instance.startTime!=null||instance.timer_arrref!=null)&&(instance.startTime=undefined,instance.timer_arrref=undefined,instance.starttimerobj=undefined);$(".output").removeClass("d-none");let re_btn=$(".output").hasClass("d-none");re_btn==!1&&($(".output_re").empty(),$(".output").html(`00:00:00`),$(".output_re").addClass("d-none"));$(".output").html(`00:00:00`);$("#check_out_btn").addClass("d-none");$("#check_in_btn").removeClass("d-none");$(".start_timing").addClass("d-none");$(".timing").removeClass("d-none");$(".output").removeClass("d-none");$(".output_re").addClass("d-none");Bizgaze.Apps.Hrms.Components.Attendence.Instance().getAttendanceLog()})}takeImage(){const instance=Bizgaze.Apps.Hrms.Components.Attendence.Instance();let emp_id=Unibase.Platform.Membership.Infos.Identity.currentUser.unibaseId,data=Unibase.Platform.Membership.Infos.Identity.getCurrentUser(),userid=data.userId;$("#snapBtn").click(function(){return __awaiter(this,void 0,void 0,function*(){var date,Attendenceid,Attendencelogid;Bizgaze.Apps.Hrms.Components.Attendence.Instance().takePicture();$("#cam").addClass("d-none");$(this).addClass("d-none");$("#img_check").removeClass("d-none");$("#canvas").addClass("d-none");$("#canvas").attr("style","filter:blur(7px);transform:scaleX(-1);max-width:100%");instance.img_stored=$("#photo").attr("src");instance.img_stored!==""?$("#canvas").removeClass("d-none"):$("#canvas").addClass("d-none");date=new Date;let get_month=date.getMonth(),months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];instance.startDate=Unibase.Platform.Helpers.DateTimeHelper.instance.formatServerDateTime(date);let userCheckindetails={Latitude:instance.mylatitude,Longitude:instance.mylongtitude,Address:instance.address,imageurl:instance.img_stored,Userid:userid,StartDate:instance.startDate,user_url:window.location.host};Attendenceid=instance.attendenceid;Attendencelogid=instance.attendencelogid;let enddate=Unibase.Platform.Helpers.DateTimeHelper.instance.formatServerDateTime(date);var Startdate=instance.startdate,userCheckoutdetails={CheckoutLocation:instance.address,CheckoutImage:instance.img_stored,Attendenceid:Attendenceid,Attendencelogid:Attendencelogid,Startdate:Startdate,EndDate:enddate,userid:userid,Latitude:instance.mylatitude,Longitude:instance.mylongtitude,user_url:window.location.host},jsfiles=["apps/hrms/managers/attendencemanager.js"];let checkin=$("#check_in_btn").hasClass("d-none");checkin==!1?instance.fileCacheHelper.loadJsFiles(jsfiles,function(){Bizgaze.Apps.Hrms.Managers.AttendenceManager.Instance().SaveCheckInDetails(userCheckindetails).then(function(response){var CheckIn_data=response.result;if(CheckIn_data==null){$("#caputerModel").modal("show");$("#canvas").removeClass("d-none");$("#retakeBtn").removeClass("d-none");$(".loader-icon").addClass("d-none");$("#retakeBtn").removeClass("d-none");let html=`<span class="font-weight-600">${response.message}</span>`;$(".capture_err").html(html);$(".capture_err").removeClass("d-none");$("#img_check").addClass("d-none")}else{$("#caputerModel").modal("hide");$("#check_out_btn").attr({"data-toggle":"modal","data-backdrop":"false","data-target":"#caputerModel"});$(".timing").addClass("d-none");$(".start_timing").removeClass("d-none");$("#snapBtn").addClass("d-none");$("#img_check").addClass("d-none");$("#caputer_video").addClass("d-none");$("#retakeBtn").addClass("d-none");$("#caputer_video").addClass("d-none");$("#retakeBtn").addClass("d-none");$("#check_in_btn").removeAttr("data-toggle data-backdrop data-target");$("#location_data").addClass("d-none");$("#check_in_btn").addClass("d-none");$("#check_out_btn").removeClass("d-none");instance.mediaStream.getTracks().forEach(track=>{track.stop()});instance.startTime=Date.now();instance.re_timer=Date.now();instance.starttimerobj=instance.re_timer;instance.timer=setInterval(instance.clockTick,1e3);instance.time_Now=new Date;let hours=instance.time_Now.getHours(),ampm=hours>=12?"PM":"AM",time=instance.addzero(instance.twelvehours(instance.time_Now.getHours()))+":"+instance.addzero(instance.time_Now.getMinutes());instance.Start_time=instance.addzero(instance.twelvehours(instance.time_Now.getHours()))+":"+instance.addzero(instance.time_Now.getMinutes())+" "+ampm;$(".start_time").html(instance.Start_time)}instance.attendenceid=CheckIn_data.Attendanceid;instance.attendencelogid=CheckIn_data._Id;instance.startdate=CheckIn_data.Checkin;let date_end=`${date.getDate()} ${months[get_month]} ${date.getFullYear()}`,User_endTime=`${date_end} ${instance.Start_time}`,User_name=Unibase.Platform.Membership.Infos.Identity.currentUser.name,User_img=Unibase.Platform.Membership.Infos.Identity.currentUser.photoUrl;MessageHelper.Instance().ShowAttendenceSuccess(User_name,User_img,response.message,User_endTime,instance.address);$("#bizgaze_body").parent().find(".jq-toast-wrap").find(".d-flex.list-inline .mr-4").addClass("d-none");$("#bizgaze_body").parent().find(".jq-toast-wrap").find(".d-flex.list-inline h3.font-14.font-weight-400").addClass("d-none")})}):instance.fileCacheHelper.loadJsFiles(jsfiles,function(){Bizgaze.Apps.Hrms.Managers.AttendenceManager.Instance().SaveCheckOutDetails(userCheckoutdetails).then(function(response){var Check_data=response.result;if(Check_data==null){$("#caputerModel").modal("show");$("#canvas").removeClass("d-none");$("#retakeBtn").removeClass("d-none");$(".loader-icon").addClass("d-none");$("#retakeBtn").removeClass("d-none");let html=`<span class="font-weight-600">${response.message}</span>`;$(".capture_err").html(html);$(".capture_err").removeClass("d-none");$("#img_check").addClass("d-none")}else{$("#caputerModel").modal("hide");instance.mediaStream.getTracks().forEach(track=>{track.stop()});$("#check_out_btn").addClass("d-none");$("#check_in_btn").removeClass("d-none");$(".starting_time").addClass("d-none");$(".start_timing").addClass("d-none");$("#canvas").addClass("d-none");$(".loader-pendulums").addClass("d-none");$("#location_data").addClass("d-none");$(".timing").removeClass("d-none");$("#Check_duration").removeClass("d-none");$("#check_out_btn").removeAttr("data-toggle data-backdrop data-target");let Current_Time=new Date,hours=Current_Time.getHours(),ampm=hours>=12?"PM":"AM";instance.End_time=instance.addzero(instance.twelvehours(Current_Time.getHours()))+":"+instance.addzero(Current_Time.getMinutes())+" "+ampm;$(".end_time").html(instance.End_time);Bizgaze.Apps.Hrms.Components.Attendence.Instance().reset();(instance.startTime!=null||instance.timer_arrref!=null)&&(instance.startTime=undefined,instance.timer_arrref=undefined,instance.starttimerobj=undefined);$(".output").removeClass("d-none");let re_btn=$(".output").hasClass("d-none");re_btn==!1&&($(".output_re").empty(),$(".output").html(`00:00:00`),$(".output_re").addClass("d-none"));$(".output").html(`00:00:00`);let del_setting_val=instance.log_data.settings.filter(function(o){return o.settingName==="checkin"})[0];delete del_setting_val["settingValue"];Bizgaze.Apps.Hrms.Components.Attendence.Instance().getAttendanceLog();let date_end=`${Current_Time.getDate()} ${months[get_month]} ${Current_Time.getFullYear()}`,User_startTime=`${date_end} ${instance.End_time}`,User_name=Unibase.Platform.Membership.Infos.Identity.currentUser.name,User_img=Unibase.Platform.Membership.Infos.Identity.currentUser.photoUrl;MessageHelper.Instance().ShowAttendenceSuccess(User_name,User_img,response.message,User_startTime,instance.address);$("#bizgaze_body").parent().find(".jq-toast-wrap").find(".d-flex.list-inline .mr-4").addClass("d-none");$("#bizgaze_body").parent().find(".jq-toast-wrap").find(".d-flex.list-inline h3.font-14.font-weight-400").addClass("d-none")}})})})})}retakeImage(){$("#retakeBtn").click(function(){$(this).addClass("d-none");Bizgaze.Apps.Hrms.Components.Attendence.Instance().takePicture();$("#cam").removeClass("d-none");$("#canvas").addClass("d-none");$("#snapBtn").removeClass("d-none");$("#close_btn").addClass("d-none");$("#photo").attr("src","");$(".capture_err").addClass("d-none");$(".capture_err").parent().removeClass("align-items-end")})}viewattendenceReport(){$(".view_Details").click(function(){var date_now=new Date;const fromDate=Unibase.Platform.Helpers.DateTimeHelper.Instance().formatServerDate(date_now);Unibase.Platform.Analytics.Components.ReportViewer.Instance().getReportByUniqueId("Bizgaze_Platform_Analytics_Reports_AttendanceLogdashboard",null,null,null,fromDate,fromDate)})}afterload(){const instance=Bizgaze.Apps.Hrms.Components.Attendence.Instance();instance.log_data=Unibase.Platform.Membership.Infos.Identity.getCurrentUser();let started_time=instance.log_data.settings.filter(function(o){return o.settingName==="checkin"})[0].settingValue;instance.employeeid=instance.log_data.userId;Bizgaze.Apps.Hrms.Managers.AttendenceManager.Instance().getLoginDetails(instance.employeeid).then(function(response){if(started_time!=""){if(response.result!=""&&response.result!=null){let last_record=response.result[response.result.length-1],timeno=last_record.CheckIn;instance.startdate=last_record.CheckIn;instance.attendenceid=last_record.AttendanceId;instance.attendencelogid=last_record.AttendancelogId;instance.time_ne=moment.utc(last_record.CheckIn).local();let Checkin_timee=new Date(instance.time_ne),start_ampm=Checkin_timee.getHours()>=12?"PM":"AM",start_times=Bizgaze.Apps.Hrms.Components.Attendence.Instance().addzero(Bizgaze.Apps.Hrms.Components.Attendence.Instance().twelvehours(Checkin_timee.getHours()))+":"+Bizgaze.Apps.Hrms.Components.Attendence.Instance().addzero(Checkin_timee.getMinutes())+" "+start_ampm;if($(".start_time").html(start_times),timeno==undefined)$("#check_in_btn").removeClass("d-none"),$("#check_out_btn").addClass("d-none");else{instance.startTime=instance.time_ne;let Checkin_time=new Date(instance.startTime),time=Checkin_time.getTime();instance.timer_arrref=instance.startTime;instance.timer=setInterval(instance.clockTick,1e3);$("#check_in_btn").addClass("d-none");$("#check_out_btn").removeClass("d-none");$(".timing").addClass("d-none");$(".start_timing").removeClass("d-none");$(".output_re").removeClass("d-none")}}}else if(response.result!=""&&response.result!=null){let last_record=response.result[response.result.length-1],timeno=last_record.CheckIn;instance.startdate=last_record.CheckIn;instance.attendenceid=last_record.AttendanceId;instance.attendencelogid=last_record.AttendancelogId;instance.time_ne=moment.utc(last_record.CheckIn).local();let Checkin_timeer=new Date(instance.time_ne),startt_ampm=Checkin_timeer.getHours()>=12?"PM":"AM",start_timers=Bizgaze.Apps.Hrms.Components.Attendence.Instance().addzero(Bizgaze.Apps.Hrms.Components.Attendence.Instance().twelvehours(Checkin_timeer.getHours()))+":"+Bizgaze.Apps.Hrms.Components.Attendence.Instance().addzero(Checkin_timeer.getMinutes())+" "+startt_ampm;$(".start_time").html(start_timers);timeno==undefined?($("#check_in_btn").removeClass("d-none"),$("#check_out_btn").addClass("d-none")):(instance.startTime=instance.time_ne,instance.timer_arrref=instance.startTime,instance.timer=setInterval(instance.clockTick,1e3),$("#check_in_btn").addClass("d-none"),$("#check_out_btn").removeClass("d-none"),$(".timing").addClass("d-none"),$(".start_timing").removeClass("d-none"),$(".output_re").removeClass("d-none"))}})}postUserDetect(payload){return __awaiter(this,void 0,void 0,function*(){let instance=this;return yield Unibase.Apps.Collaboration.ResumeParsingManager.Instance().postUserDetect(payload)})}SaveCheckOutDetails(enddate){var postData,jsfiles;let img=$("#photo").attr("src"),instance=this;var Startdate=instance.startdate,Attendenceid=instance.attendenceid,Attendencelogid=instance.attendencelogid,address=instance.address,Latitude=instance.mylatitude,Longitude=instance.mylongtitude;let data=Unibase.Platform.Membership.Infos.Identity.getCurrentUser(),userid=data.userId;postData={CheckoutLocation:address,CheckoutImage:img,Attendenceid:Attendenceid,Attendencelogid:Attendencelogid,EndDate:enddate,Startdate:Startdate,userid:userid,Latitude:Latitude,Longitude:Longitude};jsfiles=["apps/hrms/managers/attendencemanager.js"];instance.fileCacheHelper.loadJsFiles(jsfiles,function(){Bizgaze.Apps.Hrms.Managers.AttendenceManager.Instance().SaveCheckOutDetails(postData).then(function(response){$("#snapBtn").attr({"data-dismiss":"modal","aria-label":"Close"});instance.mediaStream.getTracks().forEach(track=>{track.stop()});MessageHelper.Instance().showSuccess(response.message,"")})})}getUserApplicableShifts(){let instance=this,data=Unibase.Platform.Membership.Infos.Identity.getCurrentUser(),userid=data.userId;Bizgaze.Apps.Hrms.Managers.AttendenceManager.Instance().getUserApplicableShifts(userid).then(function(response){var data=response.result,ele_data;if(data!=null&&(ele_data=data.length,data!=undefined&&data!=null&&ele_data!=0)){instance.shiftfromtime=moment.utc(data[0].fromtime).local();let Checktime=new Date(instance.shiftfromtime),LI_ampm=Checktime.getHours()>=12?"PM":"AM",spl_val=Bizgaze.Apps.Hrms.Components.Attendence.Instance().addzero(Bizgaze.Apps.Hrms.Components.Attendence.Instance().twelvehours(Checktime.getHours()))+":"+Bizgaze.Apps.Hrms.Components.Attendence.Instance().addzero(Checktime.getMinutes())+" "+LI_ampm;instance.shifttotime=moment.utc(data[0].totime).local();let Checktotime=new Date(instance.shifttotime),Lo_ampm=Checktotime.getHours()>=12?"PM":"AM",spls_val=Bizgaze.Apps.Hrms.Components.Attendence.Instance().addzero(Bizgaze.Apps.Hrms.Components.Attendence.Instance().twelvehours(Checktotime.getHours()))+":"+Bizgaze.Apps.Hrms.Components.Attendence.Instance().addzero(Checktotime.getMinutes())+" "+Lo_ampm;$(".shift_name").html(`${data[0].shiftname} :`);$(".shift_timeings").html(`${spl_val} - ${spls_val}`)}})}getAttendanceLog(){let instance=this,data=Unibase.Platform.Membership.Infos.Identity.getCurrentUser(),userid=data.userId;Bizgaze.Apps.Hrms.Managers.AttendenceManager.Instance().getAttendanceLog(userid).then(function(response){if(response.result!==null){instance.last_checkIn=moment.utc(response.result.CheckIn).local();let Checkin_time=new Date(instance.last_checkIn),time=Checkin_time.getTime();instance.last_checkOut=moment.utc(response.result.CheckOut).local();let Checkout_time=new Date(instance.last_checkOut),Ctime=Checkout_time.getTime(),LI_ampm=Checkin_time.getHours()>=12?"PM":"AM",last_checkIn=Bizgaze.Apps.Hrms.Components.Attendence.Instance().addzero(Bizgaze.Apps.Hrms.Components.Attendence.Instance().twelvehours(Checkin_time.getHours()))+":"+Bizgaze.Apps.Hrms.Components.Attendence.Instance().addzero(Checkin_time.getMinutes())+" "+LI_ampm,LO_ampm=Checkout_time.getHours()>=12?"PM":"AM",last_checkOut=Bizgaze.Apps.Hrms.Components.Attendence.Instance().addzero(Bizgaze.Apps.Hrms.Components.Attendence.Instance().twelvehours(Checkout_time.getHours()))+":"+Bizgaze.Apps.Hrms.Components.Attendence.Instance().addzero(Checkout_time.getMinutes())+" "+LO_ampm;if(response.result!=null){$(".start_time").html(last_checkIn);$(".end_time").html(last_checkOut);let difference=Ctime-time;difference=difference/1e3;let hourDifference=Math.floor(difference/3600);difference-=hourDifference*3600;let minuteDifference=Math.floor(difference/60);difference-=minuteDifference*60;let due_time=`${Bizgaze.Apps.Hrms.Components.Attendence.Instance().addzero(hourDifference)}:${Bizgaze.Apps.Hrms.Components.Attendence.Instance().addzero(minuteDifference)}`;hourDifference>9||hourDifference==9?$(".Duration_time").addClass("text-success").removeClass("text-danger"):$(".Duration_time").addClass("text-danger").removeClass("text-success");$(".due_time").html(due_time)}}})}getAttendanceLogLastRecord(){let instance=this,data=Unibase.Platform.Membership.Infos.Identity.getCurrentUser(),userid=data.userId;Bizgaze.Apps.Hrms.Managers.AttendenceManager.Instance().getAttendanceLogLastRecord(userid).then(function(response){instance.last_checktable=response.result.CheckOut;instance.last_checktable=="0001-01-01T00:00:00"?$(".checkIn_err").addClass("d-none"):($(".checkIn_err").removeClass("d-none"),$("#modal_closebtn").removeClass("d-none"),$("#snapBtn").addClass("d-none"),$("#cam").addClass("d-none"),$("#user_location").addClass("d-none"),$("#CancelBtn").addClass("d-none"))})}static Instance(){return this.instance===undefined&&(this.instance=new Attendence),this.instance}}Components.Attendence=Attendence})(Components=Hrms.Components||(Hrms.Components={}))})(Hrms=Apps.Hrms||(Apps.Hrms={}))})(Apps=Bizgaze.Apps||(Bizgaze.Apps={}))}(Bizgaze||(Bizgaze={})),function(Unibase){let Platform;(function(Platform){let Membership;(function(Membership){let Components;(function(Components){class CheckinDetails extends Platform.Core.BaseComponent{init(containerid){let instance=this;instance.load(null,containerid,null)}loadCheckInDetails(containerid){let instance=this,html=`<div class="modal-content">
  18138. <div class="modal-header pa-10">
  18139. <strong class="modal-title biz-highlight-bg-color">Attendence Details</strong>
  18140. </div>
  18141. <div data-simplebar class="modal-body simple-scroll-bar Create-New-Form-body bg-white">
  18142. </div>
  18143. <div class="modal-footer pa-10"> <button type="button" id="newAccountFormCloseBtn"
  18144. class="btn btn-light btn-sm mr-auto">Close</button> <button type="button" id="newAccountFormSaveBtn"
  18145. class="btn btn-primary hidden btn-sm">Save</button> </div>
  18146. </div>`;$("#"+containerid).html(html)}load(id,containerid){var instance=this;instance.loadCheckInDetails(containerid);$(`#newAccountFormCloseBtn`).click(function(){instance.navigationHelper.closePopUp()})}jsFiles(){return["platform/membership/components/checkindetails.js"]}cssFiles(){return[]}html(){var instance=this;return``}static Instance(){return this.instance===undefined&&(this.instance=new CheckinDetails),this.instance}}Components.CheckinDetails=CheckinDetails})(Components=Membership.Components||(Membership.Components={}))})(Membership=Platform.Membership||(Platform.Membership={}))})(Platform=Unibase.Platform||(Unibase.Platform={}))}(Unibase||(Unibase={}));__awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})},function(Bizgaze){let Apps;(function(Apps){let Hrms;(function(Hrms){let Managers;(function(Managers){class AttendenceManager extends Unibase.Platform.Core.BaseManager{SaveCheckOutDetails(obj){return __awaiter(this,void 0,void 0,function*(){return yield this.dataHelper().postAsync("apis/v4/bizgaze/hrms/attendence/SaveCheckOutDetails",obj).then(function(response){return response.result!==null&&(response.result=JSON.parse(response.result)),response})})}SaveCheckInDetails(obj){return __awaiter(this,void 0,void 0,function*(){return yield this.dataHelper().postAsync("apis/v4/bizgaze/hrms/attendence/saveCheckInDetails",obj).then(function(response){return response.result!==null&&(response.result=JSON.parse(response.result)),response})})}getEmployeeCheckinAndCheckout(employeeid,checkin,checkout){return __awaiter(this,void 0,void 0,function*(){const url="apis/v4/bizgaze/hrms/attendence/getemployeecheckincheckoutdetails/employeeid/"+employeeid+"/checkin/"+checkin+"/checkout/"+checkout;return yield this.dataHelper().getAsync(url).then(function(response){return response.result!==null&&(response.result=JSON.parse(response.result)),response})})}getRegularizationCheckinAndCheckout(employeeid,checkin,checkout){return __awaiter(this,void 0,void 0,function*(){const url="apis/v4/bizgaze/hrms/regularization/getregularizationcheckincheckoutdetails/employeeid/"+employeeid+"/checkin/"+checkin+"/checkout/"+checkout;return yield this.dataHelper().getAsync(url).then(function(response){return response.result!==null&&(response.result=JSON.parse(response.result)),response})})}DeleteIncludedEmployees(attendeeid){return __awaiter(this,void 0,void 0,function*(){const url="apis/v4/bizgaze/hrms/presentbydefault/DeleteIncludedEmployees/id/"+attendeeid+"";return yield this.dataHelper().postAsync(url,null).then(function(response){return response.result!==null&&(response.result=JSON.parse(response.result)),response})})}getUserApplicableShifts(employeeid){return __awaiter(this,void 0,void 0,function*(){const url="apis/v4/bizgaze/hrms/attendence/getuserapplicableshifts/employeeid/"+employeeid;return yield this.dataHelper().getAsync(url).then(function(response){return response.result!==null&&(response.result=JSON.parse(response.result)),response})})}getLoginDetails(employeeid){return __awaiter(this,void 0,void 0,function*(){const url="apis/v4/bizgaze/hrms/attendence/getLogindata/employeeid/"+employeeid;return yield this.dataHelper().getAsync(url).then(function(response){return response.result!==null&&(response.result=JSON.parse(response.result)),response})})}addGeofencingUser(employeeid,employeename){return __awaiter(this,void 0,void 0,function*(){var instance=this,_recordId=Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x=>x.Key=="hf_"+Unibase.Themes.Providers.DetailHelper.installedAppId+"_recordid").Value),obj={employeeid:employeeid,geofencingid:_recordId,employeename:employeename};return yield this.dataHelper().postAsync("apis/v4/bizgaze/hrms/attendence/addgeofencinguser",obj).then(function(response){if(response.result!==null){var installedappid=Unibase.Themes.Providers.DetailHelper.installedAppId,Portlet=Unibase.Themes.Providers.Detail_Settings.Instance().ActivePortlets,PortletId=$("#hf_PortletId").val(),detailInstance=Unibase.Themes.Compact.Components.Details.Instance(),panel="#"+detailInstance._containerId;return Unibase.Themes.Compact.Components.Details.Instance().loadWidgets(installedappid,PortletId,panel),MessageHelper.Instance().showSuccess(response.message,"user added successfully")}return MessageHelper.Instance().showError(response.message,"add try Again ")})})}getAttendanceLog(employeeid){return __awaiter(this,void 0,void 0,function*(){const url="apis/v4/bizgaze/hrms/attendence/getAttendanceLog/employeeid/"+employeeid;return yield this.dataHelper().getAsync(url).then(function(response){return response.result!==null&&response.result!==""&&(response.result=JSON.parse(response.result)),response})})}getAttendanceLogLastRecord(employeeid){return __awaiter(this,void 0,void 0,function*(){const url="apis/v4/bizgaze/hrms/attendence/GetAttendanceLogLastRecord/employeeid/"+employeeid;return yield this.dataHelper().getAsync(url).then(function(response){return response.result!==null&&(response.result=JSON.parse(response.result)),response})})}static Instance(){return this._instance===undefined&&(this._instance=new AttendenceManager),this._instance}}Managers.AttendenceManager=AttendenceManager})(Managers=Hrms.Managers||(Hrms.Managers={}))})(Hrms=Apps.Hrms||(Apps.Hrms={}))})(Apps=Bizgaze.Apps||(Bizgaze.Apps={}))}(Bizgaze||(Bizgaze={}));__awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})},function(Unibase){let Apps;(function(Apps){let Collaboration;(function(Collaboration){class ResumeParsingManager extends Unibase.Platform.Core.BaseManager{createLead(obj){return __awaiter(this,void 0,void 0,function*(){return yield this.dataHelper().postAsync("apis/v4/bizgaze/integrations/businesscards/createlead",obj).then(function(response){return response.result!=null&&(response.result=JSON.parse(response.result)),response})})}postResume(data){return __awaiter(this,void 0,void 0,function*(){return yield this.dataHelper().postAsync("apis/v4/bizgaze/integrations/ai/uploadresume",data).then(function(response){return response})})}postUserRegister(data){return __awaiter(this,void 0,void 0,function*(){return yield this.dataHelper().postAsync("apis/v4/bizgaze/integrations/facerecognization/register",data).then(function(response){return response})})}postUserDetect(data){return __awaiter(this,void 0,void 0,function*(){return yield this.dataHelper().postAsync("apis/v4/bizgaze/integrations/facerecognization/detect",data).then(function(response){return response})})}postbusinessCard(data){return __awaiter(this,void 0,void 0,function*(){return yield this.dataHelper().postAsync("apis/v4/bizgaze/integrations/ai/uploadbusinesscards/list",data).then(function(response){return response})})}static Instance(){return this.instance===undefined&&(this.instance=new ResumeParsingManager),this.instance}}Collaboration.ResumeParsingManager=ResumeParsingManager})(Collaboration=Apps.Collaboration||(Apps.Collaboration={}))})(Apps=Unibase.Apps||(Unibase.Apps={}))}(Unibase||(Unibase={}));__awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})},function(Unibase){let Themes;(function(Themes){let Compact;(function(Compact){let Components;(function(Components){class NotificationWidget extends Unibase.Platform.Core.BaseComponent{load(){var instance=this}jsFiles(){return["tenants/themes/compact/components/notifications/userdesignnotificationwidget.js"]}cssFiles(){return[]}html(){var instance=this;return``}init(containerid){return __awaiter(this,void 0,void 0,function*(){let instance=this;yield instance.loadnotificationDetails(containerid);yield instance.loadReminders(null,containerid)})}loadnotificationDetails(containerid){let instance=this,html=`<div class="card mb-0 border-0 BindData_`+containerid+` findcontainer h-100" style="background:0 0">
  18147. <div class="card-header py-2 px-2 border-bottom search-bar-main-wrapper viewer-header position-sticky t-0 bg-white z-index-2" id="ViewerHeader_`+containerid+`">
  18148. <div class="card-header-top line-loader-container p-relative">
  18149. <div class=line-loader></div>
  18150. <div id=div_ErrorMessage class=form-error-message style=margin-left:-5px;z-index:100></div>
  18151. <div class="d-flex align-items-center biz-highlight-bg-color widget-font text-truncate">Notifications</div>
  18152. </div>
  18153. </div>
  18154. <div class="card-body px-1 py-0 border-removed border-white-removed show userDesignWidgetCardBody simple-scroll-bar" id="Viewer_`+containerid+`" data-iscollapseapplied=false>
  18155. <ul class="UserdesignNotifiactionDetails" id="UserdesignNotifiactionDetails"></ul>
  18156. </div>
  18157. <div class="border-0 card-footer d-flex justify-content-center position-sticky pt-10 z-index-2 bg-white ">
  18158. <a class="btn btn-outline-primary btn-xs rounded-4" href="javascript:;" onclick="Unibase.Themes.Compact.Components.Notification.Instance().ViewAll(6)" id="AddWidget_btnCreateWidget"> View Earlier Notifications </a>
  18159. </div>
  18160. </div>`;$("#"+containerid).html(html);screen.width>1120&&$("#"+containerid).find(".userDesignWidgetCardBody").css("height","308px")}loadReminders(){return __awaiter(this,void 0,void 0,function*(){let remindertype=Unibase.Platform.Communications.Enums.ReminderType.Notification;return yield Unibase.Platform.Communications.Managers.ReminderManager.Instance().getReminders(remindertype,10).then(function(response){let html="";if(response.length!=""||response.length!=0)for(let i=0;i<response.length;i++){let createformid=0,installedappid=0,refid=0;response[i].RedirectOptions==null||response[i].RedirectOptions==undefined?(installedappid=response[i].InstalledAppId,refid=response[i].RefId):(createformid=response[i].RedirectOptions.CreateFormId,installedappid=response[i].RedirectOptions.InstalledAppId,refid=response[i].RedirectOptions.RefId);let ReminderUrl=response[i].ReminderUrl,IconUrl=response[i].IconUrl;(IconUrl==undefined||IconUrl==null)&&(IconUrl="tenants/themes/compact/imgs/defaultnotification.png");IconUrl==""&&(IconUrl="tenants/themes/compact/imgs/notification.png");let ReminderId=response[i].ReminderId;ReminderUrl==""&&(ReminderUrl=null);html=`<div class="rem-item-wrap notification_card widget-card p-0">
  18161. <div class="d-flex w-100">
  18162. <a href="javascript:void(0);" class="w-100 text-dark notification_click" id="Rem-item-${ReminderId}" data-id="${ReminderId}" onclick="Unibase.Themes.Compact.Components.Notification.Instance().loadReminderDetails(${refid},${installedappid},'${response[i].UrlType}','${ReminderUrl}',${remindertype},${createformid},null)" class="text-dark py-1 w-90">
  18163. <div class="d-flex w-100">
  18164. <div class="flex-grow-1 overflow-hide">
  18165. <div class="notifications-text word-break">
  18166. <div class="d-flex justify-content-between align-items-center">
  18167. <div class="w-60p p-2 mr-1 flex-shrink-0">
  18168. <img src="${IconUrl}" data-dynamic="1" onerror="ReloadImage(event)" class="img-fluid" data-loaded="0">
  18169. </div>
  18170. <div class="w-90">
  18171. <div class="text-dark text-capitalize font-12 font-weight-600 text-truncate w-95 notification-subject" title="${response[i].Subject}">${response[i].Subject}</div>
  18172. <div class=" word-break notifi_message_overflow">${response[i].Message} <span class="notifications-time text-secondary">-</span> <span class="notifications-time text-secondary"> ${Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocal(response[i].ReminderDate)}</div>
  18173. </div>
  18174. <span>
  18175. </div>
  18176. </div>
  18177. <div>
  18178. </div>
  18179. </div>
  18180. </div>
  18181. </a>
  18182. </div>
  18183. </div>`;$(".UserdesignNotifiactionDetails").append(html)}else{let emptyhtml=`<div class="card-body text-center h-295p px-0">
  18184. <div class="biz-custom-scrollbar" style="height: -webkit-fill-available;">
  18185. <img src="tenants/themes/compact/imgs/notification.png" onerror="ReloadImage(event)" class="h-125p w-125p">
  18186. <p class="text-dark my-1 font-weight-600">You don't have any Notifications yet.</p>
  18187. <p class="font-14">Will notify you when Something arrives'</p>
  18188. </div>
  18189. </div>
  18190. `;$(".UserdesignNotifiactionDetails").html(emptyhtml)}$(".notification_click").click(function(){if($(this).parents(".notification_card").remove(),$(".UserdesignNotifiactionDetails").html().length==0){let emptyhtml=`<div class="card-body text-center">
  18191. <img src="tenants/themes/compact/imgs/notification.png" onerror="ReloadImage(event)" class="h-125p w-125p">
  18192. <p class="text-dark my-1 font-weight-600">You don't have any Notifications yet.</p>
  18193. <p class="font-14">Will notify you when Something arrives'</p>
  18194. </div>`;$(".UserdesignNotifiactionDetails").html(emptyhtml)}})})})}static Instance(){return this.instance===undefined&&(this.instance=new NotificationWidget),this.instance}}Components.NotificationWidget=NotificationWidget})(Components=Compact.Components||(Compact.Components={}))})(Compact=Themes.Compact||(Themes.Compact={}))})(Themes=Unibase.Themes||(Unibase.Themes={}))}(Unibase||(Unibase={}));__awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})},function(Unibase){let Themes;(function(Themes){let Compact;(function(Compact){let Components;(function(Components){class TaskWidget extends Unibase.Platform.Core.BaseComponent{load(){var instance=this}jsFiles(){return[]}cssFiles(){return[]}html(){var instance=this;return``}init(containerid){return __awaiter(this,void 0,void 0,function*(){let instance=this;yield instance.loadnotificationDetails(containerid);yield instance.loadReminders(null,containerid)})}loadnotificationDetails(containerid){let instance=this,html=`<div class="card mb-0 border-0 BindData_`+containerid+` findcontainer h-100" style="background:0 0">
  18195. <div class="card-header py-2 px-2 border-bottom search-bar-main-wrapper viewer-header position-sticky t-0 bg-white z-index-2" id="ViewerHeader_`+containerid+`">
  18196. <div class="card-header-top line-loader-container p-relative">
  18197. <div class=line-loader></div>
  18198. <div id=div_ErrorMessage class=form-error-message style=margin-left:-5px;z-index:100></div>
  18199. <div class="d-flex align-items-center biz-highlight-bg-color widget-font text-truncate">Tasks</div>
  18200. </div>
  18201. </div>
  18202. <div class="card-body px-1 py-0 border-removed border-white-removed show userDesignWidgetCardBody taskDetailsCardBody simple-scroll-bar" id="Viewer_`+containerid+`" data-iscollapseapplied=false>
  18203. <ul class="UserdesignTaskDetails" id="UserdesignTaskDetails"></ul>
  18204. </div>
  18205. <div class="border-0 card-footer d-flex justify-content-center position-sticky pt-10 bg-white z-index-2">
  18206. <a class="btn btn-xs rounded-4 btn-outline-primary" onclick="Unibase.Themes.Compact.Components.Notification.Instance().ViewAll(1)" href="javascript:;" id="AddWidget_btnCreateWidget">View Earlier Tasks</a>
  18207. </div>
  18208. </div>`;$("#"+containerid).html(html);screen.width>1120&&$("#"+containerid).find(".userDesignWidgetCardBody").css("height","308px")}loadReminders(){return __awaiter(this,void 0,void 0,function*(){let remindertype=Unibase.Platform.Communications.Enums.ReminderType.Task;return yield Unibase.Platform.Communications.Managers.ReminderManager.Instance().getReminders(remindertype,10).then(function(response){let html="";if(response.length!=""||response.length!=0)for(let i=0;i<response.length;i++){let createformid=0,installedappid=0,refid=0;response[i].RedirectOptions==null||response[i].RedirectOptions==undefined?(installedappid=response[i].InstalledAppId,refid=response[i].RefId):(createformid=response[i].RedirectOptions.CreateFormId,installedappid=response[i].RedirectOptions.InstalledAppId,refid=response[i].RedirectOptions.RefId);let ReminderUrl=response[i].ReminderUrl,IconUrl=response[i].IconUrl;(IconUrl==undefined||IconUrl==null)&&(IconUrl="tenants/themes/compact/imgs/defaultnotification.png");IconUrl==""&&(IconUrl="tenants/themes/compact/imgs/notification.png");let ReminderId=response[i].ReminderId;ReminderUrl==""&&(ReminderUrl=null);html='<div id="Taskmedia_'+ReminderId+'" class="task-list-item border-bottom border-2"><div class="cursor-pointer d-flex pr-3 py-1 w-100" id="Rem-item-'+ReminderId+'" data-id="'+ReminderId+'" onclick="Unibase.Themes.Compact.Components.Notification.Instance().loadReminderDetails('+refid+","+installedappid+",'"+response[i].UrlType+"','"+ReminderUrl+"',"+remindertype+","+createformid+',null)">'+`<div class="w-60p p-2 mr-2 flex-shrink-0"><img src="${IconUrl}" data-dynamic="1" onerror="ReloadImage(event)" class="img-fluid" data-loaded="0"></div>
  18209. <div class="notifications-text flex-grow-1 overflow-hide word-break">
  18210. <p class="text-dark text-capitalize font-12 font-weight-600 w-95 text-truncate word-break task-subject" title="${response[i].Subject}">${response[i].Subject}</p>
  18211. <p class="font-12 text-dark notifi_message_overflow"> ${response[i].Message}</p>
  18212. <div class="d-flex align-items-center justify-content-between ">
  18213. <div class="notifications-time font-12">${Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocal(response[i].ReminderDate)}</div>`+'<div class="btn btn-outline-primary btn-xs p-2 line-height-10" onclick="Unibase.Themes.Compact.Components.TaskWidget.Instance().LoadApprovals(\''+response[i].RefGuid+"','"+ReminderId+"',"+response[i].TaskId+');event.stopPropagation();"><a class="pull-right TaskCollapse_Manage'+ReminderId+' font-12" style="text-decoration: none;" data-toggle="collapse" > Manage <i class="text-dark fa fa-angle-down"><\/i>'+`</a></div></div></div></div>
  18214. <div class="box collaps" id="TaskcollapseManageBtn_${ReminderId}">
  18215. </div>
  18216. </div>`;$(".UserdesignTaskDetails").append(html)}else{let emptyhtml=`
  18217. <div class="card-body text-center h-295p px-0">
  18218. <div class="biz-custom-scrollbar" style="height: -webkit-fill-available;">
  18219. <img src="tenants/themes/compact/imgs/task.png" onerror="ReloadImage(event)" class="h-125p w-125p">
  18220. <p class="text-dark my-1 font-weight-600">You don't have any Tasks Right Now.</p>
  18221. <p class="font-14">Will notify you when Something arrives'</p>
  18222. </div>
  18223. </div>
  18224. `;$(".UserdesignTaskDetails").html(emptyhtml)}})})}LoadApprovals(RefId,ReminderId,TaskId){var html="";if($(`#taskManageBtnWrap_${ReminderId}`).length){$("#TaskcollapseManageBtn_"+ReminderId).collapse("toggle");return}Unibase.Platform.Communications.Managers.TaskManager.Instance().getTaskByRefId(RefId,TaskId).then(function(response){if(response.result!=null){var Approvedbtn="Approve",Rejectbtn="Reject",rejectonclick="Unibase.Themes.Compact.Components.Notification.Instance().SaveTaskReason('"+ReminderId+"',"+response.result.TaskId+",'Reject');";response.result.ConfirmKeyText!=null&&response.result.ConfirmKeyText!=undefined&&response.result.ConfirmKeyText!=""&&(Approvedbtn=response.result.ConfirmKeyText);response.result.RejectKeyText!=null&&response.result.RejectKeyText!=undefined&&response.result.RejectKeyText!=""&&(Rejectbtn=response.result.RejectKeyText);Number(response.result.RejectFormId)!=0&&(rejectonclick="Unibase.Themes.Compact.Components.Notification.Instance().ChangeApprovalStatus('"+ReminderId+"',"+response.result.TaskId+",'Reject',"+response.result.RejectFormId+","+response.result.RejectFormPkId+")");html+=`<div class="d-flex justify-content-between align-items-center mb-2 mt-1 ml-3 accordion-header" id="taskManageBtnWrap_${ReminderId}">`+`<div>`+'<button class="btn btn-outline-success taskbtn_conform mr-2 ml-auto px-4 py-1 font-12" onclick="Unibase.Themes.Compact.Components.Notification.Instance().ChangeApprovalStatus(\''+ReminderId+"',"+response.result.TaskId+",'Accept',"+response.result.ApprovalFormId+","+response.result.ApprovalFormPkId+')">'+Approvedbtn+'<\/button><button class="btn btn-outline-danger mr-2 ml-auto px-4 py-1 font-12 collapsed" data-toggle="collapse" href="#collapseReject_'+ReminderId+'">'+Rejectbtn+'<\/button><\/div><a class="py-1 font-12 text-danger pr-25 taskbtn_end" onclick = "Unibase.Themes.Compact.Components.Notification.Instance().confirmclosetask('+TaskId+",'"+ReminderId+'\')">Close<\/a><\/div><div class="collapse py-1" id="collapseReject_'+ReminderId+'" data-parent="#TaskcollapseManageBtn_'+ReminderId+'"><div class="d-flex justify-content-start mt-1 px-3"><input type="text" id="Reason_'+TaskId+'" class="form-control focus_blue border-0 w-75 p-0 pl-1 mr-2" placeholder="Add Comment"><a href="javascript:void(0);" class="btn-sm btn-success px-3 ml-2 p-0 d-flex flex-row align-items-center taskbtn_send" onclick="'+rejectonclick+'"><i class="fa fa-send-o font-11"><\/i><\/a><\/div><\/div>';$(".taskDetailsCardBody #TaskcollapseManageBtn_"+ReminderId).html(html).collapse("show");$(".taskbtn_conform,.taskbtn_send").click(function(){if($(this).parents(".task-list-item").remove(),$(".UserdesignTaskDetails").html().length==0){let emptyhtml=`<div class="card-body text-center">
  18225. <img src="tenants/themes/compact/imgs/task.png" onerror="ReloadImage(event)" class="h-125p w-125p">
  18226. <p class="text-dark my-1 font-weight-600">You don't have any Tasks Right Now.</p>
  18227. <p class="font-14">Will notify you when Something arrives'</p>
  18228. </div>`;$(".UserdesignTaskDetails").html(emptyhtml)}})}})}static Instance(){return this.instance===undefined&&(this.instance=new TaskWidget),this.instance}}Components.TaskWidget=TaskWidget})(Components=Compact.Components||(Compact.Components={}))})(Compact=Themes.Compact||(Themes.Compact={}))})(Themes=Unibase.Themes||(Unibase.Themes={}))}(Unibase||(Unibase={}));