Coder Social home page Coder Social logo

manageiq-ui-service's Introduction

ManageIQ Service UI

CI Coverage Status Code Climate

Chat

Build history for master branch

The Service UI (SUI), previously Self Service UI (SSUI), for the ManageIQ project.

Documentation

License

See LICENSE.txt

Export Notice

By downloading ManageIQ software, you acknowledge that you understand all of the following: ManageIQ software and technical information may be subject to the U.S. Export Administration Regulations (the "EAR") and other U.S. and foreign laws and may not be exported, re-exported or transferred (a) to any country listed in Country Group E:1 in Supplement No. 1 to part 740 of the EAR (currently, Cuba, Iran, North Korea, Sudan & Syria); (b) to any prohibited destination or to any end user who has been prohibited from participating in U.S. export transactions by any federal agency of the U.S. government; or (c) for use in connection with the design, development or production of nuclear, chemical or biological weapons, or rocket systems, space launch vehicles, or sounding rockets, or unmanned air vehicle systems. You may not download ManageIQ software or technical information if you are located in one of these countries or otherwise subject to these restrictions. You may not provide ManageIQ software or technical information to individuals or entities located in one of these countries or otherwise subject to these restrictions. You are also responsible for compliance with foreign law requirements applicable to the import, export and use of ManageIQ software and technical information.

manageiq-ui-service's People

Contributors

agrare avatar allenbw avatar aparnakarve avatar bdunne avatar chalettu avatar chessbyte avatar chriskacerguis avatar d-m-u avatar davidresende0 avatar dependabot[bot] avatar dgutride avatar dtaylor113 avatar eclarizio avatar fryguy avatar greenkeeper[bot] avatar h-kataria avatar himdel avatar jeff-phillips-18 avatar jeffibm avatar jjlangholtz avatar jprause avatar kavyanekkalapu avatar martinpovolny avatar melshyrule avatar mzazrivec avatar romanblanco avatar skateman avatar sonejah21 avatar stackus avatar zitanemeckova avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

manageiq-ui-service's Issues

Docker build still fails on Darga

The error I'm getting is the same error as reported on issue #85 , which was closed after the merge of #86.

bower ECMDERR Failed to execute "gulp wiredep", exit code of #8 /opt/manageiq/manageiq-ui-self_service/node_modules/eslint/node_modules/strip-bom/index.js:2 module.exports = x => { ^ SyntaxError: Unexpected token > at Module._compile (module.js:439:25) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17) at require (module.js:380:17) at Object. (/opt/manageiq/manageiq-ui-self_service/node_modules/eslint/lib/config/config-file.js:23:16) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32)

Additional error details:
/opt/manageiq/manageiq-ui-self_service/node_modules/eslint/node_modules/strip-bom/index.js:2
module.exports = x => {
^
SyntaxError: Unexpected token >
at Module._compile (module.js:439:25)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object. (/opt/manageiq/manageiq-ui-self_service/node_modules/eslint/lib/config/config-file.js:23:16)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)

I have check in the ssui pulled into the container and the fix is in (package.jason "plato": "^1.4.0"),
but it still fails.

Migrate from jshint to eslint

