> On 04.07.2016, at 09:00, Dominic Cleal <[email protected]> wrote: > >> On 04/07/16 03:00, Matthew Ceroni wrote: >> I am attempting to develop a plugin. >> >> The main functionality of the plugin is going to be to automatically set >> the Virtual machine network based off the subnet set on the interface >> tab. The initial version would just match the name set in the interface >> tab to the name of the network on the virtual machine tab. Future >> versions might take a config file to set that mapping. >> >> I believe the change should be pretty simple, just run a javascript >> function onchange when the subnet is selected. Therefore I need to >> include a new javascript (asset) on the host edit page. I see that >> plugins such as foreman_salt and foreman_bootdisk do just that. In my >> plugin I created a new asset and created the javascript file. However I >> am not sure how to tie that asset to the host edit page. > > Using the Deface gem (https://github.com/spree/deface) is perhaps the > easiest method, which will allow you to inject the following into the > page template: > > <% javascript "foreman_example/your_asset" %> > > Add deface ~> 1.0 as a dependency to the plugin, then create a file > under app/overrides/ containing something like: > > Deface::Override.new(:virtual_path => "hosts/_form", > :name => "foreman_example/js", > :insert_before => "erb[loud]:contains(:javascript)", > :text => "<% javascript > "foreman_example/your_asset" %>") > > Untested, but the idea is that will match the <%= javascript %> at the > top of app/views/hosts/_form.html.erb and insert your own line there.
You can also have a look at the forman_expire_hosts plugin as an example. The plugin injects an js asset via deface to the host show page. -- You received this message because you are subscribed to the Google Groups "foreman-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
