Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • cordeliaze/cesium
  • pfouque06/cesium
  • wellno1/cesium
  • 1000i100/cesium
  • vincentux/cesium
  • calbasi/cesium
  • thomasbromehead/cesium
  • matograine/cesium
  • clients/cesium-grp/cesium
  • cedricmenec/cesium
  • Pamplemousse/cesium
  • etienneleba/cesium
  • tnntwister/cesium
  • scanlegentil/cesium
  • morvanc/cesium
  • yyy/cesium
  • Axce/cesium
  • Bertrandbenj/cesium
  • Lupus/cesium
  • elmau/cesium
  • MartinDelille/cesium
  • tykayn/cesium
  • numeropi/cesium
  • Vivakvo/cesium
  • pokapow/cesium
  • pini-gh/cesium
  • anam/cesium
  • RavanH/cesium
  • bpresles/cesium
  • am97/cesium
  • tuxmain/cesium
  • jytou/cesium
  • oliviermaurice/cesium
  • 666titi999/cesium
  • Yvv/cesium
35 results
Show changes
Commits on Source (955)
{
"directory": "www/lib"
}
# Specifies intentionally untracked files to ignore when using Git # Specifies intentionally untracked files to ignore when using Git
# http://git-scm.com/docs/gitignore # http://git-scm.com/docs/gitignore
/www/lib/ionic-material
/www/lib/robotodraft
/node_modules/ /node_modules/
/platforms/* /platforms/ios
!/platforms/desktop /platforms/android
/platforms/desktop/*
!/platforms/android
/platforms/android/*
/resources/android/build/local.properties /resources/android/build/local.properties
/resources/android/build/Cesium.keystore /resources/android/build/*.keystore
/resources/android/build/release-signing.properties /resources/android/build/release-signing.properties
/plugins/ /plugins/
.idea/ .idea/
.vscode/
.local/
.directory
/*.iml /*.iml
/npm-debug.log
/package-lock.json
/yarn-error.log
/www/lib/* /dist/web
!/www/lib/ionic /dist/android
/www/js/config.js /dist/*.sha256
/www/dist
/hooks/playstore-config.json /hooks/uglify-config.json
/hooks/after_prepare/uglify.js
/scripts/sdkmanager.log
.directory
/www/js/config.js /www/js/config.js
/www/dist
/www/lib
# Generated CSS # Generated CSS
/www/css/ionic.app.css /www/css/ionic.app.css
...@@ -39,5 +43,8 @@ ...@@ -39,5 +43,8 @@
/www/css/leaflet.app.min.css /www/css/leaflet.app.min.css
/www/img/layers*.png /www/img/layers*.png
/www/img/marker*.png /www/img/marker*.png
/www/img/loader.gif
/www/img/search-icon.png
/www/img/search-icon-mobile.png
env.sh .run/*
# ---------------------------------------------------------------
# Global
# ---------------------------------------------------------------
# default image
image: node:12
# stages (main steps of pipeline)
stages: stages:
- build - build
- alt_build - alt_build
- publish - deploy
fast-build: # ---------------------------------------------------------------
stage: build # Global variables
image: $CI_REGISTRY_IMAGE # ---------------------------------------------------------------
variables:
CI_BUILD_IMAGE: $CI_REGISTRY_IMAGE/build:develop
# ---------------------------------------------------------------
# Jobs templates
# ---------------------------------------------------------------
.docker:
image: docker:latest
tags: [redshift]
services:
- docker:dind
before_script: before_script:
- mv /customCache/node_modules ./ - docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}
- cp -rf /customCache/www ./ #- docker login -u "duniterteam" -p "$DUNITERTEAM_PASSWD"
- cp -rf /customCache/hooks ./ after_script:
- docker logout ${CI_REGISTRY}
#- docker logout
allow_failure: false
# ---------------------------------------------------------------
# Build jobs
# ---------------------------------------------------------------
.build:
stage: build
tags: [redshift]
script: script:
- node ./node_modules/gulp/bin/gulp build:web - yarn install
- yarn run build:web
after_script: after_script:
- ls -la platforms/web/ - ls -la dist/web/
- du -csh platforms/web/ - du -csh dist/web/
artifacts: artifacts:
untracked: true untracked: true
paths: paths:
- platforms/web - dist/web
expire_in: 60 minutes expire_in: 60 minutes
build:
extends: .build
image: ${CI_BUILD_IMAGE}
before_script:
- mv /tmp/.build-cache/node_modules ./
only: only:
- master - develop
- tags
failsafe-build: failsafe-build:
extends: .build
stage: alt_build stage: alt_build
when: on_failure when: on_failure
image: node:5 before_script:
script: - yarn global add gulp
- npm install
- npm run postinstall
# - node ./node_modules/gulp/bin/gulp config --env default_fr
- node ./node_modules/gulp/bin/gulp build:web
artifacts:
untracked: true
paths:
- platforms/web
expire_in: 60 minutes
only: only:
- master - develop
- tags
docker-for-fast-build: docker:ci:
extends: .docker
stage: alt_build stage: alt_build
when: on_failure when: on_failure
allow_failure: true allow_failure: true
tags:
- doppler-docker
image: docker:latest
services:
- docker:dind
script: script:
- echo 'FROM node:5' > Dockerfile # Create the target directory
- echo 'WORKDIR /customCache' >> Dockerfile - mkdir -p dist/ci
- cd dist/ci
# Create the Dockerfile
- echo 'FROM node:12' > Dockerfile
- echo 'WORKDIR /tmp/.build-cache' >> Dockerfile
- echo 'COPY ./ ./' >> Dockerfile - echo 'COPY ./ ./' >> Dockerfile
- echo 'RUN du -s `find . -maxdepth 1 | egrep -v "^\.$"`>/before.txt' >> Dockerfile # Store disk usage (before install)
- echo 'RUN npm install' >> Dockerfile - echo 'RUN du -s `find . -maxdepth 1 | egrep -v "^\.$"` > /tmp/before.txt' >> Dockerfile
- echo 'RUN npm run postinstall' >> Dockerfile - echo 'RUN du -s `find /tmp/.cache/yarn -maxdepth 1 | egrep -v "^\.$"` >> /tmp/before.txt' >> Dockerfile
- echo 'RUN du -s `find . -maxdepth 1 | egrep -v "^\.$"`>/after.txt' >> Dockerfile # Install dependencies
- echo 'RUN yarn global add gulp web-ext @ionic/cli' >> Dockerfile
- echo 'RUN yarn install' >> Dockerfile
# Store disk usage (after install)
- echo 'RUN du -s `find . -maxdepth 1 | egrep -v "^\.$"` > /tmp/after.txt' >> Dockerfile
- echo 'RUN du -s `find /tmp/.cache/yarn -maxdepth 1 | egrep -v "^\.$"` >> /tmp/after.txt' >> Dockerfile
# Force docker to detect any changes
- echo "RUN diff /tmp/before.txt /tmp/after.txt || true" >> Dockerfile
- echo 'WORKDIR /build' >> Dockerfile - echo 'WORKDIR /build' >> Dockerfile
- echo "RUN diff /before.txt /after.txt || true" >> Dockerfile # Build and push the CI image
- docker login -u "gitlab-ci-token" -p "$CI_BUILD_TOKEN" $CI_REGISTRY - docker build --no-cache -t ${CI_BUILD_IMAGE} .
- docker build --pull -t "$CI_REGISTRY_IMAGE" . - docker push ${CI_BUILD_IMAGE}
- docker push "$CI_REGISTRY_IMAGE" artifacts:
paths:
- dist/ci/Dockerfile
expire_in: 60 minutes
# ---------------------------------------------------------------
# Deploy jobs
# ---------------------------------------------------------------
pages: pages:
stage: publish stage: deploy
image: node:latest
variables: variables:
GIT_STRATEGY: none GIT_STRATEGY: none
script: script:
- ls -la public || true - ls -la public || true
- mv platforms/web/www public - mv dist/web/www public
artifacts: artifacts:
untracked: true untracked: true
paths: paths:
- public - public
only: only:
- master - master
mirror: mirror:
stage: publish stage: deploy
image: liaohuqiu/rsync image: liaohuqiu/rsync
before_script: before_script:
- eval $(ssh-agent -s) - eval $(ssh-agent -s)
...@@ -89,20 +133,20 @@ mirror: ...@@ -89,20 +133,20 @@ mirror:
[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > [[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" >
~/.ssh/config ~/.ssh/config
script: script:
- mv platforms/web/www public - mv dist/web/www public
- rsync -az -e ssh ./public/ gammanu@1000i100.fr:~/g1.money/dev-cesium - rsync -az -e ssh ./public/ gammanu@1000i100.fr:~/g1.money/dev-cesium
after_script:
- ssh gammanu@1000i100.fr "~/g1.money/update-cesium.sh"
only: only:
- master - master
release:
release-web: stage: deploy
stage: publish
image: node:latest
variables: variables:
GIT_STRATEGY: none GIT_STRATEGY: none
script: script:
- ls -la www || true - ls -la www || true
- mv platforms/web/www www - mv dist/web/www www
artifacts: artifacts:
untracked: true untracked: true
paths: paths:
......
[submodule "platforms/desktop"] [submodule "dist/desktop"]
path = platforms/desktop path = dist/desktop
url = git@git.duniter.org:clients/cesium-grp/cesium-desktop.git url = git@git.duniter.org:clients/cesium-grp/cesium-desktop.git
[submodule "platforms/android"] [submodule "dist/android/sources"]
path = platforms/android path = dist/android/sources
url = git@git.duniter.org:clients/cesium-grp/cesium-android.git url = git@git.duniter.org:clients/cesium-grp/cesium-android.git
--install.ignore-engines true
FROM ubuntu:16.04 FROM node:12
LABEL maintainer="benoit [dot] lavenier [at] e-is [dot] pro" LABEL maintainer="benoit [dot] lavenier [at] e-is [dot] pro"
LABEL version="1.7.0-rc1"
LABEL description="Cesium Wallet for Ğ1 libre currency"
ARG CESIUM_VER="1.7.0-rc1"
ENV DEBIAN_FRONTEND=noninteractive \ ENV DEBIAN_FRONTEND=noninteractive \
ANDROID_HOME=/opt/android-sdk-linux \ NODE_VERSION=16.17.0 \
NODE_VERSION=5.12.0 \ NPM_VERSION=8.3.0 \
NPM_VERSION=3.8.6 \ YARN_VERSION=1.22.17 \
IONIC_VERSION=1.7.16 \ IONIC_CLI_VERSION=6.20.9 \
BOWER_VERSION=1.8.0 \ CORDOVA_VERSION=10.0.0 \
CORDOVA_VERSION=6.5.0 \ GRADLE_VERSION=6.5.1 \
GRADLE_VERSION=4.1 \ GULP_VERSION=4.0.2
NDK_VERSION=r10e
# Install basics # Install basics
RUN apt-get update && \ RUN apk update && \
apt-get install -y git wget curl unzip build-essential ruby ruby-dev ruby-ffi gcc make && \ apk add ca-certificates wget curl git && \
curl --retry 3 -SLO "http://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64.tar.gz" && \ update-ca-certificates && \
tar -xzf "node-v$NODE_VERSION-linux-x64.tar.gz" -C /usr/local --strip-components=1 && \ apk add --update python make g++
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 # create group and user cesium
COPY resources/android/build/tools /opt/tools RUN addgroup -S -g 1111 cesium && \
RUN chmod u+x /opt/tools/*.sh adduser -SD -h /cesium -G cesium -u 1111 cesium
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 mkdir -p /var/lib/cesium /etc/cesium && chown cesium:cesium /var/lib/cesium /etc/cesium
RUN unzip ${ANDROID_HOME}/temp/*.zip -d ${ANDROID_HOME}
# Install global dependencies
RUN yarn global add gulp@"$GULP_VERSION" @ionic/cli@"$IONIC_CLI_VERSION"
# Install source code # copy source tree
#RUN git config --global user.email "user.name@domain.com" && \ COPY ./ ./
# git config --global user.name "User Name" && \
RUN git clone git@git.duniter.org:clients/cesium-grp/cesium.git && \
cd cesium && \
npm install
# Restore cordova platforms RUN test -f package.json || git clone https://github.com/duniter/cesium.git && cd cesium
RUN cd cesium && \
ionic state restore
# TODO: Test First Build so that it will be faster later # Install project dependencies
## ionic cordova build android --prod --no-interactive --release # 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 EXPOSE 8100 35729
CMD ["ionic", "serve"] CMD ["yarn", "run", "start"]
...@@ -2,131 +2,67 @@ ...@@ -2,131 +2,67 @@
# Cesium # 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 ### As a web extension (Firefox, Chrome)
- on Ğ1 currency (production use): https://g1.duniter.fr
- Download the [latest extension release](https://github.com/duniter/cesium/releases/latest)
## Installation
### On a desktop computer
To use Cesium from your desktop computer : - Drag/drop the file into your browser;
- Debian or Windows: - Confirm the installation.
* Download the [latest release](https://github.com/duniter/cesium/releases/latest).
* Choose the desktop packaging (`cesium-desktop-vX.Y.Z-*`) That's it! A new button is appeared, on the top right corner.
* Execute the downloaded file, and follow installation steps;
- Other operating systems: ### On desktop computer
* 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 - Download the [latest release](https://github.com/duniter/cesium/releases/latest)
- 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;
Cesium can be easily installed on most web server : ### On smartphone
- Download the [latest release](https://github.com/duniter/cesium/releases/latest). Choose the web packaging (`cesium-vX.Y.Z-web.zip`); - Android:
- Unpack in a empty directory; * Manual installation: download then install the `.apk` from your smartphone;
- Configure a virtual host, to use previous directory as root. Check the file `index.html` exist in the root directory. * [Play Store](https://play.google.com/store/apps/details?id=fr.duniter.cesium);
- iOS
* [App Store](https://apps.apple.com/us/app/cesium-%C4%9F1/id1471028018);
For Linux distribution, a installation script could also be used to:
- 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:
* set `node.host` and `node.port` to the default node address.
- Configure the optional extension for [ElasticSearch Duniter4j node](https://github.com/duniter/duniter4j)
* 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).
## Developement #### Yunohost package
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 : A [Development Guide](doc/development_guide.md) is available to learn :
- How to install your development environment. - How to install your development environment.
- Development best practices. - Development best practices.
A [development tutorial](doc/fr/development_tutorial-01.md) (in French) is also available. A [development tutorial](doc/fr/development_tutorial-01.md) (in French) is also available.
The [first 3 lessons of the tutorial](doc/en/development_tutorial-01.md) have also been translated into english.
## License ## Donate
This software is distributed under [GNU AGPL-3.0](https://raw.github.com/duniter/cesium/master/LICENSE). To help developers with donation, use the [Cesium Team Ğ1 account](https://demo.cesium.app#/app/wot/CitdnuQgZ45tNFCagay7Wh12gwwHM8VLej1sWmfHWnQX/) (public key: `CitdnuQgZ45tNFCagay7Wh12gwwHM8VLej1sWmfHWnQX`)
## Troubleshooting
#### I'm having errors on Ubuntu/Debian (desktop version) ## License
Install these dependencies: This software is distributed under [GNU AGPL-3.0](https://raw.github.com/duniter/cesium/master/LICENSE).
``` Please read also our [privacy policy](./doc/privacy_policy.md).
sudo apt-get install -y libgconf-2-4 \ No newline at end of file
```
\ No newline at end of file
{ {
"default": { "default": {
"cacheTimeMs": 300000, "cacheTimeMs": 300000,
"demo": false,
"readonly": false,
"fallbackLanguage": "en", "fallbackLanguage": "en",
"rememberMe": true, "rememberMe": true,
"showUDHistory": true, "showUDHistory": true,
"timeout": 30000, "timeout": 30000,
"timeWarningExpireMembership": 5184000, "timeWarningExpireMembership": 5184000,
"timeWarningExpire": 7776000, "timeWarningExpire": 7776000,
"minConsensusPeerCount": 10,
"keepAuthIdle": 600, "keepAuthIdle": 600,
"useLocalStorage": true, "useLocalStorage": true,
"useRelative": false, "useRelative": false,
"expertMode": false, "expertMode": false,
"decimalCount": 2, "decimalCount": 2,
"httpsMode": false, "httpsMode": false,
"shareBaseUrl": "https://g1.duniter.fr", "shareBaseUrl": "https://demo.cesium.app/",
"helptip": { "helptip": {
"enable": true, "enable": true,
"installDocUrl": { "installDocUrl": {
"fr-FR": "https://duniter.org/fr/wiki/duniter/installer/", "fr-FR": "https://duniter.fr/wiki/doc/installer/",
"en": "https://duniter.org/en/wiki/duniter/install/" "en": "https://duniter.org/wiki/doc/install/"
} }
}, },
"license": { "license": {
"ca": "license/license_g1-ca",
"de-DE": "license/license_g1-de-DE",
"en": "license/license_g1-en",
"en-GB": "license/license_g1-en",
"eo-EO": "license/license_g1-eo-EO",
"es-ES": "license/license_g1-es-ES",
"fr-FR": "license/license_g1-fr-FR", "fr-FR": "license/license_g1-fr-FR",
"en": "license/license_g1-en" "it-IT": "license/license_g1-it-IT",
"pt-PT": "license/license_g1-pt-PT"
}, },
"node": { "feed": {
"host": "g1.duniter.org", "jsonFeed": {
"port": 443 "ca": "https://raw.githubusercontent.com/duniter/cesium/master/doc/feed/1.1/feed-ca.json",
"de-DE": "https://raw.githubusercontent.com/duniter/cesium/master/doc/feed/1.1/feed-de-DE.json",
"en": "https://raw.githubusercontent.com/duniter/cesium/master/doc/feed/1.1/feed-en.json",
"en-GB": "https://raw.githubusercontent.com/duniter/cesium/master/doc/feed/1.1/feed-en-GB.json",
"eo-EO": "https://raw.githubusercontent.com/duniter/cesium/master/doc/feed/1.1/feed-eo-EO.json",
"es-ES": "https://raw.githubusercontent.com/duniter/cesium/master/doc/feed/1.1/feed-es-ES.json",
"fr-FR": "https://raw.githubusercontent.com/duniter/cesium/master/doc/feed/1.1/feed-fr-FR.json",
"it-IT": "https://raw.githubusercontent.com/duniter/cesium/master/doc/feed/1.1/feed-it-IT.json",
"nl-NL": "https://raw.githubusercontent.com/duniter/cesium/master/doc/feed/1.1/feed-nl-NL.json",
"pt-PT": "https://raw.githubusercontent.com/duniter/cesium/master/doc/feed/1.1/feed-pt-PT.json"
},
"maxContentLength": 1300,
"maxAgeInMonths": 3,
"maxCount": 3
}, },
"fallbackNodes": [ "fallbackNodes": [
{ {
"host": "g1.duniter.fr", "host": "g1.e-is.pro",
"port": 443 "port": 443
}, },
{ {
"host": "g1.duniter.org", "host": "vit.fdn.org",
"port": 443
}
],
"developers": [
{"name": "Benoit Lavenier", "pubkey": "38MEAZN68Pz1DTvT3tqgxx4yQP6snJCQhPqEFxbDk4aE"}
],
"plugins":{
"es": {
"enable": true,
"askEnable": true,
"useRemoteStorage": true,
"host": "g1.data.duniter.fr",
"port": 443,
"fallbackNodes": [
{
"host": "g1.data.le-sou.org",
"port": 443
},
{
"host": "g1.data.duniter.fr",
"port": 443
}
],
"notifications": {
"txSent": true,
"txReceived": true,
"certSent": true,
"certReceived": true
},
"defaultCountry": "France"
}
}
},
"default_fr": {
"cacheTimeMs": 300000,
"fallbackLanguage": "fr",
"rememberMe": true,
"showUDHistory": true,
"timeout": 300000,
"timeWarningExpireMembership": 5184000,
"timeWarningExpire": 7776000,
"keepAuthIdle": 600,
"useLocalStorage": true,
"useRelative": false,
"expertMode": false,
"decimalCount": 2,
"httpsMode": false,
"shareBaseUrl": "https://g1.duniter.fr",
"helptip": {
"enable": true,
"installDocUrl": {
"fr-FR": "https://duniter.org/fr/wiki/duniter/installer/",
"en": "https://duniter.org/en/wiki/duniter/install/"
}
},
"license": {
"fr-FR": "license/license_g1-fr-FR",
"en": "license/license_g1-en"
},
"node": {
"host": "g1.duniter.fr",
"port": 443
},
"fallbackNodes": [
{
"host": "g1.duniter.fr",
"port": 443 "port": 443
}, },
{ {
"host": "g1.monnaielibreoccitanie.org", "host": "g1.cgeek.fr",
"port": 443 "port": 443
}, },
{ {
"host": "g1.le-sou.org", "host": "g1.mithril.re",
"port": 443 "port": 443
}, },
{ {
"host": "duniter.normandie-libre.fr", "host": "g1.duniter.org",
"port": 443 "port": 443
}, },
{ {
"host": "g1.duniter.org", "host": "g1.le-sou.org",
"port": 443 "port": 443
} }
], ],
"developers": [
{"name": "Benoit Lavenier", "pubkey": "38MEAZN68Pz1DTvT3tqgxx4yQP6snJCQhPqEFxbDk4aE"},
{"name": "Cédric Moreau", "pubkey": "2ny7YAdmzReQxAayyJZsyVYwYhVyax2thKcGknmQy5nQ"},
{"name": "Kapis", "pubkey": "24jaf8XhYZyDyUb7hMcy5qsanaHBC11AwPefcCQRBQNA"},
{"name": "Matograine", "pubkey": "CmFKubyqbmJWbhyH2eEPVSSs4H4NeXGDfrETzEnRFtPd"}
],
"plugins":{ "plugins":{
"es": { "es": {
"enable": true, "enable": true,
"askEnable": true, "askEnable": true,
"useRemoteStorage": true, "useRemoteStorage": true,
"host": "g1.data.duniter.fr", "host": "g1.data.e-is.pro",
"port": 443, "port": 443,
"fallbackNodes": [ "fallbackNodes": [
{
"host": "g1.data.presles.fr",
"port": 443
},
{ {
"host": "g1.data.le-sou.org", "host": "g1.data.le-sou.org",
"port": 443 "port": 443
}, },
{ {
"host": "g1.data.duniter.fr", "host": "g1.data.brussels.ovh",
"port": 443 "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",
"port": 443
},
{
"host": "g1.duniter.fr",
"port": 443
}
],
"plugins":{
"es": {
"enable": true,
"askEnable": true,
"useRemoteStorage": true,
"host": "g1.data.le-sou.org",
"port": 443,
"fallbackNodes": [
{ {
"host": "g1.data.le-sou.org", "host": "g1.data.pini.fr",
"port": 443 "port": 443
}, },
{ {
"host": "g1.data.duniter.fr", "host": "g1.data.mithril.re",
"port": 443
},
{
"host": "g1.data.e-is.pro",
"port": 443 "port": 443
} }
], ],
...@@ -218,24 +128,28 @@ ...@@ -218,24 +128,28 @@
} }
}, },
"g1-test": { "g1-test": {
"cacheTimeMs": 300000, "cacheTimeMs": 300000,
"demo": false,
"readonly": false,
"fallbackLanguage": "en", "fallbackLanguage": "en",
"rememberMe": true, "rememberMe": true,
"timeout": 300000, "showUDHistory": true,
"timeout": 30000,
"timeWarningExpireMembership": 5184000, "timeWarningExpireMembership": 5184000,
"timeWarningExpire": 7776000, "timeWarningExpire": 7776000,
"minConsensusPeerCount": -1,
"useLocalStorage": true, "useLocalStorage": true,
"useRelative": false, "useRelative": false,
"expertMode": true, "expertMode": true,
"decimalCount": 2, "decimalCount": 2,
"shareBaseUrl": "https://g1.duniter.fr", "httpsMode": false,
"shareBaseUrl": "https://g1-test.cesium.app",
"helptip": { "helptip": {
"enable": false, "enable": false,
"installDocUrl": { "installDocUrl": {
"fr-FR": "https://duniter.org/fr/wiki/duniter/installer/", "fr-FR": "https://duniter.fr/wiki/doc/installer/",
"en": "https://github.com/duniter/duniter/blob/master/doc/install-a-node.md" "en": "https://duniter.org/wiki/doc/install/"
} }
}, },
"node": { "node": {
...@@ -244,16 +158,26 @@ ...@@ -244,16 +158,26 @@
}, },
"fallbackNodes": [ "fallbackNodes": [
{ {
"host": "g1-test.cgeek.fr", "host": "gt.moul.re",
"port": 10902
},
{
"host": "g1-test.duniter.org",
"port": 443 "port": 443
} }
], ],
"developers": [
{"name": "Benoit Lavenier", "pubkey": "38MEAZN68Pz1DTvT3tqgxx4yQP6snJCQhPqEFxbDk4aE"},
{"name": "Cédric Moreau", "pubkey": "2ny7YAdmzReQxAayyJZsyVYwYhVyax2thKcGknmQy5nQ"},
{"name": "Kapis", "pubkey": "24jaf8XhYZyDyUb7hMcy5qsanaHBC11AwPefcCQRBQNA"},
{"name": "Matograine", "pubkey": "CmFKubyqbmJWbhyH2eEPVSSs4H4NeXGDfrETzEnRFtPd"}
],
"plugins":{ "plugins":{
"es": { "es": {
"enable": true, "enable": false,
"askEnable": true, "askEnable": false,
"useRemoteStorage": true, "useRemoteStorage": false,
"host": "g1-test.data.duniter.fr", "host": "g1-test.data.e-is.pro",
"port": 443, "port": 443,
"notifications": { "notifications": {
"txSent": true, "txSent": true,
...@@ -268,6 +192,8 @@ ...@@ -268,6 +192,8 @@
"dev": { "dev": {
"cacheTimeMs": 300000, "cacheTimeMs": 300000,
"demo": false,
"readonly": false,
"fallbackLanguage": "fr-FR", "fallbackLanguage": "fr-FR",
"defaultLanguage": "fr-FR", "defaultLanguage": "fr-FR",
"rememberMe": true, "rememberMe": true,
...@@ -282,16 +208,21 @@ ...@@ -282,16 +208,21 @@
"helptip": { "helptip": {
"enable": false, "enable": false,
"installDocUrl": { "installDocUrl": {
"fr-FR": "https://duniter.org/fr/wiki/duniter/installer/", "fr-FR": "https://duniter.fr/wiki/doc/installer/",
"en": "https://duniter.org/en/wiki/duniter/install/" "en": "https://duniter.org/en/wiki/duniter/install/"
} }
}, },
"license": { "license": {
"en": "license/license_g1-en",
"fr-FR": "license/license_g1-fr-FR", "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",
"pt-PT": "license/license_g1-pt-PT",
"it-IT": "license/license_g1-it-IT",
"de-DE": "license/license_g1-de-DE"
}, },
"node": { "node": {
"host": "g1.duniter.fr", "host": "g1.e-is.pro",
"port": 443 "port": 443
}, },
"fallbackNodes": [{ "fallbackNodes": [{
...@@ -299,7 +230,7 @@ ...@@ -299,7 +230,7 @@
"port": 443 "port": 443
}, },
{ {
"host": "g1.duniter.fr", "host": "g1.e-is.pro",
"port": 443 "port": 443
} }
], ],
...@@ -316,7 +247,7 @@ ...@@ -316,7 +247,7 @@
"port": 443 "port": 443
}, },
{ {
"host": "g1.data.duniter.fr", "host": "g1.data.e-is.pro",
"port": 443 "port": 443
} }
], ],
...@@ -331,9 +262,6 @@ ...@@ -331,9 +262,6 @@
"graph": { "graph": {
"enable": true "enable": true
}, },
"neo4j": {
"enable": true
},
"rml9": { "rml9": {
"enable": true "enable": true
} }
...@@ -342,6 +270,8 @@ ...@@ -342,6 +270,8 @@
"dev_g1": { "dev_g1": {
"cacheTimeMs": 300000, "cacheTimeMs": 300000,
"demo": false,
"readonly": false,
"fallbackLanguage": "en", "fallbackLanguage": "en",
"rememberMe": true, "rememberMe": true,
"showUDHistory": true, "showUDHistory": true,
...@@ -356,11 +286,19 @@ ...@@ -356,11 +286,19 @@
"httpsMode": false, "httpsMode": false,
"helptip": { "helptip": {
"enable": false, "enable": false,
"installDocUrl": "https://github.com/duniter/duniter/blob/master/doc/install-a-node.md" "installDocUrl": {
"fr-FR": "https://duniter.fr/wiki/doc/installer/",
"en": "https://duniter.org/en/wiki/duniter/install/"
}
}, },
"license": { "license": {
"fr-FR": "license/license_g1-fr-FR.txt", "en": "license/license_g1-en",
"en": "license/license_g1-en.txt" "fr-FR": "license/license_g1-fr-FR",
"es-ES": "license/license_g1-es-ES",
"eo-EO": "license/license_g1-eo-EO",
"pt-PT": "license/license_g1-pt-PT",
"it-IT": "license/license_g1-it-IT",
"de-DE": "license/license_g1-de-DE"
}, },
"node": { "node": {
"host": "g1.duniter.org", "host": "g1.duniter.org",
...@@ -378,9 +316,6 @@ ...@@ -378,9 +316,6 @@
"graph": { "graph": {
"enable": true "enable": true
}, },
"neo4j": {
"enable": true
},
"rml9": { "rml9": {
"enable": true "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'?> <?xml version='1.0' encoding='utf-8'?>
<widget android-versionCode="103001" id="fr.duniter.cesium" version="1.3.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> <widget android-versionCode="107140" id="fr.duniter.cesium" ios-CFBundleIdentifier="org.duniter.cesium" version="1.7.14" 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> <name>Cesium</name>
<description> <description>
An simple App for Duniter wallet An simple App for Duniter wallet
...@@ -15,30 +15,48 @@ ...@@ -15,30 +15,48 @@
<allow-intent href="sms:*" /> <allow-intent href="sms:*" />
<allow-intent href="mailto:*" /> <allow-intent href="mailto:*" />
<allow-intent href="geo:*" /> <allow-intent href="geo:*" />
<allow-intent href="june:*" />
<allow-intent href="web+june:*" />
<allow-navigation href="http://*/*" /> <allow-navigation href="http://*/*" />
<allow-navigation href="https://*/*" /> <allow-navigation href="https://*/*" />
<allow-navigation href="data:*" /> <allow-navigation href="data:*" />
<allow-navigation href="june:*" />
<allow-navigation href="web+june:*" />
<icon src="www/img/logo_96px.png" /> <icon src="www/img/logo_96px.png" />
<preference name="webviewbounce" value="false" /> <preference name="webviewbounce" value="false" />
<preference name="UIWebViewBounce" value="false" /> <preference name="UIWebViewBounce" value="false" />
<preference name="DisallowOverscroll" value="true" /> <preference name="DisallowOverscroll" value="true" />
<preference name="SplashScreen" value="screen" /> <preference name="SplashScreen" value="screen" />
<preference name="SplashScreenDelay" value="4000" /> <preference name="SplashScreenDelay" value="4000" />
<preference name="KeyboardDisplayRequiresUserAction" value="false" />
<preference name="KeyboardResizeMode" value="ionic" />
<preference name="xwalkVersion" value="19" /> <preference name="xwalkVersion" value="19" />
<preference name="xwalkMultipleApk" value="false" /> <preference name="xwalkMultipleApk" value="false" />
<preference name="android-minSdkVersion" value="16" /> <preference name="StatusBarOverlaysWebView" value="false" />
<preference name="android-targetSdkVersion" value="26" /> <preference name="StatusBarBackgroundColor" value="#000" />
<allow-navigation href="*" /> <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"> <feature name="StatusBar">
<param name="ios-package" onload="true" value="CDVStatusBar" /> <param name="ios-package" onload="true" value="CDVStatusBar" />
</feature> </feature>
<feature name="Device"> <feature name="Device">
<param name="android-package" onload="true" value="org.apache.cordova.device.Device" /> <param name="android-package" onload="true" value="org.apache.cordova.device.Device" />
</feature> </feature>
<feature name="MiniSodium"> <feature name="Custom URL scheme">
<param name="android-package" onload="true" value="me.lockate.plugins.MiniSodium" /> <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> </feature>
<platform name="android"> <platform name="android">
<preference name="AndroidLaunchMode" value="singleTask" />
<preference name="AndroidInsecureFileModeEnabled" value="true" />
<preference name="android-minSdkVersion" value="22" />
<preference name="android-targetSdkVersion" value="33" />
<preference name="android-compileSdkVersion" value="33" />
<preference name="AndroidPersistentFileLocation" value="Compatibility" />
<icon density="ldpi" src="resources/android/icon/drawable-ldpi-icon.png" /> <icon density="ldpi" src="resources/android/icon/drawable-ldpi-icon.png" />
<icon density="mdpi" src="resources/android/icon/drawable-mdpi-icon.png" /> <icon density="mdpi" src="resources/android/icon/drawable-mdpi-icon.png" />
<icon density="hdpi" src="resources/android/icon/drawable-hdpi-icon.png" /> <icon density="hdpi" src="resources/android/icon/drawable-hdpi-icon.png" />
...@@ -60,56 +78,84 @@ ...@@ -60,56 +78,84 @@
</platform> </platform>
<platform name="ios"> <platform name="ios">
<preference name="BackupWebStorage" value="local" /> <preference name="BackupWebStorage" value="local" />
<icon height="57" src="resources/ios/icon/icon.png" width="57" /> <preference name="StatusBarOverlaysWebView" value="true" />
<icon height="114" src="resources/ios/icon/icon@2x.png" width="114" /> <preference name="KeyboardShrinksView" value="true" />
<icon height="40" src="resources/ios/icon/icon-40.png" width="40" /> <icon height="20" src="resources/ios/icon/Icon-App-20x20@1x.png" width="20" />
<icon height="80" src="resources/ios/icon/icon-40@2x.png" width="80" /> <icon height="40" src="resources/ios/icon/Icon-App-20x20@2x.png" width="40" />
<icon height="50" src="resources/ios/icon/icon-50.png" width="50" /> <icon height="60" src="resources/ios/icon/Icon-App-20x20@3x.png" width="60" />
<icon height="100" src="resources/ios/icon/icon-50@2x.png" width="100" /> <icon height="29" src="resources/ios/icon/Icon-App-29x29@1x.png" width="29" />
<icon height="60" src="resources/ios/icon/icon-60.png" width="60" /> <icon height="58" src="resources/ios/icon/Icon-App-29x29@2x.png" width="58" />
<icon height="120" src="resources/ios/icon/icon-60@2x.png" width="120" /> <icon height="87" src="resources/ios/icon/Icon-App-29x29@3x.png" width="87" />
<icon height="180" src="resources/ios/icon/icon-60@3x.png" width="180" /> <icon height="40" src="resources/ios/icon/Icon-App-40x40@1x.png" width="40" />
<icon height="72" src="resources/ios/icon/icon-72.png" width="72" /> <icon height="80" src="resources/ios/icon/Icon-App-40x40@2x.png" width="80" />
<icon height="144" src="resources/ios/icon/icon-72@2x.png" width="144" /> <icon height="120" src="resources/ios/icon/Icon-App-40x40@3x.png" width="120" />
<icon height="76" src="resources/ios/icon/icon-76.png" width="76" /> <icon height="50" src="resources/ios/icon/Icon-App-50x50@1x.png" width="50" />
<icon height="152" src="resources/ios/icon/icon-76@2x.png" width="152" /> <icon height="100" src="resources/ios/icon/Icon-App-50x50@2x.png" width="100" />
<icon height="29" src="resources/ios/icon/icon-small.png" width="29" /> <icon height="57" src="resources/ios/icon/Icon-App-57x57@1x.png" width="57" />
<icon height="58" src="resources/ios/icon/icon-small@2x.png" width="58" /> <icon height="114" src="resources/ios/icon/Icon-App-57x57@2x.png" width="114" />
<icon height="87" src="resources/ios/icon/icon-small@3x.png" width="87" /> <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="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="1334" src="resources/ios/splash/Default-667h.png" width="750" />
<splash height="2208" src="resources/ios/splash/Default-736h.png" width="1242" /> <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="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="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="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="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="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="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="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>
<platform name="firefoxos"> <plugin name="cordova-plugin-camera" spec="^4.1.0">
<icon height="128" src="www/img/logo_128px.png" width="128" /> <variable name="CAMERA_USAGE_DESCRIPTION" value="Add picture to the user profile" />
<icon height="60" src="www/img/logo_60px.png" width="60" /> <variable name="PHOTOLIBRARY_USAGE_DESCRIPTION" value="Take a picture for the user profile" />
</platform> <variable name="ANDROID_SUPPORT_V4_VERSION" value="28.+" />
<platform name="ubuntu"> </plugin>
<icon height="57" src="www/img/logo_57px.png" width="57" /> <plugin name="cordova-plugin-ionic-webview" spec="^4.2.1">
</platform> <variable name="ANDROID_SUPPORT_ANNOTATIONS_VERSION" value="28.+" />
<engine name="android" spec="^6.2.3" /> </plugin>
<plugin name="cordova-plugin-camera" spec="^2.4.1" /> <plugin name="cordova-plugin-device" spec="^2.1.0" />
<plugin name="cordova-plugin-console" spec="^1.0.7" /> <plugin name="cordova-plugin-dialogs" spec="^2.0.2" />
<plugin name="cordova-plugin-device" spec="^1.1.6" /> <plugin name="cordova-clipboard" spec="^1.3.0" />
<plugin name="cordova-plugin-dialogs" spec="^1.3.3" /> <plugin name="cordova-plugin-splashscreen" spec="^6.0.2" />
<plugin name="cordova-plugin-inappbrowser" spec="^1.7.1" /> <plugin name="cordova-plugin-statusbar" spec="^3.0.0" />
<plugin name="cordova-plugin-minisodium" spec="^1.0.0" /> <plugin name="cordova-plugin-file" spec="^6.0.2" />
<plugin name="cordova-plugin-secure-storage" spec="^2.6.8" /> <plugin name="cordova-plugin-vibration" spec="^3.1.1" />
<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-websocket" spec="^0.12.2" /> <plugin name="cordova-plugin-websocket" spec="^0.12.2" />
<plugin name="cordova-plugin-whitelist" spec="^1.3.2" /> <plugin name="cordova-plugin-ionic-keyboard" spec="^2.2.0" />
<plugin name="cordova-plugin-x-toast" spec="^2.6.0" /> <plugin name="cordova-plugin-androidx-adapter" spec="^1.1.3" />
<plugin name="ionic-plugin-keyboard" spec="^2.2.1" /> <plugin name="cordova-plugin-x-toast" spec="^2.7.3" />
<plugin name="phonegap-plugin-barcodescanner" spec="git+https://github.com/phonegap/phonegap-plugin-barcodescanner.git"> <plugin name="phonegap-plugin-barcodescanner" spec="^8.1.0">
<variable name="CAMERA_USAGE_DESCRIPTION" value=" QRCode scan" /> <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>
<plugin name="cordova-plugin-network-information" spec="~3.0.0">
</plugin>
<plugin name="ionic-plugin-keyboard" spec="^2.2.1" />
</widget> </widget>
Subproject commit 17788c85b43b1fa75287a80454349948068cc457
Subproject commit 4b5e3aef13e93c507fbf24c8aef832ada65f64ef
# 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. Cesium use [Ionic Framework v1.7.16](http://ionicframework.com/docs/v1/) with some Apache Cordova plugins.
...@@ -16,9 +16,9 @@ After that you should be able to start the application using `npm start`, and to ...@@ -16,9 +16,9 @@ After that you should be able to start the application using `npm start`, and to
You can choose to install You can choose to install
- on Linux, install OpenJDK 8: - on Linux, install OpenJDK 11:
* ``sudo apt-get install openjdk-8-jdk`` * ``sudo apt-get install openjdk-11-jdk``
- or Oracle JDK 8 (all platforms supported): - or Oracle JDK 8 (all platforms supported):
......
# 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 # Cesium docker image
> WARNING: This documentation need a review! (not up to date)
## Build ## Build
```bash ```bash
cd cesium cd cesium
sudo docker build . -t cesium/release docker build . -t cesium/release
```
or with interactive bash
```bash
sudo docker build . -ti cesium/release bash
``` ```
## Run ## Run
```bash ```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
# Build Cesium for iOS
Cesium can be build as desktop application for iOS. .
## Prerequisites
### Install an OSx VM
Cesium comes with ready to use `Vagrantfile`, used to start a OSx VM easily.
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 16
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 16
# 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 cordova @ionic/cli@6.20.9
```
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 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
Decompress 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 `yarn run start`, and to test it.
## Build the web extension
- To create an uncompressed extension, use :
```bash
cd cesium
gulp build
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 build
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