From b6986714f7045ff4dacabfe925e10093a692aa4a Mon Sep 17 00:00:00 2001 From: Thomas Rueckstiess Date: Fri, 13 Nov 2015 22:28:03 +1100 Subject: [PATCH 1/4] INT-793 Add help window Squashed: :construction: adding help window :shirt: make model/collection for help entries Move help entries to markdown, add sidebar. Fix router for help ipc to parse help markdown entries via ipc Finish laying in all of the groundwork for help :shirt: support local links via `[link](#help-entry)` form fields support help entries, "not found" msg add support for related help entries added tags, devOnly entries, and how-help-works.md :pencil: :add comment explaining template :bug: fix issue connecting to schema window consistent styling of i.help(), more entries moved taxonomy and view hierarchy to help syntax highlighting for code snippets in help :pencil: more help entries --- gulpfile.js | 9 +- images/help/dev/view_hierarchy.png | Bin 0 -> 212029 bytes images/help/schema/sampling-results-full.png | Bin 0 -> 12133 bytes .../help/schema/sampling-results-sample.png | Bin 0 -> 13815 bytes package.json | 2 + src/app.js | 9 +- src/connect/authentication.js | 4 +- src/connect/connect-form-view.js | 1 + src/connect/filereader-default.jade | 5 +- src/connect/filereader-view.js | 7 + src/connect/input-default.jade | 5 +- src/connect/input-view.js | 12 +- src/connect/select-default.jade | 5 +- src/connect/ssl.js | 7 +- src/electron/help.js | 39 +++++ src/electron/index.js | 4 + src/help/entries/connect-favorite-name.md | 12 ++ .../entries/connect-kerberos-principal.md | 21 +++ .../entries/connect-kerberos-service-name.md | 17 ++ .../connect-ssl-certificate-authority.md | 28 +++ .../connect-ssl-client-certificate-key.md | 15 ++ .../entries/connect-ssl-client-certificate.md | 15 ++ .../connect-ssl-private-key-password.md | 13 ++ src/help/entries/connect-userpass-auth-db.md | 18 ++ src/help/entries/dev-ampersand-tips.md | 99 +++++++++++ src/help/entries/dev-how-help-works.md | 107 ++++++++++++ src/help/entries/dev-taxonomy.md | 121 +++++++++++++ src/help/entries/schema-how-sampling-works.md | 7 + src/help/entries/schema-query-bar.md | 8 + src/help/entries/schema-sampling-results.md | 37 ++++ src/help/index.jade | 5 + src/help/index.js | 165 ++++++++++++++++++ src/help/index.less | 69 ++++++++ src/help/related.jade | 7 + src/help/sidebar.jade | 6 + src/help/sidebar.js | 51 ++++++ src/help/tags.jade | 8 + src/index.less | 1 + src/models/help-entry-collection.js | 44 +++++ src/models/help-entry.js | 42 +++++ src/models/with-sync.js | 34 ++++ src/router.js | 12 +- src/sampling-message/index.jade | 1 + src/statusbar/index.js | 5 + src/tour/index.js | 3 +- styles/index.less | 17 +- 46 files changed, 1084 insertions(+), 13 deletions(-) create mode 100644 images/help/dev/view_hierarchy.png create mode 100644 images/help/schema/sampling-results-full.png create mode 100644 images/help/schema/sampling-results-sample.png create mode 100644 src/electron/help.js create mode 100644 src/help/entries/connect-favorite-name.md create mode 100644 src/help/entries/connect-kerberos-principal.md create mode 100644 src/help/entries/connect-kerberos-service-name.md create mode 100644 src/help/entries/connect-ssl-certificate-authority.md create mode 100644 src/help/entries/connect-ssl-client-certificate-key.md create mode 100644 src/help/entries/connect-ssl-client-certificate.md create mode 100644 src/help/entries/connect-ssl-private-key-password.md create mode 100644 src/help/entries/connect-userpass-auth-db.md create mode 100644 src/help/entries/dev-ampersand-tips.md create mode 100644 src/help/entries/dev-how-help-works.md create mode 100644 src/help/entries/dev-taxonomy.md create mode 100644 src/help/entries/schema-how-sampling-works.md create mode 100644 src/help/entries/schema-query-bar.md create mode 100644 src/help/entries/schema-sampling-results.md create mode 100644 src/help/index.jade create mode 100644 src/help/index.js create mode 100644 src/help/index.less create mode 100644 src/help/related.jade create mode 100644 src/help/sidebar.jade create mode 100644 src/help/sidebar.js create mode 100644 src/help/tags.jade create mode 100644 src/models/help-entry-collection.js create mode 100644 src/models/help-entry.js create mode 100644 src/models/with-sync.js diff --git a/gulpfile.js b/gulpfile.js index f0cf92b580e..ad7d93ed225 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -95,6 +95,7 @@ gulp.task('watch', function() { gulp.watch(['src/*.jade'], ['build:pages']); gulp.watch('images/{*,**/*}', ['copy:images']); gulp.watch('fonts/*', ['copy:fonts']); + gulp.watch('src/help/entries/*.md', ['copy:text']); gulp.watch(['src/electron/{*,**/*}'], ['copy:js']); gulp.watch('package.json', function() { gutil.log('package.json changed!'); @@ -232,8 +233,12 @@ gulp.task('copy:package.json', function() { }); gulp.task('copy:text', function() { - return gulp.src(['README.md']) - .pipe(gulp.dest('build/')); + return merge( + gulp.src('README.md') + .pipe(gulp.dest('build/')), + gulp.src('src/help/entries/*.md') + .pipe(gulp.dest('build/src/help/entries')) + ); }); // Copy non-UI js into the build. diff --git a/images/help/dev/view_hierarchy.png b/images/help/dev/view_hierarchy.png new file mode 100644 index 0000000000000000000000000000000000000000..761805501ee69133aa70e800d55003721959db9a GIT binary patch literal 212029 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 z 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 M#TCS=L=1!eKm2{y_5c6? literal 0 HcmV?d00001 diff --git a/images/help/schema/sampling-results-sample.png b/images/help/schema/sampling-results-sample.png new file mode 100644 index 0000000000000000000000000000000000000000..8c752a0862df2d21496722c3dd17ff5c07e3d94f GIT binary patch literal 13815 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 Nw77y;rHEnB{{cR7KN0`{ literal 0 HcmV?d00001 diff --git a/package.json b/package.json index ac48684dcf1..eef7cc77174 100644 --- a/package.json +++ b/package.json @@ -77,7 +77,9 @@ "debug": "^2.2.0", "electron-squirrel-startup": "^0.1.4", "keytar": "mongodb-js/node-keytar", + "highlight.js": "^8.9.1", "localforage": "^1.3.0", + "marky-mark": "^1.2.1", "mongodb-collection-model": "^0.1.1", "mongodb-connection-model": "^3.0.7", "mongodb-instance-model": "^1.0.2", diff --git a/src/app.js b/src/app.js index 41b120343e4..fd968034c62 100644 --- a/src/app.js +++ b/src/app.js @@ -28,6 +28,8 @@ var MongoDBInstance = require('./models/mongodb-instance'); var User = require('./models/user'); var Router = require('./router'); var Statusbar = require('./statusbar'); +var Help = require('./help'); +var $ = require('jquery'); var debug = require('debug')('scout:app'); @@ -119,7 +121,12 @@ var Application = View.extend({ user: User }, events: { - 'click a': 'onLinkClick' + 'click a': 'onLinkClick', + 'click i.help': 'onHelpClicked' + }, + onHelpClicked: function(evt) { + var id = $(evt.target).attr('data-hook'); + Help.open(id); }, onClientReady: function() { debug('Client ready! Took %dms to become readable', diff --git a/src/connect/authentication.js b/src/connect/authentication.js index 5f24fa12cf0..29515d0b764 100644 --- a/src/connect/authentication.js +++ b/src/connect/authentication.js @@ -38,8 +38,9 @@ var MONGODB = { new InputView({ template: inputTemplate, name: 'mongodb_database_name', - label: 'Database Name', + label: 'Authentication Database', placeholder: 'admin', + helpEntry: 'connect-userpass-auth-db', required: false }) ] @@ -57,6 +58,7 @@ var KERBEROS = { name: 'kerberos_principal', label: 'Principal', placeholder: '', + helpEntry: 'connect-kerberos-principal', required: true, tests: [ function(value) { diff --git a/src/connect/connect-form-view.js b/src/connect/connect-form-view.js index 026d0f087c5..6eb8494dc16 100644 --- a/src/connect/connect-form-view.js +++ b/src/connect/connect-form-view.js @@ -187,6 +187,7 @@ var ConnectFormView = FormView.extend({ name: 'name', label: 'Favorite Name', placeholder: 'e.g. Shared Dev, QA Box, PRODUCTION', + helpEntry: 'connect-favorite-name', required: false }) ]; diff --git a/src/connect/filereader-default.jade b/src/connect/filereader-default.jade index 5899d26547a..4bfc3311954 100644 --- a/src/connect/filereader-default.jade +++ b/src/connect/filereader-default.jade @@ -1,5 +1,8 @@ .form-item - label(data-hook='label')= label + label + span(data-hook='label')= label + if helpEntry + i.help(data-hook='#{helpEntry}') .message.message-below.message-error(data-hook='message-container') p(data-hook='message-text') .form-item-file diff --git a/src/connect/filereader-view.js b/src/connect/filereader-view.js index f1cbbe5dc63..d2b17362d45 100644 --- a/src/connect/filereader-view.js +++ b/src/connect/filereader-view.js @@ -30,6 +30,10 @@ module.exports = InputView.extend({ type: 'boolean', required: true, default: false + }, + helpEntry: { + type: 'string', + default: null } }, derived: { @@ -91,6 +95,9 @@ module.exports = InputView.extend({ _.defaults(spec, { value: [] }); + if (spec.helpEntry) { + this.helpEntry = spec.helpEntry; + } this.invalidClass = 'has-error'; this.validityClassSelector = '.form-item-file'; InputView.prototype.initialize.call(this, spec); diff --git a/src/connect/input-default.jade b/src/connect/input-default.jade index 97d39b97898..2c3f9fbda1b 100644 --- a/src/connect/input-default.jade +++ b/src/connect/input-default.jade @@ -1,5 +1,8 @@ .form-item - label(data-hook='label')= label + label + span(data-hook='label')= label + if helpEntry + i.help(data-hook='#{helpEntry}') .message.message-above.message-error(data-hook='message-container') p(data-hook='message-text') input.form-control(placeholder='#{placeholder}') diff --git a/src/connect/input-view.js b/src/connect/input-view.js index 76a82d049cc..b48f5aca2fd 100644 --- a/src/connect/input-view.js +++ b/src/connect/input-view.js @@ -6,7 +6,17 @@ var InputView = require('ampersand-input-view'); * so that label gets correctly rendered on subsequent render() calls. */ module.exports = InputView.extend({ - initialize: function() { + props: { + helpEntry: { + type: 'string', + default: null + } + }, + initialize: function(spec) { + spec = spec || {}; + if (spec.helpEntry) { + this.helpEntry = spec.helpEntry; + } this.invalidClass = 'has-error'; this.validityClassSelector = '.form-item'; InputView.prototype.initialize.apply(this, arguments); diff --git a/src/connect/select-default.jade b/src/connect/select-default.jade index 0af3b291c89..90c222689d4 100644 --- a/src/connect/select-default.jade +++ b/src/connect/select-default.jade @@ -1,5 +1,8 @@ .form-item - label(data-hook='label')= label + label + span(data-hook='label')= label + if helpEntry + i.help(data-hook='#{helpEntry}') .message.message-below.message-error(data-hook='message-container') p(data-hook='message-text') select.form-control(type='select') diff --git a/src/connect/ssl.js b/src/connect/ssl.js index a6912abbd42..2ca1f0018bd 100644 --- a/src/connect/ssl.js +++ b/src/connect/ssl.js @@ -41,6 +41,7 @@ var SERVER = { name: 'ssl_ca', multi: true, label: 'Certificate Authority', + helpEntry: 'connect-ssl-certificate-authority', required: true }) ] @@ -59,22 +60,26 @@ var ALL = { name: 'ssl_ca', multi: true, label: 'Certificate Authority', + helpEntry: 'connect-ssl-certificate-authority', required: true }), new FileReaderView({ name: 'ssl_private_key', label: 'Client Private Key', + helpEntry: 'connect-ssl-client-certificate-key', required: true }), new FileReaderView({ name: 'ssl_certificate', label: 'Client Certificate', + helpEntry: 'connect-ssl-client-certificate', required: true }), new InputView({ template: inputTemplate, name: 'ssl_private_key_password', - label: 'Private Key Password', + label: 'Client Key Password', + helpEntry: 'connect-ssl-private-key-password', required: false }) ] diff --git a/src/electron/help.js b/src/electron/help.js new file mode 100644 index 00000000000..6491b4a2f34 --- /dev/null +++ b/src/electron/help.js @@ -0,0 +1,39 @@ +var path = require('path'); +var ipc = require('ipc'); +var mm = require('marky-mark'); +var _ = require('lodash'); +var highlight = require('highlight.js'); + +var debug = require('debug')('scout:electron:help'); + +debug('adding ipc listener for `/help/entries`...'); +ipc.on('/help/entries', function(evt) { + var dir = path.join(__dirname, '..', 'help', 'entries'); + debug('parsing entries with marky-mark from `%s`', dir); + + // add syntax highlighting options, pass through to `marked` module + var options = { + marked: { + highlight: function(code) { + var result = highlight.highlightAuto(code).value; + return result; + } + } + }; + + mm.parseDirectory(dir, options, function(err, posts) { + if (err) { + debug('error parsing entries', err); + evt.sender.send('/help/entries/error', err); + return; + } + debug('successfully parsed!', posts); + // in production don't return the dev-only entries + if (process.env.NODE_ENV === 'production') { + posts = _.filter(posts, function(post) { + return !post.meta.devOnly; + }); + } + evt.sender.send('/help/entries/success', posts); + }); +}); diff --git a/src/electron/index.js b/src/electron/index.js index 57ca581544f..ceb8e747b25 100644 --- a/src/electron/index.js +++ b/src/electron/index.js @@ -40,4 +40,8 @@ if (!require('electron-squirrel-startup')) { var AppMenu = require('./menu'); AppMenu.init(); require('./window-manager'); + + app.on('ready', function() { + require('./help'); + }); } diff --git a/src/help/entries/connect-favorite-name.md b/src/help/entries/connect-favorite-name.md new file mode 100644 index 00000000000..e4024cbc48b --- /dev/null +++ b/src/help/entries/connect-favorite-name.md @@ -0,0 +1,12 @@ +--- +title: Favorite Name +tags: + - authentication + - connect + - favorite +--- + +Favorite name for a saved connection. + +Connections can be saved as favorites. Provide a name here and click +"Create Favorite" to save a connection. diff --git a/src/help/entries/connect-kerberos-principal.md b/src/help/entries/connect-kerberos-principal.md new file mode 100644 index 00000000000..53299018fbc --- /dev/null +++ b/src/help/entries/connect-kerberos-principal.md @@ -0,0 +1,21 @@ +--- +title: Kerberos Principal +tags: + - authentication + - connect + - kerberos + - needs review +related: + - connect-kerberos-service-name +--- + + +A Kerberos principal is a unique identity to which Kerberos can assign tickets. + + +Principals can have an arbitrary number of components. Each component is +separated by a component separator, generally `/`. The last component is the +realm, separated from the rest of the principal by the realm separator, +generally `@`. + +An example for a Kerberos Principal is: `primary/instance@REALM`. diff --git a/src/help/entries/connect-kerberos-service-name.md b/src/help/entries/connect-kerberos-service-name.md new file mode 100644 index 00000000000..7ad27925190 --- /dev/null +++ b/src/help/entries/connect-kerberos-service-name.md @@ -0,0 +1,17 @@ +--- +title: Kerberos Service Name +tags: + - authentication + - connect + - kerberos + - needs review +--- + + +A Kerberos Service Name is the name by which a client uniquely identifies an +instance of a service. + + +Typically, the service name for a MongoDB instance is named `mongodb`. Provide +another name here if your MongoDB instance was set up with a different service +name. diff --git a/src/help/entries/connect-ssl-certificate-authority.md b/src/help/entries/connect-ssl-certificate-authority.md new file mode 100644 index 00000000000..764d29bf2e4 --- /dev/null +++ b/src/help/entries/connect-ssl-certificate-authority.md @@ -0,0 +1,28 @@ +--- +title: Certificate Authority File +tags: + - authentication + - connect + - ssl + - needs review +related: + - connect-ssl-client-certificate-key + - connect-ssl-client-certificate + - connect-ssl-private-key-password +--- + + +Provide certificate(s) of one or more Certificate Authorities that you trust +to validate the server's identity. + + +For production use, your MongoDB deployment should use valid certificates +generated and signed by a single certificate authority. You or your organization +can generate and maintain an independent certificate authority, or use +certificates generated by a third-party SSL vendor. + +To verify the identity of the MongoDB deployment you connect to, provide +one or more certificates of trusted Certificate Authorities. If this field +is left blank, the server's identity will not be checked which is +**not recommended** because it leaves you vulnerable to man-in-the-middle +attacks. diff --git a/src/help/entries/connect-ssl-client-certificate-key.md b/src/help/entries/connect-ssl-client-certificate-key.md new file mode 100644 index 00000000000..4e5f64d92b0 --- /dev/null +++ b/src/help/entries/connect-ssl-client-certificate-key.md @@ -0,0 +1,15 @@ +--- +title: Client Certificate Key +tags: + - authentication + - connect + - ssl + - todo +related: + - connect-ssl-certificate-authority + - connect-ssl-client-certificate + - connect-ssl-private-key-password +--- +Describes what the `Client Certificate Key` field in the connect dialog does. + +I am *markdown*. diff --git a/src/help/entries/connect-ssl-client-certificate.md b/src/help/entries/connect-ssl-client-certificate.md new file mode 100644 index 00000000000..f00bd088d96 --- /dev/null +++ b/src/help/entries/connect-ssl-client-certificate.md @@ -0,0 +1,15 @@ +--- +title: Client Certificate +tags: + - authentication + - connect + - ssl + - todo +related: + - connect-ssl-certificate-authority + - connect-ssl-client-certificate-key + - connect-ssl-private-key-password +--- +Describes what the `Client Certificate` field in the connect dialog does. + +I am *markdown*. diff --git a/src/help/entries/connect-ssl-private-key-password.md b/src/help/entries/connect-ssl-private-key-password.md new file mode 100644 index 00000000000..aa56a7117ba --- /dev/null +++ b/src/help/entries/connect-ssl-private-key-password.md @@ -0,0 +1,13 @@ +--- +title: Private Key Password +tags: + - authentication + - connect + - ssl + - todo +related: + - connect-ssl-certificate-authority + - connect-ssl-client-certificate-key + - connect-ssl-client-certificate +--- +Describes what the `Private Key Password` field in the connect dialog does. It's optional. diff --git a/src/help/entries/connect-userpass-auth-db.md b/src/help/entries/connect-userpass-auth-db.md new file mode 100644 index 00000000000..ed235c8d87e --- /dev/null +++ b/src/help/entries/connect-userpass-auth-db.md @@ -0,0 +1,18 @@ +--- +title: Authentication Database +tags: + - authentication + - connect +--- +This field represents the _Authentication Database_ (also called +_Authentication Source_) for User/Password authentication. + +In MongoDB's authentication model, a username is scoped to a database, called +_Authentication Database_. The user’s privileges are not necessarily limited to +this database. The user can have privileges in additional databases. + +If the field is left blank, the default value `admin` is used. + +For authentication methods other than User/Password authentication (like +_Kerberos_, _LDAP_, _X.509_) the _Authentication Database_ is always set +to `$external` and no user input is required. diff --git a/src/help/entries/dev-ampersand-tips.md b/src/help/entries/dev-ampersand-tips.md new file mode 100644 index 00000000000..4dca856cac1 --- /dev/null +++ b/src/help/entries/dev-ampersand-tips.md @@ -0,0 +1,99 @@ +--- +title: ampersand.js Tips +tags: + - help + - ampersand + - view + - model +devOnly: true +--- + +Ampersand.js is the Model and View layer used by Compass. + +### View Hierarchy + +This diagram shows the view hierarchy of Compass and where the `.js` files and `.jade` templates for each view are. + +![](./images/help/dev/view_hierarchy.png) + +### Subviews vs. `renderCollection()` vs. `renderSubview()` + +[Ampersand views](http://ampersandjs.com/docs#ampersand-view) offer a number of ways of rendering subviews inside of them, for modular view composition. Each have their own advantages for certain use cases. + +#### Subviews + +Subviews can be defined inside a `subviews` property when extending an AmpersandView, see [ampersand-view subviews](http://ampersandjs.com/docs#ampersand-view-subviews). An example would look like this: + +```js +var AmpersandView = require('ampersand-view'); +var ControlPanelView = require('./controlpanel'); + +module.exports = AmpersandView.extend({ + template: require('./my-view.jade'), + subviews: { + controlview: { // accessible via `self.controlview` + container: '[data-hook=controlpanel-subview]', // use *-subiew hook + waitFor: 'model.controls', // waits until model.controls becomes true-thy + prepareView: function (el) { + return new ControlPanelView({ // return new view instance + el: el, // always pass in the el element + model: this.model.controls // optionally pass in a model or collection + }); + } + } +}); +``` + +Subviews defined this way in the `subviews` property **replace** the DOM element container. Keep this in mind when writing your .html or .jade templates. It makes no sense to add a class or id or any other attributes to the container element, as it will be removed and replaced with the root of the subview. + +**Pro Tip:** A good convention is to always use a hook ending in `-subview`, as opposed to `-container` (see below), to make it easy to see which elements are replaced and which ones stay in the DOM. + +#### renderCollection() + +AmpersandView also has a [`.renderCollection()`](http://ampersandjs.com/docs#ampersand-view-rendercollection) method. It takes an AmpersandCollection, a view class, and a container selector and renders an instance of the view for each model in the collection inside the container. It also listens to changes in the collection and automatically removes or adds new views. + +A typical example often uses `.renderCollection()` inside the `render()` method and could look like this: + +```js +var AmpersandView = require('ampersand-view'); +var MySingleItemView = require('./single-item'); + +module.exports = AmpersandView.extend({ + template: require('./my-view.jade'), + render: function () { + this.renderWithTemplate(this); + this.renderCollection(this.collection, MySingleItemView, this.queryByHook('items-container')); + } +} +``` + +**Pro Tip:** As a convention, here we use a hook ending in `-container`, because the container remains in the DOM. + + +#### renderSubview() + +[`.renderSubview()`](http://ampersandjs.com/docs#ampersand-view-rendersubview) is like a manual version of the `subviews` property mentioned above. It is most often used if the subview is added dynamically at some later point, if you require the container to remain in the DOM, or if the `subviews` mechanism doesn't allow for your specific use case, e.g. the conditions when the subview needs to be rendered. (Notice though that often this can be solved with a _derived property_, that the subview can `waitFor`). + +Typical code could look like this: + +```js +var AmpersandView = require('ampersand-view'); +var MySpecialView = require('./my-special'); + +module.exports = AmpersandView.extend({ + template: require('./my-view.jade'), + events: { + 'click .specialButton': 'onSpecialClicked' + }, + onSpecialClicked: function (evt) { + if (this.rendered) { + var specialModel = ...; // compute special model here + this.renderSubview(specialModel, MySpecialView, this.queryByHook('special-container')); + } + } +} +``` + +This is similar to the `.renderCollection()` example, except it applies to a single view instance instead of multiple views. + +**Pro Tip:** As a convention, again we use a hook ending in `-container`, because the container remains in the DOM. diff --git a/src/help/entries/dev-how-help-works.md b/src/help/entries/dev-how-help-works.md new file mode 100644 index 00000000000..1a849698e1b --- /dev/null +++ b/src/help/entries/dev-how-help-works.md @@ -0,0 +1,107 @@ +--- +title: Compass Help System +tags: + - help +devOnly: true +--- + +This entry explains the help system in Compass. + +The Help system in Compass runs in a separate singleton window, like the +Connect Window. The sidebar shows a list of all available entries, sorted +alphabetically, the main view shows the title, tags, the actual help text, +and related entries. + +### How to add a help button in Compass + +To add a help button (little round info circle) anywhere in the app, go to +the `.jade` file and add a font-awesome symbol like so: + +``` +i.help(data-hook='my-help-entry') +``` + +The data-hook needs to point to a valid help entry key, in this case +`my-help-entry`. + +No additional click handlers are required in any of the view classes. This +is already handled in `./src/app.js`, see the `event` object and the +`onHelpClicked` method. + + +### How to add a help entry + +To add a help entry, add a file to the `src/help/entries` folder. +The filename must be the help entry that was used in the `i.help` +element, and the extension is `.md` for markdown, e.g. `my-help-entry.md`. + +As a convention, the first part of the entry key should be one of: + +- `connect-` for help entries related to the Connect Window +- `schema-` for help entries related to the Schema Window +- `dev-` for developer-only help entries like this one + + +##### Front Matter + +The entry content itself needs to start with a header called "front matter", +which is in YAML format. Here is an example: + +``` +--- +title: Kerberos Principal +tags: + - authentication + - connect + - kerberos +related: + - connect-kerberos-service-name +devOnly: false +--- +``` + +The only required field in the front matter is the `title` field. All other +fields are optional. + +##### Tags + +`tags` are added to the top of the article below the title, but currently +don't have any other function. We might add search by tags in a later version. + +##### Related Links + +When you add one or more related entry keys under the `related` field, a +"Related" section is automatically added at the bottom of the article, linking +to the related entries. + +##### Entries for Developers + +If the `devOnly` field is present and set to `true`, the entry receives +a special red `development` tag, indicating that this entry is meant for +internal development. All such entries are filtered out in the production +version and will not be visible to the end user. + +##### Content + +The actual content for a help entry is written in Markdown. For instructions +see Google. + +##### Images + +Images can be included in help entries as well. To add an image, copy it +to the `./images/help/` folder at the top level, and insert the image in +a help entry like so: + +``` +![](./images/help/my_image.png) +``` + +### Known Issues + +- The help system currently doesn't support external links yet. +- The help window is not yet a singleton +- The help window is too big +- The help window needs styling +- The sidebar should have some hierarchy to find articles faster +- The sidebar should have a filter at the top to find articles faster +- The help system should be accessible from the Help menu diff --git a/src/help/entries/dev-taxonomy.md b/src/help/entries/dev-taxonomy.md new file mode 100644 index 00000000000..2e1a1d93e53 --- /dev/null +++ b/src/help/entries/dev-taxonomy.md @@ -0,0 +1,121 @@ +--- +title: Compass Taxonomy +tags: + - taxonomy + - needs work +devOnly: true +--- + +The [docs style guide][docs-style] has a beautifully detailed and thorough +taxonomy which covers most of the tech taxonomy and it is strongly recommended +you spend some time reviewing it. + + +## deployment + +``` +i.fa.fa-fw.fa-leaf +``` + +1 or more instances that make up a descrete unit of infrastructure. +There are 3 types of deployments: + +### standalone + +``` +i.fa.fa-fw.fa-store +``` + +Only instance is a store instance. + +### replicaset + +``` +i.fa.fa-fw.fa-replicaset +``` + +3 or more store instances and 0 or more arbiter instances. + +### cluster + +``` +i.fa.fa-fw.fa-cluster +``` + +A deployment with sharding enabled. Made up of 1 or more router instances, and general 2 or more replica sets. + +## instance + +A MongoDB process. + +### router + +``` +i.fa.fa-fw.fa-router +``` + +A mongos process. + +### config + +``` +i.fa.fa-fw.fa-config +``` + +A mongod process running as a config server for routers. + +### store + +``` +i.fa.fa-fw.fa-store +``` + +A vanilla mongod process running as part of a standlone or replica set. + +## dataset + +### database + +### collection + +### index + +### document + +## System (wip. whats it called in the kernel?) + +### Replication + +The active distributed-system providing fault-tolerance. + +#### oplog + +The element of replication that stores all operations and powers the oplog synchronization subsystem. + +#### oplog synchronization + +The subsystem by which members communicate. + +#### election + +#### member + +##### primary + +##### secondary + +##### arbiter + +### Sharding + +#### routing + +#### shard + +#### balancing + +#### chunk + +#### chunk migration + +[docs-style]: http://docs.mongodb.org/manual/meta/style-guide/#jargon-and-common-terms diff --git a/src/help/entries/schema-how-sampling-works.md b/src/help/entries/schema-how-sampling-works.md new file mode 100644 index 00000000000..316f3ab3ac8 --- /dev/null +++ b/src/help/entries/schema-how-sampling-works.md @@ -0,0 +1,7 @@ +--- +title: How Sampling Works +tags: + - schema + - sampling + - todo +--- diff --git a/src/help/entries/schema-query-bar.md b/src/help/entries/schema-query-bar.md new file mode 100644 index 00000000000..e9cb6427ee4 --- /dev/null +++ b/src/help/entries/schema-query-bar.md @@ -0,0 +1,8 @@ +--- +title: Query Bar +tags: + - schema + - sampling + - query + - todo +--- diff --git a/src/help/entries/schema-sampling-results.md b/src/help/entries/schema-sampling-results.md new file mode 100644 index 00000000000..f4fc5059692 --- /dev/null +++ b/src/help/entries/schema-sampling-results.md @@ -0,0 +1,37 @@ +--- +title: Sampling Results +tags: + - schema + - sampling + - results +related: + - schema-how-sampling-works + - schema-query-bar +--- + +The message below the Query Bar provides information about the +number of documents that matched the query, and the number of documents +used for the schema report. + + +There are two possible outcomes when you use the +[Query Bar](#schema-query-bar) to refine the results. + +1. The query you specified matches _more than_ the sampling limit (currently + 100 documents). + + In this case, Compass samples 100 documents randomly from + the matching documents, and builds a schema report based on that sample. + You will see a message that provides both the number of matched documents + and the size of the sample set. Example: + + ![](./images/help/schema/sampling-results-sample.png) + +2. The query you specified matches _less than or equal to_ the sampling limit + (currently 100 documents). + + In this case, Compass uses all matched documents + to build a schema report. You will see a message that provides the number + of matched documents. Example: + + ![](./images/help/schema/sampling-results-full.png) diff --git a/src/help/index.jade b/src/help/index.jade new file mode 100644 index 00000000000..1c343878a27 --- /dev/null +++ b/src/help/index.jade @@ -0,0 +1,5 @@ +.page.help + div(data-hook='sidebar-subview') + .content.with-sidebar + h1(data-hook='help-entry-title') + .help-entry(data-hook='help-entry-content') diff --git a/src/help/index.js b/src/help/index.js new file mode 100644 index 00000000000..13a997545f8 --- /dev/null +++ b/src/help/index.js @@ -0,0 +1,165 @@ +var View = require('ampersand-view'); +var format = require('util').format; +var debug = require('debug')('scout:help'); +var relatedTemplate = require('./related.jade'); +var tagTemplate = require('./tags.jade'); +var HelpEntryCollection = require('../models/help-entry-collection'); +var HelpEntry = require('../models/help-entry'); +var SidebarView = require('./sidebar'); +var ViewSwitcher = require('ampersand-view-switcher'); +var app = require('ampersand-app'); +var _ = require('lodash'); + +var entries = new HelpEntryCollection(); + +var HelpPage = View.extend({ + session: { + entryId: 'string' + }, + children: { + entry: HelpEntry + }, + derived: { + title: { + deps: ['entry.title'], + fn: function() { + var t = 'MongoDB Compass: Help'; + if (this.entry.title) { + t += ': ' + this.entry.title; + } + return t; + } + } + }, + events: { + 'click a': 'onLinkClicked' + }, + bindings: { + 'entry.title': { + hook: 'help-entry-title' + }, + title: { + type: function(el, newVal) { + document.title = newVal; + } + } + }, + onLinkClicked: function(evt) { + evt.preventDefault(); + evt.stopPropagation(); + // @todo handle external links + var entryId = evt.delegateTarget.hash.slice(1); + if (entryId) { + this.show(entryId); + } + }, + template: require('./index.jade'), + initialize: function(spec) { + spec = spec || {}; + entries.fetch(); + + if (spec.entryId) { + this.entryId = spec.entryId; + debug('initialized with entryId `%s`', this.entryId); + } + this.listenTo(this, 'change:rendered', function() { + this.viewSwitcher = new ViewSwitcher(this.queryByHook('help-entry-content')); + + if (this.entryId) { + this.show(this.entryId); + } + }); + }, + show: function(entryId) { + debug('show `%s`', entryId); + if (entries.length === 0) { + entries.once('sync', this.show.bind(this, entryId)); + debug('entries not synced yet. queuing...'); + return; + } + + var entry = entries.get(entryId); + + if (!entry) { + debug('Unknown help entry', entryId); + this.viewSwitcher.clear(); + app.statusbar.showMessage('Help entry not found.'); + return; + } + + app.statusbar.hide(); + + if (!entries.select(entry)) { + debug('already selected'); + return; + } + + // get related entries + var relatedEntries = _(entry.related) + .map(function(relEntry) { + return entries.get(relEntry); + }) + .filter(function(relEntry) { + return relEntry; + }) + .value(); + + var view = new View({ + /** + * constructing the final help window template here, which consists of + * - surrounding

+ * - "tags" template, @see ./tags.jade + * - the content, @see ./entries/*.md files + * - "related" template, @see ./related.jade + */ + template: + '
' + + tagTemplate({ + tags: entry.tags, + devOnly: entry.devOnly + }) + + entry.content + + relatedTemplate({ + relatedEntries: relatedEntries + }) + + '
' + }); + this.viewSwitcher.set(view); + + this.entry.set(entry.serialize()); + app.navigate(format('help/%s', this.entry.getId()), { + silent: true + }); + }, + subviews: { + sidebar: { + hook: 'sidebar-subview', + prepareView: function(el) { + return new SidebarView({ + el: el, + parent: this, + entries: entries + }); + } + } + } +}); + +/** + * Convenience to open the help window if needed and show an item. + * + * @param {String} [entryId] - Optional filename to show from `./items/#{entryId}.jade`. + * + * @todo (imlucas) Add helper to `./src/electron/window-manager.js` so this works + * like connect window (singleton w/ custom dimensions). + */ +HelpPage.open = function(entryId) { + var url = format('%s?#help', window.location.origin); + if (entryId) { + url += '/' + entryId; + } + debug('Opening item `%s`', entryId); + window.open(url); +}; + +module.exports = HelpPage; diff --git a/src/help/index.less b/src/help/index.less new file mode 100644 index 00000000000..3629bd8fb8e --- /dev/null +++ b/src/help/index.less @@ -0,0 +1,69 @@ +#application > div { + height: 100%; +} +.page.help { + .container-fluid; + + .sidebar { + .compass-logo { + height: 72px; + } + + .panel { + position: absolute; + top: 72px; + left: 0; + bottom: 0; + width: 220px; + overflow-y: auto; + background: none; + + .panel-title { + padding: 8px 0; + overflow: auto; + border-top: 1px solid lighten(@slate1, 5%); + border-left: 4px solid transparent; + } + + .list-group { + position: initial; + + a.list-group-item { + color: @gray5; + padding: 2px 0 2px 10px; + display: block; + cursor: pointer; + border-left: 4px solid transparent; + font-weight: bold; + + &.selected { + border-left: 4px solid @green3; + color: @green3; + + &:hover { + color: @green3; + } + } + &:hover { + text-decoration: none; + background: lighten(@slate1, 5%); + color: @pw; + } + } + } + } + } + + .help-entry { + + img { + max-width: 100%; + } + .related { + padding-top: 20px; + } + .tags { + padding-bottom: 20px; + } + } +} diff --git a/src/help/related.jade b/src/help/related.jade new file mode 100644 index 00000000000..c593d83b8e9 --- /dev/null +++ b/src/help/related.jade @@ -0,0 +1,7 @@ +.related + if relatedEntries && relatedEntries.length > 0 + h4 Related Topics + ul + each entry in relatedEntries + li + a(href='##{entry.id}')= entry.title diff --git a/src/help/sidebar.jade b/src/help/sidebar.jade new file mode 100644 index 00000000000..9e8e3ff2958 --- /dev/null +++ b/src/help/sidebar.jade @@ -0,0 +1,6 @@ +.sidebar + .compass-logo + .panel + .panel-title + | Help Topics + .list-group(data-hook='help-entry-list') diff --git a/src/help/sidebar.js b/src/help/sidebar.js new file mode 100644 index 00000000000..be2219f75f8 --- /dev/null +++ b/src/help/sidebar.js @@ -0,0 +1,51 @@ +var View = require('ampersand-view'); +var jade = require('jade'); +var debug = require('debug')('scout:help:sidebar'); + +var SidebarItemView = View.extend({ + namespace: 'HelpSidebarItemView', + bindings: { + 'model.url': { + hook: 'url', + type: 'attribute', + name: 'href' + }, + 'model.title': { + hook: 'title' + }, + 'model.description': { + hook: 'description' + }, + 'model.selected': { + type: 'booleanClass', + yes: 'selected' + } + }, + events: { + 'click a': 'show' + }, + show: function(evt) { + evt.stopPropagation(); + evt.preventDefault(); + this.parent.parent.show(this.model.getId()); + }, + template: jade.compile([ + 'a.list-group-item(data-hook="url")', + ' span(data-hook="title")' + ].join('\n')) +}); + +var SidebarView = View.extend({ + initialize: function(spec) { + this.entries = spec.entries; + }, + namespace: 'HelpSidebarView', + template: require('./sidebar.jade'), + render: function() { + this.renderWithTemplate(this); + debug('rendering collection', this.entries); + this.renderCollection(this.entries, SidebarItemView, this.queryByHook('help-entry-list')); + } +}); + +module.exports = SidebarView; diff --git a/src/help/tags.jade b/src/help/tags.jade new file mode 100644 index 00000000000..50713ab5b61 --- /dev/null +++ b/src/help/tags.jade @@ -0,0 +1,8 @@ +.tags + if tags && tags.length > 0 + ul.list-inline + each tag in tags + li + span.label.label-primary= tag + if devOnly + span.label.label-danger development diff --git a/src/index.less b/src/index.less index 3b0f4d21120..fd8356b6b94 100644 --- a/src/index.less +++ b/src/index.less @@ -6,6 +6,7 @@ @import "./src/connect/index.less"; @import "./src/document-list/index.less"; @import "./src/field-list/index.less"; +@import "./src/help/index.less"; @import "./src/home/index.less"; @import "./src/minicharts/index.less"; @import "./src/refine-view/index.less"; diff --git a/src/models/help-entry-collection.js b/src/models/help-entry-collection.js new file mode 100644 index 00000000000..94ea1934b7b --- /dev/null +++ b/src/models/help-entry-collection.js @@ -0,0 +1,44 @@ +var Collection = require('ampersand-rest-collection'); +var HelpEntry = require('./help-entry'); +var selectableMixin = require('./selectable-collection-mixin'); +var withSync = require('./with-sync'); +var debug = require('debug')('scout:models:help-entry-collection'); +var ipc = window.require('ipc'); + +var HelpEntryCollection = Collection.extend(selectableMixin, { + namespace: 'HelpEntryCollection', + comparator: 'title', + model: HelpEntry +}, withSync(function(options, done) { + if (options.method !== 'read') { + return done(new TypeError('Read-only!')); + } + + debug('sync called w options', options); + + if (this.models.length > 0) { + debug('already fetched'); + options.reset = false; + return done(); + } + + var onSuccess; + var onError = function(err) { + debug('error', err); + ipc.removeListener('/help/entries/success', onSuccess); + done(err); + }; + + onSuccess = function(entries) { + debug('got entries', entries); + ipc.removeListener('/help/entries/error', onError); + done(null, entries); + }; + + debug('loading help entries...'); + ipc.once('/help/entries/success', onSuccess) + .once('/help/entries/error', onError) + .send('/help/entries'); +})); + +module.exports = HelpEntryCollection; diff --git a/src/models/help-entry.js b/src/models/help-entry.js new file mode 100644 index 00000000000..6a2bc1bb456 --- /dev/null +++ b/src/models/help-entry.js @@ -0,0 +1,42 @@ +var State = require('ampersand-state'); +var format = require('util').format; +var debug = require('debug')('scout:models:help-entry'); + +var HelpEntry = State.extend({ + namespace: 'HelpEntry', + props: { + id: 'string', + title: 'string', + content: 'string', + tags: 'array', + related: 'array', + devOnly: 'boolean' + }, + derived: { + url: { + deps: ['id'], + fn: function() { + return format('/help/%s', this.getId()); + } + } + }, + session: { + selected: { + type: 'boolean', + default: false + } + }, + parse: function(resp) { + debug('parse', resp); + return { + id: resp.filename.replace('.md', ''), + title: resp.meta.title, + tags: resp.meta.tags || [], + related: resp.meta.related || [], + devOnly: !!resp.meta.devOnly, + content: resp.content + }; + } +}); + +module.exports = HelpEntry; diff --git a/src/models/with-sync.js b/src/models/with-sync.js new file mode 100644 index 00000000000..0ef078e81bd --- /dev/null +++ b/src/models/with-sync.js @@ -0,0 +1,34 @@ +var debug = require('debug')('scout:models:with-sync'); +var withSync = function(fn) { + return { + sync: function(method, model, options) { + var done = function(err, res) { + debug('done called', { + err: err, + res: res + }); + + if (err) { + if (options.error) { + options.error(err, 'error', err.message); + } + model.trigger('error', err); + return; + } + + if (options.success) { + options.success(res, 'success'); + } + model.trigger('sync'); + }; + + options.model = model; + options.method = method; + + model.trigger('request', {}, {}, options); + fn.apply(model, [options, done]); + } + }; +}; + +module.exports = withSync; diff --git a/src/router.js b/src/router.js index 03555658931..b83c202bd03 100644 --- a/src/router.js +++ b/src/router.js @@ -1,7 +1,8 @@ var AmpersandRouter = require('ampersand-router'); var HomePage = require('./home'); -var Connect = require('./connect'); +var ConnectPage = require('./connect'); +var HelpPage = require('./help'); module.exports = AmpersandRouter.extend({ routes: { @@ -9,6 +10,8 @@ module.exports = AmpersandRouter.extend({ schema: 'index', connect: 'connect', 'schema/:ns': 'schema', + help: 'help', + 'help/:entryId': 'help', '(*path)': 'catchAll' }, index: function() { @@ -19,10 +22,15 @@ module.exports = AmpersandRouter.extend({ ns: ns })); }, + help: function(entryId) { + this.trigger('page', new HelpPage({ + entryId: entryId + })); + }, catchAll: function() { this.redirectTo(''); }, connect: function() { - this.trigger('page', new Connect({})); + this.trigger('page', new ConnectPage({})); } }); diff --git a/src/sampling-message/index.jade b/src/sampling-message/index.jade index 5feb81eb8aa..7197348f473 100644 --- a/src/sampling-message/index.jade +++ b/src/sampling-message/index.jade @@ -11,3 +11,4 @@ | Query returned  b #{formatted_sample_size} |  #{sample_size_document}. + i.help(data-hook='schema-sampling-results') diff --git a/src/statusbar/index.js b/src/statusbar/index.js index 419570ed441..39a4f2b7037 100644 --- a/src/statusbar/index.js +++ b/src/statusbar/index.js @@ -114,6 +114,11 @@ var StatusbarView = View.extend({ this.width = 100; this.loadingIndicator = true; }, + showMessage: function(message) { + this.visible = true; + this.message = message || ''; + this.loadingIndicator = false; + }, hide: function(completed) { this.message = ''; this.loadingIndicator = false; diff --git a/src/tour/index.js b/src/tour/index.js index 6c28a992454..c19e73e8dc0 100644 --- a/src/tour/index.js +++ b/src/tour/index.js @@ -43,7 +43,8 @@ var TourView = View.extend({ RIGHT_ARROW_KEY, TAB_KEY, ENTER_KEY, - SPACE_KEY].indexOf(evt.keyCode) !== -1) { + SPACE_KEY + ].indexOf(evt.keyCode) !== -1) { this.showNextFeature(); } else if (evt.keyCode === LEFT_ARROW_KEY) { this.showPreviousFeature(); diff --git a/styles/index.less b/styles/index.less index 2b45af66d65..950dbe77403 100644 --- a/styles/index.less +++ b/styles/index.less @@ -2,11 +2,11 @@ @import "font-awesome"; @import "octicons"; @import "bootstrap"; +@import (css) "node_modules/highlight.js/styles/github.css"; // Configuration // @import "./variables.less"; @octicons-font-path: "fonts"; - @fa-font-path: "fonts"; // Tweaks to bootstrap @@ -62,3 +62,18 @@ html, body { } } } + +// make all help buttons consistent +i.help { + .fa-icon; + margin: 0 5px; + cursor: pointer; + color: @gray5; + + &:hover { + color: @alertOrange; + } + &:before { + content: @fa-var-info-circle; + } +} From 4a9256ce6034bd0d64bf98c9c64dd2827e9f07d3 Mon Sep 17 00:00:00 2001 From: Waley Date: Mon, 16 Nov 2015 19:46:29 -0500 Subject: [PATCH 2/4] INT-833 Make help window a singleton, change window size Squashed: INT-833 help window not clicking element bug fix INT-833 code cleanup INT-833 fix nom run check INT-833 redundant code INT-833 use loadURL instead of executeJS send message instead of loadURL, much faster --- src/app.js | 13 ++++---- src/electron/menu.js | 61 +++++++++++++++++++++------------- src/electron/window-manager.js | 53 ++++++++++++++++++----------- src/help/index.js | 19 ++--------- src/home/index.js | 1 - 5 files changed, 79 insertions(+), 68 deletions(-) diff --git a/src/app.js b/src/app.js index fd968034c62..0a4c403c645 100644 --- a/src/app.js +++ b/src/app.js @@ -28,7 +28,6 @@ var MongoDBInstance = require('./models/mongodb-instance'); var User = require('./models/user'); var Router = require('./router'); var Statusbar = require('./statusbar'); -var Help = require('./help'); var $ = require('jquery'); var debug = require('debug')('scout:app'); @@ -126,7 +125,7 @@ var Application = View.extend({ }, onHelpClicked: function(evt) { var id = $(evt.target).attr('data-hook'); - Help.open(id); + app.sendMessage('show help window', id); }, onClientReady: function() { debug('Client ready! Took %dms to become readable', @@ -291,12 +290,12 @@ app.extend({ setFeature: function(id, bool) { FEATURES[id] = bool; }, - sendMessage: function(msg, arg1) { - ipc.send('message', msg, arg1); + sendMessage: function(msg, arg) { + ipc.send('message', msg, arg); }, - onMessageReceived: function(msg) { - debug('message received from main process:', msg); - this.trigger(msg); + onMessageReceived: function(msg, arg) { + debug('message received from main process:', msg, arg); + this.trigger(msg, arg); }, metrics: metrics, init: function() { diff --git a/src/electron/menu.js b/src/electron/menu.js index e7cc67cbdd1..e329a2040cb 100644 --- a/src/electron/menu.js +++ b/src/electron/menu.js @@ -1,13 +1,14 @@ // based off of https://github.com/atom/atom/blob/master/src/browser/application-menu.coffee // use js2.coffee to convert it to JS -var _ = require('lodash'); -var app = require('app'); var BrowserWindow = require('browser-window'); -var debug = require('debug')('electron:menu'); var Menu = require('menu'); var State = require('ampersand-state'); +var _ = require('lodash'); +var app = require('app'); +var debug = require('debug')('electron:menu'); + // submenu related function separator() { return { @@ -15,7 +16,7 @@ function separator() { }; } -function quitSubMenu(label) { +function quitSubMenuItem(label) { return { label: label, accelerator: 'CmdOrCtrl+Q', @@ -25,7 +26,7 @@ function quitSubMenu(label) { }; } -function compassOverviewSubMenu() { +function compassOverviewSubMenuItem() { return { label: 'Compass Overview', click: function() { @@ -58,7 +59,7 @@ function darwinCompassSubMenu() { selector: 'unhideAllApplications:' }, separator(), - quitSubMenu('Quit') + quitSubMenuItem('Quit') ] }; } @@ -126,7 +127,7 @@ function editSubMenu() { }; } -function nonDarwinAboutSubMenu() { +function nonDarwinAboutSubMenuItem() { return { label: 'About Compass', click: function() { @@ -135,18 +136,27 @@ function nonDarwinAboutSubMenu() { }; } +function helpWindowSubMenuItem() { + return { + label: 'Help', + accelerator: 'CmdOrCtrl+H', + click: function() { + app.emit('show help window'); + } + }; +} + function helpSubMenu(showCompassOverview) { var subMenu = []; - if (showCompassOverview) { - subMenu.push(compassOverviewSubMenu()); + subMenu.push(helpWindowSubMenuItem()); - if (process.platform !== 'darwin') { - subMenu.push(separator()); - } + if (showCompassOverview) { + subMenu.push(compassOverviewSubMenuItem()); } if (process.platform !== 'darwin') { - subMenu.push(nonDarwinAboutSubMenu()); + subMenu.push(separator()); + subMenu.push(nonDarwinAboutSubMenuItem()); } return { @@ -155,6 +165,15 @@ function helpSubMenu(showCompassOverview) { }; } +function nonDarwinCompassSubMenuItem() { + return { + label: 'MongoDB Compass', + submenu: [ + quitSubMenuItem('Exit') + ] + }; +} + function shareSubMenu() { return { label: 'Share', @@ -230,20 +249,19 @@ function darwinMenu(menuState) { } menu.push(windowSubMenu()); - - if (menuState.showCompassOverview) { - menu.push(helpSubMenu(menuState.showCompassOverview)); - } + menu.push(helpSubMenu(menuState.showCompassOverview)); return menu; } function nonDarwinMenu(menuState) { var menu = [ - connectSubMenu(true), - viewSubMenu() + nonDarwinCompassSubMenuItem() ]; + menu.push(connectSubMenu()); + menu.push(viewSubMenu()); + if (menuState.showShare) { menu.push(shareSubMenu()); } @@ -297,10 +315,6 @@ var AppMenu = (function() { getTemplate: function(winID) { var menuState = this.windowTemplates.get(winID); - debug('WINDOW\'s ' + winID + ' Menu State'); - debug('showCompassOverview: ' + menuState.showCompassOverview); - debug('showShare: ' + menuState.showShare); - if (process.platform === 'darwin') { return darwinMenu(menuState); } @@ -339,7 +353,6 @@ var AppMenu = (function() { Menu.setApplicationMenu(menu); }, - // share/hide submenu fns hideShare: function() { this.updateMenu('showShare', false); }, diff --git a/src/electron/window-manager.js b/src/electron/window-manager.js index fcdcc7c7eab..f870048bc3e 100644 --- a/src/electron/window-manager.js +++ b/src/electron/window-manager.js @@ -3,36 +3,36 @@ * [BrowserWindow](https://github.com/atom/electron/blob/master/docs/api/browser-window.md) * class */ - var AppMenu = require('./menu'); var BrowserWindow = require('browser-window'); var Notifier = require('node-notifier'); -var Path = require('path'); var _ = require('lodash'); var app = require('app'); var config = require('./config'); var debug = require('debug')('scout-electron:window-manager'); var dialog = require('dialog'); +var path = require('path'); /** * When running in electron, we're in `RESOURCES/src/electron`. */ -var RESOURCES = Path.resolve(__dirname, '../../'); -var SCOUT_ICON_PATH = RESOURCES + '/images/scout.png'; +var RESOURCES = path.resolve(__dirname, '../../'); /** * The app's HTML shell which is the output of `./src/index.jade` * created by the `build:pages` gulp task. */ -var DEFAULT_URL = 'file://' + Path.join(RESOURCES, 'index.html#connect'); +var DEFAULT_URL = 'file://' + path.join(RESOURCES, 'index.html#connect'); +var HELP_URL = 'file://' + path.join(RESOURCES, 'index.html#help'); /** - * We want the Connect dialog window to be special - * and for there to ever only be one instance of it - * so we'll use scope to essentially make it a Singleton. + * We want the Connect and Help window to be special + * and for there to ever only be one instance of each of them + * so we'll use scope to essentially make each of them a Singleton. */ var connectWindow; +var helpWindow; // @todo (imlucas): Removed in setup branch as we dont need to do this anymore // as a `all-windows-closed` event has been added to the `app` event api @@ -136,11 +136,6 @@ function createWindow(opts, url) { return module.exports.create(opts); } -app.on('close connect', function() { - connectWindow.close(); - connectWindow = null; -}); - app.on('show about dialog', function() { dialog.showMessageBox({ type: 'info', @@ -156,9 +151,29 @@ app.on('show connect dialog', function() { } connectWindow = createWindow({}, DEFAULT_URL); - connectWindow.on('focus', function() { - debug('connect window focused.'); - connectWindow.webContents.send('message', 'connect-window-focused'); + connectWindow.on('closed', function() { + debug('connect window closed.'); + connectWindow = null; + }); +}); + +app.on('show help window', function(id) { + if (helpWindow) { + helpWindow.focus(); + if (_.isString(id)) { + helpWindow.webContents.send('message', 'show-help-entry', id); + } + return; + } + + var url = HELP_URL; + if (_.isString(id)) { + url += '/' + id; + } + + helpWindow = createWindow({}, url); + helpWindow.on('closed', function() { + helpWindow = null; }); }); @@ -203,7 +218,7 @@ app.on('ready', function() { }); var ipc = require('ipc'); -ipc.on('message', function(event, msg, arg1) { - debug('message received in main process', msg); - app.emit(msg, arg1); +ipc.on('message', function(event, msg, arg) { + debug('message received in main process', msg, arg); + app.emit(msg, arg, event); }); diff --git a/src/help/index.js b/src/help/index.js index 13a997545f8..396b5e4cb22 100644 --- a/src/help/index.js +++ b/src/help/index.js @@ -69,6 +69,8 @@ var HelpPage = View.extend({ this.show(this.entryId); } }); + + this.listenTo(app, 'show-help-entry', this.show.bind(this)); }, show: function(entryId) { debug('show `%s`', entryId); @@ -145,21 +147,4 @@ var HelpPage = View.extend({ } }); -/** - * Convenience to open the help window if needed and show an item. - * - * @param {String} [entryId] - Optional filename to show from `./items/#{entryId}.jade`. - * - * @todo (imlucas) Add helper to `./src/electron/window-manager.js` so this works - * like connect window (singleton w/ custom dimensions). - */ -HelpPage.open = function(entryId) { - var url = format('%s?#help', window.location.origin); - if (entryId) { - url += '/' + entryId; - } - debug('Opening item `%s`', entryId); - window.open(url); -}; - module.exports = HelpPage; diff --git a/src/home/index.js b/src/home/index.js index ad704e322c2..aab7e54213f 100644 --- a/src/home/index.js +++ b/src/home/index.js @@ -49,7 +49,6 @@ var HomeView = View.extend({ this.once('change:rendered', this.onRendered); debug('fetching instance model...'); app.instance.fetch(); - app.sendMessage('show compass overview submenu'); }, render: function() { From a7a91a9a38270db4445ff9927eb35267b086ec6d Mon Sep 17 00:00:00 2001 From: Thomas Rueckstiess Date: Wed, 18 Nov 2015 15:45:10 +1100 Subject: [PATCH 3/4] Cmd-H is already used, use F1 accelerator for help --- src/electron/menu.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/electron/menu.js b/src/electron/menu.js index e329a2040cb..207df87b826 100644 --- a/src/electron/menu.js +++ b/src/electron/menu.js @@ -138,8 +138,8 @@ function nonDarwinAboutSubMenuItem() { function helpWindowSubMenuItem() { return { - label: 'Help', - accelerator: 'CmdOrCtrl+H', + label: 'Show Compass Help', + accelerator: 'F1', click: function() { app.emit('show help window'); } From ba0e293d84813cf27998eb7d2fa64af3aa9919f9 Mon Sep 17 00:00:00 2001 From: Thomas Rueckstiess Date: Thu, 19 Nov 2015 12:54:31 +1100 Subject: [PATCH 4/4] INT-793 :shirt: and killing the logo --- src/electron/menu.js | 2 +- src/electron/window-manager.js | 1 + src/help/index.js | 2 +- src/help/index.less | 3 +-- src/help/sidebar.jade | 1 - 5 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/electron/menu.js b/src/electron/menu.js index 207df87b826..b6c53cd9552 100644 --- a/src/electron/menu.js +++ b/src/electron/menu.js @@ -79,7 +79,7 @@ function connectSubMenu(nonDarwin) { if (nonDarwin) { subMenu.push(separator()); - subMenu.push(quitSubMenu('Exit')); + subMenu.push(quitSubMenuItem('Exit')); } return { diff --git a/src/electron/window-manager.js b/src/electron/window-manager.js index f870048bc3e..3a318705bb4 100644 --- a/src/electron/window-manager.js +++ b/src/electron/window-manager.js @@ -18,6 +18,7 @@ var path = require('path'); * When running in electron, we're in `RESOURCES/src/electron`. */ var RESOURCES = path.resolve(__dirname, '../../'); +var SCOUT_ICON_PATH = RESOURCES + '/images/scout.png'; /** * The app's HTML shell which is the output of `./src/index.jade` diff --git a/src/help/index.js b/src/help/index.js index 396b5e4cb22..be975838a1b 100644 --- a/src/help/index.js +++ b/src/help/index.js @@ -23,7 +23,7 @@ var HelpPage = View.extend({ title: { deps: ['entry.title'], fn: function() { - var t = 'MongoDB Compass: Help'; + var t = 'MongoDB Compass Help'; if (this.entry.title) { t += ': ' + this.entry.title; } diff --git a/src/help/index.less b/src/help/index.less index 3629bd8fb8e..44cbe56d33e 100644 --- a/src/help/index.less +++ b/src/help/index.less @@ -11,7 +11,7 @@ .panel { position: absolute; - top: 72px; + top: 0; left: 0; bottom: 0; width: 220px; @@ -21,7 +21,6 @@ .panel-title { padding: 8px 0; overflow: auto; - border-top: 1px solid lighten(@slate1, 5%); border-left: 4px solid transparent; } diff --git a/src/help/sidebar.jade b/src/help/sidebar.jade index 9e8e3ff2958..6ea9e4aae3f 100644 --- a/src/help/sidebar.jade +++ b/src/help/sidebar.jade @@ -1,5 +1,4 @@ .sidebar - .compass-logo .panel .panel-title | Help Topics