Skip to content

Commit

Permalink
v3.0
Browse files Browse the repository at this point in the history
  • Loading branch information
andygup committed Nov 23, 2015
1 parent 6632592 commit d914d1b
Show file tree
Hide file tree
Showing 13 changed files with 5,772 additions and 28 deletions.
35 changes: 35 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,40 @@
# offline-editor-js - Changelog

## Version 3.0 - Nov. 23, 2015

Has many breaking changes due to new naming conventions.

This version adds a new, lightweight (14Kb) editing library aimed at intermittent offline-only workflows. And, there was a significant amount of refactoring aimed at fixing and simplifying the library's naming conventions.

This version implements a consistent naming convention that uses "basic" and "advanced". If `basic` is in the name of the distribution library that means support for intermittent offline-only. `advanced` in the name means support for both intermittent and full offline usage including browser restarts while offline.

In general, migrating from v2.x to 3.x should be a straightforward exercise in simple refactoring of library names.

**Enhancements**
* Creates a new `OfflineEditBasic` library. This lightweight (14Kb) library is designed specifically for easy use and intermittent offline-only editing use cases.
* Created `offline-edit-basic` and `offline-edit-advanced` for both `src` and `min` versions.
* Updates documentation, samples and unit tests to reflect the name changes.

**Refactored**
* `offlineFeaturesManager.js` renamed `OfflineEditAdvanced.js`. No other changes were made to this library.
* `offlineTilesEnabler.js` renamed `OfflineTilesBasic.js`.
* `OfflineTilesEnablerLayer.js` renamed `OfflineTilesAdvanced`. No other changes made.
* `tiles-indexed-db.html` renamed to `simple-tiles.html`.
* All samples have been updated to reflect the new library names.
* All test specs have been updated and refactored to reflect the new library names.

**Deprecated**
* Deprecated `offline-edit-min.js` and `offline-edit-src.js`.
* In `OfflineEditAdvanced.js` removed deprecated functions `_cleanSuccessfulEditsDatabaseRecords()`, `_internalApplyEdits()`.
* In `editStore.js` removed deprecated function `resetLimitedPhantomGraphicsQueue()`.
* In `editStore.js` removed unused functions `_serialize()`, `_deserialize()`.
* Deleted `/demo/samples` directory.
* Removed Offline.js and IndexedDBShim from sub-module depencies. You'll need to reference these via their respective CDNs for gh-pages URL.

**Bug Fixes**
* Minor - `OfflineEditAdvanced` no longer throws an error when reinitialized with a featureCollection.


## Version 2.16 - Oct. 29, 2015

No breaking changes. Recommended update.
Expand Down
13 changes: 6 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Online samples and getting started tutorials are available here: **[http://esri.

# Libraries

This repo contains the following libraries in the `/dist` directory.
This repo contains the following libraries in the `/dist` directory. The use of `basic` in the name indicates intermittent offline-only, and `advanced` indicates the library can be used for both intermittent and full offline.

Use_Case | Name, Description and gh-pages URL
--- | ---
Expand All @@ -22,7 +22,7 @@ Basic map tiles | **`offline-tiles-basic-min.js`** Caches map tiles for simple,
Advanced map tiles | **`offline-tiles-advanced-min.js`** Used for intermittent and full offline tile caching. Extends any ArcGIS Tiled Map Service. This library should be used in conjunction with an HTML5 Application Cache Manifest coding pattern.<br><br>[`http://esri.github.io/offline-editor-js/dist/offline-tiles-advanced-min.js`](http://esri.github.io/offline-editor-js/dist/offline-tiles-advanced-min.js)
TPK files | **`offline-tpk-min.js`** Reads TPK files and displays and caches them as a tiled map layer.<br><br>[`http://esri.github.io/offline-editor-js/dist/offline-tpk-min.js`](http://esri.github.io/offline-editor-js/dist/offline-tpk-min.js)

`src` files are for software development-only. The`min` versions are minified and should be used in production. The use of `basic` in the name indicates intermittent offline-only, and `advanced` indicates the library can be used for both intermittent and full offline.
`src` files are for software development-only. The`min` versions are minified and should be used in production.

#Workflows Supported
The following workflow is currently supported for both both features and tiles:
Expand Down Expand Up @@ -70,6 +70,7 @@ Go __[here](https://github.com/Esri/offline-editor-js/wiki/FAQ)__ for answers to
##Limitations

* Currently does not support related tables, domains or subtypes. The ArcGIS Runtime SDKs fully support these and more.
* There are browser limitations and technical dependencies. The offline capabilities in this toolkit depend on certain JavaScript capabilities being present in the browser. Go [here](doc/dependencies.md) for a detailed breakdown.
* Attachments are supported with some limitations listed [here](./doc/attachments.md).
* Browser storage space on mobile devices is a known limitation. This applies to stand-alone web applications and hybrid applications.

Expand All @@ -79,17 +80,15 @@ Go __[here](https://github.com/Esri/offline-editor-js/wiki/FAQ)__ for answers to

##Dependencies

* ArcGIS API for JavaScript (v3.12+)
* [ArcGIS API for JavaScript (v3.12+)](https://developers.arcgis.com/javascript/)
* [Offline.js](http://github.hubspot.com/offline/docs/welcome/) - it allows detection of the online/offline condition and provides events to hook callbacks on when this condition changes
* Node.js required for building the source
* NOTE: browser limitations and technical dependencies. The offline capabilities in this toolkit depend on certain HTML5 capabilities being present in the browser. Go [here](doc/dependencies.md) for a detailed breakdown of the information.
* [IndexedDBShim](https://github.com/axemclion/IndexedDBShim) - polyfill to simulate indexedDB functionality in browsers/platforms where it is not supported notably older versions desktop Safari and iOS Safari.
* Sub-modules (see `/vendor` directory)

* [IndexedDBShim](https://github.com/axemclion/IndexedDBShim) - polyfill to simulate indexedDB functionality in browsers/platforms where it is not supported (notably desktop Safari and iOS Safari)
- IMPORTANT: There are known [issues](https://github.com/axemclion/IndexedDBShim/issues/115) with IndexedDBShim on Safari. For Safari, the storage error workaround is to switch from using /dist/IndexedDBShim.min.js to just using IndexedDBShim.js and then search for and modify the line that defines the value for `DEFAULT_DB_SIZE`. Set this to more appropriate size that will meet all your storage needs, for example: ```var DEFAULT_DB_SIZE = 24 * 1024 * 1024```
* [jasmine.async](https://github.com/derickbailey/jasmine.async.git) - Used specifically for unit testing.

* Non sub-module based libraries
* Non sub-module based libraries that are used internally by this project
* [FileSaver.js](https://github.com/Esri/offline-editor-js/blob/master/lib/tiles/README.md) - library to assist with uploading and downloading of files containing tile information.
* [grunt-manifest](https://github.com/gunta/grunt-manifest) node.js library to assist with the creation of manifest files.
* [zip](http://gildas-lormeau.github.io/zip.js/) A library for zipping and unzipping files.
Expand Down
Loading

0 comments on commit d914d1b

Please sign in to comment.