Angularize Identity Tables

Registered by Thai Tran on 2014-11-18

Summary:
Angularize Identity tables.

Motivation:
Currently, most of our rendering logic resides on the server. We have discussed at length at the summit that the right direction going forward is to move this to client-side. AngularJS appears to be the first choice primarily because of its structure and MVW framework.

The core idea here is to start with something simple, prove that it works, and then apply it to more complicated scenarios. We will use the Identity dashboard as a starting point. We will focus only on table and table actions

Description:

There are a number of items to tackle in order to make this happen:
1. Remove existing views and rewire them to send only data.
2. Package Angular libraries that we need for table rendering: smart-table, ngTable
3. Rewrite table actions into Angular directives.
4. Move presentation logic to front-end (display_choices, classes, attributes, etc...).

Link to discussion at summit:
https://etherpad.openstack.org/p/kilo-horizon-django-angular-playing-nice
https://www.dropbox.com/s/dyretopq71xdqnm/Django-Angular-Playing-Nice.pdf?dl=0

Interactive tutorial on AngularJS:
http://campus.codeschool.com/courses/shaping-up-with-angular-js/

UX:
The UX will look the same way and will work the same way.

Outside Dependencies:
N/A

Requirements Update Required:
Will depend on the xstatic angular table patch (link here).

Doc Impact:
Will need to show in the docs how user can achieve the steps detailed in Description section.

Blueprint information

Status:
Complete
Approver:
David Lyle
Priority:
High
Drafter:
Thai Tran
Direction:
Approved
Assignee:
Thai Tran
Definition:
Obsolete
Series goal:
None
Implementation:
Needs Code Review
Milestone target:
None
Started by
David Lyle on 2014-12-09
Completed by
Richard Jones on 2016-10-28

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/angularize-identity-tables,n,z

Addressed by: https://review.openstack.org/136676
    WIP new REST API for angular front end
    MERGED

Addressed by: https://review.openstack.org/133767
    Angularize identity users.
    WIP

Addressed by: https://review.openstack.org/136556
    POST instantiation for Django-Angular
    MERGED

Gerrit topic: https://review.openstack.org/#q,topic:bp/133767,n,z

Addressed by: https://review.openstack.org/139284
    Add new angular dependencies to requirements.txt
    MERGED

Gerrit topic: https://review.openstack.org/#q,topic:rest-api-keystone,n,z

Addressed by: https://review.openstack.org/140932
    Angular Modal
    MERGED

Addressed by: https://review.openstack.org/139532
    Keystone REST API for angular front end.
    MERGED

Addressed by: https://review.openstack.org/147366
    Adding Angular IrDragNDrop to requirements.txt
    MERGED

Gerrit topic: https://review.openstack.org/#q,topic:revised-identity-rest,n,z

Addressed by: https://review.openstack.org/150636
    Alter verb usage for keystone REST and add Angular service
    MERGED

Gerrit topic: https://review.openstack.org/#q,topic:merge-hell,n,z

Addressed by: https://review.openstack.org/152814
    add angular-bootstrap to jasmine spec runner page
    MERGED

Addressed by: https://review.openstack.org/161344 -- merged
    Angular Form Password Validation

Addressed by: https://review.openstack.org/165595
    WIP - Angularize Identity Projects

Addressed by: https://review.openstack.org/165638 -- abandoned
    Adding auto-dismiss alert to angular api services

Addressed by: https://review.openstack.org/165757 -- merged
    Global error HTTP handler

Addressed by: https://review.openstack.org/165759
    WIP Removing legacy users table

Addressed by: https://review.openstack.org/165971 -- merged
    Translated count filter for table footer

Addressed by: https://review.openstack.org/166394 -- merged
    Modified hzSelectAll to watch changes in row length

Addressed by: https://review.openstack.org/166411
    Adding styling for disabled and danger action items

Gerrit topic: https://review.openstack.org/#q,topic:bp/filtered-client-side-table,n,z

Addressed by: https://review.openstack.org/151386
    Add Magic Search to users table

Addressed by: https://review.openstack.org/168533
    Updated keystone api for roles and edit

Addressed by: https://review.openstack.org/174640
    WIP Angularize Identity Roles

Gerrit topic: https://review.openstack.org/#q,topic:bug/1438822,n,z

Gerrit topic: https://review.openstack.org/#q,topic:bug/1438822_,n,z

Gerrit topic: https://review.openstack.org/#q,topic:bp/angular-users-demo,n,z

