Commit 181b1628 authored by Benoit Lavenier's avatar Benoit Lavenier

Merge from branche: with-ES-store (v0.1.6)

parent 2c20b7da
......@@ -12,4 +12,8 @@ pom.xml
www/css/ionic.app.css
www/css/ionic.app.min.css
www/js/config.js
\ No newline at end of file
www/js/config.jswww/lib/angular-animate
www/lib/angular-messages
www/lib/angular-sanitize
www/lib/angular-ui-router
www/lib/waves
......@@ -36,9 +36,17 @@ To contribute and compile cesium, you will have to:
gulp & ionic serve
```
- To build on another environment:
### Manage configuration
- To build on another environment :
- Add your environment config into `app/config.json`
- Run compitaltion using option `--env`:
```
gulp default --env <your_env_name>
```
### Best pratices
Cesium could be run on phone devices. Please read [performance tips on AgularJS + Ionic ](http://julienrenaux.fr/2015/08/24/ultimate-angularjs-and-ionic-performance-cheat-sheet/)
before starting to contribute.
Read also [Angular performance for large applicatoins](https://www.airpair.com/angularjs/posts/angularjs-performance-large-applications).
{
"default": {
"APP_CONFIG": {
"UCOIN_NODE": "cgeek.fr:9330"
"DUNITER_NODE": "cgeek.fr:9330",
"NEW_ISSUE_LINK": "https://github.com/duniter/cesium/issues/new?labels=bug",
"TIMEOUT": 4000,
"DEBUG": false,
"NATIVE_TRANSITION": false
}
},
"duniter-fr": {
"APP_CONFIG": {
"UCOIN_NODE": "test-net.duniter.fr:9201"
"DUNITER_NODE": "cgeek.fr:9330",
"NEW_ISSUE_LINK": "https://github.com/duniter/cesium/issues/new?labels=bug",
"TIMEOUT": 4000,
"DEBUG": false,
"NATIVE_TRANSITION": false
}
},
"android": {
"APP_CONFIG": {
"DUNITER_NODE": "cgeek.fr:9330",
"NEW_ISSUE_LINK": "https://github.com/duniter/cesium/issues/new?labels=bug",
"TIMEOUT": 6000,
"DEBUG": false,
"NATIVE_TRANSITION": true
}
},
"dev": {
"APP_CONFIG": {
"DUNITER_NODE": "localhost:9201",
"TIMEOUT": 4000,
"DEBUG": false,
"NATIVE_TRANSITION": true
}
}
}
......@@ -2,12 +2,15 @@
"name": "Cesium",
"private": "true",
"devDependencies": {
"ionic": "driftyco/ionic-bower#1.2.4",
"ionic-material": "0.4.2",
"js-nacl": "0.6.0"
"ionic": "driftyco/ionic-bower#1.3.1",
"ionic-material": "0.4.2"
},
"dependencies": {
"angular-messages": "1.3.13",
"robotodraft": "1.1.0"
"robotodraft": "1.1.0",
"angular-moment": "^0.10.3",
"angular-animate": "1.4.3",
"angular-sanitize": "1.5.3",
"angular": "1.5.3"
}
}
......@@ -12,10 +12,12 @@ var ngConstant = require('gulp-ng-constant');
var fs = require("fs");
var argv = require('yargs').argv;
var header = require('gulp-header');
var removeCode = require('gulp-remove-code');
var paths = {
sass: ['./scss/**/*.scss'],
config: ['./app/config.json']
config: ['./app/config.json'],
templates: ['./www/templates/**/*.html']
};
gulp.task('default', ['sass', 'config']);
......@@ -32,9 +34,18 @@ gulp.task('sass', function(done) {
.on('end', done);
});
// TODO : enable to have a special buidl for phone
//gulp.task('removeCode', function(done) {
// gulp.src('./www/templates/**/*.html')
// .pipe(removeCode({ production: true }))
// .pipe(gulp.dest('./dist/templates'))
// .on('end', done);
//});
gulp.task('watch', function() {
gulp.watch(paths.sass, ['sass']);
//gulp.watch(paths.config, ['config']);
//gulp.watch(paths.templates, ['removeCode']);
});
gulp.task('install', ['git-check'], function() {
......
#!/usr/bin/env node
"use strict";
var path = require("path");
var ionic_minify_1 = require("ionic-minify");
var config = require("../minify-conf.json");
var minify = config.alwaysRun;
var cmd = process.env.CORDOVA_CMDLINE;
var rootDir = process.argv[2];
var platforms = process.env.CORDOVA_PLATFORMS.split(',');
var platformPath = path.join(rootDir, "platforms");
if (cmd.indexOf("--release") > -1 || cmd.indexOf("--minify") > -1) {
if (cmd.indexOf("--release") > -1) {
console.log("WARN: The use of the --release flag is deprecated!! Use --minify instead!");
}
minify = true;
}
config.showErrStack = (config.showErrStack || false);
config.jsOptions.fromString = true;
if (minify === true) {
var ionicMinify = new ionic_minify_1.Minifier(config, platforms, platformPath);
console.log("Starting minifying your files...");
ionicMinify.run();
}
{
"foldersToProcess": [
"js",
"css",
"img"
],
"jpgOptions":{
"quality": 50
},
"jsOptions": {
"compress": {
"drop_console": true
}
},
"cssOptions": {
"keepSpecialComments": 0
},
"alwaysRun": true,
"showErrStack": false
}
......@@ -8,5 +8,13 @@
"gulpStartupTasks": [
"sass",
"watch"
],
"defaultBrowser": "chrome",
"browsers": [
{
"platform": "android",
"browser": "crosswalk",
"version": "12.41.296.5"
}
]
}
}
\ No newline at end of file
{
"name": "cesium",
"version": "0.0.1",
"description": "A webapp client for uCoin network",
"version": "0.1.6",
"description": "A webapp client for Duniter network",
"dependencies": {
"bower": "^1.7.9",
"gulp": "^3.9.1",
"gulp-concat": "^2.2.0",
"gulp-minify-css": "^0.3.0",
"gulp-rename": "^1.2.0",
"gulp-sass": "^2.2.0",
"ionic-native-transitions": "^1.0.0-rc10",
"node-sass": "^3.3.3"
},
"devDependencies": {
"bower": "^1.3.3",
"bower": "^1.7.3",
"gulp-header": "^1.7.1",
"gulp-ng-constant": "^1.1.0",
"gulp-remove-code": "^1.0.2",
"gulp-util": "^2.2.14",
"ionic-minify": "^2.0.8",
"shelljs": "^0.3.0",
......@@ -25,10 +26,17 @@
"cordova-plugin-splashscreen",
"cordova-plugin-console",
"ionic-plugin-keyboard",
"cordova-plugin-device"
"cordova-plugin-device",
"com.telerik.plugins.nativepagetransitions",
"org.apache.cordova.statusbar",
"org.apache.cordova.camera",
{
"locator": "https://github.com/phonegap/phonegap-plugin-barcodescanner.git",
"id": "phonegap-plugin-barcodescanner"
}
],
"cordovaPlatforms": [
"android",
"ios"
"ios",
"android"
]
}
This diff is collapsed.
This diff is collapsed.
......@@ -33,11 +33,25 @@
color: #fff;
}
#home h4 a {
color: inherit;
}
#home button, #home a {
margin-top: 20px;
height: 40px;
}
#home .footer h1.title {
padding-top: 0;
font-size: 18px;
}
#home .build-date {
font-size: 14px !important;
color: grey !important;
}
.bar .button.button-clear {
font-size: 12px !important;
font-weight: 300 !important;
......@@ -50,13 +64,16 @@
min-height: 30px;
}
.popup-buttons .button {
padding: 0 2px !important; /*Need for 'cancel' button */
}
#transfer .list .item {
border-bottom: solid 1px #ccc;
}
#wallet .item h4 .comment{
#wallet .item .comment{
font-style: italic !important;
}
......@@ -64,6 +81,10 @@
font-size: 11px ! important;
}
#wallet .list .item span {
display: inline;
}
.list .item-input {
border-bottom: solid 1px #ccc;
}
......@@ -87,6 +108,15 @@
height: 5px;
}
#menu .footer h1.title {
font-size: 16px;
}
#menu .footer h1 .buildDate {
font-size: 12px ! important;
color: grey !important;
}
.menu .avatar {
height: 88px;
width: 88px;
......@@ -115,6 +145,10 @@
min-width: 130px !important;
}
.item.item-icon-right .badge{
right: 43px;
}
/*.button {*/
/*height: 50px !important;*/
/*font-size: 18px !important;*/
......@@ -211,7 +245,22 @@
top: 14px;
}
.peer-item:hover .badge{
color: #fff !important;
}
.item-thumbnail-left-padding {
padding-left: 106px;
}
#wallet .item-divider .badge {
top:16px !important;
}
#certifications .item-divider .badge {
top:16px !important;
}
#settings .item-divider {
background-color: #f5f5f5;
}
{
"COMMON": {
"APP_NAME": "Cesium",
"APP_VERSION": "v{{version}}",
"APP_BUILD_DATE": "- build {{buildDate}}",
"PUBKEY": "Public key",
"BTN_OK": "OK",
"BTN_SEND": "Send",
"BTN_SHOW": "Show",
"BTN_SHOW_PUBKEY": "Show key",
"BTN_RELATIVE_UNIT": "Use relative unit",
......@@ -16,7 +19,10 @@
"LOADING": "Loading...",
"FROM": "From",
"TO": "To",
"COPY": "Copy"
"COPY": "Copy",
"LANGUAGE": "Language",
"BTN_PICTURE_DELETE": "Delete",
"BTN_PICTURE_FAVORISE": "Default"
},
"SYSTEM": {
"PICTURE_CHOOSE_TYPE": "Choose picture source :",
......@@ -28,17 +34,39 @@
"HOME": "Home",
"REGISTRY": "Registry",
"MARKET": "Market place",
"CURRENCY": "Currency",
"CURRENCIES": "Currencies",
"ACCOUNT": "My Account",
"TRANSFER": "Pay",
"SCAN": "Scan",
"SETTINGS": "Settings"
},
"HOME": {
"TITLE": "Duniter",
"WELCOME": "Duniter",
"MESSAGE": "Welcome to Cesium App for Duniter !<br/>See your Duniter wallets in real time.",
"TITLE": "Cesium",
"WELCOME": "",
"MESSAGE": "Welcome to Cesium Application !<br/>Watch your <a href=\"http://duniter.org\" target=\"_blank\">Duniter</a> wallets in real time.",
"MESSAGE_SHORT": "Watch your <a href=\"http://duniter.org\" target=\"_blank\">Duniter</a> wallets<br/>in real time !",
"BTN_REGISTRY": "Registry",
"BTN_MARKET": "Market place",
"BTN_CURRENCIES": "Explore currencies"
"BTN_CURRENCIES": "Explore currencies",
"BTN_CURRENCY": "Explore currency",
"DEV_WARNING": "Warning",
"DEV_WARNING_MESSAGE": "This application is still in active development.<br/>Please report us all issues !",
"DEV_WARNING_MESSAGE_SHORT": "This App is still unstable (still under development).",
"REPORT_ISSUE": "Report an issue"
},
"SETTINGS": {
"TITLE": "Setting",
"NETWORK_SETTINGS": "Network",
"NODE": "Node address",
"NODE_HELP": "server.domain.com:port",
"USE_LOCAL_STORAGE": "Enable local storage",
"AUTHENTICATION_SETTINGS": "Authentication",
"REMEMBER_ME": "Remember me",
"POPUP_NODE": {
"TITLE" : "Duniter Node",
"HELP" : "Set the address of the node to use:"
}
},
"CURRENCY": {
"SELECT": {
......@@ -74,8 +102,15 @@
"SEARCH_HELP": "Search (member or public key)",
"REGISTERED_SINCE": "Registered since ",
"REGISTERED_SINCE_BLOCK": "Registered since block #",
"NO_CERTIFICATIONS": "No certification",
"CERTIFICATIONS_RECEIVED": "Received certifications",
"CERTIFICATIONS_RECEIVED_BY": "Received certifications for {{uid}}",
"EXPIRE_IN": "Expires",
"BTN_SEND_MONEY": "Send money",
"BTN_CERTIFY": "Certify",
"LOOKUP": {
"TITLE": "Registry"
},
"MODAL": {
"TITLE": "Search"
}
......@@ -95,6 +130,9 @@
"NO_TX": "No transaction",
"EVENTS": "Events",
"WAITING_MEMBERSHIP": "Membership sent. Waiting validation.",
"WAITING_CERTIFICATIONS": "You need {{needCertificationCount}} certification(s) to become a member",
"WILL_MISSING_CERTIFICATIONS": "You will missing certifications soon",
"CERTIFICATION_COUNT": "Certifications count",
"BTN_SEND_MONEY": "Send money",
"BTN_MEMBERSHIP_IN": "Register as member",
"BTN_MEMBERSHIP_RENEW": "Renew membership",
......@@ -124,116 +162,51 @@
"TO": "To",
"AMOUNT": "Amount",
"AMOUNT_HELP": "Amount",
"COMMENTS": "Reference",
"COMMENTS_HELP": "Reference (optional)",
"COMMENT": "Reference",
"COMMENT_HELP": "Reference (optional)",
"BTN_SEND": "Send",
"BTN_RELATIVE_UNIT": "Amount in relative unit ?",
"MODAL": {
"TITLE": "Transfer"
}
},
"MARKET": {
"COMMON": {
"CATEGORY": "Category",
"CATEGORIES": "Categories",
"ISSUER": "Issuer",
"PRICE": "Price",
"BTN_BUY": "Buy"
},
"SEARCH": {
"TITLE": "Market",
"SEARCH_HELP": "Search (car, store)",
"BTN_ADD": "New",
"BTN_OPTIONS": "Advanced search",
"BTN_AROUND_ME": "Around me",
"LOCATION": "Location",
"LOCATION_HELP": "City",
"LAST_RECORDS": "Last records:",
"RESULTS": "Results:"
},
"VIEW": {
"TITLE": ""
},
"EDIT": {
"TITLE": "Edit",
"BTN_ADD_PICTURES": "Add pictures",
"RECORD_TITLE": "Title",
"RECORD_TITLE_HELP": "Title",
"RECORD_DESCRIPTION": "Description",
"RECORD_DESCRIPTION_HELP": "Description",
"RECORD_LOCATION": "Localization",
"RECORD_LOCATION_HELP": "Address, City"
},
"ERROR": {
"LOAD_CATEGORY_FAILED": "Error while loading market categories",
"LOAD_RECORD_FAILED": "Error while loading record."
}
},
"REGISTRY": {
"COMMON": {
"CATEGORY": "Category",
"CATEGORIES": "Categories",
"ISSUER": "Issuer"
},
"SEARCH": {
"TITLE": "Registry",
"SEARCH_HELP": "Search (name, pseudo, public key...)",
"BTN_ADD": "New",
"BTN_OPTIONS": "Search tool",
"LOCATION": "Location",
"LOCATION_HELP": "City",
"LAST_RECORDS": "Last records:",
"RESULTS": "Results:"
},
"VIEW": {
"TITLE": "Annonce"
},
"NEW": {
"TITLE": "New",
"SELECT_TYPE": "Choose type:",
"TYPE_PARTICULAR": "Private individual",
"TYPE_COMPANY": "Company, organisation or institution"
},
"EDIT": {
"TITLE": "Edit",
"BTN_ADD_PICTURES": "Add pictures",
"RECORD_TITLE": "Name",
"RECORD_TITLE_HELP": "Name",
"RECORD_DESCRIPTION": "About me",
"RECORD_DESCRIPTION_HELP": "Something about me",
"RECORD_PRICE": "Price",
"RECORD_PRICE_HELP": "Price (optional)",
"RECORD_LOCATION": "Localization",
"RECORD_LOCATION_HELP": "Localization (address, city)",
"RECORD_SOCIAL_NETWORKS": "Social networks",
"RECORD_PUBKEY": "Public key"
}
},
"ERROR": {
"POPUP_TITLE": "Error",
"UNKNOWN_ERROR": "Unknown error",
"CRYPTO_UNKNOWN_ERROR": "Your browser is not compatible with cryptographic features.",
"FIELD_REQUIRED": "This field is required.",
"FIELD_TOO_SHORT": "This field is too short.",
"PASSWORD_NOT_CONFIRMED": "Must match previous password",
"SEND_IDENTITY_FAILED": "Error while trying to register",
"SEND_CERTIFICATION_FAILED": "Could not certify identity",
"LOGIN_FAILED": "Error while sign in",
"LOAD_IDENTITY_FAILED": "Could not load identity",
"SEND_MEMBERSHIP_IN_FAILED": "Error while registering as member",
"SEND_MEMBERSHIP_OUT_FAILED": "Error while registering out",
"REFRESH_WALLET_DATA": "Could not refresh wallet",
"GET_CURRENCY_PARAMETER": "Could not get currency parameters",
"GET_CURRENCIES_FAILED": "Could not load currencies",
"GET_CURRENCY_FAILED": "Could not load currency",
"SEND_TX_FAILED": "Could not send transaction",
"FIELD_TOO_SHORT": "This field value is too short.",
"FIELD_TOO_LONG": "This field value is exeeding max length.",
"FIELD_ACCENT": "Accent character not allowed",
"PASSWORD_NOT_CONFIRMED": "Must match previous password.",
"SEND_IDENTITY_FAILED": "Error while trying to register.",
"SEND_CERTIFICATION_FAILED": "Could not certify identity.",
"LOGIN_FAILED": "Error while sign in.",
"LOAD_IDENTITY_FAILED": "Could not load identity.",
"LOAD_REQUIREMENTS_FAILED": "Could not load identity requirements.",
"SEND_MEMBERSHIP_IN_FAILED": "Error while registering as member.",
"SEND_MEMBERSHIP_OUT_FAILED": "Error while registering out.",
"REFRESH_WALLET_DATA": "Could not refresh wallet.",
"GET_CURRENCY_PARAMETER": "Could not get currency parameters.",
"GET_CURRENCIES_FAILED": "Unable to load currencies. Please retry later.",
"GET_CURRENCY_FAILED": "Could not load currency.",
"SEND_TX_FAILED": "Could not send transaction.",
"ALL_SOURCES_USED": "Please wait the next block computation (All transaction sources has been used).",
"NOT_ENOUGH_SOURCES": "Please wait the next block computation (Not enough transaction sources).",
"ACCOUNT_CREATION_FAILED": "Error while creating your member account",
"LOAD_WALLET_DATA_ERROR": "Error while loading wallet data",
"ACCOUNT_CREATION_FAILED": "Error while creating your member account.",
"RESTORE_WALLET_DATA_ERROR": "Error while reloading settings from local storage",
"LOAD_WALLET_DATA_ERROR": "Error while loading wallet data.",
"COPY_CLIPBOARD_FAILED": "Could not copy to clipboard",
"TAKE_PICTURE_FAILED": "Could not get picture",
"SCAN_FAILED": "Could not scan QR code"
"TAKE_PICTURE_FAILED": "Could not get picture.",
"SCAN_FAILED": "Could not scan QR code.",
"WOT_LOOKUP_FAILED": "Search failed.",
"LOAD_NODE_DATA_FAILED": "Duniter Node not accessible. Please retry later.",
"NEED_LOGIN_FIRST": "Please sign in first.",
"AMOUNT_REQUIRED": "Amount is required.",
"AMOUNT_NEGATIVE": "Negative amount not allowed.",
"NOT_ENOUGH_CREDIT": "Not enough credit.",
"INVALID_NODE_SUMMARY": "Unreachable node or invalid address",
"INVALID_COMMENT": "Field 'reference' has a bad format."
},
"INFO": {
"POPUP_TITLE": "Information",
......
This diff is collapsed.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
<title></title>
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
<title></title>
<link href="lib/ionic/css/ionic.css" rel="stylesheet">
<link href="lib/ionic/css/ionic.css" rel="stylesheet">
<!-- compiled css output -->
<link href="css/ionic.app.css" rel="stylesheet">
<!-- compiled css output -->
<link href="css/ionic.app.css" rel="stylesheet">
<link href="css/style.css" rel="stylesheet">
<link href="css/style.css" rel="stylesheet">
<!-- ionic/angularjs js -->
<script src="lib/ionic/js/ionic.bundle.js"></script>
<script src="lib/ionic/js/ionic.material.min.js"></script>
<script src="lib/ionic/js/angular/angular-resource.min.js"></script>
<script src="lib/ionic/js/angular/angular-translate.min.js"></script>
<script src="lib/ionic/js/angular/angular-translate-loader-static-files.min.js"></script>
<script src="lib/ionic/js/angular/angular-messages.min.js"></script>
<script src="js/vendor/moment.min.js"></script>
<script src="js/vendor/numeral.js"></script>
<script src="js/vendor/socket-io.js"></script>
<script src="js/vendor/underscore.js"></script>
<!-- vendor js -->
<script src="js/vendor/moment.min.js"></script>
<script src="js/vendor/moment.fr.js"></script>
<script src="js/vendor/numeral.js"></script>
<script src="js/vendor/socket-io.js"></script>
<script src="js/vendor/underscore.js"></script>
<!-- ionic/angularjs js -->
<script src="lib/ionic/js/ionic.bundle.js"></script>
<script src="lib/ionic/js/ionic.material.min.js"></script>
<script src="lib/ionic/js/ionic-native-transitions.min.js"></script>
<script src="lib/ionic/js/angular/angular-resource.min.js"></script>
<script src="lib/ionic/js/angular/angular-translate.min.js"></script>
<script src="lib/ionic/js/angular/angular-translate-loader-static-files.min.js"></script>
<script src="lib/ionic/js/angular/angular-messages.min.js"></script>
<script src="lib/ionic/js/angular/angular-moment.min.js"></script>
<!-- crypto libs -->
<script src="js/vendor/scrypt-em.js"></script>
<script src="js/vendor/nacl_factory.js"></script>
<script src="js/vendor/base58.js"></script>
<script src="js/vendor/base64.js"></script>
<!-- crypto libs -->
<script src="js/vendor/scrypt-em.js"></script>
<script src="js/vendor/nacl_factory.js"></script>
<script src="js/vendor/base58.js"></script>
<script src="js/vendor/base64.js"></script>
<!-- cordova script (this will be a 404 during development) -->
<script src="js/vendor/ng-cordova.min.js"></script>
<script src="cordova.js"></script>
<!-- cordova script (this will be a 404 during development) -->
<script src="js/vendor/ng-cordova.min.js"></script>
<script src="cordova.js"></script>
<!-- config -->
<script src="js/config.js"></script>
<!-- config -->
<script src="js/config.js"></script>
<!-- services -->
<script src="js/services/crypto-services.js"></script>
<script src="js/services/utils-services.js"></script>
<script src="js/services/wallet-services.js"></script>
<script src="js/services/bma-services.js"></script>
<script src="js/services.js"></script>
<!-- services -->
<script src="js/services/crypto-services.js"></script>
<script src="js/services/utils-services.js"></script>
<script src="js/services/device-services.js"></script>
<script src="js/services/wallet-services.js"></script>
<script src="js/services/bma-services.js"></script>
<script src="js/services.js"></script>
<!-- entities -->
<script src="js/entity/peer.js"></script>
<!-- entities -->
<script src="js/entity/peer.js"></script>
<!-- controllers -->
<script src="js/controllers/app-controllers.js"></script>
<script src="js/controllers/home-controllers.js"></script>
<script src="js/controllers/wot-controllers.js"></script>
<script src="js/controllers/peer-controllers.js"></script>
<script src="js/controllers/currency-controllers.js"></script>
<script src="js/controllers/wallet-controllers.js"></script>
<script src="js/controllers/transfer-controllers.js"></script>
<script src="js/controllers/settings-controllers.js"></script>
<script src="js/controllers.js"></script>
<!-- controllers -->
<script src="js/controllers/app-controllers.js"></script>
<script src="js/controllers/home-controllers.js"></script>
<script src="js/controllers/wot-controllers.js"></script>
<script src="js/controllers/peer-controllers.js"></script>
<script src="js/controllers/currency-controllers.js"></script>
<script src="js/controllers/wallet-controllers.js"></script>
<script src="js/controllers/transfer-controllers.js"></script>
<script src="js/controllers/settings-controllers.js"></script>
<script src="js/controllers.js"></script>
<!-- App -->