Commit Graph

43 Commits

Author SHA1 Message Date
Petr Vobornik
2e9e5792bc webui: adjust styles to PatternFly
side effect partially fixes:
https://fedorahosted.org/freeipa/ticket/3435

Reviewed-By: Endi Sukma Dewata <edewata@redhat.com>
2014-06-10 10:23:24 +02:00
Petr Vobornik
0d05a50e19 webui: field and widget binding refactoring
This is a Web UI wide change. Fields and Widgets binding was refactored
to enable proper two-way binding between them. This should allow to have
one source of truth (field) for multiple consumers - widgets or something
else. One of the goal is to have fields and widget implementations
independent on each other. So that one could use a widget without field
or use one field for multiple widgets, etc..

Basically a fields logic was split into separate components:
- adapters
- parsers & formatters
- binder

Adapters
- extract data from data source (FreeIPA RPC command result)
- prepares them for commands.

Parsers
- parse extracted data to format expected by field
- parse widget value to format expected by field

Formatters
- format field value to format suitable for widgets
- format field value to format suitable for adapter

Binder
- is a communication bridge between field and widget
- listens to field's and widget's events and call appropriate methods

Some side benefits:
- better validation reporting in multivalued widget

Reviewed-By: Adam Misnyovszki <amisnyov@redhat.com>
2014-04-03 12:40:37 +02:00
Petr Vobornik
06a7a1b3cb webui: replace IPA.command usage with rpc.command
Replace all IPA.command, IPA.batch_command and IPA.concurrent_command usages
by equivalents from rpc module.

Reviewed-By: Adam Misnyovszki <amisnyov@redhat.com>
2014-03-27 14:54:08 +01:00
Petr Vobornik
7fc8d241b2 webui: rename domNode to dom_node
- unites domNode and dom_node usage to dom_node

Reviewed-By: Adam Misnyovszki <amisnyov@redhat.com>
2014-03-26 09:01:05 +01:00
Petr Vobornik
80324fcb23 webui: fix unit tests
UI unit tests were broken since main RCUE work. This patch fixes them
all except aci, which will be fixed along with update of aci UI.

Reviewed-By: Adam Misnyovszki <amisnyov@redhat.com>
Reviewed-By: Petr Viktorin <pviktori@redhat.com>
2014-03-20 10:02:31 +01:00
Petr Vobornik
89be148580 Web UI: move ./_base/metadata_provider.js to ./metadata.js
Metadata provider is IPA specific object, not a framework object, so it should not be in _base directory.

https://fedorahosted.org/freeipa/ticket/3604
2013-05-17 12:32:24 +02:00
Petr Vobornik
6e90920233 Move spec modifications from facet factories to pre_ops
Spec modifications in factories makes inheritance and extensibility more difficult.

Moving them to pre_ops allows modification of their output by other pre_ops.

https://fedorahosted.org/freeipa/ticket/3605
2013-05-17 12:32:06 +02:00
Petr Vobornik
a069841ff0 Replace ./facets with reg.facet
https://fedorahosted.org/freeipa/ticket/3235
2013-05-06 16:22:29 +02:00
Petr Vobornik
5be709bf9d Builder and registry for actions
https://fedorahosted.org/freeipa/ticket/3235
2013-05-06 16:22:27 +02:00
Petr Vobornik
e100ba7e2b Replace build logic in widget and field builder by new builder
https://fedorahosted.org/freeipa/ticket/3235
2013-05-06 16:22:26 +02:00
Petr Vobornik
49b7f4c06e Replace IPA.widget_factories and IPA_field_factories with registry
https://fedorahosted.org/freeipa/ticket/3235
2013-05-06 16:22:26 +02:00
Petr Vobornik
ffeafa6ec2 Replace IPA.facet_builder with facets.builder
https://fedorahosted.org/freeipa/ticket/3235
2013-05-06 16:22:25 +02:00
Petr Vobornik
953f599415 Fix unit tests
https://fedorahosted.org/freeipa/ticket/3236
2013-05-06 16:22:19 +02:00
Petr Vobornik
5d919c9556 Change tests to use AMD loader
Test were modified accordingly to AMD changes.

https://fedorahosted.org/freeipa/ticket/112
2013-01-18 15:10:37 +01:00
Petr Vobornik
78e93c11f6 Parsing of IPv4 and IPv6 addresses
Added support of parsing and validation of IPv4 and IPv6 addresses.
Class IP.address can also create reverse address from any valid IPv4 or IPv6 address.

This functionality is needed for tickets:
https://fedorahosted.org/freeipa/ticket/1466
https://fedorahosted.org/freeipa/ticket/1975
2011-12-21 13:13:06 -06:00
Endi Sukma Dewata
caa9d52666 Refactored facet.load().
The load() in IPA.facet has been modified to accept the complete
data returned by the server instead of just the result. This is
needed by HBAC Test to access other attributes returned in the
test result.

Ticket #388
2011-12-06 22:08:07 +00:00
Endi Sukma Dewata
a8ea42bda8 Fixed entity metadata resolution.
The current code assumes that an entity will always have a corresponding
LDAPObject on the server, so it looks for the metadata in a fixed location.
This assumption doesn't work for HBAC Test since it is a Command, not an
LDAPObject, so the metadata has to be obtained from a different location.
A new method get_default_metadata() has been added to allow each entity
to find the metadata from the correct location.

