Restrict actions which cause mutation of domain objects to
types of domain objects which can be created. (This does not
include Packet or Telemetry Point, WTD-723.)
Add tests for capabilities which have been updated to work
when only a model (and not whole objects) are cached; that
change was introduced to prevent misbehavior of the Remove
action in Edit mode, WTD-473.
Utilize model cache, permitting object models in edit mode to
be reused across multiple distinct instances with unique
contexts (unique contexts are necessary to avoid ambiguity in
the Remove action, WTD-473).
To avoid infinite digest cycles as a consequence of this,
refactor context/composition capability wrappers such that the
former is idempotent (since idempotence is no longer ensured
by the EditableDomainObjectCache) to avoid infinite digest
errors in Edit mode.
Implement a cache to store domain object models,
to allow the cache for individual objects to distinguish
objects based on their parentage and avoid ambiguous
Remove actions (WTD-473.)
Add a spec for an editable model cache; this will behave
similarly to the existing domain object cache, except
that it will cache only models. Use of this will permit
multiple instances of editable objects to be created with
unique contexts (that is, distinct parent objects accessible
via the context capability) which in turn will avoid the
ambiguous parentage which results in unexpected behavior of
the Remove action in Edit mode, WTD-473.
Add tests to verify that directives stop polling after their
scope is destroyed (to prevent resource leaks); those changes
address resource leaks identified in the context of WTD-717.
Deactive mct-resize when its containing scope is destroyed;
that is, don't go on polling for size changes indefinitely.
Issue discovered/addressed in the context of investigating
sluggishness of plotting in WTD-717.
Add tests and JSDoc to the style sheet loader introduced to
allow bundles to introduce their own CSS files through the
platform's regular extension mechanism; WTD-591.
Update tests for dialog/overlay services to match
changes introduced to simplify implementation of
information overlays, such as the About dialog, WTD-667.
For overlays that do not need to do special things when a
window is dismissed, provide a default cancel function.
This simplifies implementation of the information-only
dialogs, such as the About dialog, WTD-667.
Refactor overlay templates to separate out the overlay
container from the inner dialog containing the form;
this permits the easy reuse of that overlay container
to supply a non-form-like About dialog, WTD-667.
Don't pass a domainObject instance into mct-representation
until a view for that specific domainObject is available;
this avoids ordering issues where a new domainObject is
passed briefly to controllers in represented views before
a event is issued, which can result in undesired
behavior for views that need to manage resources (such as
the subscriptions used to support telemetry retrieved
from the WARP Server, WTD-644.
Restore wait spinner in tree (missed during Angular transition);
this feedback is important when waiting for the contents of
the Packets node (WTD-644) to load.
Work around issues in platform which manifest as bugs or
latency issues when attempting to visualize telemetry
from the WARP Server. Specifically:
* Handle the possibility that there is no matching
representation for an object from EditRepresenter.
* Don't attempt to look up colon-separated domain object
identifiers from persistence. This is a workaround to
avoid latency issues from excessive persistence calls;
filed WTD-659 to improve this solution.
Changes made to support resolution of WTD-644.
Complete test coverage for new scripts added to bundle
platform/commonUI/general in suport of autoflow
tabular views, WTD-614. Specifically, these provide a
directive to watch element sizes, and a controller to
help as an intermediary between getter-setter style
ngModels, and plain assignable ones.
Reorganize folder strucutre for tests in bundle
platform/commonUI/general; source folder structure
has been modified to accommodate additional classes
added to support autoflow tabular views, WTD-614,
so test folder needs to be reorganized accordingly
Reorganize sources for bundle platform/commonUI/general;
number of classes here has grown as a consequence of
additions for WTD-614 and so an additional layer of
organization is helpful.
Conflicts:
platform/commonUI/general/bundle.json
platform/commonUI/general/src/directives/MCTResize.js
Add a utility controller for interacting with
getter-setter style ngModels (similar to ng-model-options
with getterSetter: true, but support for that is not
present in the current version of Angular.) Specifically,
this is used to support the input filter control, which
in turn is used within the autoflow tabular view. WTD-614.
Repair tree node auto-expand/highlight behavior, to
address WTD-627. Specifically:
* Check the full path when deciding to highlight,
instead of just the parent. This avoids duplicate highlighting
in cases where the same parent is visible in two subtrees.
* Don't make a redundant getId call in path-checking;
domain object paths have already been mapped to identifier
paths at this point. This avoids erroneous auto-expansion of
the whole tree.
Add skeleton specs for the bottom bar controller (introduced
to handle display of indicators introduced as extensions)
and the Couch indicator (introduced to exercise the above,
and to report connection status relative to the Couch
database.) WTD-608.
Add a commit function to scope from the edit representer;
this avoids issues trying to transparently detect and
persist changes made during edit mode, while still requiring
only minimal action from individual views. WTD-535.
Add entries for new scripts to test suites, to ensure
tests fail until scripts added to support transition
of Layout object/view (WTD-535) have been completed.
WTD-535.
Get a reference to the body element at link-time,
instead of instantiation time, from the mct-drag
directive. Failure to do so causes the reference
to fall out of date when switching between Browse
and Edit mode.
Supports position/sizing interactions for Layout
view, WTD-535.
Auto-expand tree nodes on a timeout, instead of immediately.
This is necessary in cases where auto-expansion several
layers deep occurs; if done immediately, each expansion
will trigger a new digest cycle, which at a certain depth
will appear to Angular as unstable.
Done in the context of WTD-535.
Add an EditRepresenter which detects changes to domain
object model or view configuration and, when these
occur, triggers mutation and persistence of the domain
object. (Note that in Edit mode, 'persistence' only
flags an object as dirty; actual persistence does not
occur until the user chooses Save.)
This supports editing of position/size in Layout mode,
and the persistence of those changes. WTD-535
Properly reset the initial drag position tracked by the
mct-drag position so that multiple drags upon the same
element are correctly offset from an initial position.
Also, preventDefault from events to avoid selection
highlights during drag.
Supports editing Layout objects, for WTD-535.
Move spec for view switcher from bundle
platform/commonUI/browse to bundle
platform/commonUI/general to reflect refactoring
to simplify usage in other places (including in
Layouts, which are being transitioned for
WTD-535.)
Refactor view switcher to simplify it; treat it
as a representation of a domain object that modifies
an ng-model. This simplifies reuse, e.g. in frames
within a layout. WTD-535.
Add placeholder spec for the LocatorController, introduced
to support forms used from the Create menu. Part of ongoing
integration of forms bundle, WTD-593.
Use ng-model when communicating state to/from the
tree in browse mode. This will simplify implementation
of the Locator control, which also uses a tree, but
which should not set navigation state. WTD-593.
Reorganize templates associated with the Create menu in
preparation for adding the Locator control, used to
specify the destination folder for object creation.
WTD-593.
Fix FullscreenActionSpec such that it will execute on
command line; the global screenfull dependency behaves
differently during attempts to spy on methods from
the command line build, so replace it entirely.
Concludes work on WTD-574 in preparation to submit for
review.
Fix a defect in the Save/Cancel buttons in Edit mode
that was causing the first click to be missed; this
was due to Angular's inability to detect when a
native promise (as opposed to one from ) had been
resolved.
Since the Editor capability is introduced indirectly
and is a few degrees of separation removed from
the declared extension layer (where we would be able
to get a reference to ), and all we need to do is
make something look Promise-like, a convenience
function to do this is added.
Part of ongoing transition of common user interface
elements, WTD-574.
Fill in specs for CreationService, which supports the
Create action, which, in turn, is included to support
the Create button in Browse mode. Part of the transition
of common user interface elements for WTD-574.
Fill in spec for the controller which maintains a set of
applicable and selected view options to populate the
view switcher. Part of Browse mode and, in turn, part
of the common user interface elements that are being
transitioned for WTD-574.
Add in-line docs for bundle platform/commonUI/browse,
which implements Browse mode, one of the common user
interface bundles being transitioned in WTD-574.
Add JSDoc to Create-related classes and remove the
UUIDService (replaced by third-party lib) to reduce
amount of code to cover and prepare for code review,
as part of ongoing transition of common user interface
elements, WTD-574.
Fill in specs for bundle platform/commonUI/dialog,
which provides the ability to show dialogs. One
of the common user interface elements being transitioned
for WTD-574.