> On 2 May 2019, at 18:12, Christiaan Hofman <cmhof...@gmail.com> wrote:
> 
> 
> 
>> On 2 May 2019, at 17:22, Mahmood Shafeie Zargar <m...@msn.com 
>> <mailto:m...@msn.com>> wrote:
>> 
>> Hi,
>> 
>> I would like to know where I can find an example of a script hook written in 
>> JavaScript. 
>> 
>> I have tried things like this to no avail:
>> 
>> functionperformBibDeskActionWithPublications(pubs, scriptHook) {
>> 
>> }
>> 
>> The function code runs, but no value is loaded in the parameters.
>> 
>> Thanks,
>> Mah
> 
> 
> I haven’t tried using JXA script hooks, but I think they should work. Though 
> it could be JXA hangs BibDesk, because of bugs with JXA (that Apple says 
> aren’t bugs but just how it works), that will be fixed in the next release.
> 
> I am not an expert on JS, but shouldn’t it be:
> 
> function performBibDeskActionWithPublications(pubs, 
> {forScriptHook:scriptHook}) {
>       
> }
> 
> Christiaan


Here is the JXA version for the sample script hook:

function performBibDeskActionWithPublications(thePubs, { forScriptHook : 
theScriptHook }) {
        var theName = theScriptHook.name();
        var theID = theScriptHook.id();
        var theField = theScriptHook.fieldName();
        var oldValues = theScriptHook.oldValues();
        var newValues = theScriptHook.newValues();
        var theKeys = [];
        for (var aPub in thePubs) {
                theKeys.push(aPub.citeKey);
        }
        var app = Application.currentApplication();
        app.includeStandardAdditions = true;
        app.displayDialog("Name: " + theName + "\n" + "ID: " + theID + "\n" + 
"Cite Keys: " + theKeys + "\n" + "Field name: " + theField + "\n" + "Old 
values: " + oldValues + "\n" + "New values: " + newValues, { buttons : ["OK"], 
defaultButton : 1 });
}

It works for me, at least with the current nightly.

Christiaan

_______________________________________________
Bibdesk-users mailing list
Bibdesk-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bibdesk-users

Reply via email to