mirror of
https://github.com/nasa/openmct.git
synced 2025-01-25 21:59:23 +00:00
90a6bbc13e
* NASA - OPEN MCT NOTEBOOK UI PROTOTYPE CHALLENGE https://www.topcoder.com/challenge-details/30059614/ Initial submission * Code updates: -Topcoder final fixes -NASA review fixes * drag and drop style fix, new entry focus, delete display fix * NASA reported issues fixed: objects saved in notebook, delete entry dialog, style files, and new entry from drag objects fixed. * Annotation toolbar UI style fixes, added annotation functionality on new entry dialog * painterro .map file issue fixed. * NASA review fixes: css files adjusted notebook children tree removed embed's title links to live object * CouchDB documentation added * CouchDB documentation added Screenshots added. * CouchDB setup documentation added * Test case functional and cosmetic issues fixed. * Test cases functional and cosmetic issues fixed. * updated file saver library * Code issues fixes: NotificationLaunchIndicator deleted. Inappropriate modifications to domain object models fixed. Implemented $destroy listener on entryDnd directive. Naming conventions fixed. Unnecessary changes made to platform handled. Painterro dependency handled gulp verify fix. * names and package fixes * filenames fix * [Notebook] Relocate to platform/features/notebook * [Notebook] Remove obsolete README * [Notebook] Restore original index.html * [Notebook] Expose via openmct.plugins * [Notebook] Remove demo entries * [Notebook] Run gulp fixstyle * [Notebook] Use dot notation instead of brackets ...for checkstyle * [Notebook] Remove extra comma * [Notebook] Run gulp fixstyle * [Notebook] Use dot notation instead of brackets ...for checkstyle * [Notebook] Fix lint issues * [Notebook] Fix lint issues * [Notebook] Fix lint issues * [Notebook] Fix lint issues * [Notebook] Fix lint issues * [Notebook] Fix lint issues * [Notebook] Fix lint issues * [Notebook] Fix lint issues * [Notebook] Fix lint issues * [Notebook] Run gulp fixstyle * [Notebook] Include painterro for tests * [Notebook] Fix require config for painterro * [Merge] WIP markup and styling Fixes #1896 - Very much WIP, currently having issues with hovering and jiggling * [Merge] WIP markup and styling Fixes #1896 - Very much WIP, attempting to convert textarea to contenteditable; * [Merge] JS debugging Fixes #1896 - Very much WIP! * [Merge] JS debugging Fixes #1896 - Really, really WIP - DnD doesn't work properly, and drag to existing entry no longer works. * [Front-end] Notebook thematic styling; test console Fixes #1896 - Added thematic styles and config; - Really, really, really WIP!! - DnD doesn't work properly, and drag to existing entry no longer works. * [Merge] Cleanups in JS Fixes #1896 - Removed and commented out logging statements * [Merge] WIP SCSS and markup polishing Fixes #1896 - Significant style and markup changes; - Styles, layout, etc. relating to embed elements; - Fixes in both notebook.html and embedControl.html; - Class name normalization; * [Merge] WIP Mods related to MCTModalNotebook.js Fixes #1896 Fixes #1906 * fix drag and drop, delete entries * [Front-end] Refined styling of entry embeds Fixes #1896 * [Merge] Generalized hover hide/show of local controls Fixes #1896 * [Merge] Generalized labeled icon-* elements Fixes #1896 * [Frontend] CSS normalizing, apply general styles in markup Fixes #1896 - Notebook class names more individualized; - Apply .labeled and .has-local-controls general classes; - Apply .s-input-inline to contenteditable div; - Look and feel cleanups for drag area and entry elements; * added modifiedOn time for entries that are changed, and fixed issue regarding inner text being filled when new entry button clicked * [Frontend] CSS sanding and cleanups Fixes #1896 - Removing unused classes; - Finessed margin and padding; * [Frontend] Mobile styling Fixes #1896 - Mod .has-local-controls to not apply when in touch context * [Frontend] WIP Mobile styling Fixes #1896 - phone portrait entry layout optimization * fix expand in layout, which was causing snapshot at expand * [Frontend] Fixes to search control Fixes #1896 - Search control now more robust, added .search-filter-by-type class selector; * [Frontend] Fix custom Selects Fixes #1896 - Custom Selects now much more solid, handle width compression better; * remove duplicate code from MCTModalNotebook and roll changes into MCTTriggerModal * [Frontend] WIP Mobile styling Fixes #1896 - Fixed general approach to portrait orientation in mobile/_layout.scss to use media query; - Fixed portrait layout in _notebook_base.scss to use media query; * prevent multiple new notebook entry divs from being created on open overlay, instead create on initialization * [Frontend] WIP Snapshot styling Fixes #1896 - Better class names; - Moved buttons in frame layout; * remove frame layout duplicate and use frame.html * fix issue of preserving line breaks when text is received from a persisted source * add comments, clean out some code, and fix broken tests * fix export image after merging with master * include painterro in karma config * Inlined templates for notebook * disable view policy - to allow layouts to function - needs more investigation * fix layout display overload, remove viewpolicy and notebookLayout.html. Fix delete error - issues found when deploying for testathon * fix (not being able to focus on content editable div to add text, while in layout) - when in layout, the first child of the outermost div is the only one that registers a click, this was causing an issue of not being able to edit notebook entries. My fix includes finding the first child of the div that registers the click and forcing a focus event. * fix focus one new entry issue, cleanup of code related to finding elements, and write more reusable code * abstract findElementById for reusability and improve performance from O^2 to O * user findElementById in entrydnd * change snapshot library to dom-to-image * [Frontend] WIP Snapshot styling Fixes #1896 Fixes #1947 - Significant markup changes to template in ViewSnaphot.js - WIP!!! Keeping own topic branch for now * [Frontend] WIP Snapshot styling Fixes #1896 Fixes #1947 - Significant markup changes to ViewSnaphot.js; - Change in imagery.scss to move non-layout styling to appropriate class; * Removed snapshot from version number to close sprint eagle * Updated version number for Enterprise release * Lock filesaver version (#1956) Lock filesaver version as there have been a large number of broken builds from what should be non-breaking version increases. Fixes currently broken build. * [Frontend] Snapshot styling Fixes #1896 Fixes #1947 - Final tweaks after rebase from notebook-integration-deep-styling * fixes issue of overlay not closing when context menu item in clicked when viewing snapshot * [Frontend] Painterro styling Fixes #1896 Fixes #1947 - WIP - Painterro styling overrides and config - Removed commented code * [Frontend] Painterro styling Fixes #1896 Fixes #1947 - WIP - Painterro styling overrides and config * fixes issue of overlay not closing when context menu item in clicked when viewing snapshot * specify require paths for new library * [Frontend] Local controls CSS added for hide/show of trash can icons Fixes #1896 Fixes #1947 - Also updated frame.scss to use same transition timing * proper shimming * dragging objects to notebook now only creates a link, clicking on snapshot from object view takes a snapshot of the current view, without re-rendering * [Frontend] Local controls CSS added for hide/show of trash can icons Fixes #1896 Fixes #1947 - Also updated frame.scss to use same transition timing * select correct div for snapshot * [Frontend] Adding background color to snapshot Fixes #1896 Fixes #1947 * remove snapshot class after async image render * [Frontend] Adding background color to snapshot Fixes #1896 Fixes #1947 * remove snapshot button from frames in layout * remove snapshot from frame view, add it only to overlay, change mctSnapShot to accomodate taking snaps of overlay/object view * add preview action, working, need styling for notebook action on preview * fix checkstyle * change glyph for preview, use similar tempalte to frame.html * dont allow preview action on objects getting edited currently * changes to browseController and NavigationService to block navigation and show preview of object when trying to navigate to object in tree in edit mode * [Frontend] Painterro styling and config Fixes #1896 Fixes #1947 - Changes mainly related to toolbar styling and labels * [Frontend] Notebook/Preview related sanding and polishing Fixes #1947 - Changed description for notebook-new-entry * [Frontend] Notebook/Preview related sanding and polishing Fixes #1947 - Added new global "hide-in-t-main-view" class; - Apply new class to Preview action to suppress display of that button in main view of navigated object; * code cleanup * [Frontend] Notebook/Preview related sanding and polishing Fixes #1947 - Classes for Notebook Entry button spacing; * abstract overlay into a service/api - to reduce code duplication catch error produced by painterro because of async div creation by dialog service * fix broken mcttriggermodal tests * fix checkstyle and lint * add functionality of being able to add buttons to the browse bar element of overlay when instantiating the overlay service * Reduce frequency of template recompilation in mct-include * Use updated painterro library. Fixes #1981 * add save flag and call done in both cases (clicking on cancel or ok) * fixes #1951 persist modified empty entry on blur * Bump Node Version * fix checkstyle * fixes issue where annotating snapshot that is already saved in notebook does not work * fix painterro button styling issue move jquery logic inside timeout block, because buttons are asynchronously created * remove description required when saving snapshot to notebook * remove create snapshot action from embeds, and add preview action to embeds * fixes edge case for issue #1981 Add a reject callback in the edgecase that user presses the x icon or esc key to cancel annotation, which was leading to the drag drop issue * Add default sort options on creation menu of Notebook * fix auto focus on new entry when in oldest first order, both in layout and regular view * [Frontend] Notebook mobile mods - Hide entry area when mobile; - Disallow entry edit or delete in mobile; * fixes issue 2041 (#2049) * fixes issue 2041 allows user to select caret position in notebook entries while in layout * [Frontend] Restore class, refine selector Fixes #2041 Fixes #2049 - Restored .s-input-inline to editable field; - Refined pointer-events: none to properly target .title-label only; * remove unused files/code and smoke test * remove , add pre-wrap to css and use inner text * make reviewer requested changes 'in progress still' * make reviewer requested changes 'continued' * replace html2canvas with dom-to-image - add in progress dialog to export image service - add error dialog to export image service * Search UI refactored to use flex Fixes #1947 - Fixes broken search inputs in main search and Notebook; - Significant rewrite to search SCSS and markup; * Fixes for Notebook custom selects; polishes to search Fixes #1947 - Better flex styles for custom selects; - Refinements to search styling; - Much better mobile responsive layout for search and controls in portrait layout; * fix preview action for embeds, which was showing current domain object vs selected domain object * Fixed hidden search dropdown menu Fixes #1947 * Revert whitespace change Revert change to whitespace in index.html. #1947. * [Export] Use html2canvas Use html2canvas instead of dom-to-image. Fixes issues with text exports. html2canvas is better supported and under active development and is a better choice for this library. Cleaned up export code, ensure that images are properly saved as the correct types. related to feedback on #1947 * Don't show brackets when timestamp is not specified (#331)
308 lines
11 KiB
JavaScript
308 lines
11 KiB
JavaScript
define([
|
|
"legacyRegistry",
|
|
"./src/controllers/NotebookController",
|
|
"./src/controllers/NewEntryController",
|
|
"./src/controllers/SelectSnapshotController",
|
|
"./src/controllers/LayoutNotebookController",
|
|
"./src/directives/MCTSnapshot",
|
|
"./src/directives/EntryDnd",
|
|
"./src/actions/ViewSnapshot",
|
|
"./src/actions/AnnotateSnapshot",
|
|
"./src/actions/RemoveEmbed",
|
|
"./src/actions/RemoveSnapshot",
|
|
"./src/actions/NewEntryContextual",
|
|
"./src/capabilities/NotebookCapability",
|
|
"./src/policies/CompositionPolicy",
|
|
"text!./res/templates/notebook.html",
|
|
"text!./res/templates/entry.html",
|
|
"text!./res/templates/annotation.html",
|
|
"text!./res/templates/notifications.html",
|
|
"text!../layout/res/templates/frame.html",
|
|
"text!./res/templates/controls/embedControl.html",
|
|
"text!./res/templates/controls/snapSelect.html"
|
|
], function (
|
|
legacyRegistry,
|
|
NotebookController,
|
|
NewEntryController,
|
|
SelectSnapshotController,
|
|
LayoutNotebookController,
|
|
MCTSnapshot,
|
|
MCTEntryDnd,
|
|
ViewSnapshotAction,
|
|
AnnotateSnapshotAction,
|
|
RemoveEmbedAction,
|
|
RemoveSnapshotAction,
|
|
newEntryAction,
|
|
NotebookCapability,
|
|
CompositionPolicy,
|
|
notebookTemplate,
|
|
entryTemplate,
|
|
annotationTemplate,
|
|
notificationsTemplate,
|
|
frameTemplate,
|
|
embedControlTemplate,
|
|
snapSelectTemplate
|
|
) {
|
|
legacyRegistry.register("platform/features/notebook", {
|
|
"name": "Notebook Plugin",
|
|
"description": "Create and save timestamped notes with embedded object snapshots.",
|
|
"extensions":
|
|
{
|
|
"types": [
|
|
{
|
|
"key": "notebook",
|
|
"name": "Notebook",
|
|
"cssClass": "icon-notebook",
|
|
"description": "Create and save timestamped notes with embedded object snapshots.",
|
|
"features": ["creation"],
|
|
"model": {
|
|
"entries": [],
|
|
"composition": [],
|
|
"entryTypes": []
|
|
},
|
|
"properties": [
|
|
{
|
|
"key": "defaultSort",
|
|
"name": "Default Sort",
|
|
"control": "select",
|
|
"options": [
|
|
{
|
|
"name": "Newest First",
|
|
"value": "-createdOn"
|
|
},
|
|
{
|
|
"name": "Oldest First",
|
|
"value": "createdOn"
|
|
}
|
|
],
|
|
"cssClass": "l-inline"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"views": [
|
|
{
|
|
"key": "notebook.view",
|
|
"type": "notebook",
|
|
"cssClass": "icon-notebook",
|
|
"name": "notebook",
|
|
"template": notebookTemplate,
|
|
"editable": false,
|
|
"uses": [
|
|
"composition",
|
|
"action"
|
|
],
|
|
"gestures": [
|
|
"drop"
|
|
]
|
|
}
|
|
],
|
|
"controllers": [
|
|
{
|
|
"key": "NotebookController",
|
|
"implementation": NotebookController,
|
|
"depends": [
|
|
"$scope",
|
|
"dialogService",
|
|
"popupService",
|
|
"agentService",
|
|
"objectService",
|
|
"navigationService",
|
|
"now",
|
|
"actionService",
|
|
"$timeout",
|
|
"$element",
|
|
"$sce"
|
|
]
|
|
},
|
|
{
|
|
"key": "NewEntryController",
|
|
"implementation": NewEntryController,
|
|
"depends": ["$scope",
|
|
"$rootScope"
|
|
]
|
|
},
|
|
{
|
|
"key": "selectSnapshotController",
|
|
"implementation": SelectSnapshotController,
|
|
"depends": ["$scope",
|
|
"$rootScope"
|
|
]
|
|
},
|
|
{
|
|
"key": "LayoutNotebookController",
|
|
"implementation": LayoutNotebookController,
|
|
"depends": ["$scope"]
|
|
}
|
|
],
|
|
"representations": [
|
|
{
|
|
"key": "draggedEntry",
|
|
"template": entryTemplate
|
|
},
|
|
{
|
|
"key": "frameLayoutNotebook",
|
|
"template": frameTemplate
|
|
}
|
|
],
|
|
"templates": [
|
|
{
|
|
"key": "annotate-snapshot",
|
|
"template": annotationTemplate
|
|
},
|
|
{
|
|
"key": "notificationTemplate",
|
|
"template": notificationsTemplate
|
|
}
|
|
],
|
|
"directives": [
|
|
{
|
|
"key": "mctSnapshot",
|
|
"implementation": MCTSnapshot,
|
|
"depends": [
|
|
"$rootScope",
|
|
"$document",
|
|
"exportImageService",
|
|
"dialogService",
|
|
"notificationService"
|
|
]
|
|
},
|
|
{
|
|
"key": "mctEntryDnd",
|
|
"implementation": MCTEntryDnd,
|
|
"depends": [
|
|
"$rootScope",
|
|
"$compile",
|
|
"dndService",
|
|
"typeService",
|
|
"notificationService"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"key": "view-snapshot",
|
|
"implementation": ViewSnapshotAction,
|
|
"name": "View Snapshot",
|
|
"description": "View the large image in a modal",
|
|
"category": "embed",
|
|
"depends": [
|
|
"$compile"
|
|
]
|
|
},
|
|
{
|
|
"key": "annotate-snapshot",
|
|
"implementation": AnnotateSnapshotAction,
|
|
"name": "Annotate Snapshot",
|
|
"cssClass": "icon-pencil labeled",
|
|
"description": "Annotate embed's snapshot",
|
|
"category": "embed",
|
|
"depends": [
|
|
"dialogService",
|
|
"dndService",
|
|
"$rootScope"
|
|
]
|
|
},
|
|
|
|
{
|
|
"key": "remove-embed",
|
|
"implementation": RemoveEmbedAction,
|
|
"name": "Remove...",
|
|
"cssClass": "icon-trash labeled",
|
|
"description": "Remove this embed",
|
|
"category": [
|
|
"embed",
|
|
"embed-no-snap"
|
|
],
|
|
"depends": [
|
|
"dialogService"
|
|
]
|
|
},
|
|
{
|
|
"key": "remove-snapshot",
|
|
"implementation": RemoveSnapshotAction,
|
|
"name": "Remove Snapshot",
|
|
"cssClass": "icon-trash labeled",
|
|
"description": "Remove Snapshot of the embed",
|
|
"category": "embed",
|
|
"depends": [
|
|
"dialogService"
|
|
]
|
|
},
|
|
{
|
|
"key": "notebook-new-entry",
|
|
"implementation": newEntryAction,
|
|
"name": "New Notebook Entry",
|
|
"cssClass": "icon-notebook labeled",
|
|
"description": "Add a new Notebook entry",
|
|
"category": [
|
|
"contextual",
|
|
"view-control"
|
|
],
|
|
"depends": [
|
|
"$compile",
|
|
"$rootScope",
|
|
"dialogService",
|
|
"notificationService",
|
|
"linkService"
|
|
],
|
|
"priority": "preferred"
|
|
}
|
|
],
|
|
"licenses": [
|
|
{
|
|
"name": "painterro",
|
|
"version": "4.1.0",
|
|
"author": "Mike Bostock",
|
|
"description": "D3 (or D3.js) is a JavaScript library for visualizing data using web standards. D3 helps you bring data to life using SVG, Canvas and HTML. D3 combines powerful visualization and interaction techniques with a data-driven approach to DOM manipulation, giving you the full capabilities of modern browsers and the freedom to design the right visual interface for your data.",
|
|
"website": "https://d3js.org/",
|
|
"copyright": "Copyright 2010-2016 Mike Bostock",
|
|
"license": "BSD-3-Clause",
|
|
"link": "https://github.com/d3/d3/blob/master/LICENSE"
|
|
}
|
|
],
|
|
"capabilities": [
|
|
{
|
|
"key": "notebook",
|
|
"name": "Notebook Capability",
|
|
"description": "Provides a capability for looking for a notebook domain object",
|
|
"implementation": NotebookCapability,
|
|
"depends": [
|
|
"typeService"
|
|
]
|
|
}
|
|
],
|
|
"policies": [
|
|
{
|
|
"category": "composition",
|
|
"implementation": CompositionPolicy,
|
|
"message": "Objects of this type cannot contain objects of that type."
|
|
}
|
|
],
|
|
"controls": [
|
|
{
|
|
"key": "embed-control",
|
|
"template": embedControlTemplate
|
|
},
|
|
{
|
|
"key": "snapshot-select",
|
|
"template": snapSelectTemplate
|
|
}
|
|
],
|
|
"stylesheets": [
|
|
{
|
|
"stylesheetUrl": "css/notebook.css"
|
|
},
|
|
{
|
|
"stylesheetUrl": "css/notebook-espresso.css",
|
|
"theme": "espresso"
|
|
},
|
|
{
|
|
"stylesheetUrl": "css/notebook-snow.css",
|
|
"theme": "snow"
|
|
}
|
|
]
|
|
}
|
|
});
|
|
});
|