1
0
Fork 0
Commit Graph

751 Commits (3fbe9b31ff9b0e4700332fa23168ecc7ad0a09cc)

Author SHA1 Message Date
Mike Gerwitz 98fefd537e Version bump 0.6.{0=>1} 2016-04-20 12:15:12 -04:00
Mike Gerwitz 4079ac7a8b Cause-based field validation support 2016-04-20 12:12:37 -04:00
Mike Gerwitz f624710451 Consider field failure cause when checking fixes
This maintains BC with the old string-based system.

* src/validate/ValidStateMonitor.js (_getCause): Added.
(detectFixes): Consider failure cause if available when checking for fixes.
2016-04-20 12:11:17 -04:00
Mike Gerwitz f784db5f2b Ensure that Failure objects will work transparently in ValidStateMonitor
This is to facilitate a transition to Failure without a BC break.

* test/validate/ValidStateMonitorTest.js: Ensure that replacing messages
with Failure will continue to operate as expected.
2016-04-20 11:12:08 -04:00
Mike Gerwitz ac5d04e9a4 Add validation Failure
* src/validate/Failure.js: Added
* test/validate/FailureTtest.js: Added
2016-04-20 10:31:49 -04:00
Mike Gerwitz c83af2fb40 Version bump 0.{5.1=>6.0} 2016-04-20 08:46:48 -04:00
Mike Gerwitz ddffb4e301 No failure event if failures have not changed in ValidStateMonitor
* src/validate/ValidStateMonitor.js (mergeFailures): Return count of new
failures

* test/validate/ValidStateMonitorTest.js: Respective test added
2016-04-19 11:29:14 -04:00
Mike Gerwitz 553a020554 Flat group addition 2016-04-19 10:52:10 -04:00
Mike Gerwitz 3a2a5642b6 Add FlatGroupUi
This solves the problem of trying to show/hide indexes that do not even
exist on the DOM.