Gerrit topic: https://review.openstack.org/#q,topic:icm_rebased,n,z

Gerrit topic: https://review.openstack.org/#q,topic:demo/angular-users,n,z

Addressed by: https://review.openstack.org/190852
    Adding Angular Identity Dashboard

Addressed by: https://review.openstack.org/190865
    Adding Angular Users Panel

Addressed by: https://review.openstack.org/195297
    Provides a mechanism for adding scss for pluggable dashboards

Addressed by: https://review.openstack.org/196905
    Adding identity ng-users panel

Addressed by: https://review.openstack.org/197373
    Adding identity users table

Gerrit topic: https://review.openstack.org/#q,topic:make-identity-customizable,n,z

Addressed by: https://review.openstack.org/200718
    Identity dashboard's style should be customizable

Addressed by: https://review.openstack.org/202330
    WIP Add wizard modal service

Addressed by: https://review.openstack.org/202328
    WIP Adding wizard modal service

Addressed by: https://review.openstack.org/205716
    Adding wizard modal service

Gerrit topic: https://review.openstack.org/#q,topic:identity/users/create,n,z

Addressed by: https://review.openstack.org/202315
    WIP Adding CREATE action to identity users panel

Addressed by: https://review.openstack.org/207631
    WIP Add Angular Table Footer Directive

Addressed by: https://review.openstack.org/210050
    Angular Users Panel - REST API update to update password

Addressed by: https://review.openstack.org/217903
    Fix Users table to use hz-table-footer directive

Gerrit topic: https://review.openstack.org/#q,topic:bug/users-table-html,n,z

Addressed by: https://review.openstack.org/217879
    Update Users Table to single HTML

Addressed by: https://review.openstack.org/217968
    Make NG Users table details drawer responsive

Addressed by: https://review.openstack.org/219822
    WIP Angular tables get page size from horizon settings

Addressed by: https://review.openstack.org/221804
    Adding tests for ng identity basePath constant

Addressed by: https://review.openstack.org/222297
    WIP Adding CREATE action to identity users panel

Addressed by: https://review.openstack.org/222825
    Adding Identity ng-roles panel

Gerrit topic: https://review.openstack.org/#q,topic:bp/angularize-identity-tables-patch14,n,z

Addressed by: https://review.openstack.org/252014
    WIP Angular Table Header Directive

Gerrit topic: https://review.openstack.org/#q,topic:angularTableDirectiveDemo,n,z

Addressed by: https://review.openstack.org/336329
    Update Angular Users Table use registry

Addressed by: https://review.openstack.org/336394
    Add Angular keytone user details use registry

Addressed by: https://review.openstack.org/202265
    Magic Search in Angular Users table

Addressed by: https://review.openstack.org/341396
    Adding identity ng-groups panel

Addressed by: https://review.openstack.org/341943
    Enable angular panels

Addressed by: https://review.openstack.org/341944
    user-create

Addressed by: https://review.openstack.org/341945
    Add Angular keytone user creation action

Addressed by: https://review.openstack.org/342170
    Add Angular keytone user creation action

Gerrit topic: https://review.openstack.org/#q,topic:bp-angularize-identity-tables,n,z

Addressed by: https://review.openstack.org/344572
    Add Angular keytone role creation action

Addressed by: https://review.openstack.org/345134
    Add Angular keytone role creation action

Addressed by: https://review.openstack.org/366349
    WIP Add Angular keystone role edit action

Addressed by: https://review.openstack.org/367705
    Add Keystone Groups to REST API

Addressed by: https://review.openstack.org/370336
    Add Keystone Group to REST API

Addressed by: https://review.openstack.org/370337
    Add Keystone Group to REST API (create, edit, delete)

Addressed by: https://review.openstack.org/370347
    Add Keystone Group to REST API (create, edit, delete)

Addressed by: https://review.openstack.org/387771
    Adding identity domains table

Addressed by: https://review.openstack.org/397080
    Add create domain action in angular domain panel

Addressed by: https://review.openstack.org/397132
    hzResourceProperty can handle 'priority' attribute

Addressed by: https://review.openstack.org/397539
    Add delete domain action in angular domain panel

Addressed by: https://review.openstack.org/398780
    [WIP]Add Edit domain action in angular

Gerrit topic: https://review.openstack.org/#q,topic:bp/ng-domains,n,z

Gerrit topic: https://review.openstack.org/#q,topic:bp/ng-users,n,z

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.