This single issue will encompass all work included in the migration.
Reasons for this change:

  1. JSHint team has joined with ESLint
  2. Customizability
  3. Plugin support (principally https://github.com/Gillespie59/eslint-plugin-angular)
  4. ENV support (amd, jquery, es6)

The sum of tasks to be completed in the fulfillment of this issue (each task encompasses at least one pr, we're going to go slow on this effort, as to avoid any unnecessary messes):

  • Add eslint rules and dependencies (extending present state)
  • Separate specs from codebase
  • Apply eslint changes by rule type across app, a pr for each (large changes) or a few (many small changes) will be made
  • Add eslint task to gulp & travis
  • Remove totality of jshint remnants

@chriskacerguis feed me (assign) this one, really excited to introduce the ✋ of :goberserk: into our codebase

Address npm dependency issues found in darga branch

bitHound discovered:

  • 4 packages with at least one security vulnerability.
  • 5 deprecated packages.
  • 31 outdated packages.

For details go to bitHound.


These insecure Dev packages found by Bithound might need to be updated for a product release. Also, there are 31 outdated packages that will only get more outdated.

-- Mike Thompson

Broken list sorting

I was trying to sort items in list alphabetically and noticed that sorting is not switchnig between two states (A-Z, Z-A), but sometimes in 3, sometimes in 4 different states.


Screenshots from one screen after repeated switching of sorting:

screencapture-localhost-3001-self_service-marketplace-1456326228904
screencapture-localhost-3001-self_service-marketplace-1456326215203
screencapture-localhost-3001-self_service-marketplace-1456326220651
screencapture-localhost-3001-self_service-marketplace-1456326204445

Need hotfix override system

Need to create a "hotfix" system, were we can drop in JS files to override existing ones in the case of a hotfix. Thoughts on the best way to do that? This may push us to using NodeJS to serve the otherwise this would need to be done via Rails/Ruby side of things. Also, we need to not load everything into one file (i.e. no rails asset).

Thinking something like...

by default it would load

/app/stock_js/file1.js

But, if the file /app/hotfix/file1.js exists, it would load that one and NOT the /app/stock_js/file1.js

Thought on how to do that @AllenBW or @chalettu ?

/cc @dclarizio @chessbyte

"F Release" Plans / Tasking

Creating a stub ticket of the things we want to get done for the F release.

Overall Goals

  • Rework the UX for the Service Designer for the latest requirements (coming soon)
  • Update the API for the new SD changes
  • Reevaluate the backend for the SD to accomindate the new API / UX changes
  • Evaluate the way we store a "published" blueprint (can we use a common or standard format)
  • Various UX cleanup tasks @serenamarie125
  • Get Parity Match with Ops UI #145
  • Rework Shopping Cart Experience #239
  • Increase unit test coverage to 100%
  • Setup UI testing, to cover 50% of application

Tasks (Sprint 51)

Tasks (Sprint 52)

Tasks (Sprint 53)

Tasks (Sprint 54)

Tasks (Sprint 55)

Migrate bower + npm to only npm for dependency management

No reason to have both of these dependency managers around, especially given #245 we stand to gain much from using npm.

This task is broken up into two parts:

  • Transfer bower dependencies to package.json
  • Ensure necessary dependencies are injected into dependency partials (gulp task)

Investigate Gulp Task Pause

As referenced in #216, this issue is to investigate and ameliorate the "pause" that occurs at the end of the following gulp tasks (possibly others):

  • gulp test

The "pause" is a break in time between the reporting completion of a task ie [11:32:07] Finished 'test' after 7.67 s and the freeing up of the console for additional input..

Curiously, gulp testonly does not yield the same pause as test.

@chriskacerguis

Need an API to get Compute, Network & Storage items for a provisioned service

Currently, the Self Service UI is showing just the VMs, so there is an API which is returning that information. We need APIs to get the information for compute resources, network resources and storage resources.

The above is needed to satisfy the following use case: When I deploy a service, under My Services I would like my services to break down the items deployed into Compute, Network, Storage.

Children services are not displayed in "My services"

Description of problem:
I have nested services: a parent service has children services. Only the top level services are visible in "My Services". When connected to the classic UI, the children services are correctly displayed. Nested services is really useful to create a service hierarchy and allow large scale retirement.

Version-Release number of selected component (if applicable): commit #8665aeb5d34a8de08ad17377d9eb188a5ddac5f0

How reproducible: Always

Steps to Reproduce:
Create nested services. A nested service has a parent_service.

Actual results:
In the classic UI, go in "My Services". All services are displayed as a tree.
In the Self Service UI, go in "My Services". Only the highest level service is displayed.

Expected results:
In both UIs, all services are displayed. The tree widget may not fit the layout of SSUI.

Missing Translations

screen shot 2016-09-01 at 12 31 15 pm

My Orders tab, as you can see is not translated when it should be. Element has translate tab, its just the phrase is absent from the /client/gettext folder

Another offender is Switch Language:, again tagged correctly, but not phrase in other languages available in /gettext

screen shot 2016-09-01 at 12 29 28 pm

The phrase Browser Default should probably also be translated.

screen shot 2016-09-01 at 1 23 36 pm

Requester is missing

screen shot 2016-09-01 at 1 27 47 pm

As is Order Id and Order Date

screen shot 2016-09-01 at 1 29 10 pm

The whole of the shopping cart is missing translation for the following languages:

  • DE-de
  • fr
  • ja
  • ru
  • sk
  • zh-CN
  • zh-Hans-CN

screen shot 2016-09-01 at 4 15 10 pm

Now there IS one translation issue I can't quite track down, it might be https://github.com/patternfly/angular-patternfly but it also might be the SSUI. From the SS below, Results is the offender. First fix I would try would be the same as above (as it too is absent from /gettext).

screen shot 2016-09-01 at 1 44 10 pm

Clean up "F grade" issues in Code Climate

Let's try to clean up the files that have an "F grade" (in CodeClimate):

https://codeclimate.com/github/ManageIQ/manageiq-ui-self_service/code?q=rating%3AF

  • client/app/components/blueprint-details-modal/blueprint-details-modal-service.factory.js
  • client/app/components/flowchart/flowchart_viewmodel.js
  • client/app/config/navigation.config.js
  • client/app/services/designer-state.service.js
  • client/app/states/administration/profiles/editor/editor.state.js
  • client/app/states/administration/profiles/profiles.state.js
  • client/app/states/designer/blueprints/list/list.state.js
  • client/app/states/marketplace/list/list.state.js
  • client/app/states/requests/list/list.state.js
  • client/app/states/services/list/list.state.js

Browsersync is not respecting other ports

Noticed a strange thing when I was running two different forks of ManageIQ SSUI:

Forks were in separated folders, running in different ports and in different browser, but I was always able to view only the one running on default port 3001.

Problem is probably caused by Browsersync, that keeps connecting to the same port
(probably somewhere here: gulp/tasks/serve.js)

@himdel

Don't rely on /pictures, use image_href from the API

Right now, for pictures, SSUI just assumes that /pictures/* will work.

We should instead use the API to get the right url .. /api/pictures/10000000000010?attributes=image_href returns an image_href which is a full path to that image.

Rework Shopping Cart Experience

Gathering together requirements on this

  • Service Catalog view needs to have selection state shown when ordering a card
  • Add some type of progress indicator (there is no indicator that something is happening)
  • Add confirmation dialogs to clear and delete actions from the Cart
  • Reword some of the labels and messages associated with Ordering and the Cart
  • Add My Orders to navigation

Navbar-right causing unexpected behavior

When browser viewport dips below a width of 768px navbar-collaps kicks in and buries user controls and cart (see below)
screen shot 2016-09-02 at 8 24 53 am

I am unaware of what the SSUI posture on mobile is, if we want to support smaller than the above mentioned widths or if we want to say "None shall pass! (go smaller)". Regardless disappearing functionality, unexpected behavior is always jarring and undesired.

Would ❤️ additional input on a remediation strategy!

Modals not closing on state transition

Opening a modal and waiting for the authentication token to expire eventually leads to a login screen with the modal still on top of that.

I want to patch $modal to be aware of ui-router state transitions and just cancel whenever one happens.

@miq-bot assign himdel

Move resources loading from index.html

The client/index.html file includes every JS file and every package we use in SSUI, and everytime some adds a new JS file or package, it quite often causes conflicts in others PR that are also doing some adding of new resources.

It would be nice to have loading of these resources separated from the index.html file, to not force other contributors to rebase their PRs everytime someone adds something new to index.html.
I'm not sure what would be the best way to do so though.

If somebody has any idea for this, I can try to do the work once I have nothing more with high priority.

@himdel

Required fields not honored when ordering a service

Go to the service catalog, choose a service to order that has a dialog attached to it with required fields. Ensure the required field(s) are not filled out, and observe that the service is still submitted "successfully".

Restore all relevant eslint policies

So we rolled back from node 6 to node 0.10 and a number of eslint policies had to be disabled (because they didn't existing in the older version of eslint). This is an issue designed to restore those rules and include any fixing required for gulp eslint to pass.

@miq-bot add_label 'technical debt'

How to skin the application is not clear

Previously, if someone dropped files into the skin directory, those files would be used for images and text. Now, I believe the place is assets (even though I search the code and I still see skin)? I'm a little confused what is the right way to skin the application.

So this is a request for some documentation in the README on how to skin the application, and perhaps a set of tests that validate that if a file is placed in a particular place, then it is actually used (and thus the test serves as an example as well)

ECMDERR Failed to execute "gulp wiredep"

Running gulp wiredep (or tasks which use it), causes

bower ECMDERR Failed to execute "gulp wiredep", exit code of #8 /home/centos/vaneq/manageiq-ui-self_service/node_modules/eslint/node_modules/strip-bom/index.js:2 module.exports = x => { ^ SyntaxError: Unexpected token > at Module.compile (module.js:439:25) at Object.Module.extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module.load (module.js:312:12) at Module.require (module.js:364:17) at require (module.js:380:17) at Object. (/home/centos/vaneq/manageiq-ui-selfservice/node_modules/eslint/lib/config/config-file.js:23:16) at Module.compile (module.js:456:26) at Object.Module.extensions..js (module.js:474:10) at Module.load (module.js:356:32)

Additional error details:
/home/centos/vaneq/manageiq-ui-self_service/node_modules/eslint/node_modules/strip-bom/index.js:2
module.exports = x => {
^
SyntaxError: Unexpected token >
at Module._compile (module.js:439:25)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object. (/home/centos/vaneq/manageiq-ui-self_service/node_modules/eslint/lib/config/config-file.js:23:16)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)

Related eslint issue: eslint/eslint#6607.

This is caused by strip-bom starting to use ES6 arrow functions, supported only in node 4+ (4 is a but uncertain..).

Tag Control fields not working in SSUI

When creating service dialogs with tag control fields, they do not display in the SSUI when ordering the service. Instead the field is blank. In the screenshots, the "Test" field is a tag control. The first one shows the classic UI, the second shows the SSUI.

manageiq_classicui_tag_control

manageiq_ssui_tag_control

Update Production Build Process to rely soley on ejs

index.html presently relies on wiredep for dependency injection when building for production. This action should be assumed, as it is in dev, by ejs or in this case we would use gulp-ejs but not before all other dependencies are updated (to ensure seamless functionality)

CodeClimate issues that should not block PR merge

CodeClimate sometimes reports duplicates that are valid, but that make little sense fixing in the PR they're reported in.

Example:

Another example:
#201 - current failures

Gitter discussion:
☝️ September 30, 2016 2:53 PM

We may either ignore them when needed (but possibly leads to code rot), disable the similar code rule (but possibly skips valid warnings), or...

This issue should be a discussion on how to handle that...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.