Git Product home page Git Product logo

ui-components's Introduction

Angular UI Components for ManageIQ

CI Coverage Status Chat

score dependencies bitHound Dev Dependencies Known Vulnerabilities

Purpose

The purpose of this repository is to provide reusable components for the ManageIQ project. These are not general purpose components, but specific to ManageIQ, however, reusable across all of ManageIQ (providers). The intention is to provide components that are reusable in various ways. Many of these components are 'Smart Components' that know how to communicate to backend endpoints(data-driven by provider) and retrieve relevant data for the component's configuration.

As we achieve greater reuse, the idea is to move more and more components to this repository. Creating a repository for smart reusable components (specific to a domain) across providers.

Architectural Goals

  • Separate git repository from ManageIQ
  • Components communicate via REST with ManageIQ API
  • Maintain routing inside ManageIQ (routes.rb)

Technologies

  • Angular 1.5+ (soon to be Angular 2.x)
  • Typescript
  • Webpack
  • Yarn

Architecture

ManageIQ UI Components Architecture

Angular 1.5 Components

We are recommending Angular 1.5 Components instead of Angular Directives for better compatibility and easier upgrade to Angular 2.0.

For a great overview of using Angular 1.5.x Components please see: NG-Conf 2016: Components, Components, Components!...and Angular 1.5 - Pete Bacon Darwin

Development Environment

You need to have installed Node.js >= 14 and npm >= 6 on your system. It is recommended to use a node version manager such as n. If you have node installed then it is just yarn global add n and then n lts to use the latest LTS version of node (see the docs for switching versions).

Install these node packages globally in the system

npm install -g yarn
yarn global add webpack wiredep-cli typescript typescript-formatter

After yarn is installed, it is pretty much a replacement for npm, with faster, more dependable builds but still utilizing the npm packages.

See comparison: npm vs. yarn commands

Install local node dependencies

yarn

Create library dependencies (run this every time you make any changes to vendor.ts) - no need to worry about any TS errors. Also, if you are pushing some changes please run this command so you will push minifed version of JS and CSS.

yarn run build

To run:

yarn start

To run tests:

yarn
yarn run build-dev
yarn run test

Before submitting code, run the following command to format the code according to the tslint rules:

tsmft -r

This formats the code according to the tslint rules.

Documentation

If you want to see documentation for each component, controller, filter, etc. run

yarn run-script build-docs

This will generate docs from JS docs and after running yarn start this documentation will be available on localhost:4000/docs

If you want to release ui-components look at documentation in Wiki of this repository.

ManageIQ version mapping

1.6 - master, radjabov 1.5 - petrosian, quinteros 1.4 - kasparov, lasker, morphy, najdorf, oparin 1.3 - jansa 1.2 - ivanchuk 1.1 - hammer 1.0 - gaprindashvili

ui-components's People

Contributors

agrare avatar bdunne avatar chalettu avatar chessbyte avatar chriskacerguis avatar d-m-u avatar davidresende0 avatar dependabot[bot] avatar dgutride avatar eclarizio avatar epwinchell avatar fryguy avatar h-kataria avatar himdel avatar hyperkid123 avatar jeffibm avatar jrafanie avatar karelhala avatar kavyanekkalapu avatar kbrock avatar martinpovolny avatar mend-bolt-for-github[bot] avatar mtho11 avatar mzazrivec avatar nicklamuro avatar noopurag avatar petervo avatar romanblanco avatar skateman avatar zitanemeckova avatar

Stargazers

 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

ui-components's Issues

bower-dev builds not working

Continuing from @himdel's comment: #83 (comment)

So.. I've updated the script to output $? after commit and push, just to verify the push isn't succeeding somewhere.. but I'm pretty much stumped. As in, can't continue without seeing the actual error message from git push.. @Fryguy I think you'll have to look into this, sorry :).

The script works, both on travis and locally, if I run the same with --dry-run and my credentials, the push pretends to succeed, so .. possibly a wrong GITHUB_AUTH value, or wrong syntax, or a leading/trailing space in the value or something like that...

See https://travis-ci.org/ManageIQ/ui-components#L966-L1114 as an example

