13.24.1 • Published 1 month ago

@mongodb-js/compass-crud v13.24.1

Weekly downloads
1,024
License
SSPL
Repository
github
Last release
1 month ago

Compass CRUD Plugin

Provide functionality shown in the "Documents" tab in the Collection view in Compass. compass-crud

Usage

Definitions

KeyDescription
CRUD.DocumentRenders a single document.
CRUD.DocumentListRenders a list of documents.

Actions

KeyDescription
CRUD.ActionsAll the CRUD related actions.

Stores

KeyDescription
CRUD.InsertDocumentStoreTriggers when a document is inserted.
CRUD.ResetDocumentListStoreTriggers when the query filter is reset.
CRUD.LoadMoreDocumentsStoreTriggers when more documents are fetched via scrolling.

Components from this plugin can be interracted with using hadron-app and hadron-app-registry. Here are a few examples of working with compass-crud's Action and Roles.

Render an editable document in a React component.

const app = require('hadron-app');
const React = require('react');

class MyComponent extends React.Component {
  constructor(props) {
    super(props);
    this.Document = app.appRegistry.getRole('CRUD.Document')[0].component;
  }
  render() {
    return <this.Document doc={this.props.document} editable />;
  }
}

Render a non-editable pre-expanded document in a React component.

const app = require('hadron-app');
const React = require('react');

class MyComponent extends React.Component {
  constructor(props) {
    super(props);
    this.Document = app.appRegistry.getRole('CRUD.Document')[0].component;
  }
  render() {
    return <this.Document doc={this.props.document} expandAll />;
  }
}

Listen to the various CRUD actions.

const app = require('hadron-app');
const CrudActions = app.appRegistry.getAction('CRUD.Actions');

CrudActions.documentRemoved.listen((id) => {
  console.log(`Document with _id ${id} removed.`);
});

CrudActions.openInsertDocumentDialog((doc, clone) => {
  if (clone) {
    console.log('Opening insert dialog with cloned document');
  }
});

CrudActions.insertDocument((doc) => {
  console.log('Inserting document into db');
});

App Registry Events Emmitted

Various actions within this plugin will emit events for other parts of the application can be listened to via hadron-app-registry. Local events are scoped to a Tab. Global events are scoped to the whole Compass application.

Global

  • 'document-view-changed', view: indicates document view changed. view can be either JSON, List, or Table.
  • 'documents-paginated': indicates when pagination is complete. Called when calling the next or previous pages in pagination.
  • 'documents-refreshed': indicates documents were refreshed.
  • 'document-inserted': indicates documents were inserted. Called when insertMany and insertOne complete.
  • 'document-updated': indicates a document was updated.
  • 'document-deleted': indicates a document was deleted.

Local

  • 'document-view-changed', view: indicates document view changed. view can be either JSON, List, or Table.
  • 'documents-paginated': indicates when pagination is complete. Called when calling the next or previous pages in pagination.
  • 'documents-refreshed': indicates documents were refreshed.
  • 'document-inserted': indicates documents were inserted. Called when insertMany and insertOne complete.
  • 'document-updated': indicates a document was updated.
  • 'document-deleted': indicates a document was deleted.

App Registry Events Received

Local

  • 'import-finished': received when import in the import-export plugin is finished. Refreshes documents.
  • 'query-changed': received when query was changed in the query bar. Handles updates to crud plugin's query state, and refreshes documents.
  • 'refresh-data': received when other plugins need documents refreshed. Refreshes documents.

Global

  • 'instance-refreshed': received when compass instance was refreshed
  • 'refresh-data': received when other plugins need documents refreshed. Refreshes documents. (reloaded). Refreshes instance state: dataLake variables.

Metrics Events

  • document-view-changed
  • documents-paginated
  • documents-refreshed
  • document-inserted
  • document-updated
  • document-deleted

Development

Code Tour

