diff --git a/Dnn.CommunityForums/Controllers/ModerationController.cs b/Dnn.CommunityForums/Controllers/ModerationController.cs index 275c14474..7a60e46ce 100644 --- a/Dnn.CommunityForums/Controllers/ModerationController.cs +++ b/Dnn.CommunityForums/Controllers/ModerationController.cs @@ -1,4 +1,4 @@ -// +// // Community Forums // Copyright (c) 2013-2024 // by DNN Community @@ -51,23 +51,23 @@ internal static bool SendModerationNotification(int PortalId, int TabId, int Mod { DotNetNuke.Modules.ActiveForums.Entities.ReplyInfo reply = new DotNetNuke.Modules.ActiveForums.Controllers.ReplyController().GetById(ReplyId); subject = Utilities.GetSharedResource("NotificationSubjectReply"); - subject = subject.Replace("[DisplayName]", reply.Content.AuthorName); - subject = subject.Replace("[TopicSubject]", reply.Topic.Content.Subject); + subject = subject.Replace("[DisplayName]", reply.Content?.AuthorName); + subject = subject.Replace("[TopicSubject]", reply.Topic?.Content.Subject); body = Utilities.GetSharedResource("NotificationBodyReply"); - body = body.Replace("[DisplayName]", reply.Content.AuthorName); - body = body.Replace("[TopicSubject]", reply.Content.Subject); + body = body.Replace("[DisplayName]", reply.Content?.AuthorName); + body = body.Replace("[TopicSubject]", reply.Content?.Subject); authorId = reply.Content.AuthorId; } else { - DotNetNuke.Modules.ActiveForums.Entities.ReplyInfo reply = new DotNetNuke.Modules.ActiveForums.Controllers.ReplyController().GetById(ReplyId); - subject = Utilities.GetSharedResource("NotificationSubjectReply"); - subject = subject.Replace("[DisplayName]", reply.Content.AuthorName); - subject = subject.Replace("[TopicSubject]", reply.Topic.Content.Subject); - body = Utilities.GetSharedResource("NotificationBodyReply"); - body = body.Replace("[DisplayName]", reply.Content.AuthorName); - body = body.Replace("[TopicSubject]", reply.Content.Subject); - authorId = reply.Content.AuthorId; + DotNetNuke.Modules.ActiveForums.Entities.TopicInfo topic = new DotNetNuke.Modules.ActiveForums.Controllers.TopicController().GetById(TopicId); + subject = Utilities.GetSharedResource("NotificationSubjectTopic"); + subject = subject.Replace("[DisplayName]", topic.Content?.AuthorName); + subject = subject.Replace("[TopicSubject]", topic.Content?.Subject); + body = Utilities.GetSharedResource("NotificationBodyTopic"); + body = body.Replace("[DisplayName]", topic.Content?.AuthorName); + body = body.Replace("[TopicSubject]", topic.Content?.Subject); + authorId = topic.Content.AuthorId; } string modLink = Utilities.NavigateURL(TabId, string.Empty, new[] { $"{ParamKeys.ViewType}={Views.ModerateTopics}", $"{ParamKeys.ForumId}={ForumId}" }); body = body.Replace("[MODLINK]", modLink); diff --git a/Dnn.CommunityForums/CustomControls/HTML/TopicBrowser.cs b/Dnn.CommunityForums/CustomControls/HTML/TopicBrowser.cs index 668de4f4a..742b126c8 100644 --- a/Dnn.CommunityForums/CustomControls/HTML/TopicBrowser.cs +++ b/Dnn.CommunityForums/CustomControls/HTML/TopicBrowser.cs @@ -394,8 +394,9 @@ private string ParseDataRow(IDataRecord row, string tmp) if (int.Parse(row["LastAuthorId"].ToString()) == -1) { try - { - tmp = tmp.Replace("[LASTAUTHOR]", UserProfiles.GetDisplayName(ModuleId, true, ForumUser.Profile.IsMod, ForumUser.IsAdmin || ForumUser.IsSuperUser, -1, auth.Username, auth.FirstName, auth.LastName, auth.DisplayName)); + { + DotNetNuke.Entities.Portals.PortalSettings portalSettings = Utilities.GetPortalSettings(PortalId); + tmp = tmp.Replace("[LASTAUTHOR]", UserProfiles.GetDisplayName(portalSettings, ModuleId, true, ForumUser.Profile.IsMod, ForumUser.IsAdmin || ForumUser.IsSuperUser, -1, auth.Username, auth.FirstName, auth.LastName, auth.DisplayName)); } catch (Exception ex) { @@ -404,8 +405,9 @@ private string ParseDataRow(IDataRecord row, string tmp) } else - { - tmp = tmp.Replace("[LASTAUTHOR]", UserProfiles.GetDisplayName(ModuleId, true, ForumUser.Profile.IsMod, ForumUser.IsAdmin || ForumUser.IsSuperUser, int.Parse(row["LastAuthorId"].ToString()), auth.Username, auth.FirstName, auth.LastName, auth.DisplayName)); + { + DotNetNuke.Entities.Portals.PortalSettings portalSettings = Utilities.GetPortalSettings(PortalId); + tmp = tmp.Replace("[LASTAUTHOR]", UserProfiles.GetDisplayName(portalSettings, ModuleId, true, ForumUser.Profile.IsMod, ForumUser.IsAdmin || ForumUser.IsSuperUser, int.Parse(row["LastAuthorId"].ToString()), auth.Username, auth.FirstName, auth.LastName, auth.DisplayName)); } if (_canEdit) diff --git a/Dnn.CommunityForums/CustomControls/UserControls/ForumView.cs b/Dnn.CommunityForums/CustomControls/UserControls/ForumView.cs index b18648538..98b091a6b 100644 --- a/Dnn.CommunityForums/CustomControls/UserControls/ForumView.cs +++ b/Dnn.CommunityForums/CustomControls/UserControls/ForumView.cs @@ -514,7 +514,7 @@ private string ParseForumRow(string Template, DotNetNuke.Modules.ActiveForums.En { bool isMod = CurrentUserType == CurrentUserTypes.Admin || CurrentUserType == CurrentUserTypes.ForumMod || CurrentUserType == CurrentUserTypes.SuperUser; bool isAdmin = CurrentUserType == CurrentUserTypes.Admin || CurrentUserType == CurrentUserTypes.SuperUser; - Template = Template.Replace("[DISPLAYNAME]", " " + UserProfiles.GetDisplayName(ForumModuleId, true, isMod, isAdmin, fi.LastPostUserID, fi.LastPostUserName, fi.LastPostFirstName, fi.LastPostLastName, fi.LastPostDisplayName)); + Template = Template.Replace("[DISPLAYNAME]", " " + UserProfiles.GetDisplayName(PortalSettings, ForumModuleId, true, isMod, isAdmin, fi.LastPostUserID, fi.LastPostUserName, fi.LastPostFirstName, fi.LastPostLastName, fi.LastPostDisplayName)); } DateTime dtLastPostDate = fi.LastPostDateTime; Template = Template.Replace("[LASTPOSTDATE]", Utilities.GetUserFormattedDateTime(dtLastPostDate,PortalId, CurrentUserId)); diff --git a/Dnn.CommunityForums/CustomControls/UserControls/TopicView.cs b/Dnn.CommunityForums/CustomControls/UserControls/TopicView.cs index 405402504..133273be7 100644 --- a/Dnn.CommunityForums/CustomControls/UserControls/TopicView.cs +++ b/Dnn.CommunityForums/CustomControls/UserControls/TopicView.cs @@ -251,11 +251,12 @@ private void LoadData(int pageId) // Get our Row Index _rowIndex = (pageId - 1) * _pageSize; - DataSet ds = (DataSet)DataCache.ContentCacheRetrieve(ForumModuleId, string.Format(CacheKeys.TopicViewForUser, ModuleId, TopicId, UserId, HttpContext.Current?.Response?.Cookies["language"]?.Value)); + string cacheKey = string.Format(CacheKeys.TopicViewForUser, ModuleId, TopicId, UserId, HttpContext.Current?.Response?.Cookies["language"]?.Value, _rowIndex, _pageSize); + DataSet ds = (DataSet)DataCache.ContentCacheRetrieve(ForumModuleId, cacheKey); if (ds == null) { ds = DataProvider.Instance().UI_TopicView(PortalId, ForumModuleId, ForumId, TopicId, UserId, _rowIndex, _pageSize, UserInfo.IsSuperUser, _defaultSort); - DataCache.ContentCacheStore(ModuleId, string.Format(CacheKeys.TopicViewForUser, ModuleId, TopicId, UserId, HttpContext.Current?.Response?.Cookies["language"]?.Value), ds); ; + DataCache.ContentCacheStore(ModuleId, cacheKey, ds); ; } // Test for a proper dataset if (ds.Tables.Count < 4 || ds.Tables[0].Rows.Count == 0 || ds.Tables[1].Rows.Count == 0) @@ -991,12 +992,14 @@ private string ParseControls(string sOutput) // View Count sbOutput.Replace("[VIEWCOUNT]", _viewCount.ToString()); + + DotNetNuke.Entities.Portals.PortalSettings portalSettings = Utilities.GetPortalSettings(PortalId); // Last Post sbOutput.Replace("[AF:LABEL:LastPostDate]", _lastPostDate); - sbOutput.Replace("[AF:LABEL:LastPostAuthor]", UserProfiles.GetDisplayName(ForumModuleId, true, _bModApprove, ForumUser.IsAdmin || ForumUser.IsSuperUser, _lastPostAuthor.AuthorId, _lastPostAuthor.Username, _lastPostAuthor.FirstName, _lastPostAuthor.LastName, _lastPostAuthor.DisplayName)); + sbOutput.Replace("[AF:LABEL:LastPostAuthor]", UserProfiles.GetDisplayName(portalSettings, ForumModuleId, true, _bModApprove, ForumUser.IsAdmin || ForumUser.IsSuperUser, _lastPostAuthor.AuthorId, _lastPostAuthor.Username, _lastPostAuthor.FirstName, _lastPostAuthor.LastName, _lastPostAuthor.DisplayName)); // Topic Info - sbOutput.Replace("[AF:LABEL:TopicAuthor]", UserProfiles.GetDisplayName(ForumModuleId, _topicAuthorId, _topicAuthorDisplayName, string.Empty, string.Empty, _topicAuthorDisplayName)); + sbOutput.Replace("[AF:LABEL:TopicAuthor]", UserProfiles.GetDisplayName(portalSettings, ForumModuleId, false, false, false, _topicAuthorId, _topicAuthorDisplayName, string.Empty, string.Empty, _topicAuthorDisplayName)); sbOutput.Replace("[AF:LABEL:TopicDateCreated]", _topicDateCreated); @@ -1443,7 +1446,7 @@ private string ParseContent(DataRow dr, string tempate, int rowcount) else { // Not Answered - if ((UserId == _topicAuthorId && !_bLocked) || _bModEdit) + if (replyId > 0 && ((UserId == _topicAuthorId && !_bLocked) || _bModEdit)) { // Can mark answer if (_useListActions) diff --git a/Dnn.CommunityForums/CustomControls/UserControls/TopicsView.cs b/Dnn.CommunityForums/CustomControls/UserControls/TopicsView.cs index 8c315767c..b1cae0eb0 100644 --- a/Dnn.CommunityForums/CustomControls/UserControls/TopicsView.cs +++ b/Dnn.CommunityForums/CustomControls/UserControls/TopicsView.cs @@ -234,11 +234,12 @@ protected override void OnLoad(EventArgs e) TopicsTemplate = TopicsTemplate.Replace("[AF:SORT:REPLYCREATED]", string.Empty); if (TopicsTemplate.Contains("[TOPICS]")) { - DataSet ds = (DataSet)DataCache.ContentCacheRetrieve(ForumModuleId, string.Format(CacheKeys.TopicsViewForUser, ModuleId, ForumId, UserId, HttpContext.Current?.Response?.Cookies["language"]?.Value)); + string cacheKey = string.Format(CacheKeys.TopicsViewForUser, ModuleId, ForumId, UserId, HttpContext.Current?.Response?.Cookies["language"]?.Value, RowIndex, PageSize); + DataSet ds = (DataSet)DataCache.ContentCacheRetrieve(ForumModuleId, cacheKey); if (ds == null) { ds = DataProvider.Instance().UI_TopicsView(PortalId, ForumModuleId, ForumId, UserId, RowIndex, PageSize, UserInfo.IsSuperUser, sort); - DataCache.ContentCacheStore(ModuleId, string.Format(CacheKeys.TopicsViewForUser, ModuleId,ForumId, UserId, HttpContext.Current?.Response?.Cookies["language"]?.Value), ds); + DataCache.ContentCacheStore(ModuleId, cacheKey, ds); } if (ds.Tables.Count > 0) { @@ -947,7 +948,7 @@ private string ParseTopics(string Template, DataTable Topics, string Section) sTopicsTemplate = sTopicsTemplate.Replace("[SUBJECT]", Subject + sPollImage); sTopicsTemplate = sTopicsTemplate.Replace("[SUBJECTLINK]", GetTopic(TabId, ForumId, TopicId, Subject, sBodyTitle, UserId, AuthorId, ReplyCount, -1, sTopicURL) + sPollImage); - var displayName = UserProfiles.GetDisplayName(ForumModuleId, true, bModApprove, ForumUser.IsAdmin || ForumUser.IsSuperUser, AuthorId, AuthorUserName, AuthorFirstName, AuthorLastName, AuthorDisplayName).ToString().Replace("&#", "&#"); + var displayName = UserProfiles.GetDisplayName(PortalSettings, ForumModuleId, true, bModApprove, ForumUser.IsAdmin || ForumUser.IsSuperUser, AuthorId, AuthorUserName, AuthorFirstName, AuthorLastName, AuthorDisplayName).ToString().Replace("&#", "&#"); if (Utilities.StripHTMLTag(displayName) == Utilities.GetSharedResource("[RESX:Anonymous]")) { displayName = displayName.Replace(Utilities.GetSharedResource("[RESX:Anonymous]"), AuthorName); @@ -1013,7 +1014,7 @@ private string ParseTopics(string Template, DataTable Topics, string Section) //sLastReplyTemp = sLastReplyTemp.Replace("[RESX:BY]", Utilities.GetSharedResource("By.Text")) if (LastReplyAuthorId > 0) { - sLastReplyTemp = sLastReplyTemp.Replace("[LASTPOSTDISPLAYNAME]", UserProfiles.GetDisplayName(ForumModuleId, true, bModApprove, ForumUser.IsAdmin || ForumUser.IsSuperUser, LastReplyAuthorId, LastReplyUserName, LastReplyFirstName, LastReplyLastName, LastReplyDisplayName).ToString().Replace("&#", "&#")); + sLastReplyTemp = sLastReplyTemp.Replace("[LASTPOSTDISPLAYNAME]", UserProfiles.GetDisplayName(PortalSettings, ForumModuleId, true, bModApprove, ForumUser.IsAdmin || ForumUser.IsSuperUser, LastReplyAuthorId, LastReplyUserName, LastReplyFirstName, LastReplyLastName, LastReplyDisplayName).ToString().Replace("&#", "&#")); } else { diff --git a/Dnn.CommunityForums/DnnCommunityForums.dnn b/Dnn.CommunityForums/DnnCommunityForums.dnn index fc02e223b..a43eefd65 100644 --- a/Dnn.CommunityForums/DnnCommunityForums.dnn +++ b/Dnn.CommunityForums/DnnCommunityForums.dnn @@ -1,6 +1,6 @@  - + DNN Community Forums DNN Community Forums: The official online forums module for the DNN Community. DesktopModules/ActiveForums/images/branding/logo/DNN-Community-Forums-Icon-64px.png @@ -86,7 +86,7 @@ DotNetNuke.Modules.ActiveForums.dll bin\DotNetNuke.Modules.ActiveForums.dll - 08.01.00 + 08.01.01 @@ -384,14 +384,19 @@ 08.01.00.SqlDataProvider 08.01.00 + - + DesktopModules\ActiveForums @@ -401,7 +406,7 @@ - + web.config @@ -424,11 +429,11 @@ - + - + DNN Community Forums What's New ActiveForumsWhatsNew @@ -498,7 +503,7 @@ - + DNN Community Forums Forums Viewer ActiveForumsViewer DNN Community Forums: Display any forum topic view on any page within your site. diff --git a/Dnn.CommunityForums/DnnCommunityForums_Symbols.dnn b/Dnn.CommunityForums/DnnCommunityForums_Symbols.dnn index ffa6e6037..3325a8e89 100644 --- a/Dnn.CommunityForums/DnnCommunityForums_Symbols.dnn +++ b/Dnn.CommunityForums/DnnCommunityForums_Symbols.dnn @@ -1,6 +1,6 @@  - + DNN Community Forums Symbols DNN Community Forums: The official online forums module for the DNN Community. @@ -16,7 +16,7 @@ True - Active Forums + Active Forums diff --git a/Dnn.CommunityForums/Properties/AssemblyInfo.cs b/Dnn.CommunityForums/Properties/AssemblyInfo.cs index 72ab60fca..fc4b82a5c 100644 --- a/Dnn.CommunityForums/Properties/AssemblyInfo.cs +++ b/Dnn.CommunityForums/Properties/AssemblyInfo.cs @@ -53,9 +53,9 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: -[assembly: AssemblyVersion("08.01.00")] +[assembly: AssemblyVersion("08.01.01")] -[assembly: AssemblyFileVersion("08.01.00")] +[assembly: AssemblyFileVersion("08.01.01")] [assembly: WebResource("DotNetNuke.Modules.ActiveForums.CustomControls.Resources.cb.js", "text/javascript")] diff --git a/Dnn.CommunityForums/ReleaseNotes.txt b/Dnn.CommunityForums/ReleaseNotes.txt index 4b774131c..f01216945 100644 --- a/Dnn.CommunityForums/ReleaseNotes.txt +++ b/Dnn.CommunityForums/ReleaseNotes.txt @@ -96,6 +96,45 @@

Release Notes


+

08.01.01

+ + + +

New Features & Enhancements

+ + +

Bug Fixes

+ + +

Tasks / Development Updates (and Technical Debt)

+
    +
  • None at this time.
  • + +
+
+

08.01.00

+ + + +

New Features & Enhancements

+
    + +
+ +

Bug Fixes

+
    + +
+ +

Tasks / Development Updates (and Technical Debt)

+
    + +
+
+ +

08.01.00

+ + + +

New Features & Enhancements

+
    +
  • NEW: Adds a new Bootstrap 4 & 5 theme/template for the forum (Issue 734, thanks @Timo-Breumelhof!)
  • +
  • NEW: A new process queue has been added to offload front-end page loads from running backend logic (Issue 376, thanks @johnhenley!)
  • +
  • NEW: Now able to independently inherit security settings into forums from the forum group (Issue 611, thanks @johnhenley!)
  • +
  • NEW: Added a button to allow a person to easily subscribe to all of the forums (Issue 593, thanks @johnhenley!)
  • +
  • NEW: Major enhancements made to how the module caches data (Issue 724, thanks @johnhenley!)
  • +
  • NEW: Adds 'ban user' options to forum moderation (Pull 800, thanks @johnhenley!)
  • +
  • NEW: Adds Announcements and Unresolved topic views to the toolbar (Issue 701, thanks @johnhenley!)
  • +
  • NEW: Add subscriber counts to topics / topic view in Bootstrap Template (Issue 707, thanks @Timo-Breumelhof!)
  • +
  • NEW: Added language pack files to support German (Pull 811, thanks @johnhenley!) + +
  • +
  • NEW: Added language pack files to support French (Pull 812, thanks @johnhenley!) + +
  • +
  • NEW: Added language pack files to support Spanish (Pull 813, thanks @johnhenley!) + +
  • +
  • NEW: Added language pack files to support Italian (Pull 814, thanks @johnhenley!)
  • +
  • UPDATED: Updated language pack files to support Dutch (Pull 815, thanks @johnhenley!)
  • +
  • UPDATE: Improved moderator notifications when banning a user account (Issue 721, thanks @johnhenley!)
  • +
  • UPDATE: Adds support for [GROUPNAME] & [FORUMGROUPID] tokens in the [GROUP] section in ForumView (Pull 795, thanks @johnhenley!)
  • +
  • UPDATE: Numerous usability improvements to Mark as Answer features (Issue 400, thanks @johnhenley!)
  • +
  • UPDATE: Added subscriber counts to topics / topic view in community-default theme (Pull 706, thanks @johnhenley!)
  • +
  • UPDATE: Replace NavigateUrl() with an INavigationManager implementation (Issue 378, thanks @johnhenley!)
  • +
  • UPDATE: Removed the now legacy mail options from the view (all notifications now use the forums mail queue) (Issue 635, thanks @johnhenley!)
  • +
  • USABILITY: Change 'Filters' in the toolbar to 'Filtered Topics' (Pulls 810, thanks @johnhenley!)
  • +
  • USABILITY: Numerous improvements to the overall experience when working with topic ratings (Issue 398, thanks @johnhenley!)
  • +
  • USABILITY: Moderator actions were not styled as buttons (Issue 661, thanks @johnhenley!)
  • +
  • USABILITY: Adds the ability for end-users to change which forums they're looking at (Issue 703, thanks @johnhenley!)
  • +
  • USABILITY: Replaced login message with a login link for unauthenticated users (Issue 781, thanks @johnhenley!)
  • +
  • USABILITY: Updated confusing verbiage when subscribing/unsubscribing to/from a topic (Issue 756, thanks @johnhenley!)
  • +
  • USABILITY: Moving post while moderating required scrolling to see the move dialog (Issue 679, thanks @johnhenley!)
  • +
  • USABILITY: Topic reply & reply editor improvements to labels (Issue 717, thanks @johnhenley!)
  • +
  • USABILITY: Improved experience when attempting to view 'unanswered' forum threads (Issue 660, thanks @johnhenley!)
  • +
  • USABILITY: Show current Theme when editing Templates (Issue 569, thanks @johnhenley!)
  • +
  • USABILITY: Add link in Control Panel forum editor to quickly go to parent Forum/Forum Group (Issue 669, thanks @johnhenley!)
  • + +
+ +

Bug Fixes

+ + +

Tasks / Development Updates (and Technical Debt)

+
    +
  • UPDATE: Updated the copyright year to 2024 (Issue 634, thanks @WillStrohl!)
  • +
  • MAINTENANCE: Remove deprecated code files (Pull 637, thanks @johnhenley!)
  • +
  • MAINTENANCE: Moved default template's _less folder into a _src folder (Issue 693, thanks @Timo-Breumelhof!)
  • +
  • MAINTENANCE: Refactored some properties for a more simplified implementation (Pull 682, thanks @johnhenley!)
  • +
  • MAINTENANCE: Updated NUnit & Moq for Unit Test Project (Pull 687, thanks @johnhenley!)
  • +
  • TECHNICAL DEBT: Code was refactored in many areas (Issue 264, thanks @johnhenley!)
  • +
  • TECHNICAL DEBT: Use constants for 'register' tags (Pull 638, thanks @johnhenley!)
  • +
  • TECHNICAL DEBT: Use DNN API constants rather than hard-coded strings for 'all users' and 'unauthenticated' users (Pull 663, thanks @johnhenley!)
  • +
  • TECHNICAL DEBT: Remove unneeded app.config file (Pull 665, thanks @johnhenley!)
  • +
  • TECHNICAL DEBT: Removed activeforums_Security and related code/database artifacts (Issue 662, thanks @johnhenley!)
  • +
  • TECHNICAL DEBT: Made dbtypes for forum/group keys consistent (Pull 536, thanks @johnhenley!)
  • +
  • TECHNICAL DEBT: Refactoring string query parameters into constants (Issue 690, thanks @johnhenley!)
  • +
  • TECHNICAL DEBT: Removed obsolete timezone offset settings and related code (Pull 704, thanks @johnhenley!)
  • +
  • TECHNICAL DEBT: Replace hardcoded strings like 'Administrators' with constants (Issue 684, thanks @johnhenley!)
  • +
  • TECHNICAL DEBT: Removed now unused legacy mini pager control (Pull 705, thanks @johnhenley!)
  • +
  • TECHNICAL DEBT: Improved security & logic in topic and reply Web APIs (Pull 745, thanks @johnhenley!)
  • +
  • TECHNICAL DEBT: Replaced legacy email code with newer, more contemporary code that utilizes the DNN API directly (Issue 164, thanks @johnhenley!)
  • +
  • TECHNICAL DEBT: Updated the 'dcf-subscribe' CSS class to 'dcf-topic-subscribe' (Issue 769, thanks @Timo-Breumelhof!)
  • +
  • TECHNICAL DEBT: Refactored & modernized entities and controllers (Issue 266, thanks @johnhenley!)
  • +
  • TECHNICAL DEBT: Removed unused variables, and duplicate file references in csproj (Pull 777, thanks @johnhenley!)
  • +
  • TECHNICAL DEBT: LastPostId needs to be a calculated property in the ForumInfo entity (Pull 793, thanks @johnhenley!)
  • + +
+
+ + \ No newline at end of file diff --git a/Dnn.CommunityForums/Services/Controllers/ReplyController.cs b/Dnn.CommunityForums/Services/Controllers/ReplyController.cs index 69029a4ad..577e5f1a2 100644 --- a/Dnn.CommunityForums/Services/Controllers/ReplyController.cs +++ b/Dnn.CommunityForums/Services/Controllers/ReplyController.cs @@ -32,29 +32,38 @@ namespace DotNetNuke.Modules.ActiveForums.Services.Controllers /// public class ReplyController : ControllerBase { + public struct ReplyDto + { + public int ForumId { get; set; } + public int TopicId { get; set; } + public int ReplyId { get; set; } + } #pragma warning disable CS1570 + /// /// Marks a reply as the answer to a topic /// - /// - /// + /// /// - /// https://dnndev.me/API/ActiveForums/Reply/MarkAsAnswer?forumId=xxx&replyId=yyy + /// https://dnndev.me/API/ActiveForums/Reply/MarkAsAnswer #pragma warning restore CS1570 [HttpPost] [DnnAuthorize] [ForumsAuthorize(SecureActions.ModEdit)] [ForumsAuthorize(SecureActions.Edit)] - public HttpResponseMessage MarkAsAnswer(int forumId, int replyId) + public HttpResponseMessage MarkAsAnswer(ReplyDto dto) { - if (forumId > 0 && replyId > 0) + int forumId = dto.ForumId; + int topicId = dto.TopicId; + int replyId = dto.ReplyId; + if (forumId > 0 && topicId > 0 && replyId > 0) { var r = new DotNetNuke.Modules.ActiveForums.Controllers.ReplyController().GetById(replyId); if (r != null) { - if ((UserInfo.UserID == r.Topic.Author.AuthorId && !r.Topic.IsLocked) || DotNetNuke.Modules.ActiveForums.Controllers.PermissionController.HasAccess(r.Topic.Forum.Security.ModEdit, string.Join(";",UserInfo.Roles))) + if ((UserInfo.UserID == r.Topic.Author.AuthorId && !r.Topic.IsLocked) || DotNetNuke.Modules.ActiveForums.Controllers.PermissionController.HasAccess(r.Topic.Forum.Security.ModEdit, string.Join(";", DotNetNuke.Modules.ActiveForums.Controllers.PermissionController.GetRoleIds(ActiveModule.PortalID, UserInfo.Roles)))) { - DataProvider.Instance().Reply_UpdateStatus(ActiveModule.PortalID, ForumModuleId, r.TopicId, replyId, UserInfo.UserID, 1, DotNetNuke.Modules.ActiveForums.Controllers.PermissionController.HasAccess(r.Topic.Forum.Security.ModEdit, string.Join(";", UserInfo.Roles))); + DataProvider.Instance().Reply_UpdateStatus(ActiveModule.PortalID, ForumModuleId, r.TopicId, replyId, UserInfo.UserID, 1, DotNetNuke.Modules.ActiveForums.Controllers.PermissionController.HasAccess(r.Topic.Forum.Security.ModEdit, string.Join(";", DotNetNuke.Modules.ActiveForums.Controllers.PermissionController.GetRoleIds(ActiveModule.PortalID, UserInfo.Roles)))); DataCache.CacheClearPrefix(ForumModuleId, string.Format(CacheKeys.TopicViewPrefix, ForumModuleId)); return Request.CreateResponse(HttpStatusCode.OK, string.Empty); } diff --git a/Dnn.CommunityForums/Services/Controllers/TopicController.cs b/Dnn.CommunityForums/Services/Controllers/TopicController.cs index 7a8767fb2..874b0f161 100644 --- a/Dnn.CommunityForums/Services/Controllers/TopicController.cs +++ b/Dnn.CommunityForums/Services/Controllers/TopicController.cs @@ -309,8 +309,8 @@ public HttpResponseMessage Update(TopicDto2 dto) originalTopic.TopicUrl = DotNetNuke.Modules.ActiveForums.Controllers.UrlController.BuildTopicUrl(PortalId: ActiveModule.PortalID, ModuleId: ForumModuleId, TopicId: topicId, subject: subject, forumInfo: originalTopic.Forum); if (dto.Topic.IsLocked != originalTopic.IsLocked && - (DotNetNuke.Modules.ActiveForums.Controllers.PermissionController.HasAccess(originalTopic.Forum.Security.Lock, string.Join(";", UserInfo.Roles)) || - DotNetNuke.Modules.ActiveForums.Controllers.PermissionController.HasAccess(originalTopic.Forum.Security.ModLock, string.Join(";", UserInfo.Roles)) + (DotNetNuke.Modules.ActiveForums.Controllers.PermissionController.HasAccess(originalTopic.Forum.Security.Lock, string.Join(";", DotNetNuke.Modules.ActiveForums.Controllers.PermissionController.GetRoleIds(ActiveModule.PortalID, UserInfo.Roles))) || + DotNetNuke.Modules.ActiveForums.Controllers.PermissionController.HasAccess(originalTopic.Forum.Security.ModLock, string.Join(";", DotNetNuke.Modules.ActiveForums.Controllers.PermissionController.GetRoleIds(ActiveModule.PortalID, UserInfo.Roles))) ) ) { @@ -318,8 +318,8 @@ public HttpResponseMessage Update(TopicDto2 dto) }; if (dto.Topic.IsPinned != originalTopic.IsPinned && - (DotNetNuke.Modules.ActiveForums.Controllers.PermissionController.HasAccess(originalTopic.Forum.Security.Pin, string.Join(";", UserInfo.Roles)) || - DotNetNuke.Modules.ActiveForums.Controllers.PermissionController.HasAccess(originalTopic.Forum.Security.ModPin, string.Join(";", UserInfo.Roles)) + (DotNetNuke.Modules.ActiveForums.Controllers.PermissionController.HasAccess(originalTopic.Forum.Security.Pin, string.Join(";", DotNetNuke.Modules.ActiveForums.Controllers.PermissionController.GetRoleIds(ActiveModule.PortalID, UserInfo.Roles))) || + DotNetNuke.Modules.ActiveForums.Controllers.PermissionController.HasAccess(originalTopic.Forum.Security.ModPin, string.Join(";", DotNetNuke.Modules.ActiveForums.Controllers.PermissionController.GetRoleIds(ActiveModule.PortalID, UserInfo.Roles))) ) ) { @@ -359,7 +359,7 @@ public HttpResponseMessage Update(TopicDto2 dto) DotNetNuke.Modules.ActiveForums.Controllers.TopicController.Save(originalTopic); Utilities.UpdateModuleLastContentModifiedOnDate(ForumModuleId); - if (DotNetNuke.Modules.ActiveForums.Controllers.PermissionController.HasAccess(originalTopic.Forum.Security.Tag, string.Join(";", UserInfo.Roles))) + if (DotNetNuke.Modules.ActiveForums.Controllers.PermissionController.HasAccess(originalTopic.Forum.Security.Tag, string.Join(";", DotNetNuke.Modules.ActiveForums.Controllers.PermissionController.GetRoleIds(ActiveModule.PortalID, UserInfo.Roles)))) { if (!string.IsNullOrEmpty(dto.Topic.Tags)) { @@ -373,7 +373,7 @@ public HttpResponseMessage Update(TopicDto2 dto) } } } - if (DotNetNuke.Modules.ActiveForums.Controllers.PermissionController.HasAccess(originalTopic.Forum.Security.Categorize, string.Join(";", UserInfo.Roles))) + if (DotNetNuke.Modules.ActiveForums.Controllers.PermissionController.HasAccess(originalTopic.Forum.Security.Categorize, string.Join(";", DotNetNuke.Modules.ActiveForums.Controllers.PermissionController.GetRoleIds(ActiveModule.PortalID, UserInfo.Roles)))) { if (!string.IsNullOrEmpty(dto.Topic.SelectedCategoriesAsString)) { diff --git a/Dnn.CommunityForums/class/Globals.cs b/Dnn.CommunityForums/class/Globals.cs index b1ef42fef..f65e20f47 100644 --- a/Dnn.CommunityForums/class/Globals.cs +++ b/Dnn.CommunityForums/class/Globals.cs @@ -422,9 +422,9 @@ public class CacheKeys public const string ForumViewPrefix = "AF-{0}-FV-"; public const string ForumViewForUser = "AF-{0}-FV-{1}-{2}-{3}"; public const string TopicViewPrefix = "AF-{0}-TV-"; - public const string TopicViewForUser = "AF-{0}-TV-{1}-{2}-{3}"; + public const string TopicViewForUser = "AF-{0}-TV-{1}-{2}-{3}-{4}-{5}"; public const string TopicsViewPrefix = "AF-{0}-TVS-"; - public const string TopicsViewForUser = "AF-{0}-TVS-{1}-{2}-{3}"; + public const string TopicsViewForUser = "AF-{0}-TVS-{1}-{2}-{3}-{4}-{5}"; public const string ForumViewTemplate = "AF-{0}-fvt-{1}"; public const string Toolbar = "AF-{0}-tb-{1}-{2}"; public const string TemplatePrefix = "AF-{0}-tmpl-"; diff --git a/Dnn.CommunityForums/class/TemplateUtils.cs b/Dnn.CommunityForums/class/TemplateUtils.cs index 45a927806..b4e2e2797 100644 --- a/Dnn.CommunityForums/class/TemplateUtils.cs +++ b/Dnn.CommunityForums/class/TemplateUtils.cs @@ -279,7 +279,7 @@ public static string ParseEmailTemplate(string template, string templateName, in var result = new StringBuilder(sOut); - result.Replace("[DISPLAYNAME]", UserProfiles.GetDisplayName(moduleID, userId, authorName, sFirstName, sLastName, sDisplayName)); + result.Replace("[DISPLAYNAME]", UserProfiles.GetDisplayName(portalSettings, moduleID,false,false,false, userId, authorName, sFirstName, sLastName, sDisplayName)); result.Replace("[USERNAME]", sUsername); result.Replace("[USERID]", userId.ToString()); result.Replace("[FORUMNAME]", fi.ForumName); @@ -627,7 +627,8 @@ public static string ParseProfileTemplate(string profileTemplate, User up, int p result.Replace("[AF:PROFILE:AVATAR]", sAvatar); // Display Name - result.Replace("[AF:PROFILE:DISPLAYNAME]", UserProfiles.GetDisplayName(moduleId, true, isMod, isAdmin, up.UserId, up.UserName, up.FirstName, up.LastName, up.DisplayName)); + DotNetNuke.Entities.Portals.PortalSettings portalSettings = Utilities.GetPortalSettings(portalId); + result.Replace("[AF:PROFILE:DISPLAYNAME]", UserProfiles.GetDisplayName(portalSettings, moduleId, true, isMod, isAdmin, up.UserId, up.UserName, up.FirstName, up.LastName, up.DisplayName)); // These fields are no longer used result.Replace("[AF:PROFILE:LOCATION]", string.Empty); diff --git a/Dnn.CommunityForums/class/UserProfiles.cs b/Dnn.CommunityForums/class/UserProfiles.cs index 40044809c..984ce2a56 100644 --- a/Dnn.CommunityForums/class/UserProfiles.cs +++ b/Dnn.CommunityForums/class/UserProfiles.cs @@ -20,6 +20,7 @@ using System; using System.Linq; +using System.Reflection; using System.Web; using DotNetNuke.Entities.Portals; using DotNetNuke.Entities.Users; @@ -51,17 +52,21 @@ public static string GetAvatar(int userID, int avatarWidth, int avatarHeight) return string.Concat(""); } } + [Obsolete("Deprecated in Community Forums. Removing in 10.00.00. Use method with PortalSettings as a parameter.")] + public static string GetDisplayName(int moduleId, int userID, string username, string firstName = "", string lastName = "", string displayName = "", string profileNameClass = "af-profile-name") => GetDisplayName(portalSettings: null, moduleId, linkProfile: false, false, false, userID, username, firstName, lastName, displayName, null, profileNameClass); + [Obsolete("Deprecated in Community Forums. Removing in 10.00.00. Use method with PortalSettings as a parameter.")] + public static string GetDisplayName(int moduleId, bool linkProfile, bool isMod, bool isAdmin, int userId, string username, string firstName = "", string lastName = "", string displayName = "", string profileLinkClass = "af-profile-link", string profileNameClass = "af-profile-name") => GetDisplayName(null, moduleId, linkProfile, isMod, isAdmin, userId, username, firstName, lastName, displayName, profileLinkClass, profileNameClass); - public static string GetDisplayName(int moduleId, int userID, string username, string firstName = "", string lastName = "", string displayName = "", string profileNameClass = "af-profile-name") + internal static string GetDisplayName(DotNetNuke.Entities.Portals.PortalSettings portalSettings, int moduleId, bool linkProfile, bool isMod, bool isAdmin, int userId, string username, string firstName = "", string lastName = "", string displayName = "", string profileLinkClass = "af-profile-link", string profileNameClass = "af-profile-name") { - return GetDisplayName(moduleId, false, false, false, userID, username, firstName, lastName, displayName, null, profileNameClass); - } - - public static string GetDisplayName(int moduleId, bool linkProfile, bool isMod, bool isAdmin, int userId, string username, string firstName = "", string lastName = "", string displayName = "", string profileLinkClass = "af-profile-link", string profileNameClass = "af-profile-name") - { - PortalSettings portalSettings = DotNetNuke.Modules.ActiveForums.Utilities.GetPortalSettings(); if (portalSettings == null) + { + portalSettings = DotNetNuke.Modules.ActiveForums.Utilities.GetPortalSettings(); + } + if (portalSettings == null) + { return null; + } var mainSettings = SettingsBase.GetModuleSettings(moduleId); diff --git a/Dnn.CommunityForums/class/UsersOnline.cs b/Dnn.CommunityForums/class/UsersOnline.cs index a1c684966..ad05accce 100644 --- a/Dnn.CommunityForums/class/UsersOnline.cs +++ b/Dnn.CommunityForums/class/UsersOnline.cs @@ -20,6 +20,7 @@ using System; using System.Text; +using DotNetNuke.Abstractions.Portals; using DotNetNuke.Entities.Portals; namespace DotNetNuke.Modules.ActiveForums @@ -38,8 +39,8 @@ public string GetUsersOnline(int portalId, int moduleId, DotNetNuke.Entities.Use { if (sb.Length > 0) sb.Append(", "); - - sb.Append(UserProfiles.GetDisplayName(moduleId, true, false, isAdmin, dr.GetInt("UserId"), dr.GetString("Username"), dr.GetString("FirstName"), dr.GetString("LastName"), dr.GetString("DisplayName"))); + var portalSettings = DotNetNuke.Modules.ActiveForums.Utilities.GetPortalSettings(portalId); + sb.Append(UserProfiles.GetDisplayName(portalSettings, moduleId, true, false, isAdmin, dr.GetInt("UserId"), dr.GetString("Username"), dr.GetString("FirstName"), dr.GetString("LastName"), dr.GetString("DisplayName"))); } dr.Close(); diff --git a/Dnn.CommunityForums/controls/af_grid.ascx b/Dnn.CommunityForums/controls/af_grid.ascx index 0754a067f..7bebbf092 100644 --- a/Dnn.CommunityForums/controls/af_grid.ascx +++ b/Dnn.CommunityForums/controls/af_grid.ascx @@ -20,15 +20,110 @@ ---%> +
+ + + + + + + +
[RESX:Subject][RESX:REPLIESHEADER][RESX:Views][RESX:LASTPOSTHEADER]
@@ -58,6 +153,7 @@
+
diff --git a/Dnn.CommunityForums/controls/af_grid.ascx.cs b/Dnn.CommunityForums/controls/af_grid.ascx.cs index 515fd06b9..87f52158b 100644 --- a/Dnn.CommunityForums/controls/af_grid.ascx.cs +++ b/Dnn.CommunityForums/controls/af_grid.ascx.cs @@ -387,8 +387,7 @@ public string GetAuthor() var firstName = _currentRow["AuthorFirstName"].ToString(); var lastName = _currentRow["AuthorLastName"].ToString(); var displayName = _currentRow["AuthorDisplayName"].ToString(); - - return UserProfiles.GetDisplayName(ForumModuleId, true, false, ForumUser.IsAdmin, userId, userName, firstName, lastName, displayName); + return UserProfiles.GetDisplayName(PortalSettings, ForumModuleId, true, false, ForumUser.IsAdmin, userId, userName, firstName, lastName, displayName); } public string GetLastPostAuthor() @@ -401,8 +400,7 @@ public string GetLastPostAuthor() var firstName = _currentRow["LastReplyFirstName"].ToString(); var lastName = _currentRow["LastReplyLastName"].ToString(); var displayName = _currentRow["LastReplyDisplayName"].ToString(); - - return UserProfiles.GetDisplayName(ForumModuleId, true, false, ForumUser.IsAdmin, userId, userName, firstName, lastName, displayName); + return UserProfiles.GetDisplayName(PortalSettings, ForumModuleId, true, false, ForumUser.IsAdmin, userId, userName, firstName, lastName, displayName); } public string GetLastPostTime() diff --git a/Dnn.CommunityForums/controls/af_post.ascx.cs b/Dnn.CommunityForums/controls/af_post.ascx.cs index 26d3bf1e0..92ff51317 100644 --- a/Dnn.CommunityForums/controls/af_post.ascx.cs +++ b/Dnn.CommunityForums/controls/af_post.ascx.cs @@ -563,13 +563,13 @@ private void PrepareReply() if (postId == TopicId) { ci = ti.Content; - sPostedBy = string.Format(sPostedBy, UserProfiles.GetDisplayName(ForumModuleId, true, false, false, ti.Content.AuthorId, ti.Author.Username, ti.Author.FirstName, ti.Author.LastName, ti.Author.DisplayName), Utilities.GetSharedResource("On.Text"), Utilities.GetUserFormattedDateTime(ti.Content.DateCreated, PortalId, UserId)); + sPostedBy = string.Format(sPostedBy, UserProfiles.GetDisplayName(PortalSettings, ForumModuleId, true, false, false, ti.Content.AuthorId, ti.Author.Username, ti.Author.FirstName, ti.Author.LastName, ti.Author.DisplayName), Utilities.GetSharedResource("On.Text"), Utilities.GetUserFormattedDateTime(ti.Content.DateCreated, PortalId, UserId)); } else { var ri = DotNetNuke.Modules.ActiveForums.Controllers.ReplyController.GetReply(postId); ci = ri.Content; - sPostedBy = string.Format(sPostedBy, UserProfiles.GetDisplayName(ForumModuleId, true, false, false, ri.Content.AuthorId, ri.Author.Username, ri.Author.FirstName, ri.Author.LastName, ri.Author.DisplayName), Utilities.GetSharedResource("On.Text"), Utilities.GetUserFormattedDateTime(ri.Content.DateCreated, PortalId, UserId)); + sPostedBy = string.Format(sPostedBy, UserProfiles.GetDisplayName(PortalSettings, ForumModuleId, true, false, false, ri.Content.AuthorId, ri.Author.Username, ri.Author.FirstName, ri.Author.LastName, ri.Author.DisplayName), Utilities.GetSharedResource("On.Text"), Utilities.GetUserFormattedDateTime(ri.Content.DateCreated, PortalId, UserId)); } if (ci != null) @@ -815,7 +815,8 @@ private void SaveTopic() try { - DataCache.ContentCacheClear(ForumModuleId, string.Format(CacheKeys.TopicViewForUser, ForumModuleId, TopicId, authorId, HttpContext.Current?.Response?.Cookies["language"]?.Value)); + DataCache.CacheClearPrefix(ForumModuleId, string.Format(CacheKeys.TopicViewPrefix, ForumModuleId)); + DataCache.CacheClearPrefix(ForumModuleId, string.Format(CacheKeys.TopicsViewPrefix, ForumModuleId)); DataCache.CacheClearPrefix(ForumModuleId, string.Format(CacheKeys.ForumViewPrefix, ForumModuleId)); if (ti.IsApproved == false) diff --git a/Dnn.CommunityForums/controls/af_profile.ascx.cs b/Dnn.CommunityForums/controls/af_profile.ascx.cs index 35b62995b..66f9ccf40 100644 --- a/Dnn.CommunityForums/controls/af_profile.ascx.cs +++ b/Dnn.CommunityForums/controls/af_profile.ascx.cs @@ -41,7 +41,7 @@ protected override void OnLoad(EventArgs e) DotNetNuke.Entities.Users.UserInfo ui = DotNetNuke.Entities.Users.UserController.Instance.GetUser(PortalId, tUid); if (ui != null) { - sDisplayName = UserProfiles.GetDisplayName(ModuleId, ui.UserID, ui.Username, ui.FirstName, ui.LastName, ui.DisplayName); + sDisplayName = UserProfiles.GetDisplayName(PortalSettings, ModuleId, false,false,false, ui.UserID, ui.Username, ui.FirstName, ui.LastName, ui.DisplayName); } } @@ -50,7 +50,7 @@ protected override void OnLoad(EventArgs e) else { tUid = UserId; - sDisplayName = UserProfiles.GetDisplayName(ModuleId, UserId, UserInfo.Username, UserInfo.FirstName, UserInfo.LastName, UserInfo.DisplayName); + sDisplayName = UserProfiles.GetDisplayName(PortalSettings, ModuleId, false, false, false, UserId, UserInfo.Username, UserInfo.FirstName, UserInfo.LastName, UserInfo.DisplayName); } lblHeader.Text = string.Format(Utilities.GetSharedResource("[RESX:ProfileForUser]"), sDisplayName); if (MainSettings.UseSkinBreadCrumb) diff --git a/Dnn.CommunityForums/controls/af_quickreply.ascx.cs b/Dnn.CommunityForums/controls/af_quickreply.ascx.cs index 737e28b06..06dafb589 100644 --- a/Dnn.CommunityForums/controls/af_quickreply.ascx.cs +++ b/Dnn.CommunityForums/controls/af_quickreply.ascx.cs @@ -323,7 +323,8 @@ private void SaveQuickReply() int ReplyId = new DotNetNuke.Modules.ActiveForums.Controllers.ReplyController().Reply_Save(PortalId, ModuleId, ri); ri = new DotNetNuke.Modules.ActiveForums.Controllers.ReplyController().GetById(ReplyId); DotNetNuke.Modules.ActiveForums.Controllers.ReplyController.QueueApprovedReplyAfterAction(PortalId, TabId, ModuleId, ri.Forum.ForumGroupId, ForumId, TopicId, ReplyId, ri.Content.AuthorId); - DataCache.ContentCacheClear(ModuleId, string.Format(CacheKeys.TopicViewForUser, ModuleId, ri.TopicId, ri.Content.AuthorId, HttpContext.Current?.Response?.Cookies["language"]?.Value)); + DataCache.CacheClearPrefix(ModuleId, string.Format(CacheKeys.TopicViewPrefix, ModuleId)); + DataCache.CacheClearPrefix(ModuleId, string.Format(CacheKeys.TopicsViewPrefix, ModuleId)); DataCache.CacheClearPrefix(ModuleId, string.Format(CacheKeys.ForumViewPrefix, ModuleId)); diff --git a/Dnn.CommunityForums/controls/af_search.ascx b/Dnn.CommunityForums/controls/af_search.ascx index e4426c6d6..6f2d8d8a9 100644 --- a/Dnn.CommunityForums/controls/af_search.ascx +++ b/Dnn.CommunityForums/controls/af_search.ascx @@ -33,6 +33,88 @@ + + +
@@ -59,6 +141,14 @@ + + + + + + + +
[RESX:Subject][RESX:REPLIESHEADER][RESX:Views][RESX:LASTPOSTHEADER]
@@ -89,6 +179,7 @@
+
diff --git a/Dnn.CommunityForums/controls/af_search.ascx.cs b/Dnn.CommunityForums/controls/af_search.ascx.cs index ea5463103..50ac86daf 100644 --- a/Dnn.CommunityForums/controls/af_search.ascx.cs +++ b/Dnn.CommunityForums/controls/af_search.ascx.cs @@ -536,7 +536,7 @@ public string GetAuthor() var lastName = _currentRow["AuthorLastName"].ToString(); var displayName = _currentRow["AuthorDisplayName"].ToString(); - return UserProfiles.GetDisplayName(ModuleId, true, false, ForumUser.IsAdmin, userId, userName, firstName, lastName, displayName); + return UserProfiles.GetDisplayName(PortalSettings, ForumModuleId, true, false, ForumUser.IsAdmin, userId, userName, firstName, lastName, displayName); } public string GetLastPostAuthor() @@ -550,7 +550,7 @@ public string GetLastPostAuthor() var lastName = _currentRow["LastReplyLastName"].ToString(); var displayName = _currentRow["LastReplyDisplayName"].ToString(); - return UserProfiles.GetDisplayName(ModuleId, true, false, ForumUser.IsAdmin, userId, userName, firstName, lastName, displayName); + return UserProfiles.GetDisplayName(PortalSettings, ForumModuleId, true, false, ForumUser.IsAdmin, userId, userName, firstName, lastName, displayName); } public string GetLastPostTime() diff --git a/Dnn.CommunityForums/controls/af_sendto.ascx.cs b/Dnn.CommunityForums/controls/af_sendto.ascx.cs index 3b80bd617..479fab608 100644 --- a/Dnn.CommunityForums/controls/af_sendto.ascx.cs +++ b/Dnn.CommunityForums/controls/af_sendto.ascx.cs @@ -67,7 +67,7 @@ protected override void OnLoad(EventArgs e) sURL = NavigateUrl(TabId, "", new string[] { ParamKeys.TopicId + "=" + TopicId }); } MessageDefault = MessageDefault.Replace("[TOPICLINK]", sURL); - MessageDefault = MessageDefault.Replace("[DISPLAYNAME]", UserProfiles.GetDisplayName(ModuleId, UserId, UserInfo.Username, UserInfo.FirstName, UserInfo.LastName, UserInfo.DisplayName)); + MessageDefault = MessageDefault.Replace("[DISPLAYNAME]", UserProfiles.GetDisplayName(PortalSettings, ModuleId, false, false, false, UserId, UserInfo.Username, UserInfo.FirstName, UserInfo.LastName, UserInfo.DisplayName)); txtMessage.Text = MessageDefault; } diff --git a/Dnn.CommunityForums/feeds.aspx.cs b/Dnn.CommunityForums/feeds.aspx.cs index 55bac69eb..d1c2c95df 100644 --- a/Dnn.CommunityForums/feeds.aspx.cs +++ b/Dnn.CommunityForums/feeds.aspx.cs @@ -269,7 +269,7 @@ private string BuildItem(DataRow dr, int PostTabID, int Indent, bool IncludeBody sb.Append(WriteElement("title", dr["Subject"].ToString(), Indent + 1)); sb.Append(WriteElement("description", body, Indent + 1)); sb.Append(WriteElement("link", URL, Indent + 1)); - sb.Append(WriteElement("dc:creator", UserProfiles.GetDisplayName(ModuleID, -1, dr["AuthorUserName"].ToString(), dr["AuthorFirstName"].ToString(), dr["AuthorLastName"].ToString(), dr["AuthorDisplayName"].ToString(), null), Indent + 1)); + sb.Append(WriteElement("dc:creator", UserProfiles.GetDisplayName(PortalSettings, ModuleID, false, false, false, -1, dr["AuthorUserName"].ToString(), dr["AuthorFirstName"].ToString(), dr["AuthorLastName"].ToString(), dr["AuthorDisplayName"].ToString(), null), Indent + 1)); sb.Append(WriteElement("pubDate", Convert.ToDateTime(dr["DateCreated"]).AddMinutes(offSet).ToString("r"), Indent + 1)); sb.Append(WriteElement("guid", URL, Indent + 1)); sb.Append(WriteElement("slash:comments", dr["ReplyCount"].ToString(), Indent + 1)); diff --git a/Dnn.CommunityForums/sql/08.01.01.SqlDataProvider b/Dnn.CommunityForums/sql/08.01.01.SqlDataProvider new file mode 100644 index 000000000..44a75a095 --- /dev/null +++ b/Dnn.CommunityForums/sql/08.01.01.SqlDataProvider @@ -0,0 +1,115 @@ +/* issue 946 begin - unanswered topics should exclude informative or resolved topics */ + +IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'{databaseOwner}[{objectQualifier}activeforums_UI_UnansweredView]') AND type in (N'P', N'PC')) +DROP PROCEDURE {databaseOwner}[{objectQualifier}activeforums_UI_UnansweredView] +GO + +CREATE PROCEDURE {databaseOwner}[{objectQualifier}activeforums_UI_UnansweredView] + @PortalId int, + @ModuleId int, + @UserId int, + @RowIndex int = 0, + @MaxRows int = 20, + @Sort nvarchar(10) = 'DESC', + @ForumIds nvarchar(1000) +AS + SET NOCOUNT ON; + + SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED + + + -- Populate our unanswered topics table + + CREATE TABLE #UnansweredTopics(RowRank int NOT NULL, TopicId int NOT NULL) + + INSERT INTO #UnansweredTopics(RowRank, TopicId) + SELECT ROW_NUMBER() OVER ( + ORDER BY + CASE + WHEN @Sort = 'DESC' THEN T.LastReplyDate END DESC, + CASE + WHEN @Sort = 'ASC' THEN T.LastReplyDate END ASC) as RowRank, + T.TopicId + FROM {databaseOwner}{objectQualifier}vw_activeforums_TopicsView T INNER JOIN + {databaseOwner}{objectQualifier}activeforums_Functions_Split(@ForumIds,';') as fids ON fids.id = T.ForumId + WHERE T.LastReplyId = 0 AND T.PortalId = @PortalId AND T.ModuleId = @ModuleId AND T.StatusId NOT IN (0,3) AND T.IsLocked = 0 + + -- Get our record count + + DECLARE @RecordCount int + SET @RecordCount = (SELECT COUNT(*) FROM #UnansweredTopics) + + -- Return our result set + + SELECT + f.ForumId, + f.ForumName, + IsNull(f.LastReplyId,0) as LastReplyId, + t.TopicId, + t.ViewCount, + t.ReplyCount, + t.IsLocked, + t.IsPinned, + IsNull(t.TopicIcon,'') as TopicIcon, + t.StatusId, + t.IsAnnounce, + t.AnnounceStart, + t.AnnounceEnd, + t.TopicType, + c.Subject, + IsNull(c.Summary,'') as Summary, + IsNull(c.AuthorId,-1) as AuthorId, + IsNull(c.AuthorName,'') as AuthorName, + c.Body, + c.DateCreated, + IsNull(u.Username,'') as AuthorUserName, + IsNull(u.FirstName,'') as AuthorFirstName, + IsNull(u.LastName,'') as AuthorLastName, + IsNull(u.DisplayName,'') as AuthorDisplayName, + CASE WHEN rc.Subject IS NULL THEN c.Subject ELSE rc.Subject END as LastReplySubject, + CASE WHEN rc.Summary IS NULL THEN IsNull(c.Summary,'') ELSE rc.Summary END as LastReplySummary, + CASE WHEN rc.AuthorId IS NULL THEN c.AuthorId ELSE rc.AuthorId END as LastReplyAuthorId, + CASE WHEN rc.AuthorName IS NULL THEN IsNull(c.AuthorName,'') ELSE rc.AuthorName END as LastReplyAuthorName, + CASE WHEN ru.Username IS NULL THEN IsNull(u.UserName,'') ELSE ru.UserName END as LastReplyUserName, + CASE WHEN ru.FirstName IS NULL THEN IsNULL(u.FirstName,'') ELSE ru.FirstName END as LastReplyFirstName, + CASE WHEN ru.LastName IS NULL THEN IsNull(u.LastName,'') ELSE ru.LastName END as LastReplyLastName, + CASE WHEN ru.DisplayName IS NULL THEN IsNull(IsNull(u.DisplayName,rc.AuthorName),'') ELSE ru.DisplayName END as LastReplyDisplayName, + CASE WHEN rc.DateCreated IS NULL THEN c.DateCreated ELSE rc.DateCreated END as LastReplyDate, + CASE WHEN TT.LastReplyId < ISNULL(f.LastReplyId,0) THEN TT.LastReplyId ELSE 0 END AS LastReplyRead, + CASE WHEN FT.MaxReplyRead > TT.LastReplyId OR TT.LastReplyID IS NULL THEN ISNULL(FT.MaxReplyRead,0) ELSE TT.LastReplyId END AS UserLastReplyRead, + CASE WHEN FT.MaxTopicRead > TT.TopicId OR TT.TopicId IS NULL THEN ISNULL(FT.MaxTopicRead,0) ELSE TT.TopicId END AS UserLastTopicRead, + CASE WHEN ftt.LastReplyID <= tt.LastReplyId OR (ISNULL(ftt.LastReplyId,'') = 0 AND c.AuthorId = @UserId) OR (FT.MaxReplyRead >= ftt.LastReplyId) THEN 1 ELSE 0 END AS IsRead, + ftt.LastReplyId as TopicLastReplyId, + tr.TopicRating, + @RecordCount as RecordCount, + ISNULL(t.URL,'') as TopicURL, + ISNULL(f.PrefixURL,'') as ForumUrl, + ISNULL(g.PrefixURL,'') as GroupUrl, + g.ForumGroupId, + IsNull(S.Mode,0) AS SubscriptionType + + FROM #UnansweredTopics as tmp INNER JOIN + {databaseOwner}{objectQualifier}activeforums_Topics as t on tmp.TopicId = t.TopicId INNER JOIN + {databaseOwner}{objectQualifier}activeforums_ForumTopics AS ftt ON ftt.TopicId = t.TopicId INNER JOIN + {databaseOwner}{objectQualifier}activeforums_forums as f ON ftt.forumId = f.ForumId INNER JOIN + {databaseOwner}{objectQualifier}activeforums_Groups as g ON f.ForumGroupId = g.ForumGroupId INNER JOIN + {databaseOwner}{objectQualifier}activeforums_Content as c on t.ContentId = c.ContentId LEFT OUTER JOIN + {databaseOwner}{objectQualifier}vw_activeforums_TopicRatings as tr on t.TopicId = tr.TopicId LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users as u on c.AuthorId = u.UserId LEFT OUTER JOIN + {databaseOwner}{objectQualifier}activeforums_Replies as r on ftt.LastReplyId = r.ReplyId LEFT OUTER JOIN + {databaseOwner}{objectQualifier}activeforums_Content as rc on r.ContentId = rc.ContentId LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users as ru on rc.AuthorId = ru.UserId LEFT OUTER JOIN + {databaseOwner}{objectQualifier}activeforums_Topics_Tracking AS TT ON T.TopicId = TT.TopicId AND TT.UserId = @UserId LEFT OUTER JOIN + {databaseOwner}{objectQualifier}activeforums_Forums_Tracking as FT ON f.ForumId = FT.ForumId AND FT.UserId = @UserId LEFT OUTER JOIN + {databaseOwner}{objectQualifier}activeforums_Subscriptions AS S ON S.ForumId = f.ForumId AND S.TopicId = T.TopicId and S.UserId = @UserId + + WHERE RowRank > @RowIndex AND RowRank <= (@RowIndex + @MaxRows) + ORDER BY RowRank + + DROP TABLE #UnansweredTopics +GO + +/* issue 946 end - unanswered topics should exclude informative or resolved topics */ + +/* --------------------- */ + diff --git a/Dnn.CommunityForums/themes/community-bootstrap/templates/TopicsView.ascx b/Dnn.CommunityForums/themes/community-bootstrap/templates/TopicsView.ascx index 61c8970dc..7cb85a4fd 100644 --- a/Dnn.CommunityForums/themes/community-bootstrap/templates/TopicsView.ascx +++ b/Dnn.CommunityForums/themes/community-bootstrap/templates/TopicsView.ascx @@ -2,13 +2,17 @@ <%@ Register TagPrefix="am" TagName="MarkForumRead" Src="~/DesktopModules/ActiveForums/controls/af_markallread.ascx"%> <%@ Register TagPrefix="am" TagName="MiniSearch" Src="~/DesktopModules/ActiveForums/controls/af_searchquick.ascx"%>
+
+ [FORUMMAINLINK] + [FORUMGROUPLINK] +
+
+
-
- [FORUMMAINLINK] - [FORUMGROUPLINK] -
-

[TRESX:Forum]: [FORUMLINK]

+ +

[TRESX:Forum]: [FORUMLINK]

+
[ADDTOPIC]
@@ -158,7 +162,7 @@
[RESX:StartedHeader]  [STARTEDBY][AF:UI:MINIPAGER]
-
[BODYTITLE]
+
[BODYTITLE]
[AF:QUICKEDITLINK] [ACTIONS:DELETE] diff --git a/Dnn.CommunityForums/themes/community-bootstrap/theme-source.zip.resources b/Dnn.CommunityForums/themes/community-bootstrap/theme-source.zip.resources index e412e8ad0..6e6e8b90c 100644 Binary files a/Dnn.CommunityForums/themes/community-bootstrap/theme-source.zip.resources and b/Dnn.CommunityForums/themes/community-bootstrap/theme-source.zip.resources differ diff --git a/Dnn.CommunityForums/themes/community-default/_src/less/_utilities.less b/Dnn.CommunityForums/themes/community-default/_src/less/_utilities.less index d5a840778..3d109873a 100644 --- a/Dnn.CommunityForums/themes/community-default/_src/less/_utilities.less +++ b/Dnn.CommunityForums/themes/community-default/_src/less/_utilities.less @@ -24,4 +24,14 @@ @media screen and (min-width: @break-tablet) { display: initial; } + } + + .dcf-text-end{ + text-align: end; + } + + .dcf-break-word{ + + word-break: break-all; + } \ No newline at end of file diff --git a/Dnn.CommunityForums/themes/community-default/_src/less/parts/_group-title.less b/Dnn.CommunityForums/themes/community-default/_src/less/parts/_group-title.less index 166e35635..a5603ea86 100644 --- a/Dnn.CommunityForums/themes/community-default/_src/less/parts/_group-title.less +++ b/Dnn.CommunityForums/themes/community-default/_src/less/parts/_group-title.less @@ -6,11 +6,11 @@ border-bottom: solid 1px @grey-superlight; padding: @dist-md 0; - // Title + // Title .dcf-group-title { font-size: @title-1-size; color: @title-color; - text-rowansform: uppercase; + text-transform: uppercase; margin: 0; flex-grow: 1; } diff --git a/Dnn.CommunityForums/themes/community-default/_src/less/parts/_topics-view.less b/Dnn.CommunityForums/themes/community-default/_src/less/parts/_topics-view.less index 62770b15d..d35d4b53f 100644 --- a/Dnn.CommunityForums/themes/community-default/_src/less/parts/_topics-view.less +++ b/Dnn.CommunityForums/themes/community-default/_src/less/parts/_topics-view.less @@ -1,23 +1,31 @@ .dcf-topics-view { - .dcf-forum-title { - - margin-top: 0; - font-size: @title-2-size; + .dcf-forum-title-wrap { flex-grow: 1; width: 100%; - @media screen and (min-width: @break-tablet){ + + @media screen and (min-width: @break-tablet) { width: auto; } + + } + + .dcf-forum-title { + + margin-top: 0; + font-size: @title-2-size; + + } - .dcf-forum-search-subscribe{ - .dcf-forum-search{ + .dcf-forum-search-subscribe { + .dcf-forum-search { padding-bottom: @dist-md; } - .dcf-subscribe-forum{ - .amaf-chk-subs{ + + .dcf-subscribe-forum { + .amaf-chk-subs { margin: 0 @dist-sm 0 @dist-xs ; } } @@ -32,17 +40,18 @@ // Table head - .dcf-table-head-row{ + .dcf-table-head-row { .dcf-col-title { width: 100%; // Push other THs to the right + .dcf-title { margin: 0; font-size: @title-3-size; } - + } } - + // Topics @@ -52,7 +61,7 @@ padding-bottom: 3em; - &:empty{ + &:empty { padding-bottom: 0; } @@ -61,7 +70,7 @@ padding-top: 1.9em; } - .dcf-col-subject{ + .dcf-col-subject { width: 100%; // Push other TDs to the right } @@ -93,6 +102,7 @@ max-height: 7.5em; overflow: hidden; text-overflow: ellipsis; + .dcf-break-word; } .dcf-topic-tools { diff --git a/Dnn.CommunityForums/themes/community-default/templates/TopicView.ascx b/Dnn.CommunityForums/themes/community-default/templates/TopicView.ascx index 7a7f8078c..7e72454b6 100644 --- a/Dnn.CommunityForums/themes/community-default/templates/TopicView.ascx +++ b/Dnn.CommunityForums/themes/community-default/templates/TopicView.ascx @@ -6,7 +6,7 @@
[PREVTOPIC]
-
[NEXTTOPIC] +
[NEXTTOPIC]
@@ -102,7 +102,7 @@
[MODEDITDATE]
-
+
[LIKESx2]
@@ -158,7 +158,7 @@
[MODEDITDATE]
-
+
[LIKESx2]
diff --git a/Dnn.CommunityForums/themes/community-default/templates/TopicsView.ascx b/Dnn.CommunityForums/themes/community-default/templates/TopicsView.ascx index ad7f28aae..a6dc3dea9 100644 --- a/Dnn.CommunityForums/themes/community-default/templates/TopicsView.ascx +++ b/Dnn.CommunityForums/themes/community-default/templates/TopicsView.ascx @@ -5,7 +5,10 @@
[FORUMMAINLINK] [FORUMGROUPLINK]
+

[TRESX:Forum]: [FORUMLINK]

