Public bug reported:

The intent with Horizon has always been that the "horizon" component be
a library/framework of components for dashboards to be built out of, and
the "openstack_dashboard" component be an implementation of that.

For the purposes of succintness, "framework" in the below will refer to
the folder horizon/horizon and "dashboard" will refer to
"horizon/openstack_dashboard". Perhaps one day those could be renamed
also...

Some reorganisation work has been done in bug
https://bugs.launchpad.net/horizon/+bug/1454880 but it has focused on
cleaning up the angularjs usage in our codebase.

During that work, several points were identified as blurring the line
between framework and dashboard in the codebase, and this bug captures
those. NOTE that this bug refers to the codebase *once that refactoring
has been done* and leaf patch https://review.openstack.org/#/c/184597/
has been merged. Patches relating to this bug will all depend on that
patch until it is merged.

Changes needing to be made:

1) the framework should not define the top-level angular app, and thus 
horizon/static/dashboard-app should go away, with parts moving to the dashboard 
and framework as appropriate.
2) the framework should also not define the top-level HTML (base.html) - this 
should be in the dashboard.

Actual steps to perform:

1) horizon/static/dashboard-app/utils should be moved to a new location in the 
framework. There's a large amount of tech debt in this folder which should be 
addressed in subsequent bugs and these files removed.
2) horizon/static/dashboard-app/login is a generic login/auth helper component 
should be moved to the framework.
3) horizon/static/dashboard-app/controllers has several controllers only used 
in the dashboard so should be moved there. The single controller "dummy.js" 
should remain in the framework.
4) horizon/static/dashboard-app/dashboard-app.module.js is the top-level 
angular app and should move to the dashboard.
5) horizon/templates/base.html should move to dashboard and its dependencies 
horizon/templates/horizon/_conf.html and 
horizon/templates/horizon/_scripts.html should move with it. There remains a 
need for a horizon/templates/horizon/_scripts.html in the framework for testing 
purposes, so a new file for that purpose will be placed in the testing area of 
the framework.

On the utils tech debt: the contents of that folder are only used in one
place; the functions defined there should be moved to the modules
they're used in. Those target modules are legacy code which will be
replaced over time by angularjs implementations, so I believe it is
reasonable to do this.

** Affects: horizon
     Importance: Undecided
     Assignee: Richard Jones (r1chardj0n3s)
         Status: In Progress

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Dashboard (Horizon).
https://bugs.launchpad.net/bugs/1458697

Title:
  Horizon/Dashboard source reorganisation

Status in OpenStack Dashboard (Horizon):
  In Progress

Bug description:
  The intent with Horizon has always been that the "horizon" component
  be a library/framework of components for dashboards to be built out
  of, and the "openstack_dashboard" component be an implementation of
  that.

  For the purposes of succintness, "framework" in the below will refer
  to the folder horizon/horizon and "dashboard" will refer to
  "horizon/openstack_dashboard". Perhaps one day those could be renamed
  also...

  Some reorganisation work has been done in bug
  https://bugs.launchpad.net/horizon/+bug/1454880 but it has focused on
  cleaning up the angularjs usage in our codebase.

  During that work, several points were identified as blurring the line
  between framework and dashboard in the codebase, and this bug captures
  those. NOTE that this bug refers to the codebase *once that
  refactoring has been done* and leaf patch
  https://review.openstack.org/#/c/184597/ has been merged. Patches
  relating to this bug will all depend on that patch until it is merged.

  Changes needing to be made:

  1) the framework should not define the top-level angular app, and thus 
horizon/static/dashboard-app should go away, with parts moving to the dashboard 
and framework as appropriate.
  2) the framework should also not define the top-level HTML (base.html) - this 
should be in the dashboard.

  Actual steps to perform:

  1) horizon/static/dashboard-app/utils should be moved to a new location in 
the framework. There's a large amount of tech debt in this folder which should 
be addressed in subsequent bugs and these files removed.
  2) horizon/static/dashboard-app/login is a generic login/auth helper 
component should be moved to the framework.
  3) horizon/static/dashboard-app/controllers has several controllers only used 
in the dashboard so should be moved there. The single controller "dummy.js" 
should remain in the framework.
  4) horizon/static/dashboard-app/dashboard-app.module.js is the top-level 
angular app and should move to the dashboard.
  5) horizon/templates/base.html should move to dashboard and its dependencies 
horizon/templates/horizon/_conf.html and 
horizon/templates/horizon/_scripts.html should move with it. There remains a 
need for a horizon/templates/horizon/_scripts.html in the framework for testing 
purposes, so a new file for that purpose will be placed in the testing area of 
the framework.

  On the utils tech debt: the contents of that folder are only used in
  one place; the functions defined there should be moved to the modules
  they're used in. Those target modules are legacy code which will be
  replaced over time by angularjs implementations, so I believe it is
  reasonable to do this.

To manage notifications about this bug go to:
https://bugs.launchpad.net/horizon/+bug/1458697/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to