Compass Crud uses React, and Reflux for state management. There are two stores we manage: crud-store(./src/stores/crud-store.js) and grid-store(./src/stores/grid-store.js). Overall structure of this repo:

  • ./dist: webpack-compiled version of this plugin.
  • ./scripts: scripts to link and unlink React version to compass when developing this locally in Compass.
  • ./src/actions: reflux actions that are available throughout this plugin.
  • ./src/assets: css assets, such as variables and styles from compass.
  • ./src/components: react components that make up this plugin. Almost all components have a .jsx, .spec.js, .less and .js files.
  • ./src/stores: home to reflux stores.
  • ./src/utils: util .js files to be used throughout the plugin.

Install

npm install -S @mongodb-js/compass-crud

See Also

13.24.1

2 months ago

13.23.4

3 months ago

13.23.3

3 months ago

13.23.1

4 months ago

13.23.0

4 months ago

13.22.0

4 months ago

13.21.5

4 months ago

13.21.4

4 months ago

13.21.3

4 months ago

13.21.2

5 months ago

13.21.1

5 months ago

13.21.0

5 months ago

13.18.0

6 months ago

13.19.0

5 months ago

13.16.0

6 months ago

13.17.0

6 months ago

13.14.0

7 months ago

13.15.0

7 months ago

13.15.1

6 months ago

13.12.0

8 months ago

13.13.0

7 months ago

13.11.0

9 months ago

13.11.1

9 months ago

13.20.0

5 months ago

13.10.0

11 months ago

13.9.0

11 months ago

13.7.0

1 year ago

13.8.0

12 months ago

13.5.3

1 year ago

13.5.1

1 year ago

13.5.2

1 year ago

13.5.0

1 year ago

13.6.0

1 year ago

13.4.0

1 year ago

13.3.0

1 year ago

13.2.0

2 years ago

13.1.1

2 years ago

12.25.0

2 years ago

12.26.0

2 years ago

13.0.0

2 years ago

12.27.0

2 years ago

12.27.1

2 years ago

12.24.0

2 years ago

12.22.0

2 years ago

12.23.0

2 years ago

12.21.0

2 years ago

12.18.1

2 years ago

12.18.0

2 years ago

12.19.1

2 years ago

12.19.2

2 years ago

12.19.0

2 years ago

12.20.0

2 years ago

12.16.0

2 years ago

12.17.0

2 years ago

12.15.0

3 years ago

12.14.0

3 years ago

12.12.0

3 years ago

12.13.0

3 years ago

12.11.0

3 years ago

12.10.0

3 years ago

12.9.0

3 years ago

12.8.4

3 years ago

12.8.3

3 years ago

12.8.2

3 years ago

12.8.0

3 years ago

12.8.1

3 years ago

12.7.0

3 years ago

12.6.0

3 years ago

12.5.0

3 years ago

12.4.0

3 years ago

12.3.0

3 years ago

12.2.2

3 years ago

12.2.1

3 years ago

12.2.0

3 years ago

12.1.0

3 years ago

12.0.0

3 years ago

11.3.1

3 years ago

11.3.0

3 years ago

11.2.0

3 years ago

11.1.1

3 years ago

11.1.0

3 years ago

11.0.2

3 years ago

11.0.1

3 years ago

11.0.0

3 years ago

10.1.4

3 years ago

10.1.3

3 years ago

10.1.2

3 years ago

10.1.1

3 years ago

10.1.0

3 years ago

10.0.5

3 years ago

10.0.4

3 years ago

10.0.3

4 years ago

10.0.2

4 years ago

10.0.1

4 years ago

10.0.0

4 years ago

9.0.8

4 years ago

9.0.7

4 years ago

9.0.6

4 years ago

9.0.5

4 years ago

9.0.4

4 years ago

9.0.3

4 years ago

9.0.2

4 years ago

9.0.1

4 years ago

9.0.0

4 years ago

8.3.0

4 years ago

8.2.0

4 years ago

8.1.5

4 years ago

8.1.4

4 years ago

8.1.2

4 years ago

8.1.3

4 years ago

8.1.1

4 years ago

8.1.0

4 years ago

8.0.2

5 years ago

8.0.1

5 years ago

8.0.0

5 years ago

7.1.7

