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 (367)
Showing
with 1003 additions and 266 deletions
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
# http://git-scm.com/docs/gitignore # http://git-scm.com/docs/gitignore
/node_modules/ /node_modules/
/platforms/* /platforms/ios
#!/platforms/android /platforms/android
/resources/android/build/local.properties /resources/android/build/local.properties
/resources/android/build/*.keystore /resources/android/build/*.keystore
/resources/android/build/release-signing.properties /resources/android/build/release-signing.properties
...@@ -24,6 +24,8 @@ ...@@ -24,6 +24,8 @@
/hooks/uglify-config.json /hooks/uglify-config.json
/hooks/after_prepare/uglify.js /hooks/after_prepare/uglify.js
/scripts/sdkmanager.log
/www/js/config.js /www/js/config.js
/www/dist /www/dist
/www/lib /www/lib
......
# ---------------------------------------------------------------
# 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 webBuild - yarn install
- yarn run build:web
after_script: after_script:
- ls -la dist/web/ - ls -la dist/web/
- du -csh dist/web/ - du -csh dist/web/
...@@ -20,51 +53,63 @@ fast-build: ...@@ -20,51 +53,63 @@ fast-build:
paths: paths:
- dist/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:10 before_script:
script: - yarn global add gulp
- yarn
- node ./node_modules/gulp/bin/gulp config --env default
- node ./node_modules/gulp/bin/gulp webBuild
artifacts:
untracked: true
paths:
- dist/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:10' > 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 yarn' >> Dockerfile - echo 'RUN du -s `find . -maxdepth 1 | egrep -v "^\.$"` > /tmp/before.txt' >> Dockerfile
- echo 'RUN du -s `find . -maxdepth 1 | egrep -v "^\.$"`>/after.txt' >> Dockerfile - echo 'RUN du -s `find /tmp/.cache/yarn -maxdepth 1 | egrep -v "^\.$"` >> /tmp/before.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:10
variables: variables:
GIT_STRATEGY: none GIT_STRATEGY: none
script: script:
...@@ -76,8 +121,9 @@ pages: ...@@ -76,8 +121,9 @@ pages:
- 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)
...@@ -94,10 +140,8 @@ mirror: ...@@ -94,10 +140,8 @@ mirror:
only: only:
- master - master
release:
release-web: stage: deploy
stage: publish
image: node:10
variables: variables:
GIT_STRATEGY: none GIT_STRATEGY: none
script: script:
......
[submodule "dist/desktop"] [submodule "dist/desktop"]
path = dist/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 "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
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Cesium" type="JavascriptDebugType" uri="http://localhost:8100/">
<mapping url="http://localhost:8100" local-file="$PROJECT_DIR$/www" />
<method v="2" />
</configuration>
</component>
\ No newline at end of file
FROM node:10-alpine 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.6.3" LABEL version="1.7.0-rc1"
LABEL description="Cesium Wallet for Ğ1 libre currency" LABEL description="Cesium Wallet for Ğ1 libre currency"
ARG CESIUM_VER="1.6.3" ARG CESIUM_VER="1.7.0-rc1"
ENV DEBIAN_FRONTEND=noninteractive \ ENV DEBIAN_FRONTEND=noninteractive \
NODE_VERSION=10.20.0 \ NODE_VERSION=16.17.0 \
NPM_VERSION=6.14.4 \ NPM_VERSION=8.3.0 \
YARN_VERSION=1.22.4 \ YARN_VERSION=1.22.17 \
IONIC_CLI_VERSION=6.6.0 \ IONIC_CLI_VERSION=6.20.9 \
CORDOVA_VERSION=8.1.2 \ CORDOVA_VERSION=10.0.0 \
GRADLE_VERSION=4.10.3 \ GRADLE_VERSION=6.5.1 \
GULP_VERSION=3.9.1 GULP_VERSION=4.0.2
# Install basics # Install basics
RUN apk update && \ RUN apk update && \
...@@ -31,6 +31,8 @@ RUN yarn global add gulp@"$GULP_VERSION" @ionic/cli@"$IONIC_CLI_VERSION" ...@@ -31,6 +31,8 @@ RUN yarn global add gulp@"$GULP_VERSION" @ionic/cli@"$IONIC_CLI_VERSION"
# copy source tree # copy source tree
COPY ./ ./ COPY ./ ./
RUN test -f package.json || git clone https://github.com/duniter/cesium.git && cd cesium
# Install project dependencies # Install project dependencies
# Workaround need for node-sass (- )see https://github.com/yarnpkg/yarn/issues/4867) # Workaround need for node-sass (- )see https://github.com/yarnpkg/yarn/issues/4867)
RUN yarn install --ignore-engines && \ RUN yarn install --ignore-engines && \
......
...@@ -40,7 +40,7 @@ Please visit th Cesium web site: [cesium.app](https://cesium.app) ...@@ -40,7 +40,7 @@ Please visit th Cesium web site: [cesium.app](https://cesium.app)
* Manual installation: download then install the `.apk` from your smartphone; * Manual installation: download then install the `.apk` from your smartphone;
* [Play Store](https://play.google.com/store/apps/details?id=fr.duniter.cesium); * [Play Store](https://play.google.com/store/apps/details?id=fr.duniter.cesium);
- iOS - iOS
* Coming soon...; * [App Store](https://apps.apple.com/us/app/cesium-%C4%9F1/id1471028018);
...@@ -55,11 +55,14 @@ A [Development Guide](doc/development_guide.md) is available to learn : ...@@ -55,11 +55,14 @@ A [Development Guide](doc/development_guide.md) is available to learn :
- 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.
## Donate ## Donate
To help developers with donation, use the [Cesium Team Ğ1 account](https://g1.duniter.fr#/app/wot/CitdnuQgZ45tNFCagay7Wh12gwwHM8VLej1sWmfHWnQX/) (public key: `CitdnuQgZ45tNFCagay7Wh12gwwHM8VLej1sWmfHWnQX`) To help developers with donation, use the [Cesium Team Ğ1 account](https://demo.cesium.app#/app/wot/CitdnuQgZ45tNFCagay7Wh12gwwHM8VLej1sWmfHWnQX/) (public key: `CitdnuQgZ45tNFCagay7Wh12gwwHM8VLej1sWmfHWnQX`)
## License ## License
This software is distributed under [GNU AGPL-3.0](https://raw.github.com/duniter/cesium/master/LICENSE). This software is distributed under [GNU AGPL-3.0](https://raw.github.com/duniter/cesium/master/LICENSE).
\ No newline at end of file
Please read also our [privacy policy](./doc/privacy_policy.md).
\ No newline at end of file
...@@ -6,9 +6,10 @@ ...@@ -6,9 +6,10 @@
"fallbackLanguage": "en", "fallbackLanguage": "en",
"rememberMe": true, "rememberMe": true,
"showUDHistory": true, "showUDHistory": true,
"timeout": 40000, "timeout": 30000,
"timeWarningExpireMembership": 5184000, "timeWarningExpireMembership": 5184000,
"timeWarningExpire": 7776000, "timeWarningExpire": 7776000,
"minConsensusPeerCount": 10,
"keepAuthIdle": 600, "keepAuthIdle": 600,
"useLocalStorage": true, "useLocalStorage": true,
"useRelative": false, "useRelative": false,
...@@ -19,63 +20,69 @@ ...@@ -19,63 +20,69 @@
"helptip": { "helptip": {
"enable": true, "enable": true,
"installDocUrl": { "installDocUrl": {
"fr-FR": "https://duniter.org/fr/miner-des-blocs/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": "license/license_g1-en",
"fr-FR": "license/license_g1-fr-FR", "en-GB": "license/license_g1-en",
"eo-EO": "license/license_g1-eo-EO",
"es-ES": "license/license_g1-es-ES", "es-ES": "license/license_g1-es-ES",
"eo-EO": "license/license_g1-eo-EO" "fr-FR": "license/license_g1-fr-FR",
"it-IT": "license/license_g1-it-IT",
"pt-PT": "license/license_g1-pt-PT"
}, },
"feed": { "feed": {
"jsonFeed": { "jsonFeed": {
"fr-FR": "https://raw.githubusercontent.com/duniter/cesium/master/doc/feed/feed-fr.json", "ca": "https://raw.githubusercontent.com/duniter/cesium/master/doc/feed/1.1/feed-ca.json",
"en": "https://raw.githubusercontent.com/duniter/cesium/master/doc/feed/feed-en.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 "maxContentLength": 1300,
}, "maxAgeInMonths": 3,
"node": { "maxCount": 3
"host": "g1.duniter.org",
"port": 443
}, },
"fallbackNodes": [ "fallbackNodes": [
{
"host": "g1.cgeek.fr",
"port": 443
},
{
"host": "g1.librelois.fr",
"port": 443
},
{ {
"host": "g1.e-is.pro", "host": "g1.e-is.pro",
"port": 443 "port": 443
}, },
{ {
"host": "duniter.moul.re", "host": "vit.fdn.org",
"port": 443 "port": 443
}, },
{ {
"host": "g1.presles.fr", "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": [ "developers": [
{"name": "Benoit Lavenier", "pubkey": "38MEAZN68Pz1DTvT3tqgxx4yQP6snJCQhPqEFxbDk4aE"} {"name": "Benoit Lavenier", "pubkey": "38MEAZN68Pz1DTvT3tqgxx4yQP6snJCQhPqEFxbDk4aE"},
{"name": "Cédric Moreau", "pubkey": "2ny7YAdmzReQxAayyJZsyVYwYhVyax2thKcGknmQy5nQ"},
{"name": "Kapis", "pubkey": "24jaf8XhYZyDyUb7hMcy5qsanaHBC11AwPefcCQRBQNA"},
{"name": "Matograine", "pubkey": "CmFKubyqbmJWbhyH2eEPVSSs4H4NeXGDfrETzEnRFtPd"}
], ],
"plugins":{ "plugins":{
"es": { "es": {
...@@ -94,114 +101,19 @@ ...@@ -94,114 +101,19 @@
"port": 443 "port": 443
}, },
{ {
"host": "g1.data.mithril.re", "host": "g1.data.brussels.ovh",
"port": 443 "port": 443
} },
],
"notifications": {
"txSent": true,
"txReceived": true,
"certSent": true,
"certReceived": true
},
"defaultCountry": "France"
}
}
},
"default_fr": {
"cacheTimeMs": 300000,
"demo": false,
"readonly": false,
"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://demo.cesium.app/",
"helptip": {
"enable": true,
"installDocUrl": {
"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",
"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",
"port": 443
},
"fallbackNodes": [
{
"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
},
{
"host": "g1.le-sou.org",
"port": 443
},
{
"host": "duniter.normandie-libre.fr",
"port": 443
},
{
"host": "g1.duniter.org",
"port": 443
}
],
"plugins":{
"es": {
"enable": true,
"askEnable": true,
"useRemoteStorage": true,
"host": "g1.data.e-is.pro",
"port": 443,
"fallbackNodes": [
{ {
"host": "g1.data.presles.fr", "host": "g1.data.pini.fr",
"port": 443 "port": 443
}, },
{ {
"host": "g1.data.le-sou.org", "host": "g1.data.mithril.re",
"port": 443 "port": 443
}, },
{ {
"host": "g1.data.mithril.re", "host": "g1.data.e-is.pro",
"port": 443 "port": 443
} }
], ],
...@@ -222,19 +134,22 @@ ...@@ -222,19 +134,22 @@
"readonly": 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,
"httpsMode": false,
"shareBaseUrl": "https://g1-test.cesium.app", "shareBaseUrl": "https://g1-test.cesium.app",
"helptip": { "helptip": {
"enable": false, "enable": false,
"installDocUrl": { "installDocUrl": {
"fr-FR": "https://duniter.org/fr/miner-des-blocs/installer/", "fr-FR": "https://duniter.fr/wiki/doc/installer/",
"en": "https://duniter.org/en/wiki/duniter/install/" "en": "https://duniter.org/wiki/doc/install/"
} }
}, },
"node": { "node": {
...@@ -243,23 +158,25 @@ ...@@ -243,23 +158,25 @@
}, },
"fallbackNodes": [ "fallbackNodes": [
{ {
"host": "g1-test.cgeek.fr", "host": "gt.moul.re",
"port": 443 "port": 10902
}, },
{ {
"host": "gtest.jytou.fr", "host": "g1-test.duniter.org",
"port": 443
},
{
"host": "ts.gt.elo.tf",
"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.e-is.pro", "host": "g1-test.data.e-is.pro",
"port": 443, "port": 443,
"notifications": { "notifications": {
...@@ -291,18 +208,21 @@ ...@@ -291,18 +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": {
"fr-FR": "license/license_g1-fr-FR",
"en": "license/license_g1-en", "en": "license/license_g1-en",
"fr-FR": "license/license_g1-fr-FR",
"es-ES": "license/license_g1-es-ES", "es-ES": "license/license_g1-es-ES",
"eo-EO": "license/license_g1-eo-EO" "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": [{
...@@ -310,7 +230,7 @@ ...@@ -310,7 +230,7 @@
"port": 443 "port": 443
}, },
{ {
"host": "g1.duniter.fr", "host": "g1.e-is.pro",
"port": 443 "port": 443
} }
], ],
...@@ -366,13 +286,19 @@ ...@@ -366,13 +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", "es-ES": "license/license_g1-es-ES",
"eo-EO": "license/license_g1-eo-EO" "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",
......
<?xml version='1.0' encoding='utf-8'?> <?xml version='1.0' encoding='utf-8'?>
<widget android-versionCode="106070" id="fr.duniter.cesium" ios-CFBundleIdentifier="org.duniter.cesium" version="1.6.7" 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"> <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,13 +15,13 @@ ...@@ -15,13 +15,13 @@
<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="june:*" />
<allow-intent href="web+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="june:*" />
<allow-navigation href="web+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" />
...@@ -32,34 +32,31 @@ ...@@ -32,34 +32,31 @@
<preference name="KeyboardResizeMode" value="ionic" /> <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="android-targetSdkVersion" value="29" />
<preference name="StatusBarOverlaysWebView" value="false" /> <preference name="StatusBarOverlaysWebView" value="false" />
<preference name="StatusBarBackgroundColor" value="#000" /> <preference name="StatusBarBackgroundColor" value="#000" />
<preference name="StatusBarStyle" value="lightcontent" /> <preference name="StatusBarStyle" value="lightcontent" />
<preference name="loadUrlTimeoutValue" value="700000" /> <preference name="loadUrlTimeoutValue" value="700000" />
<allow-navigation href="*" /> <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">
<param name="android-package" onload="true" value="me.lockate.plugins.MiniSodium" />
</feature>
<feature name="Custom URL scheme"> <feature name="Custom URL scheme">
<param name="id" value="cordova-plugin-customurlscheme" /> <param name="id" value="cordova-plugin-customurlscheme" />
<param name="url" value="https://github.com/EddyVerbruggen/Custom-URL-scheme.git" /> <param name="url" value="https://github.com/EddyVerbruggen/Custom-URL-scheme.git" />
<variable name="URL_SCHEME" value="june" /> <variable name="URL_SCHEME" value="june" />
</feature> </feature>
<platform name="android"> <platform name="android">
<preference name="AndroidXEnabled" value="true" />
<preference name="AndroidLaunchMode" value="singleTask" /> <preference name="AndroidLaunchMode" value="singleTask" />
<preference name="android-minSdkVersion" value="16" /> <preference name="AndroidInsecureFileModeEnabled" value="true" />
<preference name="android-targetSdkVersion" value="29" /> <preference name="android-minSdkVersion" value="22" />
<hook src="scripts/hooks/before_prepare.js" type="before_prepare" /> <preference name="android-targetSdkVersion" value="33" />
<hook src="scripts/hooks/after_prepare.js" type="after_prepare" /> <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" />
...@@ -132,15 +129,6 @@ ...@@ -132,15 +129,6 @@
<false /> <false />
</config-file> </config-file>
</platform> </platform>
<platform name="osx">
<icon height="16" src="resources/osx/icon-16.png" width="16" />
<icon height="32" src="resources/osx/icon-32.png" width="32" />
<icon height="64" src="resources/osx/icon-64.png" width="64" />
<icon height="128" src="resources/osx/icon-128.png" width="128" />
<icon height="256" src="resources/osx/icon-256.png" width="256" />
<icon height="512" src="resources/osx/icon-512.png" width="512" />
<icon height="1024" src="resources/osx/icon-1024.png" width="1024" />
</platform>
<plugin name="cordova-plugin-camera" spec="^4.1.0"> <plugin name="cordova-plugin-camera" spec="^4.1.0">
<variable name="CAMERA_USAGE_DESCRIPTION" value="Add picture to the user profile" /> <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="PHOTOLIBRARY_USAGE_DESCRIPTION" value="Take a picture for the user profile" />
...@@ -149,17 +137,17 @@ ...@@ -149,17 +137,17 @@
<plugin name="cordova-plugin-ionic-webview" spec="^4.2.1"> <plugin name="cordova-plugin-ionic-webview" spec="^4.2.1">
<variable name="ANDROID_SUPPORT_ANNOTATIONS_VERSION" value="28.+" /> <variable name="ANDROID_SUPPORT_ANNOTATIONS_VERSION" value="28.+" />
</plugin> </plugin>
<plugin name="cordova-plugin-device" spec="^2.0.3" /> <plugin name="cordova-plugin-device" spec="^2.1.0" />
<plugin name="cordova-plugin-dialogs" spec="^2.0.2" /> <plugin name="cordova-plugin-dialogs" spec="^2.0.2" />
<plugin name="cordova-clipboard" spec="^1.3.0" /> <plugin name="cordova-clipboard" spec="^1.3.0" />
<plugin name="cordova-plugin-splashscreen" spec="^5.0.4" /> <plugin name="cordova-plugin-splashscreen" spec="^6.0.2" />
<plugin name="cordova-plugin-statusbar" spec="^2.4.3" /> <plugin name="cordova-plugin-statusbar" spec="^3.0.0" />
<plugin name="cordova-plugin-file" spec="^6.0.2" /> <plugin name="cordova-plugin-file" spec="^6.0.2" />
<plugin name="cordova-plugin-vibration" spec="^3.1.1" /> <plugin name="cordova-plugin-vibration" spec="^3.1.1" />
<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.4" />
<plugin name="cordova-plugin-x-toast" spec="^2.7.2" />
<plugin name="cordova-plugin-ionic-keyboard" spec="^2.2.0" /> <plugin name="cordova-plugin-ionic-keyboard" spec="^2.2.0" />
<plugin name="cordova-plugin-androidx-adapter" spec="^1.1.3" />
<plugin name="cordova-plugin-x-toast" spec="^2.7.3" />
<plugin name="phonegap-plugin-barcodescanner" spec="^8.1.0"> <plugin name="phonegap-plugin-barcodescanner" spec="^8.1.0">
<variable name="CAMERA_USAGE_DESCRIPTION" value="To scan QRCode" /> <variable name="CAMERA_USAGE_DESCRIPTION" value="To scan QRCode" />
<variable name="ANDROID_SUPPORT_V4_VERSION" value="28.+" /> <variable name="ANDROID_SUPPORT_V4_VERSION" value="28.+" />
...@@ -167,8 +155,7 @@ ...@@ -167,8 +155,7 @@
<plugin name="cordova-plugin-customurlscheme" spec="^5.0.2"> <plugin name="cordova-plugin-customurlscheme" spec="^5.0.2">
<variable name="URL_SCHEME" value="june" /> <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" /> <plugin name="ionic-plugin-keyboard" spec="^2.2.1" />
<plugin name="cordova-plugin-androidx" spec="^1.0.2" />
<engine name="ios" spec="^6.1.0" />
<engine name="osx" spec="^6.0.0" />
</widget> </widget>
Subproject commit 17788c85b43b1fa75287a80454349948068cc457
Subproject commit 2737fb8bc928e634cd86748567467ecee96791f5 Subproject commit 4b5e3aef13e93c507fbf24c8aef832ada65f64ef
...@@ -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):
......
...@@ -60,7 +60,7 @@ sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer ...@@ -60,7 +60,7 @@ sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
## Install Node JS ## Install Node JS
1. Install NVM (node.js version manager) : 1. Install NVM (node.js version manager) :
2. Install node.js v5 2. Install node.js 16
3. Install common node.js dependencies 3. Install common node.js dependencies
```bash ```bash
...@@ -70,7 +70,7 @@ export NVM_DIR="$HOME/.nvm" ...@@ -70,7 +70,7 @@ export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
# Node.js # Node.js
nvm install 6 nvm install 16
# node-pre-gyp # node-pre-gyp
npm install -g nw-gyp node-pre-gyp npm install -g nw-gyp node-pre-gyp
...@@ -82,7 +82,7 @@ npm install -g nw-gyp node-pre-gyp ...@@ -82,7 +82,7 @@ npm install -g nw-gyp node-pre-gyp
2. Install global dependencies (see [Development Guide](./development_guide.md) for versions to used) : 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 npm install -g yarn gulp cordova @ionic/cli@6.20.9
``` ```
3. Install project dependencies : 3. Install project dependencies :
......
...@@ -8,7 +8,7 @@ Cesium can be build as a simple web application, portable and runnable anywhere. ...@@ -8,7 +8,7 @@ Cesium can be build as a simple web application, portable and runnable anywhere.
Follow all the steps defined in the [Development guide](./development_guide.md). 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. 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 ## Build the unhosted web application
...@@ -23,4 +23,4 @@ After that you should be able to start the application using `npm start`or `yarn ...@@ -23,4 +23,4 @@ After that you should be able to start the application using `npm start`or `yarn
## Publishing to a web site ## Publishing to a web site
Uncompress the web archive, then open the `ìndex.html` file in your web browser. Decompress the web archive, then open the `ìndex.html` file in your web browser.
\ No newline at end of file \ No newline at end of file
...@@ -8,14 +8,15 @@ Cesium can be build as Web extension, for Mozilla Firefox extension (`.xpi`) and ...@@ -8,14 +8,15 @@ Cesium can be build as Web extension, for Mozilla Firefox extension (`.xpi`) and
Follow all the steps defined in the [Development guide](./development_guide.md). 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. After that you should be able to start the application using `yarn run start`, and to test it.
## Build the web extension ## Build the web extension
- To create a uncompressed extension, use : - To create an uncompressed extension, use :
```bash ```bash
cd cesium cd cesium
gulp build
gulp webExtCompile --release gulp webExtCompile --release
``` ```
...@@ -24,6 +25,7 @@ After that you should be able to start the application using `npm start`or `yarn ...@@ -24,6 +25,7 @@ After that you should be able to start the application using `npm start`or `yarn
- To create a portable and compressed ZIP extension : - To create a portable and compressed ZIP extension :
```bash ```bash
cd cesium cd cesium
gulp build
gulp webExtBuild --release gulp webExtBuild --release
``` ```
......
# Version v1.7.0
## All platforms
- [enh] Add mre languages : Italian, Deutsch, Catalan, Portuges
- [fix] Update default Duniter and Cesium+ Pod peers
\ No newline at end of file
...@@ -3,10 +3,16 @@ ...@@ -3,10 +3,16 @@
## In a post-it ## In a post-it
```bash ```bash
nvm use 12 # Install NodeJS v16
nvm use 16
npm install -g yarn
# Clone and compile from source
git clone git@git.duniter.org:clients/cesium-grp/cesium.git git clone git@git.duniter.org:clients/cesium-grp/cesium.git
cd cesium cd cesium
yarn yarn
# Run the App !
yarn run start yarn run start
``` ```
...@@ -22,7 +28,7 @@ To build Cesium, you will have to: ...@@ -22,7 +28,7 @@ To build Cesium, you will have to:
sudo apt-get install git wget curl unzip build-essential software-properties-common ruby ruby-dev ruby-ffi gcc make sudo apt-get install git wget curl unzip build-essential software-properties-common ruby ruby-dev ruby-ffi gcc make
``` ```
2. Installing node.js v12 : 2. Installing node.js v16 :
* First, install [nvm](https://github.com/nvm-sh/nvm) (Node Version Manager) : * First, install [nvm](https://github.com/nvm-sh/nvm) (Node Version Manager) :
```bash ```bash
...@@ -35,12 +41,12 @@ To build Cesium, you will have to: ...@@ -35,12 +41,12 @@ To build Cesium, you will have to:
* Configure nvm to use the expected version: (**WARNING**: upper version will NOT work !) * Configure nvm to use the expected version: (**WARNING**: upper version will NOT work !)
```bash ```bash
nvm install 12 nvm install 16
``` ```
3. Installing node build tools, as global dependencies: 3. Installing node build tools, as global dependencies:
```bash ```bash
npm install -g yarn gulp cordova@10.0.0 @ionic/cli web-ext npm install -g yarn gulp cordova @ionic/cli@6.20.9 web-ext
``` ```
### Get the source code and dependencies ### Get the source code and dependencies
...@@ -58,7 +64,7 @@ To build Cesium, you will have to: ...@@ -58,7 +64,7 @@ To build Cesium, you will have to:
3. Installing Cordova plugins (required to build Android and iOS artifacts): 3. Installing Cordova plugins (required to build Android and iOS artifacts):
```bash ```bash
export JAVA_HOME=/path/to/jdk-8 export JAVA_HOME=/path/to/jdk-11
export PATH=$JAVA_HOME/bin:$PATH export PATH=$JAVA_HOME/bin:$PATH
ionic cordova prepare ionic cordova prepare
``` ```
...@@ -67,7 +73,7 @@ To build Cesium, you will have to: ...@@ -67,7 +73,7 @@ To build Cesium, you will have to:
> As a reminder: check that your command line is well configured: > As a reminder: check that your command line is well configured:
> - You must place yourself in the directory of the application: `cd cesium` > - You must place yourself in the directory of the application: `cd cesium`
> - and working with NodeJs **v12**: `nvm use 12` (please check using the command `node --version`) > - and working with NodeJs **v16**: `nvm use 16` (please check using the command `node --version`)
### Prepare configuration file ### Prepare configuration file
......
## Introduction
This article is an introductory tutorial to the source code of the Cesium software.
This will allow you, through a succession of steps, to access the mastery of the tools and methods used daily by the developers of Cesium to create and modify the software.
At the end of this tutorial, you will be *able to modify the software*. And if you feel like it, you can even make a change and share it with the main code repository, so that it is officially integrated and available to users!
To your keyboards!
## Level I: Retrieve the source code
This first level consists of creating *your own version* of the software sources and retrieving this copy on your computer. You will produce:
* your own account on the [GitLab de Duniter](https://git.duniter.org)
* your own version of the software, your *fork*
* a local copy of the source code files from your *fork*
### Create a GitLab Duniter account
> If you already have a GitLab account, you can skip this step.
Go to [https://git.duniter.org](https://git.duniter.org/users/sign_in?redirect_to_referer=yes) (site in english).
In 'Register' Fill in the 3 proposed fields:
* Full name
* Username
* E-mail
* Password
You will probably receive a confirmation email that you will need to validate. Once this step is over, you should have an account on the GitLab Duniter.
### Fork the main repo
Go to https://git.duniter.org/clients/cesium-grp/cesium.
Click the "Fork" button at the top of the page (below the logo).
### Install Git
Installing Git depends on your operating system. Simply follow the instructions on : https://git-scm.com/
### Clone your fork
At this point, you are able to retrieve your version of the source code (your *fork*), so that you can work on it.
#### Open Git from the command line
To retrieve the source code, launch Git in console mode.
* On Linux and MacOS, simply open Terminal
* On Windows launch the *Git Bash* program :
<img src="../fr/img/6fc638dc0a22d88da7e84dbf0371e69747767f78.png" width="432" height="80">
#### Clone your fork from the command line
Go back to the GitHub webpage and find the "Clone or download" button: Click on it, you can then copy the clone URL by clicking on the suitcase icon.
All you have to do is go back to your Git console and enter:
git clone <paste the copied URL>
which gives **in my case**:
```
git clone git@git.duniter.org:blavenie/cesium.git
Cloning into 'cesium'...
(...)
Checking connectivity... done.
```
If you have come to a similar behavior, **great**, you now have the Cesium source code!
## Level II: Compiling and Launching in a Browser
This second level aims to obtain the basic tools to execute the source code, and verify its proper functioning. You will realize:
* installation of the JavaScript runtime *Node.js*
* the verification of the proper functioning of the source code *via* the launch of the application, in web mode.
If the application launches, you will already have a fully **functional** environment!
### Install Node.js
#### Under Linux / MacOS
Installing Node.js has become extremely simple for these OS: a tool allows you to install the version of Node.js you want, change it whenever you want and without conflict with a previous version: it is [nvm](https://github.com/creationix/nvm).
You can install nvm with the following command:
```bash
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bash
```
Close and reopen your terminal, as shown. Then, install Node.js (choose version 12):
```bash
nvm install 12
```
You will then have the latest version of node's 5.x branch.js ready to use.
##### Compilation tools
Install the necessary tools for compilation.
```bash
sudo apt-get install build-essential
```
(mac users https://appuals.com/how-to-fix-sudo-apt-get-command-not-found-on-macos/)
#### On Windows
For Windows, download version 6 available from the official website of Node.js: https://nodejs.org
Then launch the installer thus downloaded.
### Install Cesium Node.js modules
Cesium relies on third-party libraries to run called *dependencies*, such as compilation libraries (gulp, ionic, angularJS).
The fact that you cloned the sources is actually not enough to launch the application. We need to get the code of the dependencies to get all the executable code of the program. To do this, go back to the Git console and move to the cloned directory:
```bash
cd cesium
```
Then, start downloading and installing the Cesium modules using the command:
```bash
npm install -g yarn gulp cordova@10.0.0 @ionic/cli web-ext
```
Then for non-global dependencies:
```bash
yarn
```
> The installation process may take several minutes. Indeed, it is necessary to download all the dependencies of Cesium and even compile some of them.
If everything went well, you should get an end tree in the console, and the command prompt should have returned your hand:
```bash
yarn install v1.15.2
[1/4] Resolving packages...
(...)
$ node -e "try { require('fs').symlinkSync(require('path').resolve('node_modules/@bower_components'), 'www/lib', 'junction') } catch (e) { }"
Done in 0.82s.
```
> You may get `npm WARN messages [...] `. Nothing serious: as the name of the message suggests, it is simply a non-blocking warning for the rest of the events.
Then install the remaining dependencies (via bower):
```bash
npm run postinstall
```
### Install an IDE
To develop in NodeJS, you can use the IDE of your choice:
* For example Sublime Text (not free) : https://www.sublimetext.com/
* Other possibilities :
* VS Code (free).
* WebStorm (not free but very advanced operation).
### Install Chrome and/or Firefox
To debug Cesium javascript more easily, it is easier to use the Chrome browser
## Level III: Mastering the usual commands
This third level allows you to discover the few (five) commands that you will use all the time if you develop Cesium. You will learn:
* configure Cesium, including the Duniter node it will use (default);
* to launch Cesium in your browser;
### Configure Cesium
The default configuration of our environment is visible in the file 'app/config.json'. Several profiles are present: 'default', 'dev', etc.
```json
{
"default": {
"cacheTimeMs": 60000,
"fallbackLanguage": "en",
"rememberMe": false,
"showUDHistory": false,
"timeout": 10000,
"timeWarningExpireMembership": 5184000,
"timeWarningExpire": 7776000,
"useLocalStorage": true,
"useRelative": true,
"initPhase": false,
"expertMode": false,
"decimalCount": 4,
"helptip": {
"enable": true,
"installDocUrl": "https://github.com/duniter/duniter/blob/master/doc/install-a-node.md"
},
"node": {
"host": "g1.duniter.org",
"port": "443"
},
"plugins":{
"es": {
"enable": true,
"askEnable": false,
"host": "g1.data.duniter.fr",
"port": "443"
}
}
},
(...)
"dev": {
"cacheTimeMs": 60000,
"fallbackLanguage": "fr-FR",
"defaultLanguage": "fr-FR",
"rememberMe": true,
"showUDHistory": false,
"timeout": 6000,
"timeWarningExpireMembership": 5184000,
"timeWarningExpire": 7776000,
"useLocalStorage": true,
"useRelative": true,
"initPhase": false,
"expertMode": false,
"decimalCount": 2,
"helptip": {
"enable": true,
},
"node": {
"host": "localhost",
"port": "9600"
},
"plugins":{
"es": {
"enable": false
}
}
},
}
```
We will use the "dev" configuration, you may use your Duniter node.
Change the 'host' and 'port' values of the 'dev' configuration profile to match your Duniter node:
```json
"dev: {
...
"node": {
"host": "localhost",
"port": "9600"
},
...
```
Disable the plugin "es" (used for Cesium+) :
```json
"dev: {
...
"plugins":{
"es": {
"enable": false
}
}
...
```
To enable this configuration, now run the command:
```bash
gulp config --env dev
```
```bash
[17:32:34] Using gulpfile (...)/cesium/gulpfile.js
[17:32:34] Starting 'config'...
[17:32:34] Building `www/js/config.js` for `dev` environment...
[17:32:36] Finished 'config' after 10 μs
```
> This command will be restarted at the time of your changes to the `app/config` file.
Cesium is now configured to use your local Duniter node.
### Launch Cesium (web mode)
All you have to do is launch the application (in web mode) to find out if everything went well and that you are ready for the future.
Run the following command :
```bash
npm start
```
> Alternative : `ionic serve`
When complete, the command displays :
```bash
Running live reload server: http://localhost:35729
Watching: 0=www/**/*, 1=!www/lib/**/*
Running dev server: http://localhost:8100
Ionic server commands, enter:
restart or r to restart the client app from the root
goto or g and a url to have the app navigate to the given url
consolelogs or c to enable/disable console log output
serverlogs or s to enable/disable server log output
quit or q to shutdown the server and exit
ionic $
```
You can open a web browser at http://localhost:8100
You should see the Cesium homepage there.
Congratulations, you have an operational Cesium installation!
### Documentation
Cesium uses the Ionic framework, which has good documentation : http://ionicframework.com.
Visit this site to learn more.
## Level IV: Finding your way around the code
### Locate software layers
Open your IDE, and open the Cesium project.
Search and locate in the code:
* HTML templates that carry HMIs: www/templates
* controllers (JS): www/js/controllers
* services (JS): www/js/services
<img src="../fr/img/a5078db3abdf71c87f245e948ce94a181b0e0f37.png" width="690" height="369">
### Go further in the code
Cesium relies on AngularJS. Excellent documentation is available on the web.
__Note :__ The version of AngularJS used is a 1.x. The 2.x and above change completely and impose a complete redesign... This redesign is planned by 2019, in a version 2 of Cesium.
## Level V: Debugging
### On Chrome
#### Open The Source Explorer
Open the app in Chrome at http://localhost:8100
Open the developer tools:
* Menu `Option > More Tools > Developer Tools`
* or by the keyboard shortcuts: `Ctrl + Shift + i`
#### Debug a user's certification
Open the source explorer, and then locate the file `dist/dist_js/app/controllers/wot-controllers.js`.
Find the method `$scope.certify()`, and place a breakpoint there.
Navigate the Cesium app as follows:
* Click in the menu (on the left) `Annuaire`;
* Searches for a user and then visualizes their identity;
* In `Certification received`, click on the `Certify` button;
* Verify that the console stops at the breakpoint.
<img src="../fr/img/eca671a6d24b8e11566cfcca11b65e6c9c9c370c.png" width="690" height="223">
Discover the code by scrolling down the step-by-step action.
> Use the keys from `F9` to `F11`, to enter a method (F11), advance step by step (F10) or to the next breakpoint (F9), etc.
## See more ?!
You can now continue with the following levels. We will see how to modify a Cesium screen.
[See more here >>](./development_tutorial-02.md)
## Presentation
This article is the 2nd initiation tutorial to the Cesium software source code.
You will be able to understand the role of the different software layers,
by modifying them in order to improve a screen of Cesium.
## Prerequisites
Before doing this tutorial, you must:
- Know the functionalities of Cesium. If not, refer to [la vidéo de présentation générale des fonctionnalités](https://www.youtube.com/watch?v=FQzGIzJf9Nw&list=PLr7acQJbh5rzgkXOrCws2bELR8TNRIuv0&index=6) (RML7) and the one detailing the new features (RML8 - link to come)
- Have followed the 1st tutorial for setting up the environment [jusqu'au niveau III](https://github.com/duniter/cesium/blob/master/doc/fr/development_tutorial.md)
## Level VI: Display a missing currency parameter
__Objective :__ In this level, the objective is to display in the [`Currency`](http://g1.duniter.fr/#/app/currency/view/lg/) page the monetary parameter `stepMax`.
> As a reminder, `stepMax` is the maximum distance between a member and an applicant, so that the latter can enter the web of trust.
### Modify the HTML template
Open the template file `/www/templates/currency/items_parameters.html`.
Add a new item in the list of parameters, i.e. a new `<ion-item>` tag, below the other tags of the same name:
```html
(...)
<ion-item class="item-icon-left">
<i class="icon ion-steam"></i>
<span translate>CURRENCY.VIEW.STEP_MAX</span>
<span class="badge badge-stable">{{stepMax}}</span>
</ion-item>
```
If you refresh the `Currency` page of your browser, you should see the change:
<img src="../fr/img/19a637b1fa847aa5bbb18565737e9e5e28729221.jpg" width="431" height="97">
### Internationalizing a Label
The `CURRENCY.VIEW.STEP_MAX` string actually represents an **internationalized message key**.
We now need to add the translation of this key.
> The icon is configured simply by the `ion-stream` CSS class. To find out which icons are available, see
[ionicons.com](http://ionicons.com/)
Open the file `www/i18n/locale-fr-FR.json` and identify the element `CURRENCY` then `VIEW`.
Add the translation for our new key:
```json
"CURRENCY": {
(...)
"VIEW": {
"TITLE": "Monnaie",
(...)
"SIG_WINDOW": "Maximum delay a certification can wait<br/>before being expired for non-writing.",
"STEP_MAX": "Distance maximale dans la toile de confiance<br/>entre chaque membre et un nouvel entrant"
}
}
```
Don't forget **to add a comma** on the preceding line...
> Note: Cesium internationalization uses the AngularJS plugin [angular-translate](https://github.com/angular-translate/angular-translate).
> Depending on the case, it is possible to use HTML tags, like here the tag `<br/>`
Refresh your browser page: the key has been translated!
<img src="../fr/img/6bd04622dd2eb59f6d716ae9e2f114276e4ca35a.jpg" width="690" height="116">
Repeat the operation in the **other translation files** present in `www/i18n`:
```
(...)
"STEP_MAX": "Maximum distance between<br/>each WoT member and a newcomer"
}
```
### Add a dynamic variable
All that remains is to dynamically display the value of our `stepMax` parameter. We will use the `data-binding` functions that AngularJS allows.
> In AngularJS, it is a controller that manages the filling of values, typically from data obtained on the network.
Open the `CurrencyViewController` controller present in the file `www/js/controllers/currency-controllers.js`
This controller already makes a call to the Duniter API [`/blockchain/parameters`](http://cgeek.fr:9330/blockchain/parameters).
Identify the `load()` function.
Modify the return code of the `/blockchain/parameters` call, to store the `stepMax` value in the `$scope`:
```
function CurrencyViewController($scope, $q, $translate, $timeout, BMA, UIUtils, csSettings, csCurrency, csNetwork) {
// Ajout d'une propriété qui stockera la valeur de stepMax
// (On met ici la valeur par défaut)
$scope.stepMax = 0;
(...)
$scope.load = function() {
(...)
return $q.all([
// Get the currency parameters
BMA.node.blockchain.parameters()
.then(function(json){
$scope.currency = json.currency;
(...)
// Mise à jour de la valeur, à partir du résultat que renvoi le noeud Duniter
$scope.stepMax = json.stepMax;
}),
(...)
```
> The '$scope' object is used to manipulate values shared between the controller and the template.
> The value we put in `$scope.stepMax` is displayed thanks to the `{{stepMax}}` instruction that you put in the HTML template.
Your browser should now display:
<img src="../fr/img/3df8cbd2133ea9e9a28855f4b50413846fdf292c.jpg" width="519" height="85">
Congratulations, you now know how to display new values in Cesium screens!
## Level VII: Publish your changes
__Objective :__ Become an official contributor, by publishing your code!
### Make a `pull request`
If you have never used git on your current machine, you will first need to define
1. your email address: `git config --global user.email "your@email.xyz"`
2. your first and last name: `git config --global user.name "First name NAME"`
The change you just made actually corresponds to [ticket #209](https://git.duniter.org/clients/cesium-grp/cesium/issues/209).
To add your modification to it, and thus **become an official contributor** of Cesium:
* Type the command `git add` followed by the names of the files you modified or, more simply, `git add *` to add all modified files to the commit.
* Then do a `git commit` to commit your code;
* Finally, do a `git push` to push to your GitHub repo.
* In GitLab, log in to your account;
* Open your `Cesium` repository via the "Projects" > "Your projects" menu that you will find at the top left, in the navigation bar.
* In the left menu, go to "Merge requests", and click on the "New merge request" button
* Most of the fields are already pre-populated, so all you have to do is select the source branch (if you haven't changed your branch via the git command line, it's "master")
* Click on `Compare branches and continue`
* In the title the reference to the ticket: `#209`
Your contribution is now visible to Cesium developers, who will be able to integrate your code more easily.
> _Note :_ Since RML7, this ticket has been closed. You can therefore continue this level, by adding other missing variables (see next paragraph), then
> publish your changes: the `pull request` process remains the same.
## Niveau VIII : Free modification
__Objective :__ Now it's up to you to add the missing information that seems interesting.
### Add new variables
To get your hands on the changes in Cesium, you can add other missing currency settings.
For example, among those concerning the _BlockChain_: `xpercent`, `percentRot`, `blocksRot`...
You can find their definition in the [Duniter protocol documentation](https://github.com/duniter/duniter/blob/master/doc/Protocol.md#protocol-parameters).
> _Tip:_ to separate the different parts of the screen, add a separator, i.e. a `<div>` tag with the CSS class `item item-divider`:
```html
<div class="item item-divider">
<span translate>CURRENCY.VIEW.BLOCKCHAIN_DIVIDER</span>
</div>
<!-- paramètres relatifs à la blockchain -->
```
## See more ?!
You can now continue with the following levels. We will see how to compile and deploy Cesium on Android, then how to add a plugin, and even add a dynamic graph!
[See more here >>](./development_tutorial-03-android.md)
\ No newline at end of file
## Introduction
This article is a tutorial to develop on Cesium, to compile and test the application on Android.
## Prerequisites
Before doing this tutorial, you must:
- Have followed the tutorials on Cesium [up to level VIII] (./development_tutorial-02.md)
## Level IX
### Objective
The objective here is to install the basic tools to compile and verify its proper functioning under Android. You will achieve: </p>
- installation of `JDK`
- installation of `Android Studio` software
- installation of `KVM` emulator
- installation of `NDK Android` (optional - will be needed later)
### Installing software
#### Installing JDK
The JDK or _Java Development Kit_
You can download it from [Oracle](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html).
<img src="../fr/img/fef4f4dfe7c2168cb27c9e7f5e399fd547ce774a.png" width="400">
Depending on your operating system, download corresponding.
Then install the file as normal, following the guided steps.
#### Install Android Studio
You can find all files at [AndroidStudio-Downloads](https://developer.android.com/studio/index.html#downloads)
For Windows download file without Android SDK:
<img src="../fr/img/3b8fa2f5c0465b13ae5ce74d49702e0c9f027866.png" width="690" height="237">
##### For Linux
All you need to do is unzip the ZIP file, open a terminal in that folder, and type the command:
```bash
./bin/studio.sh
```
##### For Windows and Mac OS
Install the executable you downloaded earlier.
##### All machines combined
At the end of the installation or at the first launch, Android Studio will tell you that you do not have an SDK and will offer to install it:
- If you have already installed it, you can indicate where it is.
- Otherwise install the version it offers.
#### Install NDK (optional)
> The NDK is used for executing code under C++, in particular the NaCL cryptography library.
> This step is currently optional (for experts only).
You can download it at: [this site](https://developer.android.com/ndk/downloads/index.html)
Warning: do not install version 12 of the NDK. It's not stable yet.
Once again downloaded the correct version, unzip the file next to your SDK.
Under Android Studio go to the menu `File > Project Structure...`
<img src="../fr/img/04e64b769cbd45b9d275cd5f81002a399a1a7684.png" width="300">
A window like this should open:
<img src="../fr/img/ceb75301172038e75f5c43b328dd7febd7bedc7e.png" width="450">
Enter the NDK installation path.
#### Install KVM emulator (optional)
For Linux / Debian only:
```bash
sudo apt-get install kvm qemu-kvm libvirt-bin bridge-utils virt-manager
sudo groupadd libvirtd
sudo adduser `id -un` libvirtd
```
##### In case of problem...
If you get this error :
```
Cannot run program "/home/eis/android-sdks/build-tools/21.1.2/aapt": error=2, Aucun fichier ou dossier de ce type
```
Install two additional compatibility libraries (solution from [this post](http://stackoverflow.com/questions/22701405/aapt-ioexception-error-2-no-such-file-or-directory-why-cant-i-build-my-grad)) :
```bash
sudo apt-get install lib32stdc++6 lib32z1
```
## Level X: Launching the application in Android Studio
### Project Setup
Go to the folder in which you installed cesium using the `cd` command followed by the path to the appropriate directory.
Check that you are using the version of NodeJs that Cesium needs using the command
```
node --version
```
If you are not on a v6, use the command
```
nvm use 12
```
You can now launch the installation of the Cesium project for Android:
```
ionic cordova prepare
```
Normally, this command should initialize (among other things) a `platforms/android` directory.
> This command may take a moment to complete.
Now run the build for Android:
```
ionic build android
```
Now launch Android Studio. You should arrive at this window:
<img src="../fr/img/33266d44fdbfd6c8b44e46a3664edafacaf0a316.png" width="500">
Select "Open an existing Android Studio project" and point the folder to `cesium/platforms/android`.
### Launch the application
To be able to launch an emulator, we will have to create one.
To do this, go to `Tools` > `AVD Manager`, or click on the following icon:
<img src="../fr/img/46e959d1e616e34972a41f4d120a1d4f5beb0955.png" width="690" height="42">
A window will open and offer you to create a "Virtual Device" follow the software.
If you have an Android phone you can put it in developer mode and plug it in if you want to see the app on your phone.
Then, once the emulator is created, you can click the "Play" button (<img src="../fr/img/70b2ce88a5e7aa5754f6a771cf5efed3c639a27b.png" width="46" height="44">) to launch the application.
You can also use the icon (<img src="../fr/img/b7c419b33a43f6a43c5b756074ee0c199072f7d1.png" width="40" height="44">) to launch the application in debug mode.
Android Studio will ask you which device you want to launch the app on, select emulator or phone and leave it alone.
## Level XI: Application launched by `ionic`
You can now use the `ionic` tool directly:
- Either to launch your application on a connected phone:
```bash
ionic run android
```
- Either to launch it on an emulator:
```bash
ionic emulate android
```
## The following ?!
You can now continue with the following levels. We will see there how to add a plugin to Cesium.
[See more here >>](../fr/development_tutorial-04-add_plugin.md)
\ No newline at end of file
{
"version": "https://jsonfeed.org/version/1.1",
"title": "News",
"user_comment": "Ce fichier redirige vers le forum Duniter (via 'next_url')",
"feed_url": "https://raw.githubusercontent.com/duniter/cesium/master/doc/feed/1.1/feed-en-GB.json",
"home_page_url": "https://forum.duniter.org/t/new-version-of-cesium-en/11460",
"next_url": "https://forum.duniter.org/t/new-version-of-cesium-en/11460.json"
}