public override void RenderValuesToHtmlInsideDataSet(DataSet ds, int moduleId, bool noScript) { if (ds != null) { var fields = new ArrayList(); var tableData = ds.Tables[DataSetTableName.Data]; var tokenReplace = new TokenReplace {ModuleId = moduleId}; foreach (DataRow row in ds.Tables[DataSetTableName.Fields].Rows) { if (row[FieldsTableColumn.Type].ToString() == Name) { var fieldId = (int)row[FieldsTableColumn.Id]; var field = new FieldSetting { Title = row[FieldsTableColumn.Title].ToString(), TokenText = GetFieldSetting("TokenText", fieldId, ds).AsString(), ShowUserName = GetFieldSetting("ShowUserName", fieldId, ds).AsBoolean(), OpenInNewWindow = GetFieldSetting("OpenInNewWindow", fieldId, ds).AsBoolean() }; fields.Add(field); tableData.Columns.Add(new DataColumn(field.Title + DataTableColumn.Appendix_Url,typeof (string))); tableData.Columns.Add(new DataColumn(field.Title + DataTableColumn.Appendix_Original,typeof (string))); tableData.Columns.Add(new DataColumn(field.Title + DataTableColumn.Appendix_Caption,typeof (string))); } } if (fields.Count > 0) { PortalSettings portalSettings = null; if (HttpContext.Current != null) { portalSettings = PortalController.GetCurrentPortalSettings(); } var mc = new ModuleController(); var settings = mc.GetModuleSettings(moduleId); foreach (DataRow row in tableData.Rows) { foreach (FieldSetting field in fields) { var strFieldvalue = string.Empty; //Link showed to the user var link = row[field.Title].ToString(); //set caption: var caption = field.TokenText; var url = string.Empty; //Link readable by browsers link = UrlUtil.StripURL(link); if (link != string.Empty) //valid link { //var isLink = true; var intUser = Convert.ToInt32(-1); if (link.Like( "userid=*") && portalSettings != null) { try { intUser = int.Parse(link.Substring(7)); tokenReplace.User = new UserController().GetUser(portalSettings.PortalId, intUser); } catch { } } if (intUser == -1) { tokenReplace.User = new UserInfo {Username = "******"}; } if (caption == string.Empty) { caption = field.ShowUserName ? "[User:DisplayName]" : "[User:UserName]"; } caption = tokenReplace.ReplaceEnvironmentTokens(caption, row); if (caption == string.Empty) //DisplayName empty { caption = tokenReplace.ReplaceEnvironmentTokens("[User:username]"); } url = HttpUtility.HtmlEncode(Globals.LinkClick(link, portalSettings.ActiveTab.TabID, moduleId)); strFieldvalue = string.Format("<!--{1}--><a href=\"{0}\"{2}>{1}</a>", url, caption, (field.OpenInNewWindow ? " target=\"_blank\"" : "")); } row[field.Title] = strFieldvalue; row[field.Title + DataTableColumn.Appendix_Original] = link; row[field.Title + DataTableColumn.Appendix_Url] = url; row[field.Title + DataTableColumn.Appendix_Caption] = caption; } } } } }
public override void RenderValuesToHtmlInsideDataSet(DataSet ds, int moduleId, bool noScript) { var tokenReplace = new TokenReplace {ModuleId = moduleId}; foreach (DataRow row in ds.Tables[DataSetTableName.Fields].Rows) { if (row[FieldsTableColumn.Type].ToString() == Name) { var fieldId = (int)row[FieldsTableColumn.Id]; var columnName = row[FieldsTableColumn.Title].ToString(); try { var typestring = row[FieldsTableColumn.InputSettings].AsString(); var expression = tokenReplace.ReplaceEnvironmentTokens( row[FieldsTableColumn.Default].AsString("String")); ds.Tables[DataSetTableName.Data].Columns.Remove(columnName); var dc = new DataColumn(columnName, GetType(typestring)); ds.Tables[DataSetTableName.Data].Columns.Add(dc); dc.Expression = expression; } catch (SyntaxErrorException ex) { ds.Tables[DataSetTableName.Data].Columns.Remove(columnName); var dc = new DataColumn(columnName, typeof (string)); ds.Tables[DataSetTableName.Data].Columns.Add(dc); ds.Tables[DataSetTableName.Data].Columns[columnName].Expression = WarningMessage(ex.Message, moduleId); } catch (EvaluateException ex) { ds.Tables[DataSetTableName.Data].Columns.Remove(columnName); var dc = new DataColumn(columnName, typeof (string)); ds.Tables[DataSetTableName.Data].Columns.Add(dc); ds.Tables[DataSetTableName.Data].Columns[columnName].Expression = WarningMessage(ex.Message, moduleId); } catch (ArgumentNullException ex) { var dc = new DataColumn(columnName, typeof (string)); ds.Tables[DataSetTableName.Data].Columns.Add(dc); ds.Tables[DataSetTableName.Data].Columns[columnName].Expression = WarningMessage(ex.Message, moduleId); } } } }
string GetRowFilter(string filter, string search) { var tokenReplace = new TokenReplace(escapeApostrophe: true) {ModuleInfo = ModuleContext.Configuration}; if (filter != string.Empty) { filter = tokenReplace.ReplaceEnvironmentTokens(filter); } if (filter != string.Empty && search != string.Empty) { return string.Format("{0} AND ({1})", filter, search); } return filter + search; }
public override void RenderValuesToHtmlInsideDataSet(DataSet ds, int moduleId, bool noScript) { if (ds != null) { var fields = new ArrayList(); //List of columns that contains URLs var tableData = ds.Tables[DataSetTableName.Data]; var tokenReplace = new TokenReplace {ModuleId = moduleId}; foreach (DataRow row in ds.Tables[DataSetTableName.Fields].Rows) { if (row[FieldsTableColumn.Type].ToString() == Name) { var fieldId = (int)row[FieldsTableColumn.Id]; var field = new FieldSettings { Title = row[FieldsTableColumn.Title].ToString(), OutputFormat = row[FieldsTableColumn.OutputSettings].AsString(), Abbreviate = GetFieldSetting("Abbreviate", fieldId, ds).AsBoolean(), ShowOpenInNewWindow = GetFieldSetting("ShowOpenInNewWindow", fieldId, ds).AsBoolean(), EnforceDownload = GetFieldSetting("EnforceDownload", fieldId, ds).AsBoolean() }; fields.Add(field); tableData.Columns.Add(new DataColumn(field.Title + DataTableColumn.Appendix_Url, typeof (string))); tableData.Columns.Add(new DataColumn(field.Title + DataTableColumn.Appendix_Caption, typeof (string))); tableData.Columns.Add(new DataColumn(field.Title + DataTableColumn.Appendix_Original, typeof (string))); } } if (fields.Count > 0) { var portalSettings = PortalController.GetCurrentPortalSettings(); foreach (DataRow row in tableData.Rows) { foreach (FieldSettings field in fields) { var strFieldvalue = string.Empty; var strFileId = row[field.Title].ToString(); var openInNewWindow = !field.ShowOpenInNewWindow || UrlUtil.OpenUrlInNewWindow(strFileId); strFileId = UrlUtil.StripURL(strFileId); var strUrl = ""; //Link readable by browsers var strCaption = string.Empty; if (strFileId != string.Empty) { strUrl = HttpUtility.HtmlEncode(Globals.LinkClick(strFileId, portalSettings.ActiveTab.TabID, moduleId)); var fName = ""; var strDisplayName = ""; if (strFileId.Like("FileID=*")) { var f =FileManager.Instance.GetFile(int.Parse(UrlUtils.GetParameterValue(strFileId))); if (f != null) { fName = f.FileName; if (field.Abbreviate) { strDisplayName = (f.Folder + fName); } else { strDisplayName = fName; } } } else { fName = Globals.ResolveUrl(strUrl); strDisplayName = field.Abbreviate ? fName.Substring(Convert.ToInt32(fName.LastIndexOf("/", StringComparison.Ordinal) + 1)) : fName; } strCaption = field.OutputFormat; strCaption = string.IsNullOrEmpty(strCaption) ? fName : tokenReplace.ReplaceEnvironmentTokens(strCaption, row); if (field.EnforceDownload) { strUrl += "&forcedownload=true"; } strFieldvalue = string.Format("<!--{0}--><a href=\"{1}\" {2}>{3}</a>", strDisplayName, strUrl, (openInNewWindow ? " target=\"_blank\"" : ""), strCaption); } row[field.Title] = strFieldvalue; row[field.Title + DataTableColumn.Appendix_Caption] = strCaption; row[field.Title + DataTableColumn.Appendix_Original] = strFileId; row[field.Title + DataTableColumn.Appendix_Url] = strUrl; } } } } }
public override void RenderValuesToHtmlInsideDataSet(DataSet ds, int moduleId, bool noScript) { var fields = new ArrayList(); //List of columns that contains eMail addresses var tableData = ds.Tables[DataSetTableName.Data]; var tokenReplace = new TokenReplace {ModuleId = moduleId}; foreach (DataRow row in ds.Tables[DataSetTableName.Fields].Rows) { if (row[FieldsTableColumn.Type].ToString() == Name) { var fieldId = (int)row[FieldsTableColumn.Id]; var field = new FieldSetting { Title = row[FieldsTableColumn.Title].ToString(), OutputFormat = row[FieldsTableColumn.OutputSettings].AsString(), AsLink = !GetFieldSetting("NoLink", fieldId, ds).AsBoolean() }; fields.Add(field); tableData.Columns.Add(new DataColumn(field.Title + DataTableColumn.Appendix_Original, typeof (string))); tableData.Columns.Add(new DataColumn(field.Title + DataTableColumn.Appendix_Caption, typeof (string))); } } if (fields.Count > 0) { foreach (DataRow row in tableData.Rows) { foreach (FieldSetting field in fields) { //Link shown to the user //Link readable by browsers var strUrl = row[field.Title].ToString().Trim(); //strip optional parameter like subject or body for display: var strLink = strUrl.IndexOf("?", System.StringComparison.Ordinal) != - 1 ? strUrl.Substring(0, strUrl.IndexOf("?", System.StringComparison.Ordinal)) : strUrl; if (strLink != string.Empty) { var strCaption = field.OutputFormat; if (! string.IsNullOrEmpty(strCaption)) { strCaption = string.Format(tokenReplace.ReplaceEnvironmentTokens(strCaption, row), strLink); } else { strCaption = strLink; } string strFieldvalue; if (strCaption != string.Empty && field.AsLink ) { strFieldvalue = string.Format("<a href=\"mailto:{0}\">{1}</a>", HttpUtility.UrlEncode(strUrl), strCaption); } else { strFieldvalue = strLink; } row[field.Title] = noScript ? strFieldvalue : (Globals.CloakText(strFieldvalue)); row[field.Title + DataTableColumn.Appendix_Caption] = strCaption; row[field.Title + DataTableColumn.Appendix_Original] = strUrl; } } } } }
public override void RenderValuesToHtmlInsideDataSet(DataSet ds, int moduleId, bool noScript) { var fields = new ArrayList(); var tableData = ds.Tables[DataSetTableName.Data]; var tokenReplace = new TokenReplace {ModuleId = moduleId}; foreach (DataRow row in ds.Tables[DataSetTableName.Fields].Rows) { if (row[FieldsTableColumn.Type].ToString() == Name) { var fieldId = (int) row[FieldsTableColumn.Id]; var field = new FieldSetting { Title = row[FieldsTableColumn.Title].ToString(), AltCaption = GetFieldSetting("AltCaption",fieldId,ds).AsString(), AsLink = GetFieldSetting("AsLink", fieldId, ds).AsBoolean(), Width = GetFieldSetting("Width", fieldId, ds).AsInt(), Height = GetFieldSetting("Height", fieldId, ds).AsInt(), }; fields.Add(field); tableData.Columns.Add(new DataColumn(field.Title + DataTableColumn.Appendix_Url, typeof (string))); tableData.Columns.Add(new DataColumn(field.Title + DataTableColumn.Appendix_Caption, typeof (string))); tableData.Columns.Add(new DataColumn(field.Title + DataTableColumn.Appendix_Original, typeof (string))); } } if (fields.Count > 0) { var portalSecurity = new PortalSecurity(); var portalId = Null.NullInteger; if (HttpContext.Current != null) { var portalSettings = PortalController.GetCurrentPortalSettings(); portalId = portalSettings.PortalId; } var cache = new Dictionary<string, ImageFields>(); foreach (DataRow row in ds.Tables[DataSetTableName.Data].Rows) { foreach (FieldSetting setting in fields) { var altCaption = GetAltAttributeForImage(row, setting, tokenReplace); var storedValue = row[setting.Title].ToString(); ImageFields imageFields; if (cache.ContainsKey( storedValue )) imageFields = cache[storedValue]; else { imageFields = GetImageFields(storedValue, setting, portalId); cache[storedValue] = imageFields; } row[setting.Title] = String.Format( imageFields.Value,altCaption ); row[setting.Title + DataTableColumn.Appendix_Caption] = altCaption ; row[setting.Title + DataTableColumn.Appendix_Original] = imageFields.Original; row[setting.Title + DataTableColumn.Appendix_Url] = imageFields.Url; } } } }
static string GetAltAttributeForImage(DataRow row, FieldSetting setting, TokenReplace tokenReplace) { var altTag = setting.AltCaption; if (altTag == string.Empty) { altTag = setting.Title; } else { if (altTag != string.Empty) { altTag = tokenReplace.ReplaceEnvironmentTokens(altTag, row); } } altTag = new PortalSecurity().InputFilter(altTag, PortalSecurity.FilterFlag.NoMarkup); return altTag; }
void FillTypeColumns(int moduleId, TokenReplace objTokenReplace, PortalSettings portalSettings, TabController tabCtrl, DataRow row, FieldSetting field) { var link = row[field.Title].ToString(); //Link showed to the user bool openInNewWindow; if (field.ShowOpenInNewWindow ) //mit URL gepeicherten Wert lesen { openInNewWindow = UrlUtil.OpenUrlInNewWindow(link); } else { switch (Globals.GetURLType(UrlUtil.StripURL(link))) { case TabType.File: openInNewWindow = true; break; case TabType.Tab: //link to internal tab openInNewWindow = false; break; default: openInNewWindow = link.Like( Globals.ApplicationMapPath + "*"); break; } } //set caption: var caption = field.OutputFormat; if (! string.IsNullOrEmpty(caption)) { caption = objTokenReplace.ReplaceEnvironmentTokens(caption, row); } var isLink = true; var url = ""; //Link readable by browsers link = UrlUtil.StripURL(link); if (link != string.Empty) { switch (Globals.GetURLType(link)) { case TabType.Tab: var tab = tabCtrl.GetTab(int.Parse(link), portalSettings.PortalId, false); if (tab != null) { if (caption == string.Empty) { if (! field.Abbreviate) { var strPath = string.Empty; if (tab.BreadCrumbs != null && tab.BreadCrumbs.Count > 0) { foreach (TabInfo b in tab.BreadCrumbs) { var strLabel = b.TabName; if (strPath != string.Empty) { strPath += string.Format( "<img src=\"{0}/images/breadcrumb.gif\" border=\"0\" alt=\"Spacer\"/>", Globals.ApplicationPath); } strPath += strLabel; } } caption = tab.TabPath.Replace("//", string.Format( "<img src=\"{0}/images/breadcrumb.gif\" border=\"0\" alt=\"Spacer\"/>", Globals.ApplicationPath)); } else { caption = tab.TabName; } } url =field.EnforceDownload ? Globals.LinkClick(link, portalSettings.ActiveTab.TabID, moduleId) : Globals.NavigateURL(int.Parse(link)); } else { caption = Localization.GetString("PageNotFound.ErrorMessage", Globals.ResolveUrl( string.Format("~{0}{1}/SharedResources.resx", Definition.PathOfModule, Localization.LocalResourceDirectory))); url = string.Empty; isLink = false; } break; case TabType.File: if (caption == string.Empty) { if (link.ToLowerInvariant().StartsWith("fileid=")) { var file = FileManager.Instance.GetFile(int.Parse(link.Substring(7))); if (file != null) { if (! field.Abbreviate) { caption = file.Folder + file.FileName; } else { caption = file.FileName; } } } else if (field.Abbreviate && link.IndexOf("/", StringComparison.Ordinal) > - 1) { caption = link.Substring(Convert.ToInt32(link.LastIndexOf("/", StringComparison.Ordinal) + 1)); } else { caption = link; } } url = Globals.LinkClick(link, portalSettings.ActiveTab.TabID, moduleId); break; case TabType.Url: case TabType.Normal: if (caption == string.Empty) { if (field.Abbreviate && link.IndexOf("/", StringComparison.Ordinal) > - 1) { caption = link.Substring(Convert.ToInt32(link.LastIndexOf("/", StringComparison.Ordinal) + 1)); } else { caption = link; } } if (!field.TrackDownloads)url = link; break; } if (field.EnforceDownload) url += "&forcedownload=true"; string strFieldvalue; if (isLink) { strFieldvalue = string.Format("<!--{1}--><a href=\"{0}\"{2}>{1}</a>", HttpUtility.HtmlEncode(url), caption, (openInNewWindow ? " target=\"_blank\"" : "")); } else { strFieldvalue = caption; } row[field.Title] = strFieldvalue; row[field.Title + DataTableColumn.Appendix_Caption] = caption; row[field.Title + DataTableColumn.Appendix_Original] = link; row[field.Title + DataTableColumn.Appendix_Url] = url; } }
public override void RenderValuesToHtmlInsideDataSet(DataSet ds, int moduleId, bool noScript) { if (ds != null) { var fields = new ArrayList(); var tableData = ds.Tables[DataSetTableName.Data]; var tokenReplace = new TokenReplace {ModuleId = moduleId}; PrepareHiddenColumns(ds, fields, tableData); if (fields.Count <= 0) { return; } var portalSettings = PortalController.GetCurrentPortalSettings(); var tabCtrl = new TabController(); foreach (DataRow row in tableData.Rows) { foreach (FieldSetting field in fields) { FillTypeColumns(moduleId, tokenReplace, portalSettings, tabCtrl, row, field); } } } }