nasa / openmct Goto Github PK
View Code? Open in Web Editor NEWA web based mission control framework.
Home Page: https://nasa.github.io/openmct/
License: Other
A web based mission control framework.
Home Page: https://nasa.github.io/openmct/
License: Other
We're currently using a legacy version of angular which is preventing us from using some very useful features (such as one-time bindings, which are useful for reducing watch counts).
I dropped in 1.4.3 and did not encounter any bugs with the application but I did not do a comprehensive check.
@VWoeltjen any thoughts about when we should schedule this and how much testing we should perform afterwards?
Info bubble (which shows on hover over objects in a tree) appears to block mouse clicks when attempting to navigate to these objects.
To reproduce:
Currently the application uses requirejs to load modules without using the optimizer. This results in a large number of requests made to load the app and slows down application load significantly. Additionally, it causes us to use caching settings that are not ideal for production environments.
Using the requirejs optimizier to generate a single javascript file which can be fingerprinted and cached as a whole would decrease load times substantially.
Base on open #73, branch open73.
When viewing a plot with no data, time axis shows various times in 1970.
Axis labels should instead be empty (?) or at least at some reasonable defaults.
Hover info menu is only reached after an item is pressed on,
then after a delay the menu pops up. And it is only closed if
another tree menu is pressed.
Allow the user to collapse and hide the treeview in 'browse' mode. See pgs. 19 - 21 in UI sketches v2.1, https://drive.google.com/a/nasa.gov/file/d/0B0v27OM1JkSeR001RFJZMk43QVk/view?usp=sharing.
Go to edit mode; hover over the Library pane. A tooltip appears saying "Library"
This is probably due to the use of "title" as an attribute on mct-container without consideration of its normal HTML interpretation. Solution should be to change parameter name for the accordion container (in platform/commonUI/general) to something other than "title", and update usage in Edit mode templates accordingly.
Sand, polish and stylize the current mobile display work. Should be done in a new branch based on 'mobile'.
Web page object menu needs "http://www." autocomplete to allow faster
creation. Creation requires the url to be exactly, for example, "http://www.google.com" to
be completed and created.
Add touch support to the mct-drag
directive in platform/commonUI/general
.
This will enable various user actions in mobile which are currently not present (e.g. repositioning splitters) since mct-drag
is used somewhat frequently.
Implement a service which allows web workers to be registered under symbolic names, and run using those symbolic names. (This will mainly help with resolving bundle paths to WebWorker scripts.)
Supports WTD-1218.
If a fixed position view contains a telemetry element in its composition but does not have at least one position/size for that telemetry element defined in the view's configuration, a default one should be chosen and displayed. If the user Edits and saves this, it should be stored to the view's configuration.
To see similar behavior, edit a Display Layout and drag objects from the Library to the Elements pane (or, from Browse mode, create new objects in the Layout directly.) Observe that these are assigned positions in the Layout view automatically. A similar positioning approach (starting from top-left, cascading down) should make sense for Fixed Position view as well.
When an object is loaded any other way except for via a "composition" capability, it appears as a link.
Instead, it would be preferable to treat these as belonging in their original context in this situation, and only override with alternate context when they are loaded in alternate way.
Could probably handle this without touching core by adding an objectService decorator which does this (from the location plugin)
Show context menu from individual "grid items" in a view of a folder (the only view of a folder, currently.) User should be able to right-click on a domain object within a folder and see a context menu of available actions appear, as they do in the tree.
Full screen button is unresponsive, should allow a full screen mode.
A full screen mode could be one that hides the url bar at the top.
Search results currently have no context, so results almost* always appear as links.
This is because the generic search provider uses the object service to get all of the objects, and the object service currently returns objects with no context. So, when the object service has been changed to incorporate context, then this issue should be resolved. (I believe @larkin is working on this.)
For search providers other than the generic search provider, this may still be an issue even after the object service change.
* Objects from before move-copy-link was implemented don't look like links, because their models don't have locations.
Drag and drop is not a feature. This does not allow dnd
during browse mode into a folder. Also, this does not allow dnd
during edit mode, from the tree to the elements list nor the
view. Also in edit mode for a layout or fixed position view,
objects cannot be moved or resized.
Utilize client on a mobile device; identify features/functionality which are not working as expected on a mobile device, and file issues in the issue tracker to catalog these issues.
When using the create menu, I am surprised to find that clicking to create an object sometimes dismisses the menu instead of opening the new object dialog box. The actual ng-click is attached to the text, but the hover effect and cursor shows a much larger click target.
This screenshot explains the current functionality:
This screenshot shows the expected functionality:
this bug is a demokiller.
The mct-resize
directive (defined in platform/commonUI/general) monitors the size of an element by polling on a $timeout
, which in turn will trigger a new digest cycle as it is called currently (an extra parameter can be provided to suppress this)
Instead, it would be preferable to fire a digest cycle only when an element's size actually changes; there is already a check for this change, so adding the extra argument to $timeout
and invoking scope.$apply
should achieve the desired result (the existing scope.$eval
may be enough that the $apply
call is not needed at all, if $eval
triggers a digest - not sure on this)
Create unit tests corresponding to what was written for issue #18, specifically tests for the real time version of the Messages view.
Add comments to example code which provides a more useful summary or narrative of the behavior being exemplified.
After changes from #21, URL shown while navigating (e.g. clicking around the tree) becomes malformed, including an extra "index.html" and an extra "view=..." (see screenshot)
The URL shown by "Open in new tab" appears to be correct and first, and then becomes malformed (presumably when updated by BrowseController
)
Add an Open in New Tab action; this should be available in two places:
There's a placeholder for this action in platform/commonUI/browse/src/windowing/NewWindowAction.js with some metadata in platform/commonUI/browse/bundle.json (note that the name will need to change from Open in New Window to Open in New Tab)
There are also some CSS changes which are suppressing the presence of this button currently; check with Charles about undoing these changes.
This will depend on addressability (see #8) on branch open1149, so should start from that branch if it hasn't been merged to master yet
Navigate to a domain object, click Edit to enter Edit mode, then click Cancel to leave Edit mode.
Click Edit again and observe that the URL changes, but the client remains in Browse mode.
Desired behavior is that the subsequent click goes into Edit mode.
This appears to be fixed if one checks the new path before cancelling the route change, e.g.
if ($location.path().indexOf("/browse/") === 0) {
$route.current = priorRoute;
}
... in the $locationChangeSuccess
listeners in BrowseController and BrowseObjectController
Show context menu for an object when user clicks (regular left-click) on the down arrow next to a domain object's title in Browse mode.
For a reasonably large set of objects, typing in search bar can be unresponsive after the first one or two characters, particularly if there are a lot of hits for those characters. Unresponsiveness lasts for roughly 1-2s. Subsequent typing gives results more quickly.
Could try throttling the search function using the throttle
service.
May also want to do something to wait until previous search results have been returned before initiating a new search.
This was observed using a non-ES data store (so issue may also be specific to GenericSearch)
Drag-and-drop composition (e.g. from the tree to a Layout) should not be active in Browse mode; this is considered an "editing" activity and should only work from Edit mode.
The exception to this is folders; dragging-and-dropping into the items view of a Folder SHOULD result in adding an object to that folder's composition, even in Edit mode.
Currently, however, drag-and-drop functions for any view that support drag-drop composition, regardless of current mode (Browse or Edit.)
Support pan-zoom of image telemetry. This should function similarly to pan/zoom in plots. Specifically:
Example image telemetry is available with bundle example/imagery
(add "example/imagery"
to bundles.json
)
Note that, once panned or zoomed, the image should pause an stop updating with the latest image telemetry (I believe; double check with @charlesh88 on this point)
Review current Open MCT Web API and identify "pain points" for developers. In particular, want to identify areas where we can save future development effort by either shortening learning curve or reducing effort to implement features.
Persist choices made for view selection in frames within a layout, when those changes have been made in Edit mode. Do not persist choices when the view is in Browse mode.
Summary of desired behavior:
When in Edit mode, the Remove action is available for the object being edited, as well as other objects in the domain object hierarchy above it (in the Library)
Desired behavior is that Remove should be unavailable here (and, more generally, that modification should only be permitted for the domain object being edited and its direct descendants)
Proposed solution:
mutation
policy category to determine which objects are mutable
hasFeature('creation')
check; this check should instead be moved into an instance of the mutation
policymutation
in Edit mode for objects which are not the object being edited or one of its direct descendantsaction
policy restricting the remove
action to objects whose contextual parent allows mutation
I can reproduce this almost 90% of the time with the following settings:
When done properly, the page looks like so:
I can sometimes reproduce this issue without the cache disabled, I believe it's a condition where the split view is using something (likely css) to set the default size of the tree view, and the css hasn't full applied yet, so the initial tree size is 0px, and the splitter sizes accordingly.
Dragging the splitter returns warp to normal functionality.
If this is a race with CSS loading, we may need to wait for css loading before initializing the application.
We should use standard browser navigation via anchor tags with href
attributes instead of ng-click directives that tie directly into the navigation service.
This allows us to reuse standard anchor styles (cursor changes, etc), and is more in line with how browser navigation works on the open internet.
Allow information to be displayed about objects via an Inspection panel. See pgs. 23 - 26 in UI sketches v2.1, https://drive.google.com/a/nasa.gov/file/d/0B0v27OM1JkSeR001RFJZMk43QVk/view?usp=sharing.
Sine wave plot view updates slowly relative to the
screen/plot shown, therefore it looks like it is frozen
or broken, because it may seem like it has stopped updating.
Upon switching to the scrolling view the values/time updates
every second as intended.
Implement a new example generator that synthesizes representative event messages.
When very long data is displayed in the field of a hover bubble, the internal lines visually extend out beyond the edges of the bubble.
Text in buttons and tree items can be highlighted by iPad highlight options to
"copy", "select all", and "define." This should not be allowed, as buttons and
tree list items should be treated as whole, button-like items.
Add support for user identification to platform. This should include:
Supports public/private permissions.
When dragging-dropping into a layout that contains a fixed position view, the dropped object also appears in the fixed position where it is dropped. This, obviously, is undesired; desired behavior is that the drop is recognized/handled only by the layout.
When a search result is selected, the LocatorController cannot find context. This means that when the create dialog is open, the tree to select the location to create that object is not loaded. Also, when attempting to edit a search result, the Library is not loaded.
When this issue occurs, the tree appears to load infinitely, as above.
Navigate to a domain object in Browse mode.
In the tree, find the same object, right-click, and choose "Remove"
Observe: Object is removed from the tree but remains in view.
Expected behavior: Object should no longer be in view. Navigation should switch over to its parent, or to a default object (e.g. My Items)
Observing No key defined for capability; skipping.
frequently on console. This appears to occur when a capability has been overridden, due to a logic error in the way this condition is checked for before it is logged. (Error introduced at 71ca980)
When there are errors that prevent an object from being persisted-- whether persisting a change to an object or persisting a new object-- the system should notify the user of the issue.
Currently, if a persistence operation fails, the interface acts like the persistence operation succeeded, and it's only when you refresh do you notice that changes have not been persisted.
We should not update the UI to show a persistence operation as completed until it has actually completed successfully, as subsequent actions performed while the UI is out of sync can cause significant negative effects.
In Edit mode of a Display Layout containing multiple panel, drag one panel. Observe: Contents of other panels are reloaded (can be seen to repopulate)
Desired behavior is that the position of the dragged panel updates, but that it contents remain as they were.
Context menu is not able to be reached. A touch and hold option
to allow this on tree list items would be a solution
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.