I'm also interested in this kind of information. Right now I'm specifically
interested in what I can use as an equivalent to a hook for when a user
saves a page revision using VE. I'm working on an extension that logs user
actions (and does more with that information). I have figured out how to
play off of hooks to determine a page view or a "traditional" page save,
but I'm lost when it comes to VE.

Robert, if you move this discussion to Phabricator, could you share the
link to this thread?

Thanks,

Daren


On Thu, Aug 27, 2015 at 7:59 AM, Robert Vogel <vo...@hallowelt.com> wrote:

> Hi!
>
> James, Florian, thank you for your responses! This will be very useful for
> me.
>
> I didn't have the time to look through all of Florian's links, so maybe
> it's somewhere in there, but, James, can you give me a hint how to register
> a tool with visual editor?
> What is the recommended time/callback to call the
> 've.ui.toolFactory.register' method? mw.loader.using(<some-RL-module>)?
>
> Regarding the 'save' event question: I want to check if a category is set
> and if it is not, show a message window to the user _before_ he/she can
> save. I've already implemented a serverside check and the API returns an
> error if no category is set. But this API error message cannot be
> styled/customized and it gets displayed _after_ the user clicked "save".
> But of course I will open a Phabricator task if that is the better place
> for such a discussion.
>
> Thanks again,
> Robert Vogel
>
> -----Ursprüngliche Nachricht-----
> Von: wikitech-l-boun...@lists.wikimedia.org [mailto:
> wikitech-l-boun...@lists.wikimedia.org] Im Auftrag von James Forrester
> Gesendet: Mittwoch, 26. August 2015 21:53
> An: Wikimedia developers <wikitech-l@lists.wikimedia.org>
> Betreff: Re: [Wikitech-l] Tutorials / HowTos for VisualEditor
>
> On 25 August 2015 at 23:30, Robert Vogel <vo...@hallowelt.com> wrote:
>
> > Hi everybody!
> >
> > I want to write an extension for the VisualEditor (great work by the
> > way) and I need a little help.
>
>
> First off, the easiest way to get help is to ask in IRC (
> #mediawiki-visualeditor <irc://irc.freenode.net/mediawiki-visualeditor>)
> or file a Phabricator task asking for something specific (
> https://phabricator.wikimedia.org/maniphest/task/create/?projects=VisualEditor
> ).
>
> One thing to remember is that though VisualEditor is *complex*, it's
> nowhere near *complete* – there's a lot of functionality still to build
> (essentially, anything we've not had a need to build yet), so the answer to
> "what method can I use to do X?" is often "there isn't one, but we can
> build it".
>
> That said…
>
>
> > I've browsed through various documentation [1-4](and more) and already
> > learned that using RL module 'ext.visualEditor.desktopArticleTarget.init'
> > and 'mw.lib.ve.addPlugin' method is the way to go. Unfortunately my
> > attempts to hook into the user interface by binding on events provided
> > by the components (like 'save' from 've.ui.MWSaveDialog' or
> > 've.init.mw.Target') have not been successful yet. Maybe you could
> > give me a little push into the right direction.
> >
>
> As a general rule, don't try to bind to VisualEditor's internal events.
> They're intended for internal consumption and aren't an API, and change
> without notice.
> ​​
>
> ​
>
>
> > Are there any HowTos or Tutorials for VisualEditor that cover topics
> > like
> >
> > 1.       Adding buttons to the toolbar
> >
>
> ​We don't have an API for this yet, partially because the current system
> is terrible and building an API just to make a breaking change to it feels
> unkind. There are a number of ways you can grab onto the private.
>
>
>
> > 2.       Accessing the data model (e.g. retrieve all set categories from
> > the Parsoid DOM)
> >
>
> Are you trying to replace the category nodes with a new one with extra
> features? If so, you'd want t​o sub-class the core one, or register a node
> with more specificity in the registry than other things (and/or de-register
> the existing one). Neither of those are very stable, though. If something
> else, file a ticket and we can discuss options.
>
>
> 3.       Extending/replacing a single tool (e.g. the GalleryInspector)
> >
>
> ​Probably you want to sub-class the existing tool and register that with
> the same name to over-write.
>
>
> 4.       Binding on components events (e.g. the 'save' event, to analyze
> > content and maybe abort saving)
> >
>
> ​Save abort hooks are done in MediaWiki. We haven't built (and don't
> intend to ever build)​ a hooks system into VisualEditor. If you file a
> ticket explaining what you're looking to do I'd be happy to give more
> advice.
>
> ​Yours,
> --
> James D. Forrester
> Lead Product Manager, Editing
> Wikimedia Foundation, Inc.
>
> jforres...@wikimedia.org | @jdforrester
> _______________________________________________
> Wikitech-l mailing list
> Wikitech-l@lists.wikimedia.org
> https://lists.wikimedia.org/mailman/listinfo/wikitech-l
> _______________________________________________
> Wikitech-l mailing list
> Wikitech-l@lists.wikimedia.org
> https://lists.wikimedia.org/mailman/listinfo/wikitech-l
>



-- 
__________________
http://enterprisemediawiki.org
http://mixcloud.com/darenwelsh
http://www.beatportfolio.com
_______________________________________________
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to