Squashes #1103, fixes #1047. Squashed commit of the following: commit0e060f174d
Author: Charles Hacskaylo <charlesh88@gmail.com> Date: Fri Jul 29 14:55:34 2016 -0700 [Frontend] Added button to .s-button Fixes #1047 commit9f74395a79
Author: Charles Hacskaylo <charlesh88@gmail.com> Date: Fri Jul 29 14:43:36 2016 -0700 [Frontend] Fixing problems from circleci Fixes #1047 commit7278c9534c
Author: Charles Hacskaylo <charlesh88@gmail.com> Date: Fri Jul 29 14:37:21 2016 -0700 [Frontend] CSS fixes for s-status classes Fixes #1047 Fixed .s-status-editing and s-status-pending; commit4606d617d1
Merge:d5bff55
59436f7
Author: Charles Hacskaylo <charlesh88@gmail.com> Date: Fri Jul 29 13:58:51 2016 -0700 Merge remote-tracking branch 'origin/master' into frontend-1047 commitd5bff555e0
Author: Charles Hacskaylo <charlesh88@gmail.com> Date: Thu Jul 28 19:09:33 2016 -0700 [Frontend] Updated glyphs used by plot view switcher Fixes #1047 commitb72d82baef
Author: Charles Hacskaylo <charlesh88@gmail.com> Date: Thu Jul 28 19:09:00 2016 -0700 [Frontend] Tree styles in left pane and selector-list Fixes #1047 commitaf36b9996d
Author: Charles Hacskaylo <charlesh88@gmail.com> Date: Thu Jul 28 18:32:34 2016 -0700 [Frontend] Form validation styling Fixes #1047 <mct-form> must now include class 'validates' to display validation glyph icons; removed 'no-validate' from markup; cleaned up validation scss; commit69dc893b4b
Author: Charles Hacskaylo <charlesh88@gmail.com> Date: Thu Jul 28 17:11:52 2016 -0700 [Frontend] Glyphs to classes, mobile Fixes #1047 Fixes and enhancements for mobile, particularly in tree; Removed `display: inline-block` from containerSubtle mixin; commit7bca18b186
Author: Charles Hacskaylo <charlesh88@gmail.com> Date: Thu Jul 28 11:36:19 2016 -0700 [Frontend] Rename .s-menu-btn, remove unused Fixes #1047 .s-menu-btn > .s-menu-button; .create-btn > .create-button; removed unused l-btn, t-btn, t-btns-zoom from markup commit5d229198b7
Author: Charles Hacskaylo <charlesh88@gmail.com> Date: Thu Jul 28 11:25:36 2016 -0700 [Frontend] Rename .s-clickable-icon to .s-icon-button Fixes #1047 commit36479e2e8b
Author: Charles Hacskaylo <charlesh88@gmail.com> Date: Thu Jul 28 11:20:30 2016 -0700 [Frontend] Rename .s-btn to .s-button Fixes #1047 commit89e4f06de9
Author: Charles Hacskaylo <charlesh88@gmail.com> Date: Thu Jul 28 11:12:07 2016 -0700 [Frontend] Apply clickable-icon class Fixes #1047 commite65ca1cb8b
Author: Charles Hacskaylo <charlesh88@gmail.com> Date: Thu Jul 28 10:52:35 2016 -0700 [Frontend] Updated icons Fixes #1047 - Clock, timer, plots updated commit3e7eb98ac2
Author: Charles Hacskaylo <charlesh88@gmail.com> Date: Wed Jul 27 18:05:06 2016 -0700 [Frontend] Standardizing styles Fixes #1047 - Finessing mini-tab and making able to control per theme; s-clickable and s-toggle-icon classes cleaned up commit18e08074a8
Author: Charles Hacskaylo <charlesh88@gmail.com> Date: Wed Jul 27 16:33:25 2016 -0700 [Frontend] Tweaks to sass code Fixes #1047 - Splitter and mini-tab-icon elements commit44fda8d68f
Author: Charles Hacskaylo <charlesh88@gmail.com> Date: Wed Jul 27 09:24:53 2016 -0700 [Frontend] Multiple UI fixes and tweaks Fixes #1047 mini-tabs, splitters and bg-splash updated; moved position of Inspector collapse mini-tab to allow position transition; splitter-sm class added for Timelines; commit2aee8bc0d8
Author: Charles Hacskaylo <charlesh88@gmail.com> Date: Tue Jul 26 15:53:32 2016 -0700 [Frontend] Updated splash image Fixes #1047 commit624f09777f
Merge:ce7591f
4d2f159
Author: Charles Hacskaylo <charlesh88@gmail.com> Date: Tue Jul 26 15:02:55 2016 -0700 Merge remote-tracking branch 'origin/master' into frontend-1047 commitce7591f642
Author: Charles Hacskaylo <charlesh88@gmail.com> Date: Tue Jul 26 11:22:23 2016 -0700 [Frontend] Fixed clock indicator Fixes #1047 Restored no-collapse and float-right properties; commit5324c8edba
Author: Charles Hacskaylo <charlesh88@gmail.com> Date: Mon Jul 25 18:14:38 2016 -0700 [Frontend] New font and project file Fixes #1047 New font files that were missed in last commit; updated icomoon proj file; fixed missing char codes in glyphs.scss; commita3b2628883
Author: Charles Hacskaylo <charlesh88@gmail.com> Date: Mon Jul 25 17:54:00 2016 -0700 [Frontend] Revised and new icon art Fixes #1047 New icons for overlay and stacked plots; revised art and new description for Fixed Position object; commit8a41c6dbc7
Author: Charles Hacskaylo <charlesh88@gmail.com> Date: Mon Jul 25 17:52:41 2016 -0700 [Frontend] Removing glyph definitions Fixes #1047 Updated comment commiteb293b21eb
Author: Charles Hacskaylo <charlesh88@gmail.com> Date: Mon Jul 25 11:56:18 2016 -0700 [Frontend] Removing glyph definitions Fixes #1047 Removed commented code commitd8b1fb7781
Author: Charles Hacskaylo <charlesh88@gmail.com> Date: Mon Jul 25 11:17:45 2016 -0700 [Frontend] Removing glyph definitions; updating tests Fixes #1047 Search and removal of "glyph" definitions in bundle and other JS files; updating tests accordingly; commit650fbcc921
Author: Charles Hacskaylo <charlesh88@gmail.com> Date: Mon Jul 25 10:20:33 2016 -0700 [Frontend] Removing glyph definitions; updating tests Fixes #1047 Search and removal of "glyph" definitions in bundle and other JS files; updating tests accordingly; commit574b8bd5c1
Author: Charles Hacskaylo <charles.f.hacskaylo@nasa.gov> Date: Fri Jul 22 19:11:56 2016 -0700 [Frontend] Updated tests for glyph refactoring Fixes #1047 Fixing test cases commitdd84177441
Author: Charles Hacskaylo <charles.f.hacskaylo@nasa.gov> Date: Fri Jul 22 18:47:45 2016 -0700 [Frontend] Updated tests and examples for glyph refactoring Fixes #1047 WIP: Fixing test cases: fixed test in Timers that was expecting glyph return; commit2231f8e124
Author: Charles Hacskaylo <charles.f.hacskaylo@nasa.gov> Date: Thu Jul 21 17:45:20 2016 -0700 [Frontend] Updated tests for glyph refactoring Fixes #1047 Fixing test cases: fixed test in Timers that was expecting glyph return; commitae59ecfa97
Author: Charles Hacskaylo <charles.f.hacskaylo@nasa.gov> Date: Thu Jul 21 17:38:45 2016 -0700 [Frontend] Fixed style Fixes #1047 WIP: fixed line-height issue for t-item-icon class commitd43bff1445
Author: Charles Hacskaylo <charles.f.hacskaylo@nasa.gov> Date: Thu Jul 21 17:07:49 2016 -0700 [Frontend] Fixed colors Fixes #1047 WIP: fixed colors and style defs related to clickable icons commitc2db6f8805
Author: Charles Hacskaylo <charles.f.hacskaylo@nasa.gov> Date: Thu Jul 21 16:32:17 2016 -0700 [Frontend] Fixed colors Fixes #1047 WIP: fixed colors related to changes to btnSubtle mixin; new constants for clickable icons commita4753c44d1
Author: Charles Hacskaylo <charles.f.hacskaylo@nasa.gov> Date: Thu Jul 21 15:23:58 2016 -0700 [Frontend] Added new icon-brackets to symbols font Fixes #1047 WIP commit2704640b94
Author: Charles Hacskaylo <charles.f.hacskaylo@nasa.gov> Date: Thu Jul 21 15:11:28 2016 -0700 [Frontend] Normalize color constants Fixes #1047 Normalize color constant values for themes; consolidated and cleaned up btn-related mixins; fixed hover color issues commit421286c7e4
Author: Charles Hacskaylo <charles.f.hacskaylo@nasa.gov> Date: Thu Jul 21 14:10:13 2016 -0700 [Frontend] Convert new Fixed Position Display from glyphs Fixes #1047 WIP commita4111f3855
Author: Charles Hacskaylo <charles.f.hacskaylo@nasa.gov> Date: Thu Jul 21 14:07:38 2016 -0700 [Frontend] Refactoring Timeline glyphs, s-btn fixes Fixes #1047 WIP: Timeline-related glyph refactoring; s-btn styles and hover color fixes commit883f999215
Merge:9d9cabb
14f1a1f
Author: Charles Hacskaylo <charles.f.hacskaylo@nasa.gov> Date: Thu Jul 21 08:53:23 2016 -0700 Merge remote-tracking branch 'origin/master' into frontend-1047 commit9d9cabb760
Author: Charles Hacskaylo <charlesh88@gmail.com> Date: Tue Jul 19 16:20:20 2016 -0700 [Frontend] Glyph refactoring Fixes #1047 WIP: search, toolbar buttons; mods to flex archetypes commit28b663ce41
Author: Charles Hacskaylo <charlesh88@gmail.com> Date: Mon Jul 18 14:58:40 2016 -0700 [Frontend] Glyph-related style changes to toolbars and buttons Fixes #1047 Glyph refactoring WIP for toolbar buttons; Timeline glyph refactoring continued commita9326f572f
Author: Charles Hacskaylo <charlesh88@gmail.com> Date: Mon Jul 18 13:36:45 2016 -0700 [Frontend] Glyph-related style changes to Timelines Fixes #1047 Timeline glyph refactoring; Resource Graph icons in swimlanes now display grayed-out version when not added to the Resource Graph; minor color tweaks commitd6e1737803
Merge:88054e5
6176ca2
Author: Charles Hacskaylo <charlesh88@gmail.com> Date: Mon Jul 18 10:29:32 2016 -0700 [Frontend] Merge master into frontend-1047 Fixes #1047 Resolved conflict in icomoon.json file commit88054e5e8e
Author: Charles Hacskaylo <charles.f.hacskaylo@nasa.gov> Date: Thu Jun 30 16:55:40 2016 -0700 [Frontend] Refactoring glyphs to classes fixes #1047 In progress: significant mods to pane collapse/expand buttons and symbols, minor tweaks to splitter look, limits glyph definitions commit7c47343f5c
Author: Charles Hacskaylo <charles.f.hacskaylo@nasa.gov> Date: Thu Jun 30 16:52:21 2016 -0700 [Frontend] Refactoring glyphs to classes fixes #1047 In progress: updated font files glyphs, mostly for pane collapse icons commitfd00bdce54
Author: Charles Hacskaylo <charles.f.hacskaylo@nasa.gov> Date: Thu Jun 30 12:20:55 2016 -0700 [Frontend] Refactoring glyphs to classes fixes #1047 In progress: search menu commit272b4b649e
Author: Charles Hacskaylo <charles.f.hacskaylo@nasa.gov> Date: Thu Jun 30 12:11:25 2016 -0700 [Frontend] Refactoring glyphs to classes fixes #1047 In progress: moved limits classes out of _contants and into _glyphs; timers, entanglement context menu items, form validation, date picker. commit95d26e6fe7
Author: Charles Hacskaylo <charlesh88@gmail.com> Date: Wed Jun 29 14:18:12 2016 -0700 [Frontend] Refactoring glyphs to classes Fixes #1047 In-progress; limits commit26b30d96db
Author: Charles Hacskaylo <charlesh88@gmail.com> Date: Tue Jun 28 17:16:18 2016 -0700 [Frontend] Refactoring glyphs to classes Fixes #1047 In-progress; overlay close, search inputs, messages and message banners, ui-symbol removal in-progress. commit4e2a01ad85
Author: Charles Hacskaylo <charlesh88@gmail.com> Date: Tue Jun 28 16:21:05 2016 -0700 [Frontend] Refactoring glyphs to classes Fixes #1047 In-progress; .labeled added to .s-btn, removed .s-icon-btn commit521db3c3fe
Author: Charles Hacskaylo <charlesh88@gmail.com> Date: Tue Jun 28 16:10:54 2016 -0700 [Frontend] Refactoring glyphs to classes Fixes #1047 In-progress; plot options, imagery buttons, cleanups in buttons.scss, edit-action buttons, .s-btn .no-label class added. commit8bb8db69e6
Author: Charles Hacskaylo <charlesh88@gmail.com> Date: Tue Jun 28 14:47:52 2016 -0700 [Frontend] Refactoring glyphs to classes Fixes #1047 In-progress; indicators, notifications, actions, tests commit53ed0bfb22
Author: Charles Hacskaylo <charles.f.hacskaylo@nasa.gov> Date: Mon Jun 27 17:01:45 2016 -0700 [Frontend] Refactoring glyphs to classes fixes #1047 In progress, really: view icons, timer/clock commit47dc7f2f6b
Author: Charles Hacskaylo <charles.f.hacskaylo@nasa.gov> Date: Mon Jun 27 16:13:31 2016 -0700 [Frontend] Refactoring glyphs to classes fixes #1047 In progress: grid items commit2bd34f71be
Author: Charles Hacskaylo <charles.f.hacskaylo@nasa.gov> Date: Mon Jun 27 15:00:46 2016 -0700 [Frontend] Refactoring glyphs to classes fixes #1047 Context menus and associated actions, custom checkboxes, tree item being edited commitb561d4f60e
Author: Charles Hacskaylo <charles.f.hacskaylo@nasa.gov> Date: Mon Jun 27 14:27:56 2016 -0700 [Frontend] Refactoring glyphs to classes fixes #1047 In-progess: glyphs.scss now uses $vars to allow other scss to use a var instead of string literals; commit0cf4089620
Author: Charles Hacskaylo <charles.f.hacskaylo@nasa.gov> Date: Mon Jun 27 14:13:59 2016 -0700 [Frontend] Refactoring glyphs to classes fixes #1047 In-progess: tree-labels, unknown objects, object header commit46cae10905
Author: Charles Hacskaylo <charles.f.hacskaylo@nasa.gov> Date: Mon Jun 27 11:41:06 2016 -0700 [Frontend] Refactoring glyphs to classes fixes #1047 In-progess, menus and Create menu fixes commitfe3097707f
Merge:7d69ae4
652a50c
Author: Charles Hacskaylo <charles.f.hacskaylo@nasa.gov> Date: Mon Jun 27 11:20:55 2016 -0700 Merge remote-tracking branch 'origin/master' into frontend-1047 commit7d69ae401b
Author: Charles Hacskaylo <charles.f.hacskaylo@nasa.gov> Date: Thu Jun 23 15:59:56 2016 -0700 [Frontend] Refactoring glyphs to classes fixes #1047 In-progress, converting types, mods to Create Menu template commit18d9f3d6b2
Author: Charles Hacskaylo <charles.f.hacskaylo@nasa.gov> Date: Thu Jun 23 15:14:22 2016 -0700 [Frontend] Refactoring glyphs to classes fixes #1047 Very much In-progess: convert some controls; commite93a90a782
Author: Charles Hacskaylo <charles.f.hacskaylo@nasa.gov> Date: Thu Jun 23 11:28:07 2016 -0700 [Frontend] Refactoring glyphs to classes fixes #1047 Very much In-progess, classes for all symbols added to glyphs.scss; .menu cleaned up; commitdc670b22a6
Author: Charles Hacskaylo <charles.f.hacskaylo@nasa.gov> Date: Thu Jun 23 08:55:27 2016 -0700 [Frontend] Refactoring glyphs to classes fixes #1047 Very much In-progess, "icon-" selector, browse bar buttons commit8b29ccf3af
Author: Charles Hacskaylo <charles.f.hacskaylo@nasa.gov> Date: Wed Jun 22 23:15:24 2016 -0700 [Frontend] Refactoring glyphs to classes fixes #1047 Very much In-progess, s-btn and s-btn-menu refactoring commitf574ffed16
Author: Charles Hacskaylo <charles.f.hacskaylo@nasa.gov> Date: Wed Jun 22 14:37:34 2016 -0700 [Frontend] Refactoring glyphs to classes fixes #1047 In-progess, e900 > e904 commitbc62ee4565
Author: Charles Hacskaylo <charles.f.hacskaylo@nasa.gov> Date: Wed Jun 22 13:28:15 2016 -0700 [Frontend] Complete revamp of unicodes fixes #1047 New font files; no re-mapping yet in the app. commit614f0c6e9f
Author: Charles Hacskaylo <charles.f.hacskaylo@nasa.gov> Date: Wed Jun 22 13:23:18 2016 -0700 [Frontend] Complete revamp of unicodes fixes #1047 Moved all glyphs into PUA area of font, and re-organized by category. commit47bd4031d5
Author: Charles Hacskaylo <charlesh88@gmail.com> Date: Tue Jun 21 18:39:48 2016 -0700 [Frontend] Renaming symbols font files Fixes #1047 - Modified sass to point to renamed font files; - Added new 12px symbols font files to sass; commit22a51d6bbb
Author: Charles Hacskaylo <charlesh88@gmail.com> Date: Tue Jun 21 18:22:33 2016 -0700 [Frontend] Updating Icomoon project files Fixes #1047 - Renamed main project file; - Added new 12px symbols project file; commit13ded2fd84
Author: Charles Hacskaylo <charlesh88@gmail.com> Date: Tue Jun 21 18:19:27 2016 -0700 [Frontend] Added new 12px symbols font files Fixes #1047 commitaef5660dfd
Author: Charles Hacskaylo <charlesh88@gmail.com> Date: Tue Jun 21 18:16:56 2016 -0700 [Frontend] Renaming symbols font files Fixes #1047
Overview
This bundle contains a general implementation of forms in Open MCT. This allows forms to be expressed using a reasonably concise declarative syntax, and rendered as Angular templates in a consistent fashion.
Usage
To include a form with a declarative definition, use the mct-form
directive, e.g.:
<mct-form ng-model="myModel" structure="myStructure" name="myForm">
</mct-form>
Using toolbars is similar:
<mct-toolbar ng-model="myModel" structure="myStructure" name="myToolbar">
</mct-toolbar>
The attributes utilized by this form are as follows:
ng-model
: The object which should contain the full form input. Individual fields in this model are bound to individual controls; the names used for these fields are provided in the form structure (see below).structure
: The structure of the form; e.g. sections, rows, their names, and so forth. The value of this attribute should be an Angular expression.name
: The name in the containing scope under which to publish form "meta-state", e.g.$valid
,$dirty
, etc. This is as the behavior ofng-form
. Passed as plain text in the attribute.
Form structure
A form's structure is described as a JavaScript object in the following form:
{
"name": ... title to display for the form, as a string ...,
"sections": [
{
"name": ... title to display for the section ...,
"rows": [
{
"name": ... title to display for this row ...,
"control": ... symbolic key for the control ...,
"key": ... field name in ng-model ...
"pattern": ... optional, reg exp to match against ...
"required": ... optional boolean ...
"options": [
"name": ... name to display (e.g. in a select) ...,
"value": ... value to store in the model ...
]
},
... and other rows ...
]
},
... and other sections ...
]
}
Note that pattern
may be specified as a string, to simplify storing
for structures as JSON when necessary. The string should be given in
a form appropriate to pass to a RegExp
constructor.
Toolbar structure
A toolbar's structure is described similarly to forms, except that there
is no notion of rows; instead, there are items
.
{
"name": ... title to display for the form, as a string ...,
"sections": [
{
"name": ... title to display for the section ...,
"items": [
{
"name": ... title to display for this row ...,
"control": ... symbolic key for the control ...,
"key": ... field name in ng-model ...
"pattern": ... optional, reg exp to match against ...
"required": ... optional boolean ...
"options": [
"name": ... name to display (e.g. in a select) ...,
"value": ... value to store in the model ...
],
"disabled": ... true if control should be disabled ...
"size": ... size of the control (for textfields) ...
"click": ... function to invoke (for buttons) ...
"glyph": ... glyph to display (for buttons) ...
"text": ... text withiin control (for buttons) ...
},
... and other rows ...
]
},
... and other sections ...
]
}
Note that pattern
may be specified as a string, to simplify storing
for structures as JSON when necessary. The string should be given in
a form appropriate to pass to a RegExp
constructor.
Adding controls
Four standard control types are included in the forms bundle:
textfield
: An area to enter plain text.select
: A drop-down list of options.checkbox
: A box which may be checked/unchecked.color
: A color picker.button
: A button.datetime
: An input for UTC date/time entry; gives result as a UNIX timestamp, in milliseconds since start of 1970, UTC.
New controls may be added as extensions of the controls
category.
Extensions of this category have two properites:
key
: The symbolic name for this control (matched against thecontrol
field in rows of the form structure).templateUrl
: The URL to the control's Angular template, relative to the resources directory of the bundle which exposes the extension.
Within the template for a control, the following variables will be included in scope:
ngModel
: The model where form input will be stored. Notably we also need to look atfield
(see below) to determine which field in the model should be modified.ngRequired
: True if input is required.ngPattern
: The pattern to match against (for text entry.)options
: The options for this control, as passed from theoptions
property of an individual row.field
: Name of the field inngModel
which will hold the value for this control.