* fix view names, and persist sort order across list views by persisting in local storage
* use keystring as key
* add openmct namespace to localstorage persisted listview-sort-order to avoid name collision, rename key in composition-loader to objectKeyString
* Add delete button in the toolbar for removing items
* Mutate composition if there are no telemetry objects. Select the parent layout after deleting an item.
* Saving work
* Watch for index in the components and update it in the context.
* Select the parent after a composition is removed.
* Address reviewer's feedback.
- Rename mutatComposition() to removeFromComposition().
- Inline logic for filtering composition
- Use separate branches for each item type in trackItem().
* Address reviewer's requested changes
* Create button disabled when editing
* New disabled mixin;
* Tree styling
* Fixed icons for fullscreen toggle button
* Local controls fixed for Imagery and Plots
* Range control styling updated;
* Plot styling, significant mods
* Disclosure controls improved;
* New _legacy-plots.scss file added, no longer loads legacy plot SCSS
files;
* Removed 12px crosshair cursor in legend hover;
* Inspector tree styling in plot options
* Fix z-indexing related to Overlays
[tree] fixes warning from viewControl about improper mutation in child component
[tree] show links in tree
[toolbar] close open menu when clicking on another menu.
* Create button disabled when editing
- New disabled mixin;
- Selector def for .is-editing .c-create-button;
* Symbolsfont install generation, Elements pool
- Moved font src statement to prevent genning of symbolsfont in wrong
directory locations;
- Elements pool styling WIP, todo: hover item styles, class naming;
* Tree styling
- Hover behavior refined;
- Styling for .is-selected state;
* Fixed icons for fullscreen toggle button
* Tree-related styling for is-selected, is-being-edited
* Support category arrays for legacy actions
* Fixed object path listener. Removed old context menus
* Removed old fullscreen action and Screenfull dependency
* Restore confirmation dialog on remove
* Restored tests
* Remove unused legacy policies
* WIP re-implementation of Preview action
* WIP for Charles to take a look at flex issues
* Disable legacy preview action
* Style and markup fixes for new Preview
- LegacyViewProvider modded to wrap legacy elements in .u-contents div;
- Added selector that automatically defines display: contents on
`no-class` divs injected into __object-view;
- Unit tested with legacy and new components (telem tables, plot view,
Notebook, etc.)
* Tweak z-indexes, fix open in new tab action, add 'done' button
* Removed legacy action
* reuse contextMenuDropDown component
* Hacky WIP
* WIP
* check for 'domainobject' in data transfer
* Metadata manager can return default display value
* Refactor subobject and telemetry views to use layout frame
* Use data domainObject
* Get metadata for selected object.
* Don't inject lodash via vue
* move selection to specific layout types
* restore toolbar functionality
* Support creating line
* Add controls for setting x, y, x2 and y2 for lines from the toolbar.
* Initial attempt at resizing lines
* Check for duplicate panel
* line resize handles working
* Get Text and Box elements working.
* Refactor image view to use layout frame
* Fix drill in
* Check for object before accessing the identifier to avoid type error.
* Add inspectable class if item is subobject or telemetry view.
* Delete unused files
* remove unused imports
* Fix typos
* Fix cssClass and objectPath
* object can be undefined so check for it not being undefined before adding a listener.
* Set cssClass when domain object is available
* Get user input for text and image in the toolbar when adding element.
* Theme refactoring
- New hero, header and body font mixins added to theme files;
- Mods to body, griditem, frames, browsebar, etc. to use new font
mixins;
- Moved symbolsfont definition into _constants.scss;
* Tweak - make SubobjectView use header font;
* Add new theme 'maelstrom';
* Add comment
* Remove deprecated .svg and .eot symbol font files
* only store identifiers in frames
* move drop hints outside frame
* fix resizing
* fix drag and drop frames
* fix reordering of columns
* multiple improvements
* fix styling for drop hint in empty container
* fix frame reorder in same column
* better drop target show logic
* better frame drop to logic
* fix container reordering
* add uuids for frames and containers to prevent clashing
* toolbar updates
* use shared subobject component to ease styling
* add type cssClass to subobject component header, and delete frame header vue file
* add context menu in subobject views
* change height and width to size for both frames and containers
* remove uneccesary methods from resizeHanfle and inline logic instead
* remove left click logic from context-menu mixin, add a click handler to dropDownContextMenu to show menu
* make a mixin to listen for isEditing
* encapsulate drop hints, and pass allowDrop logic to check if drop hint is valid
* use event.dataTransfer instead of vue events for container reordering
* remove vue events for frame dnd and use html events
* better implementation of toolbar
* remove unused event
* fix container resizing when adding new container
* make reviewer requested changes
* add containerId to event vs having a JSON object
* watch domainObject from flexible layouts and pass down to components
* change domainObject directly on add Container
* update domainObject on change, and cahnge toolBarProvider to function that returns an object
* fix plugin
* set domainObject as data property in felxibleLayouts
* use class instead of inline styles
* Cleanup code
inline this.$el for components that measure their own size
replace snapToPercentage with Math.round
inject object as layoutObject, not dObject.
* reuse sizing logic between frames and containers
* clean up handlers
split handlers for createFrame and moveFrame events in container.
reorganize methods for each to clarify how they operate.
* ObjectView only stops propagation when it handles event
* use ids in toolbar to ensure correct items are mutated
Because index may change due to drag and drop events,
deleteFrame and deleteContainer should operate using identifiers
instead of index.
Also, generate path for hasFrame using indexes when object is
selected, otherwise hasFrame may refer to the incorrect path.
* - Show "Add" button in the toolbar when a display layout object is selected.
- Add a flag to object view's show() method to indicate immediate selection of the view. If the view implements getSelectionContext() use it, otherwise set to default context.
* Create a component for each element.
* Saving work
* Add element factory for creating new instances of elements.
* Mutate element when a new one added and get elements when the component is mounted.
* Add create() method for creating a new telemetry and element in their respective view configuration.
* Add some of the toolbar controls for box, text, image and line elements. Also, add X, Y, Width and Height controls for alhpanumeric elements.
* Pass name to addElement as type.
* Add c-frame-inspectable class if item is inspectable.
* Clean up
* Hide frame for summary widgets by default.
* Better styling for editing
- s-selected on shell__main-container;
- Better edit grid coloring for espresso;
* - Update toolbar-button to support dialogs.
- Update toolbar to construct a value object based on form keys if a toolbar item has a dialogi, and mutate the form keys.
- Add toolbar controls for editing text and url for 'Text' and 'Image' elements respectively.
* Editing-related changes
- Removed hard-coded .is-selectable and .is-moveable from
LayoutItem.vue, updates accordingly to _global.scss;
- Theme constants updated;
- TODO: apply changes to Flexible Layouts;
* Better defaults
- Better default grid size and object size;
* - Fix toolbar-input to read value as a number if type is 'number'.
- Remove rawPosition from view configuration and instead get the position and dimensions from the properties (x, y, width and height) directly.
- Set the style property on the view configuration instead of the layout item.
- Move the logic for updating the style to the view configuration.
* Fix default dimensions for telemetry items and subobjects since the default grid size is changed.
* Remove form definition for display layout type.
* Reword the comment
* Let subobject view configuration handle new panel creation.
* Add default grid size back and remove unused code.
* Pass in only the needed method.
* Define default position in case the object is not added via drag 'n drop.
* Adding jsdoc to Context Menu Registry
* Remove attachTo function - make context menu gesture a mixin. Update object path when objects change.
* Added context menu from arrow button. Some minor refactoring
* Clarify variable naming
* Moved Context Menu component
* Reorder function definitions
* Addressed code review comments
* temporarily disable remove dialog which is broken
* temporarily remove broken context action policy
* let openmct generate legacy objects
* ensure composition loads in specified order
* redo nav and add context menu support to tree
* componentize grid and list view, add context menus
* first cut of flexible layout
* better drag handling
* add drop targets to every row
* enable drag and drop between columns and rows
* enable persistance
* add editing capability
* chage rows to frames and columns to containers, switch draggable to whole frame object
* Merge latest, resolve conflicts.
Need to just apply these changes to Deep's branch and push
* enhancements to drag targets
* WIP in flexibleLayout, container.vue files
- Refined classes and markup;
- min-width changed to flex-basis;
- Added toggle direction button;
* Significant progress but still WIP
- Refined classes and markup;
- Layout toggling working;
- Add Container working properly;
- TODOs: fix sizing in empty container, fix bordering, more refinements;
* add resizing of frames - still wip
* Significant enhancements
- Moved all CSS into flexibleLayout.vue;
- Layout now improved for empty container and drop hints;
- Proportional sizing now better for frames and containers;
* Resize handle WIP
* abstract splitter and logic into self contained component that will emit an event when mouse is moving
* Resize handle WIP
- Minor tweak to handle padding and hover;
* add container resize todo persist
* persist container resize
* add frame header, fix column resize on last column
* Refinements to resize-handle
- Fixed sizing;
- Transition on hover;
- TODOs: needs is-dragging to maintain hover style while dragging;
* fix drop hints showing after drop
* move header
* improve mouse move gesture
* Added frame size indicator
* add snapto functionality
* Refined container and frame size indicators
- Also added overflow handling to l-grid-view
* improve resizing logic
* add selection on frames
* Various resizing-frames related
- Fixed overflow - now frame widths can be collapsed to 5% minimum;
- Sizing indicators refined, better positioning and layout;
- Added grippy drag indicators to column heads;
- TODOs: add column head cursors and hover effects, hide indicators
when not in edit mode, handle nested layout and flex layouts while
editing
* Selecting and emtpy layout messaging
- Better empty layout message;
- Moved s-selected to proper element in c-fl-frame;
* Drop-hint and sizing related various
- Drop-hints for first placeholder container now display;
- Drop-hints moved into drag-wrapper;
* add delete frame
* Editing various
- Adjust Snow theme constants related to editing;
- Changed delete message wording;
* Updated icon and added description
* add toggle and remove container to toolbar
* miscellaneous cleanup
* add container button to toolbar
* improve toolbar
* code cleanup in plugin.js
* Various icons, toolbar separator
- Copied in c-toolbar__separator and associated changes in _controls
from Pegah's layout_alpha branch - may have conflicts later.
- Added separator to FL toolbar;
- Updated icons for grippy-ew, toolbar icons;
* add check for empty containers"
* logic to resize frames on drop
* fix delete frame and persisting toolbar
* Significant changes to edit / selection styling
- Both Flexible and fixed Display Layouts addressed;
- Both themes addressed;
- Changed drop-hint icon to icon-plus;
* add correct icons to frame header and fix toolbars showing up in wrong views
* Moving and resizing various
- Cursors;
- Grippy added to frame resize-handle, WIP!;
* add container reordering
* add frame/no frame support to toolbar'
* fix regression of resize handles showing after last frame in container
* force selection of flexible-layout when editing is first clicked, to apply correct toolbar
* make changes to simplify toolbar
* Modified sizing algorithm slightly
* make changes reviewer requested
* fix regression that causes top drop hint to not show
* remove unused variables and bind events to vue
* unsub selection before destroy
* Support displaying and adding telemerty points in display layouts.
* Create TelemetryView component. Also disable the toolbar frame button for telemetry objects.
* Add 'components' directory and move the toolbar provider definition to a separate file.
* Saving work
* Saving work
* Saving work
* Fix telemetryClass
* Fixes for .no-frame in new markup structure
- CSS cleaned up and reorganized;
- Added .c-telemetry-view classes;
* Add computed properties for hiding label and value.
* Filter value meta data based on the item config display mode.
* Add drop down menus for display mode and value
* Add toolbar controls for telemerty points
* Set border and fill related styles on telemetry view instead of layout item
* Refinements to telemetry view
- Stoke and fill styling now work;
- Internal element layout now much better when sizing in a Layout frame;
- Tweaked color of frame border while editing;
* Prevents adding a new (panel) object if it's already in the composition.
* Fix for jumping edit area
- Removed v-if from Toolbar.vue;
- Refined c-toolbar styling;
- TODO: don't include toolbar component when not editing, and for
components that don't use a toolbar;
* Add a separator toolbar control
* Check for domainObject being on the toolbar item as not all controls have that property
* Hide 'no fill' option from the text palette.
Modify the color-picker component to say 'No border' for stroke palette.
* Move the listener for hasFrame to the subobject view configuration
* Fixes for toolbar-separator
- New mixin;
- Corrected markup for separator;
- New class for .c-toolbar__separator;
- Updated DisplayLayoutToolbar.js to include separators in the right
spots;
* Get type from item.
* Include copyright notice.
* Use arrow function for consistency and define a TEXT_SIZE constant.
* Use composition API to add non-telemetry objects instead of relying on the drop handler.
Display a blocking dialog if an existing non-telemetry object is dropped.
* Fix text color picker icon
* Address reviewer's feedback
* Load the composition and update addObject() to render existing panels as well. Also, cache the telemetry value formatter.
* Add listener for changes to time bounds.
* Code cleanup
* Use getFormatMap() to store formats. Reset telemetry value and class before fetching new data.
* Fix a typo
* Define telemetry class and value as computed properties.
* Change context object definition
* Look at the telemetry metadata to find a good default for the value key instead of defaulting to 'sin'. Also, make formats reactive.
* Use let instead of var.
* Renders with resize hotzones
* Implemented basic reordering of columns
* Refactored column headers into component
* Custom column widths persist during resize
* Initial working version of fixed column sizes
* Only calculate default sizes when first data received.
* Further fixes for fixed column widths. Add option to switch to auto-widths
* Fixed bug with table auto-sizing
* Only allow reorder and resize in edit mode
* Bug fixes
* Allow for scroll bar width
* Bug fix with tables reverting to 100% width
* Fixed bug with drop position indicator when scrolled
* Moved events on to component
* Do not throttle mouse events. Let Vue throttle them
* Do not hard code vertical offset for drop target
* Addressed review issues
* Clarified mouse event handling on column resize
* Very significant update to symbols font
- New Icomoon project and font files for 16px symbols;
- Symbol char codes now PUA and hexadecimal compliant;
- Symbols reorganized;
- New symbols added;
- Remove loading of legacy glyphs scss file;
* Added new fonts
- Updated Tabs View icon art;
- Generators icons added;
* Added new icon glyphs and background SVG art
- New icons for generators;
- New icon for Flexible Layout;
- New icon-grippy-ew, for Flexible Layout, others;
* Remove unused legacy font files
* first cut, working for objects with explicit height
* working for all objects by setting min-height explicitly to 70vh
* add composition listeners
* Tabs view WIP
- Markup and CSS BEMized;
- Stubbed in type icon in tab elements;
- TODO: refine styling on tabs;
* Tabs view WIP
- Layout enhancements;
* add types and header
* remove static icon-layout class
* move Tabs into its own plugin folder:
* simplify on composition add listener callback
* fix icon rendering
* add document dragstart and dragend listeners, with v-if div for drop target
* remove third argument from document listeners, move drop target to tab container
* Sanding and shimming on Tabs View
- WIP
* Tabs View styling
- Shippable to Deep;
- Added new c-drop-hint element in _controls.scss;
- Added new theme constants;
- Added 'empty' tabs view message;
- TODOs: add listener for dragover event for is-mouse-over styling,
integrate forthcoming changes to symbolsfont;
* add is-mouse-over class when drag enters dropHint div, add and remove listeners
* .c-drop-hint styling refined
- Refined hover effects;
- Bg icon instead of glyph character;
- TODOs: Change $bg-icon to plus sign;
* fix bug regarding persisting drop-hint styling even after drop is ended
* Implemented drag-and-drop composition
* Added composition policy for tables
* Reimplemented elements pool in Vue
* No need to resolve all objects on the navigated path
* Only show elements pool in edit mode
* Remove old elements pool
* Updated legacy code to use composition policy API
* Keep object in sync when mutated
* Wire up create with old create action
* refactor grid and list view to listen on composition, use lodash for sorts, remove item count
* remove item count on grid view
item count needs to be supported by composition API and not by
inspecting model, otherwise it will be inconsistent.
* close menu after create or clickaway
* Initial attempt at getting the toolbar for the fixed position working with the Vue toolbar controls.
* Set title for controls
* Significant mods to support legacy Fixed Position
- Moved selection and editing styles into _global.scss;
- Changed class naming in legacy fixed.html to map to newer CSS styles;
* Pass in the color value
* Do not show the toolbar container if structure is empty.
* Use a plugin for fixed position to get access to openmct. Show the toolbar only if the object is being edited.
* Ensure fixedController is on the selection context when editing
* Add listener for a domain object with the same id only once.
Update the toolbar value after the object mutation.
Remove editor isEditing listener on destroyed.
* Remove space between the size and px.
If newObject exists, update the toolbar value.
* Remove --nwse class name which seems to be a typo
* use modifier convention