Page 1 of 1
add attribute with value on element insert
Posted: Thu Jan 24, 2019 8:41 pm
by akheiljain
I am trying to figure out the right place to configure attribute defaults upon element insert. I would like to add "time" to draft-comment tags and auto populate author upon tag insertion. I have a custom framework created, with storage set to external so it can easily be distributed to other users.
Re: add attribute with value on element insert
Posted: Fri Jan 25, 2019 9:34 am
by Radu
Hi,
For the flexibility that you want (being able to auto generate the date) I think you should try to replace the "draft-comment" content completion entry with a custom Author action.
So if you edit your custom framework configuration in Oxygen, you can define in the "Author->Actions" tab a new custom action with the name "draft-comment" which as an activation XPath uses something like:
https://www.oxygenxml.com/doc/versions/ ... ld-element
and which uses a pre-defined operation called "InsertFragmentOperation":
https://www.oxygenxml.com/doc/versions/ ... toperation
to insert a small XML fragment. The XML fragment can have inside Oxygen editor variables:
https://www.oxygenxml.com/doc/versions/ ... Cvariables
There are editor variables like
${author.name} and
${date(pattern)} which may be interesting to you.
After the action is created, in the "Author->Content Completion" tab you can remove the old "draft-comment" entry and add the action to the content completion window.
Regards,
Radu
Re: add attribute with value on element insert
Posted: Mon Feb 11, 2019 7:21 pm
by akheiljain
Hi Radu,
Thank you for your comments, I still am not able to get it working. Is there a log to see what the issue might be? I followed the instructions in your post and all it inserts now is <draft-comment author=""></draft-comment>, with the cursor within the double quotes. The Action criteria I specified is as follows:
Activation XPath: oxy:allows-child-element("draft-comment")
Operation: ro.sync.ecss.extensions.commons.operations.InsertFragmentOperation
Arguments: fragment = <draft-comment author=${author.name}>${timeStamp}</draft-comment>
all the other arguments are left with default values.
Any help is appreciated.
Thanks
Re: add attribute with value on element insert
Posted: Tue Feb 12, 2019 10:42 am
by Radu
Hi,
I just tested and a "fragment" value of:
Code: Select all
<draft-comment author="${author.name}">${timeStamp}</draft-comment>
works on my side and is properly expanded when the action is invoked.
What version of Oxygen are you using?
Regards,
Radu
Re: add attribute with value on element insert
Posted: Tue Feb 12, 2019 7:56 pm
by akheiljain
Hi Radu,
We are using XML Author 20.1, build 2018101517. And it still doesn't insert it upon inserting the element. I setup a shortcut key to invoke the action, when used adds the author name, but not the timestamp.
Thanks in advance...
Akheil Jain
Re: add attribute with value on element insert
Posted: Wed Feb 13, 2019 10:51 am
by Radu
Hi Akheil,
So the author name editor variable now works, right?
The timestamp editor variable should work as well, it works on my side, just double check that you are using it correctly (${timeStamp}, the editor variable names are case sensitive) in the XML fragment which you set on the InsertFragmentOperation.
Regards,
Radu
Re: add attribute with value on element insert
Posted: Wed Feb 13, 2019 8:39 pm
by akheiljain
Hi Radu,
I may need to rephrase by question, the issue I am running into is the Author Action is not triggered, when I select draft-comment Element for the Element selector or when I hit Enter on my keyboard and select draft-comment element.
Re: add attribute with value on element insert
Posted: Thu Feb 14, 2019 8:28 am
by Radu
Hi,
After you define your custom Author action in the "Document Type" edit dialog in the
Author->Actions tab, there is also a tab there called
Content Completion. There you have a "Remove Content Completion Items" list from which you can remove the old "draft-comment" entry and then you can add your custom action (which can have the name "draft-comment") to the list of content completion items (you can choose to add it either in the content completion window or in the Elements view or both).
https://www.oxygenxml.com/doc/versions/ ... n-tab.html
Regards,
Radu
Re: add attribute with value on element insert
Posted: Thu Feb 14, 2019 11:06 pm
by akheiljain
Hi Radu,
Thanks for your reply, that is exactly was I was looking for.
Akheil Jain
Re: add attribute with value on element insert
Posted: Fri Mar 27, 2020 9:17 am
by Radu
Hi,
Just to update this thread, I wrote a small article on the Oxygen XML Blog about contributing an Author action to the content completion window:
https://blog.oxygenxml.com/topics/custo ... etion.html
Regards,
Radu