Commit 7744de45 7744de4519fd02c241c63c2ac3836ddeb1c35bb6 by Evanlai

add login page

1 parent 47655c57
Showing 135 changed files with 1609 additions and 1 deletions
1 {
2 "directory": "bower_components",
3 "analytics": false
4 }
1 # EditorConfig helps developers define and maintain consistent
2 # coding styles between different editors and IDEs
3 # editorconfig.org
4
5 root = true
6
7
8 [*]
9 end_of_line = lf
10 charset = utf-8
11 trim_trailing_whitespace = true
12 insert_final_newline = true
13 indent_style = space
14 indent_size = 2
15
16 [*.hbs]
17 insert_final_newline = false
18
19 [*.{diff,md}]
20 trim_trailing_whitespace = false
1 {
2 /**
3 Ember CLI sends analytics information by default. The data is completely
4 anonymous, but there are times when you might want to disable this behavior.
5
6 Setting `disableAnalytics` to true will prevent any data from being sent.
7 */
8 "disableAnalytics": true,
9 "liveReload": false
10 }
1 # See http://help.github.com/ignore-files/ for more about ignoring files.
2
3 # compiled output
4 /dist
5 /tmp
6
7 # dependencies
8 /node_modules
9 /bower_components
10
11 # misc
12 /.sass-cache
13 /connect.lock
14 /coverage/*
15 /libpeerconnection.log
16 npm-debug.log
17 testem.log
1 {
2 "predef": [
3 "document",
4 "window",
5 "-Promise"
6 ],
7 "browser": true,
8 "boss": true,
9 "curly": true,
10 "debug": false,
11 "devel": true,
12 "eqeqeq": true,
13 "evil": true,
14 "forin": false,
15 "immed": false,
16 "laxbreak": false,
17 "newcap": true,
18 "noarg": true,
19 "noempty": false,
20 "nonew": false,
21 "nomen": false,
22 "onevar": false,
23 "plusplus": false,
24 "regexp": false,
25 "undef": true,
26 "sub": true,
27 "strict": false,
28 "white": false,
29 "eqnull": true,
30 "esversion": 6,
31 "unused": true
32 }
1 ---
2 language: node_js
3 node_js:
4 - "4"
5
6 sudo: false
7
8 cache:
9 directories:
10 - node_modules
11
12 before_install:
13 - npm config set spin false
14 - npm install -g bower
15 - bower --version
16 - npm install phantomjs-prebuilt
17 - node_modules/phantomjs-prebuilt/bin/phantomjs --version
18
19 install:
20 - npm install
21 - bower install
22
23 script:
24 - npm test
1 {
2 "ignore_dirs": ["tmp", "dist"]
3 }
1 Hello, test
...\ No newline at end of file ...\ No newline at end of file
1 # Ebookcoin
2
3 This README outlines the details of collaborating on this Ember application.
4 A short introduction of this app could easily go here.
5
6 ## Prerequisites
7
8 You will need the following things properly installed on your computer.
9
10 * [Git](http://git-scm.com/)
11 * [Node.js](http://nodejs.org/) (with NPM)
12 * [Bower](http://bower.io/)
13 * [Ember CLI](http://ember-cli.com/)
14 * [PhantomJS](http://phantomjs.org/)
15
16 ## Installation
17
18 * `git clone <repository-url>` this repository
19 * `cd ebookcoin`
20 * `npm install`
21 * `bower install`
22
23 ## Running / Development
24
25 * `ember serve`
26 * Visit your app at [http://localhost:4200](http://localhost:4200).
27
28 ### Code Generators
29
30 Make use of the many generators for code, try `ember help generate` for more details
31
32 ### Running Tests
33
34 * `ember test`
35 * `ember test --server`
36
37 ### Building
38
39 * `ember build` (development)
40 * `ember build --environment production` (production)
41
42 ### Deploying
43
44 Specify what it takes to deploy your app.
45
46 ## Further Reading / Useful Links
47
48 * [ember.js](http://emberjs.com/)
49 * [ember-cli](http://ember-cli.com/)
50 * Development Browser Extensions
51 * [ember inspector for chrome](https://chrome.google.com/webstore/detail/ember-inspector/bmdblncegkenkacieihfhpjfppoconhi)
52 * [ember inspector for firefox](https://addons.mozilla.org/en-US/firefox/addon/ember-inspector/)
53
......
1 import Ember from 'ember';
2 import Resolver from './resolver';
3 import loadInitializers from 'ember-load-initializers';
4 import config from './config/environment';
5
6 let App;
7
8 Ember.MODEL_FACTORY_INJECTIONS = true;
9
10 App = Ember.Application.extend({
11 modulePrefix: config.modulePrefix,
12 podModulePrefix: config.podModulePrefix,
13 Resolver
14 });
15
16 loadInitializers(App, config.modulePrefix);
17
18 export default App;
File mode changed
1 import Ember from 'ember';
2
3 export default Ember.Component.extend({
4 i18n: Ember.inject.service(),
5 classNames: ['language-selector'],
6
7 locales: Ember.computed('i18n.locale', 'i18n.locales', function() {
8 const i18n = this.get('i18n');
9 return this.get('i18n.locales').map(function(loc) {
10 return {
11 id: loc,
12 text: i18n.t('site.language.' + loc)
13 };
14 });
15 }),
16
17 actions: {
18 setLocale() {
19 this.set('i18n.locale', this.$('select').val());
20 }
21 }
22 });
File mode changed
File mode changed
1 import Ember from 'ember';
2
3 export function isEqual([leftSide, rightSide]) {
4 return leftSide === rightSide;
5 }
6
7 export default Ember.Helper.helper(isEqual);
8
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="utf-8">
5 <meta http-equiv="X-UA-Compatible" content="IE=edge">
6 <title>Ebookcoin</title>
7 <meta name="description" content="Ebookcoin - Decentralized Application Platform">
8 <meta name="viewport" content="width=device-width, initial-scale=1">
9
10 {{content-for "head"}}
11
12 <link rel="stylesheet" href="{{rootURL}}assets/vendor.css">
13 <link rel="stylesheet" href="{{rootURL}}assets/ebookcoin.css">
14
15 {{content-for "head-footer"}}
16 </head>
17 <body>
18 {{content-for "body"}}
19
20 <script src="{{rootURL}}assets/vendor.js"></script>
21 <script src="{{rootURL}}assets/ebookcoin.js"></script>
22
23 {{content-for "body-footer"}}
24 </body>
25 </html>
1 // Ember-I18n includes configuration for common locales. Most users
2 // can safely delete this file. Use it if you need to override behavior
3 // for a locale or define behavior for a locale that Ember-I18n
4 // doesn't know about.
5 export default {
6 // rtl: [true|FALSE],
7 //
8 // pluralForm: function(count) {
9 // if (count === 0) { return 'zero'; }
10 // if (count === 1) { return 'one'; }
11 // if (count === 2) { return 'two'; }
12 // if (count < 5) { return 'few'; }
13 // if (count >= 5) { return 'many'; }
14 // return 'other';
15 // }
16 };
1 export default {
2 site: {
3 title: "A new driving force for human creation!",
4 language: {
5 en: "English",
6 "en-us": "English American",
7 "zh-cn": "中文"
8 }
9 },
10
11 passphrase: {
12 newAccount: "NEW ACCOUNT",
13 yourPassphrase: "Your Passphrase",
14 signIn: "SIGN IN",
15 remember: "Remember during this session",
16 errorMessage: "Passphrase must contain less than 100 characters."
17 }
18 };
...\ No newline at end of file ...\ No newline at end of file
1 // Ember-I18n includes configuration for common locales. Most users
2 // can safely delete this file. Use it if you need to override behavior
3 // for a locale or define behavior for a locale that Ember-I18n
4 // doesn't know about.
5 export default {
6 // rtl: [true|FALSE],
7 //
8 // pluralForm: function(count) {
9 // if (count === 0) { return 'zero'; }
10 // if (count === 1) { return 'one'; }
11 // if (count === 2) { return 'two'; }
12 // if (count < 5) { return 'few'; }
13 // if (count >= 5) { return 'many'; }
14 // return 'other';
15 // }
16 };
1 export default {
2 site: {
3 title: "A new driving force for human creation!",
4 language: {
5 en: "English",
6 "en-us": "English American",
7 "zh-cn": "中文"
8 }
9 },
10 passphrase: {
11 newAccount: "新帐户",
12 yourPassphrase: "您的主密码",
13 signIn: "登陆",
14 remember: "保持Session状态",
15 errorMessage: "主密码必须小于100个字符"
16 }
17 };
...\ No newline at end of file ...\ No newline at end of file
File mode changed
1 import Resolver from 'ember-resolver';
2
3 export default Resolver;
1 import Ember from 'ember';
2 import config from './config/environment';
3
4 const Router = Ember.Router.extend({
5 location: config.locationType,
6 rootURL: config.rootURL
7 });
8
9 Router.map(function() {
10 this.route('passphrase', { path: '/' });
11 this.route('account');
12 });
13
14 export default Router;
File mode changed
1 import Ember from 'ember';
2
3 export default Ember.Route.extend({
4 });
1 import Ember from 'ember';
2
3 export default Ember.Route.extend({
4 });
1 #account {
2 #paddingFix {
3 .button {
4 margin: 0px;
5 padding: 15px 13px 13px;
6
7 &.label {
8 width: 235px;
9 white-space: nowrap;
10 overflow: hidden;
11 text-overflow: ellipsis;
12 &.forging {
13 width: inherit;
14 }
15 }
16 }
17 }
18
19 .raw-buttons {
20 #buttons {
21 display: inline-block;
22
23 .container {
24 display: inline-block;
25 }
26 }
27 .send, .free {
28 width: 141px;
29 }
30 }
31
32 #transactions {
33 margin-bottom: 20px;
34 }
35
36 }
37
38 .account-block {
39 color: @white;
40 font-size: @content-text;
41 background-color: @gray3;
42 /* box-shadow: 0px 0px 18px 0px rgba(0, 0, 0, 0.8) inset;
43 -webkit-box-shadow: 0px 0px 18px 0px rgba(0, 0, 0, 0.8) inset;*/
44 padding: 17px 8px;
45 .icon {
46 width: 64px;
47 height: 64px;
48 border-radius: 50%;
49 overflow: hidden;
50 margin: 0 auto 20px;
51 }
52 .name {
53 letter-spacing: 0.5px;
54 padding: 5px 0;
55 text-align: center;
56 display: block;
57 margin: 0 auto;
58 &.name-add {
59 cursor: pointer;
60 }
61 }
62 .address {
63 display: block;
64 margin: 0 auto;
65 padding: 5px 0 0;
66 text-align: center;
67 }
68 }
1
2 /*@import "materialize";*/
3 /*@font-face {
4 font-family: "Material Icons";
5 font-style: normal;
6 font-weight: 400;
7 src: url("/font/material-google/MaterialIcons-Regular.eot"); /* For IE6-8
8 src: local("Material Icons"),
9 local("MaterialIcons-Regular"),
10 url("/font/material-google/MaterialIcons-Regular.woff2") format("woff2"),
11 url("/font/material-google/MaterialIcons-Regular.woff") format("woff"),
12 url("/font/material-google/MaterialIcons-Regular.ttf") format("truetype");
13 }
14 */
15
16 /*JOINT STYLES*/
17 /* html5doctor.com Reset v1.6.1 - http://cssreset.com */
18 html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {
19 margin: 0;
20 padding: 0;
21 border: 0;
22 outline: 0;
23 font-size: 14px;
24 vertical-align: baseline;
25 background: transparent
26 }
27
28 body {
29 line-height: 1;
30 background-color: @background;
31 }
32 body>.ember-view{
33 height: 100%;
34 }
35
36 article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
37 display: block
38 }
39
40 nav ul {
41 list-style: none
42 }
43
44 blockquote, q {
45 quotes: none
46 }
47
48 blockquote:before, blockquote:after, q:before, q:after {
49 content: none
50 }
51
52 a {
53 margin: 0;
54 padding: 0;
55 font-size: 100%;
56 vertical-align: baseline;
57 background: transparent
58 }
59
60 ins {
61 background-color: #ff9;
62 color: #000;
63 text-decoration: none
64 }
65
66 mark {
67 background-color: #ff9;
68 color: #000;
69 font-style: italic;
70 font-weight: bold
71 }
72
73 del {
74 text-decoration: line-through
75 }
76
77 abbr[title], dfn[title] {
78 border-bottom: 1px dotted;
79 cursor: help
80 }
81
82 table {
83 border-collapse: collapse;
84 border-spacing: 0
85 }
86
87 hr {
88 display: block;
89 height: 1px;
90 border: 0;
91 border-top: 1px solid #ccc;
92 margin: 1em 0;
93 padding: 0
94 }
95
96 input, select {
97 vertical-align: middle
98 }
99
100 html, body {
101 height: 100%;
102 position: relative;
103 font-family: "Roboto", sans-serif;
104 overflow-x: hidden;
105 }
106
107 .height {
108 position: relative;
109 min-height: 100% !important;
110 height: 100%;
111 }
112
113 .container-fluid {
114 position: relative;
115 }
116
117 .partials-rules {
118 position: absolute;
119 top: 26px;
120 left: 26px;
121 right: 26px;
122 }
123
124 h1 {
125 font-size: 20px;
126 font-weight: bold;
127 }
128
129 h2.account-id {
130 font-size: 15px;
131 font-weight: bold;
132 color: #9b9d9e;
133 float: right;
134 margin-top: 8px;
135
136 a {
137 color: #9b9d9e;
138 }
139 }
140
141 h3.start-red {
142 font-size: 14px;
143 font-weight: bold;
144 color: #b25b5b;
145 display: inline-block;
146 }
147
148 .red {
149 color: #b25b5b;
150 }
151
152 .green {
153 color: #61b26e;
154 }
155
156 h3.start-green {
157 color: #61b26e;
158 font-size: 14px;
159 font-weight: bold;
160 display: inline-block;
161 }
162
163 .raw-buttons {
164 min-width: 986px;
165 height: 56px;
166 margin-top: 26px;
167 margin-bottom: 22px;
168 }
169
170 .button {
171 border: none;
172 margin: 0 0 0 26px;
173 -moz-box-sizing: border-box;
174 -ms-box-sizing: border-box;
175 -webkit-box-sizing: border-box;
176 box-sizing: border-box;
177 padding: 15px 16px 13px 16px;
178 background-color: #fff;
179 color: #9b9d9e;
180 -webkit-border-radius: 3px;
181 -moz-border-radius: 3px;
182 border-radius: 3px;
183 -webkit-box-shadow: 0px 3px 0px #d4d5d6;
184 -moz-box-shadow: 0px 3px 0px #d4d5d6;
185 box-shadow: 0px 3px 0px #d4d5d6;
186 cursor: pointer;
187 font-size: 14px;
188 font-weight: bold;
189 position: relative;
190
191 &:first-child {
192 margin: 0;
193 }
194
195 &:focus {
196 outline: none;
197 }
198 &:active {
199 top: 3px;
200 -webkit-box-shadow: 0px 0px 0px #d4d5d6;
201 -moz-box-shadow: 0px 0px 0px #d4d5d6;
202 box-shadow: 0px 0px 0px #d4d5d6;
203 }
204 &.green {
205 background-color: #61b26e;
206 color: #fff;
207 -webkit-box-shadow: 0px 3px 0px #50955c;
208 -moz-box-shadow: 0px 3px 0px #50955c;
209 box-shadow: 0px 3px 0px #50955c;
210
211 &:active {
212 top: 3px;
213 -webkit-box-shadow: 0px 0px 0px #50955c;
214 -moz-box-shadow: 0px 0px 0px #50955c;
215 box-shadow: 0px 0px 0px #50955c;
216 }
217
218 &:disabled {
219 top: 0px;
220 background-color: rgba(97, 178, 110, 0.3);
221 -webkit-box-shadow: 0px 3px 0px rgba(80, 149, 92, 0.3);
222 -moz-box-shadow: 0px 3px 0px rgba(80, 149, 92, 0.3);
223 box-shadow: 0px 3px 0px rgba(80, 149, 92, 0.3);
224 }
225 }
226
227 &.red {
228 background-color: #ED4A4A;
229 color: #fff;
230 -webkit-box-shadow: 0px 3px 0px #E67A7A;
231 -moz-box-shadow: 0px 3px 0px #E67A7A;
232 box-shadow: 0px 3px 0px #E67A7A;
233
234 &:active {
235 top: 3px;
236 -webkit-box-shadow: 0px 0px 0px #E67A7A;
237 -moz-box-shadow: 0px 0px 0px #E67A7A;
238 box-shadow: 0px 0px 0px #E67A7A;
239 }
240
241 &:disabled {
242 top: 0px;
243 background-color: rgba(237, 74, 74, 0.3);
244 -webkit-box-shadow: 0px 3px 0px rgba(230, 122, 122, 0.3);
245 -moz-box-shadow: 0px 3px 0px rgba(230, 122, 122, 0.3);
246 box-shadow: 0px 3px 0px rgba(230, 122, 122, 0.3);
247 }
248 }
249 &.static {
250 cursor: default;
251 &:active {
252 top: 0;
253 -webkit-box-shadow: 0px 3px 0px #d4d5d6;
254 -moz-box-shadow: 0px 3px 0px #d4d5d6;
255 box-shadow: 0px 3px 0px #d4d5d6;
256 }
257 }
258
259 &.small {
260 font-size: 13px;
261 padding: 7px;
262 }
263
264 span {
265 color: #4f5051;
266 }
267 }
268
269 .row {
270 height: 31px;
271 }
272
273 table {
274 margin-top: 25px;
275 background-color: #fff;
276 -webkit-border-radius: 3px;
277 -moz-border-radius: 3px;
278 border-radius: 3px;
279 -webkit-box-shadow: 0px 1px 0px #dbdcdd;
280 -moz-box-shadow: 0px 1px 0px #dbdcdd;
281 box-shadow: 0 1px 0 #dbdcdd;
282
283 th {
284 color: #9b9d9e;
285 vertical-align: middle;
286 font-weight: normal;
287 font-size: 14px;
288 border-bottom: 1px solid #ebeced;
289 }
290
291 td {
292 color: #9b9d9e;
293 vertical-align: middle;
294 font-weight: bold;
295 text-align: center;
296 font-size: 15px;
297 }
298
299 tr {
300 &.green td {
301 color: #61b26e;
302 }
303 }
304 }
305
306 .pointer {
307 cursor: pointer;
308 text-decoration: underline;
309
310 &:hover {
311 color: black;
312 }
313 }
314
315 .form {
316 display: block;
317 margin-top: 50px;
318
319 .input-text {
320 padding: 5px;
321 border-radius: 5px;
322 font-size: 14px;
323 color: #777;
324 width: 100%;
325 outline: 0;
326 margin-bottom: 10px;
327 -moz-box-sizing: border-box;
328 -ms-box-sizing: border-box;
329 -webkit-box-sizing: border-box;
330 box-sizing: border-box;
331
332 &:active {
333 outline: 0;
334 }
335 }
336
337 .button {
338 margin-top: 20px;
339 margin-left: 5px;
340 display: inline-block;
341 }
342 }
343
344 label {
345 font-size: 14px;
346 }
347
348 .pull-left {
349 float: left;
350 }
351
352 .pull-right {
353 float: right;
354 }
355
356 p.description {
357 font-size: 14px;
358 clear: both;
359 margin-top: 40px;
360 line-height: 1.3;
361 }
362
363 .instruction {
364 font-size: 14px;
365 width: 100%;
366 position: relative;
367 line-height: 1.3;
368 margin-top: 5px;
369 list-style-type: circle;
370
371 ul {
372 width: 100%;
373 font-size: 14px;
374 line-height: 1.3;
375
376 li {
377 display: block;
378 word-wrap: break-word;
379 width: 100%;
380 margin-left: 15px;
381 margin-top: 2px;
382 }
383 }
384 }
385
386 .forging-link {
387 color: #4f5051;
388 position: absolute;
389 top: 20px;
390 right: 20px;
391 font-size: 13px;
392 font-weight: bold;
393
394 a {
395 text-decoration: none;
396 color: #4f5051;
397
398 &.disabled {
399 color: #4f5051;
400 }
401 }
402 }
403
404 .syncLabel {
405 position: absolute;;
406 bottom: 10px;
407 right: 10px;
408 width: 230px;
409 line-height: 1.25;
410 background: rgba(0, 0, 0, 0.2);
411 font-size: 13px;
412 padding: 7px;
413 border-radius: 7px;
414 cursor: pointer;
415 }
416
417 #message-error {
418 display: block;
419 width: 492px;
420 line-height: 1.6;
421 margin: 15px auto 0 auto;
422 font-size: 13px;
423 text-align: center;
424 color: #F24A65;
425 }
426
427 .no-select {
428 -webkit-user-select: none; /* Chrome/Safari */
429 -moz-user-select: none; /* Firefox */
430 -ms-user-select: none; /* IE10+ */
431 /* Rules below not implemented in browsers yet */
432 -o-user-select: none;
433 user-select: none;
434 }
435
436 input:-webkit-autofill {
437 -webkit-box-shadow: 0 0 0px 1000px white inset;
438 }
439
440 /*END OF JOINT STYLES*/
441 @import "pass";
442 @import "language";
443 @import "images";
444 @import "variables";
445 @import "elements";
446 @import "material";
447 @import "buttons";
448 /*@import "sidebar";
449 @import "panels";
450 @import "index";
451 @import "account";
452 @import "blockchain";
453 @import "mining";
454
455 @import "modal";
456 @import "block-modal";
457 @import "forging";
458 @import "delegates";
459 @import "ngtable";
460 @import "media";
461 @import "nav";
462 @import "page";
463
464 @import "grid";
465
466 @import "inputs";
467 @import "mixins";
468
469 @import "images";
470 @import "empty";
471 @import "mediaqueries";
472 @import "pie-chart";
473 @import "settings";
474 @import "dapps";
475 @import "multi";
476 */
1 .btn {
2 display: inline-block;
3 padding: 0 14px;
4 font-size: 14px;
5 font-weight: normal;
6 line-height: 36px;
7 border: none;
8 border-radius: @border-radius;
9
10 &.btn-blue-nav {
11 background-color: @blue !important;
12 &:hover, &:focus, &.focus {
13 color: @white
14 }
15 }
16
17 &.btn-blue {
18 background-color: @blue !important;
19 &[disabled]{
20 -webkit-box-shadow: 0 2px 5px 0 rgba(0, 0, 0, .16), 0 2px 10px 0 rgba(0, 0, 0, .12);
21 -moz-box-shadow: 0 2px 5px 0 rgba(0, 0, 0, .16), 0 2px 10px 0 rgba(0, 0, 0, .12);
22 box-shadow: 0 2px 5px 0 rgba(0, 0, 0, .16), 0 2px 10px 0 rgba(0, 0, 0, .12);
23 }
24 &:hover, &:focus, &.focus {
25 color: @white
26 }
27 }
28
29 &.btn-sky-blue {
30 background-color: @sky-blue !important;
31 &:hover, &:focus, &.focus {
32 color: @white
33 }
34 }
35
36 &.btn-dark-meant {
37 background-color: transparent;
38 box-shadow: none;
39 color: #212121;
40 &:hover, &:focus, &.focus {
41 background-color: @dark-meant;
42 box-shadow: none;
43 color: @white;
44 }
45 }
46
47 &.btn-white {
48 background-color: @white !important;
49 color: @black;
50 &:hover, &:focus, &.focus {
51 color: @black
52 }
53 }
54 &.btn-marging {
55 margin-right: 10px;
56 }
57 }
58
59 .buttons-panel {
60 margin-top: 40px;
61 }
1 .logo-grey {
2 background-image: url('/images/logo-grey.png');
3 background-repeat: no-repeat;
4 width: 176px;
5 height: 43px;
6 }
7
8 .small-user-icon {
9 height: 48px;
10 width: 48px;
11 }
1 /* Language Settings */
2
3 .language-selector {
4 .flag {
5 text-align: center;
6 img {
7 margin-top: 10px;
8 }
9 }
10 }
11
12 /* Language Overrides */
13
14 /* Chinese */
15
16 .zh {
17 font-family: "Microsoft Yahei", "Roboto", sans-serif;
18 }
1 input[type=text], input[type=password], input[type=email], input[type=url], input[type=time], input[type=date], input[type=datetime-local], input[type=tel], input[type=number], input[type=search] {
2 height: 2.2rem;
3 width: 100%;
4 font-size: 1.15rem;
5 }
6
7 .input-field label {
8 top: .6rem;
9 left: 0;
10 font-size: 1.15rem;
11 opacity: 1;
12 color: #b8b8b8;
13 &.active {
14 font-size: .8rem;
15 -webkit-transform: translateY(-160%);
16 -moz-transform: translateY(-160%);
17 -ms-transform: translateY(-160%);
18 -o-transform: translateY(-160%);
19 transform: translateY(-160%);
20 }
21 }
22
23 .input-field {
24 position: relative;
25 margin-top: 1.6rem;
26 }
27
28 .switch label .lever {
29 margin-left: 0;
30 }
31
32 .switch.margin {
33 margin-top: 20px;
34 }
35
36 .progress {
37 position: relative;
38 height: 4px;
39 display: block;
40 width: 100%;
41 background-color: #90caf9;
42 border-radius: 2px;
43 margin: 0.5rem 0 1rem 0;
44 overflow: hidden;
45 .determinate {
46 position: absolute;
47 background-color: inherit;
48 top: 0;
49 bottom: 0;
50 background-color: #209bde;
51 -webkit-transition: width .3s linear;
52 -moz-transition: width .3s linear;
53 -o-transition: width .3s linear;
54 -ms-transition: width .3s linear;
55 transition: width .3s linear;
56 }
57 }
58
59 .materialize-textarea-big {
60 textarea.materialize-textarea {
61 font-size: 1.14rem;
62 overflow-y: hidden;
63 padding: 0;
64 resize: none;
65 min-height: 3rem;
66 margin: 0;
67 }
68 label.active {
69 top: 0;
70 }
71 }
72
73 [type=checkbox].filled-in:checked + label.imaged:before {
74 top: 15px;
75 }
76
77 [type=checkbox].filled-in:checked + label.imaged:after {
78 top: 15px;
79 }
80
81 [type=checkbox].filled-in:not(:checked) + label.imaged:after {
82 top: 15px;
83 }
84
85 label.imaged {
86 img{
87 height: 50px;
88 }
89 }
1 #pass {
2 background-color: #ebeced;
3 height: 100%;
4 min-height: 500px;
5 .sign-in-button {
6 padding: 8px 14px;
7 border: none;
8 margin-top: 40px;
9 background-color: @sky-blue;
10 color: #fff;
11 font-size: 14px;
12 font-weight: normal;
13 -webkit-border-radius: 3px;
14 -moz-border-radius: 3px;
15 border-radius: 3px;
16 -webkit-box-shadow: none;
17 -moz-box-shadow: none;
18 box-shadow: none;
19 &:active {
20 top: 0;
21 background-image: none;
22 outline: 0;
23 -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .3);
24 box-shadow: inset 0 3px 5px rgba(0, 0, 0, .3);
25 }
26 }
27 }
28
29 .pass-banner {
30 background-image: url('/images/banner.jpg');
31 background-repeat: no-repeat;
32 background-size: cover;
33 width: 100%;
34 height: 40%;
35 }
36
37 .pass-bottom {
38 width: 100%;
39 height: 60%;
40 position: relative;
41 }
42
43 .pass-window {
44 width: 372px;
45 background-color: #ffffff;
46 border: solid 1px #cecece;
47 margin: -100px auto 0;
48 border-radius: 4px;
49 &-icon {
50 background-repeat: no-repeat;
51 height: 100px;
52 background-color: @gray2;
53 background-image: url('/images/logo-white.png');
54 margin: -1px;
55 border-radius: 4px 4px 0 0;
56 background-position: center;
57 }
58 &-form {
59 padding: 10px 25px 25px;
60 }
61 }
62
63 .pass-footer {
64 position: absolute;
65 bottom: -80px;
66 text-align: center;
67 width: 100%;
68 color: #000;
69 opacity: 0.54;
70 font-size: 14px;
71
72 @media (max-height: 550px) {
73 position: relative;
74 padding: 1em;
75 }
76 }
77
78 #login-form {
79 width: 526px;
80 height: 250px;
81 background-color: #fff;
82 border-radius: 3px;
83 box-shadow: 0 1px rgba(0, 0, 0, 0.07);
84 }
85
86 #center {
87 position: absolute;
88 width: 526px;
89 height: 295px;
90 margin-top: -210px;
91 margin-left: -263px;
92 left: 50%;
93 top: 50%;
94 }
95
96 #enter {
97 font-size: 13px;
98 width: 490px;
99 border: 1px solid #bbb;
100 height: 44px;
101 -moz-box-sizing: border-box;
102 -ms-box-sizing: border-box;
103 -webkit-box-sizing: border-box;
104 box-sizing: border-box;
105 padding: 0 15px;
106 color: #8e8e8e;
107 margin: 16px 16px 0 16px;
108 display: inline-block;
109 border-radius: 9px;
110 -moz-box-sizing: border-box;
111 -ms-box-sizing: border-box;
112 -webkit-box-sizing: border-box;
113 box-sizing: border-box;
114 }
115
116 #enter:focus {
117 outline: none;
118 }
119
120 #login {
121 display: block;
122 margin: 40px auto 0 auto;
123 font-size: 13px;
124 padding: 15px 23px 13px 20px
125 }
126
127 #message {
128 display: block;
129 width: 492px;
130 line-height: 1.6;
131 margin: 15px auto 0 auto;
132 font-size: 13px;
133 color: #939495;
134 }
135
136 #message-error {
137 display: block;
138 width: 492px;
139 line-height: 1.6;
140 margin: 15px auto 0;
141 font-size: 13px;
142 text-align: center;
143 color: #F24A65;
144 }
145
146 .loading {
147 text-align: center;
148 padding: 60px 25px 35px;
149 h3 {
150 font-size: 14px;
151 color: @black;
152 padding-top: 25px;
153 &.heading {
154 font-weight: 700;
155 padding-top: 50px;
156 font-size: 13px;
157 }
158 }
159 }
...\ No newline at end of file ...\ No newline at end of file
1 /*List of variables*/
2
3 /*Ebookcoin Colors*/
4
5 @blue: #0288d1; // blue, main
6 @blue1: #e7f0f5; // blue, super bright
7 @blue2: #e0ebf1; // blue, super bright hover
8 @orange: #f57c00; // orange, main
9 @orange1: #f5eee8; // orange, super bright
10 @orange2: #f3e7db; // orange, super bright hover
11 @purple: #663399; // purple, main
12 @brown: #655740; // brown
13 @brown1: #544835; // brown dark
14 @brown2: #be9c77; // brown bright
15 @gray: #f5f5f5; // gray bright
16 @gray1: #5f696e; // gray dark1
17 @gray2: #393c3e; // gray dark2
18 @gray3: #27292a; // gray dark3
19 @white: #fff; // white
20
21 @text_brown: #9c8678;
22 @text_brown1: #dcd6cf;
23
24 @ethereum: #6f748d;
25 @bitcoin: #f7931a;
26 @crypti: #7cb342;
27
28 /*Colors*/
29
30 @black: #000000;
31 @grey-text: #393939;
32 @white: #ffffff;
33 @menu-background: #263238;
34 @menu-icons: #5e676c;
35 @active-menu: #1c262b;
36 @navy: #1565c0;
37 @sky-blue: #039be5;
38 @dapp-link-color: #1976C2;
39
40 @background: #eeeeee;
41
42 //@blue: #1976d2;
43 @green: #84b84e;
44 @violet: #7e57c2;
45 @cloud: #546e7a;
46 @red: #d32f2f;
47 @error-red: #f34235;
48 @dark-red: #c62828;
49 @meant: #dcedc8;
50 @dark-meant: #7cb342;
51 @dark-blue: #0288d1;
52
53 @light-green: #cbe1b3;
54 @light-blue: #a3c8ed;
55 @light-violet: #cbbce7;
56 @light-cloud: #d7d7d7;
57 @super-light-violet: #ede7f6;
58
59 @grey: #fafafa;
60 @even-grey: #f5f5f5;
61 @border-grey: #cecece;
62 @light-grey: #dcdcdc;
63 @placeholder-text: #bdbdbd;
64
65 /*Font size*/
66 @small-text: 12px;
67 @content-text: 14px;
68 @normal-text: 16px;
69 @big-text: 24px;
70 @widget-text: 18px;
71 @graph-heading: 18px;
72
73 @font-opacity: 0.87;
74
75 /**/
76 @border-radius: 2px;
77 @screen-xs-max: 767px;
78 @screen-xs-min: 768px;
79 @screen-sm-max: 992px;
80 @screen-sm-min: 993px;
81 @hide-transactions-screen: 1500px;
82
83 /*Graphs*/
84 @grey-graph: #90a4ae;
1 {{!-- app/language-select/template.hbs --}}
2 <div class="row language-selector">
3 <div class="col s2 flag">
4 <img src="/images/flags/{{i18n.locale}}.png">
5 </div>
6 <div class="col s10">
7 <select class="browser-default" {{action 'setLocale' on='change'}}>
8 {{#each locales as |loc|}}
9 <option value="{{loc.id}}" selected={{is-equal loc.id i18n.locale}}>
10 {{loc.text}}
11 </option>
12 {{/each}}
13 </select>
14 </div>
15 </div>
16
1 <!-- <div id="pass" ng-controller="loadingController" ng-class="lang.id">
2 <div class="pass-banner"></div>
3 <div class="pass-bottom">
4 <div class="pass-window">
5 <div class="pass-window-icon"></div>
6 <div class="loading clearfix" class="clearfix" ng-controller="loadingController">
7 <div class="progress" ng-show="height">
8 <div class="determinate" style="width: {{loadingState}}%"></div>
9 </div>
10 <h3 class="heading" ng-show="!height || !blocksCount">Blockchain is loading...</h3>
11 <h3 class="heading" ng-show="height">{{loadingState}}%</h3>
12 <h3 class="heading" ng-show="height">Blockchain is loading...</h3>
13 </div>
14 </div>
15 </div>
16 </div> -->
...\ No newline at end of file ...\ No newline at end of file
1 <div id="pass">
2 <div class="pass-banner"></div>
3 <div class="pass-bottom">
4 <div class="pass-window">
5 <div class="pass-window-icon">
6 </div>
7 <form class="clearfix pass-window-form" >
8 <div class="input-field">
9 <input id="password" type="password" autofocus>
10 <label for="password">{{t "passphrase.yourPassphrase"}}</label>
11 <span class="pass-error">{{t "passphrase.errorMessage"}}</span>
12 </div>
13 <div class="input-group">
14 <div class="switch blue-switch margin">
15 <label>
16 <input type="checkbox">
17 <span class="lever"></span>
18 <span>{{t "passphrase.remember"}}</span>
19 </label>
20 </div>
21 </div>
22 <div class="input-field">
23 {{language-selector}}
24 </div>
25 <div class="buttons-panel pull-right">
26 <a class="btn btn-white waves-effect btn-marging">{{t "passphrase.newAccount"}}</a>
27 <a class="btn btn-blue waves-effect waves-light" >{{t "passphrase.signIn"}}</a>
28 </div>
29 </form>
30 </div>
31 <div class="pass-footer clearfix">Ebookcoin © 2016. All Rights Reserved.</div>
32 </div>
33 </div>
34
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "name": "ebookcoin",
3 "dependencies": {
4 "ember": "~2.8.0",
5 "ember-cli-shims": "0.1.1",
6 "bootstrap": "=3.3.6"
7 }
8 }
1 /* jshint node: true */
2
3 module.exports = function(environment) {
4 var ENV = {
5 modulePrefix: 'ebookcoin',
6 environment: environment,
7 rootURL: '/',
8 locationType: 'auto',
9
10 i18n: {
11 defaultLocale: 'en'
12 },
13
14 EmberENV: {
15 FEATURES: {
16 // Here you can enable experimental features on an ember canary build
17 // e.g. 'with-controller': true
18 }
19 },
20
21 APP: {
22 // Here you can pass flags/options to your application instance
23 // when it is created
24 }
25 };
26
27 if (environment === 'development') {
28 ENV.APP.LOG_RESOLVER = true;
29 ENV.APP.LOG_ACTIVE_GENERATION = true;
30 ENV.APP.LOG_TRANSITIONS = true;
31 ENV.APP.LOG_TRANSITIONS_INTERNAL = true;
32 // ENV.APP.LOG_VIEW_LOOKUPS = true;
33 }
34
35 if (environment === 'test') {
36 // Testem prefers this...
37 ENV.locationType = 'none';
38
39 // keep test console output quieter
40 ENV.APP.LOG_ACTIVE_GENERATION = false;
41 ENV.APP.LOG_VIEW_LOOKUPS = false;
42
43 ENV.APP.rootElement = '#ember-testing';
44 }
45
46 if (environment === 'production') {
47
48 }
49
50 return ENV;
51 };
1 /*jshint node:true*/
2 /* global require, module */
3 var EmberApp = require('ember-cli/lib/broccoli/ember-app');
4
5 module.exports = function(defaults) {
6 var app = new EmberApp(defaults, {
7 // Add options here
8 });
9
10 //app.import("bower_components/bootstrap/dist/css/bootstrap.css");
11 //app.import("bower_components/bootstrap/dist/js/bootstrap.js");
12 app.import("vendor/materialize/css/materialize.css");
13 app.import("vendor/materialize/js/materialize.js");
14 // Use `app.import` to add additional libraries to the generated
15 // output files.
16 //
17 // If you need to use different assets in different
18 // environments, specify an object as the first parameter. That
19 // object's keys should be the environment name and the values
20 // should be the asset to use in that environment.
21 //
22 // If the library that you are including contains AMD or ES6
23 // modules that you would like to import into your application
24 // please specify an object with the list of modules as keys
25 // along with the exports of each module as its value.
26
27 return app.toTree();
28 };
No preview for this file type
1 {
2 "name": "ebookcoin",
3 "version": "0.0.0",
4 "description": "Small description for ebookcoin goes here",
5 "private": true,
6 "directories": {
7 "doc": "doc",
8 "test": "tests"
9 },
10 "scripts": {
11 "build": "ember build",
12 "start": "ember server",
13 "test": "ember test"
14 },
15 "repository": "",
16 "engines": {
17 "node": ">= 0.10.0"
18 },
19 "author": "",
20 "license": "MIT",
21 "devDependencies": {
22 "broccoli-asset-rev": "^2.4.2",
23 "ember-ajax": "^2.0.1",
24 "ember-bootstrap": "0.11.3",
25 "ember-cli": "2.8.0",
26 "ember-cli-app-version": "^1.0.0",
27 "ember-cli-babel": "^5.1.6",
28 "ember-cli-dependency-checker": "^1.2.0",
29 "ember-cli-htmlbars": "^1.0.3",
30 "ember-cli-htmlbars-inline-precompile": "^0.3.1",
31 "ember-cli-inject-live-reload": "^1.4.0",
32 "ember-cli-jshint": "^1.0.0",
33 "ember-cli-less": "^1.5.3",
34 "ember-cli-qunit": "^2.1.0",
35 "ember-cli-release": "^0.2.9",
36 "ember-cli-sri": "^2.1.0",
37 "ember-cli-test-loader": "^1.1.0",
38 "ember-cli-uglify": "^1.2.0",
39 "ember-data": "^2.8.0",
40 "ember-export-application-global": "^1.0.5",
41 "ember-i18n": "4.5.0",
42 "ember-load-initializers": "^0.5.1",
43 "ember-resolver": "^2.0.3",
44 "loader.js": "^4.0.1",
45 "materialize": "1.0.0"
46 }
47 }
1 <?xml version="1.0"?>
2 <!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
3 <cross-domain-policy>
4 <!-- Read this: www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html -->
5
6 <!-- Most restrictive policy: -->
7 <site-control permitted-cross-domain-policies="none"/>
8
9 <!-- Least restrictive policy: -->
10 <!--
11 <site-control permitted-cross-domain-policies="all"/>
12 <allow-access-from domain="*" to-ports="*" secure="false"/>
13 <allow-http-request-headers-from domain="*" headers="*" secure="false"/>
14 -->
15 </cross-domain-policy>
1 ../bower_components/materialize/font/material-design-icons
...\ No newline at end of file ...\ No newline at end of file
1 ../bower_components/materialize/font/roboto
...\ No newline at end of file ...\ No newline at end of file
No preview for this file type
1 # http://www.robotstxt.org
2 User-agent: *
3 Disallow:
1 /*jshint node:true*/
2 module.exports = {
3 "framework": "qunit",
4 "test_page": "tests/index.html?hidepassed",
5 "disable_watching": true,
6 "launch_in_ci": [
7 "PhantomJS"
8 ],
9 "launch_in_dev": [
10 "PhantomJS",
11 "Chrome"
12 ]
13 };
1 {
2 "predef": [
3 "document",
4 "window",
5 "location",
6 "setTimeout",
7 "$",
8 "-Promise",
9 "define",
10 "console",
11 "visit",
12 "exists",
13 "fillIn",
14 "click",
15 "keyEvent",
16 "triggerEvent",
17 "find",
18 "findWithAssert",
19 "wait",
20 "DS",
21 "andThen",
22 "currentURL",
23 "currentPath",
24 "currentRouteName"
25 ],
26 "node": false,
27 "browser": false,
28 "boss": true,
29 "curly": true,
30 "debug": false,
31 "devel": false,
32 "eqeqeq": true,
33 "evil": true,
34 "forin": false,
35 "immed": false,
36 "laxbreak": false,
37 "newcap": true,
38 "noarg": true,
39 "noempty": false,
40 "nonew": false,
41 "nomen": false,
42 "onevar": false,
43 "plusplus": false,
44 "regexp": false,
45 "undef": true,
46 "sub": true,
47 "strict": false,
48 "white": false,
49 "eqnull": true,
50 "esversion": 6,
51 "unused": true
52 }
1 import Ember from 'ember';
2
3 export default function destroyApp(application) {
4 Ember.run(application, 'destroy');
5 }
1 import { module } from 'qunit';
2 import Ember from 'ember';
3 import startApp from '../helpers/start-app';
4 import destroyApp from '../helpers/destroy-app';
5
6 const { RSVP: { Promise } } = Ember;
7
8 export default function(name, options = {}) {
9 module(name, {
10 beforeEach() {
11 this.application = startApp();
12
13 if (options.beforeEach) {
14 return options.beforeEach.apply(this, arguments);
15 }
16 },
17
18 afterEach() {
19 let afterEach = options.afterEach && options.afterEach.apply(this, arguments);
20 return Promise.resolve(afterEach).then(() => destroyApp(this.application));
21 }
22 });
23 }
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.