Skip to content

Commit

Permalink
Merge feature/map-style
Browse files Browse the repository at this point in the history
Add map style and custom marker images
  • Loading branch information
Andries-Smit authored Jan 12, 2018
2 parents cae0959 + 1b4977c commit 2fc4e9c
Show file tree
Hide file tree
Showing 32 changed files with 2,872 additions and 1,618 deletions.
47 changes: 15 additions & 32 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
[![Dependency Status](https://david-dm.org/mendixlabs/google-maps.svg)](https://david-dm.org/mendixlabs/google-maps)
[![Dev Dependency Status](https://david-dm.org/mendixlabs/google-maps.svg#info=devDependencies)](https://david-dm.org/mendixlabs/google-maps#info=devDependencies)
[![codecov](https://codecov.io/gh/mendixlabs/google-maps/branch/master/graph/badge.svg)](https://codecov.io/gh/mendixlabs/google-maps)
![badge](https://img.shields.io/badge/mendix-7.6.0-green.svg)
![badge](https://img.shields.io/badge/mendix-7.9.0-green.svg)

# Google Maps
* Show locations on google maps
Expand All @@ -12,6 +12,8 @@
* Show location on a map based on an coordinate
* Show list of both addresses and coordinates on the map
* Data sources Context, Static, XPath or Microflow
* Customize the display of the marker. If the marker can not be found from the custom markers. The widget will use
the specified custom markers else it will use the widget bundled marker.

## Limitations
Context and static datasource are Offline capable with Mendix data, however still need to be online to see the map.
Expand All @@ -21,7 +23,7 @@ from Google applies, especially for geocoding. We even advise geocoding your loc
Mendix application and store them for later use as coordinates on the widget.

## Dependencies
Mendix 7.4
Mendix 7.9.0

## How it Works
When displaying locations, the widget will prioritize coordinates over addresses.In the event that
Expand Down Expand Up @@ -52,37 +54,18 @@ When the default center is not specified, the map will use the bounds center
- On the `Data source` option of the `Data source` tab, select the `Microflow` option.
- Specify the `Location entity` and the `Microflow` to retrieve the Map `locations` from (both required).

### Appearance
- It is used to configure how the map responsively looks in relation to the container it is placed in.

### Custom markers
- It is used to configure how the marker icon should be look. Due to the limitation of Mendix. The markers are created
based on enumeration. An enumeration containing the name and caption of the markers should be created within your project
and that enumeration assigned to the `Location entity`. From the `Custom markers` tab, the enumeration key and image is
then specified in the `Marker images`

## Issues, suggestions and feature requests
Please report issues at [https://github.com/mendixlabs/google-maps/issues](https://github.com/mendixlabs/google-maps/issues).


## Development
Prerequisite: Install git, node package manager, webpack CLI, grunt CLI, Karma CLI

To contribute, fork and clone.

git clone https://github.com/mendixlabs/google-maps.git

The code is in typescript. Use a typescript IDE of your choice, like Visual Studio Code or WebStorm.

To set up the development environment, run:

npm install

Create a folder named dist in the project root.

Create a Mendix test project in the dist folder and rename its root folder to MxTestProject. Changes to the widget code shall be automatically pushed to this test project. Or get the test project from [https://github.com/mendixlabs/google-maps/releases/latest](https://github.com/mendixlabs/google-maps/releases/latest)

dist/MxTestProject

To automatically compile, bundle and push code changes to the running test project, run:

grunt

To run the project unit tests with code coverage, results can be found at dist/testresults/coverage/index.html, run:

npm test

or run the test continuously during development:

karma start
## Development and contribution
Please follow [development guide](/development.md).
68 changes: 68 additions & 0 deletions development.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# Development and contribution
Prerequisite: Install git, node package manager, webpack CLI, grunt CLI, Karma CLI

To contribute, fork and clone.

> git clone https://github.com/mendixlabs/google-maps.git

The code is in typescript. Use a typescript IDE of your choice, like Visual Studio Code or WebStorm.

To set up the development environment, run:

> npm install

Create a folder named `dist` in the project root.

Create a Mendix test project in the dist folder and rename its root folder to `dist/MxTestProject`. Changes to the widget code shall be automatically pushed to this test project.
Or get the test project from [https://github.com/mendixlabs/google-maps/releases/latest](https://github.com/mendixlabs/google-maps/releases/latest)

To automatically compile, bundle and push code changes to the running test project, run:

> npm start

To run the project unit tests with code coverage, results can be found at `dist/testresults/coverage/index.html`, run:

> npm run test:unit

Run the unit test continuously during development:

> npm run test:dev

Run the end to end test during development:

> npm run test:e2e:dev

## Scripts
While developing, you will probably rely mostly on `npm start`; however, there are additional scripts at your disposal:

|`npm run <script>`|Description|
|------------------|-----------|
|`start`|Build the project and monitor source and config for changes and rebuild.|
|`test`|Runs lint, build, unit tests with Karma and generates a coverage report, deploy and run e2e test|
|`test:dev`|Runs Karma and watches for changes to re-run tests; does not generate coverage reports.|
|`test:unit`|Runs unit tests with Karma and generates a coverage report.|
|`test:e2e`|Runs end 2 end tests with remote.|
|`test:e2e:dev`|Runs end 2 end tests with locally on localhost:8080|
|`deploy`|Use latest widget build to update the Mendix project update the application to Mendix node.|
|`build:prod`|Build widget optimized for production|
|`build:dev`|Build widget optimized for debugging.|
|`lint`|Lint all `.js` files.|
|`lint:fix`|Lint and fix all `.ts` files.|

# CI and remote testing
To enable the continues integration services.
Copy the `node_modules/mendix-widget-build-script/dist/localSettings.js`
to your project root, and update the settings to run the update deployment from local source.

**Do not forget** to exclude this file in the `.gitignore` as it contains sensitive data.
```
exports.settings = {
appName: "appName",
key: "xxxxxxxx-xxxx-xxxx-xxxxx-xxxxxxxxxxxx",
password: "secret",
projectId: "xxxxxxxx-xxxx-xxxx-xxxxx-xxxxxxxxxxxx",
user: "ci@example.com"
};
```

More information about the [Mendix widget build script](https://github.com/FlockOfBirds/mendix-widget-build-script).
5 changes: 2 additions & 3 deletions karma.conf.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,8 @@ Object.assign(webpackConfig, {
"react/lib/ReactContext",
"react/addons",
"jsdom",
"dojo/_base/declare",
"mxui/widget/_WidgetBase"
]
/^mxui\/|^mendix\/|^dojo\/|^dijit\//
],
});

module.exports = function(config) {
Expand Down
Loading

0 comments on commit 2fc4e9c

Please sign in to comment.