Petr, Using the information you provided I was able to get things working in a general sense. I suspect the answer to my next question is going to be "use the source luke..." which is cool but I was hoping documentation might be available which describes adding sections to facets and controlling the order of additional fields. I have added about a dozen and they don't sort the way I'd like them to.
Thanks again for your help last week. Corey On Mar 6, 2015 7:26 AM, "Corey Kovacs" <corey.kov...@gmail.com> wrote: > Sounds great. Just wanted to know if I was going to be reinventing my own > wheel again. > > Thanks again. > > Corey > On Mar 6, 2015 6:58 AM, "Petr Vobornik" <pvobo...@redhat.com> wrote: > >> On 03/06/2015 02:31 PM, Corey Kovacs wrote: >> >>> I almost forgot to ask. Since you don't point it out, I am assuming >>> (yeah I >>> know) the plugin code methods have not changed from 3.3 to 4.1? That is >>> to >>> day I should be able to use the same techniques? >>> >> >> Same techniques should be applicable, there were no major improvements in >> plugin support in 4.1. But Web UI doesn't have any stable API so little >> things could be different. >> >> Basically plugins interact with Web UI's core code which is not >> perfect(easy to break things) but it's powerful and better than nothing. >> >> >>> Thanks again! >>> >>> Corey >>> >>> On Fri, Mar 6, 2015 at 3:51 AM, Petr Vobornik <pvobo...@redhat.com> >>> wrote: >>> >>> On 03/06/2015 03:54 AM, Corey Kovacs wrote: >>>> >>>> After reading the extending freeipa training document I was able >>>>> successfully add us to meet attributes and add/modify them using the >>>>> cli >>>>> which was pretty cool. Now that I got the cli out of the way I want to >>>>> add >>>>> the fields to the ui. Because of the similarities between what I want >>>>> to >>>>> do >>>>> and the example given in the docs I just followed along and changed >>>>> variables where it made sense to do so. I cannot however get the new >>>>> field >>>>> to show up. The Apache logs don't show any errors but they do show the >>>>> plugin being read as the page (user details) is loaded. After searching >>>>> around I found a document which attempts to explain the process but it >>>>> assumes some knowledge held by the reader which I don't possess. >>>>> >>>>> It looks like I supposed to create some sort of index loader which >>>>> loads >>>>> all of the modules which are part of the plugin. I can't seem to find >>>>> any >>>>> good documents telling the whole process or least non that I can make >>>>> sense >>>>> of. >>>>> >>>>> >>>>> Plugin could be just one file, if the plugin name is "myplugin" it >>>> has to >>>> be: >>>> >>>> /usr/share/ipa/ui/js/plugins/myplugin/myplugin.js >>>> >>>> IPA Web UI uses AMD module format: >>>> - https://dojotoolkit.org/documentation/tutorials/1.10/modules/ >>>> - http://requirejs.org/docs/whyamd.html#amd >>>> >>>> I have some example plugins here: >>>> - https://pvoborni.fedorapeople.org/plugins/ >>>> >>>> For your case I would look at: >>>> - https://pvoborni.fedorapeople.org/plugins/employeenumber/ >>>> employeenumber.js >>>> >>>> Web UI basics and introspection: >>>> (this section is little redundant to your question, but it might help >>>> others) >>>> >>>> FreeIPA Web UI is semi declarative. That means that part of the pages >>>> could be thrown away, modified or extended by plugins before the page is >>>> constructed. To do that, one has to modify specification object of >>>> particular module. >>>> >>>> Here, I would assume that you don't have UI sources(before >>>> minification), >>>> so all introspection will be done in running web ui. Otherwise it's >>>> easier >>>> to inspect sources in install/ui/src/freeipa, i.e. checkout ipa-3-3 >>>> branch >>>> from upstream git. >>>> >>>> List of modules could be find(after authentication) in browse developer >>>> tools console in object: >>>> >>>> window.require.cache >>>> or (depends on IPA version) >>>> window.dojo.config.cache >>>> >>>> One can then obtain the module by: >>>> >>>> var user_module = require('freeipa/user') >>>> >>>> specification object is usually in 'entity_spec' or '$enity_name_spec' >>>> property. >>>> >>>> user_module.entity_spec >>>> >>>> UI is internally organized into entities. Entity corresponds to ipalib >>>> object. Entity, e.g. user, usually have multiple pages called facets. To >>>> get a list of facets: >>>> user_module.entity_spec.facets >>>> >>>> The one with fields has usually a name "details". For users it's the >>>> second facet: >>>> var details_facet = user_module.entity_spec.facets[1] >>>> >>>> IF i simplify it a bit, we can say that fields on a page are organized >>>> in >>>> sections: >>>> details_facet.sections >>>> >>>> Section has fields. A field usually represents an editable element on >>>> page, e.g. a textbox with label, validators and other stuff. >>>> >>>> Example of inspection: >>>> >>>> https://pvoborni.fedorapeople.org/images/inspect_ui.png >>>> >>>> Your goal is to pick a section, or create a new one an add a field >>>> there. >>>> To know what to define, just examine a definition of already existing >>>> field >>>> and just amend name, label, ... >>>> >>>> >>>> It would help also to understand how to debug such a thing. >>>> >>>>> >>>>> >>>>> In browser developer tools. There is javascript console (use in the >>>> text >>>> above), javascript debugger, network tab for inspecting loaded files. >>>> >>>> For developing RHEL 7 plugin, I would suggest you to install test >>>> instance >>>> of FreeIPA 3.3 and use "Debugging with source codes" method described >>>> in: >>>> >>>> - https://pvoborni.fedorapeople.org/doc/#!/guide/Debugging >>>> >>>> Some tips: >>>> - if you get a weird dojo loader messegate, you probably have a syntax >>>> error in the plugin or you don't return a plugin object or the plugin >>>> could >>>> not be loaded (bad name) >>>> - it's good to use some JavaScript liner - jsl or jshint to catch syntax >>>> errors early. >>>> >>>> >>>> I running version 3.3 on rhel 7. Any help or pointers to more >>>> >>>>> documentation would be greatly appreciated. >>>>> >>>>> >>>>> -- >>>> Petr Vobornik >>>> >>>> >>> >> >> -- >> Petr Vobornik >> >
-- Manage your subscription for the Freeipa-devel mailing list: https://www.redhat.com/mailman/listinfo/freeipa-devel Contribute to FreeIPA: http://www.freeipa.org/page/Contribute/Code