5 years ago

7.1.6

5 years ago

7.1.5

5 years ago

7.1.4

5 years ago

7.1.3

5 years ago

7.1.2

5 years ago

7.1.1

5 years ago

7.1.0

5 years ago

7.0.4

5 years ago

7.0.3

5 years ago

7.0.2

5 years ago

7.0.1

5 years ago

7.0.0

5 years ago

6.3.5

5 years ago

6.3.4

5 years ago

6.3.3

5 years ago

6.3.2

5 years ago

6.3.1

5 years ago

6.3.0

5 years ago

6.2.7

5 years ago

6.2.6

5 years ago

6.2.5

5 years ago

6.2.4

5 years ago

6.2.3

5 years ago

6.2.2

5 years ago

6.2.1

5 years ago

6.2.0

5 years ago

6.1.2

5 years ago

6.1.1

5 years ago

6.1.0

5 years ago

6.0.2

5 years ago

6.0.1

5 years ago

6.0.0

5 years ago

5.6.3

5 years ago

5.6.2

5 years ago

5.6.1

5 years ago

5.6.0

5 years ago

5.5.0

5 years ago

5.4.0

6 years ago

5.3.8

6 years ago

5.3.7

6 years ago

5.3.5

6 years ago

5.3.4

6 years ago

5.3.3

6 years ago

5.3.2

6 years ago

5.3.1

6 years ago

5.3.0

6 years ago

5.2.1

6 years ago

5.2.0

6 years ago

5.1.2

6 years ago

5.1.1

6 years ago

5.1.0

6 years ago

5.0.0

6 years ago

4.1.2

6 years ago

4.1.1

6 years ago

4.1.0

6 years ago

4.0.0

6 years ago

3.1.7

6 years ago

3.1.6

6 years ago

3.1.5

6 years ago

3.1.3

6 years ago

3.1.2

6 years ago

3.1.1

6 years ago

3.1.0

6 years ago

3.0.5

6 years ago

3.0.4

6 years ago

3.0.3

6 years ago

3.0.2

6 years ago

1.2.4

6 years ago

3.0.1

6 years ago

3.0.0

6 years ago

2.0.10

6 years ago

2.0.9

6 years ago

2.0.8

6 years ago

2.0.7

6 years ago

2.0.6

6 years ago

2.0.5

6 years ago

2.0.4

6 years ago

2.0.3

6 years ago

2.0.2

6 years ago

2.0.1

6 years ago

2.0.0

6 years ago

1.6.1

6 years ago

1.6.0

6 years ago

1.5.0

6 years ago

1.4.0

6 years ago

1.3.0

6 years ago

1.2.3

6 years ago

1.2.2

6 years ago

1.2.1

6 years ago

1.2.0

6 years ago

1.1.5

6 years ago

1.1.4

6 years ago

1.1.3

6 years ago

1.1.2

6 years ago

1.1.1

6 years ago

1.1.0

6 years ago

1.0.0

6 years ago

0.10.0

6 years ago

0.7.5

6 years ago

0.9.1

6 years ago

0.9.0

6 years ago

0.8.0

6 years ago

0.7.4

7 years ago

0.7.3

7 years ago

0.7.2

7 years ago

0.7.1

7 years ago

0.7.0

7 years ago

0.6.0

7 years ago

0.5.1

7 years ago

0.5.0

7 years ago

0.5.0-5

7 years ago

0.5.0-4

7 years ago

0.5.0-3

7 years ago

0.5.0-2

7 years ago

0.5.0-1

7 years ago

0.4.2

7 years ago

0.5.0-0

7 years ago

0.4.1

7 years ago

0.4.0

7 years ago

0.3.0

7 years ago

0.3.0-0

7 years ago

0.2.2

7 years ago

0.2.1

7 years ago

0.2.0

7 years ago

0.1.1

7 years ago

0.1.0

7 years ago

0.0.6

7 years ago

0.0.5

7 years ago

0.0.4

7 years ago

0.0.3

7 years ago

0.0.2

7 years ago

0.0.1

7 years ago