diff --git a/Gruntfile.js b/Gruntfile.js index b47500e53..ed47be5ba 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -138,7 +138,35 @@ module.exports = function(grunt) { 'bower_components/angular-ui-switch/angular-ui-switch.css' ], dest: 'public/css/foundation.css', - } + }, + ionic_js: { + src: [ + 'bower_components/ionic/release/js/ionic.bundle.min.js' + ], + dest: 'public/lib/ionic.bundle.js' + }, + ionic_css: { + src: [ + 'bower_components/ionic/release/css/ionic.min.css' + ], + dest: 'public/css/ionic.css', + }, + ui_components_js: { + src: [ + 'bower_components/jquery/dist/jquery.js', + 'bower_components/roundSlider/dist/roundslider.min.js', + 'bower_components/angular-gridster/dist/angular-gridster.min.js', + 'bower_components/javascript-detect-element-resize/detect-element-resize.js' + ], + dest: 'public/lib/ui-components.js' + }, + ui_components_css: { + src: [ + 'bower_components/roundSlider/dist/roundslider.min.css', + 'bower_components/angular-gridster/dist/angular-gridster.min.css' + ], + dest: 'public/css/ui-components.css', + }, }, uglify: { options: { @@ -182,6 +210,12 @@ module.exports = function(grunt) { src: 'bower_components/foundation-icon-fonts/foundation-icons.*', dest: 'public/icons/' }, + ionic_fonts: { + expand: true, + flatten: true, + src: 'bower_components/ionic/release/fonts/ionicons.*', + dest: 'public/font/' + }, linux: { files: [{ expand: true, @@ -242,7 +276,7 @@ module.exports = function(grunt) { } }); - grunt.registerTask('default', ['nggettext_compile', 'exec:version', 'exec:coinbase', 'browserify', 'sass', 'concat', 'copy:icons']); + grunt.registerTask('default', ['nggettext_compile', 'exec:version', 'exec:coinbase', 'browserify', 'sass', 'concat', 'copy:icons', 'copy:ionic_fonts']); grunt.registerTask('prod', ['default', 'uglify']); grunt.registerTask('translate', ['nggettext_extract']); grunt.registerTask('test', ['karma:unit']); diff --git a/bower.json b/bower.json index 2cc0da959..0f8325fb5 100644 --- a/bower.json +++ b/bower.json @@ -18,6 +18,7 @@ "animate.css": "3.5.1", "foundation": "5.5.3", "foundation-icon-fonts": "*", + "ionic": "1.2.4", "moment": "2.10.3", "ng-lodash": "0.2.3", "qrcode-decoder-js": "*", diff --git a/package.json b/package.json index 3630ea293..366841eeb 100644 --- a/package.json +++ b/package.json @@ -91,6 +91,7 @@ "load-grunt-tasks": "^3.5.0", "mocha": "^2.4.5", "phantomjs-prebuilt": "^2.1.7", + "ionic": "^1.7.14", "xcode": "^0.8.2" } } diff --git a/public/font/ionicons.eot b/public/font/ionicons.eot new file mode 100644 index 000000000..92a3f20a3 Binary files /dev/null and b/public/font/ionicons.eot differ diff --git a/public/font/ionicons.svg b/public/font/ionicons.svg new file mode 100644 index 000000000..49fc8f367 --- /dev/null +++ b/public/font/ionicons.svg @@ -0,0 +1,2230 @@ + + + + + +Created by FontForge 20120731 at Thu Dec 4 09:51:48 2014 + By Adam Bradley +Created by Adam Bradley with FontForge 2.0 (http://fontforge.sf.net) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/font/ionicons.ttf b/public/font/ionicons.ttf new file mode 100644 index 000000000..c4e463248 Binary files /dev/null and b/public/font/ionicons.ttf differ diff --git a/public/font/ionicons.woff b/public/font/ionicons.woff new file mode 100644 index 000000000..5f3a14e0a Binary files /dev/null and b/public/font/ionicons.woff differ diff --git a/public/index.html b/public/index.html index 6522699c5..0183da9d1 100644 --- a/public/index.html +++ b/public/index.html @@ -6,8 +6,10 @@ + + Copay - Multisignature Wallet @@ -15,14 +17,14 @@
-
+
- +
@@ -40,12 +42,14 @@
- + + + diff --git a/src/css/ionic-migration.css b/src/css/ionic-migration.css new file mode 100644 index 000000000..dd18f67e9 --- /dev/null +++ b/src/css/ionic-migration.css @@ -0,0 +1,63 @@ +/* + * + * Ionic migration CSS + * These styles reapply foundation.css styles AFTER iconic.css has been applied. + * This has the effect of allowing all foundation styles be available at the same time as all Ionic styles being available. + * Where there are conflicts between foundation and css, this file resolves the conflict with a compromise which the developer must manage. + * This stylesheet is merged into copay.css. + */ + +/* Foundation.css styles re-applied. These styles are exactly as described in foundation.css */ + + +/* Conflicting styles that are customized as a compromise. These styles are a merge or compromise of foundation.css and ionic.css. */ + +.row { + display: inherit; + padding: 0; +} + +button, .button { + min-width: inherit; + min-height: inherit; + text-overflow: inherit; +} + +.modal-open { + pointer-events: inherit; +} + +/* Defeat Ionic .row+.row in transaction history */ +.last-transactions-content+.last-transactions-content, .row+.last-transactions-content { + padding: 0.8rem 1rem; + cursor: pointer; + margin: inherit; +} + +/* Add margins to the session log */ +.row.columns.large-centered.medium-centered { + padding-left: 0.9375rem; + padding-right: 0.9375rem; +} + +/* Defeat Ionic .row+.row in backup failed view */ +.backup .row { + margin-top: 10px; + padding: 0; +} + +.scroll-view { + height: 100% !important; +} + +/* Override the default modal size for large devices */ +@media (min-width: 680px) { + .modal { + top: 10%; + right: 20%; + bottom: 10%; + left: 20%; + min-height: 240px; + width: 60%; + } +} diff --git a/src/js/app.js b/src/js/app.js index f72997ac0..608a87ab1 100644 --- a/src/js/app.js +++ b/src/js/app.js @@ -6,9 +6,10 @@ var modules = [ 'mm.foundation', 'monospaced.qrcode', 'gettext', + 'ionic', 'ngLodash', 'uiSwitch', - 'ngSanitize', + 'ngSanitize', 'ngCsv', 'ngTouch', 'bwcModule', diff --git a/src/js/routes.js b/src/js/routes.js index 419102bcf..13a0e0bdb 100644 --- a/src/js/routes.js +++ b/src/js/routes.js @@ -148,11 +148,6 @@ angular }, } }) - .state('importProfile', { - url: '/importProfile', - templateUrl: 'views/importProfile.html', - needProfile: false - }) .state('importLegacy', { url: '/importLegacy', needProfile: true,