infor-design / enterprise Goto Github PK
View Code? Open in Web Editor NEWEnterprise-grade component library for the Infor Design System
Home Page: https://design.infor.com
License: Apache License 2.0
Enterprise-grade component library for the Infor Design System
Home Page: https://design.infor.com
License: Apache License 2.0
Is your feature request related to a problem? Please describe.
Datagrid needs tests.
Describe the solution you'd like
Write functional Tests
Describe alternatives you've considered
n/a
Additional context
See existing tests for example dropdown, treemap, menubutton, timepicker, spinbox for reference. Also see docs/TESTING.MD for commands
Steps to reproduce:
Expected behaviour: it should return only the selected ones (i.e. 2 - 3 records)
Actual behaviour: it is returning all items from list without considering the filter
I have tested it with 4.5 version angular components
Made base readonly calendar with events the main things supported so far are
Other info
This used to be SOHO-2182
Remaining items added to #675
Links to examples are broken as follows:
Alerts ->
More Badge Examples
(/) working now
Dropdown ->
States example
Inputs ->
Textarea example
Pager ->
Paging the ListView Component
Paging the Datagrid Component
Searchfield ->
Header Searchfield (compact)
Header Searchfield (Large)
Slider Component =>
setValue() API Demo
Switch component ->
Alternate alighment example
Tabs =>
Update count example
Text Input =>
Test Area example
Tooltip component =>
Demo of setContent() api method
Utilities
All that have examples give a 404 result when clicking the link.
Charts
All chart example links return a 404 page
Unclassified ->
Hierarchy =>
Lazy Loading Example
List Filter =>
Multiselect Filter Types link
Radio Button =>
Horizontal Example (goes to example-index, not correct example)
[All Browsers] Contextual Action Panel Control: Unable to close the modal
and
A datagrid column using the Soho.Editors.Lookup does not support mask.
For example would like to restrict the input to 10 numeric characters. This is currently not supported.
So the following does not work (even when adding maskMode and maxLength to SohoDataGridColumn)
columns.push({
id: 'lookup-click',
name: 'Lookup Click',
field: 'productId',
editor: Soho.Editors.Lookup,
editorOptions: {editable: true, click: LMLookupClickFunction},
maskMode: 'number',
mask: '##########',
maxLength: 10
});
Add some tests for Busy Indicator
See existing tests for example textarea, dropdown, treemap, menubutton for reference. Also see docs/TESTING.MD for commands. Ask for help on sohoxi-dev if needed.
Functional Tests
E2e Tests
Busy Indicator Specific Test Considerations
Other Tests
http://470-beta-enterprise.demo.design.infor.com/components/editor/example-dirty-tracking.html
[All Browsers] Editor Dirty Tracker Control: Dirty Tracker Alignment Issue
Steps to reproduce:
html view
edit text (yellow thing in wrong place)
go back to visual
go back to html
http://usalvlhlpool1.infor.com/4.6.0-rc/components/datagrid/example-filter
[Android Galaxy 8] Filterable Datagrid Control: Alignment Issue with Filter dropdown list box
Please see screen shot attached
When a datagrid is inside of certain containers (2-column layout, tabs, expandable areas, etc.), there are the following display issues:
See attached screen shots. I will submit an example too. Please test dark theme too.
I believe the issue is caused by the font-size: 0 or other font-size css rules on these containers.
http://usalvlhlpool1.infor.com/4.6.0-rc/components/datagrid/example-editable.html
[All Browsers] Data Grid Editable Control: Price Column giving "Nan" error
Steps to reproduce:
****** Also the page record is not working correctly****
Seeing multiple validation events firing for one occurrence.
For example, using a date field and changing the value to 12, seeing the following events being fired:
{code}
'valid'
'error'
'valid'
'error'
{code}
To duplicate, use the example-index.html that is either attached or located in the validation directory.
Also attached is a screenshot/gif demonstrating the issue.
Is your feature request related to a problem? Please describe.
Cardview lists should have the dropdown for number of records shown in the footer along with the paging controls. in order to do this in angular/landmark pager.js needs some refactors.
Describe the solution you'd like
next
prev
first
last
page input
page size selector
pager list buttons
Trigger events when paging actions happen
Use only events to other components instead of directly linking componentAPI setting
All updates and control state would take place by a function in pager. (enableFirstButton, enableLastButton for example).
Existing functionality not broken in any way.
Strawman
<soho-pager
[hasPageSizeChooser]=true
[hasFirstButton]="'true'"
[enableFirstButton]="enableFirstButton"
...
(firstButtonClicked)="onFirstButtonClicked()"
(pageSizeChanged)="onPageSizeChanged()"
Additional context
Issue combined with #438
Formerly SOHO-7823 and SOHO-6841
Here's what is needed:
A new row indicator. Current implementation adds an additional column which is odd and not optimal.
A mechanism to show which cell in a row has changed or is dirty. Landmark has the ability to know which value has changes so that it can place the dirty indicator in the specific place.
[All Browsers] Contextual Action Panel Control: Modal is not closing when clicking "Cancel"
Steps to reproduce:
Repro:
!ContextMenuOnHeader.PNG|thumbnail!
The row-reorder functionality of the datagrid breaks after moving a few items around. Only happens in IE11.
Reproduce:
Expected: It's possible to reorder rows.
Actual: It's not possible to reorder rows.
Add some tests for Toast
See existing tests for example textarea, dropdown, treemap, menubutton for reference. Also see docs/TESTING.MD for commands. Ask for help on sohoxi-dev if needed.
Functional Tests
E2e Tests
Toast Specific Test Considerations
Other Tests
When escaping the title of a modal, to prevent XSS, the title will be shown with the escaped characters, not the not the corresponding alphabetical characters.
Reproduce
<script>alert("menuXSS")</script>
the issue occurs here
Expected: Title shown as <script>alert("menuXSS")</script>
Actual: Title shown as
<script>alert("menuXSS")</script>
[Win 10 IE11] Data Grid Filter Control: Accessibility Issue For Status Field
http://usalvlhlpool1.infor.com/4.4.0-rc/components/datagrid/example-filter.html
Steps below to reproduce:
The x-icon of dismissable tags are misaligned when running RTL.
Reproduce
ids-enterprise
The x-icon is placed too far to the right.
!ids-enterprise_tag.PNG|thumbnail!
ids-enterprise-ng
The x-icon is placed too far to the right.
The x-icon is placed to far down.
!ids-enterprise-ng_tags.PNG|thumbnail!
@d-g-h What are the npm
scripts we want to be running to kick of unit and functional tests?
Allow hyperlinks in the toast message.
You can see my use case in http://jira.lawson.com/secure/attachment/942586/screenshot-1.png - see http://jira.lawson.com/browse/LMCLIENT-19493.
We had another use-case where if a record is created from a list we could present a link to that newly created record. Much like Jira does when you create a new Jira issue.
See SOHO-7818 for more context and XSS concerns
I Believe we could set this by passing an index but we also passed an object with a reference of some kind and a value. You would find the element with the reference attribute and value that matched and select it. In our case we pass a ref vaule in each of our data nodes to tie it back to the dataset that we used to create the data we pass into the chart.
if (this._chartOptions.type.indexOf('grouped') >= 0 || this._chartOptions.type === 'column') {
selectOptions = {groupName: 'ref', groupValue: ref};
} else {
selectOptions = {fieldName: 'ref', fieldValue: ref};
}
this.chart.setSelected(selectOptions);
Add some tests for Tabs and Tab Variations
See existing tests for example dropdown, timepicker, treemap, ect menubutton for reference. Also see docs/TESTING.MD for commands.
Ask for help on hl-dev-ids if needed.
Function Tests
E2E
Tabs Specific Test Considerations
Other Tests
hi, I think we have an error in the Dropdown typeahead binding & I'm seeing the same thing in the 4.4.0 build.
The control I'm looking at is the Angular "Dropdown-Single Select" with "States - From Source".
What I'm looking for is a subscription to the typeahead data. Each time the user presses a key then my app needs to respond & do something extra. The way to do this is through the "source" property which the Angular control uses - [source]="source".
However, the source method (in dropdown.demo.ts) is getting called only once with a searchTerm of "". It doesnt get called again after subsequent user keypresses.
Could you please have a look. Maybe this is expected behavior - if so could we please have a "searchTerm" Output event added to the API so we can subscribe that way? Thanks
In our current app we display the "description" of the "code" that the user selects in a text box to the right of the text box.
For example, the users enters a vendor's code, and we display the vendor name to the right of the field. Or, the user selects a customer id and we display the customer name to the right of the field.
Before they enter a customer id:
!2018-04-03_1326.png|thumbnail!
After they enter a customer id:
!2018-04-03_1327.png|thumbnail!
You can also see this works if the user enters data or picks from the picklist.
https://www.screencast.com/t/UFxM2Hplc
We request guidance and maybe modifications to include this ability in the SOHO forms. We are currently using form-responsive row divs wrapping fields per SOHO guidelines.
To Support the QA / Krypton / Testing Team we want to include notes in the documentation around adding ID's and "automation ids".
Task is to update all of the documentation pages at design.infor.com by updating the MD examples in our project.
Testability
- Make sure each item has a unique id that does not change across versions of your software
- If you think that your id may change, you should alternatively use the “data-automation-id” for test teams to target your elements. This should not change or future test scripts may break unexpectedly.
- If you already have a stable and unique id, then you can omit the use of “data-automation-id”
- Make sure to use a meaningful value for the “name” attribute, e.g. “Submit” for the Submit Button
- Please refer to the for further details see the Application Testability Checklist
dist
src
core
components
component a
component b
layouts
patterns
utilities
test
demoapp
www
views
scripts
/baseline
gets moved to /test/baseline
/bin
, /build
get moved to /scripts
/components
when moving to /src
, because some items in here are not all components. Some are behaviors, some are small utilities./demoapp
needs a bit of reorganization
/demoapp/js
should be moved to /demoapp/www/js
server.js
, app.js
, and the /public
folder's contents to this folder./docs
? (unsure)/images
goes away/license
can either stay as-is/publish
may need to stay as-is (consult @tmcconechy)/sass
gets moved/organized into /src/sass
and various component/utility folders/specs
contents get moved to their corresponding /src/components/[component]
folders/views
gets moved to /demoapp/views
:
src/components/[includes]
, should actually be moved to views, since they're demoapp-specific/dist
folder's contents don't changeWhen initializing an element with display: none
, the icon still shows up after initialization.
Select
s appear to work, unsure about others.
Add some tests for Block Grid
See existing tests for example textarea, dropdown, treemap, menubutton for reference. Also see docs/TESTING.MD for commands. Ask for help on sohoxi-dev if needed.
Functional Tests
E2e Tests
Block Grid Specific Test Considerations
Other Tests
Compare visuals on a baseline w/ https://www.npmjs.com/package/protractor-image-comparison
Take one screen shot at each width: desktop, table, mobile, and test all themes if possible
Setup config for protractor image comparison
Make some sample tests
Run the image tests on CI server, and provide instructions about how to create baseline images
Scatter plot charts with selection, right click for a context menu, and hover for a popup with application developer defined info: image, field values, etc...
In Landmark, the list component is listening for the tab key onKeyDown. When the user hits the tab key on the last cell of a newly added row, the row is saved and another row is added to the datagrid. This is intended to support users that want to quickly add data rows to the datagrid.
The tab key event from onKeydown was not getting to our keydown handler because within soho's datagrid.js it is capturing the tab event and indicating that the event was handled and performs preventDefault() and stopPropagation().
Including some code snippets from datagrid.js....
{code}
// Handle rest of the keyboard
self.table.on('keydown.datagrid', 'td', function (e) {
const key = e.which || e.keyCode || e.charCode || 0;
let handled = false;
......
// Tab, Left and Right arrow keys.
if ([9, 37, 39].indexOf(key) !== -1) {
if (key === 9 && !self.settings.actionableMode) {
return;
}
if (key !== 9 && e.altKey) {
// [Alt + Left/Right arrow] to move to the first or last cell on the current row.
cell = ((key === 37 && !isRTL) || (key === 39 && isRTL)) ? 0 : lastCell;
self.setActiveCell(row, cell);
} else if (!self.quickEditMode || (key === 9)) {
if ((!isRTL && (key === 37 || key === 9 && e.shiftKey)) || // eslint-disable-line
(isRTL && (key === 39 || key === 9))) { // eslint-disable-line
cell = getNextVisibleCell(cell, lastCell, true);
} else {
cell = getNextVisibleCell(cell, lastCell);
}
if (cell instanceof jQuery) {
self.setActiveCell(cell);
} else {
self.setActiveCell(row, cell);
}
self.quickEditMode = false;
handled = true;
}
}
.....
if (handled) {
e.preventDefault();
e.stopPropagation();
return false; // eslint-disable-line
}
{code}
Describe the bug
Dropdowns aren't being wrapped correctly by the field filter control.
To Reproduce
Steps to reproduce the behavior:
Add this html to field-filter/example-index.html
<div class="field">
<label for="example-dropdown" class="label">Dropdown</label>
<select id="example-dropdown" class="dropdown field-filter input-md">
<option value=""></option>
<option value="1">Inquiry</option>
<option value="2">Setup</option>
</select>
</div>
Expected behavior
Dropdown should match how the other fields looks for field filter
Platform
Original issue: https://jira.infor.com/browse/SOHO-7978
Need a way to open context menus on mobile devices. On lists / datagrid and inputs.
Currently the Formatter/Editor for Lookup does not support right-aligned text (test application zip attached which runs against v4.3.4 of the controls).
On inspection the CSS text-align on the data wrapper is not inherited by the child span with class trigger.
In the example, open 'Learning' and click items inside. Observe the selected event is only triggered when clicking the text and not the +/-.
I'm making a feature in Portal where we restore opened items in the app nav the next time someone loads our site but if they click +/- I have no way to track it and my logic gets all confused.
I'm using the tree component in a scenario with a large amounts of data (3000 items and 7 levels depth aprox). The issue is performance, the tree is displayed in 5-7 seconds.
So, Is there a way to deal with this, like loading the tree in a stepped way, level by level or in demand ? have you any example of this ?
On the Trusty Distro, the test is failing, and outputting the original input value.
✗ Should pick time from picker and set to field for 24 Hour
- Expected '19:15' to equal '21:25'.
Attempted
Sleeping, waitingFor, etc, It's still reading the old input upon clicking or entering of the "set time" btn
Difficulties
The local docker testing setup differs here as well, with a mock build script.
Hard to debug, currently, just throwing commits at the branch to rerun tests.
When using the Notes widget in Homepages (which uses the Editor SoHo component), you can insert script tags in hyperlinks:
!xss_notes.gif|thumbnail!
This is pretty dangerous, since it makes it trivial to perform an XSS attack on any platform where users can share the contents of the Editor (assuming no escaping is done when serializing/transmitting the data).
I guess this affects any product that uses the Editor, and is not specific to Homepages widgets.
Stpes to reproduce
Expected: No alert
Actual: Alert appears due to injected script being executed.
http://usalvlhlpool1.infor.com/4.6.0-rc/components/datagrid/example-filter
[Win 7 FF 59] Filterable Data Grid Control: Activity and Status field box alignment issue
Please see screen shot attached
Add the soho loading shim to replace the current busy indicator on app load.
https://codepen.io/kevlarthrowintreesatya/pen/GZYRwY
Add some tests for Tree
See existing tests for example textarea, dropdown, treemap, menubutton for reference. Also see docs/TESTING.MD for commands. Ask for help on sohoxi-dev if needed.
Functional Tests
E2e Tests
Tree Grid Specific Test Considerations
see all of http://localhost:4000/components/tree/list examples and tests
Other Tests
Have tried copying 500 rows on data from excel to Soho Data Grid and browses goes not responding/crashing.
This request is related to : SOHO-1750
To reproduce:
Add some tests for Datepicker
See existing tests for example dropdown, treemap, menubutton, timepicker, spinbox for reference. Also see docs/TESTING.MD for commands.
Ask for help on slack if needed.
Unit Tests
Functional
Textarea Specific Test Considerations
TODO
Other Tests
Describe the bug
Something in the markup is causing the syntax highlighter (pygmentize-bundled) in scripts/deploy-documentation.js
to throw an error:
TypeError: Cannot read property 'toString' of undefined
at require (.../enterprise/scripts/deploy-documentation.js:55:28)
at ChildProcess.<anonymous> (.../enterprise/node_modules/pygmentize-bundled/index.js:32:14)
To Reproduce
Steps to reproduce the behavior:
node ./scripts/deploy-documentation.js --test-mode
(use test-mode to make it faster for this instance)Expected behavior
No errors and it builds and deploys properly.
Platform
[All Browsers] Modal Control: Not all editor features are working in the modal
Steps to reproduce:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.