Skip to content
Snippets Groups Projects
Commit aeefc26b authored by Scan le Gentil's avatar Scan le Gentil
Browse files

Merge branch 'master' into 'scanlegentil-master-patch-60356'

# Conflicts:
#   www/i18n/locale-es-ES.json
parents 2fca5a0a 55da21f3
No related branches found
No related tags found
No related merge requests found
Pipeline #13965 failed
{
"directory": "www/lib"
}
# Specifies intentionally untracked files to ignore when using Git
# http://git-scm.com/docs/gitignore
/www/lib/ionic-material
/www/lib/robotodraft
/node_modules/
/platforms/*
!/platforms/desktop
/platforms/desktop/*
!/platforms/android
/platforms/android/*
#!/platforms/android
/resources/android/build/local.properties
/resources/android/build/Cesium.keystore
/resources/android/build/*.keystore
/resources/android/build/release-signing.properties
/plugins/
.idea/
.vscode/
.local/
.directory
/*.iml
/npm-debug.log
/package-lock.json
/yarn-error.log
/www/lib/*
!/www/lib/ionic
/www/js/config.js
/www/dist
/hooks/playstore-config.json
/dist/web
/dist/android
/dist/*.sha256
/hooks/uglify-config.json
/hooks/after_prepare/uglify.js
.directory
/www/js/config.js
/www/dist
/www/lib
# Generated CSS
/www/css/ionic.app.css
......@@ -40,5 +41,8 @@
/www/css/leaflet.app.min.css
/www/img/layers*.png
/www/img/marker*.png
/www/img/loader.gif
/www/img/search-icon.png
/www/img/search-icon-mobile.png
env.sh
.run/*
stages:
- build
- alt_build
- publish
#- build
#- alt_build
#- publish
fast-build:
stage: build
......@@ -11,14 +11,14 @@ fast-build:
- cp -rf /customCache/www ./
- cp -rf /customCache/hooks ./
script:
- node ./node_modules/gulp/bin/gulp build:web
- node ./node_modules/gulp/bin/gulp webBuild
after_script:
- ls -la platforms/web/
- du -csh platforms/web/
- ls -la dist/web/
- du -csh dist/web/
artifacts:
untracked: true
paths:
- platforms/web
- dist/web
expire_in: 60 minutes
only:
- master
......@@ -26,16 +26,15 @@ fast-build:
failsafe-build:
stage: alt_build
when: on_failure
image: node:5
image: node:10
script:
- npm install
- npm run postinstall
# - node ./node_modules/gulp/bin/gulp config --env default_fr
- node ./node_modules/gulp/bin/gulp build:web
- yarn
- node ./node_modules/gulp/bin/gulp config --env default
- node ./node_modules/gulp/bin/gulp webBuild
artifacts:
untracked: true
paths:
- platforms/web
- dist/web
expire_in: 60 minutes
only:
- master
......@@ -50,12 +49,11 @@ docker-for-fast-build:
services:
- docker:dind
script:
- echo 'FROM node:5' > Dockerfile
- echo 'FROM node:10' > Dockerfile
- echo 'WORKDIR /customCache' >> Dockerfile
- echo 'COPY ./ ./' >> Dockerfile
- echo 'RUN du -s `find . -maxdepth 1 | egrep -v "^\.$"`>/before.txt' >> Dockerfile
- echo 'RUN npm install' >> Dockerfile
- echo 'RUN npm run postinstall' >> Dockerfile
- echo 'RUN yarn' >> Dockerfile
- echo 'RUN du -s `find . -maxdepth 1 | egrep -v "^\.$"`>/after.txt' >> Dockerfile
- echo 'WORKDIR /build' >> Dockerfile
- echo "RUN diff /before.txt /after.txt || true" >> Dockerfile
......@@ -66,12 +64,12 @@ docker-for-fast-build:
pages:
stage: publish
image: node:latest
image: node:10
variables:
GIT_STRATEGY: none
script:
- ls -la public || true
- mv platforms/web/www public
- mv dist/web/www public
artifacts:
untracked: true
paths:
......@@ -89,20 +87,22 @@ mirror:
[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" >
~/.ssh/config
script:
- mv platforms/web/www public
- mv dist/web/www public
- rsync -az -e ssh ./public/ gammanu@1000i100.fr:~/g1.money/dev-cesium
after_script:
- ssh gammanu@1000i100.fr "~/g1.money/update-cesium.sh"
only:
- master
release-web:
stage: publish
image: node:latest
image: node:10
variables:
GIT_STRATEGY: none
script:
- ls -la www || true
- mv platforms/web/www www
- mv dist/web/www www
artifacts:
untracked: true
paths:
......
[submodule "platforms/desktop"]
path = platforms/desktop
[submodule "dist/desktop"]
path = dist/desktop
url = git@git.duniter.org:clients/cesium-grp/cesium-desktop.git
[submodule "platforms/android"]
[submodule "android"]
path = platforms/android
url = git@git.duniter.org:clients/cesium-grp/cesium-android.git
--install.ignore-engines true
FROM ubuntu:16.04
FROM node:10-alpine
LABEL maintainer="benoit [dot] lavenier [at] e-is [dot] pro"
LABEL version="1.6.3"
LABEL description="Cesium Wallet for Ğ1 libre currency"
ARG CESIUM_VER="1.6.3"
ENV DEBIAN_FRONTEND=noninteractive \
ANDROID_HOME=/opt/android-sdk-linux \
NODE_VERSION=5.12.0 \
NPM_VERSION=3.8.6 \
IONIC_VERSION=1.7.16 \
BOWER_VERSION=1.8.0 \
CORDOVA_VERSION=6.5.0 \
GRADLE_VERSION=4.1 \
NDK_VERSION=r10e
NODE_VERSION=10.20.0 \
NPM_VERSION=6.14.4 \
YARN_VERSION=1.22.4 \
IONIC_CLI_VERSION=6.6.0 \
CORDOVA_VERSION=8.1.2 \
GRADLE_VERSION=4.10.3 \
GULP_VERSION=3.9.1
# Install basics
RUN apt-get update && \
apt-get install -y git wget curl unzip build-essential ruby ruby-dev ruby-ffi gcc make && \
curl --retry 3 -SLO "http://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64.tar.gz" && \
tar -xzf "node-v$NODE_VERSION-linux-x64.tar.gz" -C /usr/local --strip-components=1 && \
rm "node-v$NODE_VERSION-linux-x64.tar.gz" && \
npm install -g npm@"$NPM_VERSION" && \
npm install -g bower@"$BOWER_VERSION" cordova@"$CORDOVA_VERSION" ionic@"$IONIC_VERSION" && \
npm cache clear --force
# install python-software-properties (so you can do add-apt-repository)
RUN apt-get update && apt-get install -y -q python-software-properties software-properties-common && \
add-apt-repository ppa:webupd8team/java -y && \
echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | /usr/bin/debconf-set-selections && \
apt-get update && apt-get -y install oracle-java8-installer
#ANDROID STUFF
RUN echo ANDROID_HOME="${ANDROID_HOME}" >> /etc/environment && \
dpkg --add-architecture i386 && \
apt-get update && \
apt-get install -y --force-yes expect ant wget zipalign libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5 lib32z1 qemu-kvm kmod && \
apt-get clean && \
apt-get autoclean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# Install Android SDK
RUN cd /opt && \
wget --output-document=android-sdk.tgz --quiet http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz && \
tar xzf android-sdk.tgz && \
rm -f android-sdk.tgz && \
chown -R root. /opt
RUN cd /opt/ && \
wget --output-document=android-ndk.zip --quiet https://dl.google.com/android/repository/android-ndk-$NDK_VERSION-linux-x86_64.zip && \
unzip android-ndk.zip && \
rm android-ndk.zip && \
chown -R root. /opt
# Install Gradle
RUN wget https://services.gradle.org/distributions/gradle-"$GRADLE_VERSION"-bin.zip && \
mkdir /opt/gradle && \
unzip -d /opt/gradle gradle-"$GRADLE_VERSION"-bin.zip && \
rm -rf gradle-"$GRADLE_VERSION"-bin.zip
# Setup environment
ENV PATH ${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools:/opt/tools:/opt/gradle/gradle-"$GRADLE_VERSION"/bin
# Install sdk elements
COPY resources/android/build/tools /opt/tools
RUN chmod u+x /opt/tools/*.sh
RUN ["/opt/tools/android-accept-licenses.sh", "android update sdk --all --no-ui --filter platform-tools,tools,build-tools-26.0.0,android-26,build-tools-25.0.0,android-25,extra-android-support,extra-android-m2repository,extra-google-m2repository"]
RUN unzip ${ANDROID_HOME}/temp/*.zip -d ${ANDROID_HOME}
RUN apk update && \
apk add ca-certificates wget curl git && \
update-ca-certificates && \
apk add --update python make g++
# create group and user cesium
RUN addgroup -S -g 1111 cesium && \
adduser -SD -h /cesium -G cesium -u 1111 cesium
#RUN mkdir -p /var/lib/cesium /etc/cesium && chown cesium:cesium /var/lib/cesium /etc/cesium
# Install source code
#RUN git config --global user.email "user.name@domain.com" && \
# git config --global user.name "User Name" && \
RUN git clone git@git.duniter.org:clients/cesium-grp/cesium.git && \
cd cesium && \
npm install
# Install global dependencies
RUN yarn global add gulp@"$GULP_VERSION" @ionic/cli@"$IONIC_CLI_VERSION"
# Restore cordova platforms
RUN cd cesium && \
ionic state restore
# copy source tree
COPY ./ ./
# TODO: Test First Build so that it will be faster later
## ionic cordova build android --prod --no-interactive --release
# Install project dependencies
# Workaround need for node-sass (- )see https://github.com/yarnpkg/yarn/issues/4867)
RUN yarn install --ignore-engines && \
yarn remove node-sass && yarn add node-sass
WORKDIR cesium
WORKDIR /cesium
EXPOSE 8100 35729
CMD ["ionic", "serve"]
CMD ["yarn", "run", "start"]
......@@ -2,114 +2,53 @@
# Cesium
[Unhosted webapp](https://unhosted.org) client for any [Duniter](https://duniter.org) crypto-currency.
Cesium is wallet client software for [Duniter](https://duniter.org) crypto-currency, like Ğ1.
Cesium allow you to manage your wallet, certify your friends, and more!
Manage your wallet, certify your friends, and more !
Cesium is an [Unhosted](https://unhosted.org) Progressive Web Application (PWA), using AngularJS and Ionic.
Please visit th Cesium web site: [cesium.app](https://cesium.app)
## Try it !
## Install
- on Ğ1-test currency: https://g1-test.duniter.fr
- on Ğ1 currency (production use): https://g1.duniter.fr
### As a web extension (Firefox, Chrome)
- Download the [latest extension release](https://github.com/duniter/cesium/releases/latest)
## Installation
- Drag/drop the file into your browser;
### On a desktop computer
- Confirm the installation.
To use Cesium from your desktop computer :
That's it! A new button is appeared, on the top right corner.
- Debian or Windows:
* Download the [latest release](https://github.com/duniter/cesium/releases/latest).
* Choose the desktop packaging (`cesium-desktop-vX.Y.Z-*`)
* Execute the downloaded file, and follow installation steps;
- Other operating systems:
* Choose the web packaging (`cesium-vX.Y.Z-web.zip`);
* Unpack the archive into a empty folder;
* Open the file `index.html` in your web browser;
### On a Yunohost installation
There is a [package](https://github.com/duniter/cesium_ynh) for [YunoHost self-hosting distribution](https://yunohost.org).
### On a web server
#### Installation
Cesium can be easily installed on most web server :
- Download the [latest release](https://github.com/duniter/cesium/releases/latest). Choose the web packaging (`cesium-vX.Y.Z-web.zip`);
- Unpack in a empty directory;
- Configure a virtual host, to use previous directory as root. Check the file `index.html` exist in the root directory.
For Linux distribution, a installation script could also be used to:
### On desktop computer
- Download the [latest release](https://github.com/duniter/cesium/releases/latest)
- Unpack archive into the directory `./cesium`. Existing files will be override.
```
curl -kL https://git.duniter.org/clients/cesium-grp/cesium/raw/master/install.sh | bash
```
or:
```
wget -qO- https://git.duniter.org/clients/cesium-grp/cesium/raw/master/install.sh | bash
```
**Note**: You may need root permission to write files. If so just replace `| bash` with `| sudo bash`.
#### Configuration
To change default configuration, on a web server installation:
- Edit the file `config.js`, and set default properties:
```js
angular.module("cesium.config", [])
.constant("csConfig", {
"fallbackLanguage": "en",
"rememberMe": false,
"timeWarningExpireMembership": 5184000,
"timeWarningExpire": 7776000,
"useLocalStorage": true,
"useRelative": true,
"decimalCount": 4,
"helptip": {
"enable": true,
"installDocUrl": "https://github.com/duniter/duniter/blob/master/doc/install-a-node.md"
},
"node": {
"host": "gtest.duniter.org",
"port": "10900"
},
"plugins": {
"es": {
"enable": "false",
"host": "data.gtest.duniter.fr",
"port": "80"
}
},
"version": "0.9.7",
"build": "2017-01-17T08:27:57.915Z"
});
```
- Configure a Duniter node:
- Then install, depending on your operating system:
* Ubuntu: Double click the `.deb` file
* Debian: Run the command `sudo dpkg -i *.deb`
* Windows: Double click on the `.exe` file
* Mac OSx: Unzip the osx `.zip` file, then drop Cesium into your `Applications` folder
* Other operating systems:
* Unpack the ZIP archive (file `cesium-vX.Y.Z-web.zip`) into an empty folder;
* Open the file `index.html` in your web browser;
* set `node.host` and `node.port` to the default node address.
### On smartphone
- Configure the optional extension for [ElasticSearch Duniter4j node](https://github.com/duniter/duniter4j)
- Android:
* Manual installation: download then install the `.apk` from your smartphone;
* [Play Store](https://play.google.com/store/apps/details?id=fr.duniter.cesium);
- iOS
* Coming soon...;
* set `plugins.es.host` and `plugins.es.port` to the default ES node address.
* set `plugins.es.enable` with [true|false] to change the default extension state.
To learn more about configuration options, see the [detailed documentation](doc/configuration.md).
#### Yunohost package
## Developement
There is a [package](https://github.com/duniter/cesium_ynh) for [YunoHost self-hosting distribution](https://yunohost.org).
Wants to compile Cesium ? or contribute ?
## Contribute
A [Development Guide](doc/development_guide.md) is available to learn :
- How to install your development environment.
......@@ -117,16 +56,10 @@ A [Development Guide](doc/development_guide.md) is available to learn :
A [development tutorial](doc/fr/development_tutorial-01.md) (in French) is also available.
## License
This software is distributed under [GNU AGPL-3.0](https://raw.github.com/duniter/cesium/master/LICENSE).
## Donate
## Troubleshooting
To help developers with donation, use the [Cesium Team Ğ1 account](https://g1.duniter.fr#/app/wot/CitdnuQgZ45tNFCagay7Wh12gwwHM8VLej1sWmfHWnQX/) (public key: `CitdnuQgZ45tNFCagay7Wh12gwwHM8VLej1sWmfHWnQX`)
#### I'm having errors on Ubuntu/Debian (desktop version)
Install these dependencies:
## License
```
sudo apt-get install -y libgconf-2-4
```
\ No newline at end of file
This software is distributed under [GNU AGPL-3.0](https://raw.github.com/duniter/cesium/master/LICENSE).
\ No newline at end of file
{
"default": {
"cacheTimeMs": 300000,
"demo": false,
"readonly": false,
"fallbackLanguage": "en",
"rememberMe": true,
"showUDHistory": true,
"timeout": 30000,
"timeout": 40000,
"timeWarningExpireMembership": 5184000,
"timeWarningExpire": 7776000,
"keepAuthIdle": 600,
......@@ -13,17 +15,26 @@
"expertMode": false,
"decimalCount": 2,
"httpsMode": false,
"shareBaseUrl": "https://g1.duniter.fr",
"shareBaseUrl": "https://demo.cesium.app/",
"helptip": {
"enable": true,
"installDocUrl": {
"fr-FR": "https://duniter.org/fr/wiki/duniter/installer/",
"fr-FR": "https://duniter.org/fr/miner-des-blocs/installer/",
"en": "https://duniter.org/en/wiki/duniter/install/"
}
},
"license": {
"en": "license/license_g1-en",
"fr-FR": "license/license_g1-fr-FR",
"en": "license/license_g1-en"
"es-ES": "license/license_g1-es-ES",
"eo-EO": "license/license_g1-eo-EO"
},
"feed": {
"jsonFeed": {
"fr-FR": "https://raw.githubusercontent.com/duniter/cesium/master/doc/feed/feed-fr.json",
"en": "https://raw.githubusercontent.com/duniter/cesium/master/doc/feed/feed-en.json"
},
"maxContentLength": 1300
},
"node": {
"host": "g1.duniter.org",
......@@ -31,7 +42,23 @@
},
"fallbackNodes": [
{
"host": "g1.duniter.fr",
"host": "g1.cgeek.fr",
"port": 443
},
{
"host": "g1.librelois.fr",
"port": 443
},
{
"host": "g1.e-is.pro",
"port": 443
},
{
"host": "duniter.moul.re",
"port": 443
},
{
"host": "g1.presles.fr",
"port": 443
},
{
......@@ -47,15 +74,15 @@
"enable": true,
"askEnable": true,
"useRemoteStorage": true,
"host": "g1.data.duniter.fr",
"host": "g1.data.e-is.pro",
"port": 443,
"fallbackNodes": [
{
"host": "g1.data.le-sou.org",
"host": "g1.data.presles.fr",
"port": 443
},
{
"host": "g1.data.duniter.fr",
"host": "g1.data.mithril.re",
"port": 443
}
],
......@@ -72,6 +99,8 @@
"default_fr": {
"cacheTimeMs": 300000,
"demo": false,
"readonly": false,
"fallbackLanguage": "fr",
"rememberMe": true,
"showUDHistory": true,
......@@ -84,109 +113,62 @@
"expertMode": false,
"decimalCount": 2,
"httpsMode": false,
"shareBaseUrl": "https://g1.duniter.fr",
"shareBaseUrl": "https://demo.cesium.app/",
"helptip": {
"enable": true,
"installDocUrl": {
"fr-FR": "https://duniter.org/fr/wiki/duniter/installer/",
"fr-FR": "https://duniter.org/fr/miner-des-blocs/installer/",
"en": "https://duniter.org/en/wiki/duniter/install/"
}
},
"license": {
"fr-FR": "license/license_g1-fr-FR",
"en": "license/license_g1-en"
"en": "license/license_g1-en",
"es-ES": "license/license_g1-es-ES",
"eo-EO": "license/license_g1-eo-EO"
},
"feed": {
"jsonFeed": {
"fr-FR": "https://raw.githubusercontent.com/duniter/cesium/master/doc/feed/feed-fr.json",
"en": "https://raw.githubusercontent.com/duniter/cesium/master/doc/feed/feed-en.json"
},
"maxContentLength": 1300
},
"node": {
"host": "g1.duniter.fr",
"host": "g1.duniter.org",
"port": 443
},
"fallbackNodes": [
{
"host": "g1.duniter.fr",
"host": "g1.cgeek.fr",
"port": 443
},
{
"host": "g1.monnaielibreoccitanie.org",
"host": "g1.librelois.fr",
"port": 443
},
{
"host": "g1.le-sou.org",
"host": "g1.e-is.pro",
"port": 443
},
{
"host": "duniter.normandie-libre.fr",
"host": "duniter.moul.re",
"port": 443
},
{
"host": "g1.duniter.org",
"port": 443
}
],
"plugins":{
"es": {
"enable": true,
"askEnable": true,
"useRemoteStorage": true,
"host": "g1.data.duniter.fr",
"port": 443,
"fallbackNodes": [
{
"host": "g1.data.le-sou.org",
"host": "g1.presles.fr",
"port": 443
},
{
"host": "g1.data.duniter.fr",
"port": 443
}
],
"notifications": {
"txSent": true,
"txReceived": true,
"certSent": true,
"certReceived": true
},
"defaultCountry": "France"
}
}
},
"le-sou": {
"cacheTimeMs": 300000,
"fallbackLanguage": "fr-FR",
"defaultLanguage": "fr-FR",
"rememberMe": true,
"timeout": 30000,
"timeWarningExpireMembership": 5184000,
"timeWarningExpire": 7776000,
"keepAuthIdle": 600,
"useLocalStorage": true,
"useRelative": false,
"expertMode": false,
"decimalCount": 2,
"httpsMode": false,
"shareBaseUrl": "https://g1.le-sou.org",
"helptip": {
"enable": true,
"installDocUrl": {
"fr-FR": "https://www.le-sou.org/devenir-noeud/",
"en": "https://duniter.org/en/wiki/duniter/install/"
}
},
"license": {
"fr-FR": "license/license_g1-fr-FR",
"en": "license/license_g1-en"
},
"node": {
"host": "g1.le-sou.org",
"port": 443
},
"fallbackNodes": [
{
"host": "g1.duniter.org",
"host": "duniter.normandie-libre.fr",
"port": 443
},
{
"host": "g1.duniter.fr",
"host": "g1.duniter.org",
"port": 443
}
],
......@@ -195,15 +177,19 @@
"enable": true,
"askEnable": true,
"useRemoteStorage": true,
"host": "g1.data.le-sou.org",
"host": "g1.data.e-is.pro",
"port": 443,
"fallbackNodes": [
{
"host": "g1.data.presles.fr",
"port": 443
},
{
"host": "g1.data.le-sou.org",
"port": 443
},
{
"host": "g1.data.duniter.fr",
"host": "g1.data.mithril.re",
"port": 443
}
],
......@@ -218,9 +204,10 @@
}
},
"g1-test": {
"cacheTimeMs": 300000,
"demo": false,
"readonly": false,
"fallbackLanguage": "en",
"rememberMe": true,
"timeout": 300000,
......@@ -230,12 +217,12 @@
"useRelative": false,
"expertMode": true,
"decimalCount": 2,
"shareBaseUrl": "https://g1.duniter.fr",
"shareBaseUrl": "https://g1-test.cesium.app",
"helptip": {
"enable": false,
"installDocUrl": {
"fr-FR": "https://duniter.org/fr/wiki/duniter/installer/",
"en": "https://github.com/duniter/duniter/blob/master/doc/install-a-node.md"
"fr-FR": "https://duniter.org/fr/miner-des-blocs/installer/",
"en": "https://duniter.org/en/wiki/duniter/install/"
}
},
"node": {
......@@ -246,6 +233,14 @@
{
"host": "g1-test.cgeek.fr",
"port": 443
},
{
"host": "gtest.jytou.fr",
"port": 443
},
{
"host": "ts.gt.elo.tf",
"port": 443
}
],
"plugins":{
......@@ -253,7 +248,7 @@
"enable": true,
"askEnable": true,
"useRemoteStorage": true,
"host": "g1-test.data.duniter.fr",
"host": "g1-test.data.e-is.pro",
"port": 443,
"notifications": {
"txSent": true,
......@@ -268,6 +263,8 @@
"dev": {
"cacheTimeMs": 300000,
"demo": false,
"readonly": false,
"fallbackLanguage": "fr-FR",
"defaultLanguage": "fr-FR",
"rememberMe": true,
......@@ -288,10 +285,12 @@
},
"license": {
"fr-FR": "license/license_g1-fr-FR",
"en": "license/license_g1-en"
"en": "license/license_g1-en",
"es-ES": "license/license_g1-es-ES",
"eo-EO": "license/license_g1-eo-EO"
},
"node": {
"host": "g1.duniter.fr",
"host": "g1.e-is.pro",
"port": 443
},
"fallbackNodes": [{
......@@ -299,7 +298,7 @@
"port": 443
},
{
"host": "g1.duniter.fr",
"host": "g1.e-is.pro",
"port": 443
}
],
......@@ -316,7 +315,7 @@
"port": 443
},
{
"host": "g1.data.duniter.fr",
"host": "g1.data.e-is.pro",
"port": 443
}
],
......@@ -331,9 +330,6 @@
"graph": {
"enable": true
},
"neo4j": {
"enable": true
},
"rml9": {
"enable": true
}
......@@ -342,6 +338,8 @@
"dev_g1": {
"cacheTimeMs": 300000,
"demo": false,
"readonly": false,
"fallbackLanguage": "en",
"rememberMe": true,
"showUDHistory": true,
......@@ -360,7 +358,9 @@
},
"license": {
"fr-FR": "license/license_g1-fr-FR.txt",
"en": "license/license_g1-en.txt"
"en": "license/license_g1-en.txt",
"es-ES": "license/license_g1-es-ES",
"eo-EO": "license/license_g1-eo-EO"
},
"node": {
"host": "g1.duniter.org",
......@@ -378,9 +378,6 @@
"graph": {
"enable": true
},
"neo4j": {
"enable": true
},
"rml9": {
"enable": true
}
......
{
"name": "cesium",
"private": "true",
"devDependencies": {
"ionic": "driftyco/ionic-bower#1.3.1",
"ionic-material": "0.4.2"
},
"dependencies": {
"angular-messages": "1.3.13",
"robotodraft": "1.1.0",
"angular-moment": "^0.10.3",
"angular-animate": "1.4.3",
"angular-sanitize": "1.5.3",
"angular": "1.5.3",
"angular-bind-notifier": "^1.1.7",
"angular-image-crop": "^2.0.0",
"ng-idle": "^1.3.2",
"chart.js": "chartjs#^2.6.0",
"Leaflet.awesome-markers": "^2.0.2",
"leaflet-search": "^2.7.2",
"angular-leaflet-directive": "angular-leaflet#^0.10.0",
"Leaflet.EasyButton": "~1.3.2",
"leaflet.loading": "Leaflet.loading#^0.1.24",
"ui-leaflet": "^2.0.0",
"leaflet.markercluster": "0.5",
"Leaflet.FeatureGroup.SubGroup": "0.1.2",
"ion-digit-keyboard": "skol-pro/ion-digit-keyboard"
},
"resolutions": {
"angular-sanitize": "1.5.3",
"angular-animate": "1.5.3",
"angular": "1.5.3",
"ionic": "1.3.1"
}
}
{
"android": {
},
"ios": {
"debug": {
"codeSignIdentity": "iPhone Developer",
"developmentTeam": "3TH8P5JJ9J",
"automaticProvisioning": true,
"packageType": "development"
},
"release": {
"codeSignIdentity": "iPhone Developer",
"developmentTeam": "3TH8P5JJ9J",
"automaticProvisioning": true,
"packageType": "app-store"
}
}
}
<?xml version='1.0' encoding='utf-8'?>
<widget android-versionCode="103003" id="fr.duniter.cesium" version="1.3.3" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<widget android-versionCode="106130" id="fr.duniter.cesium" ios-CFBundleIdentifier="org.duniter.cesium" version="1.6.13" xmlns="http://www.w3.org/ns/widgets" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>Cesium</name>
<description>
An simple App for Duniter wallet
......@@ -15,20 +15,32 @@
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<allow-intent href="june:*" />
<allow-intent href="web+june:*" />
<allow-navigation href="http://*/*" />
<allow-navigation href="https://*/*" />
<allow-navigation href="data:*" />
<allow-navigation href="june:*" />
<allow-navigation href="web+june:*" />
<icon src="www/img/logo_96px.png" />
<preference name="webviewbounce" value="false" />
<preference name="UIWebViewBounce" value="false" />
<preference name="DisallowOverscroll" value="true" />
<preference name="SplashScreen" value="screen" />
<preference name="SplashScreenDelay" value="4000" />
<preference name="KeyboardDisplayRequiresUserAction" value="false" />
<preference name="KeyboardResizeMode" value="ionic" />
<preference name="xwalkVersion" value="19" />
<preference name="xwalkMultipleApk" value="false" />
<preference name="android-minSdkVersion" value="16" />
<preference name="android-targetSdkVersion" value="26" />
<allow-navigation href="*" />
<preference name="android-targetSdkVersion" value="29" />
<preference name="StatusBarOverlaysWebView" value="false" />
<preference name="StatusBarBackgroundColor" value="#000" />
<preference name="StatusBarStyle" value="lightcontent" />
<preference name="loadUrlTimeoutValue" value="700000" />
<hook src="scripts/hooks/before_prepare.js" type="before_prepare" />
<hook src="scripts/hooks/after_prepare.js" type="after_prepare" />
<hook src="scripts/hooks/before_compile.js" type="before_compile" />
<feature name="StatusBar">
<param name="ios-package" onload="true" value="CDVStatusBar" />
</feature>
......@@ -38,7 +50,16 @@
<feature name="MiniSodium">
<param name="android-package" onload="true" value="me.lockate.plugins.MiniSodium" />
</feature>
<feature name="Custom URL scheme">
<param name="id" value="cordova-plugin-customurlscheme" />
<param name="url" value="https://github.com/EddyVerbruggen/Custom-URL-scheme.git" />
<variable name="URL_SCHEME" value="june" />
</feature>
<platform name="android">
<preference name="AndroidXEnabled" value="true" />
<preference name="AndroidLaunchMode" value="singleTask" />
<preference name="android-minSdkVersion" value="22" />
<preference name="android-targetSdkVersion" value="29" />
<icon density="ldpi" src="resources/android/icon/drawable-ldpi-icon.png" />
<icon density="mdpi" src="resources/android/icon/drawable-mdpi-icon.png" />
<icon density="hdpi" src="resources/android/icon/drawable-hdpi-icon.png" />
......@@ -60,56 +81,83 @@
</platform>
<platform name="ios">
<preference name="BackupWebStorage" value="local" />
<icon height="57" src="resources/ios/icon/icon.png" width="57" />
<icon height="114" src="resources/ios/icon/icon@2x.png" width="114" />
<icon height="40" src="resources/ios/icon/icon-40.png" width="40" />
<icon height="80" src="resources/ios/icon/icon-40@2x.png" width="80" />
<icon height="50" src="resources/ios/icon/icon-50.png" width="50" />
<icon height="100" src="resources/ios/icon/icon-50@2x.png" width="100" />
<icon height="60" src="resources/ios/icon/icon-60.png" width="60" />
<icon height="120" src="resources/ios/icon/icon-60@2x.png" width="120" />
<icon height="180" src="resources/ios/icon/icon-60@3x.png" width="180" />
<icon height="72" src="resources/ios/icon/icon-72.png" width="72" />
<icon height="144" src="resources/ios/icon/icon-72@2x.png" width="144" />
<icon height="76" src="resources/ios/icon/icon-76.png" width="76" />
<icon height="152" src="resources/ios/icon/icon-76@2x.png" width="152" />
<icon height="29" src="resources/ios/icon/icon-small.png" width="29" />
<icon height="58" src="resources/ios/icon/icon-small@2x.png" width="58" />
<icon height="87" src="resources/ios/icon/icon-small@3x.png" width="87" />
<preference name="StatusBarOverlaysWebView" value="true" />
<preference name="KeyboardShrinksView" value="true" />
<icon height="20" src="resources/ios/icon/Icon-App-20x20@1x.png" width="20" />
<icon height="40" src="resources/ios/icon/Icon-App-20x20@2x.png" width="40" />
<icon height="60" src="resources/ios/icon/Icon-App-20x20@3x.png" width="60" />
<icon height="29" src="resources/ios/icon/Icon-App-29x29@1x.png" width="29" />
<icon height="58" src="resources/ios/icon/Icon-App-29x29@2x.png" width="58" />
<icon height="87" src="resources/ios/icon/Icon-App-29x29@3x.png" width="87" />
<icon height="40" src="resources/ios/icon/Icon-App-40x40@1x.png" width="40" />
<icon height="80" src="resources/ios/icon/Icon-App-40x40@2x.png" width="80" />
<icon height="120" src="resources/ios/icon/Icon-App-40x40@3x.png" width="120" />
<icon height="50" src="resources/ios/icon/Icon-App-50x50@1x.png" width="50" />
<icon height="100" src="resources/ios/icon/Icon-App-50x50@2x.png" width="100" />
<icon height="57" src="resources/ios/icon/Icon-App-57x57@1x.png" width="57" />
<icon height="114" src="resources/ios/icon/Icon-App-57x57@2x.png" width="114" />
<icon height="120" src="resources/ios/icon/Icon-App-60x60@2x.png" width="120" />
<icon height="180" src="resources/ios/icon/Icon-App-60x60@3x.png" width="180" />
<icon height="72" src="resources/ios/icon/Icon-App-72x72@1x.png" width="72" />
<icon height="144" src="resources/ios/icon/Icon-App-72x72@2x.png" width="144" />
<icon height="76" src="resources/ios/icon/Icon-App-76x76@1x.png" width="76" />
<icon height="152" src="resources/ios/icon/Icon-App-76x76@2x.png" width="152" />
<icon height="167" src="resources/ios/icon/Icon-App-83.5x83.5@2x.png" width="167" />
<icon height="1024" src="resources/ios/icon/ItunesArtwork@2x.png" width="1024" />
<splash height="1136" src="resources/ios/splash/Default-568h@2x~iphone.png" width="640" />
<splash height="1334" src="resources/ios/splash/Default-667h.png" width="750" />
<splash height="2208" src="resources/ios/splash/Default-736h.png" width="1242" />
<splash height="1242" src="resources/ios/splash/Default-Landscape-736h.png" width="2208" />
<splash height="2436" src="resources/ios/splash/Default-2436h.png" width="1125" />
<splash height="1125" src="resources/ios/splash/Default-Landscape-2436h.png" width="2436" />
<splash height="1536" src="resources/ios/splash/Default-Landscape@2x~ipad.png" width="2048" />
<splash height="768" src="resources/ios/splash/Default-Landscape~ipad.png" width="1024" />
<splash height="2048" src="resources/ios/splash/Default-Portrait@2x~ipad.png" width="1536" />
<splash height="1024" src="resources/ios/splash/Default-Portrait~ipad.png" width="768" />
<splash height="960" src="resources/ios/splash/Default@2x~iphone.png" width="640" />
<splash height="480" src="resources/ios/splash/Default~iphone.png" width="320" />
<splash height="2048" src="resources/ios/splash/Default-Landscape@~ipadpro.png" width="2732" />
<splash height="2732" src="resources/ios/splash/Default-Portrait@~ipadpro.png" width="2048" />
<splash height="2732" src="resources/ios/splash/Default@2x~universal~anyany.png" width="2732" />
<edit-config file="*-Info.plist" mode="merge" target="NSCameraUsageDescription">
<string>To scan QRCode</string>
</edit-config>
<edit-config file="*-Info.plist" mode="merge" target="NSPhotoLibraryUsageDescription">
<string>To choose a profile picture</string>
</edit-config>
<edit-config file="*-Info.plist" mode="merge" target="CFBundleURLSchemes">
<string>june</string>
</edit-config>
<config-file mode="add" parent="ITSAppUsesNonExemptEncryption" target="*-Info.plist">
<false />
</config-file>
</platform>
<platform name="firefoxos">
<icon height="128" src="www/img/logo_128px.png" width="128" />
<icon height="60" src="www/img/logo_60px.png" width="60" />
</platform>
<platform name="ubuntu">
<icon height="57" src="www/img/logo_57px.png" width="57" />
</platform>
<engine name="android" spec="^6.2.3" />
<plugin name="cordova-plugin-camera" spec="^2.4.1" />
<plugin name="cordova-plugin-console" spec="^1.0.7" />
<plugin name="cordova-plugin-device" spec="^1.1.6" />
<plugin name="cordova-plugin-dialogs" spec="^1.3.3" />
<plugin name="cordova-plugin-inappbrowser" spec="^1.7.1" />
<plugin name="cordova-plugin-minisodium" spec="^1.0.0" />
<plugin name="cordova-plugin-secure-storage" spec="^2.6.8" />
<plugin name="cordova-plugin-splashscreen" spec="^3.2.2" />
<plugin name="cordova-plugin-statusbar" spec="^2.2.3" />
<plugin name="cordova-plugin-vibration" spec="^2.1.5" />
<plugin name="cordova-plugin-camera" spec="^4.1.0">
<variable name="CAMERA_USAGE_DESCRIPTION" value="Add picture to the user profile" />
<variable name="PHOTOLIBRARY_USAGE_DESCRIPTION" value="Take a picture for the user profile" />
<variable name="ANDROID_SUPPORT_V4_VERSION" value="28.+" />
</plugin>
<plugin name="cordova-plugin-ionic-webview" spec="^4.2.1">
<variable name="ANDROID_SUPPORT_ANNOTATIONS_VERSION" value="28.+" />
</plugin>
<plugin name="cordova-plugin-device" spec="^2.0.3" />
<plugin name="cordova-plugin-dialogs" spec="^2.0.2" />
<plugin name="cordova-clipboard" spec="^1.3.0" />
<plugin name="cordova-plugin-splashscreen" spec="^5.0.4" />
<plugin name="cordova-plugin-statusbar" spec="^2.4.3" />
<plugin name="cordova-plugin-file" spec="^6.0.2" />
<plugin name="cordova-plugin-vibration" spec="^3.1.1" />
<plugin name="cordova-plugin-websocket" spec="^0.12.2" />
<plugin name="cordova-plugin-whitelist" spec="^1.3.2" />
<plugin name="cordova-plugin-x-toast" spec="^2.6.0" />
<plugin name="ionic-plugin-keyboard" spec="^2.2.1" />
<plugin name="phonegap-plugin-barcodescanner" spec="git+https://github.com/phonegap/phonegap-plugin-barcodescanner.git">
<variable name="CAMERA_USAGE_DESCRIPTION" value=" QRCode scan" />
<plugin name="cordova-plugin-whitelist" spec="^1.3.4" />
<plugin name="cordova-plugin-x-toast" spec="^2.7.2" />
<plugin name="cordova-plugin-ionic-keyboard" spec="^2.2.0" />
<plugin name="phonegap-plugin-barcodescanner" spec="^8.1.0">
<variable name="CAMERA_USAGE_DESCRIPTION" value="To scan QRCode" />
<variable name="ANDROID_SUPPORT_V4_VERSION" value="28.+" />
</plugin>
<plugin name="cordova-plugin-customurlscheme" spec="^5.0.2">
<variable name="URL_SCHEME" value="june" />
</plugin>
<plugin name="ionic-plugin-keyboard" spec="^2.2.1" />
<plugin name="cordova-plugin-androidx" spec="^1.0.2" />
</widget>
Subproject commit 366b85e16a589746f53ad260a02abdaa346a1212
# Android Builds
# Build Cesium for Android
Cesium can be build as Android App.
Cesium can be build as an Android App.
Cesium use [Ionic Framework v1.7.16](http://ionicframework.com/docs/v1/) with some Apache Cordova plugins.
......
# Build Cesium as a Desktop application
Cesium can be build as a standalone desktop application, for Linux (`.deb`), Windows (`.exe`) or MacOSx;
- Clone the [cesium-desktop](https://git.duniter.org/clients/cesium-grp/cesium-desktop) project locally;
- Follow this project documentation.
# Cesium docker image
> WARNING: This documentation need a review! (not up to date)
## Build
```bash
cd cesium
sudo docker build . -t cesium/release
```
or with interactive bash
```bash
sudo docker build . -ti cesium/release bash
docker build . -t cesium/release
```
## Run
```bash
sudo docker run -ti --net host -p 8100:8100 -p 35729:35729 -v ~/.gradle:/root/.gradle -v \$PWD:/cesium:rw --privileged cesium/release
docker run -ti --net host -p 8100:8100 -p 35729:35729 -v ~/.gradle:/root/.gradle -v \$PWD:/cesium:rw --privileged cesium/release
```
\ No newline at end of file
# iOS Builds
# Build Cesium for iOS
Cesium can be build as desktop application for iOS. .
## Prerequisites
### Install OSx VM
### Install an OSx VM
Cesium comes with ready to use `Vagrantfile`, used to start a OSx VM easily.
## Install XCode
1. Install VirtualBox
2. Install Vagrant
3. Make sure [Cesium-desktop](https://git.duniter.org/clients/cesium-grp/cesium-desktop) has been checkout inside the path `/platforms/desktop/` (or anywhere else).
This should have been done, if you followed the installation steps.
4. On a terminal, go inside [platforms/desktop/arch/osx/](../platforms/desktop/arch/osx/), then start the VM:
```bash
cd platforms/desktop/arch/osx/
vagrant up --provision
```
5. Connect to the VM:
```bash
vagrant ssh
```
6. Execute the build
```
./build-osx.sh
```
This should download Cesium sources in `Downloads/cesium_src` and binaries web artifact in `Downloads/cesium`.
## Installing XCode 8 (XIP file)
1. Download Xcode (8.2.1) : https://developer.apple.com/services-account/download?path=/Developer_Tools/Xcode_8.2.1/Xcode_8.2.1.xip
2. Copy the `.xip` file into directory `platforms/desktop/arch/osx/`
3. Make sure to restart the VM (this is required to copy the XIP file)
```bash
vagrant halt
vagrant up
vagrant ssh
```
4. Unpack the XIP file
```bash
unxip Xcode*.xip
```
5. Install Xcode into `/Applications`, then configure xcode-select
```bash
sudo mv Xcode.app /Applications
```
6. Configure `xcode-select`:
```bash
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
```
## Install Node JS
1. Install NVM (node.js version manager) :
2. Install node.js v5
3. Install common node.js dependencies
```bash
# NVM (Node version manager
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
# Node.js
nvm install 6
# node-pre-gyp
npm install -g nw-gyp node-pre-gyp
```
## Build from source
1. Checkout Cesium source, from git, inside the directory `/Users/vagrant/Downloads/cesium_src`
2. Install global dependencies (see [Development Guide](./development_guide.md) for versions to used) :
```
npm install -g yarn gulp@3.9.1 cordova @ionic/cli@6.6.0
```
3. Install project dependencies :
```
cd cesium_src
npm install
```
4. Prepare ionic, to build on ios:
```bash
ionic platform add ios
ionic state reset
```
5. Run cesium:
```bash
ionic run ios
```
6. Build binaries for emulator :
```bash
ionic build ios
```
## Publishing to Apple store
### Pre-requisite
Ensure you have a valid Certificate (with your private key)
and Distribution Provisioning Profile associated to it in the OSX Keychain.
See: https://help.apple.com/developer-account/#/devbfa00fef7
### Archive and upload to Apple Store Connect
1. Prepare for iOS in release mode:
```bash
ionic prepare ios --release --prod
```
2. Generate archive for iOS generic device
```bash
cd platforms/ios
mkdir build
xcodebuild -workspace Cesium.xcworkspace -scheme Cesium -sdk iphoneos -configuration AppStoreDistribution archive -archivePath $PWD/build/Cesium.xcarchive
```
4. Create an `export.plist` file with the following content
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>method</key>
<string>app-store</string>
<key>teamID</key>
<string>YOUR_TEAM_ID</string>
</dict>
</plist>
```
Replace `YOUR_TEAM_ID` by the Team ID associated to your Apple Developer Account (see Membership section on https://developer.apple.com/account/)
3. generate IPA for Apple Store
```bash
xcodebuild -exportArchive -archivePath $PWD/build/Cesium.xcarchive -exportOptionsPlist $PWD/export.plist -exportPath $PWD/build
```
4. Upload to Apple Store Connect:
```bash
/Applications/Xcode.app/Contents/Applications/Application\ Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Support/altool --upload-app -f $PWD/build/Cesium.ipa -u YOUR_APPLE_ID
```
The command will prompt for your password, if you use two-factor authentication, you'll need to generate an application specific password for this command (see: https://appleid.apple.com/account/manage)
5. Go to `https://appstoreconnect.apple.com/`, then `My Apps` and publish your App from there.
\ No newline at end of file
# Ubuntu Builds
Cesium can be build as desktop application for Ubuntu, or as App on Ubuntu phone. Such builds use cross-architecture [click targets](https://developer.ubuntu.com/en/phone/apps/sdk/tutorials/click-targets-and-device-kits/) and the specific Apache Cordova platform `ubuntu`.
## Prerequisites
### Install the development environment
Follow all the steps defined in the [Development guide](./development_guide.md).
After that you should be able to start the application using `npm start`, and to test it.
## Install Ubuntu SDK
Source documentation [here](https://developer.ubuntu.com/en/phone/platform/sdk/installing-the-sdk/) and [here](https://cordova.apache.org/docs/en/latest/guide/platforms/ubuntu/index.html)
Install the SDK :
```bash
sudo add-apt-repository ppa:ubuntu-sdk-team/ppa
sudo apt update
sudo apt install ubuntu-sdk
```
Install "click" packaging tools:
```bash
sudo apt-get install click cmake libicu-dev pkg-config devscripts qtbase5-dev qtchooser qtdeclarative5-dev qtfeedback5-dev qtlocation5-dev qtmultimedia5-dev qtpim5-dev libqt5sensors5-dev qtsystems5-dev
```
> Alternatively (not tested):
> `sudo click chroot -a armhf -f ubuntu-sdk-15.04 install cmake libicu-dev:armhf pkg-config qtbase5-dev:armhf qtchooser qtdeclarative5-dev:armhf qtfeedback5-dev:armhf qtlocation5-dev:armhf qtmultimedia5-dev:armhf qtpim5-dev:armhf libqt5sensors5-dev:armhf qtsystems5-dev:armhf`
## Add Ubuntu platform to the Ionic project
```bash
cd cesium
ionic platform add ubuntu
```
## Running Ubuntu SDK IDE (optional)
To debug or configure the Ubuntu builds easily, you can use the Ubuntu SDK IDE.
```bash
ubuntu-sdk-ide
```
> Note: Before launching the IDE, make sure your user has the unix group `lxd`. If not, simply execute this command:
> `sudo usermod -a -G lxd mon_user`
## Build Debian package
Cesium can be built on a `amd64` architecture.
1. Generate the `click` source code:
```bash
cd cesium
ionic build ubuntu --release
```
2. Then build the project:
```bash
cd platforms/ubuntu/native/cesium
debuild
```
This should generate the `.deb` in directory `<cesium>/platforms/ubuntu/native`.
> This step will required a valid (and installed) GPG key, to sign the `.deb` file.
> The key should match the `author` field of the file `<cesium>/config.xml`.
> To be able to your own GPG key, change the author.
### Build for Ubuntu Phone
Cesium can be built on a `armhf` architecture.
Install `armhf` build platform:
```bash
sudo click chroot -a armhf -f ubuntu-sdk-15.04 create
```
Then install some dependencies inside the `armhf` chroot:
```bash
sudo click chroot -a armhf -f ubuntu-sdk-15.04 install cmake libicu-dev:armhf pkg-config qtbase5-dev:armhf qtchooser qtdeclarative5-dev:armhf qtfeedback5-dev:armhf qtlocation5-dev:armhf qtmultimedia5-dev:armhf qtpim5-dev:armhf libqt5sensors5-dev:armhf qtsystems5-dev:armhf
```
Build the phone application
```bash
cd cesium
ionic build ubuntu --device
```
> To test your application on phone, execute :
> `ionic run ubuntu --device`
## Publishing to Ubuntu App Store
Follow steps on https://developer.ubuntu.com/en/publish/
\ No newline at end of file
# Build Cesium as an unhosted web application
Cesium can be build as a simple web application, portable and runnable anywhere.
## Prerequisites
### Install the development environment
Follow all the steps defined in the [Development guide](./development_guide.md).
After that you should be able to start the application using `npm start`or `yarn run start`, and to test it.
## Build the unhosted web application
- To create a compressed ZIP artifact, run:
```bash
cd cesium
gulp webBuild --release
```
A ZIP archive will be visible `dist/web/build/cesium-vx.y.z.zip`
## Publishing to a web site
Uncompress the web archive, then open the `ìndex.html` file in your web browser.
\ No newline at end of file
# Build Cesium as a Web extension
Cesium can be build as Web extension, for Mozilla Firefox extension (`.xpi`) and Chrome/Chromium (`.crx`).
## Prerequisites
### Install the development environment
Follow all the steps defined in the [Development guide](./development_guide.md).
After that you should be able to start the application using `npm start`or `yarn run start`, and to test it.
## Build the web extension
- To create a uncompressed extension, use :
```bash
cd cesium
gulp webExtCompile --release
```
The uncompressed web extension will be visible `dist/web/ext`
- To create a portable and compressed ZIP extension :
```bash
cd cesium
gulp webExtBuild --release
```
The web extension is visible at `dist/web/build/cesium-vx.y.z-extension.zip`
> Remove the option `--release` to skip creation of minified CSS and JS files (and source maps)
## Publishing to Mozilla Addons
- Make sure you have `web-ext` installed. If not, run:
```bash
npm install -g web-ext
```
- Sign your extension :
```bash
# Define your credentials on addons.mozilla.org (your developer account)
export AMO_JWT_ISSUER = // username
export AMO_JWT_SECRET = // password
# Will archive and upload your extension
cd cesium
web-ext sign "--api-key=${AMO_JWT_ISSUER}" "--api-secret=${AMO_JWT_SECRET}" "--source-dir=dist/web/ext" "--artifacts-dir=${PROJECT_DIR}/dist/web/build" --id=${WEB_EXT_ID} --channel=listed
```
\ No newline at end of file
# Version v1.2.10
## Settings
- If Duniter node is down, settings cannot be stored locally - fix [#788](https://git.duniter.org/clients/cesium-grp/cesium/issues/788)
## All platforms
## My account
- Le nombre de notifications affiché est incorrect - fix [#745](https://git.duniter.org/clients/cesium-grp/cesium/issues/745)
## Cesium+ features
### Settings
- Allow to use Cesium+ Pod in version v1.1.3+
\ No newline at end of file
- [enh] Cesium+: Add compatibility to Cesium+ Pod v1.1.3+
- [fix] If Duniter node is down, settings cannot be stored locally - fix [#788](https://git.duniter.org/clients/cesium-grp/cesium/issues/788)
- [fix] My account: notification count was wrong - fix [#745](https://git.duniter.org/clients/cesium-grp/cesium/issues/745)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment