Meta Stack Exchange is where users like you discuss bugs, features, and support issues that affect the software powering all 153 Stack Exchange communities.

What is meta?
Here's how it works:
  1. Any Stack Exchange user can ask a question
  2. The community provides support, votes on ideas, and reports bugs
  3. Your voice helps shape the way Stack Exchange operates

Currently, the only way to cancel stars in a chat transcript is when the chat-message is visible in the chatroom's sidebar.

cancel stars dialog box

However, in a fast-moving, multi-star chatroom, the window of opportunity to cancel can be short, and rapid changes in starring can quickly make this impossible to do in a timely way.

We use stars as markers in moderator chat events (where the Community managers disseminate important information to the moderator teams) as well as for town halls during elections.

Feature request: Allow mods/room owners to cancel stars from the chat message menu box, including in the transcript.

message menu

share|improve this question
    
Yes! I was trying to clear some stars earlier and failed miserably because of this. – ChrisF Feb 5 '13 at 20:32
    
this would be most useful. – voretaq7 Feb 5 '13 at 20:44
7  
What? I think you mean that every chat item should get it's own star: clicking on it increases the size and color intensity. Also they should be animated to sparkle. And we should rename chatroom to galaxy. (Seriously, your idea is better. ;-) – Jon Ericson Feb 5 '13 at 20:48
    
@JonEricson No no, Chat Katamari! Screw all other ideas and implement Chat Katamari immediately – Ben Brocka Feb 5 '13 at 21:06
2  
@BenBrocka shockingly, there are already 331 Google results for "Chatamari Damacy." – Pops Feb 5 '13 at 21:14
    
@PopularDemand I get 882. Popularity is through the roof – Ben Brocka Feb 5 '13 at 21:16
    
kathack.com – Won't Feb 5 '13 at 21:22
1  
Still no answer or action? – MysticMagicϡ Jan 8 '14 at 4:52
    
This would be very very useful, and I can't imagine it's very difficult to implement... – David Z Sep 10 '14 at 0:35
    
@Gilles "current answers do not contain enough detail"? I see no answers... :) – Shadow Wizard Nov 27 '15 at 20:08
1  
@ShadowWizard I think that “” (the sum total of all information contained in the answers) is not enough detail. – Gilles Nov 27 '15 at 20:21
    
@Gilles just nitpicking wrong bounty reason, should choose "Draw attention" or "Authoritative reference needed" when there are no answers at all. :) – Shadow Wizard Nov 27 '15 at 20:24

Until this gets implemented you can use the following userscript to cancel stars as a room owner from the transcript:

// ==UserScript==
// @name         Unstar/unpin for room owners
// @namespace    http://stackoverflow.com/users/578411/rene
// @version      0.1
// @description  unstar
// @author       rene
// @match        *://chat.stackoverflow.com/transcript/*
// @match        *://chat.stackexchange.com/transcript/*
// @match        *://chat.meta.stackexchange.com/transcript/*
// @grant        none
// ==/UserScript==
/* jshint -W097 */
'use strict';

// http://meta.stackexchange.com/a/262239/158100
function unstar(node) {
    var fkey = document.getElementById('fkey').value,
        id = node.parentElement.id.split('-')[1];
    $.post('/messages/' + id + '/unstar', {fkey: fkey}, function (data, status, xhr) {
       if (status !== 'success' || data !== 'ok') {
           alert('Not OK? ' + status + ' | ' + data);  
       } else {
           node.remove();
       }
    });
}

function unpinBuilder(node) {
    var outer = document.createElement('span'),
        sprite = document.createElement('span'),
        text = document.createTextNode("unpin/cancel stars (RO only)");

    sprite.className = "sprite sprite-ownerstar-off"
    outer.className = "star";
    outer.appendChild(sprite);
    outer.appendChild(text);

    outer.addEventListener(
        "click", 
        function () {
            unstar(node);
        }, 
        false);
    return outer;
}

function addUnstar(node) {
    var prevNode,
        currentNode,
        i;

    for(i = 0; i < node.childNodes.length; i = i + 1) {
        currentNode = node.childNodes[i];
        if (currentNode.nodeType === 1 && currentNode.nodeName === 'SMALL') {
            if (prevNode.nodeName === 'span') {
                // already added
            } else {
                node.insertBefore(
                    unpinBuilder(node),
                    currentNode);            
            }
            break;
        } else {
            prevNode = currentNode;
        }
    }
}

function processMutationRecord(record) {
    var node;
    if (record.addedNodes) {
        for(var i = 0; i < record.addedNodes.length; i = i + 1) {
            node = record.addedNodes[i];
            if (node.nodeType === 1 && node.nodeName === 'DIV' && node.className === 'popup') {
                addUnstar(node);
            }
        }
    }
}

var mut = new MutationObserver(function(items, src) {
    for(var i=0; i < items.length; i = i +1) {
        processMutationRecord(items[i]);
    }
});

mut.observe(document.getElementById('transcript'), { childList: true, subtree: true });

The script adds an item to the popup and on clicking that item it posts to /messageid/unstar as explained here.

If the script is active this is how your popup should look like:

unpin item in close up dialog

share|improve this answer

I agree except that the users who gave out the stars should be able to remove them as well.

Of course, users who spam stars/remove dozens of stars at the same time can be easily be dealt by room owners and/or mods by allowing them to reverse the stars by themselves (or at least attract attention to that user). Users can have a "starred" history, which is similar to the "favorites" tab in the Profile page. Users can view what they have starred (and the star itself) and be able to remove the star by clicking on the star. Upon clicking, the dialog box will pop up asking if you are sure and voila! The star is removed and that message(s) will no longer be in the starred tab (after a reload).

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .