Collection Modified Date/Time

Hi,

just notice sthg. strange within a document of my collection I've modified today. Pls. see following screenshot.

The first image shows the appropriate document I just modified with wrong date/time. When using context menu and jump to the containing folder, the lister shows me the correct date/time modified, see image 2 above.

Closing DO or refreshing the collection using F5 does not change this behaviour. The file ist saved to a NAS share, btw. Don't know if this could cause such issues?

cu,
Michael

It's to avoid overheads with network shares.

I understand, however checking again, today, the file's modification date/time still points to Monday and not Wednesday, as expected.

Btw., collection_change_delay = 5000, no_external_change_notify = false.

So when exactly will the collection be updated from my Synology NAS? Can I force a refresh as others have suggested by using a function key like Ctrl+F5?

I mean I do not expect that file changes are monitored all the time but when restarting DO or hitting F5, for example, the collection should be updated.

cu,
Michael

I don't think it will be updated until the file is removed and re-added to the collection.

Doing it on startup would cause problems if the network drive no longer existed, so I think we avoid that.

It should be possible to create a hotkey/button/script that removes & re-adds the selected item, or all items, if that would help?

Removing and adding would be an option, however not the best solution for this task.

I wonder though, why other files from the colleciton have been updated within DO and some are not. Even a restart of Windows and a re-launch of DO does not update this collection.

The collection itself does list just 24 files - not that much which DO won't be able to update while refreshing manually, IMO.

I even don't mind when a manual update takes place and this process takes up to one minute or more. If I know this behaviour I could live with it. But doing nothing at all is not good either.

Oddly, when pressing F5 within my collection, I can see a spinning wheel on top of the lister, which tells me that the collection is being re-read. Why does DO not update the file's details like modification date?

Michael

Are the other files also on network drives?

Yes, all of them. And like you suggested, removing and adding updates the date/time correctly just checked but not very user-friendly, guess you know what I mean :stuck_out_tongue_winking_eye:

Thinking about it some more, the collection metadata (size/date) will be updated if Opus is running and looking at the file's parent folder when the change happens, since having the folder open will make it monitor that folder for changes.

If Opus sees a change, it will feed it through to the file collection. It just has to be looking at the parent folder in order to see it, i.e. have the folder open.

(It may be subject to Preferences / Folder Tabs / Options / Process file changes in background tabs as well.)

Hi Leo,

thanks for your reply again!

Does this mean, when the collection is currently opened in a lister, it will not change change/update the appropriate entry if its parent folder is not opened in a second lister or tab(?) at the same time?

If so, most probably this will not happen, since I start right form a collection and double click e.g. a Word document to start editing and after saving the document and closing Word, I'm back at the collection. At this time, the entry within the collection won't update.

I still thinking about how to force an (manually) update of the collections w/o deleting and re-inserting a file again. As already mentioned, restarting Windows and DO does not update a collection.

I really like those collection within DO, however I wish they were more, let's day, reliable concerning their metadata, like date/time columns/fields.

Btw, the setting you mentioned is already checked, e.g. set to true.

Edit: I can confirm when file's location is opened in a differen tab, e.g. on the right side, and document content has been modified, the collection on the left side updates itself including modification date/time.

That's perfect, but not perfect enough, because normally I start from a collection and do not additionally open the file's location.

cu,
Michael

Good Morning Leo,

any update on this or are updates within the metadata of collection items not possible?

Maybe a redesign of how collections update, a command to put a custom button into toolbar that does a complete refresh upon request?

Michael

We haven't redesigned the way collections pointing to network drives work in the last two days over the weekend, no. :slight_smile:

I'll see if I can write a refresh-metadata button for you next week.

1 Like

Hi Leo,

my question really did not aim to the question if you did change the behavior this weekend, certainly not :stuck_out_tongue_winking_eye:

I rather asked if you think about a redesign in one of the next updates. But I'm keen on your refresh button, too of course.

Thanks and have a nice weekend,
Michael

Hi Leo,

just a friendly reminder :smile: and since I notice that a beta version just appeared, maybe there are additional plans to enhance the behavior of collection refreshes?

Michael

Hi Leo,

any feedback available already?

OTH, I would like to give it a try myself, however, I don't know where to start: JScript or VB Script or none of them, using plain DO commands.

As a starting point, I'm searching how to determine and save the current collection name for an item that's selected (maybe multiselect, but that's subject for further improvements). I guess I will need the items location, too, to re-add it later on.

I can already remove an item from any collection usingDelete REMOVECOLLECTION and I know how to add a file to a collection using command Copy TO COLLLIST.
This shows a context menu right now, but I guess I can solve this somehow by adding any parameter or option by additionally using the memorized location of the previously removed item and collection name .

Just some thoughts at the moment, guess you can add some more tips and hints?

cu,
Michael

A few hours later, my first JScript within DO:

		if (clickData.func.sourcetab.selected_files.count > 0 ) {
			var selFiles2 = clickData.func.sourcetab.selected_files;
			// remove selected files from collection
 			cmd.RunCommand("Delete REMOVECOLLECTION");
			// re-add them to update metadata
			for ( j = 0; j < selFiles2.count; j++ ) {	
				DOpus.Output(selFiles2(j));	
				cmd.Clear();			
				cmd.AddLine("Select \"" + selFiles2(j) + "\"");
				cmd.AddLine("Copy TO " + coll);
				cmd.Run();
			}
		}

This works already, however, when re-adding the previously removed file, I get an error "File already exists". Is there some kind of caching happening behind the scenes?

Michael

I think you can simply this a lot. When the OnClick event is called the Command object you get already has the selected files in it. So all you need to do is run the command to remove them from the collection, followed by the command to add them back.

Give this a try. It seemed to work ok in a very quick test.

function OnClick (clickData) {
	clickData.func.command.RunCommand("Delete REMOVECOLLECTION");
	clickData.func.command.RunCommand("Copy HERE");
}

Thanks Jon for this little script :rofl: This would indeed simplify things.

Problem is, that the removed file gets added to a different collection.

I've opened e.g. two collections at a time. One on the left side and a second on the right side of a dual lister. When pressing the button to remove a selected file from the right collection it immediately gets added to the left side.

Basically your script works, the destination is wrong.

Additional info: when only one collection is opened, I get an error telling me "it cannot find the file".

Michael

Try this:

function OnClick (clickData) {
	clickData.func.command.SetDestTab(clickData.func.command.sourcetab)
	clickData.func.command.RunCommand("Delete REMOVECOLLECTION");
	clickData.func.command.RunCommand("Copy HERE");
}

This one works! Thank you!

Nevertheless, the result is wrong. What I wanted to achieve is to refresh one or more files within a collection to get updated metadata (e.g. size and modification date/time).
While the script removes and adds the item again, metadata gets out of sync.

Obviously it happens only with files stored on a network share. Before adding the file the size column showed e.g 987 KB and modified: today 20:39. I've then modified the file some minutes later for testing purposes and pressed the script button again.
Afterwards the size column now shows 0 bytes and modified: today 20:39.

Correct metadata is: 978 KB / today 21:25.

Michael

Ha! I hadn't tried it on a network. We have the same problem - the information is cached in the file object, and this gets copied back to the collection automatically.

We can get around it by forcing the file objects to update before we do the removal/re-add.

function OnClick (clickData) {
	for (var f = new Enumerator(clickData.func.command.files); !f.atEnd(); f.moveNext())
		f.item().Update();
	clickData.func.command.SetDestTab(clickData.func.command.sourcetab);
	clickData.func.command.RunCommand("Delete REMOVECOLLECTION");
	clickData.func.command.RunCommand("Copy HERE");
}