> On 2 May 2019, at 18:12, Christiaan Hofman <[email protected]> wrote:
>
>
>
>> On 2 May 2019, at 17:22, Mahmood Shafeie Zargar <[email protected]
>> <mailto:[email protected]>> 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
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-users