DataView GetSeriesTagDataSource(WBTerm seriesTagsParentTerm) { WBTaxonomy seriesTagsTaxonomy = seriesTagsParentTerm.Taxonomy; // Create a table to store data for the DropDownList control. DataTable dataTable = new DataTable(); // Define the columns of the table. dataTable.Columns.Add(new DataColumn("SeriesTagTermName", typeof(String))); dataTable.Columns.Add(new DataColumn("SeriesTagTermUIControlValue", typeof(String))); // First add a blank data row: dataTable.Rows.Add(CreateRow("", "", dataTable)); // Then add all of the terms under the parent term: foreach (Term childTerm in seriesTagsParentTerm.Term.Terms) { WBTerm child = new WBTerm(seriesTagsTaxonomy, childTerm); dataTable.Rows.Add(CreateRow(child.Name, child.UIControlValue, dataTable)); } // Create a DataView from the DataTable to act as the data source // for the DropDownList control. DataView dataView = new DataView(dataTable); return(dataView); }
protected void Page_Load(object sender, EventArgs e) { webPart = this.Parent as ViewSeriesPages; string additionalPath = Request.QueryString["AdditionalPath"]; if (additionalPath == null) { additionalPath = ""; } if (webPart.ParentSeriesTag == null || webPart.ParentSeriesTag == "") { PageSeriesTagName.Text = "<i>(Web part not yet configured)</i>"; return; } string fullPath = webPart.ParentSeriesTag + additionalPath; WBTaxonomy seriesTags = WBTaxonomy.GetSeriesTags(SPContext.Current.Site); WBTerm pageSeriesTag = null; Term pageSeriesTagTerm = seriesTags.GetSelectedTermByPath(fullPath); if (pageSeriesTagTerm != null) { pageSeriesTag = new WBTerm(seriesTags, pageSeriesTagTerm); } if (pageSeriesTag == null) { PageSeriesTagName.Text = "<i>(Could not find the series tag with path: " + fullPath + ")</i>"; return; } PageSeriesTagName.Text = pageSeriesTag.Name; PageSeriesTagDescription.Text = pageSeriesTag.Description; string html = "<table cellspacing=\"10\" cellpadding=\"10\" class=\"seriesTags\">"; foreach (Term child in pageSeriesTag.Term.Terms) { if (child.Terms.Count > 0) { html = html + createTableRowForChildSeriesTag(seriesTags, additionalPath, child); } else { html = html + createTableRowForDocument(seriesTags, child); } } html += "</table>"; TableOfChildTerms.Text = html; }
private string createTableRowForDocument(WBTaxonomy seriesTags, Term docSeriesTerm) { WBQuery query = new WBQuery(); WBTerm docSeriesTag = new WBTerm(seriesTags, docSeriesTerm); query.AddEqualsFilter(WBColumn.SeriesTag, docSeriesTag); query.OrderBy(WBColumn.DeclaredRecord, false); query.AddViewColumn(WBColumn.Name); query.AddViewColumn(WBColumn.EncodedAbsoluteURL); query.AddViewColumn(WBColumn.DeclaredRecord); WBFarm farm = WBFarm.Local; SPListItem document = null; using (SPSite site = new SPSite(farm.ProtectedRecordsLibraryUrl)) { using (SPWeb web = site.OpenWeb()) { SPList recordsLibrary = web.GetList(farm.ProtectedRecordsLibraryUrl); SPListItemCollection items = recordsLibrary.WBxGetItems(site, query); if (items.Count > 0) { document = items[0]; } } } string docURL = "#"; string docName = "Did not find a docuemnt for this series tag"; if (document != null) { docURL = document.WBxGetAsString(WBColumn.EncodedAbsoluteURL); docName = document.WBxGetAsString(WBColumn.Name); } string html = "<tr class=\"seriesTags\"><td><img src=\"/_layouts/images/icdocx.png\"/></td><td class=\"seriesTags\"><a href=\"" + docURL + "\">" + docSeriesTag.Name + "</a></td><td>(" + docName + ")</td></tr>"; return(html); }
/* * protected void RecordsLibraryFolders_SelectedNodeChanged(object sender, EventArgs e) * { * WBLogging.Debug("Call to RecordsLibraryFolders_SelectedNodeChanged"); * * String selectedPath = manager.GetSelectedPath(Request); * if (!String.IsNullOrEmpty(selectedPath)) * { * ProcessSelection(selectedPath); * } * } */ protected void ProcessSelection(String selectedPath) { if (!String.IsNullOrEmpty(selectedPath)) { if (!String.IsNullOrEmpty(HiddenSortColumn.Value)) { ViewState["SortColumn"] = HiddenSortColumn.Value; ViewState["SortDirection"] = HiddenSortDirection.Value; } // Now for the bit where the path is analysed to pick out the selected functional area and the records type: String[] pathSteps = selectedPath.Split('/'); // We're only interested in selections of 3rd level 'folders' that are: functional area / records type / records type ... or below. if (pathSteps.Length < 3) { return; } WBTerm functionalArea = manager.FunctionalAreasTaxonomy.GetSelectedWBTermByPath(pathSteps[0]); if (functionalArea == null) { WBLogging.Debug("The functional area part of the selected path came back null: " + selectedPath); return; } Term recordsTypeTerm = manager.RecordsTypesTaxonomy.GetOrCreateSelectedTermByPath(pathSteps[1] + "/" + pathSteps[2]); if (recordsTypeTerm == null) { WBLogging.Debug("The records type part of the selected path came back null: " + selectedPath); return; } WBRecordsType recordsType = new WBRecordsType(manager.RecordsTypesTaxonomy, recordsTypeTerm); RenderRecordsLibraryFoldersSelection(selectedPath); } }
protected void ProcessSelection(String selectedPath) { WBLogging.Debug("In ProcessSelection(): selectedPath = " + selectedPath); if (!String.IsNullOrEmpty(selectedPath)) { if (string.IsNullOrEmpty(selectedPath)) { selectedPath = "/"; } selectedPath = selectedPath.Replace("(root)", ""); if (string.IsNullOrEmpty(selectedPath)) { selectedPath = "/"; } SelectedFolderPath.Text = selectedPath; // Now for the bit where the path is analysed to pick out the selected functional area and the records type: String[] pathSteps = selectedPath.Split('/'); // We're only interested in selections of 3rd level 'folders' that are: functional area / records type / records type ... or below. if (pathSteps.Length < 3) { return; } WBTerm functionalArea = manager.FunctionalAreasTaxonomy.GetSelectedWBTermByPath(pathSteps[0]); if (functionalArea == null) { WBLogging.Debug("The functional area part of the selected path came back null: " + selectedPath); return; } Term recordsTypeTerm = manager.RecordsTypesTaxonomy.GetOrCreateSelectedTermByPath(pathSteps[1] + "/" + pathSteps[2]); if (recordsTypeTerm == null) { WBLogging.Debug("The records type part of the selected path came back null: " + selectedPath); return; } WBRecordsType recordsType = new WBRecordsType(manager.RecordsTypesTaxonomy, recordsTypeTerm); process.FunctionalAreaUIControlValue = functionalArea.UIControlValue; process.RecordsTypeUIControlValue = recordsType.UIControlValue; WBLogging.Debug("Set the new records type to be: " + process.RecordsTypeUIControlValue); // Finally let's see if there is a specific record being selected as well: if (!process.IsReplaceActionToCreateNewSeries) { WBRecord record = manager.Libraries.GetRecordByPath(selectedPath); SelectedRecordID.Text = record.RecordID; process.ToReplaceRecordID = record.RecordID; process.ToReplaceRecordPath = selectedPath; process.ToReplaceShortTitle = record.Title; process.ToReplaceSubjectTagsUIControlValue = record.SubjectTagsUIControlValue; } PublishingProcessJSON.Value = WBUtils.SerializeToCompressedJSONForURI(process); } else { WBLogging.Debug("In LibraryLocations_SelectedNodeChanged(): Selected path was null"); } }
protected void okButton_OnClick(object sender, EventArgs e) { SPSite site = SPContext.Current.Site; SPWeb web = SPContext.Current.Web; WBTaxonomy teams = WBTaxonomy.GetTeams(site); WBTeam team = null; if (TeamTerm.Enabled) { if (TeamTerm.Text != "" && ParentTeamTerm.Text != "") { TeamTermStatus.Text = "You can only select either a direct term or the parent term, not both!"; return; } if (TeamTerm.Text == "" && ParentTeamTerm.Text == "") { TeamTermStatus.Text = "You must select either a direct term or the parent term."; return; } if (TeamTerm.Text != "") { team = new WBTeam(teams, TeamTerm.Text); } else { if (ParentTeamTerm.Text != "") { WBTerm parent = new WBTerm(teams, ParentTeamTerm.Text); Term newTerm = parent.Term.CreateTerm(web.Title, WorkBox.LOCALE_ID_ENGLISH); team = new WBTeam(teams, newTerm); } } team.OwnersGroupName = WBUtils.EntitiesToPropertyString(TeamOwnersSharePointUserGroup.ResolvedEntities, 1); team.MembersGroupName = WBUtils.EntitiesToPropertyString(TeamMembersSharePointUserGroup.ResolvedEntities, 1); team.TeamSiteUrl = web.Url; } else { team = WBTeam.GetFromTeamSite(teams, web); } if (team == null) { TeamTermStatus.Text = "Had a problem finding or creating the term!"; return; } team.Name = TeamName.Text; web.Title = TeamName.Text; team.Acronym = TeamAcronym.Text; team.SetInformationAssetOwner(InformationAssetOwner.WBxGetSingleResolvedUser(web)); team.SetManager(site, TeamManager.WBxGetSingleResolvedUser(web)); team.PublishersGroupName = WBUtils.EntitiesToPropertyString(TeamPublishersSharePointUserGroup.ResolvedEntities, 1); team.RecordsTypesListUrl = RecordsTypesListUrl.Text; if (!String.IsNullOrEmpty(TeamFunctionalAreas.Text)) { team.FunctionalAreaUIControlValue = TeamFunctionalAreas.Text; } team.UseAllFunctionalAreas = UseAllFunctionalAreas.Checked; // This will actually update the web as well as the term. team.UpdateWithTeamSiteWeb(web); SPUtility.Redirect("settings.aspx", SPRedirectFlags.RelativeToLayoutsPage, Context); }
protected override void Render(HtmlTextWriter writer) { //WBTaxonomy recordsTypes = WBTaxonomy.GetRecordsTypes(SPContext.Current.Site); WBTaxonomy seriesTags = WBTaxonomy.GetSeriesTags(SPContext.Current.Site); WBTerm seriesTag = null; if (SeriesTag != null && SeriesTag != "") { Term seriesTagTerm = seriesTags.GetSelectedTermByPath(SeriesTag); if (seriesTagTerm != null) { seriesTag = new WBTerm(seriesTags, seriesTagTerm); } } WBQuery query = new WBQuery(); //query.AddEqualsFilter(WBColumn.RecordsType, workBox.RecordsType); if (seriesTag != null) { query.AddEqualsFilter(WBColumn.SeriesTag, seriesTag); } if (ReferenceID != null && ReferenceID != "") { query.AddEqualsFilter(WBColumn.ReferenceID, ReferenceID); } // if (FilterByOwningTeam) // query.AddEqualsFilter(WBColumn.OwningTeam, workBox.OwningTeam); if (sortColumn != null) { WBLogging.Debug("Sorting in Render with sortColumn: " + sortColumn.DisplayName); } else { WBLogging.Debug("SortColumn was null - so sorting by declared record date."); sortColumn = WBColumn.DeclaredRecord; ascending = false; } if (sortColumn != null) { query.OrderBy(sortColumn, ascending); } query.AddViewColumn(WBColumn.Name); query.AddViewColumn(WBColumn.FileTypeIcon); query.AddViewColumn(WBColumn.EncodedAbsoluteURL); query.AddViewColumn(WBColumn.ReferenceDate); query.AddViewColumn(WBColumn.ProtectiveZone); query.AddViewColumn(WBColumn.DeclaredRecord); WBFarm farm = WBFarm.Local; using (SPSite site = new SPSite(farm.ProtectedRecordsLibraryUrl)) { using (SPWeb web = site.OpenWeb()) { SPList recordsLibrary = web.GetList(farm.ProtectedRecordsLibraryUrl); DataTable dataTable = recordsLibrary.WBxGetDataTable(site, query, MaxNumDocuments); gridView.DataSource = dataTable; gridView.Columns.Clear(); gridView.Columns.Add(WBUtils.DynamicIconTemplateField(WBColumn.FileTypeIcon, WBColumn.EncodedAbsoluteURL)); gridView.Columns.Add(WBUtils.HyperLinkField(WBColumn.Name, WBColumn.EncodedAbsoluteURL, sortColumn, ascending)); gridView.Columns.Add(WBUtils.BoundField(WBColumn.ReferenceDate, sortColumn, ascending)); gridView.Columns.Add(WBUtils.BoundField(WBColumn.ProtectiveZone, sortColumn, ascending)); gridView.Columns.Add(WBUtils.BoundField(WBColumn.DeclaredRecord, sortColumn, ascending)); gridView.DataBind(); } } base.Render(writer); }
private void RefreshBoundData() { if (SelectedNodePath != "") { SPGroup rmManagersGroup = SPContext.Current.Web.WBxGetGroupOrNull(WBFarm.Local.RecordsManagersGroupName); if (rmManagersGroup != null) { if (rmManagersGroup.ContainsCurrentUser) { currentUserIsRecordsManager = true; WBLogging.Debug("Set the current user as being a records manager."); } else { WBLogging.Debug("The current user is not a part of the RM Managers group called: " + WBFarm.Local.RecordsManagersGroupName); } } else { WBLogging.Debug("Could not find the RM Managers group called: " + WBFarm.Local.RecordsManagersGroupName); } SelectedRecordsType.Text = SelectedNodePath.Replace("Records Types/", "").Replace("/", " / "); WBRecordsType recordsType = null; WBTerm functionalArea = null; WBTerm subjectTag = null; switch (SelectedView) { case VIEW_BY_RECORDS_TYPE: { recordsType = recordsTypesTaxonomy.GetSelectedRecordsType(SelectedNodePath); SelectedRecordsTypeDescription.Text = recordsType.Description; break; } case VIEW_BY_FUNCTION_THEN_TYPE: { string[] parts = SelectedNodePath.Split('/'); if (parts.Length < 3) { break; } string functionPath = parts[0]; List <String> partsList = new List <String>(parts); partsList.RemoveAt(0); string recordsTypePath = String.Join("/", partsList.ToArray()); Term functionalAreaTerm = functionalAreaTaxonomy.GetSelectedTermByPath(functionPath); if (functionalAreaTerm != null) { functionalArea = new WBTerm(functionalAreaTaxonomy, functionalAreaTerm); } recordsType = recordsTypesTaxonomy.GetSelectedRecordsType(recordsTypePath); SelectedRecordsTypeDescription.Text = recordsType.Description; break; } case VIEW_BY_SUBJECT: { Term subjectTagsTerm = subjectTagsTaxonomy.GetSelectedTermByPath(SelectedNodePath); if (subjectTagsTerm != null) { subjectTag = new WBTerm(subjectTagsTaxonomy, subjectTagsTerm); SelectedRecordsTypeDescription.Text = subjectTag.Description; } if (subjectTag == null) { WBLogging.Generic.Verbose("Did not find subject with path: " + SelectedNodePath); return; } break; } case VIEW_BY_FOLDER_PATH: { string[] parts = SelectedNodePath.Split('/'); if (parts.Length < 3) { break; } string functionPath = parts[0]; List <String> recordsTypePartsList = new List <String>(); recordsTypePartsList.Add(parts[1]); recordsTypePartsList.Add(parts[2]); string recordsTypePath = String.Join("/", recordsTypePartsList.ToArray()); Term functionalAreaTerm = functionalAreaTaxonomy.GetSelectedTermByPath(functionPath); if (functionalAreaTerm != null) { functionalArea = new WBTerm(functionalAreaTaxonomy, functionalAreaTerm); } recordsType = recordsTypesTaxonomy.GetSelectedRecordsType(recordsTypePath); SelectedRecordsTypeDescription.Text = recordsType.Description; break; } default: return; } WBTeam team = WBTeam.GetFromTeamSite(teamsTaxonomy, SPContext.Current.Web); WBFarm farm = WBFarm.Local; using (SPSite site = new SPSite(farm.ProtectedRecordsLibraryUrl)) { using (SPWeb web = site.OpenWeb()) { WBQuery query = new WBQuery(); if (recordsType == null && functionalArea == null) { query.LogicallyCannotHaveResults = true; } else { if (SelectedView == VIEW_BY_FUNCTION_THEN_TYPE || SelectedView == VIEW_BY_FOLDER_PATH) { WBLogging.Generic.Unexpected("Setting FilterByFolderPath = " + SelectedNodePath); query.FilterByFolderPath = SelectedNodePath; } else { if (recordsType != null) { WBQueryClause recordsTypeClause = new WBQueryClause(WBColumn.RecordsType, WBQueryClause.Comparators.Equals, recordsType); recordsTypeClause.UseDescendants = true; query.AddClause(recordsTypeClause); } if (functionalArea != null) { WBQueryClause functionalAreaClause = new WBQueryClause(WBColumn.FunctionalArea, WBQueryClause.Comparators.Equals, functionalArea); functionalAreaClause.UseDescendants = true; query.AddClause(functionalAreaClause); } } query.AddClause(new WBQueryClause(WBColumn.ContentType, WBQueryClause.Comparators.Equals, farm.WorkBoxRecordContentTypeName)); if (subjectTag != null) { WBQueryClause subjectTagClause = new WBQueryClause(WBColumn.SubjectTags, WBQueryClause.Comparators.Equals, subjectTag); subjectTagClause.UseDescendants = false; query.AddClause(subjectTagClause); } if (team != null) { query.AddEqualsFilter(WBColumn.InvolvedTeams, team); } if (!String.IsNullOrEmpty(webPart.FilterByProtectiveZone)) { query.AddEqualsFilter(WBColumn.ProtectiveZone, webPart.FilterByProtectiveZone); } } showFilters = true; string statusFilter = SelectedLiveOrArchivedStatusFilter; if (statusFilter == null || statusFilter == "") { statusFilter = "All"; // WBColumn.LIVE_OR_ARCHIVED__LIVE; } if (statusFilter != "All") { query.AddEqualsFilter(WBColumn.LiveOrArchived, statusFilter); } FilterLiveStatus.CssClass = "wbf-unselected-filter"; FilterArchivedStatus.CssClass = "wbf-unselected-filter"; FilterAllStatus.CssClass = "wbf-unselected-filter"; if (statusFilter == WBColumn.LIVE_OR_ARCHIVED__LIVE) { FilterLiveStatus.CssClass = "wbf-selected-filter"; } if (statusFilter == WBColumn.LIVE_OR_ARCHIVED__ARCHIVED) { FilterArchivedStatus.CssClass = "wbf-selected-filter"; } if (statusFilter == "All") { FilterAllStatus.CssClass = "wbf-selected-filter"; } query.AddViewColumn(WBColumn.Name); query.AddViewColumn(WBColumn.Title); query.AddViewColumn(WBColumn.TitleOrName); query.AddViewColumn(WBColumn.FileSize); query.AddViewColumn(WBColumn.FileTypeIcon); query.AddViewColumn(WBColumn.FileType); query.AddViewColumn(WBColumn.DisplayFileSize); query.AddViewColumn(WBColumn.EncodedAbsoluteURL); query.AddViewColumn(WBColumn.FunctionalArea); query.AddViewColumn(WBColumn.OwningTeam); query.AddViewColumn(WBColumn.ReferenceDate); query.AddViewColumn(WBColumn.ReferenceID); query.AddViewColumn(WBColumn.SeriesTag); query.AddViewColumn(WBColumn.ProtectiveZone); query.AddViewColumn(WBColumn.RecordID); query.AddViewColumn(WBColumn.LiveOrArchived); if (SelectedView != VIEW_BY_SUBJECT) { query.AddViewColumn(WBColumn.SubjectTags); } else { query.AddViewColumn(WBColumn.RecordsType); } if (sortColumn != null) { query.OrderBy(sortColumn, ascending); } SPList recordsLibrary = web.GetList(farm.ProtectedRecordsLibraryUrl); //"Documents"]; //farm.RecordsCenterRecordsLibraryName]; DataTable dataTable = recordsLibrary.WBxGetDataTable(site, query); ShowResults.DataSource = dataTable; ShowResults.Columns.Clear(); ShowResults.Columns.Add(WBUtils.DynamicIconTemplateField(WBColumn.FileTypeIcon, WBColumn.EncodedAbsoluteURL)); ShowResults.Columns.Add(WBUtils.HyperLinkField(WBColumn.TitleOrName, WBColumn.EncodedAbsoluteURL, sortColumn, ascending)); ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.FileType, sortColumn, ascending)); ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.DisplayFileSize, sortColumn, ascending)); // ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.FunctionalArea, sortColumn, ascending)); ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.ReferenceDate, sortColumn, ascending)); // ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.ReferenceID, sortColumn, ascending)); //ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.SeriesTag, sortColumn, ascending)); ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.OwningTeam, sortColumn, ascending)); ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.ProtectiveZone, sortColumn, ascending)); ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.LiveOrArchived, sortColumn, ascending)); if (SelectedView != VIEW_BY_SUBJECT) { ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.SubjectTags, sortColumn, ascending)); } else { ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.RecordsType, sortColumn, ascending)); } if (this.currentUserIsRecordsManager) { List <WBColumn> valueColumns = new List <WBColumn>(); valueColumns.Add(WBColumn.RecordID); String formatString = SPContext.Current.Web.Url + "/_layouts/WorkBoxFramework/UpdateRecordsMetadata.aspx?RecordID={0}"; formatString = "<a href=\"javascript: WorkBoxFramework_commandAction('" + formatString + "', 800, 600); \">(edit metadata)</a>"; ShowResults.Columns.Add(WBUtils.FormatStringTemplateField(formatString, valueColumns)); WBLogging.Debug("Added the (edit metadata) show column."); } else { WBLogging.Debug("Did not add the (edit metadata) show column."); } ShowResults.DataBind(); } } } else { WBUtils.logMessage("SelectedNodePath was empty"); } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { String currentUserLoginName = SPContext.Current.Web.CurrentUser.LoginName; WBTaxonomy teams = WBTaxonomy.GetTeams(SPContext.Current.Site); WBTaxonomy functionalAreas = WBTaxonomy.GetFunctionalAreas(teams); WBTeam team = WBTeam.GetFromTeamSite(teams, SPContext.Current.Web); if (team == null) { WorkBox workBox = WorkBox.GetIfWorkBox(SPContext.Current); if (workBox != null) { team = workBox.OwningTeam; } } // Check if this user has permission - checking basic team membership: if (team == null || !team.IsCurrentUserTeamMember()) { AccessDeniedPanel.Visible = true; UpdateRecordsMetadataPanel.Visible = false; AccessDeniedReason.Text = "You are not a member of this team"; return; } RecordID.Text = Request.QueryString["RecordID"]; WBLogging.Debug("Record ID is found to be: " + RecordID.Text); using (WBRecordsManager manager = new WBRecordsManager(currentUserLoginName)) { WBRecord record = manager.Libraries.GetRecordByID(RecordID.Text); record.CheckMetadata(); Filename.Text = record.Name; RecordTitle.Text = record.Title; String location = "<unknown>"; if (record.FunctionalArea != null && record.FunctionalArea.Count > 0) { WBLogging.Debug("Found functional area = " + record.FunctionalArea); WBTerm functionalArea = record.FunctionalArea[0]; location = functionalArea.FullPath; WBLogging.Debug("location = " + location); WBTermCollection <WBTerm> teamsFunctionalAreas = team.FunctionalArea(functionalAreas); if (!teamsFunctionalAreas.Contains(functionalArea)) { WBLogging.Debug("Team functional areas UIControlValue: " + teamsFunctionalAreas.UIControlValue); WBLogging.Debug("Record's functional area UIControlValue: " + functionalArea); AccessDeniedPanel.Visible = true; UpdateRecordsMetadataPanel.Visible = false; AccessDeniedReason.Text = "The team " + team.Name + " does not have permission to edit this functional area: " + functionalArea.Name; return; } } location += "/" + record.RecordsType.FullPath; String folders = record.ProtectedMasterRecord.LibraryRelativePath.Replace(record.Name, "").Replace(location, ""); RecordsLocation.Text = "<b>" + location + "</b> " + folders; String status = record.RecordSeriesStatus; RecordSeriesStatus.Text = status; String explainStatus = ""; if (status == "Latest") { if (record.ProtectiveZone == WBRecordsType.PROTECTIVE_ZONE__PUBLIC) { explainStatus = "(live on the public website)"; } else if (record.ProtectiveZone == WBRecordsType.PROTECTIVE_ZONE__PUBLIC_EXTRANET) { explainStatus = "(live on a public extranet website)"; } else { explainStatus = "(live on izzi intranet)"; } } else if (status == "Retired") { explainStatus = "(visible on izzi intranet searches)"; } else if (status == "Archived") { explainStatus = "(archived in the protected, master records library)"; } ExplainStatus.Text = explainStatus; RecordSeriesStatusChange.DataSource = new String[] { "", "Retire", "Archive" }; RecordSeriesStatusChange.DataBind(); RecordSeriesStatusChange.SelectedValue = ""; ProtectiveZone.DataSource = new String[] { WBRecordsType.PROTECTIVE_ZONE__PROTECTED, WBRecordsType.PROTECTIVE_ZONE__PUBLIC }; ProtectiveZone.DataBind(); ProtectiveZone.SelectedValue = record.ProtectiveZone; manager.SubjectTagsTaxonomy.InitialiseTaxonomyControl(SubjectTags, WBColumn.SubjectTags.DisplayName, true); SubjectTags.Text = record.SubjectTagsUIControlValue; manager.TeamsTaxonomy.InitialiseTaxonomyControl(OwningTeam, WBColumn.OwningTeam.DisplayName, false); OwningTeam.Text = record.OwningTeam.UIControlValue; manager.TeamsTaxonomy.InitialiseTaxonomyControl(InvolvedTeams, WBColumn.InvolvedTeams.DisplayName, true); InvolvedTeams.Text = record.InvolvedTeamsWithoutOwningTeamAsUIControlValue; } } }
private void BuildListOfAllowedTerms() { WBFarm farm = WBFarm.Local; using (SPSite site = new SPSite(farm.ProtectedRecordsLibraryUrl)) { WBTaxonomy subjectTagsTaxonomy = WBTaxonomy.GetSubjectTags(site); WBTaxonomy teamsTaxonomy = WBTaxonomy.GetTeams(subjectTagsTaxonomy); Term pageSeriesTagTerm = subjectTagsTaxonomy.GetSelectedTermByPath(FullSubjectTagPath); WBTerm localPageSubjectTag = null; if (pageSeriesTagTerm != null) { localPageSubjectTag = new WBTerm(subjectTagsTaxonomy, pageSeriesTagTerm); } if (localPageSubjectTag != null) { using (SPWeb web = site.OpenWeb()) { WBQuery query = new WBQuery(); //WBQueryClause subjectTagClause = new WBQueryClause(WBColumn.SubjectTags, WBQueryClause.Comparators.Equals, localPageSubjectTag); //subjectTagClause.UseDescendants = true; //query.AddClause(subjectTagClause); if (webPart.OnlyLiveRecords) { WBQueryClause isLiveClause = new WBQueryClause(WBColumn.LiveOrArchived, WBQueryClause.Comparators.Equals, WBColumn.LIVE_OR_ARCHIVED__LIVE); query.AddClause(isLiveClause); } WBTeam team = null; if (!String.IsNullOrEmpty(webPart.FilterByOwningTeam)) { team = teamsTaxonomy.GetSelectedTeam(webPart.FilterByOwningTeam); if (team != null) { query.AddEqualsFilter(WBColumn.OwningTeam, team); } } /* * string protectiveZoneFilter = "Public"; // Request.QueryString["ProtectiveZone"]; * if (protectiveZoneFilter != null && protectiveZoneFilter != "") * { * query.AddEqualsFilter(WBColumn.ProtectiveZone, protectiveZoneFilter); * } * */ query.AddViewColumn(WBColumn.Name); query.AddViewColumn(WBColumn.SubjectTags); SPList recordsLibrary = web.GetList(farm.ProtectedRecordsLibraryUrl); //"Documents"]; //farm.RecordsCenterRecordsLibraryName]; SPListItemCollection documents = recordsLibrary.WBxGetItems(site, query); WBLogging.Debug("Got documents back"); WBLogging.Debug("Documents contains " + documents.Count + " items"); foreach (SPListItem document in documents) { WBTermCollection <WBTerm> subjectTags = document.WBxGetMultiTermColumn <WBTerm>(subjectTagsTaxonomy, WBColumn.SubjectTags.DisplayName); foreach (WBTerm subjectTag in subjectTags) { string fullPath = subjectTag.FullPath; if (allUsedTerms.Contains(fullPath)) { WBLogging.Debug("Already has term: " + fullPath + " so not adding"); } else { WBLogging.Debug("Adding to list of allowed terms: " + fullPath); this.allUsedTerms.Add(fullPath); while (fullPath.Contains("/")) { int lastIndex = fullPath.LastIndexOf('/'); fullPath = fullPath.Substring(0, lastIndex); if (allUsedTerms.Contains(fullPath)) { WBLogging.Debug("Already has term: " + fullPath + " so not adding"); fullPath = ""; } else { allUsedTerms.Add(fullPath); } } } } } } } else { WBUtils.logMessage("pageSubjectTag was null"); } } }
private Dictionary <String, String> FindRecordsTypesToList() { WBFarm farm = WBFarm.Local; Dictionary <String, String> typesToList = new Dictionary <String, String>(); using (SPSite site = new SPSite(farm.ProtectedRecordsLibraryUrl)) { WBTaxonomy subjectTags = WBTaxonomy.GetSubjectTags(site); WBTaxonomy teamsTaxonomy = WBTaxonomy.GetTeams(subjectTags); WBTaxonomy recordsTypesTaxonomy = WBTaxonomy.GetRecordsTypes(teamsTaxonomy); Term pageSeriesTagTerm = subjectTags.GetSelectedTermByPath(FullSubjectTagPath); WBTerm localPageSubjectTag = null; if (pageSeriesTagTerm != null) { localPageSubjectTag = new WBTerm(subjectTags, pageSeriesTagTerm); } if (localPageSubjectTag != null) { using (SPWeb web = site.OpenWeb()) { WBQuery query = new WBQuery(); WBQueryClause subjectTagClause = new WBQueryClause(WBColumn.SubjectTags, WBQueryClause.Comparators.Equals, localPageSubjectTag); subjectTagClause.UseDescendants = false; query.AddClause(subjectTagClause); if (webPart.OnlyLiveRecords) { WBQueryClause isLiveClause = new WBQueryClause(WBColumn.LiveOrArchived, WBQueryClause.Comparators.Equals, WBColumn.LIVE_OR_ARCHIVED__LIVE); query.AddClause(isLiveClause); } /* * else * { * string statusFilter = SelectedLiveOrArchivedStatusFilter; * if (statusFilter == null || statusFilter == "") statusFilter = WBColumn.LIVE_OR_ARCHIVED__LIVE; * if (statusFilter != "All") * { * query.AddEqualsFilter(WBColumn.LiveOrArchived, statusFilter); * } * } */ WBTeam team = null; if (!String.IsNullOrEmpty(webPart.FilterByOwningTeam)) { team = teamsTaxonomy.GetSelectedTeam(webPart.FilterByOwningTeam); if (team != null) { query.AddEqualsFilter(WBColumn.OwningTeam, team); } } query.AddViewColumn(WBColumn.Name); query.AddViewColumn(WBColumn.Title); query.AddViewColumn(WBColumn.RecordsType); if (sortColumn == null) { sortColumn = WBColumn.ReferenceDate; ascending = false; } if (sortColumn != null) { query.OrderBy(sortColumn, ascending); } SPList recordsLibrary = web.GetList(farm.ProtectedRecordsLibraryUrl); //"Documents"]; //farm.RecordsCenterRecordsLibraryName]; SPListItemCollection listOfFoundDocuments = recordsLibrary.WBxGetItems(site, query); foreach (SPListItem item in listOfFoundDocuments) { WBRecordsType recordsType = item.WBxGetSingleTermColumn <WBRecordsType>(recordsTypesTaxonomy, WBColumn.RecordsType); String justRecordsType = GetJustRecordsTypeName(recordsType.Name); if (!typesToList.ContainsKey(justRecordsType)) { typesToList.Add(justRecordsType, recordsType.FullPath); } } } } else { WBLogging.Debug("pageSubjectTag was null"); } } return(typesToList); }
protected void Page_Load(object sender, EventArgs e) { webPart = this.Parent as ViewSubjectPages; DocumentsForSubject.AllowSorting = true; DocumentsForSubject.Sorting += new GridViewSortEventHandler(DocumentsForSubject_Sorting); DocumentsForSubject.AllowPaging = true; DocumentsForSubject.PageIndexChanging += new GridViewPageEventHandler(DocumentsForSubject_PageIndexChanging); DocumentsForSubject.PagerSettings.Mode = PagerButtons.Numeric; DocumentsForSubject.PagerSettings.Position = PagerPosition.Bottom; DocumentsForSubject.PagerSettings.PageButtonCount = 20; DocumentsForSubject.PagerSettings.Visible = true; DocumentsForSubject.PageSize = 20; // this odd statement is required in order to get the pagination to work with an SPGridView! DocumentsForSubject.PagerTemplate = null; showAtoZ = webPart.ShowAToZ; showFilters = false; string additionalPath = ""; if (String.IsNullOrEmpty(webPart.RootSubjectTag)) { PageName.Text = "<i>(Web part not yet configured)</i>"; return; } // Let's capture the information about what we should be looking at: pickedLetter = Request.QueryString["Letter"]; if (!String.IsNullOrEmpty(pickedLetter)) { viewingALetter = true; } additionalPath = Request.QueryString["AdditionalPath"]; if (additionalPath == null) { additionalPath = ""; } recordsTypeFullPath = Request.QueryString["RecordsType"]; if (String.IsNullOrEmpty(recordsTypeFullPath)) { recordsTypeFullPath = NO_RECORDS_TYPE_SELECTED; } if (webPart.ShowRecordTypes) { WBLogging.Debug("ViewSubjectPages: Using records types. Currently set as: " + recordsTypeFullPath); } else { WBLogging.Debug("ViewSubjectPages: Not using records types"); } FullSubjectTagPath = webPart.RootSubjectTag + additionalPath; WBLogging.Debug("FullSubjectTagPath = " + FullSubjectTagPath); WBTaxonomy subjectTags = WBTaxonomy.GetSubjectTags(SPContext.Current.Site); Term rootSubjectTagTerm = subjectTags.GetSelectedTermByPath(webPart.RootSubjectTag); WBTerm rootSubjectTag = null; if (rootSubjectTagTerm != null) { rootSubjectTag = new WBTerm(subjectTags, rootSubjectTagTerm); } if (rootSubjectTag == null) { PageName.Text = "<i>(Could not find the root subject tag with path: " + webPart.RootSubjectTag + ")</i>"; return; } Term pageSubjectTagTerm = subjectTags.GetSelectedTermByPath(FullSubjectTagPath); //SC: WBTerm pageSubjectTag = null; WBSubjectTag pageSubjectTag = null; if (pageSubjectTagTerm != null) { //SC: pageSubjectTag = new WBTerm(subjectTags, pageSubjectTagTerm); pageSubjectTag = new WBSubjectTag(subjectTags, pageSubjectTagTerm); } if (pageSubjectTag == null) { PageName.Text = "<i>(Could not find the page subject tag with path: " + FullSubjectTagPath + ")</i>"; return; } string html = ""; string recordsTypeParameter = ""; if (webPart.ShowRecordTypes) { recordsTypeParameter = "&RecordsType=" + recordsTypeFullPath; } //webPart.OnlyTermsWithDocuments = false; if (webPart.OnlyTermsWithDocuments) { BuildListOfAllowedTerms(); } if (viewingALetter) { PageName.Text = "<a href='?'>" + webPart.RootSubjectTag + "</a> - " + pickedLetter; PageSubjectTagDescription.Text = "You are viewing a list of all of the subjects with the letter '" + pickedLetter + "'."; Dictionary <String, String> allTermPaths = new Dictionary <string, string>(); AddAllTermsThatMatch(pickedLetter, "", rootSubjectTagTerm, allTermPaths); if (allTermPaths.Count > 0) { List <String> terms = new List <String>(allTermPaths.Keys); terms.Sort(); List <String> termsWithLetterFirst = new List <String>(); List <String> remainingTerms = new List <String>(); foreach (String term in terms) { if (term.IndexOf(pickedLetter) == 0) { termsWithLetterFirst.Add(term); } else { remainingTerms.Add(term); } } foreach (String term in termsWithLetterFirst) { html += "<div class='lbi-a-to-z-child-subject'><a href='?AdditionalPath=" + allTermPaths[term] + recordsTypeParameter + "'>" + term + "</a></div>\n"; } if (remainingTerms.Count > 0) { html += "<div> </div>\n"; foreach (String term in remainingTerms) { html += "<div class='lbi-a-to-z-child-subject'><a href='?AdditionalPath=" + allTermPaths[term] + recordsTypeParameter + "'>" + term + "</a></div>\n"; } } } else { html += "<p>There were no terms found for the letter '" + pickedLetter + "'.</p>"; } } else { List <String> names = new List <String>(FullSubjectTagPath.Split('/')); List <String> path = new List <String>(names); path.RemoveAt(0); String justRecordsType = ""; if (!String.IsNullOrEmpty(recordsTypeFullPath) && recordsTypeFullPath != NO_RECORDS_TYPE_SELECTED) { justRecordsType = GetJustRecordsTypeName(recordsTypeFullPath); } PageName.Text = BuildPageNamePath(names, path, justRecordsType); //SC: PageSubjectTagDescription.Text = pageSubjectTag.Description; if (String.IsNullOrEmpty(pageSubjectTag.PageContent)) { PageSubjectTagDescription.Text = pageSubjectTag.Description; } else { PageSubjectTagDescription.Text = pageSubjectTag.PageContent; } // Contacts if (!String.IsNullOrEmpty(pageSubjectTag.InternalContactLoginName)) { panInternalContact.Visible = true; var user = pageSubjectTag.InternalContact(SPContext.Current.Web); if (user != null) { // Bind user to control for presentation ((WBFUser)wbfInternalContact).User = user; } } else { panInternalContact.Visible = false; } if (!pageSubjectTag.ExternalContact.WBxIsHtmlFieldEmpty()) { panExternalContact.Visible = true; litExternalContact.Text = pageSubjectTag.ExternalContact; } else { panExternalContact.Visible = false; } foundChildSubjectTags = false; onRootOfAtoZ = (webPart.ShowAToZ && pageSubjectTag.Name == webPart.RootSubjectTag); bool showDocuments = true; if (!onRootOfAtoZ) { // OK so now we need to find the sub terms and put them in order. List <String> termLabels = new List <String>(); foreach (Term child in pageSubjectTag.Term.Terms) { if (child.IsAvailableForTagging && CheckTermIsAllowed(child)) { termLabels.Add(child.Name); foundChildSubjectTags = true; } } if (termLabels.Count > 0) { if (webPart.OnlyShowDocumentsOnLeafPages) { showDocuments = false; } termLabels.Sort(); foreach (String label in termLabels) { html += "<div class='lbi-a-to-z-child-subject'><a href='?AdditionalPath=" + additionalPath + "/" + label + recordsTypeParameter + "'>" + label + "</a></div>\n"; } } else { // OK so there are no further subject tags, but should we be presenting records types: if (webPart.ShowRecordTypes) { if (recordsTypeFullPath == NO_RECORDS_TYPE_SELECTED) { Dictionary <String, String> recordsTypesToList = FindRecordsTypesToList(); if (recordsTypesToList.Count > 0) { if (webPart.OnlyShowDocumentsOnLeafPages) { showDocuments = false; } List <String> justRecordsTypes = new List <String>(recordsTypesToList.Keys); justRecordsTypes.Sort(); foreach (String recordsType in justRecordsTypes) { String recordsTypePath = recordsTypesToList[recordsType]; html += "<div class='lbi-a-to-z-child-subject'><a href='?AdditionalPath=" + additionalPath + "&RecordsType=" + recordsTypePath + "'>" + recordsType + "</a></div>\n"; } } } } } } else { if (webPart.ShowDocumentsOnAtoZRootPage) { showDocuments = true; } else { showDocuments = false; } } if (showDocuments) { RefreshBoundDocumentsList(); } } if (!String.IsNullOrEmpty(html)) { //TableOfChildSubjects.Text = String.Concat("<h3 class='wbf-subject-tag-section-head'>Child Subject Tags</h3>", html); TableOfChildSubjects.Text = html; } // Added by Steve Clements SetupAddEditButtons(pageSubjectTag); }
private void RefreshBoundDocumentsList() { WBFarm farm = WBFarm.Local; // SC if (String.IsNullOrEmpty(farm.ProtectedRecordsLibraryUrl)) { return; } bool foundDocuments = false; using (SPSite site = new SPSite(farm.ProtectedRecordsLibraryUrl)) { WBTaxonomy subjectTags = WBTaxonomy.GetSubjectTags(site); WBTaxonomy teamsTaxonomy = WBTaxonomy.GetTeams(subjectTags); WBTaxonomy recordsTypesTaxonomy = WBTaxonomy.GetRecordsTypes(teamsTaxonomy); Term pageSeriesTagTerm = subjectTags.GetSelectedTermByPath(FullSubjectTagPath); WBTerm localPageSubjectTag = null; if (pageSeriesTagTerm != null) { localPageSubjectTag = new WBTerm(subjectTags, pageSeriesTagTerm); } if (localPageSubjectTag != null) { using (SPWeb web = site.OpenWeb()) { WBQuery query = new WBQuery(); WBQueryClause subjectTagClause = new WBQueryClause(WBColumn.SubjectTags, WBQueryClause.Comparators.Equals, localPageSubjectTag); subjectTagClause.UseDescendants = false; query.AddClause(subjectTagClause); if (webPart.OnlyLiveRecords) { WBQueryClause isLiveClause = new WBQueryClause(WBColumn.LiveOrArchived, WBQueryClause.Comparators.Equals, WBColumn.LIVE_OR_ARCHIVED__LIVE); query.AddClause(isLiveClause); } else { string statusFilter = SelectedLiveOrArchivedStatusFilter; if (statusFilter == null || statusFilter == "") { statusFilter = WBColumn.LIVE_OR_ARCHIVED__LIVE; } if (statusFilter != "All") { query.AddEqualsFilter(WBColumn.LiveOrArchived, statusFilter); } FilterLiveStatus.CssClass = "wbf-unselected-filter"; FilterArchivedStatus.CssClass = "wbf-unselected-filter"; FilterAllStatus.CssClass = "wbf-unselected-filter"; if (statusFilter == WBColumn.LIVE_OR_ARCHIVED__LIVE) { FilterLiveStatus.CssClass = "wbf-selected-filter"; } if (statusFilter == WBColumn.LIVE_OR_ARCHIVED__ARCHIVED) { FilterArchivedStatus.CssClass = "wbf-selected-filter"; } if (statusFilter == "All") { FilterAllStatus.CssClass = "wbf-selected-filter"; } } WBTeam team = null; if (!String.IsNullOrEmpty(webPart.FilterByOwningTeam)) { team = teamsTaxonomy.GetSelectedTeam(webPart.FilterByOwningTeam); if (team != null) { query.AddEqualsFilter(WBColumn.OwningTeam, team); } } if (webPart.ShowRecordTypes && !String.IsNullOrEmpty(recordsTypeFullPath) && recordsTypeFullPath != NO_RECORDS_TYPE_SELECTED) { WBRecordsType recordsTypeToFilterBy = recordsTypesTaxonomy.GetSelectedRecordsType(recordsTypeFullPath); if (recordsTypeToFilterBy != null) { query.AddEqualsFilter(WBColumn.RecordsType, recordsTypeToFilterBy); } } /* * string protectiveZoneFilter = "Public"; // Request.QueryString["ProtectiveZone"]; * if (protectiveZoneFilter != null && protectiveZoneFilter != "") * { * query.AddEqualsFilter(WBColumn.ProtectiveZone, protectiveZoneFilter); * } * */ query.AddViewColumn(WBColumn.Name); query.AddViewColumn(WBColumn.Title); query.AddViewColumn(WBColumn.TitleOrName); query.AddViewColumn(WBColumn.FileSize); query.AddViewColumn(WBColumn.FileTypeIcon); query.AddViewColumn(WBColumn.FileType); query.AddViewColumn(WBColumn.DisplayFileSize); query.AddViewColumn(WBColumn.EncodedAbsoluteURL); query.AddViewColumn(WBColumn.LiveOrArchived); query.AddViewColumn(WBColumn.RecordID); // query.AddViewColumn(WBColumn.OwningTeam); query.AddViewColumn(WBColumn.ReferenceDate); // query.AddViewColumn(WBColumn.ReferenceID); // query.AddViewColumn(WBColumn.SeriesTag); // query.AddViewColumn(WBColumn.ProtectiveZone); //query.AddViewColumn(WBColumn.DeclaredRecord); // query.AddViewColumn(WBColumn.SubjectTags); if (sortColumn == null) { sortColumn = WBColumn.ReferenceDate; ascending = false; } if (sortColumn != null) { query.OrderBy(sortColumn, ascending); } SPList recordsLibrary = web.GetList(farm.ProtectedRecordsLibraryUrl); //"Documents"]; //farm.RecordsCenterRecordsLibraryName]; DataTable dataTable = recordsLibrary.WBxGetDataTable(site, query); if (dataTable.Rows.Count > 0) { foundDocuments = true; } DocumentsForSubject.DataSource = dataTable; DocumentsForSubject.Columns.Clear(); DocumentsForSubject.Columns.Add(WBUtils.DynamicIconTemplateField(WBColumn.FileTypeIcon, WBColumn.EncodedAbsoluteURL)); DocumentsForSubject.Columns.Add(WBUtils.HyperLinkField(WBColumn.TitleOrName, WBColumn.EncodedAbsoluteURL, sortColumn, ascending)); DocumentsForSubject.Columns.Add(WBUtils.BoundField(WBColumn.FileType, sortColumn, ascending)); DocumentsForSubject.Columns.Add(WBUtils.BoundField(WBColumn.DisplayFileSize, sortColumn, ascending)); if (!webPart.OnlyLiveRecords) { DocumentsForSubject.Columns.Add(WBUtils.BoundField(WBColumn.LiveOrArchived, sortColumn, ascending)); } DocumentsForSubject.Columns.Add(WBUtils.BoundField(WBColumn.ReferenceDate, sortColumn, ascending)); SPGroup rmManagersGroup = SPContext.Current.Web.WBxGetGroupOrNull(WBFarm.Local.RecordsManagersGroupName); if (rmManagersGroup != null) { if (rmManagersGroup.ContainsCurrentUser) { List <WBColumn> valueColumns = new List <WBColumn>(); valueColumns.Add(WBColumn.RecordID); String formatString = SPContext.Current.Web.Url + "/_layouts/WorkBoxFramework/UpdateRecordsMetadata.aspx?RecordID={0}"; formatString = "<a href=\"javascript: WorkBoxFramework_commandAction('" + formatString + "', 800, 600); \">(edit metadata)</a>"; DocumentsForSubject.Columns.Add(WBUtils.FormatStringTemplateField(formatString, valueColumns)); } } DocumentsForSubject.DataBind(); } } else { WBUtils.logMessage("pageSubjectTag was null"); } } if (foundDocuments && !webPart.OnlyLiveRecords) { showFilters = true; } if (!foundDocuments && !foundChildSubjectTags && !(onRootOfAtoZ)) { int archivedDocs = 0; if (!webPart.OnlyLiveRecords) { if (SelectedLiveOrArchivedStatusFilter == WBColumn.LIVE_OR_ARCHIVED__LIVE) { archivedDocs = this.CountArchivedDocsOfThisSelection(); } showFilters = true; } if (archivedDocs > 0) { DynamicNoDocumentsMessage.Text = "(No live documents have been found. There are " + archivedDocs + " archived documents of this type.)"; } else { DynamicNoDocumentsMessage.Text = "(No documents have been found)"; } } else { DynamicNoDocumentsMessage.Text = ""; } // Show Related docs header if docs or message being displayed if (DocumentsForSubject.Rows.Count > 0 || !String.IsNullOrEmpty(DynamicNoDocumentsMessage.Text)) { h3RelatedDocs.Style.Add(HtmlTextWriterStyle.Display, "block"); } }
/* * private string createTableRowForChildSubjectTag(WBTaxonomy seriesTags, String additionalPath, Term child) * { * string currentURL = Request.Url.ToString(); * int startIndex = currentURL.IndexOf("?"); * if (startIndex > 0) * { * currentURL = currentURL.Substring(0, startIndex); * } * * string childURL = currentURL + "?AdditionalPath=" + additionalPath + "/" + child.Name; * * if (!webPart.OnlyLiveRecords) * { * childURL += "&LiveOrArchived=" + SelectedLiveOrArchivedStatusFilter; * } * * * string html = "<tr class=\"subjectTags\"><td class=\"subjectTags\"><a href=\"" + childURL + "\">" + child.Name + "</a></td></tr>"; * * return html; * } */ private int CountArchivedDocsOfThisSelection() { WBFarm farm = WBFarm.Local; int foundDocuments = 0; using (SPSite site = new SPSite(farm.ProtectedRecordsLibraryUrl)) { WBTaxonomy subjectTags = WBTaxonomy.GetSubjectTags(site); WBTaxonomy teamsTaxonomy = WBTaxonomy.GetTeams(subjectTags); WBTaxonomy recordsTypesTaxonomy = WBTaxonomy.GetRecordsTypes(teamsTaxonomy); Term pageSeriesTagTerm = subjectTags.GetSelectedTermByPath(FullSubjectTagPath); WBTerm localPageSubjectTag = null; if (pageSeriesTagTerm != null) { localPageSubjectTag = new WBTerm(subjectTags, pageSeriesTagTerm); } if (localPageSubjectTag != null) { using (SPWeb web = site.OpenWeb()) { WBQuery query = new WBQuery(); WBQueryClause subjectTagClause = new WBQueryClause(WBColumn.SubjectTags, WBQueryClause.Comparators.Equals, localPageSubjectTag); subjectTagClause.UseDescendants = false; query.AddClause(subjectTagClause); WBQueryClause isArchivedClause = new WBQueryClause(WBColumn.LiveOrArchived, WBQueryClause.Comparators.Equals, WBColumn.LIVE_OR_ARCHIVED__ARCHIVED); query.AddClause(isArchivedClause); WBTeam team = null; if (!String.IsNullOrEmpty(webPart.FilterByOwningTeam)) { team = teamsTaxonomy.GetSelectedTeam(webPart.FilterByOwningTeam); if (team != null) { query.AddEqualsFilter(WBColumn.OwningTeam, team); } } if (webPart.ShowRecordTypes && !String.IsNullOrEmpty(recordsTypeFullPath) && recordsTypeFullPath != NO_RECORDS_TYPE_SELECTED) { WBRecordsType recordsTypeToFilterBy = recordsTypesTaxonomy.GetSelectedRecordsType(recordsTypeFullPath); if (recordsTypeToFilterBy != null) { query.AddEqualsFilter(WBColumn.RecordsType, recordsTypeToFilterBy); } } query.AddViewColumn(WBColumn.Name); query.AddViewColumn(WBColumn.Title); query.AddViewColumn(WBColumn.RecordID); SPList recordsLibrary = web.GetList(farm.ProtectedRecordsLibraryUrl); //"Documents"]; //farm.RecordsCenterRecordsLibraryName]; SPListItemCollection foundArchivedItems = recordsLibrary.WBxGetItems(site, query); foundDocuments = foundArchivedItems.Count; } } else { WBUtils.logMessage("pageSubjectTag was null"); } } return(foundDocuments); }
/* * protected void ViewSelector_OnSelectedIndexChanged(object sender, EventArgs e) * { * SelectedViewTitle.Text = "Browse " + webPart.RecordsLibraryView; // ViewSelector.SelectedValue; * // SelectedView = ViewSelector.SelectedValue; * * SelectedNodePath = ""; * * RefreshBrowsableTreeView(); * RefreshBoundData(); * * } * * protected void FilterByProtectiveZone_OnSelectedIndexChanged(object sender, EventArgs e) * { * ProtectiveZoneFilter = FilterByProtectiveZone.SelectedValue; * * RefreshBoundData(); * } */ private void RefreshBoundData() { if (SelectedNodePath != "") { SelectedRecordsType.Text = SelectedNodePath.Replace("Records Types/", "").Replace("/", " / "); WBRecordsType recordsType = null; WBTerm functionalArea = null; WBTerm subjectTag = null; switch (SelectedView) { case VIEW_BY_RECORDS_TYPE: { recordsType = recordsTypesTaxonomy.GetSelectedRecordsType(SelectedNodePath); SelectedRecordsTypeDescription.Text = recordsType.Description; break; } case VIEW_BY_FUNCTION_THEN_TYPE: { string[] parts = SelectedNodePath.Split('/'); if (parts.Length < 3) { break; } string functionPath = parts[0]; List <String> partsList = new List <String>(parts); partsList.RemoveAt(0); string recordsTypePath = String.Join("/", partsList.ToArray()); Term functionalAreaTerm = functionalAreaTaxonomy.GetSelectedTermByPath(functionPath); if (functionalAreaTerm != null) { functionalArea = new WBTerm(functionalAreaTaxonomy, functionalAreaTerm); } recordsType = recordsTypesTaxonomy.GetSelectedRecordsType(recordsTypePath); SelectedRecordsTypeDescription.Text = recordsType.Description; break; } case VIEW_BY_SUBJECT: { Term subjectTagsTerm = subjectTagsTaxonomy.GetSelectedTermByPath(SelectedNodePath); if (subjectTagsTerm != null) { subjectTag = new WBTerm(subjectTagsTaxonomy, subjectTagsTerm); SelectedRecordsTypeDescription.Text = subjectTag.Description; } if (subjectTag == null) { WBLogging.Generic.Verbose("Did not find subject with path: " + SelectedNodePath); return; } break; } default: return; } String recordsLibraryURL = WBFWebPartsUtils.GetRecordsLibraryURL(SPContext.Current.Site); using (SPSite site = new SPSite(recordsLibraryURL)) { using (SPWeb web = site.OpenWeb()) { WBQuery query = new WBQuery(); if (recordsType == null && functionalArea == null) { query.LogicallyCannotHaveResults = true; } else { if (SelectedView == VIEW_BY_FUNCTION_THEN_TYPE) { query.FilterByFolderPath = WBUtils.PrepareFilenameForPublicWeb(SelectedNodePath); } else { if (recordsType != null) { WBQueryClause recordsTypeClause = new WBQueryClause(WBColumn.RecordsType, WBQueryClause.Comparators.Equals, recordsType); recordsTypeClause.UseDescendants = true; query.AddClause(recordsTypeClause); } if (functionalArea != null) { WBQueryClause functionalAreaClause = new WBQueryClause(WBColumn.FunctionalArea, WBQueryClause.Comparators.Equals, functionalArea); functionalAreaClause.UseDescendants = true; query.AddClause(functionalAreaClause); } } //query.AddClause(new WBQueryClause(WBColumn.ContentType, WBQueryClause.Comparators.Equals, WorkBox.WORK_BOX_RECORD_CONTENT_TYPE)); if (subjectTag != null) { WBQueryClause subjectTagClause = new WBQueryClause(WBColumn.SubjectTags, WBQueryClause.Comparators.Equals, subjectTag); subjectTagClause.UseDescendants = false; query.AddClause(subjectTagClause); } string protectiveZoneFilter = "Public"; // Request.QueryString["ProtectiveZone"]; if (protectiveZoneFilter != null && protectiveZoneFilter != "") { query.AddEqualsFilter(WBColumn.ProtectiveZone, protectiveZoneFilter); } } query.AddViewColumn(WBColumn.Name); query.AddViewColumn(WBColumn.Title); query.AddViewColumn(WBColumn.FileSize); query.AddViewColumn(WBColumn.FileTypeIcon); query.AddViewColumn(WBColumn.FileType); query.AddViewColumn(WBColumn.TitleOrName); query.AddViewColumn(WBColumn.DisplayFileSize); query.AddViewColumn(WBColumn.EncodedAbsoluteURL); //query.AddViewColumn(WBColumn.FunctionalArea); //query.AddViewColumn(WBColumn.OwningTeam); query.AddViewColumn(WBColumn.ReferenceDate); query.AddViewColumn(WBColumn.DeclaredRecord); //query.AddViewColumn(WBColumn.ReferenceID); //query.AddViewColumn(WBColumn.SeriesTag); //query.AddViewColumn(WBColumn.ProtectiveZone); if (SelectedView != VIEW_BY_SUBJECT) { query.AddViewColumn(WBColumn.SubjectTags); } else { query.AddViewColumn(WBColumn.RecordsType); } if (sortColumn != null) { query.OrderBy(sortColumn, ascending); } SPList recordsLibrary = web.GetList(recordsLibraryURL); //"Documents"]; //farm.RecordsCenterRecordsLibraryName]; DataTable dataTable = recordsLibrary.WBxGetDataTable(site, query); ShowResults.DataSource = dataTable; ShowResults.Columns.Clear(); ShowResults.Columns.Add(WBUtils.DynamicIconTemplateField(WBColumn.FileTypeIcon, WBColumn.EncodedAbsoluteURL)); ShowResults.Columns.Add(WBUtils.HyperLinkField(WBColumn.TitleOrName, WBColumn.EncodedAbsoluteURL, sortColumn, ascending)); // ShowResults.Columns.Add(WBUtils.HyperLinkField(WBColumn.Name, WBColumn.EncodedAbsoluteURL, sortColumn, ascending)); //ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.FunctionalArea, sortColumn, ascending)); //ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.OwningTeam, sortColumn, ascending)); ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.FileType, sortColumn, ascending)); ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.DisplayFileSize, sortColumn, ascending)); ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.ReferenceDate, sortColumn, ascending)); //ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.DeclaredRecord, sortColumn, ascending)); //ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.ReferenceID, sortColumn, ascending)); //ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.SeriesTag, sortColumn, ascending)); //ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.ProtectiveZone, sortColumn, ascending)); /* * if (SelectedView != VIEW_BY_SUBJECT) * { * ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.SubjectTags, sortColumn, ascending)); * } * else * { * ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.RecordsType, sortColumn, ascending)); * } */ ShowResults.DataBind(); } } } else { WBUtils.logMessage("SelectedNodePath was empty"); } }
private void RefreshBoundData() { //if (SelectedNodePath != "") // { // SelectedRecordsType.Text = SelectedNodePath.Replace("Records Types/", "").Replace("/", " / "); WBRecordsType recordsType = null; WBTerm functionalArea = null; WBTerm subjectTag = null; /* * switch (SelectedView) * { * case VIEW_BY_RECORDS_TYPE: * { * recordsType = recordsTypesTaxonomy.GetSelectedRecordsType(SelectedNodePath); * // SelectedRecordsTypeDescription.Text = recordsType.Description; * break; * } * * case VIEW_BY_FUNCTION_THEN_TYPE: * { * string[] parts = SelectedNodePath.Split('/'); * if (parts.Length < 3) return; * * string functionPath = parts[0]; * List<String> partsList = new List<String>(parts); * partsList.RemoveAt(0); * string recordsTypePath = String.Join("/", partsList.ToArray()); * * Term functionalAreaTerm = functionalAreaTaxonomy.GetSelectedTermByPath(functionPath); * if (functionalAreaTerm != null) * { * functionalArea = new WBTerm(functionalAreaTaxonomy, functionalAreaTerm); * } * * recordsType = recordsTypesTaxonomy.GetSelectedRecordsType(recordsTypePath); * // SelectedRecordsTypeDescription.Text = recordsType.Description; * break; * } * * case VIEW_BY_SUBJECT: * { * Term subjectTagsTerm = subjectTagsTaxonomy.GetSelectedTermByPath(SelectedNodePath); * if (subjectTagsTerm != null) * { * subjectTag = new WBTerm(subjectTagsTaxonomy, subjectTagsTerm); * SelectedRecordsTypeDescription.Text = subjectTag.Description; * } * * if (subjectTag == null) * { * WBLogging.Debug("Did not find subject with path: " + SelectedNodePath); * return; * } * break; * } * * * default: return; * * } */ WBTeam team = null; if (!String.IsNullOrEmpty(webPart.FilterByOwningTeam)) { team = teamsTaxonomy.GetSelectedTeam(webPart.FilterByOwningTeam); } if (team == null) { team = WBTeam.GetFromTeamSite(teamsTaxonomy, SPContext.Current.Web); } if (team == null) { WBUtils.shouldThrowError("There was no team configured - so we'll jus stop"); return; } WBFarm farm = WBFarm.Local; using (SPSite site = new SPSite(farm.ProtectedRecordsLibraryUrl)) { using (SPWeb web = site.OpenWeb()) { WBQuery query = new WBQuery(); if (recordsType != null) { WBQueryClause recordsTypeClause = new WBQueryClause(WBColumn.RecordsType, WBQueryClause.Comparators.Equals, recordsType); recordsTypeClause.UseDescendants = true; query.AddClause(recordsTypeClause); } if (functionalArea != null) { WBQueryClause functionalAreaClause = new WBQueryClause(WBColumn.FunctionalArea, WBQueryClause.Comparators.Equals, functionalArea); functionalAreaClause.UseDescendants = true; query.AddClause(functionalAreaClause); } if (subjectTag != null) { WBQueryClause subjectTagClause = new WBQueryClause(WBColumn.SubjectTags, WBQueryClause.Comparators.Equals, subjectTag); subjectTagClause.UseDescendants = false; query.AddClause(subjectTagClause); } if (team != null) { query.AddEqualsFilter(WBColumn.OwningTeam, team); } //if (!String.IsNullOrEmpty(webPart.FilterByProtectiveZone)) // { // query.AddEqualsFilter(WBColumn.ProtectiveZone, webPart.FilterByProtectiveZone); //} query.AddViewColumn(WBColumn.Name); query.AddViewColumn(WBColumn.Title); query.AddViewColumn(WBColumn.TitleOrName); // query.AddViewColumn(WBColumn.FileSize); query.AddViewColumn(WBColumn.FileTypeIcon); // query.AddViewColumn(WBColumn.FileType); // query.AddViewColumn(WBColumn.DisplayFileSize); query.AddViewColumn(WBColumn.EncodedAbsoluteURL); // query.AddViewColumn(WBColumn.FunctionalArea); // query.AddViewColumn(WBColumn.OwningTeam); query.AddViewColumn(WBColumn.ReferenceDate); query.AddViewColumn(WBColumn.DeclaredRecord); query.AddViewColumn(WBColumn.SeriesTag); // query.AddViewColumn(WBColumn.ProtectiveZone); if (SelectedView != VIEW_BY_SUBJECT) { query.AddViewColumn(WBColumn.SubjectTags); } else { query.AddViewColumn(WBColumn.RecordsType); } if (sortColumn == null) { sortColumn = WBColumn.DeclaredRecord; ascending = false; } if (sortColumn != null) { query.OrderBy(sortColumn, ascending); } SPList recordsLibrary = web.GetList(farm.ProtectedRecordsLibraryUrl); //"Documents"]; //farm.RecordsCenterRecordsLibraryName]; DataTable dataTable = recordsLibrary.WBxGetDataTable(site, query); ShowResults.DataSource = dataTable; ShowResults.Columns.Clear(); ShowResults.Columns.Add(WBUtils.DynamicIconTemplateField(WBColumn.FileTypeIcon, WBColumn.EncodedAbsoluteURL)); ShowResults.Columns.Add(WBUtils.HyperLinkField(WBColumn.TitleOrName, WBColumn.EncodedAbsoluteURL, sortColumn, ascending)); // ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.FileType, sortColumn, ascending)); // ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.DisplayFileSize, sortColumn, ascending)); // ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.FunctionalArea, sortColumn, ascending)); ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.ReferenceDate, sortColumn, ascending)); // ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.ReferenceID, sortColumn, ascending)); //ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.SeriesTag, sortColumn, ascending)); // ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.OwningTeam, sortColumn, ascending)); // ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.ProtectiveZone, sortColumn, ascending)); /* * if (SelectedView != VIEW_BY_SUBJECT) * { * ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.SubjectTags, sortColumn, ascending)); * } * else * { * ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.RecordsType, sortColumn, ascending)); * } */ ShowResults.DataBind(); } } /* * } * else * { * WBUtils.logMessage("SelectedNodePath was empty"); * } */ }
protected void Page_Load(object sender, EventArgs e) { WBLogging.Debug("In Page_Load for the public doc metadata dialog"); manager = new WBRecordsManager(SPContext.Current.Web.CurrentUser.LoginName); // If this is the initial call to the page then we need to load the basic details of the document we're publishing out: if (!IsPostBack) { process = WBUtils.DeserializeFromCompressedJSONInURI <WBPublishingProcess>(Request.QueryString["PublishingProcessJSON"]); process.WorkBox = WorkBox; WBLogging.Debug("Created the WBProcessObject"); PublishingProcessJSON.Value = WBUtils.SerializeToCompressedJSONForURI(process); WBLogging.Debug("Serialized the WBProcessObject to hidden field"); NewRadioButton.Checked = true; NewOrReplace.Text = "New"; pageRenderingRequired = true; } else { process = WBUtils.DeserializeFromCompressedJSONInURI <WBPublishingProcess>(PublishingProcessJSON.Value.WBxTrim()); process.WorkBox = WorkBox; CaptureChanges(); // By default we should not be rendering the page on a post back call pageRenderingRequired = false; } if (errorMessage.Length > 0) { ErrorMessageLabel.Text = errorMessage; return; } // Let's clear out all of the error messages text fields: ErrorMessageLabel.Text = ""; ReferenceIDMessage.Text = ""; ReferenceDateMessage.Text = ""; SeriesTagFieldMessage.Text = ""; ScanDateMessage.Text = ""; OwningTeamFieldMessage.Text = ""; InvolvedTeamsFieldMessage.Text = ""; PublishingLocationError.Text = ""; ShortTitleError.Text = ""; if (IsPostBack) { // If this is a post back - then let's check if the records type has been modified: if (!String.IsNullOrEmpty(UpdatedPublishingProcessJSON.Value)) { WBLogging.Generic.Unexpected("The returned value was: " + UpdatedPublishingProcessJSON.Value); process = WBUtils.DeserializeFromCompressedJSONInURI <WBPublishingProcess>(UpdatedPublishingProcessJSON.Value.WBxTrim()); process.WorkBox = WorkBox; CaptureChanges(); // Now set the title and subject tags from the record that is going to be replaced: process.CurrentShortTitle = process.ToReplaceShortTitle; process.SubjectTagsUIControlValue = process.ToReplaceSubjectTagsUIControlValue; // Now blanking this hidden field so that it doesn't trigger a recapture each time! UpdatedPublishingProcessJSON.Value = ""; pageRenderingRequired = true; } else { // Otherwise we are in a normal post back call. pageRenderingRequired = false; } } destinationType = process.ProtectiveZone; // Now load up some of the basic details: if (String.IsNullOrEmpty(process.RecordsTypeUIControlValue)) { showReferenceID = false; showReferenceDate = false; showSubjectTags = true; showSeriesTag = false; showScanDate = false; } else { documentRecordsType = new WBRecordsType(process.RecordsTypeTaxonomy, process.RecordsTypeUIControlValue); // Which of the metadata fields are being used in the form (or will need to be processed in any postback) : showReferenceID = documentRecordsType.DocumentReferenceIDRequirement != WBRecordsType.METADATA_REQUIREMENT__HIDDEN; showReferenceDate = documentRecordsType.DocumentReferenceDateRequirement != WBRecordsType.METADATA_REQUIREMENT__HIDDEN; showSubjectTags = true; // documentRecordsType.DocumentSubjectTagsRequirement != WBRecordsType.METADATA_REQUIREMENT__HIDDEN; showSeriesTag = documentRecordsType.DocumentSeriesTagRequirement != WBRecordsType.METADATA_REQUIREMENT__HIDDEN; showScanDate = documentRecordsType.DocumentScanDateRequirement != WBRecordsType.METADATA_REQUIREMENT__HIDDEN; } if (!String.IsNullOrEmpty(process.FunctionalAreaUIControlValue)) { documentFunctionalArea = new WBTerm(process.FunctionalAreasTaxonomy, process.FunctionalAreaUIControlValue); } else { documentFunctionalArea = null; } if (pageRenderingRequired) { WBLogging.Debug("In Page_Load calling RenderPage()"); RenderPage(); } }
protected void Page_Load(object sender, EventArgs e) { string relatedWorkBoxUrl = ""; string recordsTypeGUIDString = ""; // Set the reference date control to match the locally set locale: ReferenceDate.LocaleId = SPContext.Current.Web.Locale.LCID; recordsTypes = WBTaxonomy.GetRecordsTypes(SPContext.Current.Site); teams = WBTaxonomy.GetTeams(recordsTypes); seriesTags = WBTaxonomy.GetSeriesTags(recordsTypes); functionalAreas = WBTaxonomy.GetFunctionalAreas(recordsTypes); if (!IsPostBack) { WorkBoxCollectionUrl.Value = Request.QueryString["workBoxCollectionUrl"]; pageRenderingRequired = true; recordsTypeGUIDString = Request.QueryString["recordsTypeGUID"]; RecordsTypeGUID.Value = recordsTypeGUIDString; if (recordsTypeGUIDString != "") { workBoxRecordsType = recordsTypes.GetRecordsType(new Guid(recordsTypeGUIDString)); } else { WBLogging.Generic.Unexpected("The records type GUID appears to be blank in initial call to page!"); } // Now to setup some default intiail values: ReferenceDate.SelectedDate = DateTime.Now; functionalAreaFieldIsEditable = workBoxRecordsType.IsFunctionalAreaEditable; string owningTeamGuidString = Request.QueryString["owningTeamGUID"]; WBTeam owningTeam = null; if (owningTeamGuidString != null && !owningTeamGuidString.Equals("")) { owningTeam = teams.GetTeam(new Guid(owningTeamGuidString)); OwningTeamField.Text = owningTeam.Name; // UIControlValue; OwningTeamUIControlValue.Value = owningTeam.UIControlValue; InvolvedTeamsField.Text = owningTeam.UIControlValue; } relatedWorkBoxUrl = Request.QueryString["relatedWorkBoxURL"]; RelatedWorkBoxUrl.Value = relatedWorkBoxUrl; RelationType.Value = Request.QueryString["relationType"]; if (relatedWorkBoxUrl != null && relatedWorkBoxUrl != "") { relatedWorkBox = new WorkBox(relatedWorkBoxUrl); ReferenceID.Text = relatedWorkBox.ReferenceID; WBTerm seriesTag = relatedWorkBox.SeriesTag(seriesTags); if (seriesTag != null) { seriesTagInitialValue = seriesTag.UIControlValue; } owningTeam = relatedWorkBox.OwningTeam; OwningTeamField.Text = owningTeam.Name; // UIControlValue; OwningTeamUIControlValue.Value = owningTeam.UIControlValue; InvolvedTeamsField.Text = relatedWorkBox.InvolvedTeams.UIControlValue; } // Now let's setup the initial value for the functional area: if (functionalAreaFieldIsEditable) { functionalAreaInitialValue = workBoxRecordsType.DefaultFunctionalAreaUIControlValue; if (functionalAreaInitialValue == null || functionalAreaInitialValue == "") { if (owningTeam != null) { functionalAreaInitialValue = owningTeam.FunctionalArea(functionalAreas).UIControlValue; } } } else { functionalAreaInitialValue = workBoxRecordsType.DefaultFunctionalAreaUIControlValue; } } else { WBUtils.logMessage("In the postback with workBoxCollectionUrl = " + WorkBoxCollectionUrl.Value); pageRenderingRequired = false; relatedWorkBoxUrl = RelatedWorkBoxUrl.Value; recordsTypeGUIDString = RecordsTypeGUID.Value; if (recordsTypeGUIDString != "") { workBoxRecordsType = recordsTypes.GetRecordsType(new Guid(recordsTypeGUIDString)); } else { WBLogging.Generic.Unexpected("The records type GUID appears to be blank in postback!"); } } if (pageRenderingRequired) { renderPage(); } }
protected override void Render(HtmlTextWriter writer) { WorkBox workBox = WorkBox.GetIfWorkBox(SPContext.Current); if (workBox == null) { errorLiteral.Text = "<i>(You can only use this web part in a work box)</i>"; } else { WBTaxonomy recordsTypes = WBTaxonomy.GetRecordsTypes(SPContext.Current.Site); WBTaxonomy seriesTags = WBTaxonomy.GetSeriesTags(recordsTypes); WBTerm thisSeries = workBox.SeriesTag(seriesTags); WBQuery query = new WBQuery(); query.AddEqualsFilter(WBColumn.RecordsType, workBox.RecordsType); if (FilterBySeriesTag) { query.AddEqualsFilter(WBColumn.SeriesTag, workBox.SeriesTag(seriesTags)); } if (FilterByReferenceID) { query.AddEqualsFilter(WBColumn.ReferenceID, workBox.ReferenceID); } // if (FilterByOwningTeam) // query.AddEqualsFilter(WBColumn.OwningTeam, workBox.OwningTeam); if (sortColumn != null) { WBLogging.Debug("Sorting in Render with sortColumn: " + sortColumn.DisplayName); } else { WBLogging.Debug("Sorting Render - sortColumn was null"); } if (sortColumn != null) { query.OrderBy(sortColumn, ascending); } query.AddViewColumn(WBColumn.Title); query.AddViewColumn(WBColumn.WorkBoxURL); query.AddViewColumn(WBColumn.ReferenceDate); query.AddViewColumn(WBColumn.WorkBoxStatus); WBColumn testIfIsThisWorkBox = new WBColumn("IfIsThisWorkBox", WBColumn.DataTypes.VirtualConditional); testIfIsThisWorkBox.TestColumnInternalName = WBColumn.Title.InternalName; testIfIsThisWorkBox.TestColumnValue = workBox.Title; testIfIsThisWorkBox.ValueIfEqual = "===>"; query.AddViewColumn(testIfIsThisWorkBox); DataTable dataTable = workBox.Collection.Query(query); gridView.DataSource = new DataView(dataTable); BoundField testIfIsThisWorkBoxField = WBUtils.BoundField(testIfIsThisWorkBox, HorizontalAlign.Center, sortColumn, ascending); testIfIsThisWorkBoxField.HeaderText = " "; gridView.Columns.Add(testIfIsThisWorkBoxField); gridView.Columns.Add(WBUtils.FixedIconTemplateField(WorkBox.ICON_16_IMAGE_URL, WBColumn.WorkBoxURL)); gridView.Columns.Add(WBUtils.HyperLinkField(WBColumn.Title, WBColumn.WorkBoxURL, sortColumn, ascending)); gridView.Columns.Add(WBUtils.BoundField(WBColumn.ReferenceDate, sortColumn, ascending)); gridView.Columns.Add(WBUtils.BoundField(WBColumn.WorkBoxStatus, HorizontalAlign.Center, sortColumn, ascending)); gridView.DataBind(); if (ShowCreateNewLink) { string createNewText = workBox.RecordsType.CreateNewWorkBoxText; string createNewURL = workBox.Collection.GetUrlForNewDialog(workBox, WorkBox.RELATION_TYPE__DYNAMIC); createNewLink.Text = "<a href=\"#\" onclick=\"javascript: WorkBoxFramework_commandAction('" + createNewURL + "', 600, 500); \">" + createNewText + "</a>"; } workBox.Dispose(); } base.Render(writer); }
private void RefreshBoundData() { if (SelectedNodePath != "") { SelectedRecordsType.Text = SelectedNodePath.Replace("Records Types/", "").Replace("/", " / "); WBRecordsType recordsType = null; WBTerm functionalArea = null; WBTerm subjectTag = null; switch (SelectedView) { case VIEW_BY_RECORDS_TYPE: { recordsType = recordsTypesTaxonomy.GetSelectedRecordsType(SelectedNodePath); SelectedRecordsTypeDescription.Text = recordsType.Description; break; } case VIEW_BY_FUNCTION_THEN_TYPE: { string[] parts = SelectedNodePath.Split('/'); if (parts.Length < 3) { return; } string functionPath = parts[0]; List <String> partsList = new List <String>(parts); partsList.RemoveAt(0); string recordsTypePath = String.Join("/", partsList.ToArray()); Term functionalAreaTerm = functionalAreaTaxonomy.GetSelectedTermByPath(functionPath); if (functionalAreaTerm != null) { functionalArea = new WBTerm(functionalAreaTaxonomy, functionalAreaTerm); } recordsType = recordsTypesTaxonomy.GetSelectedRecordsType(recordsTypePath); SelectedRecordsTypeDescription.Text = recordsType.Description; break; } case VIEW_BY_SUBJECT: { Term subjectTagsTerm = subjectTagsTaxonomy.GetSelectedTermByPath(SelectedNodePath); if (subjectTagsTerm != null) { subjectTag = new WBTerm(subjectTagsTaxonomy, subjectTagsTerm); SelectedRecordsTypeDescription.Text = subjectTag.Description; } if (subjectTag == null) { WBLogging.Debug("Did not find subject with path: " + SelectedNodePath); return; } break; } default: return; } WBTeam team = WBTeam.GetFromTeamSite(teamsTaxonomy, SPContext.Current.Web); String recordsLibraryURL = WBFWebPartsUtils.GetRecordsLibraryURL(SPContext.Current.Site); if (Request.QueryString["Library"] == "Extranet") { recordsLibraryURL = WBFWebPartsUtils.GetExtranetLibraryURL(SPContext.Current.Site); } using (SPSite site = new SPSite(recordsLibraryURL)) { using (SPWeb web = site.OpenWeb()) { WBQuery query = new WBQuery(); if (recordsType != null) { WBQueryClause recordsTypeClause = new WBQueryClause(WBColumn.RecordsType, WBQueryClause.Comparators.Equals, recordsType); recordsTypeClause.UseDescendants = true; query.AddClause(recordsTypeClause); } if (functionalArea != null) { WBQueryClause functionalAreaClause = new WBQueryClause(WBColumn.FunctionalArea, WBQueryClause.Comparators.Equals, functionalArea); functionalAreaClause.UseDescendants = true; query.AddClause(functionalAreaClause); } if (subjectTag != null) { WBQueryClause subjectTagClause = new WBQueryClause(WBColumn.SubjectTags, WBQueryClause.Comparators.Equals, subjectTag); subjectTagClause.UseDescendants = false; query.AddClause(subjectTagClause); } if (team != null) { query.AddEqualsFilter(WBColumn.InvolvedTeams, team); } // string protectiveZoneFilter = "Public"; // Request.QueryString["ProtectiveZone"]; // if (protectiveZoneFilter != null && protectiveZoneFilter != "") // { // query.AddEqualsFilter(WBColumn.ProtectiveZone, protectiveZoneFilter); // } query.AddViewColumn(WBColumn.Name); query.AddViewColumn(WBColumn.Title); query.AddViewColumn(WBColumn.FileSize); query.AddViewColumn(WBColumn.FileTypeIcon); query.AddViewColumn(WBColumn.FileType); query.AddViewColumn(WBColumn.TitleOrName); query.AddViewColumn(WBColumn.DisplayFileSize); query.AddViewColumn(WBColumn.RecordID); query.AddViewColumn(WBColumn.EncodedAbsoluteURL); query.AddViewColumn(WBColumn.ReferenceDate); query.AddViewColumn(WBColumn.ReferenceID); query.AddViewColumn(WBColumn.ProtectiveZone); query.AddViewColumn(WBColumn.DeclaredRecord); if (SelectedView != VIEW_BY_SUBJECT) { query.AddViewColumn(WBColumn.SubjectTags); } else { query.AddViewColumn(WBColumn.RecordsType); } if (sortColumn == null) { sortColumn = WBColumn.DeclaredRecord; ascending = false; } if (sortColumn != null) { query.OrderBy(sortColumn, ascending); } SPList recordsLibrary = web.GetList(recordsLibraryURL); //"Documents"]; //farm.RecordsCenterRecordsLibraryName]; DataTable dataTable = recordsLibrary.WBxGetDataTable(site, query); ShowResults.DataSource = dataTable; ShowResults.Columns.Clear(); ButtonField buttonField = new ButtonField(); buttonField.Text = "Select"; buttonField.CommandName = "Select Document"; ShowResults.Columns.Add(buttonField); ShowResults.Columns.Add(WBUtils.DynamicIconTemplateField(WBColumn.FileTypeIcon, WBColumn.EncodedAbsoluteURL)); ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.Title, sortColumn, ascending)); ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.Name, sortColumn, ascending)); ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.DeclaredRecord, sortColumn, ascending)); ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.ProtectiveZone, sortColumn, ascending)); ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.RecordID, sortColumn, ascending)); // BoundField test = WBUtils.BoundField(WBColumn.ServerURL, sortColumn, ascending); // test.Hid // ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.FunctionalArea, sortColumn, ascending)); //ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.OwningTeam, sortColumn, ascending)); // ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.ReferenceDate, sortColumn, ascending)); // ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.ReferenceID, sortColumn, ascending)); //ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.SeriesTag, sortColumn, ascending)); //if (SelectedView != VIEW_BY_SUBJECT) // { // ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.SubjectTags, sortColumn, ascending)); // } //else // { // ShowResults.Columns.Add(WBUtils.BoundField(WBColumn.RecordsType, sortColumn, ascending)); // } ShowResults.DataBind(); } } } else { WBUtils.logMessage("SelectedNodePath was empty"); } }