/* =================================================================================================== AUTHOR : Ken Function : Automatically read ADS tag and set to variable when item is clicked Created : 2022-12-11 Modified : 2023-11-03 Version : v1.1.4 =================================================================================================== */ // EventUpdateVar-ADS // (c) 2022 Ken // This is a script for Directory Opus. // See https://www.gpsoft.com.au/DScripts/redirect.asp?page=scripts for development information. // Called by Directory Opus to initialize the script function OnInit(initData) { initData.name = "EventUpdateVar-ADS"; initData.version = "1.1.4(23.11.03)"; initData.copyright = "(c) 2022 Ken"; initData.url = "https://resource.dopus.com/t/set-tags-add-tags-by-list-beta/43269/2"; initData.desc = "Display ADS in the Status Bar. \r\nFor Preferences / Display / Status Bar: ADS={var:lst:ADS}"; initData.default_enable = true; initData.min_version = "12.0"; } function OnAddCommands(addCmdData) { var cmd = addCmdData.AddCommand(); cmd.name = "UpdateVarADS"; cmd.method = "OnUpdateVarADS"; cmd.desc = "EventUpdateVar-ADS"; cmd.label = "UpdateVarADS"; cmd.template = ""; cmd.hide = false; cmd.icon = 'script'; } function OnUpdateVarADS(scriptCmdData) { var tab = scriptCmdData.func.sourcetab; var lister = tab.lister; if (!tab || lister.Vars.Exists("UpdateVarADS")) return lister.Vars.Set("UpdateVarADS") = 1; var dlg = scriptCmdData.func.Dlg(); var cmd = scriptCmdData.func.command; dlg.detach = true; dlg.template = "dialog1"; dlg.title = "OnSelect"; dlg.top = false; dlg.create(); //dlg.show(); dlg.opacity = 0; // Make the dialog invisible dlg.watchtab(tab, "select,activate,srcdst"); // Watch events var msg; do { msg = dlg.GetMsg(); var msgResult = msg.result; if (!msgResult) break; var value = msg.value; /* var event = msg.event; var ctrl = msg.control; var dt = msg.data; DOpus.Output("Event: " + event + ", Value: " + value + " ctrl: " + ctrl + " data:" + dt); */ if (value == "select") // If there is a select event { tab.Update(); if (tab.Selected.count > 0) { var fsu = DOpus.fsutil; var ADSfile = tab.Selected(0).realpath + ":Tags"; // ADSfile // If ADSfile exists if (fsu.Exists(ADSfile)) { var ST = DOpus.Create.StringTools(); var openText = fsu.OpenFile(ADSfile, "r"); // Read ADSfile var text = openText.Read(); openText.Close; var textbom = ST.Decode(text, "utf-8 bom"); // Decode as UTF-8 with BOM var myArray = textbom.split("\r\n"); // The separator is \r\n var ADS = myArray[0]; // Get the first line } else {var ADS = "";} lister.Vars.Set('ADS', ADS); } else { lister.Vars.Set('ADS') = ""; } cmd.UpdateToggle(); // Refresh } else if (value == "activate" || value == "srcdst") { lister.Update(); var tab = lister.activetab; if (!tab) var tab = DOpus.listers.lastactive.activetab; dlg.watchtab(tab, "select,activate,srcdst"); } else if (value == "close") { lister.Update(); if (!lister.lastactive) break } } while (msg); // msg loop if (lister.Vars) lister.Vars.Delete("UpdateVarADS"); } var cmd = DOpus.Create().Command(); // Called when a tab is activated function OnActivateTab(activateTabData) { cmd.RunCommand('UpdateVarADS'); } // Called when a Lister is activated function OnActivateLister(activateListerData) { cmd.RunCommand('UpdateVarADS'); } ==SCRIPT RESOURCES