Make Rating in Details View read-only

I have a problem with star Ratings in Details Mode.
If I display the Rating column (as I always do when working with photos) it is too easy to accidentally add a rating to a photo! I often click a line to select a file, but if I happen to click in the Rating column, I may accidentally add or change a rating.
Ratings cannot be added or changed in a list/details view in any other application I can think of.
Please change this!

You were just asking to be able to change ratings by clicking on thumbnails or thumbnail labels. Won't that have the same problem?

If you click filenames to select things you don't have to worry about clicking on the ratings. But if it's a real problem you can't avoid, it could be worked around by having a script column that displays the same rating stars but is read-only. (Not at my PC currently to write the script, but it should be fairly straightforward.)

I have a lot of experience with working with thumbnails that have ratings displayed underneath, and it has never been a problem, as I am used to clicking on the image.
I have talked to other who share my opinion on this. Hopefully they will comment.

Copy this into the folder you're taken to if you type /scripts into the location bar and push return:

Rating (Read-Only).js.txt (1.0 KB)

You'll find the new column under the Scripts column category. It should look and act the same as the built-in Rating column, except that it is read-only and can't be clicked on.


Script code for reference:

// Ratings (Read-Only)
// This is a script for Directory Opus.

// Called by Directory Opus to initialize the script
function OnInit(initData)
{
	initData.name = "Rating (Read-Only)";
	initData.version = "1.0";
	initData.copyright = "(c) 2023 Leo Davidson";
	initData.url = "https://resource.dopus.com/t/make-rating-in-details-view-read-only/44149";
	initData.desc = "Read-only Rating column";
	initData.default_enable = true;
	initData.min_version = "12.0";

}

// Called to add columns to Opus
function OnAddColumns(addColData)
{
	var col = addColData.AddColumn();
	col.name = "RatingRO";
	col.method = "OnRatingRO";
	col.label = "Rating (Read-Only)";
	col.header = "Rating"
	col.justify = "center";
	col.autorefresh = true;
	col.autogroup = true;
	col.type = "stars";
	col.maxstars = 5;
}


// Implement the RatingRO column
function OnRatingRO(scriptColData)
{
	if (!scriptColData.item.metadata || !scriptColData.item.metadata.other)
		return;
	scriptColData.value = scriptColData.item.metadata.other.rating;
}
1 Like

Thank you. I have added that column. Please consider adding this column as a standard option.