+
[ADDTOPIC]
+
diff --git a/Dnn.CommunityForums/themes/community-default/theme-source.zip.resources b/Dnn.CommunityForums/themes/community-default/theme-source.zip.resources index 99ff977f6..2eb9ee32e 100644 Binary files a/Dnn.CommunityForums/themes/community-default/theme-source.zip.resources and b/Dnn.CommunityForums/themes/community-default/theme-source.zip.resources differ diff --git a/Dnn.CommunityForums/themes/community-default/theme.css b/Dnn.CommunityForums/themes/community-default/theme.css index d2239f90e..2f94886a5 100644 --- a/Dnn.CommunityForums/themes/community-default/theme.css +++ b/Dnn.CommunityForums/themes/community-default/theme.css @@ -20,6 +20,12 @@ display: initial; } } +.dcf-text-end { + text-align: end; +} +.dcf-break-word { + word-break: break-all; +} .dnn-community-forums .afeditor { background: #fff; border: none; @@ -353,7 +359,7 @@ .dnn-community-forums .dcf-group-title-wrap .dcf-group-title { font-size: 1.4em; color: black; - text-rowansform: uppercase; + text-transform: uppercase; margin: 0; flex-grow: 1; } @@ -382,17 +388,19 @@ margin: 0; color: black; } -.dnn-community-forums .dcf-topics-view .dcf-forum-title { - margin-top: 0; - font-size: 1.2em; +.dnn-community-forums .dcf-topics-view .dcf-forum-title-wrap { flex-grow: 1; width: 100%; } @media screen and (min-width: 768px) { - .dnn-community-forums .dcf-topics-view .dcf-forum-title { + .dnn-community-forums .dcf-topics-view .dcf-forum-title-wrap { width: auto; } } +.dnn-community-forums .dcf-topics-view .dcf-forum-title { + margin-top: 0; + font-size: 1.2em; +} .dnn-community-forums .dcf-topics-view .dcf-forum-search-subscribe .dcf-forum-search { padding-bottom: 1rem; } @@ -442,6 +450,7 @@ max-height: 7.5em; overflow: hidden; text-overflow: ellipsis; + word-break: break-all; } .dnn-community-forums .dcf-topics-view .dcf-topics .dcf-subject .dcf-topic-tools { display: flex; diff --git a/Dnn.CommunityForums/themes/community-default/theme.css.map b/Dnn.CommunityForums/themes/community-default/theme.css.map index 2aba2ffde..26e1d6075 100644 --- a/Dnn.CommunityForums/themes/community-default/theme.css.map +++ b/Dnn.CommunityForums/themes/community-default/theme.css.map @@ -1 +1 @@ -{"version":3,"sources":["_mixins.less","_utilities.less","theme.less","parts/_edit.less","parts/_topic-edit.less","parts/_columns.less","parts/_breadcrumbs.less","parts/_collapse.less","parts/_subscribe.less","parts/_action-bars.less","parts/_pager.less","parts/_table.less","parts/_table-responsive.less","parts/_toolbar.less","parts/_group-title.less","parts/_forum-view.less","parts/_topics-view.less","parts/_topic-view.less","parts/_quick-reply.less","parts/_search-results.less","parts/_search-advanced.less"],"names":[],"mappings":"AACA;EAEI,aAAA;EACA,mBAAA;;ACAA;EACI,WAAA;;AAGJ;EACI,aAAA;;AAGJ;EAGI,6BAAA;EACA,MAAM,wBAAN;;AAIJ;EACI,aAAA;;AAEA,mBAA6C;EAA7C;IACI,gBAAA;;;AClBZ,qBCHC;EACC,gBAAA;EACA,YAAA;EACA,cAAA;;ADAF,qBCHC,UAKC;EACC,kBAAA;;ADHH,qBCHC,UASC,QACC;EACC,iBAAA;;ADRJ,qBCHC,UAeC;EACC,eAAA;;ADbH,qBCHC,UAoBC,MAAM,MAAK,aAEV,QAAM,KAAG,UAAU,GAElB;EACC,gBAAA;;ADtBL,qBCHC,UAoBC,MAAM,MAAK,aAUV,GAAE,UAAU,GAEX,WAAU;EACT,YAAA;EACA,UAAA;EACA,uBAAA;EACA,iBAAA;;AAWD,qBA/CH,UA8CE,MACE;EACD,oBAAA;;AD7CJ,qBCHC,UAqDC,aAGC;EACC,0BAAA;EACA,aAAA;EACA,uBAAA;;AAEC,qBA7DJ,UAqDC,aAGC,MAIC;AACI,qBA7DP,UAqDC,aAGC,MAIC,eACK;EACH,kBAAA;EACA,sBAAA;EACA,uBAAA;EACA,eAAA;EACA,eAAA;;AAGD,qBArEJ,UAqDC,aAGC,MAIC,eASE;EAEA,YAAA;;ADpEN,qBCHC,UAgFC;EACC,uBAAA;;AD9EH,qBCHC,UAoFC;EACC,eAAA;EH5CC,6BAAA;;AEtCJ,qBCHC,UA0FC;EAEC,uBAAA;EACA,cAAA;;AD1FH,qBEHA,wBAEI;AFCJ,qBEHyB,wBAErB;EACI,UAAA;;AFAR,qBGNA,CAAA;EACI,aAAA;EACA,eAAA;;AHIJ,qBGNA,CAAA,SAII;EACI,WAAA;;AHCR,qBGNA,CAAA,SAOI;EAEI,UAAA;;AHHR,qBGNA,CAAA,SAaI;EACI,WAAA;;AACA,mBAA4C;EAA5C,qBAfR,CAAA,SAaI;IAGI,UAAA;;;AHVR,qBGNA,CAAA,SAoBI;EACI,WAAA;;AACA,mBAA6C;EAA7C,qBAtBR,CAAA,SAoBI;IAGQ,UAAA;IACA,gBAAA;;;AHlBZ,qBGNA,CAAA,SA2BI;EACI,WAAA;EAIA,YAAA;;AAHA,mBAA6C;EAA7C,qBA7BR,CAAA,SA2BI;IAGK,UAAA;;;AHxBT,qBINA,CAAA;EAEI,eAAA;EN0CA,6BAAA;;AEtCJ,qBINA,CAAA,eAMI;EACI,WAAA;;AJDR,qBINA,CAAA,eAUI;EACI,WAAA;;AJLR,qBKNA,CAAA,gBACI;EACI,WAAA;;ALIR,qBMNA,CAAA,oBACI;EACI,kBAAA;;ANIR,qBMAA;ANAA,qBMAwB;EAEpB,mBAAA;;AAEA,mBAA4C;EAA5C,qBAJJ;EAII,qBAJoB;IAKhB,iBAAA;;;ANLR,qBOHI;EAEI,aAAA;EACA,oBAAA;;AAEA,mBAA8C;EAA9C,qBALJ;IAOQ,eAAA;;;APJZ,qBOSI;EACA,eAAA;;AAEA,qBAHA,aAGC;EACG,aAAA;EACA,eAAA;;AAFJ,qBAHA,aAGC,IAGG;EACI,YAAA;;AAIR,qBAXA,aAWC;EACG,aAAA;EACA,eAAA;;AAFJ,qBAXA,aAWC,OAIG;EACI,YAAA;;AALR,qBAXA,aAWC,OAQG;EACI,oBAAA;;AP7BZ,qBOSI,aA0BA;EACI,aAAA;EACA,oBAAA;;APrCR,qBOSI,aA0BA,kBAII;EACI,oBAAA;;APxCZ,qBQNA,CAAA,QACI;EAEI,eAAA;;ARGR,qBQNA,CAAA,QAMI;EAEI,eAAA;;ARFR,qBQOA;EACI,cAAA;EACA,mBAAA;;ARTJ,qBSNA,CAAA,UAEI;EAEI,6BAAA;;ATER,qBSNA,CAAA,UASI;ATHJ,qBSNA,CAAA,UAUI;EACI,oBAAA;;ATLR,qBSNA,CAAA,UAeI;EAEI,gBAAA;EACA,mBAAA;;AAEA,qBApBR,CAAA,UAeI,QAKK;EACG,gBAAA;;ATfZ,qBSNA,CAAA,UA2BI,oBACI;EACI,mBAAA;EACA,6BAAA;;ATxBZ,qBSNA,CAAA,UAmCI,oBAGI;AThCR,qBSNA,CAAA,UAmCI,oBAII;ATjCR,qBSNA,CAAA,UAmCI,oBAKI;ATlCR,qBSNA,CAAA,UAmCI,oBAMI;ATnCR,qBSNA,CAAA,UAmCI,oBAOI;ATpCR,qBSNA,CAAA,UAmCI,oBAQI;EACI,kBAAA;EACA,QAAA;;ATvCZ,qBSNA,CAAA,UAmCI,oBAaI;EAEI,QAAA;;AT5CZ,qBSNA,CAAA,UAmCI,oBAkBI;AT/CR,qBSNA,CAAA,UAmCI,oBAkBmB;EACX,UAAA;;AAEA,mBAA2C;EAA3C,qBAxDZ,CAAA,UAmCI,oBAkBI;EAGI,qBAxDZ,CAAA,UAmCI,oBAkBmB;IAIP,UAAA;;;ATnDhB,qBSNA,CAAA,UAgEI;EACI,mBAAA;;AT3DR,qBSNA,CAAA,UAgEI,eAGI;EACI,kBAAA;;AT9DZ,qBSNA,CAAA,UA0EI;EACI,cAAA;EACA,gBAAA;EACA,gBAAA;;ATvER,qBSNA,CAAA,UA0EI,uBAKI;EACI,aAAA;;AAIJ,qBApFR,CAAA,UA0EI,uBAUK;EACG,cAAA;;AT/EZ,qBSNA,CAAA,UA2FI;EACI,gBAAA;;ATtFR,qBSNA,CAAA,UA2FI,cAGI;EAEI,oBAAA;EACA,YAAA;;AT3FZ,qBSNA,CAAA,UA2FI,cASI;EACI,kBAAA;;AT/FZ,qBSNA,CAAA,UAyGI;EACI,iBAAA;;ATpGR,qBSNA,CAAA,UCCc,cAAa;EACX,aAAA;;AAEA,mBAA6C;EAA7C,qBDJhB,CAAA,UCCc,cAAa;IAKP,cAAA;;;AVApB,qBSNA,CAAA,UCaY;EAEI,aAAA;;AAEA,mBAA6C;EAA7C,qBDjBhB,CAAA,UCaY;IAMQ,mBAAA;;;AVbpB,qBWFA,aAEI;EAEI,SAAA;EACA,UAAA;EAKA,aAAA;EACA,eAAA;EACA,SAAA;;AXVR,qBWFA,aAiBI;EACI,qBAAA;EACA,SAAA;EACA,UAAA;EACA,aAAA;EACA,mBAAA;;AXpBR,qBWyBA;EAEI,aAAA;EACA,eAAA;EACA,iBAAA;EbSA,6BAAA;;AEtCJ,qBWyBA,cAQI;EACI,YAAA;EACA,sBAAA;;AAUA,mBAA6C;EAA7C,qBApBR,cAgBI;IAKQ,oBAAA;;;AX9CZ,qBWyBA,cA8BI;EACI,kBAAA;EACA,cAAA;;AXzDR,qBWyBA,cA8BI,kBAKI;EACI,cAAA;EACA,iBAAA;EACA,eAAA;;AX/DZ,qBWyBA,cA8BI,kBAWI;EACI,iBAAA;EACA,sBAAA;EACA,aAAA;EACA,aAAA;EACA,kBAAA;EACA,gBAAA;EACA,QAAA;EACA,qBAAA;EACA,UAAA;;AX3EZ,qBWyBA,cA8BI,kBAyBI;EACI,aAAA;;AXjFZ,qBWyBA,cA8BI,kBAyBI,kBAEI;EACI,sBAAA;EACA,YAAA;EACA,iBAAA;;AXrFhB,qBWyBA,cA8BI,kBAyBI,kBAQI;EACI,YAAA;EACA,oBAAA;EACA,iBAAA;;AX3FhB,qBWyBA,cA8BI,kBAwCI,oBACI;EACI,cAAA;EACA,WAAA;EACA,iBAAA;;AXnGhB,qBWyBA,cA8BI,kBAwCI,oBAOI;EACI,kBAAA;;AXvGhB,qBWyBA,cA8BI,kBAwCI,oBAWI;EACI,oBAAA;;AX3GhB,qBYJA;EdCI,aAAA;EACA,mBAAA;EcCA,6BAAA;EACA,eAAA;;AZAJ,qBYJA,sBAOI;EACI,gBAAA;EACA,YAAA;EACA,0BAAA;EACA,SAAA;EACA,YAAA;;AZRR,qBYJA,sBAiBI;EAEI,eAAA;;AZfR,qBaNE,gBAGC;EAEC,mBAAA;EACA,eAAA;;AbAJ,qBaNE,gBAGC,kBAMC;EACC,SAAA;EACA,gBAAA;;AbLL,qBaNE,gBAGC,kBAYC,iBAEA;EACC,aAAA;;AbZL,qBaNE,gBAGC,kBAsBC;EACC,cAAA;;AbpBL,qBaNE,gBAGC,kBA4BC,gBACC;EACC,YAAA;;Ab3BN,qBaNE,gBAGC,kBA4BC,gBAKC;EAEC,gBAAA;EACA,SAAA;EACA,YAAA;;AblCN,qBcNA,CAAA,gBAGI;EAEI,aAAA;EACA,gBAAA;EACA,YAAA;EACA,WAAA;;AACA,mBAA4C;EAA5C,qBATR,CAAA,gBAGI;IAOQ,WAAA;;;AdJZ,qBcNA,CAAA,gBAcI,4BACI;EACI,oBAAA;;AdVZ,qBcNA,CAAA,gBAcI,4BAII,qBACI;EACI,0BAAA;;AddhB,qBcNA,CAAA,gBAyBI;EAEI,SAAA;EACA,gBAAA;;AdtBR,qBcNA,CAAA,gBAkCI,oBACI;EACI,WAAA;;Ad9BZ,qBcNA,CAAA,gBAkCI,oBACI,eAEI;EACI,SAAA;EACA,gBAAA;;AdjChB,qBcNA,CAAA,gBAgDI;EAII,mBAAA;;AAEA,qBAtDR,CAAA,gBAgDI,YAMK;EAEG,iBAAA;;AdlDZ,qBcNA,CAAA,gBAgDI,YAWI;EACI,kBAAA;;AdtDZ,qBcNA,CAAA,gBAgDI,YAeI;EAEI,WAAA;;Ad3DZ,qBcNA,CAAA,gBAgDI,YAoBI;EACI,aAAA;EACA,yBAAA;;AdhEZ,qBcNA,CAAA,gBAgDI,YA0BI,aAEI;EACI,iBAAA;EACA,oBAAA;EACA,mBAAA;;AdzEhB,qBcNA,CAAA,gBAgDI,YA0BI,aAEI,aAKI;EACI,mBAAA;;Ad5EpB,qBcNA,CAAA,gBAgDI,YA0BI,aAYI;EACI,kBAAA;;AdjFhB,qBcNA,CAAA,gBAgDI,YA0BI,aAgBI;EACI,mBAAA;EACA,iBAAA;EACA,gBAAA;EACA,uBAAA;;AdxFhB,qBcNA,CAAA,gBAgDI,YA0BI,aAuBI;EACI,aAAA;EACA,mBAAA;;Ad7FhB,qBcNA,CAAA,gBAgDI,YA0BI,aAuBI,iBAII;EACI,oBAAA;;AdhGpB,qBcNA,CAAA,gBAgDI,YA0BI,aAiCI;AdrGZ,qBcNA,CAAA,gBAgDI,YA0BI,aAkCI;EAEI,aAAA;;AAEA,mBAA8C;EAA9C,qBAhHhB,CAAA,gBAgDI,YA0BI,aAiCI;EAKI,qBAhHhB,CAAA,gBAgDI,YA0BI,aAkCI;IAKQ,cAAA;;;Ad3GpB,qBcNA,CAAA,gBAgDI,YAwEI;EACI,mBAAA;;AdnHZ,qBcNA,CAAA,gBAgDI,YAwEI,eAGI;EACI,cAAA;;AdtHhB,qBcNA,CAAA,gBAgDI,YAwEI,eAOI;EACI,aAAA;;Ad1HhB,qBcNA,CAAA,gBAgDI,YAsFI;EACI,aAAA;;AdjIZ,qBcNA,CAAA,gBAgDI,YAsFI,oBAGI;EAGI,YAAA;;AdtIhB,qBeJA;;;AfIA,qBeJA,gBAEI;EjBcA,gBAAA;EAPA,iBAAA;EACA,SAAA;EiBNI,aAAA;EACA,mBAAA;;AfDR,qBeJA,gBAEI,aAII;EACI,oBAAA;;AfHZ,qBeJA,gBAaC;EAOC,kBAAA;EACA,sBAAA;EjBqBE,6BAAA;EiBnBI,oBAAA;;AfnBR,qBeJA,gBAaC,eAYC;EAEC,WAAA;;AfvBH,qBeJA,gBAaC,eAYC,EAIC;EACa,eAAA;;Af1BhB,qBeJA,gBA2CI;EAEI,iBAAA;;AfzCR,qBeJA,gBA2CI,oBAII;EAEI,iBAAA;;Af7CZ,qBeJA,gBA2CI,oBAWI;EAEI,kBAAA;;AAEA,mBAA4C;EAA5C,qBA1DZ,gBA2CI,oBAWI;IAKQ,iBAAA;;;AfvDhB,qBeJA,gBA2CI,oBAWI,oBAQI;EACI,qBAAA;EACA,sBAAA;;Af5DhB,qBeJA,gBA2CI,oBAWI,oBAQI,UAGI;EACI,kBAAA;;Af9DpB,qBeJA,gBA2CI,oBAWI,oBAgBI;EACI,oBAAA;;AfnEhB,qBeJA,gBA2CI,oBAWI,oBAgBI,qBAEI;EACI,gBAAA;;AfrEpB,qBeJA,gBAsFI;EACI,gBAAA;EACA,YAAA;EACA,aAAA;EACA,yBAAA;;AftFR,qBeJA,gBA8FI;EACI,aAAA;EACA,eAAA;EACA,mBAAA;;Af7FR,qBeJA,gBA8FI,WAII;EACI,gBAAA;;AAGJ,qBAtGR,gBA8FI,WAQK;EACG,mBAAA;;AAEJ,qBAzGR,gBA8FI,WAWK;EACG,sBAAA;;AftGZ,qBeJA,gBAqHI;EACI,eAAA;EjB5EJ,6BAAA;EiB8EI,gBAAA;EAEA,aAAA;;AAEA,mBAA4C;EAA5C,qBA5HR,gBAqHI;IAQQ,aAAA;;;AfzHZ,qBeJA,gBAmII;EAEI,qBAAA;;AfjIR,qBeJA,gBAmII,gBAII;EAII,mBAAA;EACA,gBAAA;EjBlFR,eAAA;;AAEA,mBAA6C;EAA7C,qBiB5DJ,gBAmII,gBAII;IjB1EA,aAAA;;;AEzDR,qBeJA,gBAmII,gBAII,gBAWI;EjBxFR,eAAA;;AAEA,mBAA6C;EAA7C,qBiB5DJ,gBAmII,gBAII,gBAWI;IjBrFJ,aAAA;;;AEzDR,qBeJA,gBAmII,gBAII,gBAiBI;EAKI,kBAAA;;AfzJhB,qBeJA,gBAmII,gBAII,gBAiBI,qBAOI;EACI,kBAAA;EACA,WAAA;EACA,YAAA;EACA,MAAA;EACA,OAAA;EAEA,kBAAA;EACA,gBAAA;;AfnKpB,qBeJA,gBAmII,gBAII,gBAiBI,qBAiBI;EAEI,WAAA;EACA,uBAAA;EACA,iBAAA;;AfzKpB,qBeJA,gBAmII,gBAII,gBA4CI;Af/KZ,qBeJA,gBAmII,gBAII,gBA6CI;EACI,aAAA;;AACA,mBAA6C;EAA7C,qBAtLhB,gBAmII,gBAII,gBA4CI;EAGI,qBAtLhB,gBAmII,gBAII,gBA6CI;IAGQ,cAAA;;;AfnLpB,qBeJA,gBAmII,gBAII,gBAqDI;EACI,aAAA;EACA,mBAAA;;AAEA,mBAA6C;EAA7C,qBAhMhB,gBAmII,gBAII,gBAqDI;IAKQ,cAAA;;;Af7LpB,qBeJA,gBAmII,gBAII,gBAqDI,eAQI;EACI,QAAA;;AfjMpB,qBeJA,gBAmII,gBAII,gBAqDI,eAWI;EACI,WAAA;EACA,iBAAA;EACA,oBAAA;;AAEA,mBAA6C;EAA7C,qBA5MpB,gBAmII,gBAII,gBAqDI,eAWI;IAMQ,WAAA;IACA,iBAAA;IACA,cAAA;;;Af3MxB,qBeJA,gBAmII,gBAyFI;EACI,mBAAA;EACA,gBAAA;EAGA,aAAA;EACA,sBAAA;;Af9NZ,qBeJA,gBAmII,gBAoGI,aACI;EACI,eAAA;;AfrOhB,qBeJA,gBAmII,gBA0GI,uBACI;Af1OZ,qBeJA,gBAmII,gBA0GI,uBACmB;EjBpLvB,eAAA;;AAEA,mBAA6C;EAA7C,qBiB5DJ,gBAmII,gBA0GI,uBACI;EjBlLR,qBiB5DJ,gBAmII,gBA0GI,uBACmB;IjBjLnB,aAAA;;;AEzDR,qBeJA,gBAmII,gBAgHI;EjBzLJ,eAAA;EApBA,0BAAA;EiBiNQ,YAAA;;AjB3LR,mBAA6C;EAA7C,qBiB5DJ,gBAmII,gBAgHI;IjBtLA,aAAA;;;AEzDR,qBeJA,gBAmII,gBAgHI,wBAMI;EACI,sBAAA;;AftPhB,qBeJA,gBAmII,gBAgII;EjB7NJ,0BAAA;;AElCJ,qBeJA,gBAmII,gBAoII;EAEI,YAAA;;AfrQZ,qBeJA,gBAmII,gBAoII,oBAII;EACI,yBAAA;EACA,oBAAA;;AfzQhB,qBeJA,gBAmII,gBA+II;EACI,YAAA;EACA,mBAAA;;AfhRZ,qBeJA,gBAmII,gBA+II,wBAII;EACI,gBAAA;;AfnRhB,qBgBHA;EAEI,eAAA;ElBmCA,0BAAA;EAIA,6BAAA;;AEtCJ,qBgBHA,iBAMI;EACI,SAAA;;AAEA,qBATR,iBAMI,WAGK;EACG,sBAAA;;AhBPZ,qBgBHA,iBAcI;EACI,cAAA;;AhBZR,qBgBHA,iBAkBI;EACI,eAAA;ElB+BJ,sBAAA;;AE/CJ,qBgBHA,iBAuBI,qBAEI;EACI,oBAAA;EACA,eAAA;EACA,WAAA;;AAEA,qBA9BZ,iBAuBI,qBAEI,IAKK;EACG,WAAA;;AhB5BhB,qBgBHA,iBAqCI;EACI,aAAA;;AhBnCR,qBiBNA,CAAA,iBACI;EACI,gBAAA;;AjBIR,qBiBAA,eAEI;EnByBA,cAAA;EAfA,gBAAA;EAPA,iBAAA;EACA,SAAA;;AENJ,qBiBOA,mBAEQ,QACI;EACI,mBAAA;EACA,oBAAA;EACA,6BAAA;;AjBbhB,qBiBOA,mBAEQ,QACI,YAKI;EAEI,cAAA;EACA,sBAAA;;AjBlBpB,qBkBNA,CAAA,cAEI,sBACI;EpB8BJ,cAAA;EAfA,gBAAA;EAPA,iBAAA;EACA,SAAA;;AENJ,qBkBNA,CAAA,cAOI;AlBDJ,qBkBNA,CAAA,cAOwB;EAChB,iBAAA;EACA,6BAAA;;AlBHR,qBkBNA,CAAA,cAOI,mBAII;AlBLR,qBkBNA,CAAA,cAOwB,sBAIhB;EACI,eAAA","sourcesContent":["// Mixins\r\n.dcf-center-vertically {\r\n\r\n display: flex;\r\n align-items: center;\r\n\r\n}\r\n\r\n\r\n#titles(){\r\n\r\n padding: @dist-sm 0;\r\n margin:0;\r\n\r\n}\r\n\r\n#title-1(){\r\n\r\n font-size: @title-1-size;\r\n #titles;\r\n\r\n}\r\n\r\n#title-2(){\r\n\r\n font-size: @title-2-size;\r\n #titles;\r\n\r\n}\r\n\r\n\r\n#title-1-block(){\r\n\r\n display:block; \r\n #title-1;\r\n\r\n}\r\n\r\n// Separator borders\r\n#sep-border-top(){\r\n border-top: @separator-border;\r\n}\r\n\r\n#sep-border-bottom(){\r\n border-bottom: @separator-border;\r\n}\r\n\r\n#sep-border-top-bottom(){\r\n #sep-border-top;\r\n #sep-border-bottom\r\n}\r\n\r\n#input-border(){\r\n border: @separator-border;\r\n}\r\n\r\n// Padding of block, mobile vs normal\r\n\r\n#block-responsive-pad-md(){\r\n\r\n padding: @dist-sm;\r\n\r\n @media screen and (min-width: @break-desktop){\r\n padding: @dist-md;\r\n }\r\n\r\n}","\r\n// Utility Classes\r\n\r\n // Table\r\n .dcf-table-100 {\r\n width: 100%;\r\n }\r\n\r\n .dcf-d-none {\r\n display: none;\r\n }\r\n\r\n .dcf-invisible {\r\n // Hide, but not for screen readers\r\n\r\n position: absolute !important;\r\n clip: rect(1px, 1px, 1px, 1px);\r\n\r\n }\r\n\r\n .dcf-d-none-mob {\r\n display: none;\r\n\r\n @media screen and (min-width: @break-tablet) {\r\n display: initial;\r\n }\r\n }","@import '_variables.less';\r\n@import '_mixins.less';\r\n@import '_utilities.less';\r\n\r\n\r\n// Main wrapper\r\n.dnn-community-forums {\r\n\r\n @import 'parts/_edit.less';\r\n \r\n @import 'parts/_topic-edit.less';\r\n\r\n @import 'parts/_columns.less';\r\n\r\n @import 'parts/_breadcrumbs.less';\r\n\r\n @import 'parts/_collapse.less';\r\n \r\n @import 'parts/_subscribe.less';\r\n \r\n @import 'parts/_action-bars.less';\r\n \r\n @import 'parts/_pager.less';\r\n\r\n @import 'parts/_table.less';\r\n\r\n @import 'parts/_toolbar.less';\r\n\r\n @import 'parts/_group-title.less';\r\n\r\n @import 'parts/_forum-view.less';\r\n\r\n @import 'parts/_topics-view.less';\r\n\r\n @import 'parts/_topic-view.less';\r\n\r\n @import 'parts/_quick-reply.less';\r\n\r\n @import 'parts/_search-results.less';\r\n\r\n @import 'parts/_search-advanced.less';\r\n\r\n}","\r\n// Working around Topic editors HTML limitations ;-)\r\n\r\n\t.afeditor {\r\n\t\tbackground: #fff;\r\n\t\tborder: none;\r\n\t\tfont-size: 1em;\r\n\r\n\t\t* {\r\n\t\t\tfont-size: inherit;\r\n\t\t}\r\n\r\n\t\t> table{\r\n\t\t\ttd{\r\n\t\t\t\tpadding: @dist-sm 0;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.cke_top {\r\n\t\t\tfont-size: 12px;\r\n\t\t}\r\n\r\n\t\t// Styling of the subject\r\n\t\ttable table[width=\"99%\"] {\r\n\r\n\t\t\t>tbody>tr:nth-child(1) {\r\n\r\n\t\t\t\t>td {\r\n\t\t\t\t\tpadding: 0.3em 0;\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t\ttr:nth-child(2) {\r\n\r\n\t\t\t\t.aftextbox[readonly] {\r\n\t\t\t\t\tborder: none;\r\n\t\t\t\t\tpadding: 0;\r\n\t\t\t\t\tbackground: transparent;\r\n\t\t\t\t\tfont-weight: bold;\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\r\n\r\n\t\t\r\n\t\t\tinput {\r\n\t\t\t\t&[type='checkbox']{\r\n\t\t\t\tmargin-right: @dist-sm;\r\n\t\t\t}\r\n\t\t\t}\r\n\t\t\r\n\r\n\t\t.amtbwrapper {\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t> div{\r\n\t\t\t\tmax-width: 100% !important;\r\n\t\t\t\tdisplay:flex;\r\n\t\t\t\tjustify-content: center;\r\n\t\t\t\t.amimagebutton {\r\n\t\t\t\t\t&, &_over{\r\n\t\t\t\t\t\ttext-align: center;\r\n\t\t\t\t\t\twidth: auto !important;\r\n\t\t\t\t\t\theight: auto !important;\r\n\t\t\t\t\t\tpadding: @dist-sm;\r\n\t\t\t\t\t\tcursor: pointer;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t&_over{\r\n\r\n\t\t\t\t\t\topacity: 0.7;\r\n\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\t.cke_wysiwyg_frame {\r\n\t\t\tfont-family: sans serif;\r\n\t\t}\r\n\r\n\t\t.afsection{\r\n\t\t\tmin-width: 100%;\r\n\t\t\t#sep-border-bottom;\r\n\t\t}\r\n\r\n\r\n\t\t.afsectionhd {\r\n\r\n\t\t\tborder: none !important;\r\n\t\t\tpadding: 0.3em;\r\n\t\t}\r\n\r\n\t}\r\n","\r\n// Pushing the inputs wider. for #826\r\n// Temporary solution as we should change the af- CSS class of the input to a dcf- class name\r\n.dcf-topic-edit-subject, .dcf-topic-edit-summary{\r\n\r\n input{\r\n width: 95%;\r\n }\r\n}",".dcf-cols{\r\n display:flex;\r\n flex-wrap: wrap;\r\n\r\n .dcf-col-100{\r\n width: 100%;\r\n }\r\n .dcf-col-50{\r\n \r\n width: 50%;\r\n\r\n }\r\n\r\n .dcf-col-50-md{\r\n width: 100%;\r\n @media screen and (min-width: @break-tablet){\r\n width: 50%;\r\n }\r\n }\r\n\r\n .dcf-col-25{\r\n width: 100%;\r\n @media screen and (min-width: @break-desktop){\r\n width: 25%;\r\n max-width: 250px;\r\n }\r\n }\r\n .dcf-col-75{\r\n width: 100%;\r\n @media screen and (min-width: @break-desktop){\r\n width: 75%;\r\n }\r\n flex-grow: 1;\r\n }\r\n}",".dcf-breadcrumb{\r\n\r\n padding: @dist-sm; \r\n #sep-border-bottom;\r\n\r\n\r\n .fa{\r\n color: @grey-medium;\r\n }\r\n\r\n a{\r\n color: @link-dim-col;\r\n }\r\n\r\n}\r\n",".dcf-collapsible{\r\n .fa{\r\n color: @grey-medium;\r\n }\r\n}",".dcf-subscribe-topic{\r\n label{\r\n margin-left: 0.5em;\r\n }\r\n}\r\n\r\n.dcf-forum-subscribers, .dcf-subscribe-forum{\r\n \r\n margin-top: @dist-xs;\r\n\r\n @media screen and (min-width: @break-tablet){\r\n text-align:right;\r\n }\r\n \r\n}\r\n\r\n","// Mobile hide and show\r\n// Icon texts\r\n \t\t\r\n .dcf-link-text {\r\n\r\n display: none;\r\n margin-left: @dist-xs;\r\n\r\n @media screen and (min-width: @break-desktop) {\r\n\r\n display: inline;\r\n\r\n }\r\n }\r\n \r\n .dcf-actions{\r\n padding: @dist-md 0;\r\n\r\n &-top{\r\n display: flex;\r\n flex-wrap: wrap;\r\n .dcf-forum-title{\r\n flex-grow: 1;\r\n }\r\n }\r\n\r\n &-bottom{\r\n display: flex;\r\n flex-wrap: wrap;\r\n \r\n .dcf-action-add{\r\n flex-grow: 1;\r\n }\r\n \r\n .amaf-chk-subs{ // Subscribe checkbox distance to label\r\n margin-right: @dist-sm;\r\n \r\n }\r\n }\r\n\r\n\r\n .dcf-forum-search{\r\n display:flex;\r\n justify-content: end;\r\n\r\n span{ // Search label\r\n margin-right: @dist-sm;\r\n }\r\n }\r\n}\r\n\r\n",".afpager{\r\n td{\r\n\r\n padding: @dist-sm;\r\n }\r\n\r\n .af_pager{\r\n\r\n padding: @dist-sm;\r\n \r\n }\r\n}\r\n\r\n.af-search-recordCount{\r\n display:block;\r\n padding-top: @dist-sm;\r\n\r\n}",".dcf-table {\r\n\r\n .dcf-table-head-row {\r\n\r\n border-bottom: @separator-border;\r\n\r\n }\r\n\r\n // Table TR and TD\r\n .dcf-th,\r\n .dcf-col {\r\n padding: @dist-md @dist-sm ;\r\n }\r\n\r\n // Table Heading\r\n .dcf-th {\r\n\r\n text-align: left;\r\n font-weight: normal;\r\n\r\n &.dcf-forum-icon-text {\r\n padding-right: 0;\r\n }\r\n\r\n }\r\n\r\n // Table TR and TD\r\n .dcf-table-body-row {\r\n .dcf-col {\r\n vertical-align: top;\r\n border-bottom: @separator-border;\r\n }\r\n }\r\n\r\n // Table header\r\n .dcf-table-body-row {\r\n\r\n // TH width \r\n .dcf-col-number,\r\n .dcf-col-replies,\r\n .dcf-col-views,\r\n .dcf-col-ratings,\r\n .dcf-col-status,\r\n .dcf-col-subscribers {\r\n text-align: center;\r\n width: 0; // Shrink them..\r\n }\r\n\r\n .dcf-col-icon {\r\n\r\n width: 0;\r\n }\r\n\r\n .dcf-col-text, .dcf-col-subject{\r\n width: 80%;\r\n\r\n @media screen and(min-width: @break-tablet){\r\n width: 60%;\r\n }\r\n }\r\n\r\n }\r\n\r\n // Icon with text\r\n .dcf-icon-text {\r\n white-space: nowrap;\r\n\r\n .dcf-link-text {\r\n margin-left: 0.3em;\r\n }\r\n }\r\n\r\n\r\n // Forum Description\r\n .dcf-forum-description {\r\n display: block;\r\n padding-top: 1em;\r\n font-size: 0.9em;\r\n\r\n .fa {\r\n display: none; // Hide description icon\r\n\r\n }\r\n\r\n &:empty {\r\n padding-top: 0;\r\n }\r\n }\r\n\r\n\r\n // Forum Icon Column\r\n .dcf-col-icon {\r\n font-size: 0.7em; // Overrrule fa-2x\r\n\r\n >div {\r\n // https://github.com/DNNCommunity/Dnn.CommunityForums/issues/467\r\n margin: 0 !important;\r\n height: auto;\r\n }\r\n\r\n .fa {\r\n padding-top: 0.1em;\r\n }\r\n }\r\n\r\n .dcf-topic-started {\r\n padding: @dist-sm 0;\r\n }\r\n\r\n\r\n\r\n\r\n\r\n @import url(\"_table-responsive.less\");\r\n\r\n}"," \t\t// Hide Icon row and Last posts row on Mobile\r\n .dcf-col-icon>div {\r\n display: none;\r\n \r\n @media screen and (min-width: @break-tablet) {\r\n \r\n display: block;\r\n \r\n }\r\n \r\n \r\n }\r\n \r\n .dcf-col-last-post {\r\n \r\n display: none;\r\n \r\n @media screen and (min-width: @break-tablet) {\r\n \r\n display: table-cell;\r\n \r\n }\r\n \r\n }\r\n\r\n \r\n \t\r\n ","// Toolbars\r\n\r\n// The module renders some toolbars as a UL without class, so I used the same in Toolbar.txt\r\n// This is also used in TopicView.txt\r\n.dcf-toolbar {\r\n\r\n >ul {\r\n\r\n margin: 0; // UL overrule\r\n padding: 0;\r\n\r\n\r\n\r\n\r\n display: flex;\r\n flex-wrap: wrap;\r\n gap: @dist-md;\r\n\r\n\r\n }\r\n\r\n li {\r\n list-style-type: none;\r\n margin: 0;\r\n padding: 0;\r\n display: flex;\r\n align-items: center;\r\n }\r\n}\r\n\r\n// Toolbar on top\r\n.dcf-toolbars {\r\n\r\n display: flex;\r\n flex-wrap: wrap;\r\n padding: @dist-sm 0;\r\n #sep-border-bottom;\r\n\r\n\r\n .dcf-toolbar-user {\r\n flex-grow: 1;\r\n padding-bottom: @dist-sm;\r\n\r\n\r\n\r\n }\r\n\r\n .dcf-toolbar-manage {\r\n\r\n\r\n\r\n @media screen and (min-width: @break-tablet) {\r\n justify-content: end;\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n // Quick Search in toolbar\r\n\r\n .dcf-quick-search {\r\n position: relative;\r\n display: block;\r\n\r\n\r\n .dcf-search-link {\r\n display: block;\r\n text-align: right;\r\n cursor: pointer;\r\n }\r\n\r\n .dcf-search-popup {\r\n background: white;\r\n border: solid 1px #eee;\r\n padding: @dist-md;\r\n display: none;\r\n position: absolute;\r\n min-width: 300px;\r\n right: 0;\r\n left: auto !important;\r\n top: 2.5em;\r\n }\r\n\r\n @button-width: 4em;\r\n\r\n .dcf-search-input {\r\n display:flex;\r\n .dcf-search-input {\r\n border: solid 1px #bbb;\r\n flex-grow: 1;\r\n padding: 0 @dist-sm;\r\n }\r\n\r\n .dcf-search-button {\r\n border: none;\r\n margin-left: @dist-xs;\r\n padding: 0 @dist-sm;\r\n }\r\n }\r\n\r\n .dcf-search-options{\r\n .dcf-search-option-advanced{\r\n display: block;\r\n width: 100%;\r\n padding: @dist-sm 0;\r\n }\r\n\r\n .dcf-search-option-topics{\r\n margin-right: @dist-md;\r\n }\r\n\r\n .dcf-search-option-text{\r\n margin-left: @dist-xs;\r\n }\r\n }\r\n\r\n \r\n\r\n\r\n }\r\n\r\n}","\r\n// Collapse block for Forums\r\n.dcf-group-title-wrap{\r\n\r\n .dcf-center-vertically;\r\n border-bottom: solid 1px @grey-superlight;\r\n padding: @dist-md 0;\r\n\r\n // Title\r\n .dcf-group-title {\r\n font-size: @title-1-size;\r\n color: @title-color;\r\n text-rowansform: uppercase;\r\n margin: 0;\r\n flex-grow: 1;\r\n }\r\n \r\n\r\n // Collapse\r\n .dcf-group-collapse {\r\n\r\n cursor: pointer;\r\n }\r\n\r\n}\r\n\r\n "," .dcf-forum-view {\r\n\r\n \t// Forum groups\r\n \t.dcf-forums-group {\r\n\r\n \t\tmargin-bottom: @dist-md;\r\n \t\tpadding: @dist-md 0;\r\n\r\n\r\n \t\t.dcf-forum-title {\r\n \t\t\tmargin: 0;\r\n \t\t\tfont-size: @title-2-size;\r\n \t\t}\r\n\r\n\t\t// Align fourm icon with title and text\r\n\t\t .dcf-main-forums{\r\n\r\n\t\t\t\t.dcf-col-text-inner{\r\n\t\t\t\t\tdisplay: flex;\r\n\t\t\t\t\r\n\t\t\t\t}\r\n\r\n\t\t }\r\n\t\t\r\n\r\n \t\t.dcf-lastpost-subject {\r\n \t\t\tdisplay: block;\r\n \t\t}\r\n\r\n\r\n \t\t// Sub Forums\r\n \t\t.dcf-sub-forums {\r\n \t\t\t.dcf-col-icon {\r\n \t\t\t\tborder: none;\r\n \t\t\t}\r\n\r\n \t\t\t.dcf-sub-forum-title {\r\n\r\n \t\t\t\tfont-size: @title-3-size;\r\n \t\t\t\tmargin: 0;\r\n \t\t\t\tcolor: @title-color;\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t}\r\n }\r\n ",".dcf-topics-view {\r\n\r\n\r\n .dcf-forum-title {\r\n\r\n margin-top: 0;\r\n font-size: @title-2-size;\r\n flex-grow: 1;\r\n width: 100%;\r\n @media screen and (min-width: @break-tablet){\r\n width: auto;\r\n }\r\n }\r\n\r\n .dcf-forum-search-subscribe{\r\n .dcf-forum-search{\r\n padding-bottom: @dist-md;\r\n }\r\n .dcf-subscribe-forum{\r\n .amaf-chk-subs{\r\n margin: 0 @dist-sm 0 @dist-xs ;\r\n }\r\n }\r\n }\r\n\r\n .dcf-topic-title {\r\n\r\n margin: 0;\r\n font-size: @title-3-size;\r\n }\r\n\r\n\r\n // Table head\r\n\r\n .dcf-table-head-row{\r\n .dcf-col-title {\r\n width: 100%; // Push other THs to the right\r\n .dcf-title {\r\n margin: 0;\r\n font-size: @title-3-size;\r\n }\r\n \r\n }\r\n }\r\n \r\n\r\n\r\n // Topics \r\n .dcf-topics {\r\n\r\n\r\n\r\n padding-bottom: 3em;\r\n\r\n &:empty{\r\n\r\n padding-bottom: 0;\r\n }\r\n\r\n .dcf-col-icon {\r\n padding-top: 1.9em;\r\n }\r\n\r\n .dcf-col-subject{\r\n\r\n width: 100%; // Push other TDs to the right\r\n }\r\n\r\n .dcf-actions-top {\r\n display: flex;\r\n justify-content: flex-end; // Align pager at the right\r\n\r\n }\r\n\r\n .dcf-subject {\r\n\r\n .afpagermini {\r\n padding: @dist-sm 0;\r\n display: inline-flex;\r\n align-items: center;\r\n\r\n a {\r\n margin-left: @dist-sm;\r\n }\r\n }\r\n\r\n .dcf-title {\r\n margin: 0 0 @dist-sm;\r\n }\r\n\r\n .dcf-topic-description {\r\n margin-bottom: @dist-md;\r\n max-height: 7.5em;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n }\r\n\r\n .dcf-topic-tools {\r\n display: flex;\r\n align-items: center;\r\n\r\n a {\r\n margin-right: @dist-sm;\r\n }\r\n }\r\n\r\n // Hide on mobile\r\n .dcf-topic-description,\r\n .afpagermini {\r\n\r\n display: none;\r\n\r\n @media screen and (min-width: @break-desktop) {\r\n display: block;\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n .dcf-last-post {\r\n white-space: nowrap;\r\n\r\n a {\r\n display: block;\r\n }\r\n\r\n br {\r\n display: none;\r\n }\r\n }\r\n\r\n\r\n\r\n .dcf-actions-bottom {\r\n display: flex;\r\n\r\n .dcf-buttons {\r\n // Push pager to the right;\r\n\r\n flex-grow: 1;\r\n }\r\n\r\n }\r\n }\r\n\r\n}","\r\n\r\n.dcf-topic-view{\r\n\r\n .dcf-title-1{\r\n #title-1;\r\n display:flex;\r\n align-items:center;\r\n .fa{\r\n margin-right: @dist-sm;\r\n }\r\n }\r\n\r\n\r\n\t/* Forums previous and next Topic */\r\n\t.dcf-prev-next {\r\n\r\n @prev-next-bg: #eee;\r\n @prev-next-bg-hover: #ddd;\r\n @prev-next-color: @link-dim-col;\r\n\r\n\t\t\r\n\t\tmargin-top: @dist-sm;\r\n\t\tpadding-bottom: @dist-sm;\r\n\t\t#sep-border-bottom;\r\n border-style: dashed;\r\n\r\n\t\ta {\r\n\r\n\t\t\tcolor: @link-dim-col;\r\n\r\n\t\t\t.fa{\r\n margin: 0 0.5em;\r\n }\r\n\r\n\r\n\r\n\t\t}\r\n\r\n\t}\r\n \r\n \r\n \r\n // Header content\r\n\r\n .dcf-header-content{\r\n\r\n padding-top:@dist-md;\r\n\r\n .dcf-topic-buttons{\r\n\r\n padding-top: @dist-md;\r\n\r\n\r\n }\r\n\r\n .dcf-topic-controls{\r\n\r\n margin-top: @dist-sm;\r\n \r\n @media screen and (min-width: @break-tablet){\r\n text-align:right;\r\n }\r\n\r\n .dcf-sort{\r\n display:inline-block;\r\n padding-bottom: @dist-sm;\r\n select{\r\n margin-left: 0.5em;\r\n }\r\n }\r\n\r\n .dcf-subscribe-topic{\r\n padding-bottom: @dist-md;\r\n label{\r\n margin-bottom:0;\r\n }\r\n }\r\n }\r\n\r\n \r\n\r\n\r\n\r\n\r\n\r\n }\r\n\r\n .dcf-pager{\r\n padding: 0.3em 0;\r\n flex-grow: 1;\r\n display:flex;\r\n justify-content: flex-end;\r\n \r\n }\r\n\r\n .dcf-tools{\r\n display:flex;\r\n flex-wrap:wrap;\r\n align-items: center;\r\n .dnnPrimaryAction{\r\n margin-bottom:0;\r\n }\r\n\r\n &-top{\r\n padding-top: @dist-sm;\r\n }\r\n &-bottom{\r\n padding-bottom: @dist-sm;\r\n }\r\n }\r\n\r\n // Posts\r\n\r\n @post-info-bg: #f2f2f2;\r\n @post-content-bg: #fafafa;\r\n\r\n @post-signature-bg: #fff;\r\n\r\n .dcf-topic-headings{\r\n padding: @dist-sm;\r\n #sep-border-bottom;\r\n font-size: @title-3-size;\r\n\r\n display:none;\r\n \r\n @media screen and (min-width: @break-tablet){\r\n display: flex;\r\n\r\n }\r\n }\r\n\r\n\r\n .dcf-topic-post{\r\n\r\n margin: @dist-lg 0 @dist-xl;\r\n\r\n .dcf-topic-info{ \r\n\r\n\r\n // Toipic Info\r\n background: @post-info-bg;\r\n min-height: 100%;\r\n \r\n #block-responsive-pad-md;\r\n\r\n // Post info block\r\n\r\n .dcf-avatar{\r\n\r\n #block-responsive-pad-md;\r\n }\r\n\r\n // Making the avatar rectangular and cover with the image\r\n .dcf-avatar-img-wrap{\r\n\r\n \r\n \r\n //padding-top: 100%; > See below for responsive values\r\n position:relative;\r\n\r\n .dcf-avatar-img{\r\n position:absolute;\r\n width: 100%;\r\n height: 100%;\r\n top:0;\r\n left:0;\r\n \r\n border-radius: 50%;\r\n overflow :hidden;\r\n }\r\n img{\r\n \r\n width: 100%;\r\n height: 100% !important;\r\n object-fit: cover;\r\n }\r\n }\r\n\r\n\r\n // Mobile vs Desktop\r\n .dcf-post-user-rank,\r\n .dcf-post-user-data{\r\n display: none;\r\n @media screen and (min-width: @break-desktop){\r\n display: block;\r\n }\r\n }\r\n\r\n\r\n .dcf-post-user{\r\n display:flex;\r\n align-items: center;\r\n\r\n @media screen and (min-width: @break-desktop){\r\n display: block;\r\n }\r\n\r\n .dcf-user{\r\n order: 1;\r\n }\r\n .dcf-avatar-img-wrap{\r\n width: 50px;\r\n padding-top: 50px;\r\n margin: 0 @dist-sm 0 0 ;\r\n\r\n @media screen and (min-width: @break-desktop){\r\n width: 100%;\r\n padding-top: 100%;\r\n margin: @dist-md 0;\r\n }\r\n \r\n }\r\n }\r\n\r\n \r\n }\r\n\r\n\r\n\r\n\r\n\r\n .dcf-topic-content{\r\n background: @post-content-bg;\r\n min-height: 100%;\r\n \r\n // Used so we can push the like div to the bottom\r\n display:flex;\r\n flex-direction: column;\r\n\r\n\r\n }\r\n\r\n .dcf-toolbar{ // Loaded from gerenal central definition\r\n li{\r\n cursor: pointer;\r\n }\r\n }\r\n\r\n .dcf-topic-content-top{\r\n .dcf-postdate, .dcf-topic-actions{\r\n #block-responsive-pad-md;\r\n }\r\n }\r\n\r\n .dcf-topic-content-main{\r\n //push footer tho the end\r\n #block-responsive-pad-md;\r\n #sep-border-top;\r\n flex-grow: 1;\r\n\r\n .dcf-post-body{\r\n padding-bottom: @dist-lg;\r\n }\r\n\r\n } \r\n \r\n \r\n\r\n \r\n\r\n .dcf-post-footer{\r\n #sep-border-top;\r\n }\r\n\r\n .dcf-post-signature{\r\n \r\n margin: @dist-md;\r\n\r\n *{\r\n font-size: 1em !important;\r\n margin: 0 !important;\r\n }\r\n \r\n }\r\n\r\n .dcf-post-footer-bottom{\r\n margin: @dist-md;\r\n align-items: center;\r\n\r\n .dcf-post-likes{\r\n font-size: 0.8em;\r\n \r\n }\r\n }\r\n\r\n\r\n}\r\n\r\n\r\n}","@qr-icon-color: #666;\r\n@qr-icon-color-hover: #000;\r\n\r\n.dcf-quick-reply{\r\n\r\n padding: @dist-md 0;\r\n #sep-border-top;\r\n #sep-border-bottom;\r\n\r\n .dcf-title{\r\n margin:0;\r\n\r\n &-4{\r\n margin: @dist-md 0 @dist-xs;\r\n }\r\n }\r\n\r\n .dcf-quick-reply-header{\r\n margin: @dist-md 0;\r\n }\r\n\r\n .dcf-textbox{\r\n max-width: 100%;\r\n #input-border;\r\n }\r\n\r\n .dcf-toolbar-buttons{\r\n\r\n .fa{\r\n padding: 0.5em 0.7em;\r\n cursor: pointer;\r\n color: @qr-icon-color;\r\n\r\n &:hover{\r\n color: @qr-icon-color-hover;\r\n }\r\n }\r\n\r\n }\r\n\r\n .dcf-subscribe-topic{\r\n margin: 1em 0;\r\n }\r\n}",".af-search-header{\r\n .af-search-title{\r\n font-size: @title-1-size;\r\n }\r\n}\r\n\r\n.af-search-bar{\r\n\r\n .af-search-title{\r\n #title-1-block;\r\n }\r\n}\r\n\r\n.af-search-results{\r\n\r\n .afgrid{\r\n .aftopicrow{\r\n vertical-align:top;\r\n padding: @dist-md @dist-sm;\r\n border-bottom: @separator-border;\r\n\r\n .aftopictitle{\r\n\r\n display:block;\r\n padding-bottom: @dist-sm;\r\n }\r\n }\r\n }\r\n\r\n\r\n}",".af-adv-search{\r\n\r\n .af-adv-search-header{\r\n .af-adv-search-title{\r\n #title-1-block;\r\n }\r\n }\r\n .af-adv-search-row, .af-adv-search-footer{\r\n padding: @dist-sm 0;\r\n border-bottom: @separator-border;\r\n\r\n label{\r\n min-width: 20em;\r\n }\r\n }\r\n}"],"file":"theme.css"} \ No newline at end of file +{"version":3,"sources":["_mixins.less","_utilities.less","theme.less","parts/_edit.less","parts/_topic-edit.less","parts/_columns.less","parts/_breadcrumbs.less","parts/_collapse.less","parts/_subscribe.less","parts/_action-bars.less","parts/_pager.less","parts/_table.less","parts/_table-responsive.less","parts/_toolbar.less","parts/_group-title.less","parts/_forum-view.less","parts/_topics-view.less","parts/_topic-view.less","parts/_quick-reply.less","parts/_search-results.less","parts/_search-advanced.less"],"names":[],"mappings":"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","sourcesContent":["// Mixins\r\n.dcf-center-vertically {\r\n\r\n display: flex;\r\n align-items: center;\r\n\r\n}\r\n\r\n\r\n#titles(){\r\n\r\n padding: @dist-sm 0;\r\n margin:0;\r\n\r\n}\r\n\r\n#title-1(){\r\n\r\n font-size: @title-1-size;\r\n #titles;\r\n\r\n}\r\n\r\n#title-2(){\r\n\r\n font-size: @title-2-size;\r\n #titles;\r\n\r\n}\r\n\r\n\r\n#title-1-block(){\r\n\r\n display:block; \r\n #title-1;\r\n\r\n}\r\n\r\n// Separator borders\r\n#sep-border-top(){\r\n border-top: @separator-border;\r\n}\r\n\r\n#sep-border-bottom(){\r\n border-bottom: @separator-border;\r\n}\r\n\r\n#sep-border-top-bottom(){\r\n #sep-border-top;\r\n #sep-border-bottom\r\n}\r\n\r\n#input-border(){\r\n border: @separator-border;\r\n}\r\n\r\n// Padding of block, mobile vs normal\r\n\r\n#block-responsive-pad-md(){\r\n\r\n padding: @dist-sm;\r\n\r\n @media screen and (min-width: @break-desktop){\r\n padding: @dist-md;\r\n }\r\n\r\n}","\r\n// Utility Classes\r\n\r\n // Table\r\n .dcf-table-100 {\r\n width: 100%;\r\n }\r\n\r\n .dcf-d-none {\r\n display: none;\r\n }\r\n\r\n .dcf-invisible {\r\n // Hide, but not for screen readers\r\n\r\n position: absolute !important;\r\n clip: rect(1px, 1px, 1px, 1px);\r\n\r\n }\r\n\r\n .dcf-d-none-mob {\r\n display: none;\r\n\r\n @media screen and (min-width: @break-tablet) {\r\n display: initial;\r\n }\r\n }\r\n\r\n .dcf-text-end{\r\n text-align: end;\r\n }\r\n\r\n .dcf-break-word{\r\n\r\n word-break: break-all;\r\n\r\n }","@import '_variables.less';\r\n@import '_mixins.less';\r\n@import '_utilities.less';\r\n\r\n\r\n// Main wrapper\r\n.dnn-community-forums {\r\n\r\n @import 'parts/_edit.less';\r\n \r\n @import 'parts/_topic-edit.less';\r\n\r\n @import 'parts/_columns.less';\r\n\r\n @import 'parts/_breadcrumbs.less';\r\n\r\n @import 'parts/_collapse.less';\r\n \r\n @import 'parts/_subscribe.less';\r\n \r\n @import 'parts/_action-bars.less';\r\n \r\n @import 'parts/_pager.less';\r\n\r\n @import 'parts/_table.less';\r\n\r\n @import 'parts/_toolbar.less';\r\n\r\n @import 'parts/_group-title.less';\r\n\r\n @import 'parts/_forum-view.less';\r\n\r\n @import 'parts/_topics-view.less';\r\n\r\n @import 'parts/_topic-view.less';\r\n\r\n @import 'parts/_quick-reply.less';\r\n\r\n @import 'parts/_search-results.less';\r\n\r\n @import 'parts/_search-advanced.less';\r\n\r\n}","\r\n// Working around Topic editors HTML limitations ;-)\r\n\r\n\t.afeditor {\r\n\t\tbackground: #fff;\r\n\t\tborder: none;\r\n\t\tfont-size: 1em;\r\n\r\n\t\t* {\r\n\t\t\tfont-size: inherit;\r\n\t\t}\r\n\r\n\t\t> table{\r\n\t\t\ttd{\r\n\t\t\t\tpadding: @dist-sm 0;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.cke_top {\r\n\t\t\tfont-size: 12px;\r\n\t\t}\r\n\r\n\t\t// Styling of the subject\r\n\t\ttable table[width=\"99%\"] {\r\n\r\n\t\t\t>tbody>tr:nth-child(1) {\r\n\r\n\t\t\t\t>td {\r\n\t\t\t\t\tpadding: 0.3em 0;\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t\ttr:nth-child(2) {\r\n\r\n\t\t\t\t.aftextbox[readonly] {\r\n\t\t\t\t\tborder: none;\r\n\t\t\t\t\tpadding: 0;\r\n\t\t\t\t\tbackground: transparent;\r\n\t\t\t\t\tfont-weight: bold;\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\r\n\r\n\t\t\r\n\t\t\tinput {\r\n\t\t\t\t&[type='checkbox']{\r\n\t\t\t\tmargin-right: @dist-sm;\r\n\t\t\t}\r\n\t\t\t}\r\n\t\t\r\n\r\n\t\t.amtbwrapper {\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t> div{\r\n\t\t\t\tmax-width: 100% !important;\r\n\t\t\t\tdisplay:flex;\r\n\t\t\t\tjustify-content: center;\r\n\t\t\t\t.amimagebutton {\r\n\t\t\t\t\t&, &_over{\r\n\t\t\t\t\t\ttext-align: center;\r\n\t\t\t\t\t\twidth: auto !important;\r\n\t\t\t\t\t\theight: auto !important;\r\n\t\t\t\t\t\tpadding: @dist-sm;\r\n\t\t\t\t\t\tcursor: pointer;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t&_over{\r\n\r\n\t\t\t\t\t\topacity: 0.7;\r\n\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\t.cke_wysiwyg_frame {\r\n\t\t\tfont-family: sans serif;\r\n\t\t}\r\n\r\n\t\t.afsection{\r\n\t\t\tmin-width: 100%;\r\n\t\t\t#sep-border-bottom;\r\n\t\t}\r\n\r\n\r\n\t\t.afsectionhd {\r\n\r\n\t\t\tborder: none !important;\r\n\t\t\tpadding: 0.3em;\r\n\t\t}\r\n\r\n\t}\r\n","\r\n// Pushing the inputs wider. for #826\r\n// Temporary solution as we should change the af- CSS class of the input to a dcf- class name\r\n.dcf-topic-edit-subject, .dcf-topic-edit-summary{\r\n\r\n input{\r\n width: 95%;\r\n }\r\n}",".dcf-cols{\r\n display:flex;\r\n flex-wrap: wrap;\r\n\r\n .dcf-col-100{\r\n width: 100%;\r\n }\r\n .dcf-col-50{\r\n \r\n width: 50%;\r\n\r\n }\r\n\r\n .dcf-col-50-md{\r\n width: 100%;\r\n @media screen and (min-width: @break-tablet){\r\n width: 50%;\r\n }\r\n }\r\n\r\n .dcf-col-25{\r\n width: 100%;\r\n @media screen and (min-width: @break-desktop){\r\n width: 25%;\r\n max-width: 250px;\r\n }\r\n }\r\n .dcf-col-75{\r\n width: 100%;\r\n @media screen and (min-width: @break-desktop){\r\n width: 75%;\r\n }\r\n flex-grow: 1;\r\n }\r\n}",".dcf-breadcrumb{\r\n\r\n padding: @dist-sm; \r\n #sep-border-bottom;\r\n\r\n\r\n .fa{\r\n color: @grey-medium;\r\n }\r\n\r\n a{\r\n color: @link-dim-col;\r\n }\r\n\r\n}\r\n",".dcf-collapsible{\r\n .fa{\r\n color: @grey-medium;\r\n }\r\n}",".dcf-subscribe-topic{\r\n label{\r\n margin-left: 0.5em;\r\n }\r\n}\r\n\r\n.dcf-forum-subscribers, .dcf-subscribe-forum{\r\n \r\n margin-top: @dist-xs;\r\n\r\n @media screen and (min-width: @break-tablet){\r\n text-align:right;\r\n }\r\n \r\n}\r\n\r\n","// Mobile hide and show\r\n// Icon texts\r\n \t\t\r\n .dcf-link-text {\r\n\r\n display: none;\r\n margin-left: @dist-xs;\r\n\r\n @media screen and (min-width: @break-desktop) {\r\n\r\n display: inline;\r\n\r\n }\r\n }\r\n \r\n .dcf-actions{\r\n padding: @dist-md 0;\r\n\r\n &-top{\r\n display: flex;\r\n flex-wrap: wrap;\r\n .dcf-forum-title{\r\n flex-grow: 1;\r\n }\r\n }\r\n\r\n &-bottom{\r\n display: flex;\r\n flex-wrap: wrap;\r\n \r\n .dcf-action-add{\r\n flex-grow: 1;\r\n }\r\n \r\n .amaf-chk-subs{ // Subscribe checkbox distance to label\r\n margin-right: @dist-sm;\r\n \r\n }\r\n }\r\n\r\n\r\n .dcf-forum-search{\r\n display:flex;\r\n justify-content: end;\r\n\r\n span{ // Search label\r\n margin-right: @dist-sm;\r\n }\r\n }\r\n}\r\n\r\n",".afpager{\r\n td{\r\n\r\n padding: @dist-sm;\r\n }\r\n\r\n .af_pager{\r\n\r\n padding: @dist-sm;\r\n \r\n }\r\n}\r\n\r\n.af-search-recordCount{\r\n display:block;\r\n padding-top: @dist-sm;\r\n\r\n}",".dcf-table {\r\n\r\n .dcf-table-head-row {\r\n\r\n border-bottom: @separator-border;\r\n\r\n }\r\n\r\n // Table TR and TD\r\n .dcf-th,\r\n .dcf-col {\r\n padding: @dist-md @dist-sm ;\r\n }\r\n\r\n // Table Heading\r\n .dcf-th {\r\n\r\n text-align: left;\r\n font-weight: normal;\r\n\r\n &.dcf-forum-icon-text {\r\n padding-right: 0;\r\n }\r\n\r\n }\r\n\r\n // Table TR and TD\r\n .dcf-table-body-row {\r\n .dcf-col {\r\n vertical-align: top;\r\n border-bottom: @separator-border;\r\n }\r\n }\r\n\r\n // Table header\r\n .dcf-table-body-row {\r\n\r\n // TH width \r\n .dcf-col-number,\r\n .dcf-col-replies,\r\n .dcf-col-views,\r\n .dcf-col-ratings,\r\n .dcf-col-status,\r\n .dcf-col-subscribers {\r\n text-align: center;\r\n width: 0; // Shrink them..\r\n }\r\n\r\n .dcf-col-icon {\r\n\r\n width: 0;\r\n }\r\n\r\n .dcf-col-text, .dcf-col-subject{\r\n width: 80%;\r\n\r\n @media screen and(min-width: @break-tablet){\r\n width: 60%;\r\n }\r\n }\r\n\r\n }\r\n\r\n // Icon with text\r\n .dcf-icon-text {\r\n white-space: nowrap;\r\n\r\n .dcf-link-text {\r\n margin-left: 0.3em;\r\n }\r\n }\r\n\r\n\r\n // Forum Description\r\n .dcf-forum-description {\r\n display: block;\r\n padding-top: 1em;\r\n font-size: 0.9em;\r\n\r\n .fa {\r\n display: none; // Hide description icon\r\n\r\n }\r\n\r\n &:empty {\r\n padding-top: 0;\r\n }\r\n }\r\n\r\n\r\n // Forum Icon Column\r\n .dcf-col-icon {\r\n font-size: 0.7em; // Overrrule fa-2x\r\n\r\n >div {\r\n // https://github.com/DNNCommunity/Dnn.CommunityForums/issues/467\r\n margin: 0 !important;\r\n height: auto;\r\n }\r\n\r\n .fa {\r\n padding-top: 0.1em;\r\n }\r\n }\r\n\r\n .dcf-topic-started {\r\n padding: @dist-sm 0;\r\n }\r\n\r\n\r\n\r\n\r\n\r\n @import url(\"_table-responsive.less\");\r\n\r\n}"," \t\t// Hide Icon row and Last posts row on Mobile\r\n .dcf-col-icon>div {\r\n display: none;\r\n \r\n @media screen and (min-width: @break-tablet) {\r\n \r\n display: block;\r\n \r\n }\r\n \r\n \r\n }\r\n \r\n .dcf-col-last-post {\r\n \r\n display: none;\r\n \r\n @media screen and (min-width: @break-tablet) {\r\n \r\n display: table-cell;\r\n \r\n }\r\n \r\n }\r\n\r\n \r\n \t\r\n ","// Toolbars\r\n\r\n// The module renders some toolbars as a UL without class, so I used the same in Toolbar.txt\r\n// This is also used in TopicView.txt\r\n.dcf-toolbar {\r\n\r\n >ul {\r\n\r\n margin: 0; // UL overrule\r\n padding: 0;\r\n\r\n\r\n\r\n\r\n display: flex;\r\n flex-wrap: wrap;\r\n gap: @dist-md;\r\n\r\n\r\n }\r\n\r\n li {\r\n list-style-type: none;\r\n margin: 0;\r\n padding: 0;\r\n display: flex;\r\n align-items: center;\r\n }\r\n}\r\n\r\n// Toolbar on top\r\n.dcf-toolbars {\r\n\r\n display: flex;\r\n flex-wrap: wrap;\r\n padding: @dist-sm 0;\r\n #sep-border-bottom;\r\n\r\n\r\n .dcf-toolbar-user {\r\n flex-grow: 1;\r\n padding-bottom: @dist-sm;\r\n\r\n\r\n\r\n }\r\n\r\n .dcf-toolbar-manage {\r\n\r\n\r\n\r\n @media screen and (min-width: @break-tablet) {\r\n justify-content: end;\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n // Quick Search in toolbar\r\n\r\n .dcf-quick-search {\r\n position: relative;\r\n display: block;\r\n\r\n\r\n .dcf-search-link {\r\n display: block;\r\n text-align: right;\r\n cursor: pointer;\r\n }\r\n\r\n .dcf-search-popup {\r\n background: white;\r\n border: solid 1px #eee;\r\n padding: @dist-md;\r\n display: none;\r\n position: absolute;\r\n min-width: 300px;\r\n right: 0;\r\n left: auto !important;\r\n top: 2.5em;\r\n }\r\n\r\n @button-width: 4em;\r\n\r\n .dcf-search-input {\r\n display:flex;\r\n .dcf-search-input {\r\n border: solid 1px #bbb;\r\n flex-grow: 1;\r\n padding: 0 @dist-sm;\r\n }\r\n\r\n .dcf-search-button {\r\n border: none;\r\n margin-left: @dist-xs;\r\n padding: 0 @dist-sm;\r\n }\r\n }\r\n\r\n .dcf-search-options{\r\n .dcf-search-option-advanced{\r\n display: block;\r\n width: 100%;\r\n padding: @dist-sm 0;\r\n }\r\n\r\n .dcf-search-option-topics{\r\n margin-right: @dist-md;\r\n }\r\n\r\n .dcf-search-option-text{\r\n margin-left: @dist-xs;\r\n }\r\n }\r\n\r\n \r\n\r\n\r\n }\r\n\r\n}","\r\n// Collapse block for Forums\r\n.dcf-group-title-wrap{\r\n\r\n .dcf-center-vertically;\r\n border-bottom: solid 1px @grey-superlight;\r\n padding: @dist-md 0;\r\n\r\n // Title\r\n .dcf-group-title {\r\n font-size: @title-1-size;\r\n color: @title-color;\r\n text-transform: uppercase;\r\n margin: 0;\r\n flex-grow: 1;\r\n }\r\n \r\n\r\n // Collapse\r\n .dcf-group-collapse {\r\n\r\n cursor: pointer;\r\n }\r\n\r\n}\r\n\r\n "," .dcf-forum-view {\r\n\r\n \t// Forum groups\r\n \t.dcf-forums-group {\r\n\r\n \t\tmargin-bottom: @dist-md;\r\n \t\tpadding: @dist-md 0;\r\n\r\n\r\n \t\t.dcf-forum-title {\r\n \t\t\tmargin: 0;\r\n \t\t\tfont-size: @title-2-size;\r\n \t\t}\r\n\r\n\t\t// Align fourm icon with title and text\r\n\t\t .dcf-main-forums{\r\n\r\n\t\t\t\t.dcf-col-text-inner{\r\n\t\t\t\t\tdisplay: flex;\r\n\t\t\t\t\r\n\t\t\t\t}\r\n\r\n\t\t }\r\n\t\t\r\n\r\n \t\t.dcf-lastpost-subject {\r\n \t\t\tdisplay: block;\r\n \t\t}\r\n\r\n\r\n \t\t// Sub Forums\r\n \t\t.dcf-sub-forums {\r\n \t\t\t.dcf-col-icon {\r\n \t\t\t\tborder: none;\r\n \t\t\t}\r\n\r\n \t\t\t.dcf-sub-forum-title {\r\n\r\n \t\t\t\tfont-size: @title-3-size;\r\n \t\t\t\tmargin: 0;\r\n \t\t\t\tcolor: @title-color;\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t}\r\n }\r\n ",".dcf-topics-view {\r\n\r\n\r\n .dcf-forum-title-wrap {\r\n flex-grow: 1;\r\n width: 100%;\r\n\r\n @media screen and (min-width: @break-tablet) {\r\n width: auto;\r\n }\r\n\r\n }\r\n\r\n .dcf-forum-title {\r\n\r\n margin-top: 0;\r\n font-size: @title-2-size;\r\n\r\n\r\n }\r\n\r\n .dcf-forum-search-subscribe {\r\n .dcf-forum-search {\r\n padding-bottom: @dist-md;\r\n }\r\n\r\n .dcf-subscribe-forum {\r\n .amaf-chk-subs {\r\n margin: 0 @dist-sm 0 @dist-xs ;\r\n }\r\n }\r\n }\r\n\r\n .dcf-topic-title {\r\n\r\n margin: 0;\r\n font-size: @title-3-size;\r\n }\r\n\r\n\r\n // Table head\r\n\r\n .dcf-table-head-row {\r\n .dcf-col-title {\r\n width: 100%; // Push other THs to the right\r\n\r\n .dcf-title {\r\n margin: 0;\r\n font-size: @title-3-size;\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n\r\n // Topics \r\n .dcf-topics {\r\n\r\n\r\n\r\n padding-bottom: 3em;\r\n\r\n &:empty {\r\n\r\n padding-bottom: 0;\r\n }\r\n\r\n .dcf-col-icon {\r\n padding-top: 1.9em;\r\n }\r\n\r\n .dcf-col-subject {\r\n\r\n width: 100%; // Push other TDs to the right\r\n }\r\n\r\n .dcf-actions-top {\r\n display: flex;\r\n justify-content: flex-end; // Align pager at the right\r\n\r\n }\r\n\r\n .dcf-subject {\r\n\r\n .afpagermini {\r\n padding: @dist-sm 0;\r\n display: inline-flex;\r\n align-items: center;\r\n\r\n a {\r\n margin-left: @dist-sm;\r\n }\r\n }\r\n\r\n .dcf-title {\r\n margin: 0 0 @dist-sm;\r\n }\r\n\r\n .dcf-topic-description {\r\n margin-bottom: @dist-md;\r\n max-height: 7.5em;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n .dcf-break-word;\r\n }\r\n\r\n .dcf-topic-tools {\r\n display: flex;\r\n align-items: center;\r\n\r\n a {\r\n margin-right: @dist-sm;\r\n }\r\n }\r\n\r\n // Hide on mobile\r\n .dcf-topic-description,\r\n .afpagermini {\r\n\r\n display: none;\r\n\r\n @media screen and (min-width: @break-desktop) {\r\n display: block;\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n .dcf-last-post {\r\n white-space: nowrap;\r\n\r\n a {\r\n display: block;\r\n }\r\n\r\n br {\r\n display: none;\r\n }\r\n }\r\n\r\n\r\n\r\n .dcf-actions-bottom {\r\n display: flex;\r\n\r\n .dcf-buttons {\r\n // Push pager to the right;\r\n\r\n flex-grow: 1;\r\n }\r\n\r\n }\r\n }\r\n\r\n}","\r\n\r\n.dcf-topic-view{\r\n\r\n .dcf-title-1{\r\n #title-1;\r\n display:flex;\r\n align-items:center;\r\n .fa{\r\n margin-right: @dist-sm;\r\n }\r\n }\r\n\r\n\r\n\t/* Forums previous and next Topic */\r\n\t.dcf-prev-next {\r\n\r\n @prev-next-bg: #eee;\r\n @prev-next-bg-hover: #ddd;\r\n @prev-next-color: @link-dim-col;\r\n\r\n\t\t\r\n\t\tmargin-top: @dist-sm;\r\n\t\tpadding-bottom: @dist-sm;\r\n\t\t#sep-border-bottom;\r\n border-style: dashed;\r\n\r\n\t\ta {\r\n\r\n\t\t\tcolor: @link-dim-col;\r\n\r\n\t\t\t.fa{\r\n margin: 0 0.5em;\r\n }\r\n\r\n\r\n\r\n\t\t}\r\n\r\n\t}\r\n \r\n \r\n \r\n // Header content\r\n\r\n .dcf-header-content{\r\n\r\n padding-top:@dist-md;\r\n\r\n .dcf-topic-buttons{\r\n\r\n padding-top: @dist-md;\r\n\r\n\r\n }\r\n\r\n .dcf-topic-controls{\r\n\r\n margin-top: @dist-sm;\r\n \r\n @media screen and (min-width: @break-tablet){\r\n text-align:right;\r\n }\r\n\r\n .dcf-sort{\r\n display:inline-block;\r\n padding-bottom: @dist-sm;\r\n select{\r\n margin-left: 0.5em;\r\n }\r\n }\r\n\r\n .dcf-subscribe-topic{\r\n padding-bottom: @dist-md;\r\n label{\r\n margin-bottom:0;\r\n }\r\n }\r\n }\r\n\r\n \r\n\r\n\r\n\r\n\r\n\r\n }\r\n\r\n .dcf-pager{\r\n padding: 0.3em 0;\r\n flex-grow: 1;\r\n display:flex;\r\n justify-content: flex-end;\r\n \r\n }\r\n\r\n .dcf-tools{\r\n display:flex;\r\n flex-wrap:wrap;\r\n align-items: center;\r\n .dnnPrimaryAction{\r\n margin-bottom:0;\r\n }\r\n\r\n &-top{\r\n padding-top: @dist-sm;\r\n }\r\n &-bottom{\r\n padding-bottom: @dist-sm;\r\n }\r\n }\r\n\r\n // Posts\r\n\r\n @post-info-bg: #f2f2f2;\r\n @post-content-bg: #fafafa;\r\n\r\n @post-signature-bg: #fff;\r\n\r\n .dcf-topic-headings{\r\n padding: @dist-sm;\r\n #sep-border-bottom;\r\n font-size: @title-3-size;\r\n\r\n display:none;\r\n \r\n @media screen and (min-width: @break-tablet){\r\n display: flex;\r\n\r\n }\r\n }\r\n\r\n\r\n .dcf-topic-post{\r\n\r\n margin: @dist-lg 0 @dist-xl;\r\n\r\n .dcf-topic-info{ \r\n\r\n\r\n // Toipic Info\r\n background: @post-info-bg;\r\n min-height: 100%;\r\n \r\n #block-responsive-pad-md;\r\n\r\n // Post info block\r\n\r\n .dcf-avatar{\r\n\r\n #block-responsive-pad-md;\r\n }\r\n\r\n // Making the avatar rectangular and cover with the image\r\n .dcf-avatar-img-wrap{\r\n\r\n \r\n \r\n //padding-top: 100%; > See below for responsive values\r\n position:relative;\r\n\r\n .dcf-avatar-img{\r\n position:absolute;\r\n width: 100%;\r\n height: 100%;\r\n top:0;\r\n left:0;\r\n \r\n border-radius: 50%;\r\n overflow :hidden;\r\n }\r\n img{\r\n \r\n width: 100%;\r\n height: 100% !important;\r\n object-fit: cover;\r\n }\r\n }\r\n\r\n\r\n // Mobile vs Desktop\r\n .dcf-post-user-rank,\r\n .dcf-post-user-data{\r\n display: none;\r\n @media screen and (min-width: @break-desktop){\r\n display: block;\r\n }\r\n }\r\n\r\n\r\n .dcf-post-user{\r\n display:flex;\r\n align-items: center;\r\n\r\n @media screen and (min-width: @break-desktop){\r\n display: block;\r\n }\r\n\r\n .dcf-user{\r\n order: 1;\r\n }\r\n .dcf-avatar-img-wrap{\r\n width: 50px;\r\n padding-top: 50px;\r\n margin: 0 @dist-sm 0 0 ;\r\n\r\n @media screen and (min-width: @break-desktop){\r\n width: 100%;\r\n padding-top: 100%;\r\n margin: @dist-md 0;\r\n }\r\n \r\n }\r\n }\r\n\r\n \r\n }\r\n\r\n\r\n\r\n\r\n\r\n .dcf-topic-content{\r\n background: @post-content-bg;\r\n min-height: 100%;\r\n \r\n // Used so we can push the like div to the bottom\r\n display:flex;\r\n flex-direction: column;\r\n\r\n\r\n }\r\n\r\n .dcf-toolbar{ // Loaded from gerenal central definition\r\n li{\r\n cursor: pointer;\r\n }\r\n }\r\n\r\n .dcf-topic-content-top{\r\n .dcf-postdate, .dcf-topic-actions{\r\n #block-responsive-pad-md;\r\n }\r\n }\r\n\r\n .dcf-topic-content-main{\r\n //push footer tho the end\r\n #block-responsive-pad-md;\r\n #sep-border-top;\r\n flex-grow: 1;\r\n\r\n .dcf-post-body{\r\n padding-bottom: @dist-lg;\r\n }\r\n\r\n } \r\n \r\n \r\n\r\n \r\n\r\n .dcf-post-footer{\r\n #sep-border-top;\r\n }\r\n\r\n .dcf-post-signature{\r\n \r\n margin: @dist-md;\r\n\r\n *{\r\n font-size: 1em !important;\r\n margin: 0 !important;\r\n }\r\n \r\n }\r\n\r\n .dcf-post-footer-bottom{\r\n margin: @dist-md;\r\n align-items: center;\r\n\r\n .dcf-post-likes{\r\n font-size: 0.8em;\r\n \r\n }\r\n }\r\n\r\n\r\n}\r\n\r\n\r\n}","@qr-icon-color: #666;\r\n@qr-icon-color-hover: #000;\r\n\r\n.dcf-quick-reply{\r\n\r\n padding: @dist-md 0;\r\n #sep-border-top;\r\n #sep-border-bottom;\r\n\r\n .dcf-title{\r\n margin:0;\r\n\r\n &-4{\r\n margin: @dist-md 0 @dist-xs;\r\n }\r\n }\r\n\r\n .dcf-quick-reply-header{\r\n margin: @dist-md 0;\r\n }\r\n\r\n .dcf-textbox{\r\n max-width: 100%;\r\n #input-border;\r\n }\r\n\r\n .dcf-toolbar-buttons{\r\n\r\n .fa{\r\n padding: 0.5em 0.7em;\r\n cursor: pointer;\r\n color: @qr-icon-color;\r\n\r\n &:hover{\r\n color: @qr-icon-color-hover;\r\n }\r\n }\r\n\r\n }\r\n\r\n .dcf-subscribe-topic{\r\n margin: 1em 0;\r\n }\r\n}",".af-search-header{\r\n .af-search-title{\r\n font-size: @title-1-size;\r\n }\r\n}\r\n\r\n.af-search-bar{\r\n\r\n .af-search-title{\r\n #title-1-block;\r\n }\r\n}\r\n\r\n.af-search-results{\r\n\r\n .afgrid{\r\n .aftopicrow{\r\n vertical-align:top;\r\n padding: @dist-md @dist-sm;\r\n border-bottom: @separator-border;\r\n\r\n .aftopictitle{\r\n\r\n display:block;\r\n padding-bottom: @dist-sm;\r\n }\r\n }\r\n }\r\n\r\n\r\n}",".af-adv-search{\r\n\r\n .af-adv-search-header{\r\n .af-adv-search-title{\r\n #title-1-block;\r\n }\r\n }\r\n .af-adv-search-row, .af-adv-search-footer{\r\n padding: @dist-sm 0;\r\n border-bottom: @separator-border;\r\n\r\n label{\r\n min-width: 20em;\r\n }\r\n }\r\n}"],"file":"theme.css"} \ No newline at end of file diff --git a/Dnn.CommunityForums/themes/community-default/theme.min.css b/Dnn.CommunityForums/themes/community-default/theme.min.css index c662b88bf..8a5fd0840 100644 --- a/Dnn.CommunityForums/themes/community-default/theme.min.css +++ b/Dnn.CommunityForums/themes/community-default/theme.min.css @@ -1 +1 @@ -.dcf-center-vertically{display:flex;align-items:center}.dcf-table-100{width:100%}.dcf-d-none{display:none}.dcf-invisible{position:absolute!important;clip:rect(1px,1px,1px,1px)}.dcf-d-none-mob{display:none}@media screen and (min-width:768px){.dcf-d-none-mob{display:initial}}.dnn-community-forums .afeditor{background:#fff;border:none;font-size:1em}.dnn-community-forums .afeditor *{font-size:inherit}.dnn-community-forums .afeditor>table td{padding:.5rem 0}.dnn-community-forums .afeditor .cke_top{font-size:12px}.dnn-community-forums .afeditor table table[width="99%"]>tbody>tr:nth-child(1)>td{padding:.3em 0}.dnn-community-forums .afeditor table table[width="99%"] tr:nth-child(2) .aftextbox[readonly]{border:none;padding:0;background:0 0;font-weight:700}.dnn-community-forums .afeditor input[type=checkbox]{margin-right:.5rem}.dnn-community-forums .afeditor .amtbwrapper>div{max-width:100%!important;display:flex;justify-content:center}.dnn-community-forums .afeditor .amtbwrapper>div .amimagebutton,.dnn-community-forums .afeditor .amtbwrapper>div .amimagebutton_over{text-align:center;width:auto!important;height:auto!important;padding:.5rem;cursor:pointer}.dnn-community-forums .afeditor .amtbwrapper>div .amimagebutton_over{opacity:.7}.dnn-community-forums .afeditor .cke_wysiwyg_frame{font-family:sans serif}.dnn-community-forums .afeditor .afsection{min-width:100%;border-bottom:solid 1px #ccc}.dnn-community-forums .afeditor .afsectionhd{border:none!important;padding:.3em}.dnn-community-forums .dcf-topic-edit-subject input,.dnn-community-forums .dcf-topic-edit-summary input{width:95%}.dnn-community-forums .dcf-cols{display:flex;flex-wrap:wrap}.dnn-community-forums .dcf-cols .dcf-col-100{width:100%}.dnn-community-forums .dcf-cols .dcf-col-50{width:50%}.dnn-community-forums .dcf-cols .dcf-col-50-md{width:100%}@media screen and (min-width:768px){.dnn-community-forums .dcf-cols .dcf-col-50-md{width:50%}}.dnn-community-forums .dcf-cols .dcf-col-25{width:100%}@media screen and (min-width:992px){.dnn-community-forums .dcf-cols .dcf-col-25{width:25%;max-width:250px}}.dnn-community-forums .dcf-cols .dcf-col-75{width:100%;flex-grow:1}@media screen and (min-width:992px){.dnn-community-forums .dcf-cols .dcf-col-75{width:75%}}.dnn-community-forums .dcf-breadcrumb{padding:.5rem;border-bottom:solid 1px #ccc}.dnn-community-forums .dcf-breadcrumb .fa{color:#aaa}.dnn-community-forums .dcf-breadcrumb a{color:#222}.dnn-community-forums .dcf-collapsible .fa{color:#aaa}.dnn-community-forums .dcf-subscribe-topic label{margin-left:.5em}.dnn-community-forums .dcf-forum-subscribers,.dnn-community-forums .dcf-subscribe-forum{margin-top:.25rem}@media screen and (min-width:768px){.dnn-community-forums .dcf-forum-subscribers,.dnn-community-forums .dcf-subscribe-forum{text-align:right}}.dnn-community-forums .dcf-link-text{display:none;margin-left:.25rem}@media screen and (min-width:992px){.dnn-community-forums .dcf-link-text{display:inline}}.dnn-community-forums .dcf-actions{padding:1rem 0}.dnn-community-forums .dcf-actions-top{display:flex;flex-wrap:wrap}.dnn-community-forums .dcf-actions-top .dcf-forum-title{flex-grow:1}.dnn-community-forums .dcf-actions-bottom{display:flex;flex-wrap:wrap}.dnn-community-forums .dcf-actions-bottom .dcf-action-add{flex-grow:1}.dnn-community-forums .dcf-actions-bottom .amaf-chk-subs{margin-right:.5rem}.dnn-community-forums .dcf-actions .dcf-forum-search{display:flex;justify-content:end}.dnn-community-forums .dcf-actions .dcf-forum-search span{margin-right:.5rem}.dnn-community-forums .afpager td{padding:.5rem}.dnn-community-forums .afpager .af_pager{padding:.5rem}.dnn-community-forums .af-search-recordCount{display:block;padding-top:.5rem}.dnn-community-forums .dcf-table .dcf-table-head-row{border-bottom:solid 1px #ccc}.dnn-community-forums .dcf-table .dcf-col,.dnn-community-forums .dcf-table .dcf-th{padding:1rem .5rem}.dnn-community-forums .dcf-table .dcf-th{text-align:left;font-weight:400}.dnn-community-forums .dcf-table .dcf-th.dcf-forum-icon-text{padding-right:0}.dnn-community-forums .dcf-table .dcf-table-body-row .dcf-col{vertical-align:top;border-bottom:solid 1px #ccc}.dnn-community-forums .dcf-table .dcf-table-body-row .dcf-col-number,.dnn-community-forums .dcf-table .dcf-table-body-row .dcf-col-ratings,.dnn-community-forums .dcf-table .dcf-table-body-row .dcf-col-replies,.dnn-community-forums .dcf-table .dcf-table-body-row .dcf-col-status,.dnn-community-forums .dcf-table .dcf-table-body-row .dcf-col-subscribers,.dnn-community-forums .dcf-table .dcf-table-body-row .dcf-col-views{text-align:center;width:0}.dnn-community-forums .dcf-table .dcf-table-body-row .dcf-col-icon{width:0}.dnn-community-forums .dcf-table .dcf-table-body-row .dcf-col-subject,.dnn-community-forums .dcf-table .dcf-table-body-row .dcf-col-text{width:80%}@media screen and (min-width:768px){.dnn-community-forums .dcf-table .dcf-table-body-row .dcf-col-subject,.dnn-community-forums .dcf-table .dcf-table-body-row .dcf-col-text{width:60%}}.dnn-community-forums .dcf-table .dcf-icon-text{white-space:nowrap}.dnn-community-forums .dcf-table .dcf-icon-text .dcf-link-text{margin-left:.3em}.dnn-community-forums .dcf-table .dcf-forum-description{display:block;padding-top:1em;font-size:.9em}.dnn-community-forums .dcf-table .dcf-forum-description .fa{display:none}.dnn-community-forums .dcf-table .dcf-forum-description:empty{padding-top:0}.dnn-community-forums .dcf-table .dcf-col-icon{font-size:.7em}.dnn-community-forums .dcf-table .dcf-col-icon>div{margin:0!important;height:auto}.dnn-community-forums .dcf-table .dcf-col-icon .fa{padding-top:.1em}.dnn-community-forums .dcf-table .dcf-topic-started{padding:.5rem 0}.dnn-community-forums .dcf-table .dcf-col-icon>div{display:none}@media screen and (min-width:768px){.dnn-community-forums .dcf-table .dcf-col-icon>div{display:block}}.dnn-community-forums .dcf-table .dcf-col-last-post{display:none}@media screen and (min-width:768px){.dnn-community-forums .dcf-table .dcf-col-last-post{display:table-cell}}.dnn-community-forums .dcf-toolbar>ul{margin:0;padding:0;display:flex;flex-wrap:wrap;gap:1rem}.dnn-community-forums .dcf-toolbar li{list-style-type:none;margin:0;padding:0;display:flex;align-items:center}.dnn-community-forums .dcf-toolbars{display:flex;flex-wrap:wrap;padding:.5rem 0;border-bottom:solid 1px #ccc}.dnn-community-forums .dcf-toolbars .dcf-toolbar-user{flex-grow:1;padding-bottom:.5rem}@media screen and (min-width:768px){.dnn-community-forums .dcf-toolbars .dcf-toolbar-manage{justify-content:end}}.dnn-community-forums .dcf-toolbars .dcf-quick-search{position:relative;display:block}.dnn-community-forums .dcf-toolbars .dcf-quick-search .dcf-search-link{display:block;text-align:right;cursor:pointer}.dnn-community-forums .dcf-toolbars .dcf-quick-search .dcf-search-popup{background:#fff;border:solid 1px #eee;padding:1rem;display:none;position:absolute;min-width:300px;right:0;left:auto!important;top:2.5em}.dnn-community-forums .dcf-toolbars .dcf-quick-search .dcf-search-input{display:flex}.dnn-community-forums .dcf-toolbars .dcf-quick-search .dcf-search-input .dcf-search-input{border:solid 1px #bbb;flex-grow:1;padding:0 .5rem}.dnn-community-forums .dcf-toolbars .dcf-quick-search .dcf-search-input .dcf-search-button{border:none;margin-left:.25rem;padding:0 .5rem}.dnn-community-forums .dcf-toolbars .dcf-quick-search .dcf-search-options .dcf-search-option-advanced{display:block;width:100%;padding:.5rem 0}.dnn-community-forums .dcf-toolbars .dcf-quick-search .dcf-search-options .dcf-search-option-topics{margin-right:1rem}.dnn-community-forums .dcf-toolbars .dcf-quick-search .dcf-search-options .dcf-search-option-text{margin-left:.25rem}.dnn-community-forums .dcf-group-title-wrap{display:flex;align-items:center;border-bottom:solid 1px #eee;padding:1rem 0}.dnn-community-forums .dcf-group-title-wrap .dcf-group-title{font-size:1.4em;color:#000;text-rowansform:uppercase;margin:0;flex-grow:1}.dnn-community-forums .dcf-group-title-wrap .dcf-group-collapse{cursor:pointer}.dnn-community-forums .dcf-forum-view .dcf-forums-group{margin-bottom:1rem;padding:1rem 0}.dnn-community-forums .dcf-forum-view .dcf-forums-group .dcf-forum-title{margin:0;font-size:1.2em}.dnn-community-forums .dcf-forum-view .dcf-forums-group .dcf-main-forums .dcf-col-text-inner{display:flex}.dnn-community-forums .dcf-forum-view .dcf-forums-group .dcf-lastpost-subject{display:block}.dnn-community-forums .dcf-forum-view .dcf-forums-group .dcf-sub-forums .dcf-col-icon{border:none}.dnn-community-forums .dcf-forum-view .dcf-forums-group .dcf-sub-forums .dcf-sub-forum-title{font-size:1.1em;margin:0;color:#000}.dnn-community-forums .dcf-topics-view .dcf-forum-title{margin-top:0;font-size:1.2em;flex-grow:1;width:100%}@media screen and (min-width:768px){.dnn-community-forums .dcf-topics-view .dcf-forum-title{width:auto}}.dnn-community-forums .dcf-topics-view .dcf-forum-search-subscribe .dcf-forum-search{padding-bottom:1rem}.dnn-community-forums .dcf-topics-view .dcf-forum-search-subscribe .dcf-subscribe-forum .amaf-chk-subs{margin:0 .5rem 0 .25rem}.dnn-community-forums .dcf-topics-view .dcf-topic-title{margin:0;font-size:1.1em}.dnn-community-forums .dcf-topics-view .dcf-table-head-row .dcf-col-title{width:100%}.dnn-community-forums .dcf-topics-view .dcf-table-head-row .dcf-col-title .dcf-title{margin:0;font-size:1.1em}.dnn-community-forums .dcf-topics-view .dcf-topics{padding-bottom:3em}.dnn-community-forums .dcf-topics-view .dcf-topics:empty{padding-bottom:0}.dnn-community-forums .dcf-topics-view .dcf-topics .dcf-col-icon{padding-top:1.9em}.dnn-community-forums .dcf-topics-view .dcf-topics .dcf-col-subject{width:100%}.dnn-community-forums .dcf-topics-view .dcf-topics .dcf-actions-top{display:flex;justify-content:flex-end}.dnn-community-forums .dcf-topics-view .dcf-topics .dcf-subject .afpagermini{padding:.5rem 0;display:inline-flex;align-items:center}.dnn-community-forums .dcf-topics-view .dcf-topics .dcf-subject .afpagermini a{margin-left:.5rem}.dnn-community-forums .dcf-topics-view .dcf-topics .dcf-subject .dcf-title{margin:0 0 .5rem}.dnn-community-forums .dcf-topics-view .dcf-topics .dcf-subject .dcf-topic-description{margin-bottom:1rem;max-height:7.5em;overflow:hidden;text-overflow:ellipsis}.dnn-community-forums .dcf-topics-view .dcf-topics .dcf-subject .dcf-topic-tools{display:flex;align-items:center}.dnn-community-forums .dcf-topics-view .dcf-topics .dcf-subject .dcf-topic-tools a{margin-right:.5rem}.dnn-community-forums .dcf-topics-view .dcf-topics .dcf-subject .afpagermini,.dnn-community-forums .dcf-topics-view .dcf-topics .dcf-subject .dcf-topic-description{display:none}@media screen and (min-width:992px){.dnn-community-forums .dcf-topics-view .dcf-topics .dcf-subject .afpagermini,.dnn-community-forums .dcf-topics-view .dcf-topics .dcf-subject .dcf-topic-description{display:block}}.dnn-community-forums .dcf-topics-view .dcf-topics .dcf-last-post{white-space:nowrap}.dnn-community-forums .dcf-topics-view .dcf-topics .dcf-last-post a{display:block}.dnn-community-forums .dcf-topics-view .dcf-topics .dcf-last-post br{display:none}.dnn-community-forums .dcf-topics-view .dcf-topics .dcf-actions-bottom{display:flex}.dnn-community-forums .dcf-topics-view .dcf-topics .dcf-actions-bottom .dcf-buttons{flex-grow:1}.dnn-community-forums .dcf-topic-view .dcf-title-1{font-size:1.4em;padding:.5rem 0;margin:0;display:flex;align-items:center}.dnn-community-forums .dcf-topic-view .dcf-title-1 .fa{margin-right:.5rem}.dnn-community-forums .dcf-topic-view .dcf-prev-next{margin-top:.5rem;padding-bottom:.5rem;border-bottom:solid 1px #ccc;border-style:dashed}.dnn-community-forums .dcf-topic-view .dcf-prev-next a{color:#222}.dnn-community-forums .dcf-topic-view .dcf-prev-next a .fa{margin:0 .5em}.dnn-community-forums .dcf-topic-view .dcf-header-content{padding-top:1rem}.dnn-community-forums .dcf-topic-view .dcf-header-content .dcf-topic-buttons{padding-top:1rem}.dnn-community-forums .dcf-topic-view .dcf-header-content .dcf-topic-controls{margin-top:.5rem}@media screen and (min-width:768px){.dnn-community-forums .dcf-topic-view .dcf-header-content .dcf-topic-controls{text-align:right}}.dnn-community-forums .dcf-topic-view .dcf-header-content .dcf-topic-controls .dcf-sort{display:inline-block;padding-bottom:.5rem}.dnn-community-forums .dcf-topic-view .dcf-header-content .dcf-topic-controls .dcf-sort select{margin-left:.5em}.dnn-community-forums .dcf-topic-view .dcf-header-content .dcf-topic-controls .dcf-subscribe-topic{padding-bottom:1rem}.dnn-community-forums .dcf-topic-view .dcf-header-content .dcf-topic-controls .dcf-subscribe-topic label{margin-bottom:0}.dnn-community-forums .dcf-topic-view .dcf-pager{padding:.3em 0;flex-grow:1;display:flex;justify-content:flex-end}.dnn-community-forums .dcf-topic-view .dcf-tools{display:flex;flex-wrap:wrap;align-items:center}.dnn-community-forums .dcf-topic-view .dcf-tools .dnnPrimaryAction{margin-bottom:0}.dnn-community-forums .dcf-topic-view .dcf-tools-top{padding-top:.5rem}.dnn-community-forums .dcf-topic-view .dcf-tools-bottom{padding-bottom:.5rem}.dnn-community-forums .dcf-topic-view .dcf-topic-headings{padding:.5rem;border-bottom:solid 1px #ccc;font-size:1.1em;display:none}@media screen and (min-width:768px){.dnn-community-forums .dcf-topic-view .dcf-topic-headings{display:flex}}.dnn-community-forums .dcf-topic-view .dcf-topic-post{margin:1.5rem 0 2rem}.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-info{background:#f2f2f2;min-height:100%;padding:.5rem}@media screen and (min-width:992px){.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-info{padding:1rem}}.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-info .dcf-avatar{padding:.5rem}@media screen and (min-width:992px){.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-info .dcf-avatar{padding:1rem}}.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-info .dcf-avatar-img-wrap{position:relative}.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-info .dcf-avatar-img-wrap .dcf-avatar-img{position:absolute;width:100%;height:100%;top:0;left:0;border-radius:50%;overflow:hidden}.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-info .dcf-avatar-img-wrap img{width:100%;height:100%!important;object-fit:cover}.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-info .dcf-post-user-data,.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-info .dcf-post-user-rank{display:none}@media screen and (min-width:992px){.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-info .dcf-post-user-data,.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-info .dcf-post-user-rank{display:block}}.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-info .dcf-post-user{display:flex;align-items:center}@media screen and (min-width:992px){.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-info .dcf-post-user{display:block}}.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-info .dcf-post-user .dcf-user{order:1}.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-info .dcf-post-user .dcf-avatar-img-wrap{width:50px;padding-top:50px;margin:0 .5rem 0 0}@media screen and (min-width:992px){.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-info .dcf-post-user .dcf-avatar-img-wrap{width:100%;padding-top:100%;margin:1rem 0}}.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-content{background:#fafafa;min-height:100%;display:flex;flex-direction:column}.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-toolbar li{cursor:pointer}.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-content-top .dcf-postdate,.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-content-top .dcf-topic-actions{padding:.5rem}@media screen and (min-width:992px){.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-content-top .dcf-postdate,.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-content-top .dcf-topic-actions{padding:1rem}}.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-content-main{padding:.5rem;border-top:solid 1px #ccc;flex-grow:1}@media screen and (min-width:992px){.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-content-main{padding:1rem}}.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-content-main .dcf-post-body{padding-bottom:1.5rem}.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-post-footer{border-top:solid 1px #ccc}.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-post-signature{margin:1rem}.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-post-signature *{font-size:1em!important;margin:0!important}.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-post-footer-bottom{margin:1rem;align-items:center}.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-post-footer-bottom .dcf-post-likes{font-size:.8em}.dnn-community-forums .dcf-quick-reply{padding:1rem 0;border-top:solid 1px #ccc;border-bottom:solid 1px #ccc}.dnn-community-forums .dcf-quick-reply .dcf-title{margin:0}.dnn-community-forums .dcf-quick-reply .dcf-title-4{margin:1rem 0 .25rem}.dnn-community-forums .dcf-quick-reply .dcf-quick-reply-header{margin:1rem 0}.dnn-community-forums .dcf-quick-reply .dcf-textbox{max-width:100%;border:solid 1px #ccc}.dnn-community-forums .dcf-quick-reply .dcf-toolbar-buttons .fa{padding:.5em .7em;cursor:pointer;color:#666}.dnn-community-forums .dcf-quick-reply .dcf-toolbar-buttons .fa:hover{color:#000}.dnn-community-forums .dcf-quick-reply .dcf-subscribe-topic{margin:1em 0}.dnn-community-forums .af-search-header .af-search-title{font-size:1.4em}.dnn-community-forums .af-search-bar .af-search-title{display:block;font-size:1.4em;padding:.5rem 0;margin:0}.dnn-community-forums .af-search-results .afgrid .aftopicrow{vertical-align:top;padding:1rem .5rem;border-bottom:solid 1px #ccc}.dnn-community-forums .af-search-results .afgrid .aftopicrow .aftopictitle{display:block;padding-bottom:.5rem}.dnn-community-forums .af-adv-search .af-adv-search-header .af-adv-search-title{display:block;font-size:1.4em;padding:.5rem 0;margin:0}.dnn-community-forums .af-adv-search .af-adv-search-footer,.dnn-community-forums .af-adv-search .af-adv-search-row{padding:.5rem 0;border-bottom:solid 1px #ccc}.dnn-community-forums .af-adv-search .af-adv-search-footer label,.dnn-community-forums .af-adv-search .af-adv-search-row label{min-width:20em} \ No newline at end of file +.dcf-center-vertically{display:flex;align-items:center}.dcf-table-100{width:100%}.dcf-d-none{display:none}.dcf-invisible{position:absolute!important;clip:rect(1px,1px,1px,1px)}.dcf-d-none-mob{display:none}@media screen and (min-width:768px){.dcf-d-none-mob{display:initial}}.dcf-text-end{text-align:end}.dcf-break-word{word-break:break-all}.dnn-community-forums .afeditor{background:#fff;border:none;font-size:1em}.dnn-community-forums .afeditor *{font-size:inherit}.dnn-community-forums .afeditor>table td{padding:.5rem 0}.dnn-community-forums .afeditor .cke_top{font-size:12px}.dnn-community-forums .afeditor table table[width="99%"]>tbody>tr:nth-child(1)>td{padding:.3em 0}.dnn-community-forums .afeditor table table[width="99%"] tr:nth-child(2) .aftextbox[readonly]{border:none;padding:0;background:0 0;font-weight:700}.dnn-community-forums .afeditor input[type=checkbox]{margin-right:.5rem}.dnn-community-forums .afeditor .amtbwrapper>div{max-width:100%!important;display:flex;justify-content:center}.dnn-community-forums .afeditor .amtbwrapper>div .amimagebutton,.dnn-community-forums .afeditor .amtbwrapper>div .amimagebutton_over{text-align:center;width:auto!important;height:auto!important;padding:.5rem;cursor:pointer}.dnn-community-forums .afeditor .amtbwrapper>div .amimagebutton_over{opacity:.7}.dnn-community-forums .afeditor .cke_wysiwyg_frame{font-family:sans serif}.dnn-community-forums .afeditor .afsection{min-width:100%;border-bottom:solid 1px #ccc}.dnn-community-forums .afeditor .afsectionhd{border:none!important;padding:.3em}.dnn-community-forums .dcf-topic-edit-subject input,.dnn-community-forums .dcf-topic-edit-summary input{width:95%}.dnn-community-forums .dcf-cols{display:flex;flex-wrap:wrap}.dnn-community-forums .dcf-cols .dcf-col-100{width:100%}.dnn-community-forums .dcf-cols .dcf-col-50{width:50%}.dnn-community-forums .dcf-cols .dcf-col-50-md{width:100%}@media screen and (min-width:768px){.dnn-community-forums .dcf-cols .dcf-col-50-md{width:50%}}.dnn-community-forums .dcf-cols .dcf-col-25{width:100%}@media screen and (min-width:992px){.dnn-community-forums .dcf-cols .dcf-col-25{width:25%;max-width:250px}}.dnn-community-forums .dcf-cols .dcf-col-75{width:100%;flex-grow:1}@media screen and (min-width:992px){.dnn-community-forums .dcf-cols .dcf-col-75{width:75%}}.dnn-community-forums .dcf-breadcrumb{padding:.5rem;border-bottom:solid 1px #ccc}.dnn-community-forums .dcf-breadcrumb .fa{color:#aaa}.dnn-community-forums .dcf-breadcrumb a{color:#222}.dnn-community-forums .dcf-collapsible .fa{color:#aaa}.dnn-community-forums .dcf-subscribe-topic label{margin-left:.5em}.dnn-community-forums .dcf-forum-subscribers,.dnn-community-forums .dcf-subscribe-forum{margin-top:.25rem}@media screen and (min-width:768px){.dnn-community-forums .dcf-forum-subscribers,.dnn-community-forums .dcf-subscribe-forum{text-align:right}}.dnn-community-forums .dcf-link-text{display:none;margin-left:.25rem}@media screen and (min-width:992px){.dnn-community-forums .dcf-link-text{display:inline}}.dnn-community-forums .dcf-actions{padding:1rem 0}.dnn-community-forums .dcf-actions-top{display:flex;flex-wrap:wrap}.dnn-community-forums .dcf-actions-top .dcf-forum-title{flex-grow:1}.dnn-community-forums .dcf-actions-bottom{display:flex;flex-wrap:wrap}.dnn-community-forums .dcf-actions-bottom .dcf-action-add{flex-grow:1}.dnn-community-forums .dcf-actions-bottom .amaf-chk-subs{margin-right:.5rem}.dnn-community-forums .dcf-actions .dcf-forum-search{display:flex;justify-content:end}.dnn-community-forums .dcf-actions .dcf-forum-search span{margin-right:.5rem}.dnn-community-forums .afpager td{padding:.5rem}.dnn-community-forums .afpager .af_pager{padding:.5rem}.dnn-community-forums .af-search-recordCount{display:block;padding-top:.5rem}.dnn-community-forums .dcf-table .dcf-table-head-row{border-bottom:solid 1px #ccc}.dnn-community-forums .dcf-table .dcf-col,.dnn-community-forums .dcf-table .dcf-th{padding:1rem .5rem}.dnn-community-forums .dcf-table .dcf-th{text-align:left;font-weight:400}.dnn-community-forums .dcf-table .dcf-th.dcf-forum-icon-text{padding-right:0}.dnn-community-forums .dcf-table .dcf-table-body-row .dcf-col{vertical-align:top;border-bottom:solid 1px #ccc}.dnn-community-forums .dcf-table .dcf-table-body-row .dcf-col-number,.dnn-community-forums .dcf-table .dcf-table-body-row .dcf-col-ratings,.dnn-community-forums .dcf-table .dcf-table-body-row .dcf-col-replies,.dnn-community-forums .dcf-table .dcf-table-body-row .dcf-col-status,.dnn-community-forums .dcf-table .dcf-table-body-row .dcf-col-subscribers,.dnn-community-forums .dcf-table .dcf-table-body-row .dcf-col-views{text-align:center;width:0}.dnn-community-forums .dcf-table .dcf-table-body-row .dcf-col-icon{width:0}.dnn-community-forums .dcf-table .dcf-table-body-row .dcf-col-subject,.dnn-community-forums .dcf-table .dcf-table-body-row .dcf-col-text{width:80%}@media screen and (min-width:768px){.dnn-community-forums .dcf-table .dcf-table-body-row .dcf-col-subject,.dnn-community-forums .dcf-table .dcf-table-body-row .dcf-col-text{width:60%}}.dnn-community-forums .dcf-table .dcf-icon-text{white-space:nowrap}.dnn-community-forums .dcf-table .dcf-icon-text .dcf-link-text{margin-left:.3em}.dnn-community-forums .dcf-table .dcf-forum-description{display:block;padding-top:1em;font-size:.9em}.dnn-community-forums .dcf-table .dcf-forum-description .fa{display:none}.dnn-community-forums .dcf-table .dcf-forum-description:empty{padding-top:0}.dnn-community-forums .dcf-table .dcf-col-icon{font-size:.7em}.dnn-community-forums .dcf-table .dcf-col-icon>div{margin:0!important;height:auto}.dnn-community-forums .dcf-table .dcf-col-icon .fa{padding-top:.1em}.dnn-community-forums .dcf-table .dcf-topic-started{padding:.5rem 0}.dnn-community-forums .dcf-table .dcf-col-icon>div{display:none}@media screen and (min-width:768px){.dnn-community-forums .dcf-table .dcf-col-icon>div{display:block}}.dnn-community-forums .dcf-table .dcf-col-last-post{display:none}@media screen and (min-width:768px){.dnn-community-forums .dcf-table .dcf-col-last-post{display:table-cell}}.dnn-community-forums .dcf-toolbar>ul{margin:0;padding:0;display:flex;flex-wrap:wrap;gap:1rem}.dnn-community-forums .dcf-toolbar li{list-style-type:none;margin:0;padding:0;display:flex;align-items:center}.dnn-community-forums .dcf-toolbars{display:flex;flex-wrap:wrap;padding:.5rem 0;border-bottom:solid 1px #ccc}.dnn-community-forums .dcf-toolbars .dcf-toolbar-user{flex-grow:1;padding-bottom:.5rem}@media screen and (min-width:768px){.dnn-community-forums .dcf-toolbars .dcf-toolbar-manage{justify-content:end}}.dnn-community-forums .dcf-toolbars .dcf-quick-search{position:relative;display:block}.dnn-community-forums .dcf-toolbars .dcf-quick-search .dcf-search-link{display:block;text-align:right;cursor:pointer}.dnn-community-forums .dcf-toolbars .dcf-quick-search .dcf-search-popup{background:#fff;border:solid 1px #eee;padding:1rem;display:none;position:absolute;min-width:300px;right:0;left:auto!important;top:2.5em}.dnn-community-forums .dcf-toolbars .dcf-quick-search .dcf-search-input{display:flex}.dnn-community-forums .dcf-toolbars .dcf-quick-search .dcf-search-input .dcf-search-input{border:solid 1px #bbb;flex-grow:1;padding:0 .5rem}.dnn-community-forums .dcf-toolbars .dcf-quick-search .dcf-search-input .dcf-search-button{border:none;margin-left:.25rem;padding:0 .5rem}.dnn-community-forums .dcf-toolbars .dcf-quick-search .dcf-search-options .dcf-search-option-advanced{display:block;width:100%;padding:.5rem 0}.dnn-community-forums .dcf-toolbars .dcf-quick-search .dcf-search-options .dcf-search-option-topics{margin-right:1rem}.dnn-community-forums .dcf-toolbars .dcf-quick-search .dcf-search-options .dcf-search-option-text{margin-left:.25rem}.dnn-community-forums .dcf-group-title-wrap{display:flex;align-items:center;border-bottom:solid 1px #eee;padding:1rem 0}.dnn-community-forums .dcf-group-title-wrap .dcf-group-title{font-size:1.4em;color:#000;text-transform:uppercase;margin:0;flex-grow:1}.dnn-community-forums .dcf-group-title-wrap .dcf-group-collapse{cursor:pointer}.dnn-community-forums .dcf-forum-view .dcf-forums-group{margin-bottom:1rem;padding:1rem 0}.dnn-community-forums .dcf-forum-view .dcf-forums-group .dcf-forum-title{margin:0;font-size:1.2em}.dnn-community-forums .dcf-forum-view .dcf-forums-group .dcf-main-forums .dcf-col-text-inner{display:flex}.dnn-community-forums .dcf-forum-view .dcf-forums-group .dcf-lastpost-subject{display:block}.dnn-community-forums .dcf-forum-view .dcf-forums-group .dcf-sub-forums .dcf-col-icon{border:none}.dnn-community-forums .dcf-forum-view .dcf-forums-group .dcf-sub-forums .dcf-sub-forum-title{font-size:1.1em;margin:0;color:#000}.dnn-community-forums .dcf-topics-view .dcf-forum-title-wrap{flex-grow:1;width:100%}@media screen and (min-width:768px){.dnn-community-forums .dcf-topics-view .dcf-forum-title-wrap{width:auto}}.dnn-community-forums .dcf-topics-view .dcf-forum-title{margin-top:0;font-size:1.2em}.dnn-community-forums .dcf-topics-view .dcf-forum-search-subscribe .dcf-forum-search{padding-bottom:1rem}.dnn-community-forums .dcf-topics-view .dcf-forum-search-subscribe .dcf-subscribe-forum .amaf-chk-subs{margin:0 .5rem 0 .25rem}.dnn-community-forums .dcf-topics-view .dcf-topic-title{margin:0;font-size:1.1em}.dnn-community-forums .dcf-topics-view .dcf-table-head-row .dcf-col-title{width:100%}.dnn-community-forums .dcf-topics-view .dcf-table-head-row .dcf-col-title .dcf-title{margin:0;font-size:1.1em}.dnn-community-forums .dcf-topics-view .dcf-topics{padding-bottom:3em}.dnn-community-forums .dcf-topics-view .dcf-topics:empty{padding-bottom:0}.dnn-community-forums .dcf-topics-view .dcf-topics .dcf-col-icon{padding-top:1.9em}.dnn-community-forums .dcf-topics-view .dcf-topics .dcf-col-subject{width:100%}.dnn-community-forums .dcf-topics-view .dcf-topics .dcf-actions-top{display:flex;justify-content:flex-end}.dnn-community-forums .dcf-topics-view .dcf-topics .dcf-subject .afpagermini{padding:.5rem 0;display:inline-flex;align-items:center}.dnn-community-forums .dcf-topics-view .dcf-topics .dcf-subject .afpagermini a{margin-left:.5rem}.dnn-community-forums .dcf-topics-view .dcf-topics .dcf-subject .dcf-title{margin:0 0 .5rem}.dnn-community-forums .dcf-topics-view .dcf-topics .dcf-subject .dcf-topic-description{margin-bottom:1rem;max-height:7.5em;overflow:hidden;text-overflow:ellipsis;word-break:break-all}.dnn-community-forums .dcf-topics-view .dcf-topics .dcf-subject .dcf-topic-tools{display:flex;align-items:center}.dnn-community-forums .dcf-topics-view .dcf-topics .dcf-subject .dcf-topic-tools a{margin-right:.5rem}.dnn-community-forums .dcf-topics-view .dcf-topics .dcf-subject .afpagermini,.dnn-community-forums .dcf-topics-view .dcf-topics .dcf-subject .dcf-topic-description{display:none}@media screen and (min-width:992px){.dnn-community-forums .dcf-topics-view .dcf-topics .dcf-subject .afpagermini,.dnn-community-forums .dcf-topics-view .dcf-topics .dcf-subject .dcf-topic-description{display:block}}.dnn-community-forums .dcf-topics-view .dcf-topics .dcf-last-post{white-space:nowrap}.dnn-community-forums .dcf-topics-view .dcf-topics .dcf-last-post a{display:block}.dnn-community-forums .dcf-topics-view .dcf-topics .dcf-last-post br{display:none}.dnn-community-forums .dcf-topics-view .dcf-topics .dcf-actions-bottom{display:flex}.dnn-community-forums .dcf-topics-view .dcf-topics .dcf-actions-bottom .dcf-buttons{flex-grow:1}.dnn-community-forums .dcf-topic-view .dcf-title-1{font-size:1.4em;padding:.5rem 0;margin:0;display:flex;align-items:center}.dnn-community-forums .dcf-topic-view .dcf-title-1 .fa{margin-right:.5rem}.dnn-community-forums .dcf-topic-view .dcf-prev-next{margin-top:.5rem;padding-bottom:.5rem;border-bottom:solid 1px #ccc;border-style:dashed}.dnn-community-forums .dcf-topic-view .dcf-prev-next a{color:#222}.dnn-community-forums .dcf-topic-view .dcf-prev-next a .fa{margin:0 .5em}.dnn-community-forums .dcf-topic-view .dcf-header-content{padding-top:1rem}.dnn-community-forums .dcf-topic-view .dcf-header-content .dcf-topic-buttons{padding-top:1rem}.dnn-community-forums .dcf-topic-view .dcf-header-content .dcf-topic-controls{margin-top:.5rem}@media screen and (min-width:768px){.dnn-community-forums .dcf-topic-view .dcf-header-content .dcf-topic-controls{text-align:right}}.dnn-community-forums .dcf-topic-view .dcf-header-content .dcf-topic-controls .dcf-sort{display:inline-block;padding-bottom:.5rem}.dnn-community-forums .dcf-topic-view .dcf-header-content .dcf-topic-controls .dcf-sort select{margin-left:.5em}.dnn-community-forums .dcf-topic-view .dcf-header-content .dcf-topic-controls .dcf-subscribe-topic{padding-bottom:1rem}.dnn-community-forums .dcf-topic-view .dcf-header-content .dcf-topic-controls .dcf-subscribe-topic label{margin-bottom:0}.dnn-community-forums .dcf-topic-view .dcf-pager{padding:.3em 0;flex-grow:1;display:flex;justify-content:flex-end}.dnn-community-forums .dcf-topic-view .dcf-tools{display:flex;flex-wrap:wrap;align-items:center}.dnn-community-forums .dcf-topic-view .dcf-tools .dnnPrimaryAction{margin-bottom:0}.dnn-community-forums .dcf-topic-view .dcf-tools-top{padding-top:.5rem}.dnn-community-forums .dcf-topic-view .dcf-tools-bottom{padding-bottom:.5rem}.dnn-community-forums .dcf-topic-view .dcf-topic-headings{padding:.5rem;border-bottom:solid 1px #ccc;font-size:1.1em;display:none}@media screen and (min-width:768px){.dnn-community-forums .dcf-topic-view .dcf-topic-headings{display:flex}}.dnn-community-forums .dcf-topic-view .dcf-topic-post{margin:1.5rem 0 2rem}.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-info{background:#f2f2f2;min-height:100%;padding:.5rem}@media screen and (min-width:992px){.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-info{padding:1rem}}.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-info .dcf-avatar{padding:.5rem}@media screen and (min-width:992px){.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-info .dcf-avatar{padding:1rem}}.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-info .dcf-avatar-img-wrap{position:relative}.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-info .dcf-avatar-img-wrap .dcf-avatar-img{position:absolute;width:100%;height:100%;top:0;left:0;border-radius:50%;overflow:hidden}.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-info .dcf-avatar-img-wrap img{width:100%;height:100%!important;object-fit:cover}.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-info .dcf-post-user-data,.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-info .dcf-post-user-rank{display:none}@media screen and (min-width:992px){.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-info .dcf-post-user-data,.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-info .dcf-post-user-rank{display:block}}.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-info .dcf-post-user{display:flex;align-items:center}@media screen and (min-width:992px){.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-info .dcf-post-user{display:block}}.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-info .dcf-post-user .dcf-user{order:1}.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-info .dcf-post-user .dcf-avatar-img-wrap{width:50px;padding-top:50px;margin:0 .5rem 0 0}@media screen and (min-width:992px){.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-info .dcf-post-user .dcf-avatar-img-wrap{width:100%;padding-top:100%;margin:1rem 0}}.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-content{background:#fafafa;min-height:100%;display:flex;flex-direction:column}.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-toolbar li{cursor:pointer}.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-content-top .dcf-postdate,.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-content-top .dcf-topic-actions{padding:.5rem}@media screen and (min-width:992px){.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-content-top .dcf-postdate,.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-content-top .dcf-topic-actions{padding:1rem}}.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-content-main{padding:.5rem;border-top:solid 1px #ccc;flex-grow:1}@media screen and (min-width:992px){.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-content-main{padding:1rem}}.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-topic-content-main .dcf-post-body{padding-bottom:1.5rem}.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-post-footer{border-top:solid 1px #ccc}.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-post-signature{margin:1rem}.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-post-signature *{font-size:1em!important;margin:0!important}.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-post-footer-bottom{margin:1rem;align-items:center}.dnn-community-forums .dcf-topic-view .dcf-topic-post .dcf-post-footer-bottom .dcf-post-likes{font-size:.8em}.dnn-community-forums .dcf-quick-reply{padding:1rem 0;border-top:solid 1px #ccc;border-bottom:solid 1px #ccc}.dnn-community-forums .dcf-quick-reply .dcf-title{margin:0}.dnn-community-forums .dcf-quick-reply .dcf-title-4{margin:1rem 0 .25rem}.dnn-community-forums .dcf-quick-reply .dcf-quick-reply-header{margin:1rem 0}.dnn-community-forums .dcf-quick-reply .dcf-textbox{max-width:100%;border:solid 1px #ccc}.dnn-community-forums .dcf-quick-reply .dcf-toolbar-buttons .fa{padding:.5em .7em;cursor:pointer;color:#666}.dnn-community-forums .dcf-quick-reply .dcf-toolbar-buttons .fa:hover{color:#000}.dnn-community-forums .dcf-quick-reply .dcf-subscribe-topic{margin:1em 0}.dnn-community-forums .af-search-header .af-search-title{font-size:1.4em}.dnn-community-forums .af-search-bar .af-search-title{display:block;font-size:1.4em;padding:.5rem 0;margin:0}.dnn-community-forums .af-search-results .afgrid .aftopicrow{vertical-align:top;padding:1rem .5rem;border-bottom:solid 1px #ccc}.dnn-community-forums .af-search-results .afgrid .aftopicrow .aftopictitle{display:block;padding-bottom:.5rem}.dnn-community-forums .af-adv-search .af-adv-search-header .af-adv-search-title{display:block;font-size:1.4em;padding:.5rem 0;margin:0}.dnn-community-forums .af-adv-search .af-adv-search-footer,.dnn-community-forums .af-adv-search .af-adv-search-row{padding:.5rem 0;border-bottom:solid 1px #ccc}.dnn-community-forums .af-adv-search .af-adv-search-footer label,.dnn-community-forums .af-adv-search .af-adv-search-row label{min-width:20em} \ No newline at end of file