using CacheMgr; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections; using System.Collections.Generic; using System.Configuration; using System.Data; using System.IO; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Threading; using System.Web; using System.Web.Script.Serialization; using System.Web.Services; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Xml; public partial class Tstruct : System.Web.UI.Page { #region Variable Declaration Util.Util util; public string proj = string.Empty; public string sid = string.Empty; public string language = string.Empty; public string trace = string.Empty; public string user = string.Empty; public string transId = string.Empty; public string AxRole = string.Empty; public string rid = string.Empty; public string searchVal = string.Empty; public string direction = "ltr"; public string classdir = "left"; public string appsessionKey = string.Empty; public int actbtncount = 0; int docHgt = 0; public string optStr = string.Empty; //Variables to store toolbar buttons and their left values ArrayList leftBtns = new ArrayList(); //left index of the btns, to arrange the order ArrayList tmpLeftBtns = new ArrayList(); ArrayList toolBarBtns = new ArrayList(); ArrayList actionBarBtns = new ArrayList(); ArrayList sortedBtns = new ArrayList(); ArrayList paramNames = new ArrayList(); ArrayList paramValues = new ArrayList(); ArrayList clientParamValues = new ArrayList(); ArrayList headNames = new ArrayList(); ArrayList customBtnHtml = new ArrayList(); string AxOnApproveDisable = "false"; string AxOnRejectDisable = "false"; string AxOnReturnSave = "false"; string AxOnRejectSave = "false"; string AxLogTimeTaken = "false"; //variables to store the Html in the page StringBuilder tstHTML = new StringBuilder(); public StringBuilder submitCancelBtns = new StringBuilder(); StringBuilder taskBtnHtml = new StringBuilder(); StringBuilder attHtml = new StringBuilder(); public StringBuilder toolbarBtnHtml = new StringBuilder(); public StringBuilder modernToolbarBtnHtml = new StringBuilder(); public StringBuilder modernFooterActBtnHtml = new StringBuilder(); public StringBuilder dcHtml = new StringBuilder(); public StringBuilder tstHeader = new StringBuilder(); public String tstCss = string.Empty; StringBuilder tstSavedHtml = new StringBuilder(); //Public varaibles declaration public Custom customObj = null; string actstr = string.Empty; string actstrType = "open"; string loadResult = string.Empty; string strGlobalVar = string.Empty; string fileName = string.Empty; public string errorLog = string.Empty; string queryStr = string.Empty; public string tstCaption = string.Empty; public string menuBreadCrumb = string.Empty; public string tstName = string.Empty; public StringBuilder tstVars = new StringBuilder(); public StringBuilder tstJsArrays = new StringBuilder(); public StringBuilder tstScript = new StringBuilder(); public StringBuilder tstTabScript = new StringBuilder(); public string tstDraftsScript = string.Empty; public string traceLog = string.Empty; // public string tstTimeVars = string.Empty; public string btnFunction = string.Empty; string btnStyle = "handCur"; string btnHTML = string.Empty; string customFolder = string.Empty; string customPage = string.Empty; LogFile.Log logobj = new LogFile.Log(); ASBExt.WebServiceExt objWebServiceExt = new ASBExt.WebServiceExt(); public string structXml = string.Empty; public string jsFromCache = string.Empty; public string htmlFromCache = string.Empty; Boolean isTstInCache = false; Boolean isTstructCached = false; string draftsPath = string.Empty; public static string enableBackForwButton = string.Empty; public bool isTstPop = false; public string axpRefreshParent = "false"; public string axRefreshSelect = "false"; public string axRefreshSelectID = ""; public string axSrcSelectID = ""; public string axRefreshSelectType = ""; public string langauge = "ENGLISH"; // public string ptransid = string.Empty; public string exportTallyTid = string.Empty; TStructDef strObj = null; public string dcGridOnSave = "true"; public string designModeBtnHtml = String.Empty; public string isAxpImagePath = "false"; #endregion public StringBuilder getLang = new StringBuilder(); public StringBuilder strLogTime = new StringBuilder(); public float formLogTime; public float pageLogTime; DateTime stTime; DateTime edTime; public int FetchPickListRows = 1000; public bool isRapidLoad = false; public bool loadFromMem = true; public string defaultDepFlds = String.Empty; public string langType = "en"; //public bool newDesigner = false; public bool theModeDesign = false; public string axWizardType = ""; public string wizardClass = ""; public string wizardLoadRecord = "false"; public string schemaName = string.Empty; string isTstFromHyperLink = "false"; string designJson = string.Empty; DataTable axpConfigStr = new DataTable(); string AxpIsAutoSplit = string.Empty; string AxpIviewDisableSplit = string.Empty; string AxpFileUploadlmt = string.Empty; string AxpCameraOption = string.Empty; string AxpNotFillDepFields = string.Empty; string AxpFillDepFields = string.Empty; string AxpSaveImageDb = "false"; string AxpGridFormCols = string.Empty; string AxpCustomJs = string.Empty; string AxpCustomCss = string.Empty; public string AxpTstButtonStyle = "classic"; public string AxShowControlBorders = "true"; string axpShowKeyboard = string.Empty; public string dvFooterHtml = string.Empty; string AutosaveDraftt = string.Empty; string AutosaveDraftTime = string.Empty; string savedraftKeyCreatedtime = string.Empty; public bool isTstCustomHtml = false; public bool isMobileView = false; string gridScrollBar = string.Empty; string gridFixedHeader = string.Empty; bool AxSplit = false; public string btnfooterlist = string.Empty; public string btnfooteropenlist = string.Empty; ExecTrace ObjExecTr = ExecTrace.Instance; public string requestProcess_logtime = string.Empty; public string serverprocesstime = string.Empty; string mobileCardLayout = "none"; bool openFastReportInNewWindow = false; public string formLayoutClass = ""; bool fillGridDataQueryOrder = false; bool fillGridDataShowAll = false; protected override void InitializeCulture() { if (Session["language"] != null) { util = new Util.Util(); string dirLang = string.Empty; dirLang = util.SetCulture(Session["language"].ToString().ToUpper()); if (!string.IsNullOrEmpty(dirLang)) { direction = dirLang.Split('-')[0]; langType = dirLang.Split('-')[1]; } } } #region PageLoad /// /// Page Load event of the tstruct page where the tstruct construction is initialized. /// /// /// protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack && Request.QueryString["hdnbElapsTime"] != null) { string browserElapsTime = Request.QueryString["hdnbElapsTime"] != null ? Request.QueryString["hdnbElapsTime"] : "0"; requestProcess_logtime += ObjExecTr.WireElapsTime(browserElapsTime); } else if (IsPostBack && hdnbElapsTimeGo.Value != "") { string browserElapsTime = hdnbElapsTimeGo.Value == "" ? "0" : hdnbElapsTimeGo.Value; requestProcess_logtime += ObjExecTr.WireElapsTime(browserElapsTime); } if (Request.QueryString["reqProc_logtime"] != null) requestProcess_logtime += Request.QueryString["reqProc_logtime"]; if (!IsPostBack) ScriptManager.RegisterStartupScript(this, this.GetType(), "controlDimmer", "eval(callParent(\"loadFrame\", \"function\"));", true); util = new Util.Util(); stTime = DateTime.Now; DateTime startTime = DateTime.Now; //logobj.CreateLog("Page load " , sid, "LogTimeTaken", "new"); util.IsValidSession(); ResetSessionTime(); DateTime webStart = DateTime.Now; Response.ExpiresAbsolute = DateTime.Now; Response.Expires = -1441; Response.CacheControl = "no-cache"; Response.AddHeader("Pragma", "no-cache"); Response.AddHeader("Pragma", "no-store"); Response.AddHeader("cache-control", "no-cache"); Response.Cache.SetCacheability(HttpCacheability.NoCache); Response.Cache.SetNoServerCaching(); if (Session["project"] == null) { SessionExpired(); return; } else { if (util.IsValidQueryString(Request.RawUrl, true) == false) { requestProcess_logtime += "Server - " + Constants.INVALIDURL + " ♦ "; HttpContext.Current.Response.Redirect(util.ERRPATH + Constants.INVALIDURL + "*♠*" + requestProcess_logtime); } SetSessionVariables(); //if (!util.licencedValidSessionCheck()) //{ // try // { // HttpContext.Current.Response.Redirect(util.ERRPATH + Constants.SESSIONEXPMSG, true); // } // catch (ThreadAbortException ex) // {​​​​​ // Thread.ResetAbort(); // }​​​​​ // return; //} //TODO: ask malakonda and remove the below code if not used if (HttpContext.Current.Session["fd-HugeFlds"] != null) util.ClearFDFldSession(); DateTime sdate = DateTime.Now; ConstructTstruct(); DateTime enddate = DateTime.Now; strLogTime.Append("TotConstructTstruct-" + sdate.Subtract(enddate).TotalMilliseconds.ToString()); CustomDiv.InnerHtml = customObj.GetCustomDivHtml(); //IncludeJsFiles(); IncludeJsFilesNew(); SetLangStyles(); } util.TempAttaServerFiles(); util.DeleteKeyOnRefreshSave(); UpdateNavigation(); CheckDraftPopup(); if (!isTstPop && rid == "0") util.RemovelvListPageLoad(); //Code to store the timetaken details TStructData tstData = (TStructData)Session[hdnDataObjId.Value]; if (tstData != null && AxLogTimeTaken == "true") { tstData.strServerTime = stTime.Subtract(webStart).TotalMilliseconds + "," + edTime.Subtract(stTime).TotalMilliseconds + "," + DateTime.Now.Subtract(edTime).TotalMilliseconds; Session[hdnDataObjId.Value] = tstData; } ScriptManager.RegisterStartupScript(this, this.GetType(), "controlDimmer", "closeParentFrame();", true); edTime = DateTime.Now; strLogTime.Append("PageLoad FUll-" + startTime.Subtract(edTime).TotalMilliseconds.ToString()); pageLogTime = float.Parse(edTime.Subtract(startTime).TotalMilliseconds.ToString()); pageLogTime = pageLogTime - formLogTime; if (Session["AxDcGridOnSave"] != null) dcGridOnSave = HttpContext.Current.Session["AxDcGridOnSave"].ToString(); AxpFileUploadlmt = AxpFileUploadlmt == string.Empty ? "0" : AxpFileUploadlmt.ToString(); Page.ClientScript.RegisterStartupScript(GetType(), "set Grid DC Pop Up Visible On Save", ""); requestProcess_logtime += ObjExecTr.RequestProcessTime("Response"); serverprocesstime = ObjExecTr.TotalServerElapsTime(); } private void UpdateNavigation() { if (Session["AxFromHypLink"] != null) isTstFromHyperLink = Session["AxFromHypLink"].ToString(); if (!string.IsNullOrEmpty(Request.QueryString["axp_IsSaveUrl"])) { if (Request.QueryString["axp_IsSaveUrl"].ToString() == "true") Session["axp_IsSaveUrl"] = "true"; } string frameName = string.Empty; if (Request.QueryString["axpfrm"] != null) frameName = Convert.ToString(Request.QueryString["axpfrm"]); if (Session["backForwBtnPressed"] == null || (Session["backForwBtnPressed"] != null && !Convert.ToBoolean(Session["backForwBtnPressed"])) && (Request.QueryString.Count < 2 || Request.UrlReferrer != null && (Request.UrlReferrer.AbsolutePath.Contains("listIview.aspx") || Request.UrlReferrer.AbsolutePath.Contains("iview.aspx") || Request.UrlReferrer.AbsolutePath.Contains("tstruct.aspx") || Request.UrlReferrer.AbsolutePath.Contains("tstructdesign.aspx") || Request.UrlReferrer.AbsolutePath.Contains("mainnew.aspx"))) && frameName != "t") { if (isTstPop) Session["enableBackButton"] = "false"; else if (Session["AxHypTstRefresh"] != null && Session["AxHypTstRefresh"].ToString() == "true") { Session["AxHypTstRefresh"] = "false"; } else if (Request.QueryString["AxHypTstRefresh"] != null && Request.QueryString["AxHypTstRefresh"].ToString() == "true") { } else util.UpdateNavigateUrl(HttpContext.Current.Request.Url.AbsoluteUri); } if (Session["axp_IsSaveUrl"] != null) Session["axp_IsSaveUrl"] = null; Session["backForwBtnPressed"] = false; if (Session["RapidTsTruct"] != null && Session["RapidTsTruct"].ToString() == "true") enableBackForwButton = ""; else enableBackForwButton = ""; } private void ResetSessionTime() { if (Session["AxSessionExtend"] != null && Session["AxSessionExtend"].ToString() == "true") { HttpContext.Current.Session["LastUpdatedSess"] = DateTime.Now.ToString(); ClientScript.RegisterStartupScript(this.GetType(), "SessionAlert", "eval(callParent('ResetSession()', 'function'));", true); } } #endregion #region formload functions private void GetBreadCrumb() { try { Session["menubreadcrumb"] = string.Empty; //string strv = Session["MenuData"].ToString(); string strv = string.Empty; try { string fdKeyMenuData = Constants.REDISMENUDATA; string schemaName = string.Empty; if (HttpContext.Current.Session["dbuser"] != null) schemaName = HttpContext.Current.Session["dbuser"].ToString(); FDR fObj = (FDR)HttpContext.Current.Session["FDR"]; if (fObj != null) strv = fObj.StringFromRedis(util.GetRedisServerkey(fdKeyMenuData, "Menu"), schemaName); } catch (Exception) { } if (strv == string.Empty && Session["MenuData"] != null) strv = Session["MenuData"].ToString(); XmlDocument xmlDoc1 = new XmlDocument(); xmlDoc1.LoadXml(strv); string code = "tstruct.aspx?transid=" + transId; XmlNode node = null; XmlElement basicDataRoot = xmlDoc1.DocumentElement; if (basicDataRoot.SelectSingleNode("descendant::child[@target='" + code + "']") != null) { node = basicDataRoot.SelectSingleNode("descendant::child[@target='" + code + "']"); } else if (basicDataRoot.SelectSingleNode("descendant::parent[@target='" + code + "']") != null) { node = basicDataRoot.SelectSingleNode("descendant::parent[@target='" + code + "']"); } if (node != null) { string s = node.Attributes["name"].Value; string s1 = string.Empty; XmlNode parnode = default(XmlNode); if (node.ParentNode != null) { parnode = node.ParentNode; while (parnode.Name != "root") { s1 = parnode.Attributes["name"].Value + " > " + s1; parnode = parnode.ParentNode; } } Session["menubreadcrumb"] = s1; menuBreadCrumb = HttpContext.Current.Session["menubreadcrumb"].ToString(); } else { Session["menubreadcrumb"] = string.Empty; menuBreadCrumb = HttpContext.Current.Session["menubreadcrumb"].ToString(); } } catch (Exception) { SessionExpired(); return; } } #region ConstructTstruct /// /// Function to call all formload related functions /// private void ConstructTstruct() { // To set the values for the global variables like transid,sessionid, user etc.. SetGlobalVariables(); if (!isTstPop && goval.Value == "" && !AxSplit) util.DeleteTstIvObject(transId); //Check desing access CheckDesignAccess(); stTime = DateTime.Now; //Design json and Config string will be retrieved from direct db instead of node js Boolean designMode = false; if (HttpContext.Current.Session[transId + "IsDesignMode"] != null && HttpContext.Current.Session[transId + "IsDesignMode"].ToString() != string.Empty) designMode = Convert.ToBoolean(HttpContext.Current.Session[transId + "IsDesignMode"]); GetDesignModeData(); //GetStructDesignAndConfig(); //Design & Config data merged into structure XML(service call), so this direct db call not required for run mode. CacheManager cacheMgr = GetCacheObject(); strObj = GetStrObject(cacheMgr); GetStructConfig(strObj); if (Session["MobileView"] != null && Session["MobileView"].ToString() == "True") isMobileView = true; else isMobileView = false; customObj = Custom.Instance; if (goval.Value == "go") { if (lvPage.SelectedValue != "") callWebservice(lvPage.SelectedValue); } else { if (Session["StructureHtml"] != null) Session.Remove("StructureHtml"); if (Session["ToolbarBtnIcons"] != null) Session.Remove("ToolbarBtnIcons"); if (Session["ModernToolbarBtnOpen"] != null) Session.Remove("ModernToolbarBtnOpen"); // To write the tstruct details to the client. WriteGlobalVariables(); // to get the language from login page GetLanguage(); if (strObj == null) return; structXml = strObj.structRes; edTime = DateTime.Now; strLogTime.Append("GetStructure-" + stTime.Subtract(edTime).TotalMilliseconds.ToString()); formLogTime = float.Parse(edTime.Subtract(stTime).TotalMilliseconds.ToString()); //logobj.CreateLog("Get Structure- timetaken-" + stTime.Subtract(edTime).TotalMilliseconds.ToString(), sid, "LogTimeTaken", ""); try { SaveID.Value = strObj.save_id; PublishID.Value = strObj.Publish_id; IsPublish.Value = strObj.Is_Publish; } catch (Exception ex) { } parseXMLDoc(strObj.pdfList); WriteTstJsArrayDef(strObj); stTime = DateTime.Now; //if (strObj.IsObjFromCache ) //{ // getDesignedData(strObj); //} try { // To get structure details from the object GetStructureDetails(strObj, cacheMgr); } catch (Exception ex) { Response.Redirect(util.ERRPATH + "Clear in-memory keys and try again!"); return; } if (strObj.axdesignJObject != null) { if (Session["Axp_DesignJson"] != null && Session["Axp_DesignJson"].ToString() != "" && designMode) { designHidden.Value = Session["Axp_DesignJson"].ToString(); } else { Session.Remove("Axp_DesignJson"); designHidden.Value = "[" + JsonConvert.SerializeObject(cacheMgr.axdesignJObcmg) + "]"; } if ((strObj.axdesignJObject.wizardDC == true && strObj.dcs.Count > 1) || (Session["MobileView"] != null && Session["MobileView"].ToString() == "True" && strObj.dcs.Count > 1 && mobileCardLayout == "none")) strObj.isWizardTstruct = true; getFormLayoutClass(); } // To fill search dropdown list FillSearchList(strObj); edTime = DateTime.Now; strLogTime.Append("Constructing Tstrct/FromCache-" + stTime.Subtract(edTime).TotalMilliseconds.ToString()); // To write the jsondata to the client stTime = DateTime.Now; LoadStructure(strObj); if (strObj.isWizardTstruct) wizardClass = "wizardTstruct"; if (rid != "0" && Request.QueryString["recPos"] != null && Request.QueryString["recPos"] != "" && Request.QueryString["recPos"] != "null" && Request.QueryString["recordid"] != null) wizardLoadRecord = "true"; edTime = DateTime.Now; strLogTime.Append("LoadStructure-" + stTime.Subtract(edTime).TotalMilliseconds.ToString()); } } private void getFormLayoutClass() { var formWidth = ""; var formPosition = ""; try { if (strObj.axdesignJObject != null) { string dcLayout = strObj.axdesignJObject.dcLayout != "default" ? strObj.axdesignJObject.dcLayout : ""; switch (strObj.axdesignJObject.formWidth) { case "50": formWidth = "col-md-6 formLayoutWidth"; break; case "60": formWidth = "col-md-8 formLayoutWidth"; break; case "70": formWidth = "col-md-9 formLayoutWidth"; break; case "80": formWidth = "col-md-10 formLayoutWidth"; break; case "90": formWidth = "col-md-11 formLayoutWidth"; break; default: formWidth = ""; break; } switch (strObj.axdesignJObject.formAlignment) { case "center": formPosition = "formPositionCenter"; break; case "left": formPosition = "formPositionLeft"; break; case "right": formPosition = "formPositionRight"; break; default: formPosition = ""; break; } formLayoutClass = formWidth + " " + dcLayout + " " + formPosition; } } catch (Exception) { } } public void CheckDraftPopup() { if (AutosaveDraftt == "true") { var redisDraftkey = transId + "-" + HttpContext.Current.Session["user"].ToString() + Constants.UNIQUE_DRAFT_KEY_PHRASE + tstCaption; FDR fdrObj = (FDR)HttpContext.Current.Session["FDR"]; var redisDraftkeys = fdrObj.GetAllKeys(schemaName + "-" + redisDraftkey); if (redisDraftkeys.Count > 0) { savedraftKeyCreatedtime = redisDraftkeys[0].ToString().Split('-').Last(); var Createdyear = savedraftKeyCreatedtime.Substring(0, 8); var day = Createdyear.Substring(0, 2); var month = Createdyear.Substring(2, 2); var year = Createdyear.Substring(4, 4); var rkeycompareYear = day + "-" + month + "-" + year; var rKeyCompareTime = savedraftKeyCreatedtime.Substring(8, 4); var hours = rKeyCompareTime.Substring(0, 2); var mins = rKeyCompareTime.Substring(2, 2); rKeyCompareTime = hours + ":" + mins; savedraftKeyCreatedtime = rkeycompareYear + " " + rKeyCompareTime; } } } private void GetDesignModeData() { try { Boolean designMode = false; if (HttpContext.Current.Session[transId + "IsDesignMode"] != null && HttpContext.Current.Session[transId + "IsDesignMode"].ToString() != string.Empty) designMode = Convert.ToBoolean(HttpContext.Current.Session[transId + "IsDesignMode"]); if (designMode) { DataSet dsDesign = new DataSet(); DataTable dtDesignData = new DataTable(); DBContext objdb = new DBContext(); dsDesign = objdb.GetAxConfigurations(transId, Constants.STRUCTTYPE_TSTRUCT, designMode, Constants.CONFIGTYPE_DESIGN); dtDesignData = dsDesign.Tables["Table0"]; if (dtDesignData.Rows.Count > 0) { var newDesign = dtDesignData.AsEnumerable().Select(x => new { newdesignJson = x.Field("CONTENT") }).ToList(); designJson = newDesign[0].newdesignJson; } Session["Axp_DesignJson"] = designJson; } } catch (Exception ex) { LogFile.Log logObj = new LogFile.Log(); string sessID = Constants.GeneralLog; if (HttpContext.Current.Session != null) sessID = HttpContext.Current.Session.SessionID; logObj.CreateLog("GetDesignModeData -" + ex.Message, sessID, "GetDesignModeData", "new"); } } private void GetStructConfig(TStructDef strObj) { try { string axpStructKey = Constants.AXCONFIGTSTRUCT; if (HttpContext.Current.Session["AxDtConfigs"] != null) { axpConfigStr = (DataTable)HttpContext.Current.Session["AxDtConfigs"]; HttpContext.Current.Session.Remove("AxDtConfigs"); } if (axpConfigStr != null && axpConfigStr.Rows.Count > 0) SetAxpStructConfigProps(strObj); else { FDR fObj = (FDR)HttpContext.Current.Session["FDR"]; axpConfigStr = fObj.DataTableFromRedis(util.GetConfigCacheKey(axpStructKey, transId, "", AxRole, "ALL")); SetAxpStructConfigProps(strObj); } } catch (Exception ex) { LogFile.Log logObj = new LogFile.Log(); string sessID = Constants.GeneralLog; if (HttpContext.Current.Session != null) sessID = HttpContext.Current.Session.SessionID; logObj.CreateLog("GetStructConfig -" + ex.Message, sessID, "GetStructConfig", "new"); } } private void SetAxpStructConfigProps(TStructDef strObj) { try { if (axpConfigStr != null && axpConfigStr.Rows.Count > 0) { var lstMultiFlds = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "multi select" && x.Field("PROPSVAL").ToLower() == "true") .Select(x => x.Field("SFIELD")).ToList(); if (lstMultiFlds.Count > 0) Session["AxpFldMultiSelect"] = lstMultiFlds; var lstMultiFldsp = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "multi select" && x.Field("PROPSVAL").ToLower() == "true") .Select(x => x.Field("SFIELD") + "♦" + x.Field("PROPVALUE2")).ToList(); if (lstMultiFldsp.Count > 0) Session["AxpFldMultiSelSp"] = lstMultiFldsp; var strAutoSPlit = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "autosplit") .Select(x => new { splitVal = x.Field("PROPSVAL") }).ToList(); if (strAutoSPlit.Count > 0) AxpIsAutoSplit = strAutoSPlit[0].splitVal; var strDisSPlit = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "disablesplit") .Select(x => new { splitVal = x.Field("PROPSVAL") }).ToList(); if (strDisSPlit.Count > 0) AxpIviewDisableSplit = strDisSPlit[0].splitVal; var fldAlign = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "text") .Select(x => new { fldName = x.Field("SFIELD"), alignProp = x.Field("PROPSVAL") }).ToList(); var autoCompPatt = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "autocomplete search pattern") .Select(x => new { splitVal = x.Field("PROPSVAL") }).ToList(); if (autoCompPatt.Count > 0) Session["AxpautoCompPatt"] = autoCompPatt[0].splitVal; try { strObj.WebServiceTimeout = Convert.ToInt32(axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "webservice timeout").Select(x => x.Field("PROPSVAL")).FirstOrDefault()); } catch (Exception ex) { }; var AutosaveDraft = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "auto save draft") .Select(x => new { autosavedraft = x.Field("PROPSVAL"), AutosaveDraftTime = x.Field("PROPVALUE2") }).ToList(); if (AutosaveDraft.Count > 0) { AutosaveDraftt = AutosaveDraft[0].autosavedraft; AutosaveDraftTime = AutosaveDraft[0].AutosaveDraftTime == "" ? "120000" : AutosaveDraft[0].AutosaveDraftTime; } var GridscrollBar = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "grid scrollbar") .Select(x => new { splitVal = x.Field("PROPSVAL") }).ToList(); if (GridscrollBar.Count > 0) gridScrollBar = GridscrollBar[0].splitVal; var GridFixedHeader = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "fixed header for grid")//Fixed Header for Grid .Select(x => new { splitVal = x.Field("PROPSVAL") }).ToList(); if (GridFixedHeader.Count > 0) gridFixedHeader = GridFixedHeader[0].splitVal; var strFileUpload = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "file upload limit") .Select(x => new { splitVal = x.Field("PROPSVAL") }).ToList(); if (strFileUpload.Count > 0) AxpFileUploadlmt = strFileUpload[0].splitVal; var strcameraopt = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "camera option") .Select(x => new { splitVal = x.Field("PROPSVAL") }).ToList(); if (strcameraopt.Count > 0) AxpCameraOption = strcameraopt[0].splitVal; var notfilldependentfields = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "not fill dependent fields" && x.Field("PROPSVAL").ToLower() == "true").Select(x => x.Field("SFIELD")).ToList(); if (notfilldependentfields.Count > 0) AxpNotFillDepFields = string.Join(",", notfilldependentfields); var filldependentfields = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "fill dependent fields" && x.Field("PROPSVAL").ToLower() == "true").Select(x => x.Field("SFIELD")).ToList(); if (filldependentfields.Count > 0) AxpFillDepFields = string.Join(",", filldependentfields); var strSaveImagedb = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "saveimage") .Select(x => new { splitVal = x.Field("PROPSVAL") }).ToList(); if (strSaveImagedb.Count > 0) AxpSaveImageDb = strSaveImagedb[0].splitVal; if (AxpSaveImageDb.ToLower() == "true") { isAxpImagePath = "false"; isAxpImagePathHidden.Value = isAxpImagePath; } Session["AxpSaveImageDb"] = AxpSaveImageDb; var ExcelExport = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "excel export") .Select(x => new { excel = x.Field("PROPSVAL") }).ToList(); if (ExcelExport.Count > 0) Session["AxpExcelExport"] = ExcelExport[0].excel; else Session["AxpExcelExport"] = null; // Enable mobile-ui for tsruct grid options - all/mobile/none var applyMobileUI = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "apply mobile ui").Select(x => new { splitVal = x.Field("PROPSVAL") }).ToList(); if (applyMobileUI.Count > 0) mobileCardLayout = applyMobileUI[0].splitVal; else if ((Session["MobileView"] != null && Session["MobileView"].ToString() == "True")) { mobileCardLayout = "mobile"; } JavaScriptSerializer ser = new JavaScriptSerializer(); hdnFldAlgnProp.Value = ser.Serialize(fldAlign); //Tstruct grid edit option - popup/inline var gridEditOption = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "gridedit") .Select(x => new { gridtype = x.Field("PROPSVAL"), formCols = x.Field("PROPVALUE2") }).ToList(); if (gridEditOption.Count > 0) { Session["AxInlineGridEdit"] = gridEditOption[0].gridtype != "inline" ? "false" : "true"; AxpGridFormCols = gridEditOption[0].gridtype + "♠" + gridEditOption[0].formCols; } else if (Session["MobileView"] != null && Session["MobileView"].ToString() == "True") Session["AxInlineGridEdit"] = "false"; else Session["AxInlineGridEdit"] = "true"; var loadCustomJs = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "custom javascript" && x.Field("PROPSVAL").ToLower() == "true") .Select(x => new { applyon = x.Field("APPLYON") }).ToList(); if (loadCustomJs.Count > 0) AxpCustomJs = loadCustomJs[0].applyon; var loadCustomCss = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "custom css" && x.Field("PROPSVAL").ToLower() == "true") .Select(x => new { applyon = x.Field("APPLYON") }).ToList(); if (loadCustomCss.Count > 0) AxpCustomCss = loadCustomCss[0].applyon; var buttonstyle = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "tstruct button style").Select(x => new { val = x.Field("PROPSVAL") }).ToList(); if (buttonstyle.Count > 0) AxpTstButtonStyle = buttonstyle[0].val.ToLower(); var controlBorder = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "show control borders").Select(x => new { val = x.Field("PROPSVAL") }).ToList(); if (controlBorder.Count > 0) AxShowControlBorders = controlBorder[0].val.ToLower(); var PickListFetchSize = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "dorp down fetch size").Select(x => new { val = x.Field("PROPSVAL") }).ToList(); if (PickListFetchSize.Count > 0) { FetchPickListRows = PickListFetchSize[0].val == "" ? 1000 : int.Parse(PickListFetchSize[0].val); Session["PickListFetchSize"] = FetchPickListRows; } else if (Session["PickListFetchSize"] != null) Session.Remove("PickListFetchSize"); var strFastReportInTab = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "open fast report in new window") .Select(x => new { splitVal = x.Field("PROPSVAL") }).ToList(); if (strFastReportInTab.Count > 0) { openFastReportInNewWindow = strFastReportInTab[0].splitVal.ToString().ToLower() == "true" ? true : false; } var fillgridOrder = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "popup fillgrid data based on query order") .Select(x => new { splitVal = x.Field("PROPSVAL") }).ToList(); if (fillgridOrder.Count > 0) fillGridDataQueryOrder = fillgridOrder[0].splitVal.ToString().ToLower() == "true" ? true : false; var fillgridShowAll = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "popup fillgrid data show all") .Select(x => new { splitVal = x.Field("PROPSVAL") }).ToList(); if (fillgridShowAll.Count > 0) fillGridDataShowAll = fillgridShowAll[0].splitVal.ToString().ToLower() == "true" ? true : false; } else { if (Session["MobileView"] != null && Session["MobileView"].ToString() == "True") Session["AxInlineGridEdit"] = "false"; else Session["AxInlineGridEdit"] = "true"; Session["AxpSaveImageDb"] = null; Session["AxpautoCompPatt"] = null; Session["AxpExcelExport"] = null; Session["AxpFldMultiSelect"] = null; Session["AxpFldMultiSelSp"] = null; } if ((Session["MobileView"] != null && Session["MobileView"].ToString() == "True")) { if (mobileCardLayout != "none") { Session["AxInlineGridEdit"] = "false"; AxpGridFormCols = "form♠"; } AxpIsAutoSplit = "false"; } } catch (Exception ex) { LogFile.Log logObj = new LogFile.Log(); string sessID = Constants.GeneralLog; if (HttpContext.Current.Session != null) sessID = HttpContext.Current.Session.SessionID; logObj.CreateLog("SetAxpStructConfigProps -" + ex.Message, sessID, "SetAxpStructConfigProps", "new"); } } #endregion #region SetGlobalVariables /// /// Function to Set the Global variables like transid, user, role etc... /// private void SetGlobalVariables() { if (!IsPostBack) { GetWorkflowGlobalVars(); hdnAxIsPerfCode.Value = Session["AxIsPerfCode"].ToString(); proj = Session["project"].ToString(); //ViewState["proj"] = proj; user = Session["user"].ToString(); //ViewState["user"] = user; sid = Session["nsessionid"].ToString(); //ViewState["sid"] = sid; AxRole = Session["AxRole"].ToString(); //ViewState["AxRole"] = AxRole; language = Session["language"].ToString(); //ViewState["language"] = language; transId = Request.QueryString["transid"].ToString(); if (!util.IsTransIdValid(transId)) Response.Redirect(Constants.PARAMERR); Session.Add("transid", transId); //ViewState["tid"] = transId; fileName = "opentstruct-" + transId; errorLog = logobj.CreateLog("Loading Structure.", sid, fileName, "new"); if ((!string.IsNullOrEmpty(Request.QueryString["recordid"]))) { rid = Request.QueryString["recordid"]; rid = CheckSpecialChars(rid); //ViewState["rid"] = rid; } else { rid = "0"; } if (Request.QueryString.Count < 2 && (Session["lstRecordIds"] != null || Session["recordTransId"] != null || Session["navigationInfoTable"] != null) || Request.QueryString.ToString().Contains("axpdraftid")) util.ClearSession(); //remove key from querystring if (Request.QueryString["AxIsPop"] != null) { System.Reflection.PropertyInfo isreadonly = typeof(System.Collections.Specialized.NameValueCollection).GetProperty("IsReadOnly", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); isreadonly.SetValue(this.Request.QueryString, false, null); this.Request.QueryString.Remove("AxIsPop"); } //The AxPop is used to identify if the tstruct is opened as pop up and hide navigate buttons if (Request.QueryString["AxPop"] != null) isTstPop = Convert.ToBoolean(Request.QueryString["AxPop"].ToString()); if (Request.QueryString["AxHypTstRefresh"] != null) Session["AxHypTstRefresh"] = Request.QueryString["AxHypTstRefresh"].ToString(); if (Session["AxLogging"] != null) AxLogTimeTaken = Session["AxLogging"].ToString().ToLower(); } else { proj = Session["project"].ToString(); sid = Session["nsessionid"].ToString(); user = Session["user"].ToString(); transId = Session["transid"].ToString(); AxRole = Session["AxRole"].ToString(); language = Session["language"].ToString(); } if ((Request.QueryString["act"] != null)) { actstr = " act='" + Request.QueryString["act"].ToString() + "'"; actstrType = Request.QueryString["act"].ToString(); } if (actstr == string.Empty && (Request.QueryString["hltype"] != null)) { actstr = " act='" + Request.QueryString["hltype"].ToString() + "'"; actstrType = Request.QueryString["hltype"].ToString(); } if (Request.QueryString["AxSplit"] != null) { AxSplit = Request.QueryString["AxSplit"].ToString() == "true" ? true : false; } if (HttpContext.Current.Session["dbuser"] != null) schemaName = HttpContext.Current.Session["dbuser"].ToString(); } private void GetWorkflowGlobalVars() { if (Application["AxOnApproveDisable"].ToString().ToLower() == "true") AxOnApproveDisable = "true"; if (Application["AxOnRejectDisable"].ToString().ToLower() == "true") AxOnRejectDisable = "true"; if (Application["AxOnReturnSave"].ToString().ToLower() == "true") AxOnReturnSave = "true"; if (Application["AxOnRejectSave"].ToString().ToLower() == "true") AxOnRejectSave = "true"; } private void SetSessionVariables() { if (Session["AxDisplayAutoGenVal"] != null) hdnShowAutoGenFldValue.Value = Session["AxDisplayAutoGenVal"].ToString(); if (Session["MobileView"] != null && Session["MobileView"].ToString() == "True") axWizardType = "modern"; else if (Session["AxWizardType"] != null) axWizardType = Session["AxWizardType"].ToString(); if (Session["AxDrafts"] != null) tstDraftsScript = Session["AxDrafts"].ToString(); if (!String.IsNullOrEmpty(Session["AxExportTallyTid"].ToString())) exportTallyTid = Session["AxExportTallyTid"].ToString().ToLower(); if (Session["AxIsPerfCode"] != null && Session["AxIsPerfCode"].ToString().ToLower() == "true") isRapidLoad = true; traceLog = logobj.CreateLog("AsbDefineRest-savetstruct", Session.SessionID.ToString(), "tstruct-add-field", "new"); traceLog = traceLog.Replace("\\", "\\\\"); //If a Tstruct is opened from HypLink, then, it should not be loaded from In Mem during Rapid Load. if (HttpContext.Current.Session["AxFromHypLink"] != null && HttpContext.Current.Session["AxFromHypLink"].ToString().ToUpper() == "TRUE") loadFromMem = false; //If a Tstruct is opened from Actions, then, it should not be loaded from In Mem during Rapid Load. if (Request.QueryString["IsFrmAct"] != null && Request.QueryString["IsFrmAct"].ToString().ToUpper() == "TRUE") loadFromMem = false; if (Request.QueryString["theMode"] != null && Request.QueryString["theMode"].ToString().ToLower() == "design") theModeDesign = true; if (theModeDesign) HttpContext.Current.Session[Request.QueryString["transid"] + "IsDesignMode"] = theModeDesign; else HttpContext.Current.Session.Remove(Request.QueryString["transid"] + "IsDesignMode"); //AutoSave and publish if (theModeDesign == true && Session["AutoSavePublish"] != null) { if (Session["AutoSavePublish"].ToString().ToLower() == "true") { saveDesign.Visible = false; PublishDesign.Visible = false; PublishSaveDesign.Visible = true; } } string scriptsUrlPath = Application["ScriptsurlPath"].ToString(); if (HttpContext.Current.Session["AxDraftSavePath"] != null) draftsPath = HttpContext.Current.Session["AxDraftSavePath"].ToString() + "axpert\\drafts\\"; hdnScriptsUrlpath.Value = scriptsUrlPath; hdnScriptspath.Value = scriptsUrlPath; if (Session["AppSessionKey"] != null) appsessionKey = Session["AppSessionKey"].ToString(); //if (ConfigurationManager.AppSettings["FetchPickListRows"] != null && ConfigurationManager.AppSettings["FetchPickListRows"].ToString() != "") // FetchPickListRows = int.Parse(ConfigurationManager.AppSettings["FetchPickListRows"].ToString()); langauge = Session["language"].ToString(); if (HttpContext.Current.Session["AxImagePath"] != null && HttpContext.Current.Session["AxImagePath"].ToString() != "") isAxpImagePath = "true"; if (HttpContext.Current.Session["AxpImagePathGbl"] != null && HttpContext.Current.Session["AxpImagePathGbl"].ToString() != "") isAxpImagePath = "true"; if (AxpSaveImageDb.ToLower() == "true") isAxpImagePath = "false"; isAxpImagePathHidden.Value = isAxpImagePath; } #endregion #region WriteGlobalVariables /// /// Function to write the Global variables info to the javascript. /// private void WriteGlobalVariables() { tstVars.Append(""); } private void GetLanguage() { getLang.Append(""); } private void WriteTstJsArrayDef(TStructDef strObj) { tstJsArrays.Append(""); } #endregion #region GetCacheObject private CacheManager GetCacheObject() { CacheManager cacheMgr = null; try { cacheMgr = new CacheManager(errorLog); } catch (Exception ex) { requestProcess_logtime += "Server - " + ex.Message + " ♦ "; Response.Redirect(util.ERRPATH + ex.Message + "*♠*" + requestProcess_logtime); } if (cacheMgr == null) { requestProcess_logtime += "Server - Server error. Please try again later ♦ "; Response.Redirect(util.ERRPATH + "Server error. Please try again later" + "*♠*" + requestProcess_logtime); } return cacheMgr; } #endregion #region GetStrObject private TStructDef GetStrObject(CacheManager cacheMgr) { TStructDef strObj = null; // cachemanager and TStructDef objects throw exceptions try { string language = HttpContext.Current.Session["language"].ToString(); strObj = cacheMgr.GetStructDef(proj, sid, user, transId, AxRole); isTstCustomHtml = strObj.IsObjCustomHtml; requestProcess_logtime += cacheMgr.requestProcess_log; ClearDcHasDataRows(strObj); } catch (Exception ex) { if (ex.Message.IndexOf("♠") > -1) { requestProcess_logtime += ex.Message.Split('♠')[0]; requestProcess_logtime += ObjExecTr.ResponseErrorMsg("Server - " + ex.Message.Split('♠')[1]); if (ex.Message.Split('♠')[1] == Constants.SESSIONEXPMSG) { Response.Redirect(util.ERRPATH + Constants.SESSIONEXPMSG + "*♠*" + requestProcess_logtime); return null; } else { Response.Redirect(util.ERRPATH + ex.Message.Replace(Environment.NewLine, "").Split('♠')[1] + "*♠*" + requestProcess_logtime); } } else { if (ex.Message == Constants.SESSIONEXPMSG) { Response.Redirect(util.ERRPATH + Constants.SESSIONEXPMSG); return null; } else { Response.Redirect(util.ERRPATH + ex.Message.Replace(Environment.NewLine, "")); } } } if (strObj == null) { requestProcess_logtime += "Server - Server error. Please try again later ♦ "; Response.Redirect(util.ERRPATH + "Server error. Please try again later" + "*♠*" + requestProcess_logtime); } return strObj; } #endregion #region GetStructureDetails /// /// Gets the structure of the tstruct either from the customized folder, or the Cache or Database /// /// private void GetStructureDetails(TStructDef strObj, CacheManager cacheMgr) { Boolean objFromCache = strObj.IsObjFromCache; tstScript = ClearStringBuilders(tstScript); tstTabScript = ClearStringBuilders(tstTabScript); if (objFromCache) { tstTabScript.Append(strObj.GenerateTabScript(strObj)); cacheMgr.GetStructureHTML(transId, AxRole, sid, language); tstHTML.Append(cacheMgr.StructureHtml); tstHeader.Append(cacheMgr.TstHeaderHtml); toolbarBtnHtml.Append(cacheMgr.ToolbarBtnIcons); if (cacheMgr.ModernToolbarBtnOpen != "") { modernToolbarBtnHtml.Append(cacheMgr.ModernToolbarBtnOpen.Split('♦')[0]); btnfooteropenlist = cacheMgr.ModernToolbarBtnOpen.Split('♦')[1]; modernFooterActBtnHtml.Append(cacheMgr.ModernToolbarBtnOpen.Split('♦')[2]); } tstScript.Append(cacheMgr.StructureScript); tstCaption = cacheMgr.StructureCaption; tstName = cacheMgr.StructureName; if (AxpTstButtonStyle == "old") { if (ShowSubCanBtns() && !theModeDesign) { if ((strObj.dcs.Count >= 0) && Session["MobileView"] != null) { submitCancelBtns.Append("
    
"); // dvFooter.Visible = true; heightframe.Attributes.Add("data-submitcancel", "true"); } } else { //dvFooter.Visible = false; submitCancelBtns = ClearStringBuilders(submitCancelBtns); heightframe.Attributes.Add("data-submitcancel", "false"); } dvFooterHtml = submitCancelBtns.ToString(); } if (string.IsNullOrEmpty(tstHTML.ToString()) || string.IsNullOrEmpty(tstHeader.ToString()) || string.IsNullOrEmpty(tstScript.ToString())) { objFromCache = false; attHtml = ClearStringBuilders(attHtml); taskBtnHtml = ClearStringBuilders(taskBtnHtml); dcHtml = ClearStringBuilders(dcHtml); tstHeader = ClearStringBuilders(tstHeader); submitCancelBtns = ClearStringBuilders(submitCancelBtns); tstScript = ClearStringBuilders(tstScript); tstCaption = string.Empty; tstName = string.Empty; } else { if (isTstructCached && isTstInCache) { //tstScript.Append(cacheMgr.TabScript); tstHTML = ClearStringBuilders(tstHTML); WriteHtml(strObj, cacheMgr); } else wBdr.InnerHtml = "" + tstHTML.ToString(); //wBdr.InnerHtml = "" + Constants.WIZARD_TEMPLATE + tstHTML.ToString(); } } if (util.BreadCrumb) { GetBreadCrumb(); } if (!objFromCache) { tstCaption = strObj.tstCaption; //tstCaption = Session["menubreadcrumb"].ToString() + strObj.tstCaption; ParseStructure(strObj, cacheMgr); tstName = strObj.transId; cacheMgr.StructureHtml = tstHTML.ToString(); cacheMgr.axdesignJObcmg = strObj.axdesignJObject; cacheMgr.StructureScript = tstScript.ToString(); cacheMgr.StructureCaption = tstCaption; cacheMgr.StructureName = tstName; cacheMgr.StructureSubmitCancel = submitCancelBtns.ToString(); cacheMgr.TstHeaderHtml = tstHeader.ToString(); cacheMgr.ToolbarBtnIcons = toolbarBtnHtml.ToString(); cacheMgr.ModernToolbarBtnOpen = modernToolbarBtnHtml.ToString() + "♦" + btnfooteropenlist + "♦" + modernFooterActBtnHtml; string language = HttpContext.Current.Session["language"].ToString(); string fdKey = Constants.REDISTSTRUCT; if (HttpContext.Current.Session["MobileView"] != null && HttpContext.Current.Session["MobileView"].ToString() == "True") fdKey = Constants.REDISTSTRUCTMOB; string pgKey = Constants.AXPAGETITLE; ArrayList redisvalues = new ArrayList(); Boolean designMode = false; if (HttpContext.Current.Session[transId + "IsDesignMode"] != null && HttpContext.Current.Session[transId + "IsDesignMode"].ToString() != string.Empty) designMode = Convert.ToBoolean(HttpContext.Current.Session[transId + "IsDesignMode"]); if (!designMode) { cacheMgr.fdwObj.SaveInRedisServer(util.GetRedisServerkey(fdKey, transId), strObj, Constants.REDISTSTRUCT, schemaName); FDR fObj = (FDR)HttpContext.Current.Session["FDR"]; var redisvalues1 = fObj.ObjectJsonFromRedis(util.GetRedisServerkey(pgKey, "")); if (redisvalues1 == null) redisvalues.Add(Title + "♠" + tstCaption + "♠" + transId); else { redisvalues = (ArrayList)redisvalues1; string newValue = Title + "♠" + tstCaption + "♠" + transId; if (!redisvalues.Contains(newValue)) redisvalues.Add(newValue); } cacheMgr.fdwObj.SaveInRedisServer(util.GetRedisServerkey(pgKey, transId), redisvalues, Constants.AXPAGETITLE, schemaName); } cacheMgr.SetStructureHTML(transId, AxRole, language); } strGlobalVar = util.GetGlobalVarString(); if (strGlobalVar != string.Empty) { string global_Scripts = ""; tstScript.Append(global_Scripts); } } private StringBuilder ClearStringBuilders(StringBuilder strName) { strName.Remove(0, strName.ToString().Length); return strName; } #endregion #region Structure Related Methods #region ParseStructure /// /// Function to create Html for the Structure. /// /// private void ParseStructure(TStructDef strObj, CacheManager cacheMgr) { if (!strObj.IsObjCustomHtml || theModeDesign) { if (!strObj.hideToolBar) if (strObj.dwbToolbar) { toolbarBtnHtml.Length = 0; if (AxpTstButtonStyle != "old") //if (AxpTstButtonStyle != "" && AxpTstButtonStyle != "old") toolbarBtnHtml = createModernToolbarButtons(strObj, new ArrayList()); else { toolbarBtnHtml = createDwbToolbarButtons(strObj, new ArrayList()); PrintHTMLtoPDFNew(strObj); if (Session["axDesign"].ToString() == "true") designModeBtnHtml = Constants.DESIGN_MODE_BTN_HTML_NEW; } } else { if (AxpTstButtonStyle != "old") toolbarBtnHtml = createModernToolbarButtons(strObj, new ArrayList()); else CreateToolbarButtons(strObj); } } else { tstToolBarBtn.InnerHtml = string.Empty; if (cacheMgr.tstCustomHTML.Split('@').Length > 1) toolbarBtnHtml.Append(cacheMgr.tstCustomHTML.Split('@')[1] != "" ? cacheMgr.tstCustomHTML.Split('@')[1] : designModeBtnHtml.ToString()); else if (designModeBtnHtml != string.Empty) toolbarBtnHtml.Append(designModeBtnHtml.ToString()); // footer buttons custom html if (cacheMgr.tstCustomHTML.Split('@').Length > 3) modernToolbarBtnHtml.Append(cacheMgr.tstCustomHTML.Split('@')[3]); } CreateHeaderHtml(strObj, cacheMgr); if (!strObj.IsObjCustomHtml || theModeDesign) CreateDcHtml(strObj); strObj.CreateTabArrays(); tstScript.Append(strObj.GetJScriptArrays(strObj)); if (!strObj.IsObjCustomHtml || theModeDesign) WriteHtml(strObj, cacheMgr); else { string gridElementsHeightScript = ""; if (cacheMgr.tstCustomHTML.Split('@').Length > 2) tstHTML.Append(cacheMgr.tstCustomHTML.Split('@')[2] + gridElementsHeightScript); else tstHTML.Append(cacheMgr.tstCustomHTML + gridElementsHeightScript); //wBdr.InnerHtml = "" + Constants.WIZARD_TEMPLATE + tstHTML.ToString(); wBdr.InnerHtml = "" + tstHTML.ToString(); tstTabScript.Append(strObj.GenerateTabScript(strObj));//Temp added for Custom HTML Issue } tstScript.Append(tstTabScript.ToString()); } #endregion #region Toolbar Creation Methods /// /// Function to create the toolbar buttons from the button array in the structdef object. /// For action button, the image of the button needs tobe available at AxpImages folder. /// Note on png files are supported. /// /// StructDef object returned for the structure //TODO: Steps needed to add new task private void CreateToolbarButtons(TStructDef strObj) { //The loop is reversed to sort the toolbar button left values which come in the descending order. toolbarBtnHtml.Length = 0; for (int i = strObj.btns.Count - 1; i >= 0; i--) { TStructDef.ButtonStruct btn = (TStructDef.ButtonStruct)strObj.btns[i]; string[] arrLeft = null; string tlhw = string.Empty; tlhw = btn.dimension; if (!string.IsNullOrEmpty(tlhw)) { arrLeft = tlhw.Split(','); if ((arrLeft.Length > 0 & arrLeft[1] != string.Empty)) { if (leftBtns.IndexOf(arrLeft[1].ToString()) != -1) arrLeft[1] = Convert.ToString(Convert.ToInt32(arrLeft[1], 10) + 1); leftBtns.Add(arrLeft[1]); //if (!(btn.task.ToLower() == "" && btn.action.ToLower() != "")) tmpLeftBtns.Add(arrLeft[1]); } else { logobj.CreateLog(" Button left value is missing: " + btn.caption, sid, fileName, ""); } } string hint = btn.hint; string caption = btn.caption; string task = btn.task.ToLower(); string action = btn.action.ToLower(); string btnName = ""; if (!string.IsNullOrEmpty(caption)) btnName = caption; else if (!string.IsNullOrEmpty(hint)) btnName = hint; btnFunction = string.Empty; btnHTML = string.Empty; btnStyle = string.Empty; btnStyle = ""; switch (task) { case "new": if (string.IsNullOrEmpty(btnName)) btnName = "New"; if (hint == "New") { btnFunction = " onclick='javascript:NewTstruct();' "; toolBarBtns.Add("
  • " + btnName + "
  • "); btnStyle = "newTask"; } else { btnFunction = " onclick='javascript:NewTstruct();' "; toolBarBtns.Add("
  • " + btnName + "
  • "); //toolBarBtns.Add(""); } break; case "save": if (string.IsNullOrEmpty(btnName)) btnName = "Save"; btnFunction = " onclick='javascript:FormSubmit();' "; toolBarBtns.Add("
  • " + btnName + "
  • "); break; case "search": if (string.IsNullOrEmpty(btnName)) btnName = "Search"; btnFunction = " onclick=\"javascript:OpenSearch('" + transId + "');\" "; btnStyle = "handCur"; toolBarBtns.Add("
  • " + btnName + "
  • "); break; case "remove": if (string.IsNullOrEmpty(btnName)) btnName = "Remove"; btnFunction = " onclick='javascript:DeleteTstruct();' "; btnStyle = "handCur"; toolBarBtns.Add("
  • " + btnName + "
  • "); break; case "print": if (string.IsNullOrEmpty(btnName)) btnName = "Print"; btnFunction = " onclick=\"javascript:OpenPrint('" + transId + "');\" "; btnStyle = "handCur"; if (strObj.tstPform == "yes") { toolBarBtns.Add("
  • " + btnName + "
  • "); } else { toolBarBtns.Add(""); } break; case "pdf": if (string.IsNullOrEmpty(btnName)) btnName = "PDF"; string hideClass = string.Empty; if (strObj.pdfList == "") { hideClass = " class=\"hide\" "; } btnFunction = " onclick='javascript:OpenPdfDocList();'"; //btnFunction = " onclick='javascript:ProcessRow();' "; btnStyle = "handCur"; toolBarBtns.Add("" + btnName + ""); break; case "view history": if (string.IsNullOrEmpty(btnName)) btnName = "View History"; btnFunction = " onclick=\"javascript:OpenHistory('" + transId + "');\" "; btnStyle = "handCur"; toolBarBtns.Add("
  • " + btnName + "
  • "); break; case "listview": if (string.IsNullOrEmpty(btnName)) btnName = "List View"; //btnFunction = " onclick='javascript:CallListView('" + transId + "');' "; btnFunction = " onclick=\"javascript:CallListView('" + transId + "');\" "; btnStyle = "handCur"; toolBarBtns.Add("
  • " + btnName + "
  • "); break; case "attach": if (string.IsNullOrEmpty(btnName)) btnName = "Attach"; btnFunction = " onclick='javascript:AttachFiles();' "; btnStyle = "handCur"; toolBarBtns.Add("
  • " + btnName + "
  • "); break; case "tasks": btnFunction = " onclick='javascript:FindPos();ShowTaskList();' "; btnStyle = "handCur"; if (strObj.taskBtns.Count > 0) { StringBuilder TaskBtnHTML = new StringBuilder(); TaskBtnHTML.Append("