diff --git a/LICENSE b/LICENSE index cfcef36a1..c8c86ee4d 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ BSD 3-Clause License -Copyright (c) 22015-2018, e-mission +Copyright (c) 2014-2020, UC Regents All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/OpenSourceLicenses.md b/OpenSourceLicenses.md new file mode 100644 index 000000000..400946acc --- /dev/null +++ b/OpenSourceLicenses.md @@ -0,0 +1,99 @@ +This file lists the module dependencies for the project and their licenses. + +1. Most of this module code is **not** redistributed, either in source or binary +form. Instead, it is downloaded automatically using package managers and linked +from the code. The module download includes the license and appropriate credit. + +1. So our primary check here is for modules which do not have a license, or +which are GPL licensed. + +The original project was created based on the ionic starter tabs template +https://github.com/ionic-team/ionic-starter-tabs +which is explicitly designed to provide a template for developers. + +## Redistributed, modified javascript dependencies + +These dependencies were checked in over time in order to support libraries that +did not have bower entries, or libraries that were modified with minor changes +based on bugs. TODO: Go through the modules, determine the changes and submit them as PRs 🚧 + +| Module | License | Original code | +|--------|---------|---------------| +| `www/manual_lib/angularjs-nvd3-directives` | Apache | +| `www/manual_lib/fontawesome` | Icons: CC BY 4.0, Code: MIT License | https://fontawesome.com | +| `www/manual_lib/ionic-datepicker` | MIT | https://github.com/rajeshwarpatlolla/ionic-datepicker | +| `www/manual_lib/leaflet` | BSD 2-clause | https://github.com/Leaflet/Leaflet | +| `www/manual_lib/ui-leaflet` | MIT | https://github.com/angular-ui/ui-leaflet 🗄️ | + +## Javascript dependencies installed via bower + +| Module | License | +|--------|---------| +| `www/lib/ionic` | MIT (from [`bower.json`](https://github.com/ionic-team/ionic-bower/blob/v1.3.0/bower.json)) | +| `www/lib/ionic-toast` | MIT | +| `www/lib/ngCordova` | MIT | +| `www/lib/moment` | MIT | +| `www/lib/moment-timezone` | MIT | +| `www/lib/Leaflet.awesome-markers` | MIT | +| `www/lib/angular` | MIT | +| `www/lib/angular-animate` | MIT | +| `www/lib/angular-sanitize` | MIT | +| `www/lib/angular-nvd3` | MIT | +| `www/lib/angularLocalStorage` | MIT | +| `www/lib/ng-walkthrough` | MIT | +| `www/lib/animate.css` | MIT | +| `www/lib/nz-tour` | MIT | +| `www/lib/leaflet-plugins` | MIT | +| `www/lib/angularjs-slider` | MIT | +| `www/lib/angular-translate` | MIT | +| `www/lib/angular-translate-loader-static-files` | MIT | +| `www/lib/angular-translate-interpolation-messageformat` | MIT | + +## Javascript dev dependencies installed via npm `package.json` + +Note that these are only required for development, not for proper operation. +Not sure whether we should list them or not, but it doesn't hurt. + +| Module | License | +|--------|---------| +| phonegap | Apache | + +## Javascript dependencies installed via npm command line + +| Module | License | +|--------|---------| +| cordova | Apache | +| bower | MIT | +| ionic | MIT | + +## Cordova platforms, installed automatically + +| Module | License | +|--------|---------| +| cordova-ios | Apache | +| cordova-android | Apache | + +## Cordova plugins, installed automatically + +| Module | License | +|--------|---------| +| phonegap-plugin-push | MIT | +| ionic-plugin-keyboard | Apache | +| cordova-plugin-app-version | MIT | +| cordova-plugin-file | Apache | +| cordova-plugin-device | Apache | +| cordova-plugin-whitelist | Apache | +| cordova-plugin-customurlscheme | MIT | +| cordova-plugin-email-composer | Apache | +| cordova-plugin-x-socialsharing | MIT | +| cordova-plugin-inappbrowser | Apache | +| de.appplant.cordova.plugin.local-notification-ios9-fix | Apache | +| cordova-plugin-ionic | MIT | +| edu.berkeley.eecs.emission.cordova.auth | BSD 3-clause | +| edu.berkeley.eecs.emission.cordova.comm | BSD 3-clause | +| edu.berkeley.eecs.emission.cordova.datacollection | BSD 3-clause | +| edu.berkeley.eecs.emission.cordova.serversync | BSD 3-clause | +| edu.berkeley.eecs.emission.cordova.settings | BSD 3-clause | +| edu.berkeley.eecs.emission.cordova.transitionnotify | BSD 3-clause | +| edu.berkeley.eecs.emission.cordova.unifiedlogger | BSD 3-clause | +| edu.berkeley.eecs.emission.cordova.usercache | BSD 3-clause | diff --git a/bower.json b/bower.json index 479b64fc0..78e99ab4a 100644 --- a/bower.json +++ b/bower.json @@ -18,7 +18,6 @@ }, "dependencies": { "angular-nvd3": "^1.0.7", - "string.startsWith": "*", "angularLocalStorage": "^0.3.2", "ng-walkthrough": "^1.0.0", "animate.css": "^3.5.2", diff --git a/www/index.html b/www/index.html index cde962100..32eeed126 100644 --- a/www/index.html +++ b/www/index.html @@ -55,10 +55,8 @@ - - diff --git a/www/manual_lib/leaflet-plugins/leaflet.textpath.js b/www/manual_lib/leaflet-plugins/leaflet.textpath.js deleted file mode 100644 index 559615309..000000000 --- a/www/manual_lib/leaflet-plugins/leaflet.textpath.js +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Inspired by Tom Mac Wright article : - * http://mapbox.com/osmdev/2012/11/20/getting-serious-about-svg/ - */ - -(function () { - -var __onAdd = L.Polyline.prototype.onAdd, - __onRemove = L.Polyline.prototype.onRemove, - __updatePath = L.Polyline.prototype._updatePath, - __bringToFront = L.Polyline.prototype.bringToFront; - - -var PolylineTextPath = { - - onAdd: function (map) { - __onAdd.call(this, map); - this._textRedraw(); - }, - - onRemove: function (map) { - map = map || this._map; - if (map && this._textNode) - map._pathRoot.removeChild(this._textNode); - __onRemove.call(this, map); - }, - - bringToFront: function () { - __bringToFront.call(this); - this._textRedraw(); - }, - - _updatePath: function () { - __updatePath.call(this); - this._textRedraw(); - }, - - _textRedraw: function () { - var text = this._text, - options = this._textOptions; - if (text) { - this.setText(null).setText(text, options); - } - }, - - setText: function (text, options) { - this._text = text; - this._textOptions = options; - - /* If not in SVG mode or Polyline not added to map yet return */ - /* setText will be called by onAdd, using value stored in this._text */ - if (!L.Browser.svg || typeof this._map === 'undefined') { - return this; - } - - var defaults = { - repeat: false, - fillColor: 'black', - attributes: {}, - below: false, - }; - options = L.Util.extend(defaults, options); - - /* If empty text, hide */ - if (!text) { - if (this._textNode && this._textNode.parentNode) { - this._map._pathRoot.removeChild(this._textNode); - - /* delete the node, so it will not be removed a 2nd time if the layer is later removed from the map */ - delete this._textNode; - } - return this; - } - - text = text.replace(/ /g, '\u00A0'); // Non breakable spaces - var id = 'pathdef-' + L.Util.stamp(this); - var svg = this._map._pathRoot; - this._path.setAttribute('id', id); - - if (options.repeat) { - /* Compute single pattern length */ - var pattern = L.Path.prototype._createElement('text'); - for (var attr in options.attributes) - pattern.setAttribute(attr, options.attributes[attr]); - pattern.appendChild(document.createTextNode(text)); - svg.appendChild(pattern); - var alength = pattern.getComputedTextLength(); - svg.removeChild(pattern); - - /* Create string as long as path */ - text = new Array(Math.ceil(this._path.getTotalLength() / alength)).join(text); - } - - /* Put it along the path using textPath */ - var textNode = L.Path.prototype._createElement('text'), - textPath = L.Path.prototype._createElement('textPath'); - - var dy = options.offset || this._path.getAttribute('stroke-width'); - - textPath.setAttributeNS("http://www.w3.org/1999/xlink", "xlink:href", '#'+id); - textNode.setAttribute('dy', dy); - for (var attr in options.attributes) - textNode.setAttribute(attr, options.attributes[attr]); - textPath.appendChild(document.createTextNode(text)); - textNode.appendChild(textPath); - this._textNode = textNode; - - if (options.below) { - svg.insertBefore(textNode, svg.firstChild); - } - else { - svg.appendChild(textNode); - } - - /* Center text according to the path's bounding box */ - if (options.center) { - var textLength = textNode.getComputedTextLength(); - var pathLength = this._path.getTotalLength(); - /* Set the position for the left side of the textNode */ - textNode.setAttribute('dx', ((pathLength / 2) - (textLength / 2))); - } - - /* Initialize mouse events for the additional nodes */ - if (this.options.clickable) { - if (L.Browser.svg || !L.Browser.vml) { - textPath.setAttribute('class', 'leaflet-clickable'); - } - - L.DomEvent.on(textNode, 'click', this._onMouseClick, this); - - var events = ['dblclick', 'mousedown', 'mouseover', - 'mouseout', 'mousemove', 'contextmenu']; - for (var i = 0; i < events.length; i++) { - L.DomEvent.on(textNode, events[i], this._fireMouseEvent, this); - } - } - - return this; - } -}; - -L.Polyline.include(PolylineTextPath); - -L.LayerGroup.include({ - setText: function(text, options) { - for (var layer in this._layers) { - if (typeof this._layers[layer].setText === 'function') { - this._layers[layer].setText(text, options); - } - } - return this; - } -}); - -})();