1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865 |
- var __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());
- });
- };
- var Unibase;
- (function (Unibase) {
- let Platform;
- (function (Platform) {
- let Analytics;
- (function (Analytics) {
- let Reports;
- (function (Reports) {
- class ReportBuilder extends Platform.Core.BaseComponent {
- constructor() {
- super(...arguments);
- this.dateColumns = [];
- this.selectedColumns = [];
- this.ReportColumns = [];
- this.ChartColumns = [];
- this.datalistColumnsResponseData = [];
- this.identityColumnsResponseData = [];
- this.subreport_count = 1;
- this.dynamicFilters = [];
- this.reportname = null;
- this.cardviewerpage = 2;
- this.reportwidgetdata = null;
- this.toolTipTemplateArray = [];
- this.tableData = "";
- this.last_page = 2;
- this.whole_tableData = [];
- this.loadTableData = 0;
- this.tableData_Array = [];
- this.isduplicate = false;
- this.reportType = 1;
- this.duplicateColIndex = [];
- this.appliedFilter = 0;
- this.filtersArray = [];
- this.queryBuilderArray = [];
- this.tabulatorColumns = [];
- this.IsclickedSelect2Caret = false;
- this.Categories = [];
- this.groupBy_Category = [];
- this.TenureReport = [];
- this.reportViewer_scrolled = 0;
- this.subreportdata = [];
- this.columns_Data = [];
- this.dataTreeRowExpandedColumn = [];
- this.ViewerId = 0;
- this.ViewerTypeId = Unibase.Platform.Analytics.Reports.Enums.ViewerType.Table;
- this.QB_KeyUp = 0;
- this.EditableTitle = true;
- this.HeaderSort = false;
- this.QueryBuilder_Columns = [];
- this.DataListId = 0;
- this.Aggregations = ["count", "sum", "avg", "max", "min", "Month", "Year", "none"];
- this.DataSourceId = 0;
- this.IsPivotTree = false;
- this.Edit_BindData = false;
- this.IsNotification = false;
- this.SearchColumns = "";
- this.selectedCategoryColumnsArray = [];
- this.IsInternalReport = true;
- this.appConfigType = 0;
- this.parameterNumber = 1;
- this.parameterArray = [];
- this.isEdit = false;
- this.selectedOption = 1;
- this.index = 0;
- this.roleSettings = [];
- this.SortColumns = [];
- this.querybuilderCheckboxes = [];
- this.enableCount = false;
- this.enableGlobalDatepicker = false;
- this.reportGroupId = 0;
- this.paletteId = 0;
- this.isReportWidget = false;
- this.reportWidgetType = '';
- this.connectedAppsData = [];
- this.linkReportId = 0;
- this.viewAll = false;
- this.lastContainerId = "";
- this.enablePivotTableConfig = false;
- this.pinDynamicFilters = false;
- this.showDynamicFilters = false;
- this.legendTypeId = 0;
- }
- cssFiles() {
- var cssfiles = ['platform/analytics/components/reportbuilder/style.reportbuilder.css'];
- return cssfiles;
- }
- jsFiles() {
- var jsfiles = ["platform/bundle/index.reportbuilder.js"];
- return jsfiles;
- }
- html(id, containerid) {
- var instance = this;
- let html = `<div id="biz-wrapper" class="biz-wrapper biz-reportbuilder-wrap drawer-small drawer-right biz-drawer-push">
- <!-- Right Nav -->
- <div id="reportBuilderRightNav"></div>
- <!-- /Right Nav -->
-
- <!-- Main Content -->
- <div class="biz-pg-wrapper py-0">
- <div class="biz-pg-body">
- <div class="biz-bldr-wrap bldr__aside__left">
- <header class="bldr-head report-builder">
- <div id="div_ReportBuilderErrorMessage" class="form-error-message" style="margin-left:-5px; z-index:100;"></div>
- <div class="d-flex align-items-center">
- <input class="form-control w-180p report-name" id="txt_reportname" onchange="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().changeDisplayname()" value="New Report">
- <span class="badge badge-soft-primary ml-10" id="header_datalist_name">datalist 1</span>
- </div>
- <div class="bldr-options-wrap" id="top-nav-menu">
- <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>
- <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>
- <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>
- <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>
- <div class="bl-report-title" id="bl-report-title">Report</div>
- <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>
- <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>
- <div class="dropdown">
- <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>
- <a class="btn btn-theme btn-web mx-10 h-100" href="javscript:;" id="saveAsModalBtn">Save report</a>
- </div>
- <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>
- <a class="btn btn-outline-danger btn-web btn-reportbuilder-close" href="javascript:;" id="btn-report-builder-close">Discard</a>
- </div>
- </header>
- <div class="bldr-aside-left">
- <ul class="nav nav-light nav-tabs">
- <li class="nav-item">
- <a class="nav-link active" data-toggle="tab" href="#tab_outline">
- <span class="nav-link-text">Outline</span>
- </a>
- </li>
- <li class="nav-item">
- <a class="nav-link" data-toggle="tab" href="#tab_column">
- <span class="nav-link-text">Columns</span>
- </a>
- </li>
- </ul>
- <div data-simplebar class="simple-scroll-bar">
- <div class="tab-content">
- <div class="tab-pane fade show active" id="tab_outline">
- <div class="rightnav_body" id="DefaultLeftNav_body">
- </div>
- </div>
- <div class="tab-pane fade" id="tab_column">
- <div class="biz-adj-drawer-wrap">
- <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>
- <div id="adj_drawer_1" class="biz-adj-drawer">
- <header>
- <h6>Add Columns</h6>
- <span class="close btn-adj-drawer-close alldatalistcolumns_dlg_close_btn"></span>
- </header>
- <div class="drawer-body">
- <div class="form-search mb-20">
- <input class="form-control DatalistColumns_Search" placeholder="Search Columns" >
- </div>
- <div class="nicescroll-bar" id="allDatalistColumns">
-
- </div>
- </div>
- <footer class="justify-content-between">
- <a href="javascript:;" class="btn btn-light btn-adj-drawer-close mr-10 alldatalistcolumns_dlg_close_btn">Cancel</a>
- <a href="javascript:;" class="btn btn-theme btn-adj-drawer-close" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().appendExtraSelectedColumns()">Add Columns</a>
- </footer>
- </div>
- </div>
-
- <div class="flex-between-center mb-10">
- <span class="line-icon mr-2"><i class="las la-filter font-26"></i></span>
- <select class="custom-select form-control" id="filter-by">
- </select>
- </div>
- <div class="dsl-block-wrap dd-list droppable-area1 connected-sortable" id="selectedColumns">
- </div>
- <div class="dsl-block-wrap dd-list droppable-area1 connected-sortable" id="selectedColumns_hidden"></div>
- </div>
- </div>
- </div>
- </div>
- <div class="bldr-body">
- <header class="bldr-sec-head justify-content-end py-10 pl-10 h-50p">
- <div class="left-aside-togglable"></div>
- <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
- class="btn-icon-wrap"><span class="line-icon"><i class="las la-border-all font-25"></i></span></span></a>
- </header>
- <div class="reportbuilder-main-wrap">
- <div id="chart-container" class="card chart-wrap hidden"></div>
- <div class="table-wrap">
- <div id="tabulatorReportbuilder" class="tabulator-reportbuilder table-bordered border-0 h-100"></div>
- </div>
- </div>
- <div class="qry-builder-container">
- <header>
- <h6>Conditional formating</h6>
- <button type="button" class="close" aria-label="Close">
- <span aria-hidden="true">×</span>
- </button>
- </header>
- <div id="QueryBuilder" class="bg-white"></div>
- <footer>
- <button type="button" class="btn btn-light mr-10" id="btn-reset-query">Reset</button>
- <button type="button" class="btn btn-theme w-150p" id="btn-apply-query">Apply</button>
- </footer>
- </div>
- </div>
- </div>
- <!-- Save as Modal -->
- <div class="modal" id="save_as_modal" tabindex="-1" role="dialog" aria-labelledby="save_as_modal" aria-hidden="true">
- <div class="modal-dialog" role="document">
- <div class="modal-content">
- <div id="divReport_ErrorMessage"></div>
- <div class="modal-header border-0">
- <h5 class="modal-title">Save report</h5>
- <button type="button" class="close">
- <span aria-hidden="true">×</span>
- </button>
- </div>
- <div class="modal-body h-100">
- <div class="form-group">
- <div class="form-label-group">
- <label for="userName">Select Folder<span class="text-danger " id="spnIsRequired_folder"> *</span></label>
- <a href="javascript:;" id="reportCreateFolder" class="link-theme font-14 font-weight-500">+ Create Group</a>
- </div>
- <select class="form-control custom-select mb-10" id="RptGroup_AutoComplete">
- <option selected>Select Group</option>
- </select>
- <input type="hidden" id="hfAutoComplete_ReportGroup" class="hfAutoCompleteId_ReportGroup value-control" data-isdynamic="true"/>
- </div>
- <div class="form-group">
- <input type="checkbox" class="chkInternalReport mt-1 mr-10" onclick="" id="internalreport_checkbox" checked="true"><label for="internalreport_checkbox" class="mb-0">IsInternalReport</label>
- </div>
- <div class="custom-control custom-radio radio-theme">
- <input type="radio" id="customRadio_v1" name="customRadioV1" class="custom-control-input" checked>
- <label class="custom-control-label" for="customRadio_v1">Visible to all users</label>
- </div>
- <div class="custom-control custom-radio radio-theme">
- <input type="radio" id="customRadio_v2" name="customRadioV1" class="custom-control-input">
- <label class="custom-control-label" for="customRadio_v2">Visible to only me</label>
- </div>
- </div>
- <div class="modal-footer justify-content-start">
- <button type="button" id="btn-reportbuilder-save" class="btn btn-theme w-150p">Save</button>
- </div>
- </div>
- </div>
- </div>
- <!-- /Save as Modal -->
-
- <!-- Link Report Modal -->
- <div id="linkReportModalDiv"></div>
- <!-- /Link Report Modal -->
- </div>
- </div>
- <div id="divSelectDataList"></div>
- </div>`;
- $(".biz-new-report").hide();
- return html;
- }
- load(id, containerid, callback) {
- 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"]);
- let instance = this;
- instance.res = null;
- this.reportManager = Analytics.Managers.ReportManager.Instance();
- this._chartBuilder = Unibase.Platform.Analytics.Charts.ChartBuilder.Instance();
- this._reportViewer = Analytics.Components.ReportViewer.Instance();
- this._reportGroup = Reports.ReportGroup.Instance();
- this._reportBuilderTemplate = Reports.ReportBuilder_Template.Instance();
- this._columnFormat = Reports.ColumnFormat.Instance();
- this._pivot = Reports.Pivot.Instance();
- this.pivot = new PivotColumns();
- Unibase.Platform.Analytics.Reports.SubReport.Instance().isReportDuplicate = false;
- instance.dataTreeRowExpandedColumn = [];
- let reportid = id;
- instance.reportid = id;
- instance.containerId = containerid;
- $(".Datalist_Search").val("");
- $("#" + containerid).find(".report-builder-body").height($(window).outerHeight() - 100);
- $("#" + containerid).find("#tabulatorReportbuilder").addClass(containerid + "-table-canvas");
- $("#" + containerid).find("#chart-container").addClass(containerid + "-chart-canvas");
- $(".TableIcon").addClass("text-right").addClass("pull-right");
- $('#saveAsModalBtn').click(function (e) {
- return __awaiter(this, void 0, void 0, function* () {
- $('#save_as_modal').fadeIn().css('background-color', 'rgba(0, 0, 0, 0.5)');
- var isChecked = $("#internalreport_checkbox").prop('checked');
- if (isChecked) {
- let groupName = "InternalGroup";
- instance.reportManager.getReportGroupByName(groupName).then(yield function (grpresponse) {
- if (grpresponse.result != "") {
- $("#RptGroup_AutoComplete").append("<option selected value=" + grpresponse.result.ReportGroupId + ">InternalGroup</option>");
- $('#RptGroup_AutoComplete').attr('disabled', 'true');
- }
- });
- }
- });
- });
- $('#save_as_modal .close').click(function (e) {
- $('#save_as_modal').fadeOut().css('background-color', 'none');
- });
- $("#btn-reportbuilder-save").click(function () {
- if ($("#RptGroup_AutoComplete option:selected").val() == "Select Group")
- return MessageHelper.Instance().showError("Please select ReportGroup", 'divReport_ErrorMessage');
- $("#modalDataListItems .datalist-items, #modalDataListColumns").find(".active").removeClass("active");
- instance.saveReport(containerid, reportid);
- });
- instance._chartBuilder.loadTopIcons();
- instance.loadTableToggleButtons();
- instance.loadLeftNav();
- instance.loadReportGroups();
- instance.loadInstalledApps();
- instance.loadConnectedApps();
- instance.bindConnectedReportsSelect2("#connectedreports");
- if (reportid > 0) {
- instance.loadreportviewerdata(reportid);
- }
- else {
- instance.linkReportId = 0;
- instance.loadDataList_Modal();
- instance.loadDataLists();
- }
- instance.table = instance.initTable(containerid);
- if (callback !== null) {
- callback();
- instance.table.redraw(true);
- }
- $('#' + containerid).find("#btnRefresh").click(function () {
- return __awaiter(this, void 0, void 0, function* () {
- yield instance.load_data(instance.table);
- });
- });
- $('#reportBuilderModal').on('hidden.bs.modal', function () {
- $('#reportBuilderModal').remove();
- });
- $('.btn-reportbuilder-close').on('click', function () {
- instance.closeReportBuilder(containerid, reportid);
- });
- $("#DataListColumnsDiv").addClass("hidden");
- instance.loadAddedColumnFilter();
- $("#filter-by").select2({ minimumResultsForSearch: -1 });
- $('#filter-by').on('change', function (e) {
- instance.loadSelectedDataListColumns();
- });
- $("#reportCreateFolder").click(function () {
- instance.navigationHelper.popup(reportid, '', instance._reportGroup, null, Platform.Helpers.Size.Medium);
- });
- $("#notification_checkbox").click(function () {
- instance.isNotificationCheck();
- });
- $("#internalreport_checkbox").click(function () {
- return __awaiter(this, void 0, void 0, function* () {
- if ($('#internalreport_checkbox').prop('checked') == false) {
- instance.IsInternalReport = false;
- $("#RptGroup_AutoComplete").append("<option selected value=0>Select</option>");
- $('#RptGroup_AutoComplete').removeAttr('disabled');
- }
- else {
- instance.IsInternalReport = true;
- let groupName = "InternalGroup";
- instance.reportManager.getReportGroupByName(groupName).then(yield function (grpresponse) {
- if (grpresponse.result != "") {
- $("#RptGroup_AutoComplete").append("<option selected value=" + grpresponse.result.ReportGroupId + ">InternalGroup</option>");
- $('#RptGroup_AutoComplete').attr('disabled', 'true');
- }
- });
- }
- });
- });
- $("#count_checkbox").click(function () {
- if ($('#count_checkbox').prop('checked') == false) {
- instance.enableCount = false;
- $('#count_checkbox').prop('checked', false);
- }
- else {
- instance.enableCount = true;
- $('#count_checkbox').prop('checked', true);
- }
- });
- $("#enableglobaldatepicker_checkbox").click(function () {
- if ($('#enableglobaldatepicker_checkbox').prop('checked') == false) {
- instance.enableGlobalDatepicker = false;
- $('#enableglobaldatepicker_checkbox').prop('checked', false);
- }
- else {
- instance.enableGlobalDatepicker = true;
- $('#enableglobaldatepicker_checkbox').prop('checked', true);
- }
- });
- $('#btn-apply-query').on('click', function () {
- var qelement = $("#builder");
- var obj = qelement.queryBuilder('getRules');
- !obj && (obj = []);
- instance.queryBuilderJson = JSON.stringify(obj);
- instance.load_data(instance.table);
- $(".qry-builder-container").hide();
- });
- $(".alldatalistcolumns_dlg_close_btn").click(() => {
- let selectedColumns = $("#allDatalistColumns").find(".selected");
- if (selectedColumns.length) {
- for (var i = 0; i < selectedColumns.length; i++)
- $(selectedColumns[i]).removeClass("selected");
- }
- $(".DatalistColumns_Search").val("").trigger("keyup");
- });
- $("#divDatalistModal_ErrorMessage").empty();
- $('.biz-reportbuilder-wrap').click(function () {
- $('#tabulatorReportbuilder').find('.column-dp-menu.show').removeClass('show');
- });
- $("#showdatalistcolumns_checkbox").click((e) => {
- instance.showDynamicFilters = e.currentTarget.checked;
- instance._chartBuilder.loadDynamicFilterSelect(instance.showDynamicFilters);
- });
- $("#InstalledApp_AutoComplete").change(e => {
- });
- $('#DefaultLeftNav_body .reset-btn').click(e => {
- e.preventDefault();
- e.stopPropagation();
- });
- $("#RptGroup_AutoComplete").change(e => {
- let groupId = Number(e.target.value);
- instance.reportManager.getReportGroupById(groupId).then(res => {
- if (res.status == Unibase.Data.Status.Success) {
- instance.isInternalGroup = res.result.IsInternalGroup;
- instance.updateInternalReportCb(res.result.IsInternalGroup, instance.isInternalGroup);
- if (instance.isInternalGroup)
- instance.IsInternalReport = true;
- }
- });
- });
- }
- loadForm(FormId, Pk_Value, AppConfigurationId, Callback, ElementId) {
- this.init(0, null);
- }
- init(reportid, callback) {
- var instance = this;
- instance.reportid = reportid;
- instance.render(reportid, callback);
- }
- render(reportid, callback) {
- var instance = this;
- reportid = reportid;
- this.navigationHelper.popup(reportid, '', instance, null, Platform.Helpers.Size.ExtraLarge);
- }
- loadReportForm(iscreate) {
- var Pk_Value = 0;
- if (!iscreate) {
- Pk_Value = Unibase.Themes.Providers.DetailHelper.recordId;
- }
- this.init(Pk_Value, null);
- }
- initiateDataListSearch() {
- $('.Datalist_Search,.DatalistColumns_Search').on('keyup', function () {
- let ulClass = "";
- if ($(this).hasClass('Datalist_Search')) {
- ulClass = '.datalist-items';
- }
- else {
- ulClass = '.columns-list';
- }
- $(ulClass + ' li').each(function () {
- $(this).attr('data-search-term', $(this).text().replaceAll(" ", "_").toLowerCase());
- });
- let searchTerm = $(this).val().toString().toLowerCase();
- searchTerm.includes(" ") && (searchTerm = searchTerm.replaceAll(" ", "_"));
- if (searchTerm != "") {
- let count = 0;
- $(ulClass + ' li').each(function () {
- if ($(this).filter('[data-search-term *= ' + searchTerm + ']').length > 0 || searchTerm.length < 1) {
- $(this).show();
- count++;
- }
- else {
- $(this).hide();
- }
- });
- if (!count)
- return MessageHelper.Instance().showError("No results found", 'divDatalistModal_ErrorMessage');
- else if ($("#divDatalistModal_ErrorMessage").children().length)
- $("#divDatalistModal_ErrorMessage").empty();
- }
- else {
- $(ulClass + ' li').each(function () {
- $(this).show();
- });
- }
- });
- }
- loadDataList_Modal() {
- const instance = this;
- let reportBuilder_DataListModalHtml = `<div class="modal fade biz-new-report" id="reportBuilderModal" tabindex="-1" role="dialog" aria-labelledby="reportBuilderPopup" aria-hidden="true">
- <div class="modal-dialog modal-dialog-centered modal-lg" role="document">
- <div class="modal-content">
- <div id="divDatalistModal_ErrorMessage"></div>
- <div class="modal-header flex-column">
- <h5 class="mb-5">Create New Report</h5>
- <p>Choose datalist and columns to your report</p>
- </div>
- <div class="modal-body pa-0 h-400p">
- <div class="dataset-list-wrap">
- <div class="form-search">
- <input class="form-control Datalist_Search" placeholder="Search Datalist">
- </div>
- <div data-simplebar class="simple-scroll-bar" id="DataListsDropDownDiv">
- <div id="modalDataListItems">
-
- </div>
- </div>
- </div>
- <div class="columns-list-wrap">
- <div class="d-flex align-items-center">
- <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>
- <div class="form-search col">
- <input class="form-control DatalistColumns_Search" placeholder="Search Columns">
- </div>
- </div>
- <div data-simplebar class="simple-scroll-bar">
- <div id="modalDataListColumns">
-
- </div>
- </div>
- </div>
- </div>
- <div class="modal-footer justify-content-center">
- <a class="btn btn-light mr-10 btn-reportbuilder-close" href="javascript:;" data-dismiss="modal">cancel</a>
- <a class="btn btn-theme btn-reportbuilder-next" href="javascript:;" onclick="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().loadReportColumns()"> next </a>
- </div>
- </div>
- </div>
- </div>`;
- $("#_bizgaze_modal").append(reportBuilder_DataListModalHtml);
- $('#reportBuilderModal').modal({
- backdrop: 'static',
- keyboard: true,
- show: true
- });
- instance.initiateDataListSearch();
- }
- loadDataLists() {
- var instance = this;
- let dataListHtml = "";
- instance.reportManager.getDataLists().then(function (response) {
- dataListHtml += '<ul class="nav nav-vertical nav-tabs datalist-items">';
- for (var i = 0; i < response.length; i++) {
- let obj = response[i];
- dataListHtml += `<li class="nav-item">
- <a class="nav-link data-list-sel" data-toggle="tab"
- 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})">
- <span class="nav-link-text">${obj.DataListName.trim()}</span>
- </a>
- </li>`;
- }
- dataListHtml += '</ul>';
- $('#modalDataListItems').append(dataListHtml);
- if (!window.matchMedia('(max-width: 1200px)').matches) {
- $("#modalDataListItems ul li a:first").addClass("active").trigger('click');
- }
- });
- }
- loadDataListColumns(datalistid, term, search, IsForm, DataSourceId) {
- return __awaiter(this, void 0, void 0, function* () {
- $('#modalDataListColumns').html("");
- $("#reportBuilderModal").find(".DatalistColumns_Search").val("");
- var instance = this;
- instance.DataSourceId = DataSourceId;
- if (datalistid != 0) {
- var dataListColumnsHtml = "";
- yield instance.reportManager.getDataListColumns(datalistid, term, null).then(function (response) {
- if (response.status == Unibase.Data.Status.Success) {
- if (response.result != "") {
- var dc_res = JSON.parse(response.result);
- instance.datalistColumnsResponseData = [];
- if (dc_res.length > 0) {
- dataListColumnsHtml += `<div class="tab-content">
- <div class="tab-pane fade show active" id="tab_col_1">
- <ul class="columns-list multi-sel">`;
- for (var i = 0; i < dc_res.length; i++) {
- let obj = dc_res[i];
- let columnIcon = instance.getColumnIconByDataTypes(obj.DataTypeId);
- 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 };
- instance.datalistColumnsResponseData.push(dobj);
- dataListColumnsHtml += `<li>
- <a href="#">
- <span class="col-type-icon">
- <span class="line-icon">
- ${columnIcon}
- </span>
- </span>
- <span>
- <span class="col-name dataListModalColumn" data-column-datatype=${obj.DataTypeId} data-column-id='${obj.ColumnId}' data-column-dlcolumnname='${obj.ColumnName}'>${obj.AliasName}</span>
-
- </span>
- </a>
- </li>`;
- }
- dataListColumnsHtml += `</ul></div>`;
- $('#modalDataListColumns').html(dataListColumnsHtml);
- instance.QueryBuilder_Columns = instance.datalistColumnsResponseData;
- }
- else {
- $('#modalDataListColumns').html("");
- }
- }
- else {
- return MessageHelper.Instance().showError("DataListColumns does'nt exist", "divDatalistModal_ErrorMessage");
- }
- }
- else {
- return MessageHelper.Instance().showError(response.message, "divDatalistModal_ErrorMessage");
- }
- });
- }
- });
- }
- _selectedColumns(selCol) {
- var instance = this;
- let colFormat;
- if (selCol.DataType == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime && selCol.ColumnFormat)
- colFormat = selCol.ColumnFormat;
- else if (selCol.DataType == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime && !(selCol.ColumnFormat))
- colFormat = "Default";
- instance.selectedColumns.push({
- ReportColumnId: (selCol.ReportColumnId) ? selCol.ReportColumnId : 0,
- ColumnId: selCol.ColumnId,
- ColumnName: selCol.ColumnName,
- AliasName: selCol.AliasName && selCol.AliasName.toLowerCase(),
- DataListColumnName: selCol.DataListColumnName,
- DlColumnName: selCol.DlColumnName,
- DisplayText: (selCol.DisplayText) ? selCol.DisplayText : selCol.AliasName,
- DataType: selCol.DataType,
- DataTypeString: selCol.DataTypeString,
- GroupBy: (selCol.GroupBy) ? selCol.GroupBy : false,
- Isvisible: (selCol.Isvisible) ? selCol.Isvisible : false,
- Aggregation: !isNaN(selCol.Aggregation) ? selCol.Aggregation : Reports.Enums.AggregationType.none,
- SortOrder: (selCol.SortOrder) ? selCol.SortOrder : "none",
- SortIndex: (selCol.SortIndex) ? selCol.SortIndex : 0,
- IsFilterable: false,
- IsPrimaryKey: (selCol.IsPrimaryKey) ? selCol.IsPrimaryKey : false,
- IsContactColumn: (selCol.IsContactColumn) ? selCol.IsContactColumn : false,
- ColumnIndex: instance.selectedColumns.length,
- IsDragged: (selCol.IsDragged) ? selCol.IsDragged : false,
- GroupByCategory: (selCol.GroupByCategory) ? selCol.GroupByCategory : false,
- ColumnFormat: (colFormat) ? colFormat : "",
- DistinctOn: (selCol.DistinctOn) ? selCol.DistinctOn : false,
- IsPivotColumn: selCol.IsPivotColumn,
- IsPivotAggrColumn: selCol.IsPivotAggrColumn,
- IsPivotTableCol: (selCol.IsPivotTableCol) ? selCol.IsPivotTableCol : false,
- IsDownload: (selCol.IsDownload) ? selCol.IsDownload : false,
- TableAggrTypeId: !isNaN(selCol.TableAggrTypeId) ? selCol.TableAggrTypeId : Reports.Enums.AggregationType.none,
- IsNumFormatting: (selCol.IsNumFormatting) ? selCol.IsNumFormatting : false,
- IsRowTotal: (selCol.IsRowTotal) ? selCol.IsRowTotal : false,
- IsImageUrl: (selCol.IsImageUrl) ? selCol.IsImageUrl : false,
- PivotTableAggrTypeId: (selCol.PivotTableAggrTypeId) ? selCol.PivotTableAggrTypeId : 0,
- });
- var Width = selCol.Width;
- if (Width != undefined) {
- let index = instance.getIndexByAliasName_selectedColumnsArray(selCol.AliasName);
- if (index != -1)
- instance.selectedColumns[index].Width = Width;
- }
- var ColumnName = selCol.ColumnName;
- let EditableTitle = true;
- let HeaderSort = false;
- if (instance.reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Chart) {
- EditableTitle = false;
- HeaderSort = true;
- }
- instance.table.addColumn({ title: selCol.AliasName && selCol.AliasName.toLowerCase(), field: ColumnName && ColumnName.toLowerCase(), editableTitle: EditableTitle, headerSort: HeaderSort }, true, "LastColumn");
- instance.EditableTabulatorTitle();
- }
- loadReportColumns() {
- var instance = this;
- if ($('#modalDataListItems .nav-link.data-list-sel.active').length == 0)
- return MessageHelper.Instance().showError("Please select Datalist", 'divDatalistModal_ErrorMessage');
- if ($('#modalDataListColumns .columns-list li.selected').length == 0)
- return MessageHelper.Instance().showError("Please select Columns", 'divDatalistModal_ErrorMessage');
- instance.datalistColumnsResponseData = [];
- instance.DataListId = parseInt($('#modalDataListItems ul li a.active').attr('data-list-id'));
- const DataListName = $('#modalDataListItems ul li a.active').attr('data-list-name');
- var asb = 0;
- $('#datalist_name').val(DataListName);
- $('#header_datalist_name').html(DataListName);
- if (!isNaN(instance.DataListId)) {
- $('#modalDataListColumns ul.multi-sel li span.dataListModalColumn').each(function () {
- let _id = Number($(this).attr('data-column-id'));
- let _datatype = Number($(this).attr('data-column-datatype'));
- let _datatypeString = $(this).attr('data-column-datatype');
- let _dlcolumnname = $(this).attr('data-column-dlcolumnname');
- let _dlaliasname = $(this).text();
- let obj = { ColumnId: _id, DataType: _datatype, DataTypeString: _datatypeString, ColumnName: _dlaliasname, DisplayText: _dlaliasname, AliasName: _dlaliasname, DlColumnName: _dlcolumnname, Isvisible: false };
- instance.datalistColumnsResponseData.push(obj);
- });
- $('#modalDataListColumns ul.multi-sel li.selected span.dataListModalColumn').each(function () {
- let _id = Number($(this).attr('data-column-id'));
- let _datatype = Number($(this).attr('data-column-datatype'));
- let _datatypeString = $(this).attr('data-column-datatype');
- let _dlaliasname = $(this).text();
- let _dlcolumnname = $(this).attr('data-column-dlcolumnname');
- let obj = { ColumnId: _id, DataType: _datatype, DataTypeString: _datatypeString, ColumnName: _dlaliasname, AliasName: _dlaliasname, DlColumnName: _dlcolumnname, Isvisible: true, IsDownload: true };
- instance._selectedColumns(obj);
- });
- instance.loadSelectedDataListColumns();
- instance.loadAllDataListColumns();
- instance._chartBuilder.select2DataBinding("");
- $('#reportBuilderModal').modal('hide');
- $('.Datalist_Search').val("");
- $('.DatalistColumns_Search').val("");
- instance.load_data(instance.table);
- }
- ;
- }
- loadAllDataListColumns() {
- var instance = this;
- let allDatalistColumnsHtml = "";
- allDatalistColumnsHtml += '<ul class="columns-list multi-sel">';
- for (var i = 0; i < instance.datalistColumnsResponseData.length; i++) {
- var obj = instance.datalistColumnsResponseData[i];
- let columnIcon = instance.getColumnIconByDataTypes(obj.DataType);
- allDatalistColumnsHtml += `<li id="li_${obj.ColumnId}">
- <a href="#">
- <span class="col-type-icon">
- <span class="line-icon">${columnIcon}</span>
- </span>
- <span>
- <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>
- </a>
- </li>`;
- }
- allDatalistColumnsHtml += '</ul>';
- $('#allDatalistColumns').html(allDatalistColumnsHtml);
- }
- loadSelectedDataListColumns() {
- let opt = Number($('#filter-by').val());
- let check = '';
- var hiddenColumnsHtml = '';
- if (opt == Unibase.Platform.Analytics.Enums.FilterType.allcolumns) {
- }
- else if (opt == Unibase.Platform.Analytics.Enums.FilterType.contactcolumns) {
- check = 'IsContactColumn';
- }
- else if (opt == Unibase.Platform.Analytics.Enums.FilterType.primarykeycolumns) {
- check = 'IsPrimaryKey';
- }
- var instance = this;
- let selectedColumnsHtml = "";
- $.each(instance.selectedColumns, function (index, value) {
- var { selectedColumnHtml, hiddenColumnHtml } = instance.getSelectedColumnHtml(value, index, check);
- selectedColumnsHtml += selectedColumnHtml;
- if (!check)
- hiddenColumnsHtml += hiddenColumnHtml;
- });
- $('#selectedColumns').html(selectedColumnsHtml);
- $('#selectedColumns_hidden').html(hiddenColumnsHtml);
- instance.sortSelectedColums();
- }
- getColumnHtml(AliasName, ColumnName, ColumnId, dnoneClass, Isvisible, isColumnVisible, DataType, DisplayText, isHiddenColumn) {
- var idValue = isHiddenColumn ? "_hidden" : "";
- const draggerClass = isHiddenColumn ? 'pl-40' : 'las la-braille dragger';
- return `<div class="dsl-block ${Isvisible ? '' : 'd-none'}" id="column_${AliasName}_block${idValue}" data-isvisible="${isColumnVisible}">
- <span>
- <i class="${draggerClass}"></i>
- <span class="dsl-block-name" data-column-id='${ColumnId}' data-report-columnname = '${ColumnName} ' data-report-aliasname ='${AliasName}' data-column-datatype='${DataType}'>${DisplayText}</span>
- </span>
- <span>
- <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>
- </span>
- </div>`;
- }
- getSelectedColumnHtml(value, index, check) {
- var instance = this;
- var selectedColumnHtml = '', hiddenColumnHtml = '';
- let dnoneClass = 'd-none';
- let isColumnVisible = "true";
- if (!value.Isvisible) {
- dnoneClass = '';
- isColumnVisible = "false";
- }
- var colIndex = instance.getIndexByAliasName_selectedColumnsArray(value.AliasName);
- instance.selectedColumns[colIndex].ColumnIndex = index;
- if (check == '' && !value.IsPrimaryKey) {
- selectedColumnHtml += instance.getColumnHtml(value.AliasName, value.ColumnName, value.ColumnId, dnoneClass, value.Isvisible, isColumnVisible, value.DataType, value.DisplayText);
- }
- else if (check == "IsPrimaryKey" && value.IsPrimaryKey) {
- selectedColumnHtml += instance.getColumnHtml(value.AliasName, value.ColumnName, value.ColumnId, dnoneClass, value.Isvisible, isColumnVisible, value.DataType, value.ColumnName);
- }
- else if (check == '' && value.IsPrimaryKey) {
- selectedColumnHtml += instance.getColumnHtml(value.AliasName, value.ColumnName, value.ColumnId, dnoneClass, value.Isvisible, isColumnVisible, value.DataType, value.AliasName);
- }
- else if (check == 'IsContactColumn' && value.IsContactColumn) {
- selectedColumnHtml += `<div class="dsl-block ${value.Isvisible ? '' : 'd-none'}" id="column_${value.AliasName}_block" data-isvisible="${isColumnVisible}">
- <span>
- <i class="las la-braille dragger"></i>
- <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>
- </span>
- <span>
- <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>
- </span>
- </div>`;
- }
- if (!value.Isvisible) {
- hiddenColumnHtml += instance.getColumnHtml(value.AliasName, value.ColumnName, value.ColumnId, dnoneClass, true, isColumnVisible, value.DataType, value.DisplayText, true);
- }
- return {
- selectedColumnHtml: selectedColumnHtml,
- hiddenColumnHtml: hiddenColumnHtml
- };
- }
- sortSelectedColums() {
- var instance = this;
- let list = $('#selectedColumns');
- if (!list)
- return;
- list.sortable({
- connectWith: "#selectedColumns",
- cursor: 'move',
- update: function (event, ui) {
- instance.updateSelectedColumnIndex();
- instance.load_data(instance.table);
- }
- });
- }
- appendExtraSelectedColumns() {
- var instance = this;
- let obj;
- let newColumnsHtml = "";
- if (instance.DataListId != 0) {
- let show = false;
- $('#allDatalistColumns ul.multi-sel li.selected span.datalist_column').each(function () {
- let _id = Number($(this).attr('data-column-id'));
- let _datatype = Number($(this).attr('data-column-datatype'));
- let _datatypeString = $(this).attr('data-column-datatype');
- let _name = $(this).text();
- let _dlcolumnname = $(this).attr('data-column-dlcolumnname');
- let opt = Number($('#filter-by').val());
- if (opt == Unibase.Platform.Analytics.Enums.FilterType.primarykeycolumns && _datatype != Unibase.Platform.Analytics.Reports.Enums.DataType.int32 && _datatype != Unibase.Platform.Analytics.Reports.Enums.DataType.int64) {
- return MessageHelper.Instance().showError("Please select integer data type column for selecting primary key", "div_ReportBuilderErrorMessage");
- }
- obj = { ColumnId: _id, DataType: _datatype, DataTypeString: _datatypeString, ColumnName: _name, AliasName: _name, DlColumnName: _dlcolumnname, Isvisible: true, IsDownload: true };
- var column = instance.selectedColumns.find(x => x.AliasName == _name) ? true : false;
- if (!column)
- instance._selectedColumns(obj);
- if (opt == Unibase.Platform.Analytics.Enums.FilterType.allcolumns) {
- if (column) {
- show = true;
- return instance.error(_name);
- }
- newColumnsHtml += instance.addDataListColumns_ColumnsTab(obj.ColumnId, obj.ColumnName, obj.AliasName, obj.DataType, _name);
- }
- else if (opt == Unibase.Platform.Analytics.Enums.FilterType.contactcolumns) {
- var contccol = instance.selectedColumns.find(x => x.AliasName == _name && x.IsContactColumn == true) ? true : false;
- if (contccol) {
- show = true;
- return instance.error(_name);
- }
- newColumnsHtml += instance.addDataListColumns_ColumnsTab(obj.ColumnId, obj.ColumnName, obj.AliasName, obj.DataType, _name);
- instance.IsContactColumn(_id, _name);
- }
- else if (opt == Unibase.Platform.Analytics.Enums.FilterType.primarykeycolumns) {
- var pkcol = instance.selectedColumns.find(x => x.ColumnName == _name && x.IsPrimaryKey == true) ? true : false;
- if (pkcol) {
- show = true;
- return MessageHelper.Instance().showError('Please remove existing pk_id column to add new primarykey column', 'div_ReportBuilderErrorMessage');
- }
- newColumnsHtml += instance.addDataListColumns_ColumnsTab(obj.ColumnId, obj.ColumnName, "pk_id", obj.DataType, _name);
- obj["AliasName"] = "pk_id";
- obj["IsPrimaryKey"] = true;
- instance._selectedColumns(obj);
- $("#txtAliasName_pk_id").val("pk_id");
- }
- });
- $("#selectedColumns").append(newColumnsHtml);
- instance.sortSelectedColums();
- instance.loadAllDataListColumns();
- instance._chartBuilder.select2DataBinding("");
- instance._chartBuilder.loadSearchSelect2();
- $(".DatalistColumns_Search").val("").trigger("keyup");
- this._pivot.loadPivotSelect2s();
- instance.load_data(instance.table);
- if (!show)
- $('#adj_drawer_1').hide();
- }
- ;
- }
- addDataListColumns_ColumnsTab(ColumnId, ColumnName, AliasName, DataType, name) {
- let newColumnsHtml = `<div class="dsl-block" id="column_${AliasName}_block">
- <span>
- <i class="las la-braille dragger"></i>
- <span class="dsl-block-name" data-column-id='${ColumnId}' data-report-columnname = '${ColumnName}' data-report-aliasname ='${AliasName}' data-column-datatype='${DataType}'>${ColumnName}</span>
- </span>
- <span>
- <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>
- </span>
- </div>`;
- return newColumnsHtml;
- }
- addDuplicateColumn(columnName) {
- var instance = this;
- let duplicateCol;
- let index = 0;
- if (instance.duplicateColIndex.length > 0) {
- let col = instance.duplicateColIndex[columnName];
- if (col) {
- index = col.index + 1;
- duplicateCol = columnName + "_" + index;
- delete instance.duplicateColIndex[columnName];
- instance.duplicateColIndex[columnName] = { ColName: columnName, AliasName: duplicateCol, index: index };
- }
- else {
- duplicateCol = columnName + "_" + index;
- instance.duplicateColIndex[columnName] = { ColName: columnName, AliasName: duplicateCol, index: index };
- instance.duplicateColIndex.length = instance.duplicateColIndex.length + 1;
- }
- }
- else {
- duplicateCol = columnName + "_" + index;
- instance.duplicateColIndex[columnName] = { ColName: columnName, AliasName: duplicateCol, index: index };
- instance.duplicateColIndex.length = instance.duplicateColIndex.length + 1;
- }
- return duplicateCol;
- }
- pivotData() {
- var instance = this;
- let sel_Col = instance.selectedColumns;
- instance.table.options.dataTree = true;
- for (var i = 0; i < sel_Col.length; i++) {
- if (instance.pivot.ColumnName == sel_Col[i].ColumnName) {
- let Col = [];
- let row = instance.pivot.PivotRows;
- for (var r = 0; r < row.length; r++) {
- Col.push({ title: row[r], field: row[r], visible: true, editableTitle: instance.EditableTitle, headerSort: instance.HeaderSort });
- }
- instance.tabulatorColumns = instance.tabulatorColumns.concat(Col);
- }
- else {
- if (sel_Col[i].Width != undefined) {
- 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 });
- }
- else {
- if (instance.pivot.AggColumnName != sel_Col[i].ColumnName) {
- instance.tabulatorColumns.push({ title: sel_Col[i].ColumnName, field: sel_Col[i].ColumnName, visible: sel_Col[i].Isvisible, editableTitle: instance.EditableTitle, headerSort: instance.HeaderSort });
- }
- }
- }
- }
- }
- findChildren(row, action) {
- var instance = this;
- if (action == "expand") {
- row.treeExpand();
- }
- else {
- row.treeCollapse();
- }
- ;
- var childRows = row.getTreeChildren();
- if (childRows.length > 0) {
- childRows.forEach(function (child) {
- if (child.getTreeChildren().length > 0) {
- instance.findChildren(child, action);
- }
- });
- }
- }
- getDistinctData(colId, colName, AggrFuncId) {
- return __awaiter(this, void 0, void 0, function* () {
- var instance = this;
- var cf_fromDate = btoa(Unibase.Platform.Helpers.NavigationHelper.commonFilter_FromDate);
- var cf_toDate = btoa(Unibase.Platform.Helpers.NavigationHelper.commonFilter_ToDate);
- yield Unibase.Platform.Analytics.Managers.ReportManager.Instance().getDistinctColumnData(instance.DataListId, colName, AggrFuncId, cf_fromDate, cf_toDate).then(function (response) {
- if (response != "") {
- instance.distinctColumnData = response;
- let PivotRows = [];
- instance.pivot.ColumnName = colName;
- for (var i = 0; i < instance.distinctColumnData.length; i++) {
- PivotRows.push(instance.distinctColumnData[i][colName]);
- }
- if ($("#PivotRows_Select2").is(":visible")) {
- $("#PivotRows_Select2").select2({
- placeholder: 'Select Pivot Rows',
- data: PivotRows,
- });
- }
- instance.pivot.PivotRows = PivotRows;
- }
- else {
- instance.pivot.PivotRows = [];
- }
- });
- });
- }
- timeIntervels(pivotCol) {
- var instance = this;
- var timeInterval = instance.TenureReport[pivotCol].TimeInterval.split(',');
- var tenure = [];
- for (var t = 0; t < timeInterval.length; t++) {
- var start = 0;
- if (t != timeInterval.length - 1) {
- if (t == 0) {
- start = Number(timeInterval[t]);
- }
- else {
- start = Number(timeInterval[t]) + 1;
- }
- var end = timeInterval[t + 1];
- tenure.push(start + "-" + end);
- }
- else {
- tenure.push(">" + timeInterval[t]);
- }
- }
- return tenure;
- }
- tenureData() {
- var instance = this;
- let sel_Col = instance.selectedColumns;
- instance.tenureTimeIntervalCol = instance.pivot.ColumnName;
- var tenure = instance.timeIntervels(instance.tenureTimeIntervalCol);
- for (var i = 0; i < sel_Col.length; i++) {
- if (instance.pivot.ColumnName == sel_Col[i].ColumnName) {
- let Col = [];
- for (var t = 0; t < tenure.length; t++) {
- if (sel_Col[i].Width) {
- Col.push({ title: tenure[t], field: tenure[t], visible: true, editableTitle: instance.EditableTitle, headerSort: instance.HeaderSort, width: sel_Col[i].Width });
- }
- else {
- Col.push({ title: tenure[t], field: tenure[t], visible: true, editableTitle: instance.EditableTitle, headerSort: instance.HeaderSort });
- }
- }
- instance.tabulatorColumns[sel_Col[i].ColumnIndex + 1] =
- {
- title: sel_Col[i].ColumnName,
- columns: Col,
- };
- }
- else {
- if (instance.pivot.AggColumnName !== sel_Col[i].ColumnName) {
- instance.tabulatorColumns[sel_Col[i].ColumnIndex + 1] =
- { 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 };
- }
- }
- }
- }
- initTable(containerid) {
- var instance = this;
- var autoNumFormatter = function (cell) {
- var row = cell.getRow();
- var rowIndex = row.getPosition(false);
- return (rowIndex + 1);
- };
- let serviceurl = "apis/v4/unibase/platform/analytics/tabledata";
- serviceurl = _appsettings.server_url() + (serviceurl.startsWith('/') ? serviceurl : ('/' + serviceurl));
- instance.table = new Tabulator("." + containerid + "-table-canvas", {
- columns: [
- { title: "", formatter: autoNumFormatter, frozen: true, minWidth: 40, width: 40 },
- { title: "LastColumn", field: "LastColumn", visible: false, headerSort: false }
- ],
- layout: "fitDataFill",
- dataTree: true,
- movableColumns: false,
- dataTreeStartExpanded: instance._pivot.isDataTreeExpand,
- dataTreeChildIndent: 15,
- dataTreeRowExpanded: function (row, level) {
- return __awaiter(this, void 0, void 0, function* () {
- var array = [];
- var _children = [];
- if (instance.datatreeIndex_Width / 70 <= level) {
- instance.datatreeIndex_Width = instance.datatreeIndex_Width + 70;
- }
- Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().tabulatorColumns[0].width = instance.datatreeIndex_Width;
- Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().tabulatorColumns[0].minWidth = instance.datatreeIndex_Width;
- if (instance.dataTreeRowExpandedColumn.length != 0) {
- instance.table.setColumns(instance.tabulatorColumns);
- instance.EditableTabulatorTitle();
- $(".tabulator-frozen").css("width", instance.datatreeIndex_Width);
- var Columns = instance.table.getColumns();
- for (var c = 0; c < Columns.length; c++) {
- var field = Columns[c].getField();
- var width = Columns[c]["_column"].width;
- $("#" + instance.containerId).find("[tabulator-field = '" + field + "']").css("width", width);
- }
- }
- var parentcolName = instance.pivot.ParentColumnName;
- var parentValue = row.getData()[parentcolName];
- instance.dataTreeRowExpandedColumn = [];
- instance.dataTreeRowExpandedColumn.push({ ColumnName: parentcolName, ColumnValue: parentValue, Level: level });
- instance.pivot.ChildColumnValue = parentValue;
- yield instance.load_data(instance.table);
- setTimeout(function () {
- instance.table.options.dataTree = true;
- var tabledata = JSON.parse(instance.tableData);
- var hasChild = tabledata.filter(x => x.haschild == true).forEach(c => c["_children"] = []);
- row.getData()._children = tabledata;
- return row.update(row.getData());
- }, 1000);
- });
- },
- rowClick: function (e, row) {
- },
- cellClick: function (e, cell) {
- var Interval = cell["_cell"].column.definition.title;
- Unibase.Platform.Analytics.Reports.Tenure.Instance().tenureDetailsTable(Interval);
- },
- placeholder: "No data available",
- columnResized: function (column) {
- let col = column["_column"].field;
- let width = column["_column"].width;
- let index = instance.getIndexByAliasName_selectedColumnsArray(col);
- instance.selectedColumns[index].Width = width;
- },
- scrollHorizontal: function () {
- $('#tabulatorReportbuilder .tabulator-header').find('.column-dp-menu.show').removeClass('show');
- },
- dataLoading: function (data) {
- if (data && data.length) {
- instance.navigationHelper.showLoading();
- }
- },
- dataLoaded: function () {
- if (instance.tableData) {
- instance.navigationHelper.hideLoading();
- }
- }
- });
- var height = $(".report-builder-body").height() - 40 + "px";
- instance.table.setHeight(height);
- $("#table-canvan").height(height);
- return instance.table;
- }
- getReportData() {
- var instance = this;
- instance.ReportColumns = [];
- if (instance.reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Chart) {
- instance._chartBuilder.pushPivotData();
- }
- if (instance.TenureReport.length != 0) {
- instance.TenureReport;
- }
- var fromDate = "";
- var toDate = "";
- var cf_fromDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_FromDate;
- var cf_toDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_ToDate;
- if (cf_fromDate != null && cf_toDate != null) {
- fromDate = cf_fromDate.toString();
- toDate = cf_toDate.toString();
- }
- else {
- fromDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
- toDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
- }
- let repObj = new ReportObject();
- repObj.DataListId = instance.DataListId;
- repObj.StaticFilter = instance.queryBuilderJson;
- repObj.SortColumns = instance.stringifyed_SortColumns;
- repObj.Filter = null;
- repObj.LinkSubReport = false;
- repObj.PivotTypeId = instance._pivot.pivotTypeId;
- repObj.IsPivotTree = instance.IsPivotTree;
- repObj.TimeInterval = instance.Interval;
- repObj.FromDate = fromDate;
- repObj.ToDate = toDate;
- repObj.IsTreeExpand = instance._pivot.isDataTreeExpand;
- repObj.ReportTypeId = instance.reportType;
- repObj.TopRecords = instance.topRecords;
- if ($("#txt_totalrecords").val() != "") {
- repObj.TopRecords = Number($("#txt_totalrecords").val());
- }
- if (instance.selectedColumns.length > 0) {
- for (var i = 0; i < instance.selectedColumns.length; i++) {
- var index = instance.selectedColumns.findIndex(x => x.ColumnIndex == i);
- let col = new ReportColumn();
- col.ColumnValue = Number(instance.selectedColumns[index]["ColumnId"]);
- col.ReportColumnName = instance.selectedColumns[index]["ColumnName"];
- col.AliasName = instance.selectedColumns[index]["AliasName"];
- col.DisplayText = instance.selectedColumns[index]["DisplayText"];
- col.DlColumnName = instance.selectedColumns[index]["DlColumnName"];
- col.DataListColumnName = instance.selectedColumns[index]["DataListColumnName"];
- col.ColumnIndex = instance.selectedColumns[index]["ColumnIndex"];
- col.DataType = instance.selectedColumns[index]["DataType"];
- col.AggrFuncId = instance.selectedColumns[index]["Aggregation"];
- col.SortType = instance.selectedColumns[index]["SortOrder"];
- col.SortIndex = instance.selectedColumns[index]["SortIndex"];
- col.Isvisible = instance.selectedColumns[index]["Isvisible"];
- col.GroupBy = instance.selectedColumns[index]["GroupBy"];
- col.IsPrimaryKey = instance.selectedColumns[index]["IsPrimaryKey"];
- col.PivotValueSelected = instance.pivot.PivotValue_Selected;
- col.ColumnFormat = instance.selectedColumns[index]["ColumnFormat"];
- col.YearComparisonType = instance.selectedColumns[index]["YearComparisonType"];
- col.DistinctOn = instance.selectedColumns[index]["DistinctOn"];
- col.IsPivotColumn = instance.selectedColumns[index]["IsPivotColumn"];
- col.IsPivotAggrColumn = instance.selectedColumns[index]["IsPivotAggrColumn"];
- col.IsPivotTableCol = instance.selectedColumns[index]["IsPivotTableCol"];
- col.IsDownload = instance.selectedColumns[index]["IsDownload"];
- col.TableAggrTypeId = instance.selectedColumns[index]["TableAggrTypeId"];
- col.IsNumFormatting = instance.selectedColumns[index]["IsNumFormatting"];
- col.IsRowTotal = instance.selectedColumns[index]["IsRowTotal"];
- col.PivotTableAggrTypeId = instance.selectedColumns[index]["PivotTableAggrTypeId"];
- if (col.ColumnFormat && col.ColumnFormat.toLowerCase() == "default") {
- col.ColumnFormat = '';
- }
- instance.reportColumns_Array(col);
- }
- }
- repObj.ReportColumns = instance.ReportColumns;
- return repObj;
- }
- load_data(table) {
- return __awaiter(this, void 0, void 0, function* () {
- var instance = this;
- var repObj = instance.getReportData();
- yield instance.reportManager.getTableData(repObj).then(function (response) {
- instance.navigationHelper.hideLoading();
- if (response.status == Unibase.Data.Status.Success) {
- if (response.result != "") {
- var res = JSON.parse(response.result);
- instance.tableData = res.Data;
- if (instance.dataTreeRowExpandedColumn.length == 0) {
- if (instance.tableData) {
- instance.table.setData(instance.tableData);
- }
- instance.groupbyData();
- if (instance.reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Chart) {
- if (instance.TenureReport.length == 0) {
- if (res.Data != "") {
- var data = JSON.parse(res.Data);
- instance._chartBuilder.ChartData = data;
- instance._chartBuilder.chart_dataSet();
- }
- }
- }
- }
- else {
- }
- }
- else {
- MessageHelper.Instance().showError("No data found", "div_ReportBuilderErrorMessage");
- return false;
- }
- }
- else {
- MessageHelper.Instance().showError(response.message, "div_ReportBuilderErrorMessage");
- return false;
- }
- });
- instance.loadTableData = 1;
- });
- }
- groupbyData() {
- var instance = this;
- var groupBy_Category = [];
- for (var i = 0; i < instance.selectedColumns.length; i++) {
- var data = instance.selectedColumns[i];
- if (data.GroupByCategory) {
- if (jQuery.inArray(data.AliasName, groupBy_Category) == -1) {
- groupBy_Category.push(data.AliasName);
- }
- }
- }
- if (instance.datatreeIndex_Width == undefined) {
- instance.datatreeIndex_Width = 70;
- }
- var tableData = [];
- if (instance.tableData != "") {
- tableData = JSON.parse(instance.tableData);
- }
- else {
- $(".tabulator-loader").remove();
- }
- let sel_Col = instance.selectedColumns;
- var ScrollPosition = $(".tabulator-tableHolder").scrollTop();
- var autoNumFormatter = function (cell) {
- var row = cell.getRow();
- var rowIndex = row.getPosition(false);
- return (rowIndex + 1);
- };
- instance.tabulatorColumns = [];
- if (sel_Col.length != 0) {
- instance.tabulatorColumns.push({ title: "", formatter: autoNumFormatter, frozen: true, minWidth: 50, width: 60, hozAlign: 'right' });
- let btmCal_noneArray = [];
- let IsAggr = false;
- var tableData;
- if (instance._pivot.pivotTypeId == Unibase.Platform.Analytics.Reports.Enums.PivotType.Pivot) {
- instance.pivotData();
- }
- else if (instance._pivot.pivotTypeId == Unibase.Platform.Analytics.Reports.Enums.PivotType.TimeInterval) {
- instance.tenureData();
- }
- else if (instance._pivot.pivotTypeId == Unibase.Platform.Analytics.Reports.Enums.PivotType.PivotTreeView) {
- instance.pivotData();
- tableData.filter(x => x.haschild == true).forEach(c => c["_children"] = []);
- }
- else {
- if (instance._pivot.pivotTypeId == Unibase.Platform.Analytics.Reports.Enums.PivotType.TreeView) {
- tableData.filter(x => x.haschild == true).forEach(c => c["_children"] = []);
- }
- for (var i = 0; i < sel_Col.length; i++) {
- let sCol = sel_Col[i];
- let Aggr = sCol.TableAggrTypeId;
- let AggrName = instance.getAggregationName(Aggr);
- const colHozAlign = instance.getColHorizontalAlign(sCol);
- if (instance.DataSourceId == 0 || instance.DataSourceId == Platform.DataSources.Enums.DataSource.Sql || instance.DataSourceId == Platform.DataSources.Enums.DataSource.MySql) {
- instance.tabulatorColumns[sCol.ColumnIndex + 1] =
- { title: sCol.DisplayText, field: sCol.AliasName.toLowerCase(), visible: sCol.Isvisible, editableTitle: instance.EditableTitle, headerSort: instance.HeaderSort, bottomCalc: AggrName, bottomCalcParams: { precision: 2 }, hozAlign: colHozAlign };
- }
- else {
- instance.tabulatorColumns[sCol.ColumnIndex + 1] =
- { title: sCol.AliasName, field: sCol.AliasName, visible: sCol.Isvisible, editableTitle: instance.EditableTitle, headerSort: instance.HeaderSort, bottomCalc: AggrName, bottomCalcParams: { precision: 2 }, hozAlign: colHozAlign };
- }
- if (sCol.Width == undefined) {
- delete instance.tabulatorColumns[sCol.ColumnIndex + 1].width;
- }
- if (AggrName != "none") {
- IsAggr = true;
- }
- else {
- delete instance.tabulatorColumns[sCol.ColumnIndex + 1].bottomCalc;
- btmCal_noneArray.push({ ColumnName: sCol.ColumnName });
- }
- }
- }
- instance.tabulatorColumns.push({ title: "LastColumn", field: "LastColumn", visible: false, headerSort: instance.HeaderSort });
- instance.table.options.dataTree = false;
- instance.table.setColumns(instance.tabulatorColumns);
- if (instance.reportid != 0) {
- instance.getSubReports(instance.reportid);
- }
- if (instance.dataTreeRowExpandedColumn.length == 0) {
- instance.table.options.dataTree = true;
- instance.table.setData(tableData);
- }
- if (groupBy_Category.length == 0) {
- instance.table.options.dataTree = false;
- instance.table.setGroupBy("");
- }
- else {
- instance.table.options.dataTree = false;
- instance.table.setGroupBy(groupBy_Category);
- }
- for (i = 0; i < btmCal_noneArray.length; i++) {
- $(".tabulator-calcs-holder").find("[tabulator-field='" + btmCal_noneArray[i].ColumnName + "']").text("");
- }
- if (IsAggr == false) {
- $("#tabulatorReportbuilder .tabulator-footer").addClass("hidden");
- }
- else {
- if (groupBy_Category.length == 0) {
- $("#tabulatorReportbuilder .tabulator-footer").removeClass("hidden");
- }
- }
- instance.EditableTabulatorTitle();
- }
- else {
- instance.table.clearData();
- }
- $(".tabulator-tableHolder").scrollTop(ScrollPosition);
- }
- getColHorizontalAlign(col) {
- let colHozAlign = '';
- if (col.DataType == Reports.Enums.DataType.decimal || col.DataType == Reports.Enums.DataType.int32 || col.DataType == Reports.Enums.DataType.int64) {
- colHozAlign = 'right';
- }
- else if (col.DataType == Reports.Enums.DataType.date || col.DataType == Reports.Enums.DataType.dateTime) {
- colHozAlign = 'center';
- }
- else {
- colHozAlign = 'left';
- }
- return colHozAlign;
- }
- getTreeViewData(reportresponse) {
- var instance = this;
- if (reportresponse.result.ReportJsonData.Result.Data != "") {
- let parentrecords = [];
- let reportjsondata = JSON.parse(reportresponse.result.ReportJsonData.Result.Data);
- parentrecords = reportjsondata.filter(function (col) {
- return col.parentid == reportresponse.result.ReportInfo.PivotValue;
- });
- if (parentrecords.length == 0) {
- parentrecords = reportjsondata;
- }
- for (var p = 0; p < parentrecords.length; p++) {
- let childrecords = _children(parentrecords[p].childid);
- if (childrecords != undefined) {
- parentrecords[p]["_children"] = [];
- parentrecords[p]._children = childrecords;
- }
- }
- function _children(childid) {
- let childrecords = instance.gettreeChildRecords(reportjsondata, childid);
- if (childrecords.length > 0) {
- for (var c = 0; c < childrecords.length; c++) {
- let subchilds = _children(childrecords[c].childid);
- if (subchilds != undefined) {
- childrecords[c]["_children"] = [];
- childrecords[c]._children = subchilds;
- }
- }
- return childrecords;
- }
- }
- return parentrecords;
- }
- }
- gettreeChildRecords(reportjsondata, childid) {
- return reportjsondata.filter(function (col) {
- return col.parentid == childid;
- });
- }
- getSubReports(reportid) {
- var instance = this;
- instance.reportManager.getSubReports(reportid).then(function (response) {
- if (response.status == Unibase.Data.Status.Success && response.result && response.result.length) {
- var subreportdata = response.result;
- instance.subreportdata = subreportdata;
- if (subreportdata.length > 0) {
- var subdata = subreportdata.find(s => s.RowClick == true);
- if (subdata) {
- var hideIcon = function (cell, formatterParams, onRendered) {
- return "<i class='fa fa-eye'></i>";
- };
- instance.table.addColumn({ formatter: hideIcon, width: 5, title: "", headerSort: false }, true);
- }
- }
- }
- });
- }
- changeAliasName_table(columnId, aliasName) {
- var instance = this;
- let lowercase_ColumnName = aliasName;
- if (instance.DataSourceId == 0 || instance.DataSourceId == Platform.DataSources.Enums.DataSource.Sql || instance.DataSourceId == Platform.DataSources.Enums.DataSource.MySql) {
- lowercase_ColumnName = aliasName.toLowerCase();
- }
- let Index = instance.getIndexByAliasName_selectedColumnsArray(aliasName);
- let colName = instance.selectedColumns[Index].ColumnName;
- let _aliasText = $("#txtAliasName_" + aliasName).val();
- let changed_aliasText = _aliasText.trim().toLocaleLowerCase();
- let sortHtml = "";
- if (changed_aliasText != "") {
- if (Index > -1) {
- if (changed_aliasText.toLocaleLowerCase() == "pk_id") {
- $("#txtAliasName_" + aliasName).val(colName);
- return MessageHelper.Instance().showError('Can not change pk_id as aliasname', 'div_ReportBuilderErrorMessage');
- }
- if (changed_aliasText.indexOf(' ') >= 0) {
- $("#txtAliasName_" + aliasName).val(colName);
- return MessageHelper.Instance().showError('Please Remove Spaces Form "' + changed_aliasText + '"', 'div_ReportBuilderErrorMessage');
- }
- var sCols = instance.selectedColumns.find(s => s.AliasName == changed_aliasText) ? true : false;
- if (sCols) {
- $("#txtAliasName_" + aliasName).val(colName);
- return instance.error(changed_aliasText);
- }
- $("#selectedColumns").find("#column_" + colName + "_block").attr("id", "column_" + _aliasText + "_block");
- $("#column_" + colName + "_block").find(".dsl-block-name").attr("data-report-aliasname", changed_aliasText);
- $("#" + aliasName + "_EyeIcon").attr("id", changed_aliasText + "_EyeIcon");
- $("#" + changed_aliasText + "_EyeIcon").attr("onclick", "Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().showOrHideColumn_table(" + columnId + ",'" + changed_aliasText + "')");
- $("#txtAliasName_" + aliasName).attr("onchange", "Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().changeAliasName_table(" + columnId + ",'" + changed_aliasText + "')");
- $("#txtAliasName_" + aliasName).attr("id", "txtAliasName_" + changed_aliasText);
- instance.selectedColumns[Index].AliasName = changed_aliasText;
- if (instance.SearchColumns) {
- let searchColumns = instance.SearchColumns.split('|');
- let srchIdx = searchColumns.indexOf(aliasName);
- if (srchIdx != -1) {
- searchColumns[srchIdx] = changed_aliasText;
- instance.SearchColumns = searchColumns.join("|");
- }
- }
- this._chartBuilder.loadSortColumnsSelect2();
- this._chartBuilder.loadDynamicFilterSelect(this.showDynamicFilters);
- this._chartBuilder.loadSearchSelect2();
- let sortIdx = this.SortColumns.findIndex(x => x.DisplayText == aliasName);
- let dyfilIdx = this.dynamicFilters.findIndex(x => x.IsFilterableColumn == aliasName);
- if (sortIdx != -1)
- this.SortColumns[sortIdx].DisplayText = changed_aliasText;
- if (dyfilIdx != -1)
- this.dynamicFilters[dyfilIdx].IsFilterableColumn = changed_aliasText;
- for (var i = 0; i < this.SortColumns.length; i++) {
- let selCol = this.selectedColumns.find(x => x.AliasName == this.SortColumns[i].DisplayText);
- if (selCol)
- sortHtml += this._reportBuilderTemplate.loadSortSelect2Column(selCol.ColumnId, selCol.AliasName, selCol.DataType);
- }
- $("#sort_selected_columns").html(sortHtml);
- this.stringifyed_SortColumns = this.getSortColumnsStringify();
- $("#dynamic-list-group-wrapper").empty();
- for (var i = 0; i < this.dynamicFilters.length; i++) {
- let currentFilter = this.dynamicFilters[i];
- let dyfilterHtml = "";
- let selCol = this.selectedColumns.find(x => x.AliasName == currentFilter.IsFilterableColumn);
- if (selCol)
- dyfilterHtml += this._reportBuilderTemplate.loadDynamicFilterColumn(selCol.ColumnId, selCol.AliasName, selCol.DataType);
- $("#dynamic-list-group-wrapper").append(dyfilterHtml);
- if (selCol && selCol.DataType == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime) {
- $(".dynamic-filter-icon-" + parseInt(selCol.ColumnId)).addClass("hidden");
- if (currentFilter.IsDefault)
- $("#dynamicfilter-defaultdate_" + currentFilter.IsFilterableColumn).prop("checked", true);
- else if (currentFilter.IsPartition)
- $("#chk_ispartition_" + currentFilter.IsFilterableColumn).prop("checked", true);
- }
- }
- instance.load_data(instance.table);
- }
- }
- else {
- $("[tabulator-field = '" + lowercase_ColumnName + "']").find(".tabulator-title-editor").val(colName);
- }
- }
- changeDisplayText_table(columnId, aliasName) {
- var instance = this;
- let displayText = $("[tabulator-field = '" + aliasName + "']").find(".tabulator-title-editor").val().toString();
- if (displayText) {
- let sIndex = instance.getIndexByAliasName_selectedColumnsArray(aliasName);
- if (sIndex > -1) {
- instance.selectedColumns[sIndex].DisplayText = displayText;
- $(".tabulator-col-title").find("#DisplayText_" + aliasName).val(displayText);
- $(".tabulator-col-title").find("#DisplayText_" + aliasName).focus();
- $("#selectedColumns #column_" + aliasName + "_block").find(".dsl-block-name").text(displayText);
- }
- let xIdx = this._chartBuilder.xaxisColumns.findIndex(x => x.AliasName == aliasName);
- if (xIdx > -1) {
- this._chartBuilder.xaxisColumns[xIdx].DisplayText = displayText;
- }
- let yIdx = this._chartBuilder.yaxisColumns.findIndex(x => x.AliasName == aliasName);
- if (yIdx > -1) {
- this._chartBuilder.yaxisColumns[yIdx].DisplayText = displayText;
- }
- let cbcIdx = this._chartBuilder.chartBaseColumns.findIndex(x => x.AliasName == aliasName);
- if (cbcIdx > -1) {
- this._chartBuilder.chartBaseColumns[cbcIdx].DisplayText = displayText;
- }
- let cscIdx = this._chartBuilder.ChartSelectedColumns.findIndex(x => x.AliasName == aliasName);
- if (cscIdx > -1) {
- this._chartBuilder.ChartSelectedColumns[cscIdx].DisplayText = displayText;
- }
- }
- }
- showOrHideColumn_table(ColumnId, AliasName) {
- var instance = this;
- let Index = instance.getIndexByAliasName_selectedColumnsArray(AliasName);
- let col = instance.selectedColumns[Index];
- if (instance.selectedColumns[Index].Isvisible == true) {
- instance.selectedColumns[Index].Isvisible = false;
- var { hiddenColumnHtml } = instance.getSelectedColumnHtml(col, Index, '');
- $("#selectedColumns_hidden").append(hiddenColumnHtml);
- $('#column_' + AliasName + '_block').addClass("d-none").find('#ShowOrHideColumn').text("Show Column");
- if (instance.selectedColumns[Index].DataType == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime)
- instance.selectedColumns[Index].ColumnFormat = "";
- }
- else {
- $('#' + AliasName + '_EyeIcon').addClass('d-none');
- instance.selectedColumns[Index].Isvisible = true;
- $('#column_' + AliasName + '_block').removeClass("d-none").find('#ShowOrHideColumn').text("Hide Column");
- $('#column_' + AliasName + '_block_hidden').remove();
- if (instance.selectedColumns[Index].DataType == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime)
- instance.selectedColumns[Index].ColumnFormat = "Default";
- }
- instance.load_data(instance.table);
- }
- updateSelectedColumnIndex() {
- const instance = this;
- $('#selectedColumns .dsl-block').each(function (index, item) {
- const itemName = $(item).attr('id').slice(7).replace('_block', '');
- const colIndex = instance.selectedColumns.findIndex(x => x.AliasName == itemName);
- if (colIndex > -1) {
- instance.selectedColumns[colIndex].ColumnIndex = index;
- }
- });
- }
- isDistinct(columnId, aliasName) {
- var instance = this;
- let index = instance.getIndexByAliasName_selectedColumnsArray(aliasName);
- if (index > -1) {
- if ($("#isDistinct_" + columnId).prop("checked") == true) {
- instance.selectedColumns[index].DistinctOn = true;
- }
- else {
- instance.selectedColumns[index].DistinctOn = false;
- }
- }
- }
- changeSortBy_table(columnId, aliasName, sortType) {
- var instance = this;
- if (sortType == 'Asc') {
- instance.table.setSort(aliasName, "asc");
- $("#dsl_column_" + aliasName + " .sort-icon").removeClass('la-sort-down');
- $("#dsl_column_" + aliasName + " .sort-icon").addClass('la-sort-up');
- }
- else {
- instance.table.setSort(aliasName, "desc");
- $("#dsl_column_" + aliasName + " .sort-icon").addClass('la-sort-down');
- $("#dsl_column_" + aliasName + " .sort-icon").removeClass('la-sort-up');
- }
- let index = instance.getIndexByAliasName_selectedColumnsArray(aliasName);
- instance.selectedColumns[index].SortOrder = sortType;
- let sortcolindex = instance.getIndexByDisplayText_sortColumnsArray(aliasName);
- if (instance.SortColumns.length != 0) {
- instance.SortColumns[sortcolindex].SortOrder = sortType;
- }
- if (instance.stringifyed_SortColumns) {
- let ss = JSON.parse(instance.stringifyed_SortColumns);
- if (ss.length > 0) {
- let sindex = ss.findIndex(s => s.Name == aliasName);
- ss[sindex].Order = sortType;
- }
- instance.stringifyed_SortColumns = JSON.stringify(ss);
- }
- instance.load_data(instance.table);
- if (instance.reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Chart) {
- var cindex = instance._chartBuilder.getIndexByDisplayText_ChartSelectedColumns(aliasName);
- if (cindex > -1) {
- instance._chartBuilder.ChartSelectedColumns[cindex].SortOrder = sortType;
- instance._chartBuilder.ChartSelectedColumns[cindex].SortIndex = instance.SortColumns.length;
- }
- instance._chartBuilder.chartPreview(instance._chartBuilder.ChartTypeName, instance._chartBuilder.ChartTypeId);
- }
- }
- changeAggregation_table(aliasName, aggrValue, type) {
- var instance = this;
- let Index = instance.getIndexByAliasName_selectedColumnsArray(aliasName);
- if (type == 1 || instance.reportType == Reports.Enums.ReportType.Chart)
- instance.selectedColumns[Index].Aggregation = aggrValue;
- else
- instance.selectedColumns[Index].TableAggrTypeId = aggrValue;
- if (instance.reportType == Analytics.Reports.Enums.ReportType.Chart) {
- let CIndex = instance.getIndexByAliasName_chartSelectedColumnsArray(aliasName);
- if (CIndex > -1)
- instance._chartBuilder.ChartSelectedColumns[CIndex].Aggregation = aggrValue;
- if (aggrValue == Unibase.Platform.Analytics.Reports.Enums.AggregationType.month || aggrValue == Unibase.Platform.Analytics.Reports.Enums.AggregationType.year) {
- let colName = instance.selectedColumns[CIndex].ColumnName;
- let colId = instance.selectedColumns[CIndex].ColumnValue;
- }
- instance.load_data(instance.table);
- instance._chartBuilder.chartPreview(instance._chartBuilder.ChartTypeName, instance._chartBuilder.ChartTypeId);
- }
- else {
- instance.load_data(instance.table);
- }
- }
- changeColumnFormat_table(DisplayText, ColumnFormat) {
- let format;
- if (ColumnFormat == "Default")
- format = "Default";
- if (ColumnFormat == "No Format")
- format = "No Format";
- else if (ColumnFormat == Unibase.Platform.Analytics.Enums.DateFormat.hhmmss)
- format = "hh:mi:ss";
- else if (ColumnFormat == Unibase.Platform.Analytics.Enums.DateFormat.hhmmssAM)
- format = "hh:mi:ss AM";
- else if (ColumnFormat == Unibase.Platform.Analytics.Enums.DateFormat.ddmmyyyyhhmmss)
- format = "dd/mm/yyyy hh:mi:ss";
- else if (ColumnFormat == Unibase.Platform.Analytics.Enums.DateFormat.ddmmyyyyhhmm)
- format = "dd/mm/yyyy hh:mi";
- else if (ColumnFormat == Unibase.Platform.Analytics.Enums.DateFormat.ddmmyyyyhhmmssAM)
- format = "dd/mm/yyyy hh:mi:ss AM";
- else if (ColumnFormat == Unibase.Platform.Analytics.Enums.DateFormat.momddyyyyhhmmssAM)
- format = "Mon dd, yyyy hh:mi:ss AM";
- else
- format = ColumnFormat;
- var instance = this;
- let Index = instance.getIndexByAliasName_selectedColumnsArray(DisplayText);
- instance.selectedColumns[Index].ColumnFormat = format;
- instance.load_data(instance.table);
- }
- changeColumnIndex_table(DisplayText) {
- var instance = this;
- let Index = instance.getIndexByAliasName_selectedColumnsArray(DisplayText);
- let selCols = instance.selectedColumns;
- let ColIndex = 0;
- for (var i = 0; i < selCols.length; i++) {
- if (selCols[i].ColumnIndex > ColIndex) {
- ColIndex = selCols[i].ColumnIndex;
- }
- }
- if (selCols.length == 1) {
- ColIndex = 0;
- }
- else {
- ColIndex = ColIndex + 1;
- }
- instance.selectedColumns[Index].ColumnIndex = ColIndex;
- }
- IsContactColumn(columnId, aliasName) {
- var instance = this;
- let selected_Index = instance.getIndexByAliasName_selectedColumnsArray(aliasName);
- let IsContactColumn = instance.selectedColumns[selected_Index].IsContactColumn;
- instance.selectedColumns[selected_Index].IsContactColumn = !IsContactColumn;
- }
- IsFilterableColumn_table(columnId, aliasName, dataTypeId) {
- var instance = this;
- let selected_Index = instance.getIndexByAliasName_selectedColumnsArray(aliasName);
- if (dataTypeId == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime) {
- $("#DropDown_IsFilterable_" + aliasName).removeClass("hidden");
- selected_Index > -1 && (instance.selectedColumns[selected_Index].IsFilterable = true);
- }
- if (selected_Index == -1) {
- Unibase.Platform.Analytics.Reports.DynamicFilter.Instance().dataListColumnName = aliasName;
- selected_Index = this.datalistColumnsResponseData.findIndex(x => { return x.AliasName == aliasName; });
- }
- Unibase.Platform.Analytics.Components.ReportViewer.Instance().navigationHelper.popup(selected_Index, "", Unibase.Platform.Analytics.Reports.DynamicFilter.Instance(), null, Platform.Helpers.Size.Auto);
- }
- loadFormats(DataType, ColId, DisplayText) {
- var instance = this;
- var html = "";
- if (instance._columnFormat.loadFormats(DataType).length > 0) {
- var formats = instance._columnFormat.loadFormats(DataType);
- for (var i = 0; i < formats.length; i++) {
- 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>`;
- }
- }
- return html;
- }
- removeSelectedColumn_table(ColumnId, AliasName) {
- var instance = this;
- var isChartBaseColumn = false;
- var cbcIndex = instance._chartBuilder.chartBaseColumns.findIndex(csc => csc.AliasName === AliasName);
- let cscIdx = instance._chartBuilder.ChartSelectedColumns.findIndex(csc => csc.AliasName === AliasName);
- var XIndex = instance._chartBuilder.xaxisColumns.findIndex(x => x.AliasName === AliasName);
- var YIndex = instance._chartBuilder.yaxisColumns.findIndex(x => x.AliasName === AliasName);
- var GIndex = instance._chartBuilder.groupColumns.findIndex(x => x.AliasName === AliasName);
- var LCIndex = instance._chartBuilder.lineChartColumns.findIndex(csc => csc.AliasName === AliasName);
- if (cbcIndex != -1) {
- instance._chartBuilder.chartBaseColumns.splice(cbcIndex, 1);
- isChartBaseColumn = true;
- if (cscIdx != -1 && XIndex == -1 && YIndex == -1 && GIndex == -1 && LCIndex == -1) {
- instance._chartBuilder.ChartSelectedColumns.splice(cscIdx, 1);
- }
- }
- if (XIndex != -1 && !isChartBaseColumn) {
- instance._chartBuilder.xaxisColumns.splice(XIndex, 1);
- if (YIndex == -1 && GIndex == -1 && LCIndex == -1 && cbcIndex == -1 && cscIdx != -1)
- instance._chartBuilder.ChartSelectedColumns.splice(cscIdx, 1);
- }
- if (YIndex != -1 && !isChartBaseColumn) {
- instance._chartBuilder.yaxisColumns.splice(YIndex, 1);
- if (XIndex == -1 && GIndex == -1 && LCIndex == -1 && cbcIndex == -1 && cscIdx != -1)
- instance._chartBuilder.ChartSelectedColumns.splice(cscIdx, 1);
- }
- if (GIndex != -1 && !isChartBaseColumn) {
- instance._chartBuilder.groupColumns.splice(GIndex, 1);
- if (XIndex == -1 && YIndex == -1 && LCIndex == -1 && cbcIndex == -1 && cscIdx != -1)
- instance._chartBuilder.ChartSelectedColumns.splice(cscIdx, 1);
- }
- if (LCIndex != -1 && !isChartBaseColumn) {
- instance._chartBuilder.lineChartColumns.splice(LCIndex, 1);
- if (XIndex == -1 && YIndex == -1 && GIndex == -1 && cbcIndex == -1 && cscIdx != -1)
- instance._chartBuilder.ChartSelectedColumns.splice(cscIdx, 1);
- }
- if (LCIndex == -1 && GIndex == -1 && YIndex == -1 && XIndex == -1 && cbcIndex == -1 && cscIdx != -1) {
- instance._chartBuilder.ChartSelectedColumns.splice(cscIdx, 1);
- }
- var SC_Index = instance.getIndexByAliasName_selectedColumnsArray(AliasName);
- let isGroupByCategory = this.selectedColumns[SC_Index].GroupByCategory;
- if (SC_Index != -1) {
- let dyfil = this.dynamicFilters.find(x => x.IsFilterableColumn == AliasName);
- let srtCol = this.SortColumns.find(x => x.DisplayText === AliasName);
- if (dyfil)
- return MessageHelper.Instance().showError("Please remove the dynamic filter associated with this column, before trying to remove the column", 'div_ReportBuilderErrorMessage');
- if (instance.SearchColumns) {
- let srchCol = instance.SearchColumns.split("|");
- let srchIdx = srchCol.indexOf(AliasName);
- if (srchIdx != -1)
- return MessageHelper.Instance().showError(`${this.selectedColumns[SC_Index].AliasName} is used in search column, please remove from search columns and try again`, 'div_ReportBuilderErrorMessage');
- }
- if (srtCol && !isGroupByCategory && instance.reportType != Reports.Enums.ReportType.Chart)
- return MessageHelper.Instance().showError(`${this.selectedColumns[SC_Index].AliasName} is used in sort column, please remove from sort column and try again`, 'div_ReportBuilderErrorMessage');
- else if (instance.reportType == Reports.Enums.ReportType.Chart && srtCol)
- return;
- if (isGroupByCategory && event.target.closest("#categories_selected_columns")) {
- this.selectedColumns[SC_Index].GroupByCategory = false;
- $("#categories_selected_columns #dsl_column_" + AliasName).remove();
- $("#sort_selected_columns #dsl_column_" + AliasName).remove();
- this.removeAndUpdateStringfiedSortColumns(AliasName);
- instance.load_data(instance.table);
- return "";
- }
- }
- if (!isChartBaseColumn) {
- instance.selectedColumns.splice(SC_Index, 1);
- instance.table.deleteColumn(AliasName);
- instance.loadSelectedDataListColumns();
- }
- var GTableIndex = instance.groupBy_Category.findIndex(x => x.AliasName === AliasName);
- if (GTableIndex != -1) {
- instance.groupBy_Category.splice(GTableIndex, 1);
- instance.setSelectOption('groupby_select');
- instance.groupbyData();
- }
- instance.removeAndUpdateStringfiedSortColumns(AliasName);
- instance._chartBuilder.enableOrDisableChartIcons();
- var sindex = instance.SortColumns.findIndex(function (s) {
- return AliasName == s.AliasName;
- });
- if (sindex > -1) {
- instance.removeSelectedSortColumn_table(ColumnId, AliasName);
- }
- else {
- instance.load_data(instance.table);
- }
- this._chartBuilder.loadSortColumnsSelect2();
- this._chartBuilder.loadDynamicFilterSelect(instance.showDynamicFilters);
- this._chartBuilder.loadSearchSelect2();
- this._pivot.loadPivotSelect2s();
- }
- removeSelectedSortColumn_table(columnId, aliasName) {
- var instance = this;
- let sortIndex = instance.getIndexByAliasName_selectedColumnsArray(aliasName);
- instance.selectedColumns[sortIndex].SortOrder = "none";
- var index = instance.SortColumns.findIndex(function (s) {
- return aliasName == s.DisplayText;
- });
- instance.SortColumns.splice(index, 1);
- instance.stringifyed_SortColumns = "";
- if (instance.SortColumns.length != 0) {
- var _sort = [];
- for (var i = 0; i < instance.SortColumns.length; i++) {
- instance.SortColumns[i].SortIndex = i;
- let s = instance.SortColumns[i];
- _sort.push({ Name: s.DisplayText, Order: s.SortOrder });
- }
- instance.stringifyed_SortColumns = JSON.stringify(_sort);
- }
- instance.load_data(instance.table);
- }
- setSelectOption(selectId) {
- $('#' + selectId).prop('selectedIndex', 0);
- $('#' + selectId).select2({
- allowClear: true
- });
- $('#select2-' + selectId + '-container .select2-selection__clear').hide();
- }
- loadInstalledApps() {
- var url = _appsettings.server_url() + '/apis/v4/unibase/platform/apps/InstalledAppAutocomplete';
- AutoCompleteHelper.getHelper().Create("#InstalledApp_AutoComplete", "#hfAutoComplete_InstalledApp", url, null);
- AutoCompleteHelper.getHelper().Create("#dependecyapps", "#hfAutoCompleteId_dependency", url, null);
- }
- loadConnectedApps() {
- Unibase.Platform.Apps.Managers.AppManager.Instance().getInstalledApps().then((res) => {
- this.connectedAppsData = [];
- for (var i = 0; i < res.result.length; i++) {
- this.connectedAppsData.push({ id: res.result[i].InstalledAppId, text: res.result[i].AppTitle });
- }
- $("#connectedapps").select2({
- placeholder: 'Select connected apps',
- data: this.connectedAppsData,
- });
- });
- }
- loadAddedColumnFilter() {
- let dataOptions = [
- { id: 1, text: "All added columns", selected: true },
- { id: 2, text: "Contact columns" },
- { id: 3, text: "PrimaryKey columns" }
- ];
- $("#filter-by").select2({
- placeholder: 'Filter By',
- data: dataOptions
- });
- }
- loadTableToggleButtons() {
- var instance = this;
- $("#PivotIcon").click(function () {
- var DataListId = instance.DataListId;
- $("#DatalistColumns_Search").val("");
- instance._pivot.load(0, null, null);
- });
- }
- reportRoleSetting() {
- var instance = this;
- instance.navigationHelper.popup(0, '', Unibase.Platform.Analytics.Reports.ReportRoleSettings.Instance(), null, Platform.Helpers.Size.Medium);
- }
- EditableTabulatorTitle() {
- var instance = this;
- if (instance.EditableTitle == true) {
- let sel_Col = instance.selectedColumns;
- var len = sel_Col.length;
- for (var i = 0; i < len; i++) {
- let colId = sel_Col[i].ColumnId;
- let aliasName = sel_Col[i].AliasName.replace(" ", "");
- let colName = sel_Col[i].ColumnName;
- let DataType = sel_Col[i].DataType;
- let html = "";
- if (DataType == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime || Unibase.Platform.Analytics.Reports.Enums.DataType.decimal) {
- 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">⋮</span></span>
- <ul class="dropdown-menu column-dp-menu dropdown-radio dropdown-menu_` + colId + ` open-left-side">
- <li><h6 class="dropdown-header" href="javascript:;" >` + colName + `</h6></li><div class="dropdown-divider"></div>
- <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>
- <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>
- <li id="dropdown_Table_Aggregation_` + aliasName + `">
- <div class="sub-dropdown-menu show-on-hover">
- <a class="dropdown-item" href="javascript:;" onclick=""><span id="TableAggregateOperation"> Table Aggregation </span></a>
- <div class="dropdown-menu dropdown-radio open-left-side"></div></div></li>
- <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>
- <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>
- <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>
- <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>
- <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>
- <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>
- <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>
- <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>
- <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>
- <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>`;
- }
- else {
- 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">⋮</span></span>
- <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>
- <li><input type="textbox" id="txtAliasName_` + aliasName + `" value="` + aliasName + `" onchange="Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().changeAliasName_table(` + colId + `,'` + aliasName + `')" placeholder="displaytext"/></li>
- <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>
- <li id="dropdown_Table_Aggregation_` + aliasName + `">
- <div class="sub-dropdown-menu show-on-hover">
- <a class="dropdown-item" href="javascript:;" onclick=""><span id="TableAggregateOperation"> Table Aggregation </span></a>
- <div class="dropdown-menu dropdown-radio open-left-side"></div></div></li>
- <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>
- <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>
- <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>
- <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>
- <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>
- <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>
- <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>
- <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>
- <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>
- <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>
- <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>`;
- }
- if ($('#tabulatorReportbuilder .pvtUi').length !== 0) {
- const pivotTableEl = $('#tabulatorReportbuilder .pvtUi');
- const columnEl = pivotTableEl.find(`.pvtAttr:contains(${aliasName.toLocaleLowerCase()})`);
- columnEl.find('.column-dropdown').remove();
- columnEl.append(html);
- columnEl.find('.dropdown-menu.open-left-side').removeClass('open-left-side').addClass('open-right-side');
- if (sel_Col[i].Isvisible == false) {
- columnEl.find("#ShowOrHideColumn").text("Show Column");
- columnEl.find("#DropDown_Eye_EyeSlash").removeClass("fa-eye-slash").addClass("fa-eye");
- }
- }
- else {
- const tabulatorEl = $('#tabulatorReportbuilder');
- tabulatorEl.find("[tabulator-field='" + aliasName.toLocaleLowerCase() + "']").find(".tabulator-col-title").prepend(html);
- 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 + `')">`);
- if (sel_Col[i].Isvisible == false) {
- tabulatorEl.find("[tabulator-field='" + aliasName + "']").find("#ShowOrHideColumn").text("Show Column");
- tabulatorEl.find("[tabulator-field='" + aliasName + "']").find("#DropDown_Eye_EyeSlash").removeClass("fa-eye-slash").addClass("fa-eye");
- }
- }
- }
- }
- }
- traverseRows(tbl, action) {
- var instance = this;
- var tblRows = tbl.getRows();
- tblRows.forEach(function (row) {
- if (row.getData()._children != undefined) {
- instance.findChildren(row, action);
- }
- });
- }
- bindAggregations(aggregations, aggrval, aliasName, type, id) {
- let html = "";
- if (aggregations) {
- for (var i = 0; i < aggregations.length; i++) {
- let Aggregation = aggregations[i];
- if (i == 0) {
- aggrval = Aggregation.Value;
- }
- 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>`;
- }
- $('#' + id).find(".dropdown-menu").html(html);
- $("#dsl_column_" + aliasName).find('#' + id).find(".dropdown-menu").html(html);
- }
- return aggrval;
- }
- tabulatorColumnMoreIcon_Click(elementId, aliasName, dataTypeId, event) {
- if (event) {
- event.stopPropagation();
- }
- var instance = this;
- let html = "";
- var Aggr, tableaggr = 0;
- var Sortby = "none";
- var ColumnFormat = "";
- let isDistinct = false;
- let displayText = "";
- let isDownload = false;
- var aggregations = instance.getAggregationsByDataType(dataTypeId);
- Aggr = instance.bindAggregations(aggregations, Aggr, aliasName, 1, "dropdown_Aggregation_" + aliasName);
- tableaggr = instance.bindAggregations(aggregations, Aggr, aliasName, 2, "dropdown_Table_Aggregation_" + aliasName);
- if (dataTypeId == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime) {
- var formathtml = "";
- formathtml = instance.loadFormats(dataTypeId, elementId, aliasName);
- $('#ColumnFormat_' + aliasName).find(".dropdown-menu").html(formathtml);
- $("#dsl_column_" + aliasName).find('#ColumnFormat_' + aliasName).find(".dropdown-menu").html(formathtml);
- }
- else {
- $('#ColumnFormat_' + aliasName).remove();
- $("#dsl_column_" + aliasName).find('#ColumnFormat_' + aliasName).remove();
- }
- let Index = instance.getIndexByAliasName_selectedColumnsArray(aliasName);
- let column = instance.selectedColumns[Index];
- Aggr = column.Aggregation;
- Sortby = column.SortOrder;
- aliasName = column.AliasName;
- ColumnFormat = column.ColumnFormat == "" ? "Default" : column.ColumnFormat;
- isDistinct = column.DistinctOn;
- isDownload = column.IsDownload;
- displayText = column.DisplayText;
- if (column.DataType == Reports.Enums.DataType.int32 || column.DataType == Reports.Enums.DataType.int64 || column.DataType == Reports.Enums.DataType.decimal) {
- $(event.currentTarget).closest(".dropdown.column-dropdown").find(".isrowtotal").removeClass("hidden");
- $(event.currentTarget).closest(".dropdown.column-dropdown").find(".isnumformatting").removeClass("hidden");
- }
- else if (column.DataType == Reports.Enums.DataType.string) {
- $(event.currentTarget).closest(".dropdown.column-dropdown").find(".isimageurl").removeClass("hidden");
- }
- if (isDistinct)
- $("#isDistinct_" + elementId).prop("checked", true);
- else
- $("#isDistinct_" + elementId).prop("checked", false);
- if (isDownload)
- $("#isDownload_" + elementId).prop("checked", true);
- else
- $("#isDownload_" + elementId).prop("checked", false);
- if (column.IsNumFormatting)
- $("#isNumFormatting_" + elementId).prop("checked", true);
- else
- $("#isNumFormatting_" + elementId).prop("checked", false);
- if (column.IsImageUrl)
- $("#isimageurl_" + elementId).prop("checked", true);
- else
- $("#isimageurl_" + elementId).prop("checked", false);
- let grpby = $("#groupby_select").val();
- if (jQuery.inArray(elementId.toString(), grpby) != -1) {
- $('#dropdown_Aggregation_' + aliasName).find(".sub-dropdown-menu").removeClass("show-on-hover");
- $('#dropdown_Aggregation_' + aliasName).find(".sub-dropdown-menu").find(".dropdown-item").css("cursor", "not-allowed");
- }
- else {
- $('#dropdown_Aggregation_' + aliasName).find(".sub-dropdown-menu").addClass("show-on-hover");
- $('#dropdown_Aggregation_' + aliasName).find(".sub-dropdown-menu").find(".dropdown-item").css("cursor", "pointer");
- }
- let IsFilterable = column.IsFilterable;
- if (IsFilterable == true)
- $("#DropDown_IsFilterable_" + aliasName).removeClass('hidden');
- else
- $("#DropDown_IsFilterable_" + aliasName).addClass('hidden');
- let IsPrimaryKey = column.IsPrimaryKey;
- if (IsPrimaryKey == true)
- $("#DropDown_IsPrimaryKey_" + aliasName).removeClass('hidden');
- else
- $("#DropDown_IsPrimaryKey_" + aliasName).addClass('hidden');
- let IsContactColumn = column.IsContactColumn;
- if (IsContactColumn == true)
- $("#DropDown_IsContactColumn_" + aliasName).removeClass('hidden');
- else
- $("#DropDown_IsContactColumn_" + aliasName).addClass('hidden');
- let IsAggregation = column.Aggregation;
- if (IsAggregation == Unibase.Platform.Analytics.Reports.Enums.AggregationType.none)
- $("#dropdown_Aggregation_" + aliasName + "_Aggr_" + aliasName + "_" + IsAggregation).addClass("selected");
- else
- $("#dropdown_Aggregation_" + aliasName + "_Aggr_" + aliasName + "_" + IsAggregation).addClass("selected");
- let tableAggrTypeId = column.TableAggrTypeId;
- if (tableAggrTypeId == Unibase.Platform.Analytics.Reports.Enums.AggregationType.none)
- $("#dropdown_Table_Aggregation_" + aliasName + "_Aggr_" + aliasName + "_" + tableAggrTypeId).addClass("selected");
- else
- $("#dropdown_Table_Aggregation_" + aliasName + "_Aggr_" + aliasName + "_" + tableAggrTypeId).addClass("selected");
- let IsSortBy = column.SortOrder;
- if (IsSortBy == "Asc") {
- $("#SortOrder_" + elementId + "_Asc").addClass('selected');
- $("#SortOrder_" + elementId + "_Desc").removeClass('selected');
- }
- else if (IsSortBy == "Desc") {
- $("#SortOrder_" + elementId + "_Desc").addClass('selected');
- $("#SortOrder_" + elementId + "_Asc").removeClass('selected');
- }
- else {
- $("#SortOrder_" + elementId + "_Asc").addClass('selected');
- }
- let format = instance._columnFormat.loadFormats(dataTypeId).find(x => x.format == ColumnFormat);
- if (format != undefined) {
- $("#" + instance.containerId).find(".Format_" + aliasName + "_" + format.id).addClass("selected");
- }
- if ($('#tabulatorReportbuilder .pvtUi').length !== 0) {
- $(`.column-dp-menu.show`).not(`.dropdown-menu_${elementId}`).removeClass('show');
- $(`.column-dp-menu.dropdown-menu_${elementId}`).toggleClass('show');
- return;
- }
- for (var i = 0; i == Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().table.columnManager.columns.length; i++) {
- if (Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().table.columnManager.columns[i].definition.visible == true) {
- $(".dropdown-menu_" + i).find(".dropdown-menu").removeClass("open-left-side");
- $(".dropdown-menu_" + i).find(".dropdown-menu").addClass("open-right-side");
- break;
- }
- }
- $($(".table-wrap .tabulator-col:visible")[1]).find('ul.dropdown-menu .dropdown-menu').removeClass('open-left-side').addClass('open-right-side');
- $($(".table-wrap .tabulator-col:visible")[2]).find('ul.dropdown-menu .dropdown-menu').removeClass('open-left-side').addClass('open-right-side');
- if (event) {
- instance.setColumnDpMenuPosition(event);
- }
- }
- setColumnDpMenuPosition(event) {
- event.stopPropagation();
- const targetEl = $(event.currentTarget);
- if (targetEl.siblings('.column-dp-menu').hasClass('show')) {
- targetEl.siblings('.column-dp-menu').removeClass('show');
- }
- else {
- $('#tabulatorReportbuilder .tabulator-header').find('.column-dp-menu.show').removeClass('show');
- const elLeftPos = targetEl.offset().left - $('#tabulatorReportbuilder').offset().left;
- const headerHeight = $('#tabulatorReportbuilder .tabulator-header').outerHeight(true);
- targetEl.siblings('.column-dp-menu').css({ position: 'fixed', top: headerHeight, left: elLeftPos }).addClass('show').attr('onclick', 'event.stopPropagation();');
- }
- }
- loadLeftNav() {
- var instance = this;
- let html = instance._reportBuilderTemplate.loadLeftNav();
- $("#DefaultLeftNav_body").html(html);
- }
- loadSorting(elementId, displayText) {
- var instance = this;
- let Index = instance.getIndexByDisplayText_sortColumnsArray(displayText);
- let IsSortBy = instance.SortColumns[Index].SortOrder;
- if (IsSortBy == "Asc") {
- $("#SortOrder_" + elementId + "_Asc").addClass('selected');
- $("#SortOrder_" + elementId + "_Desc").removeClass('selected');
- }
- else if (IsSortBy == "Desc") {
- $("#SortOrder_" + elementId + "_Desc").addClass('selected');
- $("#SortOrder_" + elementId + "_Asc").removeClass('selected');
- }
- else {
- $("#SortOrder_" + elementId + "_Asc").addClass('selected');
- }
- for (var i = 0; i < Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().table.columnManager.columns.length; i++) {
- if (Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().table.columnManager.columns[i].definition.visible == true) {
- $(".dropdown-menu_" + i).find(".dropdown-menu").removeClass("open-left-side");
- $(".dropdown-menu_" + i).find(".dropdown-menu").addClass("open-right-side");
- break;
- }
- }
- }
- clickedTableCaret(ElementId, DisplayText, DataType) {
- var instance = this;
- let html = "";
- var Aggr = 0;
- var Sortby = "none";
- var ColumnFormat = "";
- var Aggregation = instance.getAggregationsByDataType(DataType);
- if (Aggregation) {
- for (var i = 0; i < Aggregation.length; i++) {
- if (i == 0) {
- Aggr = Aggregation[i].Value;
- }
- 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>`;
- }
- }
- $('#dropdown_Aggregation_' + DisplayText).find(".dropdown-menu").html(html);
- $("#dsl_column_" + DisplayText).find('#dropdown_Aggregation_' + DisplayText).find(".dropdown-menu").html(html);
- if (DataType == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime) {
- var formathtml = "";
- formathtml = instance.loadFormats(DataType, ElementId, DisplayText);
- $('#ColumnFormat_' + DisplayText).find(".dropdown-menu").html(formathtml);
- $("#dsl_column_" + DisplayText).find('#ColumnFormat_' + DisplayText).find(".dropdown-menu").html(formathtml);
- }
- else {
- $('#ColumnFormat_' + DisplayText).remove();
- $("#dsl_column_" + DisplayText).find('#ColumnFormat_' + DisplayText).remove();
- }
- let Index = instance.getIndexByAliasName_selectedColumnsArray(DisplayText);
- Aggr = instance.selectedColumns[Index].Aggregation;
- Sortby = instance.selectedColumns[Index].SortOrder;
- DisplayText = instance.selectedColumns[Index].AliasName;
- ColumnFormat = instance.selectedColumns[Index].ColumnFormat == "" ? "Default" : instance.selectedColumns[Index].ColumnFormat;
- $("#DisplayText_" + DisplayText).val(DisplayText);
- $("#DisplayText_" + DisplayText).focus();
- let grpby = $("#groupby_select").val();
- if (jQuery.inArray(ElementId.toString(), grpby) != -1) {
- $('#dropdown_Aggregation_' + DisplayText).find(".sub-dropdown-menu").removeClass("show-on-hover");
- $('#dropdown_Aggregation_' + DisplayText).find(".sub-dropdown-menu").find(".dropdown-item").css("cursor", "not-allowed");
- }
- else {
- $('#dropdown_Aggregation_' + DisplayText).find(".sub-dropdown-menu").addClass("show-on-hover");
- $('#dropdown_Aggregation_' + DisplayText).find(".sub-dropdown-menu").find(".dropdown-item").css("cursor", "pointer");
- }
- let IsFilterable = instance.selectedColumns[Index].IsFilterable;
- if (IsFilterable == true)
- $("#DropDown_IsFilterable_" + DisplayText).removeClass('hidden');
- else
- $("#DropDown_IsFilterable_" + DisplayText).addClass('hidden');
- let IsPrimaryKey = instance.selectedColumns[Index].IsPrimaryKey;
- if (IsPrimaryKey == true)
- $("#DropDown_IsPrimaryKey_" + DisplayText).removeClass('hidden');
- else
- $("#DropDown_IsPrimaryKey_" + DisplayText).addClass('hidden');
- let IsContactColumn = instance.selectedColumns[Index].IsContactColumn;
- if (IsContactColumn == true)
- $("#DropDown_IsContactColumn_" + DisplayText).removeClass('hidden');
- else
- $("#DropDown_IsContactColumn_" + DisplayText).addClass('hidden');
- let IsAggregation = instance.selectedColumns[Index].Aggregation;
- if (IsAggregation == Unibase.Platform.Analytics.Reports.Enums.AggregationType.none)
- $("#Aggr_" + DisplayText + "_" + IsAggregation).addClass("selected");
- else
- $("#Aggr_" + DisplayText + "_" + IsAggregation).addClass("selected");
- let IsSortBy = instance.selectedColumns[Index].SortOrder;
- if (IsSortBy == "Asc") {
- $("#SortOrder_" + ElementId + "_Asc").addClass('selected');
- $("#SortOrder_" + ElementId + "_Desc").removeClass('selected');
- }
- else if (IsSortBy == "Desc") {
- $("#SortOrder_" + ElementId + "_Desc").addClass('selected');
- $("#SortOrder_" + ElementId + "_Asc").removeClass('selected');
- }
- else {
- $("#SortOrder_" + ElementId + "_Asc").addClass('selected');
- }
- let format = instance._columnFormat.loadFormats(DataType).find(x => x.format == ColumnFormat);
- if (format != undefined) {
- $("#" + instance.containerId).find(".Format_" + DisplayText + "_" + format.id).addClass("selected");
- }
- for (i = 1; i <= Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().table.columnManager.columns.length; i++) {
- if (Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().table.columnManager.columns[i].definition.visible == true) {
- $(".dropdown-menu_" + i).find(".dropdown-menu").removeClass("open-left-side");
- $(".dropdown-menu_" + i).find(".dropdown-menu").addClass("open-right-side");
- break;
- }
- }
- }
- loadQueryBuilderDiv() {
- var instance = this;
- var fromDate = "";
- var toDate = "";
- var cf_fromDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_FromDate;
- var cf_toDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_ToDate;
- if (cf_fromDate != null && cf_toDate != null) {
- fromDate = cf_fromDate.toString();
- toDate = cf_toDate.toString();
- }
- else {
- fromDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
- toDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
- }
- if (instance.reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Table) {
- $("#Categories").removeClass("hidden");
- }
- else if (instance.reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Chart) {
- $("#Categories").addClass("hidden");
- }
- $("#QueryBuilder").html(`<div class="qry-builder-body"><div data-simplebar class="simple-scroll-bar"><div id="builder"></div></div></div>`);
- var DataListId = instance.DataListId;
- $("#DatalistColumns_Search").val("");
- let qelem;
- qelem = $('#builder');
- instance.filtersArray = [];
- qelem.on("afterAddRule.queryBuilder", (event, group) => {
- this.addCheckbox();
- });
- for (var i = 0; i < instance.QueryBuilder_Columns.length; i++) {
- let element = instance.QueryBuilder_Columns[i];
- let dataType = "";
- let IsInput = false;
- let serviceurl = "apis/v4/unibase/platform/analytics/reportcolumndata";
- serviceurl = _appsettings.server_url() + (serviceurl.startsWith('/') ? serviceurl : ('/' + serviceurl));
- let dataTypeid = element.DataType;
- let plugin_config = {
- placeholder: "Select Options",
- width: "auto",
- unique: true,
- allowClear: true,
- tags: true,
- ajax: {
- url: serviceurl,
- contentType: 'application/json',
- dataType: 'json',
- type: "POST",
- traditional: true,
- crossDomain: true,
- async: true,
- beforeSend: function (xhr) {
- if (Unibase.Platform.Membership.Infos.Identity.getCurrentUser() !== undefined && Unibase.Platform.Membership.Infos.Identity.getCurrentUser() !== null) {
- xhr.setRequestHeader('Authorization', 'Basic ' + Unibase.Platform.Membership.Infos.Identity.getCurrentUser().sessionId);
- xhr.setRequestHeader('geoposition', Unibase.Platform.Membership.Infos.Identity.getCurrentUser().latd + ':' + Unibase.Platform.Membership.Infos.Identity.getCurrentUser().lgId);
- }
- },
- data: function (params) {
- let name = this[0].name.substring(0, this[0].name.indexOf("_value_"));
- searchName = params.term;
- var Qb_Col = instance.QueryBuilder_Columns.find(q => q.ColumnId == element.ColumnId);
- let repObj = new ReportObject();
- repObj.DataListId = instance.DataListId;
- let Aggr = Reports.Enums.AggregationType.none;
- if (params.hasOwnProperty("term") == true) {
- repObj.StaticFilter = "CAST(" + element.ColumnName + " AS text) " + " ILIKE('%" + params.term + "%')";
- if (instance.DataSourceId == Number(Platform.DataSources.Enums.DataSource.MongoDB)) {
- repObj.StaticFilter = "{" + element.ColumnName + ":" + params.term + "}";
- if (Analytics.Reports.Enums.DataType[element.DataType] == "string") {
- repObj.StaticFilter = "{" + element.ColumnName + ":{$regex:'" + params.term + "'" + "}}";
- }
- }
- }
- repObj.TopRecords = 5;
- repObj.Distinct = true;
- let col = new ReportColumn();
- col.ColumnValue = element.ColumnId;
- col.ReportColumnName = element.ColumnName;
- col.AliasName = element.ColumnName;
- col.DlColumnName = (Qb_Col) ? Qb_Col.DlColumnName : null;
- col.AggrFuncId = Aggr;
- repObj.ReportColumns = [];
- repObj.ReportColumns.push(col);
- repObj.FromDate = fromDate;
- repObj.ToDate = toDate;
- return JSON.stringify(repObj);
- },
- processResults: function (data) {
- var col = [];
- var defaultid;
- var id = searchName;
- var autoCompleteId = $(".select2-container--open").parent().parent()[1].id;
- console.log(autoCompleteId);
- var identity = $("#" + autoCompleteId + "_checkbox").prop("checked");
- if (identity) {
- var identityinfo = Unibase.Platform.Membership.Infos.Identity.currentUser;
- var keys = Object.keys(identityinfo);
- for (let i = 0; i < keys.length; i++) {
- col.push({ id: "Identity_" + keys[i], text: "Identity_" + keys[i] });
- }
- var settings = identityinfo.settings;
- if (settings && settings.length != 0) {
- for (var s = 0; s < settings.length; s++) {
- col.push({ id: "Identity_" + settings[s].settingName, text: "Identity_" + settings[s].settingName });
- }
- }
- console.log(col);
- }
- else {
- if (JSON.parse(data.result).Data != "") {
- defaultid = {
- id: 0,
- text: '------'
- };
- col.push(defaultid);
- for (let i = 0; i < JSON.parse(JSON.parse(data.result).Data).length; i++) {
- let jsondata = JSON.parse(JSON.parse(data.result).Data);
- var col_text = jsondata[i][element.ColumnName];
- if (col_text != null) {
- var ids = {
- id: jsondata[i][element.ColumnName],
- text: col_text.toString()
- };
- col.push(ids);
- }
- }
- }
- else {
- if (searchName == "") {
- defaultid = {
- id: 0,
- text: '------'
- };
- }
- else {
- defaultid = {
- id: id,
- text: searchName
- };
- }
- col.push(defaultid);
- }
- }
- return {
- results: col
- };
- }
- },
- };
- let Values = [];
- let Input = 'select';
- let Plugin = 'select2';
- if (dataTypeid == Unibase.Platform.Analytics.Reports.Enums.DataType.string) {
- dataType = "string";
- }
- else if (dataTypeid == Unibase.Platform.Analytics.Reports.Enums.DataType.int32 || dataTypeid == Unibase.Platform.Analytics.Reports.Enums.DataType.int64) {
- dataType = "integer";
- }
- else if (dataTypeid == Unibase.Platform.Analytics.Reports.Enums.DataType.decimal) {
- dataType = "double";
- }
- else if (dataTypeid == Unibase.Platform.Analytics.Reports.Enums.DataType.boolean) {
- dataType = "string";
- Values = ["true", "false"];
- Input = 'radio';
- Plugin = '';
- }
- else if (dataTypeid == Unibase.Platform.Analytics.Reports.Enums.DataType.date || dataTypeid == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime) {
- dataType = 'date';
- IsInput = true;
- }
- if (element.StaticFilterControlType == Unibase.Platform.Analytics.Reports.Enums.StaicFilterControlType.Text) {
- IsInput = true;
- Input = 'text';
- }
- let searchName = "";
- let filter = {};
- if (dataTypeid == Unibase.Platform.Analytics.Reports.Enums.DataType.date || dataTypeid == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime) {
- filter = {
- id: element.ColumnName,
- label: element.ColumnName,
- field: element.ColumnName,
- type: dataType,
- validation: {
- format: 'YYYY/MM/DD'
- },
- plugin: 'datepicker',
- plugin_config: {
- format: 'yyyy/mm/dd',
- todayBtn: 'linked',
- todayHighlight: true,
- autoclose: true
- }
- };
- }
- else {
- filter = {
- id: element.ColumnName,
- label: element.ColumnName,
- field: element.ColumnName,
- type: dataType,
- size: 30,
- unique: true,
- input: Input,
- plugin: !IsInput && Plugin,
- plugin_config: !IsInput && plugin_config,
- values: Values
- };
- }
- instance.filtersArray.push(filter);
- }
- qelem.queryBuilder({
- filters: instance.filtersArray
- });
- if (instance.queryBuilderJson && instance.queryBuilderJson != "[]") {
- let qeleme = $('#builder');
- let qb_json = JSON.parse(instance.queryBuilderJson);
- let qb_rules = instance.changeFieldnametoId(qb_json.rules);
- qeleme.queryBuilder('setRules', qb_rules);
- var ruledata = JSON.parse(instance.queryBuilderJson);
- var jsonarray = JSON.stringify(ruledata);
- jsonarray = jsonarray.replace(/[{}\[\]']/g, '');
- jsonarray = jsonarray.split(',"');
- var finalarray = [];
- for (var arrayvalue of jsonarray) {
- if (arrayvalue.includes('value') == true) {
- var value = arrayvalue.split(':');
- if (value[1].includes('"') == true) {
- value[1] = value[1].replace(/"/g, '');
- }
- finalarray.push(value[1]);
- }
- }
- for (let k = 0; k < finalarray.length; k++) {
- var id = $('[id*=select2-builder_rule_' + k + ']').attr('id');
- $('#' + id).html('');
- $('#' + id).css('width', $('#' + id).width() + 150);
- $('#' + id).html('<span class="select2-selection__placeholder text-dark">' + finalarray[k] + '</span>');
- if (finalarray[k] && finalarray[k].includes("Identity_")) {
- let valueContainer = $('#' + id).closest(".rule-value-container").next();
- valueContainer.children().first().removeClass("hidden");
- valueContainer.find("input").prop("checked", true);
- }
- }
- }
- $('#btn-reset-query').on('click', function () {
- instance.queryBuilderString = "";
- instance.querybuilderCheckboxes = [];
- instance.queryBuilderJson = "";
- $(".qry-builder-container").hide();
- instance.load_data(instance.table);
- qelem.queryBuilder('reset');
- instance.queryBuilderJson = "";
- });
- $('#builder').on('afterApplyRuleFlags.queryBuilder', function (e, rule) {
- let selectValue = $("#" + rule.id).find(".rule-filter-container").children().first().val();
- if (selectValue != -1 && selectValue) {
- $("#" + rule.id).find(".rule-check-container").children().first().removeClass("hidden");
- }
- });
- $('#builder-widgets').on('afterUpdateRuleValue.queryBuilder', function (e, rule) {
- if (rule.filter.plugin === 'datepicker') {
- rule.$el.find('.rule-value-container input').datepicker('update');
- }
- });
- $('#builder').on('afterUpdateRuleOperator.queryBuilder', (e, rule) => {
- if (rule.operator.type == "in")
- rule.$el.find(".rule-value-container select").prop('multiple', true).attr('name', 'sub_type[]');
- else
- rule.$el.find(".rule-value-container select").prop('multiple', false).attr('name', 'sub_type');
- });
- }
- addCheckbox() {
- let instance = this;
- let isChecked = '';
- let checkboxId = $($('.rule-container')[$('.rule-container').length - 1]).attr('id') + '_checkbox';
- console.log(instance.querybuilderCheckboxes);
- for (let i = 0; i < instance.querybuilderCheckboxes.length; i++) {
- if (checkboxId.replace('_checkbox', '') == instance.querybuilderCheckboxes[i]) {
- isChecked = 'checked';
- break;
- }
- }
- $($('.rule-container')[$('.rule-container').length - 1]).append(`<div class="rule-check-container">
- <div class="custom-control hidden custom-checkbox checkbox-teal">
- <input type="checkbox" class="custom-control-input" id="${checkboxId}" ${isChecked}>
- <label class="custom-control-label" for="${checkboxId}">Indentity</label>
- </div>
- </div>`);
- $('#' + checkboxId).change(function () {
- var id = $(this).attr('id').replace('_checkbox', '');
- $("#" + id).find(".rule-value-container select").empty();
- if ($(this).is(':checked')) {
- instance.querybuilderCheckboxes.push(id);
- }
- else {
- for (let i = 0; i < instance.querybuilderCheckboxes.length; i++) {
- let checkbox_id = instance.querybuilderCheckboxes[i];
- if (checkbox_id == id) {
- instance.querybuilderCheckboxes.splice(i, 1);
- break;
- }
- }
- }
- });
- }
- changeFieldnametoId(rules) {
- var instance = this;
- for (var r = 0; r < rules.length; r++) {
- let rule = rules[r];
- if (rule.rules)
- rule.rules = instance.changeFieldnametoId(rule.rules);
- rules[r].id = rule.field;
- }
- return rules;
- }
- toggleQueryBuilderDiv() {
- $(".report-builder-body").toggleClass("hidden");
- $("#QueryBuilder").toggleClass("hidden");
- }
- reportTypeChange(id) {
- var instance = this;
- if (id == "fa fa-bar-chart-o") {
- instance.reportType = Unibase.Platform.Analytics.Reports.Enums.ReportType.Chart;
- instance._chartBuilder.loadChartIcons();
- if (instance.TenureReport.length != 0 && instance.reportid == 0) {
- Unibase.Platform.Analytics.Reports.Tenure.Instance().CheckedTenure();
- instance._chartBuilder.tenureChart('myChart', instance.reportid);
- }
- else {
- if (instance.reportid != 0) {
- instance._chartBuilder.select2DataBinding("");
- }
- instance._chartBuilder.select2DataBinding("ReportTypeChanged");
- }
- $('.report-builder-body').find('#table-canvan').height($(window).outerHeight() - $('.report-builder-body').find('#chart-container').height() - $(".modal-footer").height() - 100);
- }
- else {
- instance.reportType = Unibase.Platform.Analytics.Reports.Enums.ReportType.Table;
- }
- $(".ChartIcons").toggleClass("hidden");
- $("#ChartIcon_Default").toggleClass("hidden");
- if (instance.reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Chart) {
- instance._chartBuilder.IsChartBuilder = true;
- instance.EditableTitle = false, instance.HeaderSort = true;
- $(".divselect2_GroupBy").removeClass("hidden");
- $(".TableIcon").addClass("hidden");
- $("#datalabel_div").removeClass("hidden");
- $("#chart-container").removeClass("hidden");
- $('.report-builder-body').find('#table-canvan').height($(window).outerHeight() - $('.report-builder-body').find('#chart-container').height() - $(".modal-footer").height() - 105);
- if ($("#DataListsDiv").hasClass("hidden") && instance.TenureReport.length == 0) {
- $("#XAxis").removeClass("hidden");
- $("#YAxis").removeClass("hidden");
- var x_val = $('#xaxis_select').val().toString();
- var y_val = $('#yaxis_select').val().toString();
- if (x_val.length == 0) {
- $('#xaxis_select').val('').trigger('change');
- }
- if (y_val.length == 0) {
- $('#yaxis_select').val('').trigger('change');
- }
- }
- $("#ChartCanvasDiv").removeClass("hidden");
- if ($("#txt_totalrecords").val() == "") {
- $("#txt_totalrecords").val("5");
- }
- if (instance._chartBuilder.legendTitleTypeId == Unibase.Platform.Analytics.Enums.LegendTitleType.Column) {
- $("#lagendtypecolumn").prop("checked", true);
- }
- else {
- $("#lagendtypedata").prop("checked", true);
- }
- $("#showtooltipheader_checkbox").prop("checked", instance._chartBuilder.isTooltipHeader);
- $("#isdatalabel").prop("checked", instance._chartBuilder.isDataLabel);
- $("#label_length").val(instance._chartBuilder.tickLabelLength);
- if (instance._chartBuilder.chartBaseValue)
- $("#dataset_base_value").val(instance._chartBuilder.chartBaseValue);
- }
- else {
- if ($("#DataListsDiv").hasClass("hidden")) {
- $("#Categories").removeClass("hidden");
- }
- instance.EditableTitle = true, instance.HeaderSort = false;
- instance._chartBuilder.select2DataBinding("");
- if (instance.selectedColumns.length > 0) {
- instance.load_data(instance.table);
- }
- $(".TableIcon").removeClass("hidden");
- $("#datalabel_div").addClass("hidden");
- $("#ExpandIcon, #CollapseIcon").addClass("hidden");
- $("#chart-container").addClass("hidden");
- var height = $(".report-builder-body").height() - 35 + "px";
- instance.table.setHeight(height);
- $("#table-canvan").height(height);
- $(".bl-nav-right").addClass("hidden");
- $("#bl-nav-right-default").removeClass("hidden");
- $("#XAxis").addClass("hidden");
- $("#YAxis").addClass("hidden");
- $("#ChartCanvasDiv").addClass("hidden");
- }
- }
- getAggregationName(AggrFuncId) {
- var AggrName = Unibase.Platform.Analytics.Reports.Enums.AggregationType[AggrFuncId];
- return AggrName;
- }
- getAggregationsByDataTypes(DataType) {
- var aggrType = Unibase.Platform.Analytics.Reports.Enums.AggregationType;
- var items = {
- "String": [{ "Value": aggrType.none, "AggrType": "none" },
- { "Value": aggrType.count, "AggrType": "count" }],
- "DateTime": [{ "Value": aggrType.none, "AggrType": "none" },
- { "Value": aggrType.count, "AggrType": "count" },
- { "Value": aggrType.month, "AggrType": "month" },
- { "Value": aggrType.year, "AggrType": "year" }],
- "Int64": [{ "Value": aggrType.none, "AggrType": "none" },
- { "Value": aggrType.count, "AggrType": "count" },
- { "Value": aggrType.sum, "AggrType": "sum" },
- { "Value": aggrType.avg, "AggrType": "avg" },
- { "Value": aggrType.max, "AggrType": "max" },
- { "Value": aggrType.min, "AggrType": "min" }],
- "Int32": [{ "Value": aggrType.none, "AggrType": "none" },
- { "Value": aggrType.count, "AggrType": "count" },
- { "Value": aggrType.sum, "AggrType": "sum" },
- { "Value": aggrType.avg, "AggrType": "avg" },
- { "Value": aggrType.max, "AggrType": "max" },
- { "Value": aggrType.min, "AggrType": "min" }],
- "Decimal": [{ "Value": aggrType.none, "AggrType": "none" },
- { "Value": aggrType.count, "AggrType": "count" },
- { "Value": aggrType.sum, "AggrType": "sum" },
- { "Value": aggrType.avg, "AggrType": "avg" },
- { "Value": aggrType.max, "AggrType": "max" },
- { "Value": aggrType.min, "AggrType": "min" }],
- "Boolean": [{ "Value": aggrType.none, "AggrType": "none" },
- { "Value": aggrType.count, "AggrType": "count" }],
- "none": [
- {}
- ]
- };
- return items[DataType];
- }
- getAggregationsByDataType(DataType) {
- var items = [];
- var aggrType = Unibase.Platform.Analytics.Reports.Enums.AggregationType;
- switch (DataType) {
- case Unibase.Platform.Analytics.Reports.Enums.DataType.string:
- items = [{ "Value": aggrType.none, "AggrType": "none" },
- { "Value": aggrType.count, "AggrType": "count" }];
- break;
- case Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime:
- items = [{ "Value": aggrType.none, "AggrType": "none" },
- { "Value": aggrType.count, "AggrType": "count" },
- { "Value": aggrType.month, "AggrType": "month" },
- { "Value": aggrType.year, "AggrType": "year" }];
- break;
- case Unibase.Platform.Analytics.Reports.Enums.DataType.int64:
- items = [{ "Value": aggrType.none, "AggrType": "none" },
- { "Value": aggrType.count, "AggrType": "count" },
- { "Value": aggrType.sum, "AggrType": "sum" },
- { "Value": aggrType.avg, "AggrType": "avg" },
- { "Value": aggrType.max, "AggrType": "max" },
- { "Value": aggrType.min, "AggrType": "min" }];
- break;
- case Unibase.Platform.Analytics.Reports.Enums.DataType.int32:
- items = [{ "Value": aggrType.none, "AggrType": "none" },
- { "Value": aggrType.count, "AggrType": "count" },
- { "Value": aggrType.sum, "AggrType": "sum" },
- { "Value": aggrType.avg, "AggrType": "avg" },
- { "Value": aggrType.max, "AggrType": "max" },
- { "Value": aggrType.min, "AggrType": "min" }];
- break;
- case Unibase.Platform.Analytics.Reports.Enums.DataType.decimal:
- items = [{ "Value": aggrType.none, "AggrType": "none" },
- { "Value": aggrType.count, "AggrType": "count" },
- { "Value": aggrType.sum, "AggrType": "sum" },
- { "Value": aggrType.avg, "AggrType": "avg" },
- { "Value": aggrType.max, "AggrType": "max" },
- { "Value": aggrType.min, "AggrType": "min" }];
- break;
- case Unibase.Platform.Analytics.Reports.Enums.DataType.boolean:
- items = [{ "Value": aggrType.none, "AggrType": "none" },
- { "Value": aggrType.count, "AggrType": "count" }];
- break;
- case Unibase.Platform.Analytics.Reports.Enums.DataType.none:
- [{}];
- break;
- }
- return items;
- }
- getColumnIconByDataTypes(DataTypeId) {
- let icon = "";
- switch (DataTypeId) {
- case Unibase.Platform.Analytics.Reports.Enums.DataType.string:
- icon = `<i class="las la-text-width"></i>`;
- break;
- case Unibase.Platform.Analytics.Reports.Enums.DataType.int32:
- case Unibase.Platform.Analytics.Reports.Enums.DataType.int64:
- case Unibase.Platform.Analytics.Reports.Enums.DataType.decimal:
- case Unibase.Platform.Analytics.Reports.Enums.DataType.boolean:
- icon = `<i class="las la-hashtag"></i>`;
- break;
- case Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime:
- icon = `<i class="las la-calendar-minus"></i>`;
- break;
- }
- return icon;
- }
- dataType(type) {
- var DataType;
- switch (type) {
- case "String":
- DataType = Unibase.Platform.Analytics.Reports.Enums.DataType.string;
- break;
- case "Int32":
- DataType = Unibase.Platform.Analytics.Reports.Enums.DataType.int32;
- break;
- case "Int64":
- DataType = Unibase.Platform.Analytics.Reports.Enums.DataType.int64;
- break;
- case "DateTime":
- DataType = Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime;
- break;
- case "Decimal":
- DataType = Unibase.Platform.Analytics.Reports.Enums.DataType.decimal;
- break;
- case "Boolean":
- DataType = Unibase.Platform.Analytics.Reports.Enums.DataType.boolean;
- break;
- }
- return DataType;
- }
- _sortColumns() {
- var instance = this;
- let list = $('#sort_selected_columns');
- if (!list)
- return;
- let itemName;
- let endIndex;
- list.sortable({
- connectWith: "#sort_selected_columns",
- cursor: 'move',
- update: function (event, ui) {
- $.each($('#sort_selected_columns .dsl-block'), function (index, item) {
- let itemName = $(item).attr('id').slice(11);
- let sindex = instance.SortColumns.findIndex(x => x.AliasName == itemName);
- if (sindex > -1) {
- instance.SortColumns[sindex].SortIndex = index;
- }
- let scolindex = instance.selectedColumns.findIndex(x => x.ColumnName == itemName);
- if (scolindex > -1) {
- instance.selectedColumns[scolindex].SortIndex = index;
- }
- });
- instance.load_data(instance.reportid);
- }
- });
- }
- getIndexByColumnName_selectedColumnsArray(ColumnName) {
- var instance = this;
- return instance.selectedColumns.findIndex(x => x.ColumnName == ColumnName);
- }
- getIndexByAliasName_selectedColumnsArray(AliasName) {
- var instance = this;
- return instance.selectedColumns.findIndex(x => x.AliasName == AliasName);
- }
- getIndexByDisplayTextAndColumnName_selectedColumnsArray(AliasName, ColumnName) {
- var instance = this;
- return instance.selectedColumns.findIndex(x => x.AliasName == AliasName && x.ColumnName == ColumnName);
- }
- getColumnId_ByColumnName_datalistColumnsArray(ColumnName) {
- var instance = this;
- let Col = instance.datalistColumnsResponseData.find(x => x.ColumnName == ColumnName);
- return Col.ColumnId;
- }
- getDlColumn_ByColumnId_datalistColumnsArray(ColumnId) {
- var instance = this;
- let Col = instance.datalistColumnsResponseData.find(x => x.ColumnId == ColumnId);
- return Col.DlColumnName;
- }
- getIndexByDisplayText_sortColumnsArray(DisplayText) {
- var instance = this;
- return instance.SortColumns.findIndex(x => x.DisplayText == DisplayText);
- }
- getIndexByAliasName_DatalistColumnsArray(AliasName) {
- return this.datalistColumnsResponseData.findIndex(x => x.AliasName == AliasName);
- }
- getIndexByAliasName_chartSelectedColumnsArray(AliasName) {
- var instance = this;
- return instance._chartBuilder.ChartSelectedColumns.findIndex(x => x.AliasName == AliasName);
- }
- loadReportGroups() {
- var url = _appsettings.server_url() + '/apis/v4/unibase/platform/analytics/reportgroups_autocomplete';
- AutoCompleteHelper.getHelper().Create("#RptGroup_AutoComplete", "#hfAutoComplete_ReportGroup", url, null);
- }
- getAvailableReportGroups(reportGroupsResponseData) {
- var instance = this;
- let html = "";
- for (let i = 0; i < reportGroupsResponseData.length; i++) {
- var template = instance._reportBuilderTemplate.loadDataListsTemplate();
- var templateScript = Handlebars.compile(template);
- var context = { "SelectText": reportGroupsResponseData[i].GroupName, "Value": reportGroupsResponseData[i].ReportGroupId };
- html += templateScript(context);
- }
- if (reportGroupsResponseData.length == 0) {
- var template = instance._reportBuilderTemplate.loadDataListsTemplate();
- var templateScript = Handlebars.compile(template);
- }
- $("#RptGroup_AutoComplete").append(html);
- }
- reportColumns_Array(repCol) {
- var instance = this;
- let col = new ReportColumn();
- col.ReportColumnId = instance.isduplicate == true ? 0 : repCol.ReportColumnId;
- col.ColumnValue = (repCol.ColumnValue) ? repCol.ColumnValue : 0;
- col.ReportColumnName = repCol.ReportColumnName;
- col.DataListColumnName = repCol.DataListColumnName;
- col.DlColumnName = repCol.DlColumnName;
- col.DisplayText = (repCol.DisplayText) ? repCol.DisplayText : repCol.AliasName;
- col.AliasName = (repCol.AliasName) ? repCol.AliasName : col.DisplayText;
- col.DataType = (repCol.DataType) ? repCol.DataType : 0;
- col.Isvisible = (repCol.Isvisible) ? repCol.Isvisible : false;
- col.AggrFuncId = !isNaN(repCol.AggrFuncId) ? repCol.AggrFuncId : Reports.Enums.AggregationType.none,
- col.SortType = (repCol.SortType) ? repCol.SortType : "none";
- col.SortIndex = (repCol.SortIndex) ? repCol.SortIndex : 0;
- col.GroupBy = (repCol.GroupBy) ? repCol.GroupBy : false;
- col.IsPivotAggrColumn = (repCol.IsPivotAggrColumn) ? repCol.IsPivotAggrColumn : false;
- col.IsPivotColumn = (repCol.IsPivotColumn) ? repCol.IsPivotColumn : false;
- col.IsPivotRow = (repCol.IsPivotRow) ? repCol.IsPivotRow : false;
- col.IsPivotRowSelected = (repCol.IsPivotRowSelected) ? repCol.IsPivotRowSelected : false;
- col.IsPivotParentColumn = (repCol.IsPivotParentColumn) ? repCol.IsPivotParentColumn : false;
- col.IsPivotChildColumn = (repCol.IsPivotChildColumn) ? repCol.IsPivotChildColumn : false;
- col.PivotValue = 0;
- col.PivotValueSelected = (instance.pivot && instance.pivot.PivotValue_Selected) ? repCol.PivotValueSelected : 0;
- col.IsPivotRowSelected = (repCol.IsPivotRowSelected) ? repCol.IsPivotRowSelected : false;
- col.PivotDateType = isNaN(repCol.PivotDateType) ? 0 : Number(repCol.PivotDateType);
- col.TimeInterval = (repCol.TimeInterval) ? repCol.TimeInterval : "";
- col.ColumnFormat = (repCol.ColumnFormat == "No Format" || !(repCol.ColumnFormat)) ? "" : repCol.ColumnFormat;
- col.YearComparisonType = (repCol.YearComparisonType) ? repCol.YearComparisonType : 0;
- col.WidthUnit = "px";
- col.RoleId = "0";
- col.IsFilterable = false;
- col.IsPrimaryKey = (repCol.IsPrimaryKey) ? repCol.IsPrimaryKey : false;
- col.IsContactColumn = (repCol.IsContactColumn) ? repCol.IsContactColumn : false;
- col.GroupByCategory = (repCol.GroupByCategory) ? repCol.GroupByCategory : false;
- col.IsTenureApplied = (repCol.IsTenureApplied) ? repCol.IsTenureApplied : false;
- col.Width = (repCol.Width) ? repCol.Width : 0;
- col.ColumnIndex = (repCol.ColumnIndex) ? repCol.ColumnIndex : 0;
- col.DistinctOn = (repCol.DistinctOn) ? repCol.DistinctOn : false;
- col.IsPivotTableCol = (repCol.IsPivotTableCol) ? repCol.IsPivotTableCol : false;
- col.IsDownload = (repCol.IsDownload) ? repCol.IsDownload : false;
- col.TableAggrTypeId = !isNaN(repCol.TableAggrTypeId) ? repCol.TableAggrTypeId : Reports.Enums.AggregationType.none;
- col.IsNumFormatting = (repCol.IsNumFormatting) ? repCol.IsNumFormatting : false;
- col.IsRowTotal = (repCol.IsRowTotal) ? repCol.IsRowTotal : false;
- col.IsImageUrl = (repCol.IsImageUrl) ? repCol.IsImageUrl : false;
- col.PivotTableAggrTypeId = (repCol.PivotTableAggrTypeId) ? repCol.PivotTableAggrTypeId : 0;
- let PivotDateType = instance.pivot && instance.pivot.DateType ? instance.pivot.DateType : 0;
- if (instance.pivot && instance.pivot.AggColumnName != "") {
- if (instance.pivot.AggColumnName == col.ReportColumnName) {
- col.AggrFuncId = Number(instance.pivot.AggFuncId);
- col.IsPivotAggrColumn = true;
- }
- if (instance.pivot.ColumnName == col.ReportColumnName) {
- col.IsPivotColumn = true;
- var Tenure = instance.TenureReport[instance.pivot.ColumnName];
- col.TimeInterval = Tenure != undefined ? Tenure.TimeInterval : "";
- col.PivotDateType = Number(PivotDateType);
- }
- if (instance.pivot.ChildColumnName != "") {
- if (instance.pivot.ChildColumnName == col.ReportColumnName) {
- col.IsPivotChildColumn = true;
- if (repCol.PivotValue == undefined) {
- col.PivotValue = Number(instance.pivot.ChildColumnValue);
- }
- else {
- col.PivotValue = Number(instance.pivot.PivotValue_Selected);
- }
- instance.IsPivotTree = true;
- }
- if (instance.pivot.ParentColumnName == col.ReportColumnName) {
- col.IsPivotParentColumn = true;
- }
- }
- }
- if (repCol.TimeInterval != "") {
- }
- instance.ReportColumns.push(col);
- }
- groupByAggregation() {
- var instance = this;
- var isGrp = instance.selectedColumns.find(g => g.GroupBy == true);
- if (isGrp) {
- for (var i = 0; i < instance.selectedColumns.length; i++) {
- var scol = instance.selectedColumns[i];
- if (!scol.GroupBy && scol.Aggregation == Unibase.Platform.Analytics.Reports.Enums.AggregationType.none) {
- let Index = instance.getIndexByColumnName_selectedColumnsArray(scol.AliasName);
- var Col = instance.selectedColumns[Index];
- Col.Aggregation = Unibase.Platform.Analytics.Reports.Enums.AggregationType.count;
- }
- }
- }
- }
- saveReport(containerid, reportid) {
- var instance = this;
- this.navigationHelper.showLoading();
- let rptGroupId = Number($("#RptGroup_AutoComplete").val());
- if (rptGroupId == 0)
- return MessageHelper.Instance().showError("Please select ReportGroup", 'divReport_ErrorMessage');
- instance.ReportColumns = [];
- var grpby = instance.selectedColumns.filter(x => x.GroupBy == true);
- var agg = [];
- var SortArry = [];
- if (grpby.length > 0) {
- agg = instance.selectedColumns.filter(x => x.Aggregation == Reports.Enums.AggregationType.none).filter(x => x.GroupBy == false);
- }
- if (agg.length > 0 && instance.reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Table) {
- var cols = "";
- if (agg.length == 1) {
- cols = " Column \"";
- }
- else {
- cols = " Columns \"";
- }
- for (var a = 0; a < agg.length; a++) {
- cols += " " + agg[a].ColumnName + ",";
- }
- cols = cols.substring(0, cols.length - 1) + " ";
- alert("SAVE FAILED: " + cols + "\" must be added in groupby or need to give aggregation. For UI Groupby add in Categories instead of groupby");
- return false;
- }
- else {
- for (var i = 0; i < instance.selectedColumns.length; i++) {
- let selectedColumn = instance.selectedColumns[i];
- let Width = 0;
- if (selectedColumn.Width != undefined) {
- Width = selectedColumn.Width;
- }
- var Tenure = instance.TenureReport[selectedColumn.ColumnName];
- let AggrFuncId = selectedColumn.Aggregation;
- let col = new ReportColumn();
- col.ReportColumnId = selectedColumn.ReportColumnId,
- col.ReportColumnName = selectedColumn.ColumnName,
- col.AliasName = selectedColumn.AliasName,
- col.DisplayText = selectedColumn.DisplayText,
- col.DlColumnName = selectedColumn.DlColumnName,
- col.ColumnIndex = selectedColumn.ColumnIndex,
- col.Width = Width,
- col.ColumnValue = Number(selectedColumn.ColumnId),
- col.DataType = selectedColumn.DataType,
- col.IsFilterable = selectedColumn.IsFilterable,
- col.IsPrimaryKey = selectedColumn.IsPrimaryKey,
- col.IsContactColumn = selectedColumn.IsContactColumn,
- col.Isvisible = selectedColumn.Isvisible,
- col.GroupBy = selectedColumn.GroupBy,
- col.SortType = selectedColumn.SortOrder,
- col.SortIndex = selectedColumn.SortIndex,
- col.AggrFuncId = AggrFuncId,
- col.IsTenureApplied = Tenure != undefined ? true : false,
- col.GroupByCategory = selectedColumn.GroupByCategory,
- col.ColumnFormat = selectedColumn.ColumnFormat == "Default" ? "" : selectedColumn.ColumnFormat,
- col.PivotValue = instance.pivot.PivotValue_Selected,
- col.DistinctOn = selectedColumn.DistinctOn,
- col.IsPivotTableCol = selectedColumn.IsPivotTableCol,
- col.IsDownload = selectedColumn.IsDownload,
- col.TableAggrTypeId = selectedColumn.TableAggrTypeId,
- col.IsNumFormatting = selectedColumn.IsNumFormatting,
- col.IsRowTotal = selectedColumn.IsRowTotal,
- col.IsImageUrl = selectedColumn.IsImageUrl,
- col.PivotTableAggrTypeId = selectedColumn.PivotTableAggrTypeId,
- instance.reportColumns_Array(col);
- }
- let pivotRows = instance.pivot.PivotRows;
- if (instance.SortColumns.length != 0) {
- for (var i = 0; i < instance.SortColumns.length; i++) {
- var col = instance.SortColumns.find(x => x.SortIndex == i);
- if (col)
- SortArry.push({ Name: col.DisplayText, Order: col.SortOrder });
- }
- }
- if (SortArry.length == 0) {
- if (instance.reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Chart) {
- instance.navigationHelper.hideLoading();
- return MessageHelper.Instance().showError('Please Select SortColumn', 'div_ReportBuilderErrorMessage');
- }
- SortArry.push({ Name: instance.selectedColumns[0].AliasName, Order: "Desc" });
- }
- instance._chartBuilder.chartColumns();
- if (instance.isduplicate == true) {
- $("#txt_reportid").val(0);
- if ($("#txt_reportname").val() == "") {
- $("#errordiv").show();
- $("#errordiv").html('<div id="Bizgaze-messageInfo" class="alert alert-danger " ><strong>Error! </strong>Mandatory fields are missing</div>');
- $("#errordiv").css({ "height": "50px", "visibility": "hidden", "opacity": "0", "transition": "visibility 0s 6s,opacity 6s linear" });
- setTimeout(function () {
- $("#errordiv").removeAttr('style');
- $("#errordiv").hide();
- }, 6000);
- return false;
- }
- }
- var dependencyapps = $("#dependecyapps").val();
- let ReportName = $("#txt_reportname").val().toString();
- instance.reportname = String($("#txt_reportname").val());
- var SearchColumns_Data = $("#searchcolumns").select2('data');
- var SearchCols = "";
- for (var i = 0; i < SearchColumns_Data.length; i++) {
- SearchCols += SearchColumns_Data[i].text + "|";
- }
- let connectedAppsArray = $("#connectedapps").select2('data');
- let connectedReportsArray = $("#connectedreports").select2('data').map(x => x.id);
- let connectedApps = connectedAppsArray.map(x => x.id).join("|");
- let connectedReports = connectedReportsArray.join("|");
- let baseValue = $("#dataset_base_value").val();
- if (instance.res && instance.res.UniqueId) {
- if (connectedReportsArray.includes(instance.res.UniqueId)) {
- instance.navigationHelper.hideLoading();
- return MessageHelper.Instance().showError("Same report cannot be selected as connected report", 'divReport_ErrorMessage');
- }
- }
- instance.updateDynamicFilterIndex();
- var fromDate = "";
- var toDate = "";
- var cf_fromDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_FromDate;
- var cf_toDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_ToDate;
- if (cf_fromDate != null && cf_toDate != null) {
- fromDate = cf_fromDate.toString();
- toDate = cf_toDate.toString();
- }
- else {
- fromDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
- toDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
- }
- let uniqueId = instance.res && instance.res.UniqueId ? instance.res.UniqueId : "Bizgaze_Platform_Analytics_Reports_" + ReportName.replace(/\s/g, '');
- let model = new Unibase.Platform.Analytics.Requests.Report();
- model.SearchColumns = SearchCols;
- model.SubReports = instance.subreportdata;
- model.DependencyApps = dependencyapps.join('|');
- model.DynamicFilters = instance.dynamicFilters;
- model.ReportId = Number($("#txt_reportid").val());
- model.ReportName = String($("#txt_reportname").val());
- model.DisplayName = String($("#txt_displayname").val());
- model.ReportTypeId = instance.reportType;
- model.DataListId = instance.DataListId;
- model.Description = '';
- model.ReportGroupId = Number($("#RptGroup_AutoComplete").val());
- model.ReportColumns = instance.ReportColumns;
- model.ChartColumns = instance.ChartColumns;
- model.RoleSettings = instance.roleSettings;
- model.EditFilters = null;
- model.StaticFilter = instance.queryBuilderJson;
- model.SortColumns = JSON.stringify(SortArry);
- model.TopRecords = Number($("#txt_totalrecords").val());
- model.Parameters = String($("#txt_dynamicparameters").val()).trim();
- model.ChartTypeId = instance._chartBuilder.ChartTypeId;
- model.DateColumn = String($("#DateColumnDropDown").val());
- model.UniqueId = uniqueId;
- model.ViewerId = instance.ViewerId;
- model.ViewerTypeId = instance.ViewerTypeId;
- model.OnClick = String($("#txt_onclick").val());
- model.InstalledAppId = isNaN(Number($("#InstalledApp_AutoComplete option:selected").val())) == true ? 0 : Number($("#InstalledApp_AutoComplete option:selected").val());
- model.IsNotification = instance.IsNotification;
- model.TableTypeId = Number($("#tableTypeSelect").val());
- model.DisplayName = String($("#txt_displayname").val());
- model.IsLegend = instance._chartBuilder.displayLegend;
- model.LegendTypeId = isNaN(Number($("#legend-select").val())) == true ? 0 : Number($("#legend-select").val());
- model.IsInternalReport = instance.IsInternalReport;
- model.IsPivotTree = instance.IsPivotTree;
- model.PivotValue = (instance.pivot.PivotValue_Selected) ? Number(instance.pivot.PivotValue_Selected) : 0;
- model.IsEnableCount = instance.enableCount;
- model.IsEnableGlobalDatepicker = instance.enableGlobalDatepicker;
- model.PaletteId = instance.paletteId;
- model.ColorAppliedTypeId = instance._chartBuilder.colorAppliedOn;
- model.PivotTypeId = instance._pivot.pivotTypeId;
- model.TimeInterval = instance.Interval;
- model.ConnectedApps = connectedApps;
- model.LinkReportId = instance.linkReportId;
- model.IsTreeExpand = instance._pivot.isDataTreeExpand;
- model.ReportIndex = 0;
- model.ViewAll = instance.viewAll;
- model.ConnectedReports = connectedReports;
- model.LegendTitleTypeId = instance._chartBuilder.legendTitleTypeId;
- model.ChartBaseValue = baseValue === undefined ? 0 : Number(baseValue);
- model.FromDate = fromDate;
- model.ToDate = toDate;
- model.EnablePivotTableConfig = instance.enablePivotTableConfig;
- model.Js = String($("#txt_js").val());
- model.PinDynamicFilters = $('#pindynamicfilters_checkbox').is(":checked");
- model.IsDataLabel = $("#isdatalabel").prop("checked");
- model.IsTooltipHeader = $("#showtooltipheader_checkbox").prop("checked");
- model.ShowDataListColsOnDynFil = instance.showDynamicFilters;
- model.TickLabelLength = instance._chartBuilder.tickLabelLength;
- instance.reportManager.saveReport(model).then(function (response) {
- instance.navigationHelper.hideLoading();
- if (response.status == Unibase.Data.Status.Error) {
- MessageHelper.Instance().showError(response.message, 'divReport_ErrorMessage');
- $('#save_as_modal #divReport_ErrorMessage #Bizgaze-messageInfo').addClass('btn mx-4 my-3');
- $('#save_as_modal #divReport_ErrorMessage #Bizgaze-messageInfo').css('border-radius', '.25rem');
- }
- else {
- MessageHelper.Instance().showSuccess(response.message, '');
- $('#' + containerid).modal('hide');
- $('#' + containerid).remove();
- instance._chartBuilder.clearSelectedChartFields();
- instance.clearSelectedTableFields();
- instance.querybuilderCheckboxes = [];
- var res = JSON.parse(response.result);
- if (reportid != 0 && !instance.isReportWidget) {
- const lastContainerId = instance.lastContainerId;
- $(`#${lastContainerId}`).modal("hide");
- $(`#${lastContainerId}`).remove();
- if (lastContainerId.includes('_viewall') || lastContainerId.includes('_ViewAllByUniqueId_') || lastContainerId.includes('fullscreen') || lastContainerId.includes('_linkedreport_')) {
- Unibase.Platform.Helpers.NavigationHelper.reportViewerInstance = Unibase.Platform.Helpers.NavigationHelper.reportViewerInstance.filter(instance => instance.childcontainerid !== lastContainerId);
- instance._reportViewer.report_ViewAll(reportid, 0, lastContainerId, null);
- if (lastContainerId.includes('fullscreen') && lastContainerId.includes('div_dashboardportletwidget')) {
- const widgetContainerId = lastContainerId.replace('fullscreen_', '');
- instance.reloadDashboardPortletWidget(widgetContainerId);
- }
- }
- else {
- instance._reportViewer.InstalledAppId = res.InstalledAppId;
- instance.navigationHelper.popin(res.ReportId, "", instance._reportViewer, null);
- }
- }
- else if (instance.isReportWidget) {
- instance.reloadReportWidget(instance.reportWidgetType);
- if (instance.reportWidgetType == 'portlet' && instance.lastContainerId) {
- $("#" + instance.lastContainerId).modal("hide");
- $("#" + instance.lastContainerId).remove();
- instance._reportViewer.report_ViewAll(0, 0, 0, null);
- }
- }
- }
- });
- }
- }
- reloadDashboardPortletWidget(widgetContainerId) {
- const instance = this;
- const containerId = widgetContainerId ? widgetContainerId : instance.lastContainerId;
- const widgetItem = $(`#${containerId}`).closest('.dashboardwidget-item');
- const widgetId = Number($(`#${containerId}`).closest('.dashboardwidget-item').find('#hf_widgetId').val());
- const portletwidgetid = Number(widgetItem.find('#hf_portletwidgetId').val());
- Unibase.Themes.Compact.Components.ReportWidgets.Default.Instance().getReportWidget(portletwidgetid, widgetId, containerId, [], [], false, 0, false);
- }
- reloadReportWidget(widgetType) {
- const instance = this;
- if (widgetType == 'dashboard') {
- instance.reloadDashboardPortletWidget();
- }
- else if (widgetType == 'portlet') {
- $('._bizgaze_detail_container:visible').find('#layout-detail-tabs .tab-item a.active').trigger('click');
- }
- }
- clearSelectedTableFields() {
- var instance = this;
- instance.datalistColumnsResponseData = [];
- instance.selectedColumns = [];
- instance.ReportColumns = [];
- instance.SortColumns = [];
- instance.stringifyed_SortColumns = "";
- instance.queryBuilderJson = "";
- instance.reportGroupId = 0;
- instance.reportType = 1;
- instance.Categories = [];
- instance.dynamicFilters = [];
- instance.roleSettings = [];
- instance.TenureReport = [];
- instance.subreportdata = [];
- instance.dataTreeRowExpandedColumn = [];
- instance.Edit_BindData = false;
- instance.isEdit = false;
- instance._pivot.pivotTypeId = 0;
- instance.IsInternalReport = true;
- }
- defaultReportGroup() {
- var instance = this;
- if (instance.IsInternalReport) {
- let groupName = "InternalGroup";
- instance.reportManager.getReportGroupByName(groupName).then(function (grpresponse) {
- if (grpresponse.result == "") {
- let model = new Unibase.Platform.Analytics.Reports.Requests.ReportGroup();
- model.GroupName = groupName;
- instance.reportManager.saveReportGroup(model).then(function (response) {
- if (response.result != null) {
- let res = JSON.parse(response.result);
- instance.reportGroupId = res.ReportGroupId;
- $("#RptGroup_AutoComplete").append("<option selected value=" + res.ReportGroupId + ">" + res.GroupName + "</option>");
- }
- });
- }
- else {
- instance.reportGroupId = grpresponse.result.ReportGroupId;
- $("#RptGroup_AutoComplete").append("<option selected value=" + grpresponse.result.ReportGroupId + ">" + grpresponse.result.GroupName + "</option>");
- }
- });
- }
- else {
- $('#RptGroup_AutoComplete').removeAttr('disabled');
- }
- }
- closeReportBuilder(containerid, reportid) {
- var instance = this;
- instance._chartBuilder.clearSelectedChartFields();
- instance.clearSelectedTableFields();
- $('#' + containerid).modal('hide');
- $('#' + containerid).remove();
- }
- loadreportviewerdata(reportid) {
- var instance = this;
- instance.isEdit = true;
- instance.loadDynmaicFilters(reportid);
- instance.bindReportData(reportid);
- }
- loadDynmaicFilters(reportid) {
- var instance = this;
- instance.reportManager.getDynamicFilters(reportid).then(function (response) {
- instance.dynamicFilters = [];
- for (let i = 0; i < response.length; i++) {
- var data = response.find(d => d.Index == i);
- if (data != undefined) {
- var model = new DynamicFilterModel();
- model.DynamicFilterId = data.DynamicFilterId;
- model.IsFilterableColumn = data.IsFilterableColumn.trim();
- model.DataListId = Number(data.DatalistId);
- model.DataListName = data.DataListName != null ? (data.DataListName).toString() : null;
- model.ReportId = data.ReportId;
- model.MappedColumn = data.MappedColumn;
- model.TextColumn = data.TextColumn != null ? data.TextColumn : null;
- model.ValueColumn = data.TextColumn != null ? data.ValueColumn : null;
- model.Index = data.Index;
- model.ControlTypeId = data.ControlTypeId;
- model.DataType = data.DataType;
- model.DisplayName = data.DisplayName;
- model.IsPartition = data.IsPartition;
- model.FontCaseTypeId = data.FontCaseTypeId;
- model.IsDefault = data.IsDefault;
- model.IsUnLimited = data.IsUnLimited;
- model.IsRequired = data.IsRequired;
- model.ParentColumn = data.ParentColumn;
- model.ApplyFor = data.ApplyFor;
- model.IsCustomFilter = data.IsCustomFilter;
- model.ReplaceExistingDates = data.ReplaceExistingDates;
- model.DateRangeTypeId = data.DateRangeTypeId;
- instance.dynamicFilters.push(model);
- Unibase.Platform.Analytics.Reports.DynamicFilter.Instance().dynamicFilters = instance.dynamicFilters;
- let html = instance._reportBuilderTemplate.loadDynamicFilterColumn(Number(model.DynamicFilterId), model.IsFilterableColumn, '');
- $("#dynamic-list-group-wrapper").append(html);
- if (data.DataType == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime) {
- }
- if (data.IsPartition)
- $("#chk_ispartition_" + data.IsFilterableColumn.trim()).prop("checked", true);
- if (data.IsUnLimited)
- $('#isunlimited_checkbox').prop('checked', true);
- else
- $('#isunlimited_checkbox').prop('checked', false);
- Unibase.Platform.Analytics.Reports.DynamicFilter.Instance().sortDynamicFilter(model);
- }
- }
- });
- }
- bindReportData(reportid) {
- var instance = this;
- var reportObj = {
- ReportId: reportid,
- IsEditReport: true
- };
- instance.reportManager.getReportInfo(reportObj).then(function (response) {
- return __awaiter(this, void 0, void 0, function* () {
- if (response.status == Unibase.Data.Status.Error) {
- return MessageHelper.Instance().showError(response.message, 'div_ReportBuilderErrorMessage');
- }
- var res = response.result.ReportInfo;
- instance.DataListId = res.DataListId;
- instance.DataSourceId = res.DataSourceId;
- instance.topRecords = res.TopRecords;
- yield instance.loadDataListColumns(res.DataListId, null, false, false, instance.DataSourceId);
- instance.initiateDataListSearch();
- instance._chartBuilder.isDataLabel = response.result.ReportInfo.IsDataLabel;
- instance.pinDynamicFilters = res.PinDynamicFilters;
- if (res.appDependents != null) {
- let dependecyapps = [];
- if (res.appDependents.length) {
- for (let i = 0; i < res.appDependents.length; i++) {
- dependecyapps.push(res.appDependents[i].InstalledAppId);
- }
- $("#dependecyapps").val(dependecyapps).trigger("change");
- }
- }
- $("#txt_reportid").val(res.ReportId);
- if (instance.isduplicate != true) {
- $("#txt_reportname").val(res.ReportName);
- $("#txt_reportname").attr("disabled", "disabled");
- }
- if (res.SearchColumns != null) {
- instance.SearchColumns = res.SearchColumns;
- }
- $("#header_datalist_name").text(res.DataListName);
- $("#txt_totalrecords").val(res.TopRecords);
- $("#txt_onclick").val(res.Onclick);
- $("#txt_js").val(res.Js);
- $("#pindynamicfilters_checkbox").prop("checked", res.PinDynamicFilters);
- instance.togglePinDynamicFilters();
- if (res.ShowDataListColsOnDynFil)
- $("#showdatalistcolumns_checkbox").trigger("click");
- if (res.Js) {
- instance.Js = res.Js;
- }
- if (res.InstalledAppId != 0) {
- $("#InstalledApp_AutoComplete").append(`<option value="` + res.InstalledAppId + `">` + res.AppTitle + `</option>`);
- $("#InstalledApp_AutoComplete").val(res.InstalledAppId).trigger("change");
- }
- if (res.ConnectedApps) {
- let connectApps = res.ConnectedApps.split("|");
- $("#connectedapps").val(connectApps).trigger("change");
- }
- if (res.ConnectedReports) {
- let connectedReports = res.ConnectedReports.split("|");
- for (var i = 0; i < connectedReports.length; i++) {
- yield Unibase.Platform.Analytics.Managers.ReportManager.Instance().getReportByUniqueIdEncoded(btoa(connectedReports[i])).then((res) => {
- if (res.result && res.status == Unibase.Data.Status.Success) {
- let option = new Option(res.result.ReportName, connectedReports[i], true);
- $("#connectedreports").append(option);
- }
- });
- }
- ;
- $("#connectedreports").val(connectedReports).trigger("change");
- }
- if (res.IsNotification) {
- $(".chkNotification").attr("checked", "checked");
- }
- instance.Interval = res.TimeInterval;
- instance.IsInternalReport = res.IsInternalReport;
- $('#internalreport_checkbox').prop('checked', instance.IsInternalReport);
- instance.isInternalGroup = res.IsInternalGroup;
- if (instance.isInternalGroup) {
- instance.updateInternalReportCb(true, true);
- }
- if (!res.IsEnableCount) {
- instance.enableCount = false;
- $('#count_checkbox').prop('checked', false);
- }
- else {
- instance.enableCount = true;
- $('#count_checkbox').prop('checked', true);
- }
- if (!res.IsEnableGlobalDatepicker) {
- instance.enableGlobalDatepicker = false;
- $('#enableglobaldatepicker_checkbox').prop('checked', false);
- }
- else {
- instance.enableGlobalDatepicker = true;
- $('#enableglobaldatepicker_checkbox').prop('checked', true);
- }
- Unibase.Platform.Analytics.Components.LinkReport.Instance().linkreportid = res.LinkReportId;
- instance.reportGroupId = res.ReportGroupId;
- $("#RptGroup_AutoComplete").append(`<option value="` + res.ReportGroupId + `">` + res.GroupName + `</option>`);
- $("#RptGroup_AutoComplete").val(res.ReportGroupId);
- $("#txt_displayname").val(res.DisplayName);
- $("#tableTypeSelect").val(res.TableTypeId);
- $('#chkPivotTableConfig_checkbox').prop('checked', res.EnablePivotTableConfig);
- $('#chktreeexpand_checkbox').prop('checked', res.IsTreeExpand);
- instance.enablePivotTableConfig = res.EnablePivotTableConfig;
- instance._pivot.isDataTreeExpand = res.IsTreeExpand;
- instance.IsPivotTree = res.IsPivotTree;
- instance._pivot.pivotTypeId = res.PivotTypeId;
- instance._pivot.intervals = res.TimeInterval;
- instance._chartBuilder.displayLegend = res.IsLegend;
- instance._chartBuilder.tickLabelLength = res.TickLabelLength;
- instance._pivot.selectedpivotType(res.PivotTypeId);
- if (res.StaticFilter != null) {
- instance.queryBuilderJson = res.StaticFilter;
- }
- instance.ViewerTypeId = res.ViewerTypeId;
- instance.ViewerId = res.ViewerId;
- if (res.SortColumns != null) {
- instance.stringifyed_SortColumns = res.SortColumns;
- var sortCols = JSON.parse(res.SortColumns);
- for (var sc = 0; sc < sortCols.length; sc++) {
- let sortcol = sortCols[sc];
- instance.SortColumns.push({ DisplayText: sortcol.Name, SortOrder: sortcol.Order, SortIndex: sc });
- var rptCols;
- if (res.DataSourceId == Number(Unibase.Platform.DataSources.Enums.DataSource.MongoDB)) {
- rptCols = res.ReportColumns.find(s => s.AliasName.toLowerCase() == sortcol.Name.toLowerCase());
- }
- else {
- rptCols = res.ReportColumns.find(s => s.AliasName.toLowerCase() == sortcol.Name);
- }
- var html = instance._reportBuilderTemplate.loadSortSelect2Column(rptCols.ColumnValue, rptCols.AliasName, rptCols.DataType);
- $("#sort_selected_columns").append(html);
- if (instance.SortColumns[0].SortOrder == "Desc") {
- $("#dsl_column_" + sortcol.DisplayText + " .sort-icon").addClass('la-sort-down');
- $("#dsl_column_" + sortcol.DisplayText + " .sort-icon").removeClass('la-sort-up');
- }
- else {
- $("#dsl_column_" + sortcol.DisplayText + " .sort-icon").removeClass('la-sort-down');
- $("#dsl_column_" + sortcol.DisplayText + " .sort-icon").addClass('la-sort-up');
- }
- instance.setSelectOption("sortColumns_select");
- instance._sortColumns();
- }
- }
- instance.roleSettings = res.RoleSettings ? res.RoleSettings : [];
- if (!res.LegendTitleTypeId)
- res.LegendTitleTypeId = Unibase.Platform.Analytics.Enums.LegendTitleType.Column;
- instance.legendTypeId = res.LegendTypeId;
- if (res.LegendTitleTypeId == Unibase.Platform.Analytics.Enums.LegendTitleType.Column) {
- $("#lagendtypecolumn").prop("checked", true);
- instance._chartBuilder.legendTitleTypeId = Unibase.Platform.Analytics.Enums.LegendTitleType.Column;
- }
- else {
- $("#lagendtypedata").prop("checked", true);
- instance._chartBuilder.legendTitleTypeId = Unibase.Platform.Analytics.Enums.LegendTitleType.Data;
- }
- instance._chartBuilder.chartBaseValue = res.ChartBaseValue;
- instance.viewAll = res.ViewAll;
- if (res.LinkReportId) {
- instance.linkReportId = res.LinkReportId;
- }
- instance.res = res;
- let id = "";
- id = res.ReportTypeId == Unibase.Platform.Analytics.Reports.Enums.ReportType.Table ? 'fa fa-table' : 'fa fa-bar-chart-o';
- instance.reportTypeChange(id);
- if (res.ReportTypeId == Unibase.Platform.Analytics.Reports.Enums.ReportType.Table) {
- yield instance.bindTableData(res.ReportColumns, reportid);
- instance.reportType = res.ReportTypeId;
- $("#no_of_records").closest(".card").first().addClass("hidden");
- }
- else {
- instance._chartBuilder.ChartTypeId = res.ChartTypeId;
- instance.reportType = res.ReportTypeId;
- $("#ReportTypeChart").find('i').toggleClass('fa-table fa-bar-chart-o');
- instance._reportBuilderTemplate.loadChartSideBar();
- instance._chartBuilder.sortTooltipColumnsEvent();
- instance._chartBuilder.loadReportTypeChart('fa fa-bar-chart-o');
- $('#tabulatorReportbuilder').addClass('contains-chartview');
- if (res.ColorAppliedTypeId == Unibase.Platform.Analytics.Enums.ColorType.column) {
- $("#columnRadio").prop("checked", true);
- instance._chartBuilder.colorAppliedOn = Unibase.Platform.Analytics.Enums.ColorType.column;
- }
- else {
- $("#rowRadio").prop("checked", true);
- instance._chartBuilder.colorAppliedOn = Unibase.Platform.Analytics.Enums.ColorType.row;
- }
- instance._chartBuilder.ChartSelectedColumns = res.ChartColumns;
- instance._chartBuilder.bindChartColumns(res.ChartColumns);
- instance._chartBuilder.prepareAndBindToolTipColumns(res.ChartColumns);
- instance.paletteId = res.PaletteId;
- const indexInstance = Unibase.Themes.Compact.Components.Index.Instance();
- if (instance.paletteId !== 0 || indexInstance.currentTheme.paletteId) {
- let paletteId = instance.paletteId;
- if (!paletteId) {
- instance._chartBuilder.paletteColors.push(...indexInstance.themePalette);
- }
- else {
- instance._chartBuilder.getpaletteColors(paletteId, false);
- }
- }
- $("#legend-select").val(res.LegendTypeId);
- instance._chartBuilder.loadSelectedLegend(res.LegendTypeId, false);
- instance.bindTableData(res.ReportColumns, reportid);
- }
- instance.loadAllDataListColumns();
- instance.loadSelectedDataListColumns();
- instance._chartBuilder.loadSearchSelect2();
- instance._chartBuilder.loadSortColumnsSelect2();
- instance._chartBuilder.loadDynamicFilterSelect(instance.showDynamicFilters);
- instance._chartBuilder.loadCategoriesSelect2();
- });
- });
- }
- bindTableData(reportColumns, reportid) {
- return __awaiter(this, void 0, void 0, function* () {
- var instance = this;
- if (reportColumns && reportColumns.length) {
- reportColumns = reportColumns.sort((x, y) => x.ColumnIndex - y.ColumnIndex);
- }
- var data = reportColumns;
- instance.pivot.ColumnName = "";
- var pivotChildCol = data.filter(c => c.IsPivotChildColumn == true);
- var pivotParentCol = data.filter(c => c.IsPivotParentColumn == true);
- var groupby = [];
- var categories = [];
- var categories_text = [];
- var searchcolumns = instance.SearchColumns.split('|');
- for (var i = 0; i < data.length; i++) {
- var selCol = new SelectedColumns();
- selCol.ReportColumnId = data[i].ReportColumnId;
- selCol.ColumnId = data[i].ColumnValue;
- selCol.ColumnName = data[i].ReportColumnName;
- selCol.AliasName = data[i].AliasName;
- selCol.DataListColumnName = data[i].DataListColumnName;
- selCol.DlColumnName = data[i].DlColumnName;
- selCol.DataType = data[i].DataType;
- selCol.GroupBy = data[i].GroupBy;
- selCol.Aggregation = data[i].AggrFuncId;
- selCol.SortOrder = data[i].SortType;
- selCol.Isvisible = data[i].Isvisible;
- selCol.SortIndex = data[i].SortIndex;
- selCol.DisplayText = data[i].DisplayText;
- selCol.IsFilterable = data[i].IsFilterable;
- selCol.IsPrimaryKey = data[i].IsPrimaryKey;
- selCol.IsContactColumn = data[i].IsContactColumn;
- selCol.ColumnIndex = data[i].ColumnIndex;
- selCol.GroupByCategory = data[i].GroupByCategory;
- selCol.DistinctOn = data[i].DistinctOn;
- selCol.IsPivotColumn = data[i].IsPivotColumn;
- selCol.IsPivotAggrColumn = data[i].IsPivotAggrColumn;
- selCol.IsPivotTableCol = data[i].IsPivotTableCol;
- selCol.IsDownload = data[i].IsDownload;
- selCol.TableAggrTypeId = data[i].TableAggrTypeId;
- selCol.IsNumFormatting = data[i].IsNumFormatting;
- selCol.IsRowTotal = data[i].IsRowTotal;
- selCol.IsImageUrl = data[i].IsImageUrl;
- selCol.PivotTableAggrTypeId = data[i].PivotTableAggrTypeId;
- selCol.ColumnFormat = data[i].ColumnFormat;
- if (data[i].Width != 0) {
- selCol.Width = data[i].Width;
- }
- selCol.IsDragged = true;
- if (data[i].GroupBy == true) {
- groupby.push(data[i].ColumnValue);
- }
- if (data[i].GroupByCategory == true) {
- categories.push(data[i].ColumnValue);
- categories_text.push({ id: data[i].ColumnValue, text: data[i].ReportColumnName });
- }
- if (data[i].IsFilterable) {
- $("#DropDown_IsFilterable_" + data[i].AliasName).removeClass('hidden');
- }
- else {
- $("#DropDown_IsFilterable_" + data[i].AliasName).addClass('hidden');
- }
- if (data[i].IsPrimaryKey) {
- $("#DropDown_IsPrimaryKey_" + data[i].AliasName).removeClass('hidden');
- }
- else {
- $("#DropDown_IsPrimaryKey_" + data[i].AliasName).addClass('hidden');
- }
- if (data[i].IsContactColumn) {
- $("#DropDown_IsContactColumn_" + data[i].AliasName).removeClass('hidden');
- }
- else {
- $("#DropDown_IsContactColumn_" + data[i].AliasName).addClass('hidden');
- }
- instance._selectedColumns(selCol);
- if (selCol.GroupByCategory) {
- var html = instance._reportBuilderTemplate.loadSelect2Column(selCol.ColumnId, selCol.AliasName, selCol.DataType);
- $("#categories_selected_columns").append(html);
- instance.setSelectOption("categories_select");
- }
- if (data[i].TimeInterval != "" && data[i].TimeInterval != null) {
- instance.TenureReport[data[i].ReportColumnName] = {
- TimeInterval: data[i].TimeInterval
- };
- instance.TenureReport.length = instance.TenureReport.length + 1;
- }
- if (data[i].IsPivotColumn) {
- instance.pivot.ColumnName = data[i].ReportColumnName;
- yield instance.getDistinctData(0, data[i].ReportColumnName, data[i].PivotDateType);
- }
- if (data[i].IsPivotAggrColumn) {
- instance.pivot.AggColumnName = data[i].ReportColumnName;
- instance.pivot.AggFuncId = data[i].AggrFuncId;
- }
- if (data[i].PivotDateType != "") {
- instance.pivot.DateType = data[i].PivotDateType;
- }
- if (data[i].IsPivotChildColumn) {
- instance.pivot.ChildColumnName = pivotChildCol[0].ReportColumnName;
- instance.pivot.ChildColumnValue = data[i].PivotValue;
- instance.pivot.PivotValue_Selected = data[i].PivotValue;
- instance.pivot.ParentColumnName = pivotParentCol[0].ReportColumnName;
- }
- }
- instance.Categories = categories_text;
- instance._chartBuilder.select2DataBinding("");
- if (instance._pivot.pivotTypeId == Unibase.Platform.Analytics.Reports.Enums.PivotType.PivotTable) {
- yield instance._pivot.loadPivotTable(instance.table);
- instance.getSubReports(reportid);
- instance.navigationHelper.hideLoading();
- }
- else {
- yield instance.load_data(instance.table);
- }
- if (instance.TenureReport.length != 0) {
- Unibase.Platform.Analytics.Reports.Tenure.Instance().CheckedTenure();
- instance._chartBuilder.tenureChart('myChart', instance.reportid);
- }
- if (instance.reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Chart) {
- if (instance.pivot.ColumnName) {
- instance._chartBuilder.chartType('myChart');
- }
- }
- var SearchCols = [];
- for (var s = 0; s < searchcolumns.length; s++) {
- if (searchcolumns[s] != "") {
- let SearchCol_Index = instance.datalistColumnsResponseData.findIndex(x => x.ColumnName == searchcolumns[s]);
- if (SearchCol_Index != -1) {
- var col = instance.datalistColumnsResponseData[SearchCol_Index].ColumnId;
- SearchCols.push(col);
- }
- }
- }
- $("#searchcolumns").val(SearchCols).trigger("change");
- });
- }
- addParameter() {
- let parameterHtml = "";
- let parameterDropdownHtml = "";
- let elementNumber = this.parameterNumber;
- parameterHtml += `<div class="custom-control custom-radio adj-drawer-open" data-target="para_${elementNumber}">
- <input type="radio" id="customRadio${elementNumber}" name="customRadio" class="custom-control-input">
- <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>
- </div>`;
- $("#parameter-options").append(parameterHtml);
- parameterDropdownHtml += `<div id="para_${elementNumber}" class="biz-mini-adj-drawer">
- <header>
- <h6>Parameter ${elementNumber}</h6>
- <span class="close btn-mini-drawer-close"></span>
- </header>
- <div class="drawer-body">
- <div class="nicescroll-bar">
- <p>All option related to parameter will be listed here</p>
- </div>
- </div>
- <footer>
- <a href="#" class="btn btn-light btn-mini-drawer-close mr-10">clear</a>
- <a href="#" class="btn btn-theme btn-mini-drawer-close">save</a>
- </footer>
- </div>`;
- $("#parameter-dropdown").append(parameterDropdownHtml);
- let para = `para_${elementNumber}`;
- let obj = { paraId: para };
- this.parameterArray.push(obj);
- this.parameterNumber++;
- }
- removeSelectParameter(paraId) {
- var instance = this;
- for (var i = 0; i < instance.parameterArray.length; i++)
- if (instance.parameterArray[i].paraId === paraId) {
- instance.parameterArray.splice(i, 1);
- $("#parameter-options").find('[data-target = ' + paraId + ']').remove();
- $("#parameter-dropdown").find('#' + paraId).remove();
- break;
- }
- }
- error(name) {
- return MessageHelper.Instance().showError('Column -"' + name + '" Already Exists. Please change display text and try again', 'div_ReportBuilderErrorMessage');
- }
- isNotificationCheck() {
- var instance = this;
- var tenantindex = instance.selectedColumns.findIndex(x => x.ColumnName == "tenantid");
- var versionguidindex = instance.selectedColumns.findIndex(x => x.ColumnName == "versionguid");
- if ($('#notification_checkbox').prop('checked') == true) {
- if (tenantindex == -1) {
- let tenantcol = instance.datalistColumnsResponseData.find(d => d.ColumnName == "tenantid");
- if (tenantcol) {
- tenantcol.Isvisible = true;
- instance._selectedColumns(tenantcol);
- }
- else {
- $('#notification_checkbox').prop('checked', false);
- return MessageHelper.Instance().showError("tenantid Column doesn't exist", "div_ReportBuilderErrorMessage");
- }
- if (versionguidindex > -1)
- instance.load_data(instance.table);
- }
- if (versionguidindex == -1) {
- let versionguidcol = instance.datalistColumnsResponseData.find(d => d.ColumnName == "versionguid");
- if (versionguidcol) {
- versionguidcol.Isvisible = true;
- instance._selectedColumns(versionguidcol);
- }
- else {
- $('#notification_checkbox').prop('checked', false);
- return MessageHelper.Instance().showError("versionguid Column doesn't exist", "div_ReportBuilderErrorMessage");
- }
- if (tenantindex > -1)
- instance.load_data(instance.table);
- }
- instance.IsNotification = true;
- }
- else {
- instance.IsNotification = false;
- if (tenantindex > -1)
- instance.selectedColumns.splice(tenantindex);
- if (versionguidindex > -1)
- instance.selectedColumns.splice(versionguidindex);
- return instance.load_data(instance.table);
- }
- if (tenantindex == -1 && versionguidindex == -1 || tenantindex > -1 && versionguidindex > -1)
- instance.load_data(instance.table);
- }
- getSelectedColumns_Select2_Data() {
- let data = [{ id: "0", text: "- Select Columns -" }];
- for (var i = 0; i < this.selectedColumns.length; i++) {
- data.push({ id: this.selectedColumns[i].ColumnId, text: this.selectedColumns[i].AliasName });
- }
- return data;
- }
- getSelectedColumns_Select2_Data_AliasName_As_TextValue() {
- let data = [{ id: "0", text: "- Select Columns -" }];
- for (var i = 0; i < this.selectedColumns.length; i++) {
- data.push({ id: this.selectedColumns[i].AliasName, text: this.selectedColumns[i].AliasName });
- }
- return data;
- }
- getSelect2DataForDynamicFiltersDatalistColumns() {
- let data = [{ id: "0", text: "- Select Columns -" }];
- for (var i = 0; i < this.datalistColumnsResponseData.length; i++) {
- data.push({ id: this.datalistColumnsResponseData[i].ColumnId, text: this.datalistColumnsResponseData[i].AliasName });
- }
- return data;
- }
- bindSearchColumns() {
- var searchcolumns = this.SearchColumns.split('|');
- var SearchCols = [];
- for (var s = 0; s < searchcolumns.length; s++) {
- if (searchcolumns[s] != "") {
- let SearchCol_Index = this.selectedColumns.findIndex(x => x.AliasName == searchcolumns[s]);
- if (SearchCol_Index != -1) {
- var col = this.selectedColumns[SearchCol_Index].ColumnId;
- SearchCols.push(col);
- }
- }
- }
- $("#searchcolumns").val(searchcolumns).trigger("change");
- }
- changeDisplayname() {
- $("#txt_displayname").val($("#txt_reportname").val());
- }
- getSortColumnsStringify() {
- let SortArry = [];
- for (var i = 0; i < this.SortColumns.length; i++) {
- var col = this.SortColumns.find(x => x.SortIndex == i);
- if (col)
- SortArry.push({ Name: col.DisplayText, Order: col.SortOrder });
- }
- return SortArry.length ? JSON.stringify(SortArry) : "";
- }
- bindConnectedReportsSelect2(id) {
- var url = _appsettings.server_url() + '/apis/v4/unibase/platform/analytics/reportsautocompletevalueasuniqueid';
- AutoCompleteHelper.getHelper().Create(id, "hfReportAutoComplete", url, null);
- }
- removeAndUpdateStringfiedSortColumns(AliasName) {
- let index = this.SortColumns.findIndex(i => i.DisplayText === AliasName);
- if (index != -1) {
- this.SortColumns.splice(index, 1);
- let item = `#sort_selected_columns #dsl_column_${AliasName}`;
- $(item).remove();
- this.stringifyed_SortColumns = this.getSortColumnsStringify();
- }
- }
- isDownload(columnId, aliasName) {
- var instance = this;
- let index = instance.getIndexByAliasName_selectedColumnsArray(aliasName);
- if (index > -1) {
- if ($("#isDownload_" + columnId).prop("checked") == true) {
- instance.selectedColumns[index].IsDownload = true;
- }
- else {
- instance.selectedColumns[index].IsDownload = false;
- }
- }
- }
- isNumFormatting(columnId, aliasName) {
- var instance = this;
- let index = instance.getIndexByAliasName_selectedColumnsArray(aliasName);
- if (index > -1) {
- if ($("#isNumFormatting_" + columnId).prop("checked") == true) {
- instance.selectedColumns[index].IsNumFormatting = true;
- }
- else {
- instance.selectedColumns[index].IsNumFormatting = false;
- }
- }
- }
- isRowTotal(columnId, aliasName) {
- var instance = this;
- let index = instance.getIndexByAliasName_selectedColumnsArray(aliasName);
- if (index > -1) {
- if ($("#isRowTotal_" + columnId).prop("checked") == true) {
- instance.selectedColumns[index].IsRowTotal = true;
- }
- else {
- instance.selectedColumns[index].IsRowTotal = false;
- }
- }
- }
- isImageUrl(columnId, aliasName) {
- var instance = this;
- let index = instance.getIndexByAliasName_selectedColumnsArray(aliasName);
- if (index > -1) {
- if ($("#isimageurl_" + columnId).prop("checked") == true) {
- instance.selectedColumns[index].IsImageUrl = true;
- }
- else {
- instance.selectedColumns[index].IsImageUrl = false;
- }
- }
- }
- updateDynamicFilterIndex() {
- $("#dynamic-list-group-wrapper").children().each((i, e) => {
- let colAliasName = $(e).data("isfilterablecolumn");
- if (colAliasName) {
- let idx = this.dynamicFilters.findIndex(x => x.IsFilterableColumn == colAliasName);
- if (idx != -1) {
- this.dynamicFilters[idx].Index = i;
- }
- }
- });
- }
- updateInternalReportCb(isInternalreport, disabled) {
- $("#internalreport_checkbox").prop('checked', isInternalreport).attr("disabled", disabled);
- }
- togglePinDynamicFilters() {
- const instance = this;
- const filter = instance.dynamicFilters.find(x => x.IsRequired === true);
- if (filter) {
- $('#pindynamicfilters_checkbox').prop({ 'checked': true, 'disabled': true });
- }
- else if (!instance.pinDynamicFilters) {
- $('#pindynamicfilters_checkbox').prop({ 'checked': false, 'disabled': false });
- }
- else {
- $('#pindynamicfilters_checkbox').prop('disabled', false);
- }
- }
- static Instance() {
- if (this.rb_instance === undefined) {
- this.rb_instance = new ReportBuilder();
- }
- return this.rb_instance;
- }
- }
- Reports.ReportBuilder = ReportBuilder;
- })(Reports = Analytics.Reports || (Analytics.Reports = {}));
- })(Analytics = Platform.Analytics || (Platform.Analytics = {}));
- })(Platform = Unibase.Platform || (Unibase.Platform = {}));
- })(Unibase || (Unibase = {}));
|