Ticket #388
2011-12-06 22:07:52 +00:00
Petr Vobornik
c5ca34f41d Fixed unit tests after widget refactoring
https://fedorahosted.org/freeipa/ticket/2040
2011-12-05 16:02:01 +00:00
Petr Vobornik
e021542120 Removing sections as special type of object
Sections are changed into pure widget objects. Introduced IPA.composite_widget, basic widget for widget nesting (it's using IPA.widget_container). It's base class for section widgets.

TODO: change old custom sections into custom fields and widgets.

Note: usage of section in HBAC and SUDO is kept - whole logic will be removed in #1515 patch.

https://fedorahosted.org/freeipa/ticket/2040
2011-12-05 16:00:50 +00:00
Petr Vobornik
4bab6b7e5d Splitting basic widgets into visual widgets and fields
https://fedorahosted.org/freeipa/ticket/2040
2011-12-05 16:00:32 +00:00
Endi Sukma Dewata
e84bd27af2 Fixed entity definition in test cases.
The test cases have been updated to use the new extensible mechanism
for defining and registering entities.

Ticket #2043
2011-11-18 15:57:00 +00:00
Endi S. Dewata
20ad8fe1ba Removed develop.js.
The develop.js is no longer necessary because the code in it has
been merged into the main code.

An empty extension.js has been added to provide a place for UI
customization.

Ticket #2099
2011-11-14 16:47:10 -05:00
Endi S. Dewata
26ded75be9 Fixed layout problem in permission adder dialog.
In order to maintain consistent layout between details page and dialog
boxes the IPA.details_list_section has been replaced with
IPA.details_table_section which is based on table.

The IPA.target_section and other subclasses of IPA.details_list_section
have been converted to use IPA.details_table_section as well.

The unit tests have been updated accordingly.

Ticket #1648
2011-09-09 19:47:05 +00:00
Adam Young
b36df6e9b9 removing setters setup and init
change widget and widget unit tests to hold on to entity, not entity name.
    Replacing entity_name with entity.name  in most places.
       The one exception is columns for table_widget.
       Widgets that refer to other entities have to have late resolution of the entity object, due to circular dependencies.

    cleanup entity assignment.
    removed template and layout,
    merged setup into create
    adder dialogs adjust height for external
    removed init from widget, isection, association, facet, host and service

    Make unit tests use factory.
    fix functional tests to click find link correctly.
    tweak to activation test, but still broken.
    moved initialization code to the end
    use --all for hbacrule find, so the type shows up now

    fixed dns exception code and exception handling for get_entity
    replace metadata look up with value from entity.
    fixed author lines
    removed duplicate columns in managed by facets.
    tweak to nav fix in order to initialize tab.
    more defensive code
    update metadata for true false
    one line init for entity_name in widget
    move init code to end of constructor functions
    moved constants to start of function for adder_dialog
    external fields for dialogs initialized at dialog creation
    sudo sections: move add fields and columns to widget definition.

   The parameter validation in IPA.column ...This is precondition checking.  Note that it merely throws an exception if the entity_name is not set.  I want this stuff at the top of the function so that it is obvious to people looking to use them what is required.  I added a comment to make this clear, but I'd like to keep precondition checking at the top of the function.

   decreased the scope of the pkey_name and moved the initiailzation fof columns into the setup_column function for association_tables

   return false at the end of click handler

   removed blank labels in sudo command section

   fix radio buttons for sudo category

   fixed table side for adder dialogs with external fields
    comments for future direction with add_columns

    https://fedorahosted.org/freeipa/ticket/1451
    https://fedorahosted.org/freeipa/ticket/1462
    https://fedorahosted.org/freeipa/ticket/1493
    https://fedorahosted.org/freeipa/ticket/1497
    https://fedorahosted.org/freeipa/ticket/1532
    https://fedorahosted.org/freeipa/ticket/1534
2011-07-28 14:17:25 -04:00
Endi S. Dewata
571274e978 Entity select widget improvements
The IPA.entity_select_widget has been modified into a searchable and
editable drop down list. The base functionality has been extracted
into IPA.combobox_widget.

Ticket #1361
2011-07-18 14:47:57 -04:00
Adam Young
30492ef3fa clear errors on reset
https://fedorahosted.org/freeipa/ticket/1446
2011-07-08 17:34:55 +00:00
Adam Young
66eeaceb8c shorten url cache state in a javascript variable, and leave on information about the current entity in the URL hash params
https://fedorahosted.org/freeipa/ticket/674

decrement depth for hidden tabs.

Initialize state from url
useing delete for removing state
stricter attribute matching
not incrementing depth for all hidden tabs.
whitespace cleanup
2011-06-28 22:40:42 +00:00
Endi S. Dewata
6304d9173c Fixed problem deleting value in text field.
Previously deleting a value in a text field did not work because
the field is not included in the modify operation when the value
is empty. The details facet's update() method has been modified
to update only dirty fields.

The section lists in details facet and dialog have been converted
into ordered maps.

Ticket #1256
2011-05-27 21:38:26 -04:00
Endi S. Dewata
006959ff85 Fixed details tests. 2011-05-23 19:50:52 +00:00
Adam Young
0330339003 create entities on demand.
fixed changes from code review

Fixed unit tests for entity on demand changes.
2011-05-23 13:31:23 -04:00
Endi S. Dewata
46137fdf89 jQuery ordered map.
The ordered map is a jQuery extension for creating a collection which can
be accessed both as an ordered list and as a map. This collection can be
used to store various objects including entities, fields, columns, and
dialogs. A test suite for this class has been added as well.

Ticket #1232
2011-05-20 12:11:47 -04:00
Endi S. Dewata
a4aba826a0 Added facet container.
Facet container has been added to hold facet header (i.e. title,
search fields, buttons, links) and facet content. Each facet now
occupies separate container, so it can be shown/hidden without
having to redraw the content.
2011-05-05 14:57:45 -05:00
Adam Young
1b12a28278 action panel to top tabs
replacing the action panel with the Design for 2.1
Significantly cleaned up implementation of intra-entity navigation
requires additional CSS work
still need to integrate the search controls onto each page
cleaning up interface between entity and facet
simplified nested tabs logic

Fixed role navigation
select default tab from the search widget
fixed unit tests and jsl
keep tabs area allocated

set default tab selected whenever the pkey changes.

Removing styling that is changing positions of buttons.  The logic for that was for action-panel, but does not translate to entity-header.

change from metadata name to label for I18N

set selected tab in entity_init.

Default title for entities without search and pkeys

associations in table now link.

remove colon from title when not showing pkey

added Managed by facet group.

Removed entities that are, for some reason, invalid.
2011-04-26 16:49:23 -04:00
Endi S. Dewata
805b94f22d Merged IPA.cmd() into IPA.command().
The IPA.cmd() has been merged into IPA.command(). All invocations
and test cases have been converted.

Ticket #988
2011-04-13 23:27:50 -04:00
Endi S. Dewata
f0f83a862e Refactored action panel and client area.
To improve code readability and extensibility the containers for action
panel and client area are now created in IPA.entity.setup(). The 'client area'
has been renamed into 'content'. The IPA.facet.create() has been renamed to
IPA.facet.create_content().
2011-04-11 16:03:30 +00:00
Adam Young
6948c0813d code review fixes
this version includes using spec for detail_facets
2011-03-31 17:29:33 -04:00
Adam Young
4270e26adb define entities using builder and more declarative syntax
merged hbac and sudo in to single files

associaton facet and table supports linking
2011-03-31 17:29:33 -04:00
Endi S. Dewata
4ee6882e9f Removed unused code. 2011-02-07 11:31:21 -05:00
Endi S. Dewata
348d734c59 Restructuring details page.
Previously the IPA.details_list_section can only be used with widgets
that generates <dd> tag because it uses the following structure:

<dl>
  <dt>Telephone Number:</dt>
  <span name="teleponenumber">
    <dd>111-1111</dd>
    <dd>222-2222</dd>
  </span>
</dl>

The <dd> tag was previously used to handle multi-valued attributes.
Since multi-valued attributes are now handled by the recently added
IPA.multivalued_text_widget, the structure can be changed as follows:

<dl>
  <dt>Telephone Number:</dt>
  <dd>
    <span name="telephonenumber">
      <div>111-1111</div>
      <div>222-2222</div>
    </span>
  </dd>
</dl>

This allows IPA.details_list_section to be used with any widgets
without requiring the <dd> tag.
2011-02-07 11:31:17 -05:00
Endi S. Dewata
bd493d47a7 Added multi-valued text widget.
A multi-valued text widget has been created to replace the old
IPA.details_field. The old code was designed to handle all data
types, and it uses one <dd> tag for each value, so the code is
still incomplete and complex. The new code was designed to handle
only multi-valued text attributes, and it uses one <dd> tag for
all values, so it's easier to maintain. There are already other
widgets that can be used to handle other data types.

The new code supports line-level undo and line-out for removal
like the old code, but there are some changes:
 - Undoing a newly added line will remove the entire line.
 - Editing the value of a removed line will cancel the removal.
 - It provides 'undo all' link to reset the entire attribute.

The old code will be cleaned up in a subsequent patch.
2011-02-03 20:09:15 -05:00
Adam Young
c3e0658790 declarative for aci
A couple of the ACI definitions were incorrect, and the end result was that fields were not getting initialized.  USing the declarative approach cleaned up the cause.

Also fixed a few broken unit tests
2011-01-27 16:49:11 -05:00
Adam Young
f904df0f0d declarative defintions
Delay the creation of entities until after ipa init is called
made the user and group entity definitions declarative
removed unused facet from groups
adjusted unit tests

made review changes:

factories are now in an associative array
entity init called right after factory
init dialogs in entity init
fixed type on search
2011-01-27 16:46:44 -05:00
Adam Young
b9ad279ad2 rename static to ui
Directory rename
2011-01-20 14:12:47 +00:00