123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- var Unibase;(function(Unibase){let Platform;(function(Platform){let Apps;(function(Apps){let Components;(function(Components){class AppBuilder extends Platform.Core.BaseComponent{constructor(){super();this.installedappid=0;this.parameters="";this.recordid=0;this.appmanager=Apps.Managers.AppManager.Instance();this.reportmanager=Unibase.Platform.Analytics.Managers.ReportManager.Instance();this.permissionmanager=Unibase.Platform.Permissions.Managers.PermissionManager.Instance()}cssFiles(){return[]}init(containerid){this.Dependentapp(containerid)}jsFiles(){return["bundle/index.appbuilder.js"]}html(){return`<form id="frmUnibase_CreateApp" data-validate="parsley" data-isdynamic="false"><div class="card bg-light"><div class="b-b bg-white card-header header"><strong class="text-dark title" id="lbl_title">Create App</strong></div>
- <div data-simplebar class="card-body simple-scroll-bar scrollable" id="divCreateApp"><div id="div_appmessage"></div><div class="bg-white card"><div id="unibase_ValidationSummary" class="clear"></div><div class="card-body">
- <div class="row"><div class="col-sm-6"><div class="floating-label-form-group"><label for="txt_FriendlyName" class="font-bold">App Title<span class="text-danger"> *</span></label><input type="text" id="txt_FriendlyName" class="form-control floating-label-control required" data-isdynamic="false" placeholder="App Title *" data-placeholder="Enter App Title" data-label="App Title *" autocomplete="off"/></div></div>
- <div class="col-sm-6"><div class="floating-label-form-group div_IconGroupName" id="div_IconMargin"><label for="txt_IconName" class="font-bold">Icon Name<span class="text-danger"> *</span></label><input type="text" id="txt_IconName" class="form-control floating-label-control required tokenable" data-isdynamic="false" placeholder="Icon Name *" data-placeholder="Enter Icon Name" data-label="Icon Name *" autocomplete="off"><input type='hidden' id='txtfafaIcon'/><div class='div_GroupIcon'></div></div></div></div>
- <div class='col-sm-12 hidden div_Icons' id='icons'><div id='appicons' class='panel panel-default'>
- <ul class='list-group no-radius m-b-none list-group-item no-border icon-list'></ul></div></div>
- <div class="row"><div class="col-sm-6"><div class="input-group"><label for="companyname" class="font-bold">Company Name<span class="text-danger">*</span></label><select id="txtAutoComplete_Company" class="form-control text-control required" style="width:100%;" placeholder = "Company Name" data-placeholder="Company Name" data-label="" data-istagselect="true" onchange="Unibase.Platform.Apps.Components.AppBuilder.Instance().Company();" ></select>
- <input type="hidden" id="hfAutoComplete_Company" class="hfAutoCompleteId_Company' form-control value-control" data-isdynamic="true"/>
- </div></div>
- <div class="col-sm-6"><div class="input-group"><label for="" class="font-bold">Module Type <span class="text-danger">*</span></label><select id="txtAutoComplete_ModuleType" class="form-control text-control required" style="width:100%;" placeholder = "Module Type" data-placeholder="Module Type" data-label="" data-istagselect="true" disabled="true" onchange="Unibase.Platform.Apps.Components.AppBuilder.Instance().ModuleType();"></select>
- <input type="hidden" id="hfAutoComplete_ModuleType" class="hfAutoComplete_ModuleType' form-control value-control" data-isdynamic="true"/>
- </div></div>
- </div>
- <div class="row">
- <div class="col-sm-6"><div class="input-group"><label for="" class="font-bold">Module <span class="text-danger">*</span></label><select id="txtAutoComplete_Module" class="form-control text-control required" style="width:100%;" placeholder = "Module" data-placeholder="Module" data-label="" data-istagselect="true" disabled="true" onchange="Unibase.Platform.Apps.Components.AppBuilder.Instance().Module();"></select>
- <input type="hidden" id="hfAutoComplete_Module" class="hfAutoComplete_Module' form-control value-control" data-isdynamic="true"/></div></div>
- <div class="col-sm-6 div_Enabledefault" style="margin-top:50px"><strong>Enable Defaults</strong><label class="switch pull-right"><input id="chkEnableDefaults" data-group="" style="margin-top:50px" type="checkbox" checked><span></span> </label>
- </div>
- </div>
-
- <div class="row div_table">
- <div class="col-sm-6"><div class="floating-label-form-group"><label for="txt_TableName" class="font-bold">Table Name<span class="text-danger"> *</span></label>
- <input type="text" id="txt_TableName" class="form-control floating-label-control required" data-isdynamic="false" placeholder="TableName *" data-placeholder="Enter TableName" data-label="TableName *" autocomplete="off"/></div></div>
- <div class="col-sm-6"><div class="floating-label-form-group" ><label for="" class="font-bold">Primary Key<span class="text-danger"> *</span>
- </label><input type="text" id="txt_PrimaryKey" class="form-control floating-label-control required" data-isdynamic="false" placeholder="Primary Key *" data-placeholder="Enter Primary Key" data-label="Primary Key *" autocomplete="off">
- </div></div>
- </div>
- <div class="row">
- <div class="col-sm-6"><div class="floating-label-form-group"><label for="" class="font-bold">App Color<span class="text-danger"> *</span>
- </label><input type="text" id="txt_AppColor" class="form-control floating-label-control required" data-isdynamic="false" placeholder="App Color *" data-placeholder="Enter App Color" data-label="App Color *" autocomplete="off">
- </div></div>
- <div class="col-sm-6 div_appdoctypes hidden"><div class="input-group"><label for="lblType" class="font-bold">Default DocType </label> <select id="Autocomplete_AppDocTypes" class="form-control value-control" style="width:100%;" placeholder = "App DocTypes" data-placeholder="App DocTypes" data-label="" data-istagselect="true"></select>
- <input type="hidden" id="hfAutoComplete_appdoctypes" class="hfAutoComplete_appdoctypes' form-control value-control" data-isdynamic="true"/>
- </div></div>
-
- <div class="col-sm-4 div_appimage"><div class="floating-label-form-group"><label for="lblType" class="font-bold">App Image </label>
- <input type="file" id="txt_AppImage" class="form-control" data-isdynamic="false" placeholder="App Image" data-placeholder="Choose Image" data-label="App Image" autocomplete="off" onchange = "Unibase.Platform.Apps.Components.AppBuilder.Instance().loadImage(event)">
- </div></div>
- <div class="div_image col-sm-2"></div></div>
-
- <div class="card-body"><div class="row"><div class="col-sm-12"><div class="floating-label-form-group divSvgimage">
- <label for="" class="font-bold">Svg Image<span class="text-danger"></span>
- </label><input type="text" id="txt_SvgImage" class="form-control floating-label-control " data-isdynamic="false" placeholder="Svg Img" data-placeholder="Svg Image " data-label=" Svg Image" autocomplete="off">
- </div></div></div></div>
-
-
-
-
-
- <div class="row hidden div_dispname_revname " >
- <div class="col-sm-6 "><div class="floating-label-form-group"><label for="" class="font-bold">Display Name<span class="text-danger"></span>
- </label><input type="text" id="txt_DisplayName" class="form-control floating-label-control " data-isdynamic="false" placeholder="Display Name" data-placeholder="Enter Display Name" data-label=" Display Name" autocomplete="off">
- </div></div>
- <div class="col-sm-6 "><div class="floating-label-form-group"><label for="" class="font-bold">Reverse Name<span class="text-danger"></span>
- </label><input type="text" id="txt_ReverseName" class="form-control floating-label-control " data-isdynamic="false" placeholder="Reverse Name" data-placeholder="Enter Reverse Name" data-label=" Reverse Name" autocomplete="off">
- </div></div>
- </div>
- <div class="row hidden div_roles"><div class="col-sm-6"><div class="input-group"><label for="lblRoles"
- class="font-bold">Roles</label> <select id="Select2_Roles" class="form-control value-control" style="width:100%;
- " placeholder = "Roles" data-placeholder="Roles" data-label="" data-istagselect="true" multiple="multiple"/></select>
- <input type="hidden" id="hfSelect2_Roles" class="hfSelect2_Roles' form-control value-control" data-isdynamic="true"/>
- </div></div></div>
- <div class="row">
- <div class="col-sm-6 div_stages" style="margin-top:50px"><strong>Enable Stage</strong><label class="switch pull-right"><input id="chkStageEnable" data-group="" style="margin-top:50px" type="checkbox"><span></span> </label></div>
-
- <div class="col-sm-6 div_isSyncEnabled d-none" style="margin-top:50px"><strong>Enable Sync</strong><label class="switch pull-right"><input id="chkSyncEnabled" data-group="" style="margin-top:50px" type="checkbox"><span></span> </label></div>
-
- <div class="col-sm-6 div_issystemlock d-none" style="margin-top:50px"><strong>Enable System Lock</strong><label class="switch pull-right"><input id="chkSystemlock" data-group="" style="margin-top:50px" type="checkbox"><span></span> </label></div>
-
- <div class="col-sm-6 hidden" id="div_LockAppliedOn"><div class="input-group"><label for="lblLockappliedon" class="font-bold">LockAppiedOn</label> <select id="Autocomplete_LockAppliedOn" class="form-control value-control" style="width:100%;" placeholder = "LockAppliedOn" data-placeholder="LockAppliedOn" data-istagselect="true" onchange=""/></select>
- <input type="hidden" id="hfAutoComplete_LockAppliedOn" class="hfAutoComplete_LockAppliedOn' form-control value-control" data-isdynamic="true"/>
- </div></div>
-
- <div class="col-sm-6 div_isSeriesExport d-none" style="margin-top:50px"><strong>Enable Series Export</strong><label class="switch pull-right"><input id="chkSeriesExport" data-group="" style="margin-top:50px" type="checkbox"><span></span> </label></div>
-
- <div class="col-sm-6 div_isPermissionsExport d-none" style="margin-top:50px"><strong>Enable Permissions Export</strong><label class="switch pull-right"><input id="chkPermissionsExport" data-group="" style="margin-top:50px" type="checkbox"><span></span> </label></div>
- </div>
- <div class="row">
- <div class="col-sm-12" style="margin-top:50px"><a href="javascript:;" id="link_MoreOptions" class="pull-right">More Options</a><a href="javascript:;" id="link_LessOptions" class="pull-right hidden">Less Options</a></div></div>
- <div class="row hidden div_moreoptions"><div class="col-sm-6"><div class="input-group"><label for="lblAppproviderType" class="font-bold">AppProvider Type </label> <select id="Autocomplete_AppproviderType" class="form-control value-control" style="width:100%;" placeholder = "AppProvider Type" data-placeholder="AppProvider Type" data-label="" data-istagselect="true" onchange="Unibase.Platform.Apps.Components.AppBuilder.Instance().AppProviderType();"/></select>
- <input type="hidden" id="hfAutoComplete_Appprovidertype" class="hfAutoComplete_Appprovidertype' form-control value-control" data-isdynamic="true"/>
- </div></div>
-
- <div class="col-sm-6"><div class="input-group"><label for="lblParentApp" class="font-bold">ParentApp </label> <select id="Autocomplete_ParentApp" class="form-control value-control" style="width:100%;" placeholder = "ParentApp" data-placeholder="ParentApp" data-istagselect="true" onchange=""/></select>
- <input type="hidden" id="hfAutoComplete_ParentApp" class="hfAutoComplete_ParentApp' form-control value-control" data-isdynamic="true"/>
- </div></div>
- <div class="col-sm-6 mt-3"><div class="input-group"><label for="lblAppType" class="font-bold">AppType
- </label> <select id="Autocomplete_AppType" class="form-control value-control" style="width:100%;" placeholder = "AppType" data-placeholder="AppType" data-istagselect="true" onchange=""/></select>
- <input type="hidden" id="hfAutoComplete_AppType" class="hfAutoComplete_AppType' form-control value-control" data-isdynamic="true"/>
- </div></div>
- </div>
- <div class="row hidden div_dependentapps"><div class="col-sm-6"><div class="input-group"><label for="lblAppproviderType" class="font-bold">Dependent Apps </label> <select id="Select2_DependentApps" class="form-control value-control" style="width:100%;" placeholder = "Dependent App" data-placeholder="Dependent Apps" data-label="" data-istagselect="true" multiple="multiple"/></select>
- <input type="hidden" id="hfSelect2_Dependentapps" class="hfSelect2_Dependentapps' form-control value-control" data-isdynamic="true"/>
- </div></div></div>
- </div></div>
- <div class="bg-white card div_moreoptions1 hidden" id=" div_moreoptions1"><div class="card-header">
- <div class="row col-sm-12 mt-2">
- <div class="TemplateText_Section card"><div class="card-header"> Template Text </div><div class="card-body"><div id="div_TemplateText" class="">
- <textarea class="" id="txt_DefaultWidgetTemplateText" placeholder="Template Text" rows="3" cols="112"></textarea>
- </div></div></div>
- </div>
- <div class="row">
- <div class="col-sm-6"><div class="input-group"><label for="lblReports" class="font-bold">Reports </label> <select id="Autocomplete_Report" class="form-control value-control" style="width:100%;" placeholder = "Reports" data-placeholder="Reports" data-istagselect="true" onchange=""/></select>
- <input type="hidden" id="hfAutoComplete_Report" class="hfAutoComplete_Report' form-control value-control" data-isdynamic="true"/>
- </div></div>
- <div class="col-sm-6"><div class="input-group" ><label for="lblParameter" class="font-bold">DefaultWidget Parameter</label> <select id="Sel_Dwparameter" class="form-control value-control" style="width:100%;" placeholder = "DefaultWidget Parameter data-placeholder="DefaultWidget Parameter" data-istagselect="true" data-isdynamic="true"></select>
- <input type="hidden" id="hfAutoComplete_Dwparam" class="hfAutoComplete_Dwparam' form-control value-control" data-isdynamic="true"/>
- </div></div>
- </div><br>
- <div class="row">
- <div class="col-sm-4"><div class="input-group" ><label for="lblReport" class="font-bold">Report Column1<span class="text-danger"> </span></label> <select id="Sel_Column1" class="form-control value-control" style="width:100%;" placeholder = "Reports Column1" data-placeholder="Reports Column1" data-istagselect="true" data-isdynamic="true"></select>
- <input type="hidden" id="hfAutoComplete_ReportColumn1" class="hfAutoComplete_ReportColumn1' form-control value-control" data-isdynamic="true"/>
- </div></div>
- <div class="col-sm-4"><div class="input-group" ><label for="lblReport" class="font-bold">Report Column2<span class="text-danger"> </span></label> <select id="Sel_Column2" class="form-control value-control" data-isdynamic="true" style="width:100%;" placeholder = "Reports Column2" data-placeholder="Reports Column2" data-istagselect="true" disabled="true"></select>
- <input type="hidden" id="hfAutoComplete_ReportColumn2" class="hfAutoComplete_ReportColumn2' form-control value-control" data-isdynamic="true"/>
- </div></div>
- <div class="col-sm-4"><div class="input-group" ><label for="lblReport" class="font-bold">Report Column3<span class="text-danger"> </span></label> <select id="Sel_Column3" class="form-control value-control" data-isdynamic="true" style="width:100%;" placeholder = "Reports Column3" data-placeholder="Reports Column3" data-istagselect="true" disabled="true"></select>
- <input type="hidden" id="hfAutoComplete_ReportColumn3" class="hfAutoComplete_ReportColumn3' form-control value-control" data-isdynamic="true"/>
- </div></div>
- </div>
- </div></div>
- <div class="bg-white card"><div class="card-header">Unique Key</div><div class="card-body"><div class="row"><div class="col-sm-11"><div class="alert alert-primary" id="txt_UniqueId"></div></div><div class="col-sm-1"><button id="Edit_UniqueKey" class="btn btn-secondary btn-sm mr-auto hidden">Edit</button>
- </div></div></div></div>
- <div class="bg-white card"><div class="card-header">Description</div><div class="card-body"><div class="row"><div class="col-sm-12"><div class="floating-label-form-group divDiscription"><textarea class="summernote form-control value-control floating-label-control required" id="txt_Description" name="" rows=""></textarea></div></div>
- </div></div></div></div>
- <div class="bg-white card-footer footer" id="CreateAppFooter"><button id="btn_CloseApp" class="btn btn-secondary btn-sm mr-auto">Close</button><button id="btn_SaveApp" class="btn btn-primary btn-sm pull-right">Save</button></div></div></form>`}load(id,containerid){Unibase.Platform.Helpers.FileCacheHelper.Instance().addCacheFiles(["platform/apps/components/appbuilder.js","platform/apps/enums/dependenttype.js","platform/datasources/managers/doctypemanager.js","platform/datasources/managers/interfaces/idoctypemanager.js","platform/apps/enums/apptype.js"]);var instance=this;instance.recordid=id;$("#btn_CloseApp").click(function(){$("#"+containerid).modal("hide");$("#"+containerid).remove()});$("#txt_FriendlyName").keyup(function(){id==0&&AppBuilder.Instance().AppTitle(id)});$("#btn_SaveApp").click(function(){let result=Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation("frmUnibase_CreateApp");if(result==!1)return $($(".summernote").summernote("code")).text()==""?($(".divDiscription").css("border-color","red"),MessageHelper.Instance().showError("Mandatory Fields are missing","div_appmessage"),!1):($(".divDiscription").css("border-color",""),!1);AppBuilder.Instance().SaveApp(id,containerid)});$("#chkEnableDefaults").on("change",function(){$("#chkEnableDefaults").prop("checked")?($(".div_table").removeClass("hidden"),$(".div_stages").removeClass("hidden")):($(".div_table").addClass("hidden"),$("#txt_PrimaryKey").removeClass("required"),$("#txt_TableName").removeClass("required"),$(".div_stages").addClass("hidden"))});$("#txt_IconName").focus(function(){$(".div_Icons").fadeIn();$("#icons").toggleClass("hidden");$(".div_Icons").removeClass("hidden")});$("#txt_IconName").focusout(function(){$(".div_Icons").fadeOut()});$(".summernote").summernote({toolbar:[],placeholder:"Enter Description *"});$(".summernote1").summernote({toolbar:[],placeholder:"Svg Image "});$(".divDiscription").keypress(function(){$(".divDiscription").css("border-color","")});$(".divDiscription").keydown(function(){var contents=$(".summernote").summernote("code"),plainText=$("<p>"+contents+"<\/p>").text();plainText!=""&&plainText.length==1&&$(".divDiscription").css("border-color","red")});$("#chkStageEnable").on("change",function(){$("#chkStageEnable").prop("checked")?id!=0&&$("#Autocomplete_AppDocTypes").addClass("required"):$("#Autocomplete_AppDocTypes").removeClass("required")});instance.appdata(id);instance.loadIcons();$("#chkSystemlock").change(function(){$("#chkSystemlock").prop("checked")?$("#div_LockAppliedOn").removeClass("hidden"):$("#div_LockAppliedOn").addClass("hidden")})}loadImage(event){Unibase.Platform.Helpers.FileHelper.Instance().getBase64(event).then(function(response){Unibase.Platform.Apps.Components.AppBuilder.FileInfo=response});$(".div_image").empty();var url=URL.createObjectURL(event.target.files[0]),imagetag='<img class="img-fluid" src = "'+url+'"width="60" height="50" style="margin-top:10px" ><\/img>';$(".div_image").append(imagetag)}loadForm(FormId,Pk_Value){this.addprovider(Pk_Value)}addprovider(Pk_Value){this.navigationHelper.popup(Pk_Value,"",Unibase.Platform.Apps.Components.AppBuilder.Instance(),null,Platform.Helpers.Size.Large)}loadAppForm(iscreate){var Pk_Value=0;iscreate||(Pk_Value=Unibase.Themes.Providers.DetailHelper.recordId);this.navigationHelper.popup(Pk_Value,"",Unibase.Platform.Apps.Components.AppBuilder.Instance(),null,Platform.Helpers.Size.Large)}appdata(Pk_Value){var instance,defaultdoctypeid,url,appTypeoption;Pk_Value!=0&&(instance=this,defaultdoctypeid=0,this.appmanager.getInstallApp(Pk_Value).then(function(response){var imagetag,appdoctypeoptions,defaultdoctypeid,url,lockappliedoptions,appprovidertypeoption,apptypeoption,roleids,ids,i,option1,option2,option3;if(response.result.ReportId!=0&&instance.getreportcolumns(response.result.ReportId),instance.appmanager.getdependentApps(Pk_Value).then(function(response){var ids,options,i;if(response.result.length>0){for(ids=[],options="",i=0;i<response.result.length;i++)ids.push(response.result[i].DependentId),options+='<option value="'+response.result[i].DependentId+'">'+response.result[i].AppTitle+"<\/option>";$("#Select2_DependentApps").append(options).val(ids).trigger("change")}}),$("#lbl_title").text("Edit App"),$(".div_Enabledefault").remove(),$(".div_dispname_revname").removeClass("hidden"),$(".div_isSeriesExport").removeClass("d-none"),$(".div_isPermissionsExport").removeClass("d-none"),$(".div_issystemlock").removeClass("d-none"),$(".div_isSyncEnabled").removeClass("d-none"),$("#txt_DisplayName,#txt_ReverseName").keypress(function(){$(".div_roles").removeClass("hidden")}),response.result.EnableStage&&($("#chkStageEnable").prop("checked",!0),$("#chkStageEnable").attr("disabled","true"),$("#Autocomplete_AppDocTypes").attr("required","true")),response.result.IsSystemLock&&($("#chkSystemlock").prop("checked",!0).trigger("change"),$("#chkSystemlock").attr("disabled","true"),$("#Autocomplete_AppDocTypes").attr("required","true")),response.result.EnableSeriesExport&&$("#chkSeriesExport").prop("checked",!0),response.result.EnablePermissionsExport&&$("#chkPermissionsExport").prop("checked",!0),$("#chkSyncEnabled").prop("checked",response.result.IsSyncEnabled).trigger("change"),response.result.ImageUrl!=""&&(imagetag='<img class="rounded-circle img-fluid" src = "'+response.result.ImageUrl+'" width="60" height="50" style="margin-top:10px" ><\/img>',$(".div_image").append(imagetag)),response.result.DefaultDocTypeId!=0&&(appdoctypeoptions=new Option(response.result.DocTypeTableName,response.result.DefaultDocTypeId.toString(),!0),$("#Autocomplete_AppDocTypes").append(appdoctypeoptions),$("#Autocomplete_AppDocTypes").attr("disabled","true"),defaultdoctypeid=response.result.DefaultDocTypeId,defaultdoctypeid=defaultdoctypeid,url=_appsettings.server_url()+"/apis/v4/unibase/platform/doctypes/docpropertiesautocomplete/doctypeid/"+defaultdoctypeid,AutoCompleteHelper.getHelper().Create("#Autocomplete_LockAppliedOn","#hfAutoComplete_LockAppliedOn",url,function(){}),response.result.LockAppliedOnName!=null&&(lockappliedoptions=new Option(response.result.LockAppliedOnName,response.result.LockAppliedOn.toString(),!0),$("#Autocomplete_LockAppliedOn").append(lockappliedoptions),$("#Autocomplete_LockAppliedOn").attr("disabled","true"))),$(".div_appdoctypes").removeClass("hidden"),$(".div_table").remove(),$("#txt_FriendlyName").val(response.result.AppTitle),$("#txt_FriendlyName").attr("disabled","true"),$("#txt_IconName").val(response.result.IconName),$("#txt_DisplayName").val(response.result.DisplayText),$("#txt_ReverseName").val(response.result.ReverseText),$("#txt_AppColor").val(response.result.AppColor),$("#txt_SvgImage").val(response.result.SvgIconUrl),$(".summernote").summernote("code",response.result.Description),appprovidertypeoption=new Option(Apps.Enums.AppProviderType[Number(response.result.AppProviderTypeId)],response.result.AppProviderTypeId.toString(),!0),$("#Autocomplete_AppproviderType").append(appprovidertypeoption),apptypeoption=new Option(Apps.Enums.AppType[Number(response.result.AppTypeId)],response.result.AppTypeId.toString(),!0),$("#Autocomplete_AppType").append(apptypeoption),$("#txt_UniqueId").text(response.result.UniqueId),$("#txt_DefaultWidgetTemplateText").val(response.result.DefaultWidgetTemplateText),response.result.ReportId==0&&$("#chkEnableDefaults").prop("checked",!1),response.result.RoleIds!=""&&response.result.RoleIds!=null)for($(".div_roles").removeClass("hidden"),roleids=response.result.RoleIds.split("|"),ids=[],i=0;i<roleids.length;i++){let roleid=Number(roleids[i]);if(ids.push(roleid),roleid==0){$("#Select2_Roles").append(`<option value="${roleid}">All</option>`).val(ids).trigger("change");continue}instance.permissionmanager.getRole(roleid).then(function(roleresponse){var options=`<option value="${roleid}">${roleresponse.result.RoleName}</option>`;$("#Select2_Roles").append(options).val(ids).trigger("change")})}option1=new Option(response.result.DevOrgName,response.result.DevOrgId.toString(),!0);$("#txtAutoComplete_Company").append(option1);$("#txtAutoComplete_Company").attr("disabled","true");option2=new Option(response.result.ModuleTypeName,response.result.ModuleTypeId.toString(),!0);$("#txtAutoComplete_ModuleType").append(option2);option3=new Option(response.result.ModuleName,response.result.ModuleId.toString(),!0);$("#txtAutoComplete_Module").append(option3);response.result.ParentAppId!=0&&instance.appmanager.getInstallApp(Number(response.result.ParentAppId)).then(function(parentappresponse){var parentappoption=new Option(parentappresponse.result.AppTitle,parentappresponse.result.InstalledAppId.toString(),!0);$("#Autocomplete_ParentApp").append(parentappoption)});response.result.ReportId!=0&&instance.reportmanager.getReportById(Number(response.result.ReportId)).then(function(reportresponse){var reportoption=new Option(reportresponse.result.ReportName,reportresponse.result.ReportId.toString(),!0);$("#Autocomplete_Report").append(reportoption)});$("#Autocomplete_Report").on("change",function(){$("#Sel_Column1").removeAttr("disabled");$("#Sel_Column2").attr("disabled","true");$("#Sel_Column3").attr("disabled","true");var repportvalue=Number($("#Autocomplete_Report").val()),reporttext=$("#Autocomplete_Report").text();repportvalue!=0&&instance.getreportcolumns(repportvalue)});$("#Sel_Column1").on("change",function(){var value=$("#Sel_Column1").val(),text=$("#Sel_Column1 option:selected").text(),htmlString,htmltext,template;text!=""&&($("#Sel_Column2").removeAttr("disabled"),$("#Sel_Column1").attr("disabled","true"),htmlString=$($("#txt_DefaultWidgetTemplateText").val()),htmltext=htmlString,htmltext.find("#Column1").text("{{"+text+"}}"),template=htmltext.html().toString(),$("#txt_DefaultWidgetTemplateText").val("<div class='app_defaultwidget'>"+template+"<\/div>"))});$("#Sel_Column2").on("change",function(){var value=$("#Sel_Column2").val(),text=$("#Sel_Column2 option:selected").text(),html2,htmltext2,template2;text!=""&&($("#Sel_Column3").removeAttr("disabled"),$("#Sel_Column2").attr("disabled","true"),html2=$($("#txt_DefaultWidgetTemplateText").val()),htmltext2=html2,htmltext2.find("#Column2").text("{{"+text+"}}"),template2=htmltext2.html().toString(),$("#txt_DefaultWidgetTemplateText").val("<div class='app_defaultwidget'>"+template2+"<\/div>"))});$("#Sel_Column3").on("change",function(){var text=$("#Sel_Column3 option:selected").text(),html3,htmltext3,template3;if(text!=""){$("#Sel_Column3").attr("disabled","true");var templte3=$("#txt_DefaultWidgetTemplateText").val(),htmlObject3=$($("#txt_DefaultWidgetTemplateText").val()),temp3=htmlObject3.find("#Column3").text();if(temp3=="")return MessageHelper.Instance().showError("Please add third column in templatetext","div_appmessage"),!1;html3=$($("#txt_DefaultWidgetTemplateText").val());htmltext3=html3;htmltext3.find("#Column3").text("{{"+text+"}}");template3=htmltext3.html().toString();$("#txt_DefaultWidgetTemplateText").val("<div class='app_defaultwidget'>"+template3+"<\/div>")}})}));$("#link_MoreOptions").click(function(){$(".div_moreoptions").removeClass("hidden");$("#link_MoreOptions").addClass("hidden");$("#link_LessOptions").removeClass("hidden");Pk_Value!=0&&($(".div_moreoptions1").removeClass("hidden"),Number($("#Autocomplete_AppproviderType").val())==Apps.Enums.AppProviderType.Dependent&&$(".div_dependentapps").removeClass("hidden"))});$("#link_LessOptions").click(function(){$(".div_moreoptions").addClass("hidden");$("#link_MoreOptions").removeClass("hidden");$("#link_LessOptions").addClass("hidden");$(".div_dependentapps").addClass("hidden");Pk_Value!=0&&($(".div_moreoptions1").addClass("hidden"),$(".div_dependentapps").addClass("hidden"))});url=_appsettings.server_url()+"/apis/v4/unibase/platform/apps/getcompanynames";AutoCompleteHelper.getHelper().Create("#txtAutoComplete_Company","#hfAutoCompleteId_Company",url,function(){});url=_appsettings.server_url()+"/apis/v4/unibase/platform/apps/getappprovidertype";AutoCompleteHelper.getHelper().Create("#Autocomplete_AppproviderType","#hfAutoComplete_Appprovidertype",url,function(){});url=_appsettings.server_url()+"/apis/v4/unibase/platform/apps/getmoduletypes";AutoCompleteHelper.getHelper().Create("#txtAutoComplete_ModuleType","#hfAutoComplete_ModuleType",url,function(){});url=_appsettings.server_url()+"/apis/v4/unibase/platform/apps/getmodulenames/devorgid/0/moduletypeid/0";AutoCompleteHelper.getHelper().Create("#txtAutoComplete_Module","#hfAutoComplete_Module",url,function(){});url=_appsettings.server_url()+"/apis/v4/unibase/platform/apps/getdependentapps";AutoCompleteHelper.getHelper().Create("#Select2_DependentApps","#hfSelect2_Dependentapps",url,function(){});url=_appsettings.server_url()+"/apis/v4/unibase/platform/apps/parentapps";AutoCompleteHelper.getHelper().Create("#Autocomplete_ParentApp","#hfAutoComplete_ParentApp",url,function(){});url=_appsettings.server_url()+"/apis/v4/unibase/platform/analytics/reports";AutoCompleteHelper.getHelper().Create("#Autocomplete_Report","#hfAutoComplete_Report",url,function(){});url=_appsettings.server_url()+"/apis/v4/unibase/platform/doctypes/appdoctypesautocomplete/installedappid/"+Pk_Value;AutoCompleteHelper.getHelper().Create("#Autocomplete_AppDocTypes","#hfAutoComplete_appdoctypes",url,function(){});url=_appsettings.server_url()+"/apis/v4/unibase/platform/roles/getroles";AutoCompleteHelper.getHelper().Create("#Select2_Roles","#hfSelect2_Roles",url,function(){});url=_appsettings.server_url()+"/apis/v4/unibase/platform/apps/getapptype";AutoCompleteHelper.getHelper().Create("#Autocomplete_AppType","#hfAutoComplete_AppType",url,function(){});Pk_Value==0&&(appTypeoption=new Option(Apps.Enums.AppType[Apps.Enums.AppType.App],Apps.Enums.AppType.App.toString(),!0),$("#Autocomplete_AppType").append(appTypeoption))}getreportcolumns(ReportId){$("#Sel_Column1 option").remove();$("#Sel_Column2 option").remove();$("#Sel_Column3 option").remove();$("#Sel_Dwparameter option").remove();var primarykey=0,primarykeyname="",options;ReportId!=0&&this.reportmanager.getColumns(ReportId).then(function(response){var Data=[],columns;Data.push({id:0,text:"select"});for(let i=0;i<response.result.length;i++)columns=response.result[i],columns.IsPrimaryKey&&(primarykey=columns.ReportColumnId,primarykeyname=columns.ReportColumnName,options=new Option(primarykeyname,primarykey.toString()),$("#Sel_Dwparameter").append(options)),Data.push({id:columns.ReportColumnId,text:columns.ReportColumnName});$("#Sel_Dwparameter,#Sel_Column1,#Sel_Column2,#Sel_Column3").select2({placeholder:"Select Column",data:Data})})}loadIcons(){var html="",Icons=[{Name:"APP Store",Icon:" fa fa-flask"},{Name:"List",Icon:"fa fa-list"},{Name:"Arrow",Icon:"fa fa-arrow-right"},{Name:"Bank",Icon:"fa fa-bank"},{Name:"Invoice",Icon:"fa fa-files-o"},{Name:"CRM",Icon:"fa fa-users"},{Name:"Shopping",Icon:"fa fa-shopping-cart"},{Name:"Overflow",Icon:"fa fa-stack-overflow"},{Name:"Money",Icon:"fa fa-money"},{Name:"Car",Icon:"fa fa-car"},{Name:"Building",Icon:"fa fa-building"},{Name:"Chart",Icon:"fa fa-bar-chart"},{Name:"Image",Icon:"fa fa-image"},{Name:"Settings",Icon:"fa fa-cog"},],i;for($(".icon-list").html('<li class="icon-item hidden"><\/li>'),html+='<li class="list-group-item icon-item"><div class="row"><div class="col-sm-12">',i=0;i<Icons.length;i++)html+=' <span class="fa-stack fa-2-5x m-t-sm"><a href="javascript:;" class="list-group-anchor" onclick="Unibase.Platform.Apps.Components.AppBuilder.Instance().AssginIcon(\''+Icons[i].Name+"','"+Icons[i].Icon+'\');"><i class="fa fa-circle fa-stack-2x text-success dker"><\/i><i class="'+Icons[i].Icon+' fa-stack-1x text-white"><\/i><\/a><\/span>';html+="<\/div><\/div><\/li>";$(".icon-item:last").after(html)}AssginIcon(Name,Icon){$(".div_GroupIcon").html("");$("#txtfafaIcon").val(Icon);$("#txt_IconName").val(Icon);var html='<span class="fa-stack fa-2-5x m-t-sm"><i class="fa fa-circle fa-stack-2x text-success dker"><\/i><i class=" fa '+Icon+' fa-stack-1x text-white"><\/i><\/span><a class="pull-right" onclick="Unibase.Platform.Apps.Components.AppBuilder.Instance().RemoveImage();"><i class="m-r fa fa-close text-danger fa-lg" id="close" onclick=""><\/i><\/a>';$(".iconname").addClass("hidden");$(".div_GroupIcon").append(html);$("#icons").toggleClass("hidden");$("#txtfafaIcon").val()!=""?($(".tokenable").addClass("hidden"),$(".div_IconGroupName").addClass("floating-label-form-group-with-value")):$(".div_IconGroupName").removeClass("floating-label-form-group-with-value")}RemoveImage(){$(".div_GroupIcon").html("");$(".iconname").removeClass("hidden");$(".tokenable").removeClass("hidden");$("#txt_IconName").val("");$(".div_IconGroupName").removeClass("floating-label-form-group-with-value");$("#div_IconMargin").css("margin-top","0px")}AppTitle(id){let apptitle=$("#txt_FriendlyName").val().toString().replace(/ /g,"");var uniqueid=$("#txt_UniqueId").text(),companynametext=$("#txtAutoComplete_Company option:selected").text(),ModuleText=$("#txtAutoComplete_ModuleType option:selected").text(),Module=$("#txtAutoComplete_Module option:selected").text();if(companynametext!=""&&companynametext!="null"&&ModuleText!=""&&ModuleText!="null"&&Module!=""&&Module!="null")$("#txt_UniqueId").text(companynametext+"_"+ModuleText+"_"+Module+"_"+apptitle+"_App_"+apptitle);else if(id!=0)return MessageHelper.Instance().showError("Please Arrange CompanyName,ModuleType and Module","div_appmessage"),!1}Company(){var companyname=Number($("#txtAutoComplete_Company").val()),companynametext=$("#txtAutoComplete_Company option:selected").text();$("#txtAutoComplete_ModuleType").val(0);$("#txtAutoComplete_Module").val(0);$("#txt_UniqueId").text("");companyname!=0&&($("#txtAutoComplete_ModuleType").removeAttr("disabled"),$("#txt_UniqueId").text(companynametext+"_"));$("#txt_UniqueId").attr("readonly","readonly")}ModuleType(){var companyname=Number($("#txtAutoComplete_Company").val()),Module=Number($("#txtAutoComplete_ModuleType").val()),ModuleText=$("#txtAutoComplete_ModuleType option:selected").text(),uniqueid=$("#txt_UniqueId").text(),url;Module!=0&&($("#txtAutoComplete_Module").removeAttr("disabled"),$("#txt_UniqueId").text(uniqueid+ModuleText+"_"));$("#txtAutoComplete_ModuleType").attr("disabled","true");url=_appsettings.server_url()+"/apis/v4/unibase/platform/apps/getmodulenames/devorgid/"+companyname+"/moduletypeid/"+Module;AutoCompleteHelper.getHelper().Create("#txtAutoComplete_Module","#hfAutoComplete_Module",url,function(){})}Module(){var Module=$("#txtAutoComplete_Module option:selected").text(),Modulevalue=Number($("#txtAutoComplete_Module option:selected").val()),uniqueid=$("#txt_UniqueId").text(),apptitle;Modulevalue!=0&&($("#txt_FriendlyName").val()!=""?(apptitle=$("#txt_FriendlyName").val().toString().replace(/ /g,""),$("#txt_UniqueId").text(uniqueid+Module+"_"+apptitle+"_App_"+apptitle)):(MessageHelper.Instance().showError("Please Enter AppTitle","div_appmessage"),$("#txtAutoComplete_Company").empty(),$("#txt_UniqueId").text(""),$("#txtAutoComplete_ModuleType").empty(),$("#txtAutoComplete_Module").empty()));$("#txtAutoComplete_Module").attr("disabled","true")}AppProviderType(){var providertype=$("#Autocomplete_AppproviderType option:selected").text(),providertypevalue=$("#Autocomplete_AppproviderType option:selected").val();providertype=="Dependent"?$(".div_dependentapps").removeClass("hidden"):$(".div_dependentapps").addClass("hidden")}Dependentapp(containerid){var instance=this;Unibase.Themes.Providers.DetailHelper.recordId!=0&&instance.appmanager.getAllApps(Unibase.Themes.Providers.DetailHelper.recordId).then(function(response){var html,data;$("."+containerid).empty();html='<ul class="list-group gutter list-group list-group-sp sortable ul_dependentapps">';for(let i=0;i<response.result.length;i++)data=response.result[i],html+='<li class="list-group-item box-shadow status-item group-item li_'+data.InstalledAppId+'"><input type="hidden" id="hfAppdependentid" value='+data.InstalledAppId+'><span class="pull-left media-xs mr-30"><i class="fa fa-sort text-muted fa mr-10"><\/i>'+data.AppIndex+'<\/span><div class="clear"><div class="header"> <label class="">'+data.AppTitle+"<\/label><\/div><\/div><\/div><\/li>";if(html+="<\/ul>",$("."+containerid).append(html),$.fn.sortable){$(".sortable").sortable();$(".sortable").on("sortupdate",function(){instance.UpdateAppIndex(containerid)})}})}UpdateAppIndex(containerid){var instance=this,ids="",postData;$("."+containerid).find(".list-group-item").each(function(){var id=$(this).find("#hfAppdependentid").val();id!=0&&(ids+=id+",")});ids!=""&&(postData={id:ids},instance.appmanager.updateAppIndex(postData).then(function(response){response.status!=Unibase.Data.Status.Error&&(instance.Dependentapp(containerid),MessageHelper.Instance().showSuccess(response.message,"div_message"))}))}fileEvent($event){const fileSelected=$event.target.files[0];Unibase.Platform.Apps.Components.AppBuilder.fileData=new FormData;Unibase.Platform.Apps.Components.AppBuilder.fileData.append(fileSelected.name,fileSelected)}exportApp(){var instance=this,recordid=Unibase.Themes.Providers.DetailHelper.recordId;instance.navigationHelper.showLoading();instance.appmanager.getInstallApp(recordid).then(function(appresponse){instance.appmanager.exportApp(recordid).then(function(response){if(response.status==Unibase.Data.Status.Error)return instance.navigationHelper.hideLoading(),MessageHelper.Instance().showError(response.message,"div_message"),!1;var filename=appresponse.result.AppTitle+".xml",xmltext=response.result,pom=document.createElement("a"),bb=new Blob([xmltext],{type:"text/plain"});pom.setAttribute("href",window.URL.createObjectURL(bb));pom.setAttribute("download",filename);pom.dataset.downloadurl=["text/plain",pom.download,pom.href].join(":");pom.draggable=!0;pom.classList.add("dragout");pom.click();instance.navigationHelper.hideLoading()})})}SaveApp(Pk_Value,containerid){var instance=this,appdependentlist=[],dependentid=$("#Select2_DependentApps").val()!=null?$("#Select2_DependentApps").val().toString().replace(/,/g,"|"):"0",apparray,roleids,nav;let dependenttype;dependentid!=""&&(dependenttype=Unibase.Platform.Apps.Enums.DependentType.Apps,apparray=[],apparray=dependentid.split("|"),$.each(apparray,function(index,value){var appdependentObj={AppDependentId:0,InstalledAppId:Pk_Value,DependentId:Number(value),DependentType:Number(dependenttype)};appdependentlist.push(appdependentObj)}));var defaultwidgetparameter="",imagepath=$("#txt_AppImage").val(),svgiconpath=$("#txt_SvgImage").val(),imageurl=imagepath.split(/(\\|\/)/g).pop(),svgicon=svgiconpath.split(/(\\|\/)/g).pop();if(Pk_Value!=0){if(Number($("#Sel_Dwparameter option:selected").val())==0)return MessageHelper.Instance().showError("Please Select Defaultwidget parameter","div_appmessage"),!1;Number($("#Sel_Dwparameter option:selected").val())!=0&&(defaultwidgetparameter=$("#Sel_Dwparameter option:selected").text()+":=:recordid")}roleids="";$("#Select2_Roles").val()!=null&&$("#Select2_Roles").val()!=""&&(roleids=$("#Select2_Roles").val().toString(),roleids=roleids.replace(/\,/g,"|"));var contents=$(".summernote").summernote("code"),plainText=$("<p>"+contents+"<\/p>").text(),content=$(".summernote1").summernote("code"),plaintext=$("<p>"+content+"<\/p>").text();let postData={InstalledAppId:Pk_Value,AppTitle:$("#txt_FriendlyName").val(),IconName:$("#txt_IconName").val(),AppImage:$("#txt_ImageFile").val(),AppColor:$("#txt_AppColor").val(),Description:plainText,UniqueId:$("#txt_UniqueId").text(),DevOrgId:Number($("#txtAutoComplete_Company").val()),DevOrgName:$("#txtAutoComplete_Company option:selected").text(),ModuleTypeName:$("#txtAutoComplete_ModuleType option:selected").text(),ModuleTypeId:Number($("#txtAutoComplete_ModuleType").val()),ModuleName:$("#txtAutoComplete_Module option:selected").text(),ModuleId:Number($("#txtAutoComplete_Module").val()),AppProviderTypeId:Number($("#Autocomplete_AppproviderType").val()),ParentAppId:Number($("#Autocomplete_ParentApp").val()),ReportId:Number($("#Autocomplete_Report").val()),AppKeyId:0,SvgIconUrl:$("#txt_SvgImage").val(),DefaultWidgetTemplateText:$("#txt_DefaultWidgetTemplateText").val(),DefaultWidgetParameters:defaultwidgetparameter,EnableStage:$("#chkStageEnable").prop("checked"),AppDependent:appdependentlist,EnableDefaults:$("#chkEnableDefaults").prop("checked"),TableName:$("#txt_TableName").val(),PrimaryKeyName:$("#txt_PrimaryKey").val(),IsDynamic:!0,DefaultDocTypeId:Pk_Value!=0?Number($("#Autocomplete_AppDocTypes").val()):0,ImageUrl:imageurl,DisplayText:$("#txt_DisplayName").val(),ReverseText:$("#txt_ReverseName").val(),RoleIds:roleids,FileData:Unibase.Platform.Apps.Components.AppBuilder.FileInfo,IsSystemLock:$("#chkSystemlock").prop("checked"),IsSyncEnabled:$("#chkSyncEnabled").prop("checked"),LockAppliedOn:Number($("#Autocomplete_LockAppliedOn").val()),EnableSeriesExport:$("#chkSeriesExport").prop("checked"),EnablePermissionsExport:$("#chkPermissionsExport").prop("checked"),AppTypeId:Number($("#Autocomplete_AppType").val()),ReportColumnId:Number($("#Sel_Dwparameter").val())};nav=Unibase.Platform.Helpers.NavigationHelper.Instance();Pk_Value!=0?(instance.navigationHelper.showLoading(),instance.appmanager.updateDynamicApp(postData).then(function(response){response.status==Unibase.Data.Status.Error?MessageHelper.Instance().showError(response.message,"div_appmessage"):(MessageHelper.Instance().showSuccess(response.message,"div_appmessage"),instance.appmanager.getMyApps(),$("#"+containerid).modal("hide"),$("#"+containerid).remove());instance.navigationHelper.hideLoading()})):(instance.navigationHelper.showLoading(),instance.appmanager.saveDynamicApp(postData).then(function(response){response.status==Unibase.Data.Status.Error?MessageHelper.Instance().showError(response.message,"div_appmessage"):(MessageHelper.Instance().showSuccess(response.message,"div_appmessage"),instance.appmanager.getMyApps(),$("#"+containerid).modal("hide"),$("#"+containerid).remove());instance.navigationHelper.hideLoading()}))}static Instance(){return this.instance===undefined&&(this.instance=new AppBuilder),this.instance}}AppBuilder.fileData=new FormData;Components.AppBuilder=AppBuilder})(Components=Apps.Components||(Apps.Components={}))})(Apps=Platform.Apps||(Platform.Apps={}))})(Platform=Unibase.Platform||(Unibase.Platform={}))})(Unibase||(Unibase={})),function(Unibase){let Platform;(function(Platform){let Apps;(function(Apps){let Enums;(function(Enums){let DependentType;(function(DependentType){DependentType[DependentType.Apps=1]="Apps";DependentType[DependentType.Reports=2]="Reports"})(DependentType=Enums.DependentType||(Enums.DependentType={}))})(Enums=Apps.Enums||(Apps.Enums={}))})(Apps=Platform.Apps||(Platform.Apps={}))})(Platform=Unibase.Platform||(Unibase.Platform={}))}(Unibase||(Unibase={})),function(Unibase){let Platform;(function(Platform){let Apps;(function(Apps){let Enums;(function(Enums){let AppType;(function(AppType){AppType[AppType.App=1]="App";AppType[AppType.Setting=2]="Setting";AppType[AppType.Configuration=3]="Configuration"})(AppType=Enums.AppType||(Enums.AppType={}))})(Enums=Apps.Enums||(Apps.Enums={}))})(Apps=Platform.Apps||(Platform.Apps={}))})(Platform=Unibase.Platform||(Unibase.Platform={}))}(Unibase||(Unibase={}));
|