Can I configure the "More" options in Forum responses?

We are running into situations where moderators are accidentally selecting "Report as abusive" rather than "Verify Answer". 

I would like to rearrange this menu and move the Report option down.  I assume this is in Administration and involves some coding, but I cannot find the option anywhere.   

Has anyone done this, or can you confirm if this is an option?

Parents
  • Hey ! Great question. Just took a look at the widget and yes it is an Administration thing to do, but in the widget code, the list could be re-arranged to whatever order you want. Just need to move the snippet of code around to where you would like. Not incredibly difficult to do as it is a copy/paste of the block of code, but do want to make sure you move it in the right spot.

    I'm happy to help you out with this and for reference we would be looking at the Forum - Thread widget and callback-more-reply-actions.

    Thanks!

  • Sorry, I am still not seeing that option - I am new, so it may be a language gap on my end lol

    If I go to Administration > I'm looking in Interface > Widget Studio (am I right so far?) > I don't see "Forum - Thread Widget" - I do see "Forum -Thread", but nothing about "abuse" in the code here, so I don't think this is the right place. 

    Thanks for your help!!

  • Hi , sorry to bug you again - just wondering if you can point me to the place to do the same thing, but for the main question (rather than a reply). 

    I am working in the same menu : Administration > Interface > Widget Studio > Forum -Thread.  If this is the right path, I am not sure which menu option to select.

    Can you help me out?

    Thanks :) 
    Nettie

  • Hi . That action works the same way, but it's in the content-thread-start.vm attachment instead (at line 277). Otherwise, it's the same place: Admin > Interface > Widget Studio > Forum - Thread. Thank you for the good feedback about it being too easy to select; I'll raise this as an issue. 

    ## Report abuse
    #if ($isRegistered)
    	<li class="navigation-list-item">
    		$core_v2_ui.Moderate($thread.ContentId, $thread.GlobalContentTypeId)
    	</li>
    #end
    

  • Hello Michael,

    I was able to remove it from the "more" drop-down all together if I removed it from line 277, however, no matter where I copy and pasted it back in within that content thread start.vm section, it would not reorder it.  Is there another spot to try?  

  • Hi . Forum Thread is a bit of a unique case when it comes to its use of the links UI Component , in that its collapsed more links are loaded dynamically from a callback due to how they're calculated. As such, those particular more links are included in that widget's callback-more-start-actions.vm script instead of content-thread-start.vm. So to move the report link, you'd both remove it from content-thread-start.vm as you already did, and then also add the following within callback-more-start-actions.vm, between whichever links you'd like.

    ## Report abuse
    #if ($core_v2_user.IsRegistered($core_v2_user.Accessing.Id))
    	<li class="navigation-list-item">
    		$core_v2_ui.Moderate($thread.ContentId, $thread.GlobalContentTypeId)
    	</li>
    #end

  • Thank you very much.  This worked in our testing site and I will be implementing in our production site.  Have a great weekend!

  • Hello  , While this did work for admins and moderators, it looks like the report abuse button was taken away from our clients.  I was not aware that this move was permission-based nor do I see it in the code.  Can you advise?

  • Could you provide the current customized version of the callback-more-start-actions.vm file?

  • ## Parse Parameters
    #set ($forumApplicationId = false)
    #set ($forumApplicationId = $core_v2_page.GetQueryStringValue('forumApplicationId'))
    #if ($forumApplicationId && $forumApplicationId.length > 0)
    #set ($forumApplicationId = $core_v2_utility.ParseGuid($forumApplicationId))
    #end
    #set ($threadContentId = false)
    #set ($threadContentId = $core_v2_page.GetQueryStringValue('threadContentId'))
    #if ($threadContentId && $threadContentId.length > 0)
    #set ($threadContentId = $core_v2_utility.ParseGuid($threadContentId))
    #end
    #set ($replyContentId = false)
    #set ($replyContentId = $core_v2_page.GetQueryStringValue('replyContentId'))
    #if ($replyContentId && $replyContentId.length > 0)
    #set ($replyContentId = $core_v2_utility.ParseGuid($replyContentId))
    #end
    #set ($forumApplicationId = false)
    #set ($forumApplicationId = $core_v2_page.GetQueryStringValue('forumApplicationId'))
    #if ($forumApplicationId && $forumApplicationId.length > 0)
    #set ($forumApplicationId = $core_v2_utility.ParseGuid($forumApplicationId))
    #end
    #set ($postActionsId = $core_v2_page.GetQueryStringValue('postActionsId'))
    #set ($replyCount = $core_v2_utility.ParseInt($core_v2_page.GetQueryStringValue('replyCount')))
    #set ($replyPageIndex = $core_v2_utility.ParseInt($core_v2_page.GetQueryStringValue('replyPageIndex')))


    ## Load Entities
    #set ($forum = false)
    #if ($forumApplicationId)
    #set ($forum = $core_v2_forum.Get($forumApplicationId))
    #end
    #set ($thread = false)
    #if ($threadContentId)
    #set ($thread = $core_v2_forumThread.Get($threadContentId))
    #end
    #set ($reply = false)
    #if ($replyContentId)
    #set ($reply = $core_v2_forumReply.Get($replyContentId))
    #end


    ## Load Permissions
    #set ($hasModeratePermission = $core_v2_nodePermission.Get('forums', $forum.Id, $core_v2_forumPermissions.ReviewAbuse).IsAllowed)
    #set ($hasModifyThreadPermission = $core_v2_nodePermission.Get("forums", $forum.Id, $core_v2_forumPermissions.ModifyPost, "%{ PostId = '${thread.Id}', PostType = 'threads'}").IsAllowed)
    #set ($hasModerateUsersPermission = $core_v2_nodePermission.Get($core_v2_sitePermissions.ManageMembership).IsAllowed)

    #set ($hasModifyPostPermission = $core_v2_nodePermission.Get("forums", $thread.ForumId, $core_v2_forumPermissions.ModifyPost, "%{ PostId = $thread.Id, PostType = 'threads'}").IsAllowed)
    #set ($hasDeletePostPermission = $core_v2_nodePermission.Get("forums", $thread.ForumId, $core_v2_forumPermissions.DeletePost, "%{ PostId = $thread.Id, PostType = 'threads'}").IsAllowed)

    #set ($editUrl = $core_v2_encoding.JavascriptEncode($core_v2_forumUrls.EditThread($thread.Id)))
    #set ($deleteUrl = $core_v2_forumUrls.Deletethread($thread.Id))

    <ul>

    ## Edit Post
    #if ($hasModifyPostPermission)
    <li class="navigation-list-item edit">
    <a href="$core_v2_encoding.HtmlAttributeEncode($editUrl)">$core_v2_language.GetResource('edit')</a>
    </li>
    #end

    ## Delete Thread
    #if ($hasDeletePostPermission)
    <li class="navigation-list-item edit">
    <a data-messagename="telligent.evolution.widgets.thread.deletethread"
    data-forumid="$thread.ForumId"
    data-threadid="$thread.Id"
    data-forumurl="$core_v2_forumUrls.Forum($thread.ForumId)"
    data-links="$core_v2_encoding.HtmlAttributeEncode($postActionsId)"
    href="#">
    $core_v2_language.GetResource('delete')
    </a>
    </li>
    #end

    ## Thread Muting
    #if ($core_v2_user.IsRegistered($core_v2_user.Accessing.Id) && $core_v2_nodePermission.Get('forums',$forum.Id,$core_v2_forumPermissions.ReadForum).IsAllowed && $core_v2_forum.SubscriptionType($forum.Id) == 'Post')
    <li class="navigation-list-item">
    <a data-messagename="telligent.evolution.widgets.thread.mute"
    data-threadid="$thread.Id"
    #if ($core_v2_forumThread.IsMuted($thread.Id))
    data-mute="true"
    #else
    data-mute="false"
    #end
    data-links="$core_v2_encoding.HtmlAttributeEncode($postActionsId)"
    data-offtext="$core_v2_encoding.HtmlAttributeEncode($core_v2_language.GetResource('CF_ForumLinks_ThreadMute'))"
    data-ontext="$core_v2_encoding.HtmlAttributeEncode($core_v2_language.GetResource('CF_ForumLinks_ThreadUnMute'))"
    href="#">
    #if ($core_v2_forumThread.IsMuted($thread.Id))
    $core_v2_language.GetResource('CF_ForumLinks_ThreadUnMute')
    #else
    $core_v2_language.GetResource('CF_ForumLinks_ThreadMute')
    #end
    </a>
    </li>
    #end

    ## Forum Thread Subscribing
    #if ($core_v2_user.IsRegistered($core_v2_user.Accessing.Id) && ($core_v2_forumThread.SubscriptionType($thread.Id) == 'Thread' || $core_v2_forumThread.SubscriptionType($thread.Id) == 'None'))
    <li class="navigation-list-item">
    <a data-messagename="telligent.evolution.widgets.thread.subscribe"
    data-threadid="$thread.Id"
    #if ($core_v2_forumThread.IsSubscribed($thread.Id))
    data-subscribed="true"
    #else
    data-subscribed="false"
    #end
    data-links="$core_v2_encoding.HtmlAttributeEncode($postActionsId)"
    data-offtext="$core_v2_encoding.HtmlAttributeEncode($core_v2_language.GetResource('CF_ForumLinks_ThreadSubscribe'))"
    data-ontext="$core_v2_encoding.HtmlAttributeEncode($core_v2_language.GetResource('CF_ForumLinks_ThreadUnsubscribe'))"
    href="#">
    #if ($core_v2_forumThread.IsSubscribed($thread.Id))
    $core_v2_language.GetResource('CF_ForumLinks_ThreadUnsubscribe')
    #else
    $core_v2_language.GetResource('CF_ForumLinks_ThreadSubscribe')
    #end
    </a>
    </li>
    #end

    ## Thread Capturing
    #set($url = false)
    #set($url = $core_v2_forumUrls.CaptureForumThread($thread.Id))
    #if($url)
    <li class="navigation-list-item">
    <a data-messagename="telligent.evolution.widgets.thread.capture"
    href="#"
    data-captureurl="$core_v2_encoding.HtmlAttributeEncode($url)"
    class="internal-link capture-post forum">
    $core_v2_language.GetResource('Wiki_CopyToWiki')
    </a>
    </li>
    #end

    ## Featuring
    #if ($core_v3_feature.CanFeature($thread.ContentId, $thread.ContentTypeId))
    <li class="navigation-list-item">
    $core_v2_ui.Feature($thread.ContentId, $thread.ContentTypeId)
    </li>
    #end

    #set($convert = false)
    #set($convert = $core_v2_ui.ConvertContent($thread.ContentId, $thread.GlobalContentTypeId))
    #if ($convert)
    <li class="navigation-list-item">
    $convert
    </li>
    #end


    #if ($hasModeratePermission)

    ## Join Thread
    #set ($mergeUrl = false)
    #set ($mergeUrl = $core_v2_forumUrls.MergeThread($thread.Id))
    #if ($mergeUrl)
    <li class="navigation-list-item edit">
    <a href="$core_v2_encoding.HtmlAttributeEncode($mergeUrl)">$core_v2_language.GetResource('Join')</a>
    </li>
    #end

    ## Lock/Unlock Thread
    <li class="navigation-list-item">
    <a data-messagename="telligent.evolution.widgets.thread.lock"
    data-forumid="$thread.ForumId"
    data-threadid="$thread.Id"
    #if ($thread.IsLocked)
    data-locked="true"
    #else
    data-locked="false"
    #end
    data-links="$core_v2_encoding.HtmlAttributeEncode($postActionsId)"
    data-offtext="$core_v2_encoding.HtmlAttributeEncode($core_v2_language.GetResource('Lock'))"
    data-ontext="$core_v2_encoding.HtmlAttributeEncode($core_v2_language.GetResource('Unlock'))"
    href="#">
    #if ($thread.IsLocked)
    $core_v2_language.GetResource('Unlock')
    #else
    $core_v2_language.GetResource('Lock')
    #end
    </a>
    </li>

    ## Moderate/Unmoderate User
    <li class="navigation-list-item">
    <a data-messagename="telligent.evolution.widgets.thread.moderateuser"
    data-userid="$thread.Author.Id"
    #if ($thread.Author.ModerationLevel == "Moderated")
    data-moderated="true"
    #else
    data-moderated="false"
    #end
    data-links="$core_v2_encoding.HtmlAttributeEncode($postActionsId)"
    data-offtext="$core_v2_encoding.HtmlAttributeEncode($core_v2_language.GetResource('Moderate_User'))"
    data-ontext="$core_v2_encoding.HtmlAttributeEncode($core_v2_language.GetResource('UnModerate_User'))"
    href="#">
    #if ($thread.Author.ModerationLevel == "Moderated")
    $core_v2_language.GetResource('UnModerate_User')
    #else
    $core_v2_language.GetResource('Moderate_User')
    #end
    </a>
    </li>

    ## Edit User
    #if ($hasModerateUsersPermission)
    #set ($editUserUrl = false)
    #set ($editUserUrl = $core_v2_urls.EditUser($thread.Author.Id))
    #if ($editUserUrl)
    <li class="navigation-list-item edit">
    <a href="$core_v2_encoding.HtmlAttributeEncode($editUserUrl)">$core_v2_language.GetResource('EditUser')</a>
    </li>
    #if ($core_v2_user.IsRegistered($core_v2_user.Accessing.Id))
    <li class="navigation-list-item">
    $core_v2_ui.Moderate($thread.ContentId, $thread.GlobalContentTypeId)
    </li>
    #end
    #end
    #end
    #end

    </ul>

  • You'll want to move the 

    #if ($core_v2_user.IsRegistered($core_v2_user.Accessing.Id))
        <li class="navigation-list-item">
            $core_v2_ui.Moderate($thread.ContentId, $thread.GlobalContentTypeId)
        </li>
    #end

    block to be just before the </ul> at the end of the file. Right now, it's nested within checks that require edit user permissions.

Reply Children
No Data