cc @skateman

Missing sourcemaps in the classic UI

ActionController::RoutingError (No route matches [GET] "/assets/@manageiq/ui-components/dist/js/ui-components.js.map")
ActionController::RoutingError (No route matches [GET] "/assets/@manageiq/ui-components/dist/css/ui-components.css.map")

@miq-bot assign @himdel

Component generator

@skateman suggested we should have a script to generate a new empty component with all the boilerplate needed .. sounds like a good idea :).

I'm guessing http://yeoman.io/?

(Mostly creating this issue so that I don't forget, but if anyone wants to take this.. :) )

Splitting dist/ from git

There's been a few discussion around the topic of not having dist/ in git, to prevent useless merge conflicts, etc.

Seems like there's 2 options - separate repo for the built package, or gitignore dist/ and git add --force the files. Either relies on travis updating dist/ when doing a successful master build.

Creating the issue so we can have 1 place for the discussion on how to do that...

Cc @mtho11 , @martinpovolny , @karelhala , @skateman

CVE-2022-25869 (Medium) detected in angular-1.8.3.tgz

CVE-2022-25869 - Medium Severity Vulnerability

Vulnerable Library - angular-1.8.3.tgz

HTML enhanced for web apps

Library home page: https://registry.npmjs.org/angular/-/angular-1.8.3.tgz

Path to dependency file: /package.json

Path to vulnerable library: /node_modules/angular-bootstrap-switch/node_modules/angular/package.json

Dependency Hierarchy:

  • angular-bootstrap-switch-0.5.2.tgz (Root Library)
    • angular-1.8.3.tgz (Vulnerable Library)

Found in HEAD commit: a5db0714038685437d759b29eb80b4b9e415b2c2

Found in base branch: master

Vulnerability Details

All versions of package angular are vulnerable to Cross-site Scripting (XSS) due to insecure page caching in the Internet Explorer browser, which allows interpolation of <textarea> elements.

Publish Date: 2022-07-15

URL: CVE-2022-25869

CVSS 3 Score Details (4.2)

Base Score Metrics:

  • Exploitability Metrics:
    • Attack Vector: Network
    • Attack Complexity: High
    • Privileges Required: None
    • User Interaction: Required
    • Scope: Unchanged
  • Impact Metrics:
    • Confidentiality Impact: Low
    • Integrity Impact: Low
    • Availability Impact: None

For more information on CVSS3 Scores, click here.


Step up your Open Source Security Game with Mend here

"Multiselect" DropDown does not work in SUI

Hi guys.
The "multiselect" options for DropDown list does not work in SUI. I cannot select multiple values for this type of element form SUI but can do it from classic ui:
Screen frim Classic UI:
image
Screen from SUI:
image
Service have dynamic dialog with dropdown element with "multiselect" option:
image

Quadicon component

We are lacking quadicon component, right now it's generated on server and rendered as HTML object inside grid or tile.

Improvements

Click action is now really complex and inside of it it's calculated what screen and what action should be triggered.
We could use more complex actions and show more information based on each quadicon.

Missing selectpicker in demo page

I'm getting an error describing missing selectpicker function while testing a dialog editor in ui-components demo page:

Error: element.selectpicker is not a function
link@http://localhost:4000/js/vendor.js:13447:7
bind/<@http://localhost:4000/js/vendor.js:40662:15
cloneAndAnnotateFn/<@http://localhost:4000/js/vendor.js:49549:41
invokeLinkFn@http://localhost:4000/js/vendor.js:49555:9
nodeLinkFn@http://localhost:4000/js/vendor.js:48954:11
compositeLinkFn@http://localhost:4000/js/vendor.js:48213:13
compositeLinkFn@http://localhost:4000/js/vendor.js:48216:13
publicLinkFn@http://localhost:4000/js/vendor.js:48093:30
lazyCompilation@http://localhost:4000/js/vendor.js:48450:16
boundTranscludeFn@http://localhost:4000/js/vendor.js:48230:16
controllersBoundTransclude@http://localhost:4000/js/vendor.js:49004:20
ngIfWatchAction@http://localhost:4000/js/vendor.js:66510:15
$digest@http://localhost:4000/js/vendor.js:57239:23
$apply@http://localhost:4000/js/vendor.js:57505:13
timeout/timeoutId<@http://localhost:4000/js/vendor.js:59353:25
completeOutstandingRequest@http://localhost:4000/js/vendor.js:45448:7
Browser/self.defer/timeoutId<@http://localhost:4000/js/vendor.js:45727:7
 <select class="form-control ng-pristine ng-untouched ng-valid ng-isolate-scope" pf-select="" ng-model="vm.fieldData.default_value">

screencast from 2018-02-16 14-42-12

/cc @skateman @karelhala

Refreshing forms on update from Automate

While updating service dialogs by values from automate, the validation does not get updated automatically. After hover action, the Submit button gets enabled:

Screencast from 2019-06-24 12-43-45

Unable to build with Node 7.x stable (works with 6.x LTS)

Node 6.x is LTS is good, but 7.x stable doesn't run (at least on OS/X). Since it is the stable version and we are in Dev, it should probably also run in 7.x.

Child extract-text-webpack-plugin:
+ 1 hidden modules

ERROR in Missing binding ui-components/node_modules/node-sass/vendor/darwin-x64-51/binding.node
Node Sass could not find a binding for your current environment: OS X 64-bit with Node.js 7.x

Found bindings for the following environments:
  - OS X 64-bit with Node.js 6.x

This usually happens because your environment has changed since running `npm install`.
Run `npm rebuild node-sass` to build the binding for your current environment.

Dialog field regex not validating

When testing with the regex string \A[\w+-.]+@[a-z\d-]+(.[a-z]+)*.[a-z]+\z
the API returns \\A[\\w+\\-.]+@[a-z\\d\\-]+(\\.[a-z]+)*\\.[a-z]+\\z I think the escaped \\ is causing our regex validation to not work. Investigate issue and fix.

CVE-2023-26116 (Medium) detected in angular-1.8.3.tgz

CVE-2023-26116 - Medium Severity Vulnerability

Vulnerable Library - angular-1.8.3.tgz

HTML enhanced for web apps

Library home page: https://registry.npmjs.org/angular/-/angular-1.8.3.tgz

Path to dependency file: /package.json

Path to vulnerable library: /node_modules/angular-bootstrap-switch/node_modules/angular/package.json

Dependency Hierarchy:

  • angular-bootstrap-switch-0.5.2.tgz (Root Library)
    • angular-1.8.3.tgz (Vulnerable Library)

Found in HEAD commit: a5db0714038685437d759b29eb80b4b9e415b2c2

Found in base branch: master

Vulnerability Details

Versions of the package angular from 1.2.21 are vulnerable to Regular Expression Denial of Service (ReDoS) via the angular.copy() utility function due to the usage of an insecure regular expression. Exploiting this vulnerability is possible by a large carefully-crafted input, which can result in catastrophic backtracking.

Publish Date: 2023-03-30

URL: CVE-2023-26116

CVSS 3 Score Details (5.3)

Base Score Metrics:

  • Exploitability Metrics:
    • Attack Vector: Network
    • Attack Complexity: Low
    • Privileges Required: None
    • User Interaction: None
    • Scope: Unchanged
  • Impact Metrics:
    • Confidentiality Impact: None
    • Integrity Impact: None
    • Availability Impact: Low

For more information on CVSS3 Scores, click here.


Step up your Open Source Security Game with Mend here

When running application typings error occure

This is placeholder issue for someone who is not involved in merge process, we have abandoned typings package in #41 so if you had installed this package before this transition. Remove folder typings and node_modules and re-run npm install to check types from npm.

Dialog Editor issues

In this issue I'll keep a list of known issues in the dialog editor, I'll keep it as WIP, until I describe the issues properly with all the details.

bugs, missing features:

refactoring:

  • DRY code for dialog editor (there's a lot of copypasted code right now: #170 (comment))
  • correct naming in code (elements -> fields, box -> group, etc.)
  • #98

http://www.patternfly.org/pattern-library/content-views/canvas-view/

Provision requests listed in Services menu

It feels confusing to me that requests for VM provision are listed in Services menu (Services => Requests), since we have Requests in Infrastructure too (Compute => Infrastructure => Requests).

screencapture-localhost-3000-miq_request-show_list-1474276148497

It would make more sense to me if Infra & Cloud request would be listed in Compute menu, for example in new 2nd level item (Compute => Requests) instead of in Services.

@martinpovolny @dclarizio


This issue was moved to this repository from ManageIQ/manageiq#11354, originally opened by @romanblanco

Remove gray background from the GTLs / restyle quadicon wrapper

Now that the decision has been made to remove the old tile view (https://bugzilla.redhat.com/show_bug.cgi?id=1734182), it would be a great time to deal with another complication: When GTL was moved to Ui-components, a decision was made to wrap both the Tiles and Quadicons in a pf-card and display them on a gray background. This was not only inconsistent with list view but created enormous headaches on the classic side in rendering the gray background properly.

I would like to remove the card from the quads (see below), remove the gray background from that view and get rid of all the spaghetti logic on the classic side that will cause nothing but problems as we move forward.

Current
Screen Shot 2019-07-31 at 10 41 11 AM

New
Screen Shot 2019-08-01 at 12 45 40 PM

Current Listview
Screen Shot 2019-07-31 at 11 05 14 AM

Karma Tests Failing

The Karma tests are failing:

PhantomJS 2.1.1 (Mac OS X 0.0.0) Sort items test controller should init options FAILED
TypeError: undefined is not a constructor (evaluating 'compileProvider.preAssignBindingsEnabled()') (line 2260)
node_modules/angular-mocks/angular-mocks.js:2260:80
$componentController@node_modules/angular-mocks/angular-mocks.js:2330:25
src/common/components/sortItemsComponent.spec.ts:9:4093
invoke@dist/js/vendor.js:4828:25
WorkFn@node_modules/angular-mocks/angular-mocks.js:3151:26
inject@node_modules/angular-mocks/angular-mocks.js:3121:46
src/common/components/sortItemsComponent.spec.ts:9:3950
loaded@http://localhost:9876/context.js:151:17
inject@node_modules/angular-mocks/angular-mocks.js:3118:28
src/common/components/sortItemsComponent.spec.ts:9:3950
loaded@http://localhost:9876/context.js:151:17
TypeError: undefined is not an object (evaluating 'sortItemsCtrl.options') in src/common/components/sortItemsComponent.spec.ts (line 9)
src/common/components/sortItemsComponent.spec.ts:9:6340
loaded@http://localhost:9876/context.js:151:17

Steps to Reproduce

npm cache clean
bower cache clean
rm -rf node_modules libs
npm install
npm test

miq-data-table pagination confused behavior

miq-pagination consists of miq-sort-items, miq-paging and select all checkbox

when paginationCtrl.settings.hideSelect is set, miq-pagination is hidden instead of only select all checkbox part

https://github.com/ManageIQ/ui-components/blob/master/src/gtl/components/pagination/pagination.html#L1

if tableCtrl.settings.sortBy isn't true, also miq-pagination is hidden instead of miq-sort-items part

it checks here
https://github.com/ManageIQ/ui-components/blob/master/src/gtl/components/data-table/data-table.html#L4

we need to check tableCtrl.settings.sortBy only here:
https://github.com/ManageIQ/ui-components/blob/master/src/gtl/components/pagination/pagination.html#L18

also pagination isn't hidden, when settings.isLoading == true
https://github.com/ManageIQ/ui-components/blob/master/src/gtl/components/data-table/data-table.html#L4

JavaScript error on Dashboards screen

I'm getting the following error in javascript console on current ManageIQ master:

angular.self-4d4ad11d5ffcf4b45937b602ad6794ec0402cf414a488a6e28edf2a00bb8370c.js?body=1:14801 TypeError: Cannot read property 'includes' of undefined
    at toolbarComponent.ts:154
    at Array.filter (<anonymous>)
    at toolbarComponent.ts:154
    at baseFindIndex (lodash.self-ab7f9fcc194a42c87faff5feeff131a1afe3a245de9ccc9563c7b136fb125f2e.js?body=1:327)
    at Function.findLastIndex (lodash.self-ab7f9fcc194a42c87faff5feeff131a1afe3a245de9ccc9563c7b136fb125f2e.js?body=1:3262)
    at e.collapseButtons (toolbarComponent.ts:154)
    at e.$onChanges (ui-components.js:4653)
    at angular.self-4d4ad11d5ffcf4b45937b602ad6794ec0402cf414a488a6e28edf2a00bb8370c.js?body=1:9960
    at forEach (angular.self-4d4ad11d5ffcf4b45937b602ad6794ec0402cf414a488a6e28edf2a00bb8370c.js?body=1:417)
    at nodeLinkFn (angular.self-4d4ad11d5ffcf4b45937b602ad6794ec0402cf414a488a6e28edf2a00bb8370c.js?body=1:9956)

Issue with Tag Control element in Dialog Editor

After draging Tag Control element into the Dialog Box, I'm getting error in console:

columnNumber : 73
fileName : "http://localhost:3000/assets/angular-patternfly-sass/dist/angular-patternfly.self-e808720f9b22bfc2fb44a48578a1b1a7d8d09ac62b8c01ad34e0589850b2ae53.js?body=1"
lineNumber : 6664
message : "ngModel is null"
stack : "link@http://localhost:3000/assets/angular-patternfly-sass/dist/angular-patternfly.self-e808720f9b22bfc2fb44a48578a1b1a7d8d09ac62b8c01ad34e0589850b2ae53.js?body=1:6664:73\nbind/<@http://localhost:3000/assets/angular/angular.self-7e0b2baf4553bcd25cbb45cbe35556b3c2fbcb170db636503b5bee55a75e7b9b.js?body=1:1386:15\ncloneAndAnnotateFn/<@http://localhost:3000/assets/angular/angular.self-7e0b2baf4553bcd25cbb45cbe35556b3c2fbcb170db636503b5bee55a75e7b9b.js?body=1:10540:41\ninvokeLinkFn@http://localhost:3000/assets/angular/angular.self-7e0b2baf4553bcd25cbb45cbe35556b3c2fbcb170db636503b5bee55a75e7b9b.js?body=1:10546:9\nnodeLinkFn@http://localhost:3000/assets/angular/angular.self-7e0b2baf4553bcd25cbb45cbe35556b3c2fbcb170db636503b5bee55a75e7b9b.js?body=1:9935:11\ncompositeLinkFn@http://localhost:3000/assets/angular/angular.self-7e0b2baf4553bcd25cbb45cbe35556b3c2fbcb170db636503b5bee55a75e7b9b.js?body=1:9175:13\npublicLinkFn@http://localhost:3000/assets/angular/angular.self-7e0b2baf4553bcd25cbb45cbe35556b3c2fbcb170db636503b5bee55a75e7b9b.js?body=1:9040:30\nlazyCompilation@http://localhost:3000/assets/angular/angular.self-7e0b2baf4553bcd25cbb45cbe35556b3c2fbcb170db636503b5bee55a75e7b9b.js?body=1:9431:16\nboundTranscludeFn@http://localhost:3000/assets/angular/angular.self-7e0b2baf4553bcd25cbb45cbe35556b3c2fbcb170db636503b5bee55a75e7b9b.js?body=1:9218:16\ncontrollersBoundTransclude@http://localhost:3000/assets/angular/angular.self-7e0b2baf4553bcd25cbb45cbe35556b3c2fbcb170db636503b5bee55a75e7b9b.js?body=1:9985:20\nngSwitchWatchAction/<@http://localhost:3000/assets/angular/angular.self-7e0b2baf4553bcd25cbb45cbe35556b3c2fbcb170db636503b5bee55a75e7b9b.js?body=1:32166:13\nforEach@http://localhost:3000/assets/angular/angular.self-7e0b2baf4553bcd25cbb45cbe35556b3c2fbcb170db636503b5bee55a75e7b9b.js?body=1:411:11\nngSwitchWatchAction@http://localhost:3000/assets/angular/angular.self-7e0b2baf4553bcd25cbb45cbe35556b3c2fbcb170db636503b5bee55a75e7b9b.js?body=1:32165:11\n$digest@http://localhost:3000/assets/angular/angular.self-7e0b2baf4553bcd25cbb45cbe35556b3c2fbcb170db636503b5bee55a75e7b9b.js?body=1:18262:23\n$apply@http://localhost:3000/assets/angular/angular.self-7e0b2baf4553bcd25cbb45cbe35556b3c2fbcb170db636503b5bee55a75e7b9b.js?body=1:18532:13\ntimeout/timeoutId<@http://localhost:3000/assets/angular/angular.self-7e0b2baf4553bcd25cbb45cbe35556b3c2fbcb170db636503b5bee55a75e7b9b.js?body=1:20449:25\ncompleteOutstandingRequest@http://localhost:3000/assets/angular/angular.self-7e0b2baf4553bcd25cbb45cbe35556b3c2fbcb170db636503b5bee55a75e7b9b.js?body=1:6363:7\nBrowser/self.defer/timeoutId<@http://localhost:3000/assets/angular/angular.self-7e0b2baf4553bcd25cbb45cbe35556b3c2fbcb170db636503b5bee55a75e7b9b.js?body=1:6643:7\n"

screencast from 2017-09-27 13-38-39

Toolbar hasContent true when it should be falsy

I'm seeing a case where the miq-toolbar-group is generated (vm.hasContent(item) returns true) but not shown because it's empty..

To the left of the Configuration button..

foreman-toolbar

This is the toolbarItem value:

[{"id":"history_choice","type":"buttonSelect","img":"history_choice.png","imgdis":"history_choice.png","icon":"fa fa-arrow-left fa-lg","name":"history_choice","hidden":false,"pressed":null,"onwhen":null,"data":null,"enabled":false,"title":"History","items":[],"explorer":true,"$$hashKey":"object:171"}]

Pretty sure the group should be hidden if empty, so hasContent should return false in this case.

@karelhala can you look into it please or should I?

Toolbars - allow angular components as custom toolbars

Right now, a custom toolbar is just ng-bind-html...

Which is unfortunate because it doesn't $compile anything so the html can't really be angulary.
.. And you can't miq_boostrap because it's a child of the toolbar element, which has already been bootstrapped.

So.. to be able to use angulary custom toolbars, we may need to add support for components, or possibly a generic "$compile this" flag..

Dialog field regex validation

Per @Loicavenel, if a field has a regular expression check defined on it, it should run field validations whether or not the field itself is "required". The implementation needs to account for allowing blank to be considered as valid input since the field is optional. It needs to disable submission if someone edits the field and the field doesn't match validation regex.

Separate GTL item

Right now we have GTL view which includes pagination and GTL item directly, it would be nice to have component just for each GTL object (small/big tile, table). This way we could use this (any GTL item) component wherever we want without pagination.

EDIT: Also this might be interesting to UX team as well. Since we will be working with tables and refactoring them, how about we unify the styles and discuss what exactly is needed for each type of view.
Basically I think we have 2 questions.

  1. Which types do we want?
    Grid is fine I guess, however what about tiles and table? I remember that we wanted to change this to something else, perhaps list-view?
  2. Are we happy with how Grid looks like? Are there any things that can be improved?

This issue might be broken apart a couple of PRs, it's just to start discussion and to move forward something more usable and UX friendly.

Missing 'ui-components.js.map' file

I'm getting FATAL errors in console for some time now, informing me that ui-components.js.map is missing:

[----] I, [2016-09-20T13:17:11.489026 #2775:2b1b6568b450]  INFO -- : Started GET "/assets/manageiq-ui-components/dist/js/ui-components.js.map" for ::1 at 2016-09-20 13:17:11 +0200
[----] F, [2016-09-20T13:17:11.540451 #2775:2b1b6568b450] FATAL -- :   
[----] F, [2016-09-20T13:17:11.540801 #2775:2b1b6568b450] FATAL -- : ActionController::RoutingError (No route matches [GET] "/assets/manageiq-ui-components/dist/js/ui-components.js.map"):
[----] F, [2016-09-20T13:17:11.540858 #2775:2b1b6568b450] FATAL -- :   
[----] F, [2016-09-20T13:17:11.540898 #2775:2b1b6568b450] FATAL -- : actionpack (5.0.0.1) lib/action_dispatch/middleware/debug_exceptions.rb:53:in `call'
[----] F, [2016-09-20T13:17:11.540934 #2775:2b1b6568b450] FATAL -- : actionpack (5.0.0.1) lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
[----] F, [2016-09-20T13:17:11.540980 #2775:2b1b6568b450] FATAL -- : railties (5.0.0.1) lib/rails/rack/logger.rb:36:in `call_app'
[----] F, [2016-09-20T13:17:11.541017 #2775:2b1b6568b450] FATAL -- : railties (5.0.0.1) lib/rails/rack/logger.rb:26:in `call'
[----] F, [2016-09-20T13:17:11.541053 #2775:2b1b6568b450] FATAL -- : request_store (1.3.1) lib/request_store/middleware.rb:9:in `call'
[----] F, [2016-09-20T13:17:11.541085 #2775:2b1b6568b450] FATAL -- : actionpack (5.0.0.1) lib/action_dispatch/middleware/request_id.rb:24:in `call'
[----] F, [2016-09-20T13:17:11.541116 #2775:2b1b6568b450] FATAL -- : rack (2.0.1) lib/rack/method_override.rb:22:in `call'
[----] F, [2016-09-20T13:17:11.541148 #2775:2b1b6568b450] FATAL -- : rack (2.0.1) lib/rack/runtime.rb:22:in `call'
[----] F, [2016-09-20T13:17:11.541178 #2775:2b1b6568b450] FATAL -- : activesupport (5.0.0.1) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
[----] F, [2016-09-20T13:17:11.541210 #2775:2b1b6568b450] FATAL -- : actionpack (5.0.0.1) lib/action_dispatch/middleware/executor.rb:12:in `call'
[----] F, [2016-09-20T13:17:11.541274 #2775:2b1b6568b450] FATAL -- : actionpack (5.0.0.1) lib/action_dispatch/middleware/static.rb:136:in `call'
[----] F, [2016-09-20T13:17:11.541314 #2775:2b1b6568b450] FATAL -- : rack (2.0.1) lib/rack/sendfile.rb:111:in `call'
[----] F, [2016-09-20T13:17:11.541346 #2775:2b1b6568b450] FATAL -- : rack-mini-profiler (0.10.1) lib/mini_profiler/profiler.rb:171:in `call'
[----] F, [2016-09-20T13:17:11.541380 #2775:2b1b6568b450] FATAL -- : railties (5.0.0.1) lib/rails/engine.rb:522:in `call'
[----] F, [2016-09-20T13:17:11.541411 #2775:2b1b6568b450] FATAL -- : puma (3.3.0) lib/puma/configuration.rb:224:in `call'
[----] F, [2016-09-20T13:17:11.541442 #2775:2b1b6568b450] FATAL -- : puma (3.3.0) lib/puma/server.rb:561:in `handle_request'
[----] F, [2016-09-20T13:17:11.541473 #2775:2b1b6568b450] FATAL -- : puma (3.3.0) lib/puma/server.rb:406:in `process_client'
[----] F, [2016-09-20T13:17:11.541503 #2775:2b1b6568b450] FATAL -- : puma (3.3.0) lib/puma/server.rb:271:in `block in run'
[----] F, [2016-09-20T13:17:11.541533 #2775:2b1b6568b450] FATAL -- : puma (3.3.0) lib/puma/thread_pool.rb:111:in `block in spawn_thread'

is there something, that can be done to fix this? 😊 @karelhala

Add "required" field indicator on dialog-user component

When a Dialog Element is set Required = True, we should show an information in the Dialog. I thought we were putting a “*” but discovered this is not the case. User will find out when clicking submit….. I think this is a pretty simple and will help a lot.

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.