There are no tests for this due to the complexity of the parent; refactoring
is needed. :(

* src/ui/group/FlatGroupUi: Added
2016-04-19 10:51:15 -04:00
Mike Gerwitz fcce2e814a Fields with index greater than total in group are not visible
* src/ui/group/GroupUi (isFieldVisible): Indexes greater than the current
index count will no longer be considered to be visible.
2016-04-19 10:50:32 -04:00
Mike Gerwitz 7651e9499f Remove debugging console.log from XhrHttpImplTest
* test/dapi/http/XhrHttpImplTest.js: Remove accidentally-committed
console.log
2016-04-19 00:05:47 -04:00
Mike Gerwitz 5984c2619f Version bump 0.5.{0=>1} 2016-04-18 10:47:57 -04:00
Mike Gerwitz 4e57500077 Makefile dist corrections
As it turns out, the main index.js was missing, and you couldn't build from
the distribution because of a missing tools/!

* Makefile.am: index.js no longer missing from distribution.
tools/ no longer missing from distribution.
2016-04-18 10:47:11 -04:00
Mike Gerwitz ca38cb97da Version bump 1.{4.1=>5.0} 2016-04-18 10:11:41 -04:00
Mike Gerwitz 2722b0b29a Data API liberation and improvment
Not all aspects of the Data API are liberated quite yet, but this is the
bulk of it.
2016-04-18 10:10:29 -04:00
Mike Gerwitz 6d51dc55eb Add DataApiManager field stale flag
This will allow it to know when a request needs to be re-made at a later
time.

* src/dapi/DataApiManager (fieldStale, isFieldStale): Added
(fieldNotReady): Check stale status of field
2016-04-15 12:24:08 -04:00
Mike Gerwitz 3e84f18c56 Extract Data API management into DataApiManager
This is extracted from a not-yet-liberated Program class (that you really
don't want to see).

* src/dapi/DataApiManager.js: Added
2016-04-15 12:23:31 -04:00
Mike Gerwitz d37a8aab12 Liberate dapis
* src/bucket/Bucket.js: Added
* src/dapi/BucketDataApi.js: Added
* src/dapi/RestrictedDataApi.js: Added
* src/dapi/StaticAdditionDataApi.js: Added
2016-04-14 13:53:35 -04:00
Mike Gerwitz a6115018d2 Add x-www-form-urlencoded header for XhrHttpImpl
It might be the case that we may want to post raw data in the future; in
fact, I can guarantee it.  We'll cross that bridge when we come to it.

* src/dapi/http/XhrHttpImpl.js (openRequest): Set ContentType header
on POST

* test/dapi/http/XhrHttpImplTest.js: Modified accordingly
2016-04-14 12:08:00 -04:00
Mike Gerwitz 413df53f4f Version bump 0.{4.0=>4.1} 2016-04-13 08:28:09 -04:00
Mike Gerwitz bc0d230246 Remove trailing comma from ValidStateMonitor
Yes, the reason is IE.

* src/validate/ValidStateMonitor.js: Remove trailing comma after method
definition list.
2016-04-13 08:27:16 -04:00
Mike Gerwitz 7ed15eed92 Version bump 0.{3.3=>4.0} 2016-04-12 16:40:22 -04:00
Mike Gerwitz cbfd42a264 ValidStateMonitor added
This supercedes ClientFieldValidator; callers should handle validations and
notify this new class.

* src/validate/BucketDataValidator.js: Added
* src/validate/ValidStateMonitor.js: New
* test/validate/ValidStateMonitorTest.js: New
2016-04-12 16:39:53 -04:00
Mike Gerwitz 9dfc7c04ff Remove ClientFieldValidator
Use ValidStateMonitor instead.

* src/validate/ClientFieldValidator.js: Deleted
2016-04-12 14:06:57 -04:00
Mike Gerwitz 659c820eb6 Add ValidStateMonitor
The intent is to ultimately replace ClientFieldValidator with this and
individual validators that interact with it.

* src/validate/ValidStateMonitor.js: Added
* test/validate/ValidStateMonitorTest.js: Added
2016-04-12 13:57:34 -04:00
Mike Gerwitz 88313c016e Accept full bucket data for ClientFieldValidator#validate
This allows #validate to be used generically for any type of validation, not
just change events.

* src/validate/ClientFieldValidator.js (validate):
Accept and propagate all bucket data to `validate` event listeners.
2016-04-11 11:53:45 -04:00
Mike Gerwitz fefe2dae41 Remove ClientFieldValidator#monitor
* src/validate/ClientFieldValidator.js (monitor): Remove
This just concerns itself with something that it should be concerned about;
let the caller handle monitoring, now that we have a #validate method.
2016-04-11 11:50:27 -04:00
Mike Gerwitz 0ac16a3505 Add ClientFieldValidator#validate
* src/validate/ClientFieldValidator (validate): Added
Extracted logic that previously was exclusive to #monitor; that method will
now simply invoke #validate.
2016-04-11 11:29:34 -04:00
Mike Gerwitz 6f17e704a6 Liberate {ClientField,BucketData}Validator
* src/validate/BucketDataValidator.js: Added
* src/validate/ClientFieldValidator.js: Added
2016-04-11 11:18:18 -04:00
Mike Gerwitz 8cc73a4ca8 Version bump v0.3.{2=>3} 2016-04-06 10:45:28 -04:00
Mike Gerwitz bada152d52 {Error=>DomFieldNotFound} error when DOM field is not found
* src/ui/field/DomField.js (queryElement): {Error=>DomFieldNotFoundError}
when a DOM element cannot be located for the field.

* src/ui/field/DomFieldNotFoundError.js: Added
2016-04-06 10:44:11 -04:00
Mike Gerwitz 27546e05e2 Version bump v0.3.{1=>2} 2016-04-05 11:55:23 -04:00
Mike Gerwitz a145bfe1f8 Use HTMLElement#setAttribute in NaFieldStyler for IE<9
element.style is not supported as an lvalue in IE<9.

All the rest of the sane world that doesn't support IE<9 should be laughing
at me in pity right now.

* src/ui/styler/NaFieldStyler.js (hideField):
Use HTMLElement#setAttribute instead of HTMLElement#style as an lvalue

* test/ui/styler/NaFieldStylerTest.js: Modify test cases to check for
invocation of setAttribute
2016-04-05 11:53:30 -04:00
Mike Gerwitz 573e73cde9 Version bump v0.3.{0=>1} 2016-04-05 09:00:43 -04:00
Mike Gerwitz c29b935f5c NaFieldStylerAnimation properly re-show element in IE
* src/ui/styler/NaFieldStylerAnimation (showField):
The 'display:none' style was retained in certain circumstances after
animation in IE; this fixes that.
2016-04-05 08:59:43 -04:00
Mike Gerwitz 65feaa0c7b v0.{2=>3}.0 bump 2016-04-05 00:17:02 -04:00
Mike Gerwitz 31f67b6719 GroupUi show/hide based on liza DOM API
This isn't entirely complete---some groups don't make use of it (namely
TableGroupUi).  But it's a start.
2016-04-05 00:15:34 -04:00
Mike Gerwitz 921880cb35 {Tabbed,}GroupUi now show/hide using FieldStyler
Yes, this is a mess; I'm pretty much out of time now.

* src/ui/group/GroupUi.js (doShowField, doHideField):
Use field styler

* src/ui/group/TabbedGroupUi (doShowField, doHideField):
Defer to supertype
2016-04-05 00:07:26 -04:00
Mike Gerwitz d8fc549700 DomFieldFactory falls back to element lookups by id
* src/ui/field/DomFieldFactory (create):
Use ElementStyler#getElementByNameLax
2016-04-05 00:05:07 -04:00
Mike Gerwitz afa14ccc39 Add ElementStyler#getFieldByNameLax
Not that I want to keep adding to this monstrosity; no time to refactor
right now.

* src/ui/ElementStyler.js (getFieldByNameLax): Added
2016-04-05 00:03:47 -04:00
Mike Gerwitz 1e332a5a72 Add NaFieldStylerAnimation
I didn't really want to add this back in, but others in the group
thought that change might be bad for users.  This animation thing is
just so sloppy, I think.

* src/ui/styler/NaFieldStylerAnimation.js: Added
2016-04-05 00:01:08 -04:00
Mike Gerwitz befca68110 Extract NaFieldStyler show/hide actions into protected methods
* src/ui/styler/NaFieldStyler.js (showField, hideField): Added
* test/ui/styler/NaFieldStyler.js: Added respective tests
2016-04-04 23:59:57 -04:00
Mike Gerwitz e1c2194962 DomField will now consider that field element might have changed on DOM
This solves styling and DOM mutation issues.  For now.

* src/ui/field/DomField.js (queryElement, updateElement): Added
(_getElement): Extracted into queryElement and updated to re-query DOM each
time, returning last match if not found.
(applyStyle, revokeStyle): Defers style applied predicate to style itself
2016-04-04 15:35:43 -04:00
Mike Gerwitz 40505c3328 FieldStyler#isApplied added
Field stylers now determine whether they've been applied to the target field
on their own, which solves the problem of the system getting out of sync.

* src/ui/styler/ErrorFieldStyler.js (isApplied): Added
* src/ui/styler/FieldStyler.js (isApplied): Added
* src/ui/styler/NaFieldStyler.js (isApplied): Added
* test/ui/styler/NaFieldStylerTest.js: Test for #isApplied
2016-04-04 15:25:52 -04:00
Mike Gerwitz ae9f2a7cab NaFieldStyler remove subfields from DOM
This is necessarily primarily for a specific case: option elements in IE,
which cannot be styled. >:O

This implementation is not complete: we want to re-attach the field at the
same position it was at before it was detached.  This might not be
trivial---imagine if its sibling was also detached.

* src/ui/styler/NaFieldStyler.js (isSubField): Receive field instead of
element (to check parent)
(applyStyle, revokeStyle): Detach and re-attach field from/to DOM
respectively

* test/ui/styler/NaFieldStylerTest.js: Associated tests
2016-04-04 12:30:21 -04:00
Mike Gerwitz 782e4832af Cache DomField parent element
* src/ui/field/DomField.js (getParentElement):
Renamed from getParent.  Cache parent element in memory so that we have a
reference for re-attaching fields to the DOM.
(getParent): Public API addition; call getParentElement
2016-04-04 12:30:21 -04:00
Mike Gerwitz fa37850408 Proper NaFieldStyler sub-field hiding support
* src/ui/styler/NaFieldStyler.js (_isSubField): Added
(applyStyle, revokeStyle): Will not hide parents of sub-fields
2016-04-04 12:30:21 -04:00
Mike Gerwitz 064fcd00fd Abort TabbedGroupUi hide when deferred
* src/ui/group/TabbedGroupUi.js (doShowField, doHideField):
Return from method after setting deferred operation.  This previously
did not fail because jQuery didn't care if operations are not
performed on field matches.
2016-04-04 12:30:05 -04:00
Mike Gerwitz eb073f5db0 DomField#getParent proper nodeName comparison
* src/ui/field/DomFieldFactory (getParent): Convert parent nodeName to
uppercase before comparison (it might not always be)
2016-04-04 11:17:14 -04:00
Mike Gerwitz edbc45a79b DomField#getContainingRow handling of direct row reference
* src/ui/field/DomField.js (getContainingRow): Return self if DT or DD

Certain types of elements (e.g. statics) are compiled such that the direct
reference is the row itself.
2016-04-04 11:17:14 -04:00