Compare commits
32
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1399746124 | ||
|
|
0a9a80065f | ||
|
|
266bdd8687 | ||
|
|
de44ec73f7 | ||
|
|
e60cc3a127 | ||
|
|
90c0b19f00 | ||
|
|
69586a809d | ||
|
|
fd4b970f41 | ||
|
|
b76ece5c49 | ||
|
|
9106137ee5 | ||
|
|
8edfef5fae | ||
|
|
995bc80f14 | ||
|
|
857f577df1 | ||
|
|
bdf457e20c | ||
|
|
77ea34e7ec | ||
|
|
7c4abc57f1 | ||
|
|
2c1e97acff | ||
|
|
29bbf6fe96 | ||
|
|
5eca562744 | ||
|
|
d7b505aeb3 | ||
|
|
6233ffe550 | ||
|
|
c229832734 | ||
|
|
52ff03592c | ||
|
|
cd74429dd7 | ||
|
|
88bb2b9311 | ||
|
|
2cb3fbeb85 | ||
|
|
7a0d3a0e73 | ||
|
|
d1a55a5171 | ||
|
|
c848f204b9 | ||
|
|
e76e383854 | ||
|
|
2817b4c389 | ||
|
|
e119f4a29e |
No files matched your search
@@ -1,20 +0,0 @@
|
||||
# EditorConfig helps developers define and maintain consistent
|
||||
# coding styles between different editors and IDEs
|
||||
# editorconfig.org
|
||||
|
||||
root = true
|
||||
|
||||
|
||||
[*]
|
||||
end_of_line = lf
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
||||
[*.hbs]
|
||||
insert_final_newline = false
|
||||
|
||||
[*.{diff,md}]
|
||||
trim_trailing_whitespace = false
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
/**
|
||||
Ember CLI sends analytics information by default. The data is completely
|
||||
anonymous, but there are times when you might want to disable this behavior.
|
||||
|
||||
Setting `disableAnalytics` to true will prevent any data from being sent.
|
||||
*/
|
||||
"disableAnalytics": true
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
# unconventional js
|
||||
/blueprints/*/files/
|
||||
/vendor/
|
||||
|
||||
# compiled output
|
||||
/dist/
|
||||
/tmp/
|
||||
/release/
|
||||
|
||||
# dependencies
|
||||
/bower_components/
|
||||
/node_modules/
|
||||
|
||||
# misc
|
||||
/coverage/
|
||||
!.*
|
||||
|
||||
# ember-try
|
||||
/.node_modules.ember-try/
|
||||
/bower.json.ember-try
|
||||
/package.json.ember-try
|
||||
@@ -1,47 +0,0 @@
|
||||
module.exports = {
|
||||
root: true,
|
||||
parserOptions: {
|
||||
ecmaVersion: 2017,
|
||||
sourceType: 'module'
|
||||
},
|
||||
globals: {
|
||||
console: true
|
||||
},
|
||||
plugins: [
|
||||
'ember'
|
||||
],
|
||||
extends: [
|
||||
'eslint:recommended',
|
||||
'plugin:ember/recommended'
|
||||
],
|
||||
env: {
|
||||
browser: true
|
||||
},
|
||||
rules: {
|
||||
'ember/avoid-leaking-state-in-ember-objects': 'warn',
|
||||
'no-console': 'off'
|
||||
},
|
||||
overrides: [
|
||||
// node files
|
||||
{
|
||||
files: [
|
||||
'.eslintrc.js',
|
||||
'.template-lintrc.js',
|
||||
'ember-cli-build.js',
|
||||
'testem.js',
|
||||
'blueprints/*/index.js',
|
||||
'config/**/*.js',
|
||||
'lib/*/index.js',
|
||||
'server/**/*.js'
|
||||
],
|
||||
parserOptions: {
|
||||
sourceType: 'script',
|
||||
ecmaVersion: 2015
|
||||
},
|
||||
env: {
|
||||
browser: false,
|
||||
node: true
|
||||
}
|
||||
}
|
||||
]
|
||||
};
|
||||
+9
-16
@@ -1,26 +1,19 @@
|
||||
# See https://help.github.com/ignore-files/ for more about ignoring files.
|
||||
|
||||
# compiled output
|
||||
/dist/
|
||||
/tmp/
|
||||
/dist
|
||||
/tmp
|
||||
|
||||
# dependencies
|
||||
/bower_components/
|
||||
/node_modules/
|
||||
/node_modules
|
||||
/bower_components
|
||||
|
||||
/scripts
|
||||
|
||||
# misc
|
||||
/.env*
|
||||
/.pnp*
|
||||
/.sass-cache
|
||||
/connect.lock
|
||||
/coverage/
|
||||
/coverage/*
|
||||
/libpeerconnection.log
|
||||
/npm-debug.log*
|
||||
/testem.log
|
||||
/yarn-error.log
|
||||
.tm_properties
|
||||
|
||||
# ember-try
|
||||
/.node_modules.ember-try/
|
||||
/bower.json.ember-try
|
||||
/package.json.ember-try
|
||||
npm-debug.log*
|
||||
testem.log
|
||||
@@ -0,0 +1 @@
|
||||
8.11.3
|
||||
@@ -1,9 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = {
|
||||
extends: 'recommended',
|
||||
|
||||
rules: {
|
||||
'simple-unless': false
|
||||
}
|
||||
};
|
||||
-32
@@ -1,32 +0,0 @@
|
||||
---
|
||||
language: node_js
|
||||
node_js:
|
||||
- "10"
|
||||
|
||||
sudo: false
|
||||
dist: xenial
|
||||
|
||||
notifications:
|
||||
email:
|
||||
on_success: never
|
||||
on_failure: always
|
||||
|
||||
addons:
|
||||
chrome: stable
|
||||
|
||||
cache:
|
||||
directories:
|
||||
- $HOME/.npm
|
||||
|
||||
env:
|
||||
global:
|
||||
# See https://git.io/vdao3 for details.
|
||||
- JOBS=1
|
||||
|
||||
before_install:
|
||||
- npm config set spin false
|
||||
|
||||
script:
|
||||
- npm run lint:hbs
|
||||
- npm run lint:js
|
||||
- npm test
|
||||
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"ignore_dirs": ["tmp", "dist"]
|
||||
}
|
||||
@@ -1,117 +0,0 @@
|
||||
[](https://travis-ci.org/67P/kredits-web)
|
||||
|
||||
# kredits-web
|
||||
|
||||
This README outlines the details of collaborating on this Ember application.
|
||||
A short introduction of this app could easily go here.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
You will need the following things properly installed on your computer.
|
||||
|
||||
* [Git](https://git-scm.com/)
|
||||
* [Node.js](https://nodejs.org/) (with npm)
|
||||
* [Ember CLI](https://ember-cli.com/)
|
||||
* [Google Chrome](https://google.com/chrome/)
|
||||
|
||||
## Installation
|
||||
|
||||
* `git clone git@github.com:67P/kredits-web.git` this repository
|
||||
* `cd kredits-web`
|
||||
* `npm install`
|
||||
|
||||
## Running / Development
|
||||
|
||||
|
||||
* `ember serve` - by default kredits-web connects to the Ethreum Kovan network
|
||||
* Visit your app at [http://localhost:4200](http://localhost:4200).
|
||||
* Visit your tests at [http://localhost:4200/tests](http://localhost:4200/tests).
|
||||
|
||||
See [working with locally deployed contracts](https://github.com/67P/kredits-web#working-with-locally-deployed-contracts) for details on how to develop with locally deployed contracts.
|
||||
|
||||
### Code Generators
|
||||
|
||||
Make use of the many generators for code, try `ember help generate` for more details
|
||||
|
||||
### Running Tests
|
||||
|
||||
* `ember test`
|
||||
* `ember test --server`
|
||||
|
||||
### Linting
|
||||
|
||||
* `npm run lint:hbs`
|
||||
* `npm run lint:js`
|
||||
* `npm run lint:js -- --fix`
|
||||
|
||||
### Building
|
||||
|
||||
* `ember build` (development)
|
||||
* `ember build --environment production` (production)
|
||||
|
||||
### Deploying
|
||||
|
||||
_(You need collaborator permissions on the 5apps Deploy project.)_
|
||||
|
||||
`npm run deploy`
|
||||
|
||||
## Working with locally deployed contracts
|
||||
|
||||
The smart contracts and their JavaScript wrapper library are developed in the
|
||||
[kredits-contracts](https://github.com/67P/kredits-contracts) repo/package.
|
||||
|
||||
You can run `kredits-web` on your machine, against a local, simulated Ethereum
|
||||
network, provided e.g. by [ganache](http://truffleframework.com/ganache/).
|
||||
|
||||
[kredits-contracts](https://github.com/67P/kredits-contracts) holds all the tools
|
||||
to start and set up such a simulated network, as well as to deploy smart
|
||||
contracts to it.
|
||||
|
||||
These are the basic steps to get up and running:
|
||||
|
||||
#### 1. IPFS
|
||||
|
||||
Run a local IPFS deamon in offline mode.
|
||||
|
||||
* Make sure CORS headers are configured. See [IPFS](#ipfs) for more info.
|
||||
* `ipfs daemon --offline`
|
||||
|
||||
#### 2. kredits-contracts
|
||||
|
||||
Get your local Ethereum development node running. (See [kredits-contracts README](https://github.com/67P/kredits-contracts)
|
||||
for details.
|
||||
|
||||
* Clone [kredits-contracts](https://github.com/67P/kredits-contracts)
|
||||
* `npm install`
|
||||
* `npm run devchain` - runs a local development chain
|
||||
* `npm run bootstrap` - bootstrap runs deploys all the contracts
|
||||
* `npm link` - make the `kredits-contracts` module linkable as `kredits-contracts` on your machine (currently broken :( )
|
||||
|
||||
#### 3. kredits-web
|
||||
|
||||
With IPFS and Ethereum/ganache running, you can now start this Ember app.
|
||||
|
||||
* `npm link kredits-contracts` - link the local `kredits-contracts` package
|
||||
* `npm run start:local` - WEB3_PROVIDER_URL=http://localhost:7545 must be set for local settings
|
||||
|
||||
If you restart the devchain your network ID changes. So kredits-contracts does not find the correct DAO Kernel address.
|
||||
If that is the case the DAO address must be provided as `KREDITS_KERNEL_ADDRESS` environment variable.
|
||||
|
||||
* `KREDITS_KERNEL_ADDRESS=<0xYOURADDRESS> npm run start:local` - find your address with the `npm run dao:address` command in the kredits-contracts repo.
|
||||
|
||||
#### IPFS
|
||||
|
||||
Install IPFS with your favorite package manager and run
|
||||
|
||||
ipfs init (on initial installation)
|
||||
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["localhost:4200"]'
|
||||
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "GET", "POST"]'
|
||||
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Credentials '["true"]'
|
||||
|
||||
## Further Reading / Useful Links
|
||||
|
||||
* [ember.js](https://emberjs.com/)
|
||||
* [ember-cli](https://ember-cli.com/)
|
||||
* Development Browser Extensions
|
||||
* [ember inspector for chrome](https://chrome.google.com/webstore/detail/ember-inspector/bmdblncegkenkacieihfhpjfppoconhi)
|
||||
* [ember inspector for firefox](https://addons.mozilla.org/en-US/firefox/addon/ember-inspector/)
|
||||
-14
@@ -1,14 +0,0 @@
|
||||
import Application from '@ember/application';
|
||||
import Resolver from './resolver';
|
||||
import loadInitializers from 'ember-load-initializers';
|
||||
import config from './config/environment';
|
||||
|
||||
const App = Application.extend({
|
||||
modulePrefix: config.modulePrefix,
|
||||
podModulePrefix: config.podModulePrefix,
|
||||
Resolver
|
||||
});
|
||||
|
||||
loadInitializers(App, config.modulePrefix);
|
||||
|
||||
export default App;
|
||||
@@ -1,70 +0,0 @@
|
||||
import Component from '@ember/component';
|
||||
import { computed } from '@ember/object';
|
||||
import { and, notEmpty } from '@ember/object/computed';
|
||||
|
||||
export default Component.extend({
|
||||
|
||||
attributes: null,
|
||||
contributors: Object.freeze([]),
|
||||
|
||||
isValidContributor: notEmpty('contributorId'),
|
||||
isValidKind: notEmpty('kind'),
|
||||
isValidAmount: computed('amount', function() {
|
||||
return parseInt(this.amount, 10) > 0;
|
||||
}),
|
||||
isValidDescription: notEmpty('description'),
|
||||
isValidUrl: notEmpty('url'),
|
||||
isValid: and('isValidContributor',
|
||||
'isValidKind',
|
||||
'isValidAmount',
|
||||
'isValidDescription'),
|
||||
|
||||
init () {
|
||||
this._super(...arguments);
|
||||
this.set('defaultDate', new Date());
|
||||
|
||||
// Default attributes used by reset
|
||||
this.set('attributes', {
|
||||
contributorId: null,
|
||||
kind: null,
|
||||
date: [new Date()],
|
||||
amount: null,
|
||||
description: null,
|
||||
url: null,
|
||||
});
|
||||
|
||||
this.reset();
|
||||
},
|
||||
|
||||
reset () {
|
||||
this.setProperties(this.attributes);
|
||||
},
|
||||
|
||||
actions: {
|
||||
|
||||
submit () {
|
||||
if (!this.isValid) {
|
||||
alert('Invalid data. Please review and try again.');
|
||||
return;
|
||||
}
|
||||
|
||||
const attributes = this.getProperties(Object.keys(this.attributes));
|
||||
const [ date/* , time */ ] = attributes.date[0].toISOString().split('T');
|
||||
attributes.date = date;
|
||||
|
||||
this.set('inProgress', true);
|
||||
|
||||
this.save(attributes)
|
||||
.then((/*contribution*/) => {
|
||||
this.reset();
|
||||
}, err => {
|
||||
console.warn(err);
|
||||
window.alert('Something went wrong. Check the browser console for details.');
|
||||
})
|
||||
.finally(() => this.set('inProgress', false));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
@@ -1,58 +0,0 @@
|
||||
<form {{action "submit" on="submit"}}>
|
||||
<p>
|
||||
<select required onchange={{action (mut contributorId) value="target.value"}}>
|
||||
<option value="" selected disabled hidden>Contributor</option>
|
||||
{{#each contributors as |contributor|}}
|
||||
<option value={{contributor.id}} selected={{eq contributorId contributor.id}}>{{contributor.name}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</p>
|
||||
<p>
|
||||
<select required onchange={{action (mut kind) value="target.value"}}>
|
||||
<option value="" selected disabled hidden>Kind</option>
|
||||
<option value="community" selected={{eq kind "community"}}>Community</option>
|
||||
<option value="design" selected={{eq kind "design"}}>Design</option>
|
||||
<option value="dev" selected={{eq kind "dev"}}>Development</option>
|
||||
<option value="docs" selected={{eq kind "docs"}}>Documentation</option>
|
||||
<option value="ops" selected={{eq kind "ops"}}>IT Operations</option>
|
||||
<option value="special" selected={{eq kind "special"}}>Special</option>
|
||||
</select>
|
||||
</p>
|
||||
<p>
|
||||
{{ember-flatpickr
|
||||
allowInput=false
|
||||
altFormat="F j, Y"
|
||||
altInput=true
|
||||
altInputClass="date-alt"
|
||||
date=date
|
||||
dateFormat="Y-m-d"
|
||||
defaultDate=defaultDate
|
||||
maxDate=defaultDate
|
||||
onChange=(action (mut date))
|
||||
}}
|
||||
</p>
|
||||
<p>
|
||||
{{input type="text"
|
||||
placeholder="500"
|
||||
value=amount
|
||||
class=(if isValidAmount "valid" "")}}
|
||||
</p>
|
||||
<p>
|
||||
{{input type="text"
|
||||
placeholder="Description"
|
||||
value=description
|
||||
class=(if isValidDescription "valid" "")}}
|
||||
</p>
|
||||
<p>
|
||||
{{input type="text"
|
||||
placeholder="URL (optional)"
|
||||
value=url
|
||||
class=(if isValidUrl "valid" "")}}
|
||||
</p>
|
||||
<p class="actions">
|
||||
{{input type="submit"
|
||||
disabled=inProgress
|
||||
value=(if inProgress "Processing" "Save")}}
|
||||
</p>
|
||||
</form>
|
||||
|
||||
@@ -1,78 +0,0 @@
|
||||
import Component from '@ember/component';
|
||||
import { and, notEmpty } from '@ember/object/computed';
|
||||
import { inject as service } from '@ember/service';
|
||||
import { isPresent } from '@ember/utils';
|
||||
|
||||
export default Component.extend({
|
||||
|
||||
kredits: service(),
|
||||
|
||||
attributes: null,
|
||||
|
||||
// TODO: add proper address validation
|
||||
isValidAccount: notEmpty('account'),
|
||||
isValidName: notEmpty('name'),
|
||||
isValidURL: notEmpty('url'),
|
||||
isValidGithubUID: notEmpty('github_uid'),
|
||||
isValidGithubUsername: notEmpty('github_username'),
|
||||
isValidGiteaUsername: notEmpty('gitea_username'),
|
||||
isValidWikiUsername: notEmpty('wiki_username'),
|
||||
isValid: and(
|
||||
'isValidAccount',
|
||||
'isValidName',
|
||||
'isValidGithubUID'
|
||||
),
|
||||
|
||||
inProgress: false,
|
||||
|
||||
init () {
|
||||
this._super(...arguments);
|
||||
this.setDefaultAttributes();
|
||||
this.reset();
|
||||
},
|
||||
|
||||
setDefaultAttributes () {
|
||||
if (isPresent(this.attributes)) { return; }
|
||||
|
||||
this.set('attributes', {
|
||||
account: null,
|
||||
name: null,
|
||||
kind: 'person',
|
||||
url: null,
|
||||
github_username: null,
|
||||
github_uid: null,
|
||||
gitea_username: null,
|
||||
wiki_username: null
|
||||
});
|
||||
},
|
||||
|
||||
reset: function() {
|
||||
this.setProperties(this.attributes);
|
||||
},
|
||||
|
||||
actions: {
|
||||
|
||||
submit () {
|
||||
if (!this.isValid) {
|
||||
alert('Invalid data. Please review and try again.');
|
||||
return;
|
||||
}
|
||||
|
||||
const attributes = Object.keys(this.attributes);
|
||||
const contributor = this.getProperties(attributes);
|
||||
|
||||
this.set('inProgress', true);
|
||||
|
||||
this.save(contributor).then(() => {
|
||||
this.reset();
|
||||
}).catch(err => {
|
||||
console.warn(err);
|
||||
window.alert('Something went wrong. Please check the browser console.');
|
||||
}).finally(() => {
|
||||
this.set('inProgress', false);
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
@@ -1,50 +0,0 @@
|
||||
<form {{action "submit" on="submit"}}>
|
||||
<p>
|
||||
<label for="c-account">Ethereum account</label>
|
||||
{{input name="account" id="c-account"
|
||||
type="text" value=account
|
||||
placeholder="0xF18E631Ea191aE4ebE70046Fcb01a436554421BA4"
|
||||
class=(if isValidAccount "valid" "")}}
|
||||
</p>
|
||||
<p>
|
||||
<label for="c-kind">Kind</label>
|
||||
<select required onchange={{action (mut kind) value="target.value"}} id="c-kind">
|
||||
<option value="person" selected={{eq kind "person"}}>Person</option>
|
||||
<option value="organization" selected={{eq kind "organization"}}>Organization</option>
|
||||
</select>
|
||||
</p>
|
||||
<p>
|
||||
<label for="c-name">Name</label>
|
||||
{{input name="name" type="text" value=name placeholder="Zero Cool"
|
||||
class=(if isValidName "valid" "") id="c-name"}}
|
||||
</p>
|
||||
<p>
|
||||
<label for="c-url">URL</label>
|
||||
{{input name="url" type="text" value=url placeholder="http://zerocool.bit"
|
||||
class=(if isValidURL "valid" "") id="c-url"}}
|
||||
</p>
|
||||
<p>
|
||||
<label for="c-github-uid">GitHub UID</label>
|
||||
{{input name="github_uid" type="text" value=github_uid placeholder="2342"
|
||||
class=(if isValidGithubUID "valid" "") id="c-github-uid"}}
|
||||
</p>
|
||||
<p>
|
||||
<label for="c-github-username">GitHub username</label>
|
||||
{{input name="github_username" type="text" value=github_username placeholder="zerocool"
|
||||
class=(if isValidGithubUsername "valid" "") id="c-github-username"}}
|
||||
</p>
|
||||
<p>
|
||||
<label for="c-gitea-username">Gitea username</label>
|
||||
{{input name="gitea_username" type="text" value=gitea_username placeholder="zerocool"
|
||||
class=(if isValidGiteaUsername "valid" "") id="c-gitea-username"}}
|
||||
</p>
|
||||
<p>
|
||||
<label for="c-wiki-username">Wiki username</label>
|
||||
{{input name="wiki_username" type="text" value=wiki_username placeholder="ZeroCool"
|
||||
class=(if isValidWikiUsername "valid" "") id="c-wiki-username"}}
|
||||
</p>
|
||||
<p class="actions">
|
||||
{{input type="submit" disabled=inProgress
|
||||
value=(if inProgress "Processing" "Save")}}
|
||||
</p>
|
||||
</form>
|
||||
@@ -1,64 +0,0 @@
|
||||
import Component from '@ember/component';
|
||||
import { computed } from '@ember/object';
|
||||
import { and, notEmpty } from '@ember/object/computed';
|
||||
|
||||
export default Component.extend({
|
||||
|
||||
attributes: null,
|
||||
contributors: Object.freeze([]),
|
||||
|
||||
isValidContributor: notEmpty('contributorId'),
|
||||
isValidAmount: computed('amount', function() {
|
||||
return parseInt(this.amount, 10) > 0;
|
||||
}),
|
||||
isValidDescription: notEmpty('description'),
|
||||
isValidUrl: notEmpty('url'),
|
||||
isValid: and('isValidContributor',
|
||||
'isValidAmount',
|
||||
'isValidDescription'),
|
||||
|
||||
init () {
|
||||
this._super(...arguments);
|
||||
|
||||
// Default attributes used by reset
|
||||
this.set('attributes', {
|
||||
contributorId: null,
|
||||
kind: 'community',
|
||||
amount: null,
|
||||
description: null,
|
||||
url: null,
|
||||
});
|
||||
},
|
||||
|
||||
didInsertElement() {
|
||||
this._super(...arguments);
|
||||
this.reset();
|
||||
},
|
||||
|
||||
reset: function() {
|
||||
this.setProperties(this.attributes);
|
||||
},
|
||||
|
||||
actions: {
|
||||
submit() {
|
||||
if (!this.isValid) {
|
||||
alert('Invalid data. Please review and try again.');
|
||||
return;
|
||||
}
|
||||
|
||||
let attributes = Object.keys(this.attributes);
|
||||
let proposal = this.getProperties(attributes);
|
||||
let saved = this.save(proposal);
|
||||
|
||||
// The promise handles inProgress
|
||||
this.set('inProgress', saved);
|
||||
|
||||
saved.then(() => {
|
||||
this.reset();
|
||||
window.scroll(0,0);
|
||||
window.alert('Proposal added.');
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
@@ -1,44 +0,0 @@
|
||||
<form {{action "submit" on="submit"}}>
|
||||
<p>
|
||||
<select required onchange={{action (mut contributorId) value="target.value"}}>
|
||||
<option value="" selected disabled hidden>Contributor</option>
|
||||
{{#each contributors as |contributor|}}
|
||||
<option value={{contributor.id}} selected={{eq contributorId contributor.id}}>{{contributor.github_username}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</p>
|
||||
<p>
|
||||
<select required onchange={{action (mut kind) value="target.value"}}>
|
||||
<option value="community" selected={{eq kind "community"}}>Community</option>
|
||||
<option value="design" selected={{eq kind "design"}}>Design</option>
|
||||
<option value="dev" selected={{eq kind "dev"}}>Development</option>
|
||||
<option value="docs" selected={{eq kind "docs"}}>Documentation</option>
|
||||
<option value="ops" selected={{eq kind "ops"}}>IT Operations</option>
|
||||
</select>
|
||||
</p>
|
||||
<p>
|
||||
{{input type="text"
|
||||
placeholder="100"
|
||||
value=amount
|
||||
class=(if isValidAmount "valid" "")}}
|
||||
</p>
|
||||
<p>
|
||||
{{input type="text"
|
||||
placeholder="Description"
|
||||
value=description
|
||||
class=(if isValidDescription "valid" "")}}
|
||||
</p>
|
||||
<p>
|
||||
{{input type="text"
|
||||
placeholder="URL (optional)"
|
||||
value=url
|
||||
class=(if isValidUrl "valid" "")}}
|
||||
</p>
|
||||
<p class="actions">
|
||||
{{input type="submit"
|
||||
disabled=(is-pending inProgress)
|
||||
value=(if (is-pending inProgress) "Processing" "Save")}}
|
||||
{{#link-to "index"}}Back{{/link-to}}
|
||||
</p>
|
||||
</form>
|
||||
|
||||
@@ -1,64 +0,0 @@
|
||||
import Component from '@ember/component';
|
||||
import { computed } from '@ember/object';
|
||||
|
||||
let categoryColors = {
|
||||
community: "#fb6868",
|
||||
design: "#fbe468",
|
||||
dev: "#e068fb",
|
||||
docs: "#97fb68",
|
||||
ops: "#8f68fb",
|
||||
}
|
||||
|
||||
export default Component.extend({
|
||||
|
||||
contributions: null,
|
||||
chartOptions: Object.freeze({
|
||||
legend: {
|
||||
display: false
|
||||
}
|
||||
}),
|
||||
|
||||
chartData: computed('contributions', function() {
|
||||
let kredits = this.contributions
|
||||
.filterBy('vetoed', false)
|
||||
.map(c => {
|
||||
return { kind: c.kind, amount: c.amount }
|
||||
})
|
||||
.reduce(function (kinds, c) {
|
||||
if (c.kind in kinds) {
|
||||
kinds[c.kind] = kinds[c.kind] + c.amount
|
||||
} else {
|
||||
kinds[c.kind] = c.amount;
|
||||
}
|
||||
return kinds;
|
||||
}, {});
|
||||
|
||||
return {
|
||||
datasets: [{
|
||||
data: [
|
||||
kredits['community'],
|
||||
kredits['design'],
|
||||
kredits['dev'],
|
||||
kredits['ops'],
|
||||
kredits['docs'],
|
||||
],
|
||||
borderColor: [
|
||||
categoryColors.community,
|
||||
categoryColors.design,
|
||||
categoryColors.dev,
|
||||
categoryColors.ops,
|
||||
categoryColors.docs,
|
||||
],
|
||||
borderWidth: 1
|
||||
}],
|
||||
labels: [
|
||||
'Community',
|
||||
'Design',
|
||||
'Development',
|
||||
'Operations & Infrastructure',
|
||||
'Documentation'
|
||||
],
|
||||
}
|
||||
})
|
||||
|
||||
});
|
||||
@@ -1,7 +0,0 @@
|
||||
<div class="chart">
|
||||
{{ember-chart type="doughnut"
|
||||
data=chartData
|
||||
options=chartOptions
|
||||
width=200
|
||||
height=200}}
|
||||
</div>
|
||||
@@ -1,64 +0,0 @@
|
||||
import Component from '@ember/component';
|
||||
import { computed } from '@ember/object';
|
||||
import { sort } from '@ember/object/computed';
|
||||
import { isPresent } from '@ember/utils';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default Component.extend({
|
||||
|
||||
tagName: 'div',
|
||||
classNames: ['contributions'],
|
||||
|
||||
showQuickFilter: false,
|
||||
hideSmallContributions: false,
|
||||
contributorId: null,
|
||||
contributionKind: null,
|
||||
|
||||
kredits: service(),
|
||||
|
||||
contributorsSorting: Object.freeze(['name:asc']),
|
||||
contributors: sort('kredits.contributors', 'contributorsSorting'),
|
||||
|
||||
contributorsActive: computed('contributors.[]', 'contributions', function() {
|
||||
let activeIds = this.contributions.mapBy('contributorId')
|
||||
.map(id => id.toString())
|
||||
.uniq();
|
||||
return this.contributors.filter(c => {
|
||||
return activeIds.includes(c.id.toString());
|
||||
});
|
||||
}),
|
||||
|
||||
contributionKinds: computed('contributions.[]', function() {
|
||||
return this.contributions.mapBy('kind').uniq();
|
||||
}),
|
||||
|
||||
contributionsFiltered: computed('contributions.[]', 'hideSmallContributions', 'contributorId', 'contributionKind', function() {
|
||||
return this.contributions.filter(c => {
|
||||
let included = true;
|
||||
|
||||
if (this.hideSmallContributions &&
|
||||
c.amount <= 500) { included = false; }
|
||||
|
||||
if (isPresent(this.contributorId) &&
|
||||
c.contributorId.toString() !== this.contributorId.toString()) { included = false; }
|
||||
|
||||
if (isPresent(this.contributionKind) &&
|
||||
c.kind !== this.contributionKind) { included = false; }
|
||||
|
||||
return included;
|
||||
});
|
||||
}),
|
||||
|
||||
actions: {
|
||||
|
||||
veto (contributionId) {
|
||||
if (this.contractInteractionEnabled) {
|
||||
this.vetoContribution(contributionId);
|
||||
} else {
|
||||
window.alert('Only members can veto contributions. Please ask someone to set you up.');
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
@@ -1,58 +0,0 @@
|
||||
{{#if showQuickFilter}}
|
||||
<div class="quick-filter">
|
||||
<p>
|
||||
<label class="filter-contributor">
|
||||
Contributor:
|
||||
<select onchange={{action (mut contributorId) value="target.value"}}>
|
||||
<option value="" selected>all</option>
|
||||
{{#each contributorsActive as |contributor|}}
|
||||
<option value={{contributor.id}} selected={{eq contributorId contributor.id}}>{{contributor.name}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</label>
|
||||
|
||||
<label class="filter-contribution-kind">
|
||||
Kind:
|
||||
<select onchange={{action (mut contributionKind) value="target.value"}}>
|
||||
<option value="" selected>all</option>
|
||||
{{#each contributionKinds as |kind|}}
|
||||
<option value={{kind}} selected={{eq contributionKind kind}}>{{capitalize-string kind}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</label>
|
||||
|
||||
<label class="filter-contribution-size">
|
||||
{{input type="checkbox" checked=hideSmallContributions}}
|
||||
Hide small contributions
|
||||
</label>
|
||||
</p>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<ul class="contribution-list">
|
||||
{{#each contributionsFiltered as |contribution|}}
|
||||
<li data-contribution-id={{contribution.id}} class="{{contribution-status contribution}} {{if contribution.vetoed "vetoed"}}">
|
||||
<p class="meta">
|
||||
<span class="recipient">{{user-avatar contributor=contribution.contributor}}</span>
|
||||
<span class="category {{contribution.kind}}">({{contribution.kind}})</span>
|
||||
<span class="title">
|
||||
{{#if contribution.url}}
|
||||
<a href={{contribution.url}} target="_blank" rel="noopener">{{contribution.description}}</a>
|
||||
{{else}}
|
||||
{{contribution.description}}
|
||||
{{/if}}
|
||||
</span>
|
||||
</p>
|
||||
<p class="kredits-amount">
|
||||
<span class="amount">{{contribution.amount}}</span><span class="symbol">₭S</span>
|
||||
</p>
|
||||
{{#unless contribution.vetoed}}
|
||||
{{#unless (is-confirmed-contribution contribution)}}
|
||||
<p class="voting">
|
||||
<button {{action "veto" contribution.id}} class="small danger">veto</button>
|
||||
</p>
|
||||
{{/unless}}
|
||||
{{/unless}}
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
@@ -1,22 +0,0 @@
|
||||
import Component from '@ember/component';
|
||||
|
||||
export default Component.extend({
|
||||
|
||||
tagName: 'table',
|
||||
classNames: 'contributor-list',
|
||||
selectedContributor: null,
|
||||
|
||||
actions: {
|
||||
|
||||
toggleContributorInfo(contributor) {
|
||||
if (contributor.showMetadata) {
|
||||
contributor.set('showMetadata', false);
|
||||
} else {
|
||||
this.contributorList.setEach('showMetadata', false);
|
||||
contributor.set('showMetadata', true);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
@@ -1,39 +0,0 @@
|
||||
<tbody>
|
||||
{{#each contributorList as |c|}}
|
||||
<tr role="button" class={{if (is-current-user c.contributor) "current-user"}} {{action "toggleContributorInfo" c}}>
|
||||
<td class="person">
|
||||
{{user-avatar contributor=c.contributor}} {{c.contributor.name}}
|
||||
</td>
|
||||
<td class="kredits">
|
||||
<span class="amount">
|
||||
{{#if showUnconfirmedKredits}}
|
||||
{{c.amountTotal}}
|
||||
{{else}}
|
||||
{{c.amountConfirmed}}
|
||||
{{/if}}
|
||||
</span>
|
||||
<span class="symbol">₭S</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="metadata {{if (is-current-user c.contributor) "current-user"}} {{if c.showMetadata "visible"}}">
|
||||
<td colspan="2">
|
||||
<ul>
|
||||
<li>
|
||||
<a href="https://rinkeby.etherscan.io/address/{{c.contributor.account}}" target="_blank" rel="noopener">Inspect Ethereum transactions</a>
|
||||
</li>
|
||||
{{#if c.contributor.ipfsHash}}
|
||||
<li>
|
||||
<a href="https://ipfs.io/ipfs/{{c.contributor.ipfsHash}}" target="_blank" rel="noopener">Inspect IPFS profile</a>
|
||||
</li>
|
||||
{{/if}}
|
||||
<li>
|
||||
{{link-to "Edit profile" "contributors.edit" c.contributor.id}}
|
||||
</li>
|
||||
</ul>
|
||||
{{#if c.showMetadata}}
|
||||
<pre>{{c.contributor.ipfsData}}</pre>
|
||||
{{/if}}
|
||||
</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
@@ -1,7 +0,0 @@
|
||||
import Component from '@ember/component';
|
||||
|
||||
export default Component.extend({
|
||||
|
||||
classNames: ['loading-spinner']
|
||||
|
||||
});
|
||||
@@ -1,14 +0,0 @@
|
||||
<p>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
version="1.1" x="0px" y="0px" viewBox="0 0 132 100"
|
||||
enable-background="new 0 0 100 100" xml:space="preserve">
|
||||
<path id="path-comet"
|
||||
d="M79.062,24.173L79.062,24.173l-0.021-0.011c-0.068-0.03-0.137-0.062-0.204-0.093L42.392,7.337
|
||||
c0,0,3.065,14.104,4.458,18.019l0,0c0,0-41.754-12.481-46.85-13.67c1.67,6.52,30.607,62.492,30.607,62.492
|
||||
c5.848,11.873,19.394,18.485,33.522,18.485c19.811,0,35.87-16.059,35.87-35.869C100,42.313,91.418,29.837,79.062,24.173z">
|
||||
</path>
|
||||
</svg>
|
||||
</p>
|
||||
<p>
|
||||
Loading data...
|
||||
</p>
|
||||
@@ -1,20 +0,0 @@
|
||||
import Component from '@ember/component';
|
||||
|
||||
export default Component.extend({
|
||||
|
||||
tagName: 'ul',
|
||||
classNames: ['proposal-list'],
|
||||
|
||||
actions: {
|
||||
|
||||
confirm(proposalId) {
|
||||
if (this.contractInteractionEnabled) {
|
||||
this.confirmProposal(proposalId);
|
||||
} else {
|
||||
window.alert('Only members can vote on proposals. Please ask someone to set you up.');
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
@@ -1,20 +0,0 @@
|
||||
{{#each proposals as |proposal|}}
|
||||
<li data-proposal-id={{proposal.id}} class={{if proposal.isExecuted "confirmed" "unconfirmed"}}>
|
||||
<p class="meta">
|
||||
<span class="category {{proposal.kind}}">♥ ({{proposal.kind}})</span>
|
||||
<span class="recipient">{{proposal.contributor.name}}:</span>
|
||||
</p>
|
||||
<p class="kredits-amount">
|
||||
<span class="amount">{{proposal.amount}}</span><span class="symbol">₭S</span>
|
||||
</p>
|
||||
<p class="description">
|
||||
<span class="description">{{proposal.description}}</span>
|
||||
</p>
|
||||
<p class="voting">
|
||||
{{#unless proposal.isExecuted}}
|
||||
<span class="votes">({{proposal.votesCount}}/{{proposal.votesNeeded}} votes)</span>
|
||||
<button {{action "confirm" proposal.id}}>+1</button>
|
||||
{{/unless}}
|
||||
</p>
|
||||
</li>
|
||||
{{/each}}
|
||||
@@ -1,11 +0,0 @@
|
||||
import Component from '@ember/component';
|
||||
import { alias } from '@ember/object/computed';
|
||||
|
||||
export default Component.extend({
|
||||
contributor: null,
|
||||
tagName: 'img',
|
||||
classNames: ['avatar'],
|
||||
attributeBindings: ['src', 'title'],
|
||||
src: alias('contributor.avatarURL'),
|
||||
title: alias('contributor.name')
|
||||
});
|
||||
Whitespace-only changes.
@@ -1,6 +0,0 @@
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default Controller.extend({
|
||||
kredits: service(),
|
||||
});
|
||||
@@ -1,30 +0,0 @@
|
||||
import Controller from '@ember/controller';
|
||||
import { alias, filterBy, sort } from '@ember/object/computed';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default Controller.extend({
|
||||
|
||||
kredits: service(),
|
||||
|
||||
contributors: alias('kredits.contributors'),
|
||||
minedContributors: filterBy('contributors', 'id'),
|
||||
|
||||
contributorsSorting: Object.freeze(['name:asc']),
|
||||
sortedContributors: sort('minedContributors', 'contributorsSorting'),
|
||||
|
||||
actions: {
|
||||
|
||||
save (contribution) {
|
||||
const contributor = this.contributors.findBy('id', contribution.contributorId);
|
||||
contribution.contributorIpfsHash = contributor.ipfsHash;
|
||||
|
||||
return this.kredits.addContribution(contribution)
|
||||
.then(contribution => {
|
||||
this.transitionToRoute('index');
|
||||
return contribution;
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
@@ -1,18 +0,0 @@
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default Controller.extend({
|
||||
|
||||
kredits: service(),
|
||||
|
||||
actions: {
|
||||
|
||||
save (attributes) {
|
||||
return this.kredits
|
||||
.updateContributor(this.model.id, attributes)
|
||||
.then(() => this.transitionToRoute('index'))
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
@@ -1,18 +0,0 @@
|
||||
import Controller from '@ember/controller';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default Controller.extend({
|
||||
|
||||
kredits: service(),
|
||||
|
||||
actions: {
|
||||
|
||||
save (contributor) {
|
||||
return this.kredits
|
||||
.addContributor(contributor)
|
||||
.then(() => this.transitionToRoute('index'))
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
@@ -1,54 +0,0 @@
|
||||
import Controller from '@ember/controller';
|
||||
import { computed } from '@ember/object';
|
||||
import { alias, not, sort } from '@ember/object/computed';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default Controller.extend({
|
||||
kredits: service(),
|
||||
currentBlock: alias('kredits.currentBlock'),
|
||||
|
||||
contributions: alias('kredits.contributions'),
|
||||
contributionsConfirmed: alias('kredits.contributionsConfirmed'),
|
||||
contributionsUnconfirmed: alias('kredits.contributionsUnconfirmed'),
|
||||
|
||||
contributionsSorting: Object.freeze(['date:desc', 'time:desc', 'id:desc']),
|
||||
contributionsUnconfirmedSorted: sort('contributionsUnconfirmed', 'contributionsSorting'),
|
||||
contributionsConfirmedSorted: sort('contributionsConfirmed', 'contributionsSorting'),
|
||||
|
||||
kreditsByContributor: alias('kredits.kreditsByContributor'),
|
||||
|
||||
kreditsToplistSorting: computed('showUnconfirmedKredits', function(){
|
||||
return this.showUnconfirmedKredits ? ['amountTotal:desc'] : ['amountConfirmed:desc'];
|
||||
}),
|
||||
kreditsToplist: sort('kreditsByContributor', 'kreditsToplistSorting'),
|
||||
|
||||
showUnconfirmedKredits: true,
|
||||
hideUnconfirmedKredits: not('showUnconfirmedKredits'),
|
||||
|
||||
showQuickFilterUnconfirmed: false,
|
||||
showQuickFilterConfirmed: false,
|
||||
|
||||
actions: {
|
||||
|
||||
vetoContribution (contributionId) {
|
||||
this.kredits.veto(contributionId).then(transaction => {
|
||||
console.debug('[controllers:index] Veto submitted to Ethereum blockhain: '+transaction.hash);
|
||||
});
|
||||
},
|
||||
|
||||
confirmProposal (proposalId) {
|
||||
this.kredits.vote(proposalId).then(transaction => {
|
||||
console.debug('[controllers:index] Vote submitted to Ethereum blockhain: '+transaction.hash);
|
||||
});
|
||||
},
|
||||
|
||||
toggleQuickFilterUnconfirmed () {
|
||||
this.toggleProperty('showQuickFilterUnconfirmed');
|
||||
},
|
||||
|
||||
toggleQuickFilterConfirmed () {
|
||||
this.toggleProperty('showQuickFilterConfirmed');
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
@@ -1,24 +0,0 @@
|
||||
import Controller from '@ember/controller';
|
||||
import { alias, filterBy } from '@ember/object/computed';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default Controller.extend({
|
||||
kredits: service(),
|
||||
|
||||
contributors: alias('kredits.contributors'),
|
||||
minedContributors: filterBy('contributors', 'id'),
|
||||
|
||||
actions: {
|
||||
save(proposal) {
|
||||
// contributorIpfsHash is needed for the proposal ipfs data. I'm not happy to do this here but I think to load all the contributors in addProposal again is a bit too much. I hope we can refactor it later.
|
||||
let contributor = this.contributors.findBy('id', proposal.contributorId);
|
||||
proposal.contributorIpfsHash = contributor.get('ipfsHash');
|
||||
|
||||
return this.kredits.addProposal(proposal)
|
||||
.then((proposal) => {
|
||||
this.transitionToRoute('index');
|
||||
return proposal;
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
Whitespace-only changes.
@@ -1,7 +0,0 @@
|
||||
import Helper from '@ember/component/helper';
|
||||
|
||||
export default Helper.extend({
|
||||
compute([string]) {
|
||||
return string.charAt(0).toUpperCase() + string.slice(1);
|
||||
}
|
||||
});
|
||||
@@ -1,20 +0,0 @@
|
||||
import Helper from '@ember/component/helper';
|
||||
import { inject as service } from '@ember/service';
|
||||
import { alias } from '@ember/object/computed';
|
||||
|
||||
export default Helper.extend({
|
||||
|
||||
kredits: service(),
|
||||
currentBlock: alias('kredits.currentBlock'),
|
||||
|
||||
compute([contribution]) {
|
||||
if (contribution.vetoed) {
|
||||
return 'vetoed';
|
||||
} else if (contribution.confirmedAt > this.currentBlock) {
|
||||
return 'unconfirmed';
|
||||
} else {
|
||||
return 'confirmed'
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
@@ -1,15 +0,0 @@
|
||||
import Helper from '@ember/component/helper';
|
||||
import { inject as service } from '@ember/service';
|
||||
import { alias } from '@ember/object/computed';
|
||||
|
||||
export default Helper.extend({
|
||||
|
||||
kredits: service(),
|
||||
currentBlock: alias('kredits.currentBlock'),
|
||||
|
||||
compute([contribution]) {
|
||||
return !contribution.vetoed &&
|
||||
(contribution.confirmedAt <= this.currentBlock);
|
||||
}
|
||||
|
||||
});
|
||||
@@ -1,16 +0,0 @@
|
||||
import Helper from '@ember/component/helper';
|
||||
import { inject as service } from '@ember/service';
|
||||
import { alias } from '@ember/object/computed';
|
||||
import { isPresent } from '@ember/utils';
|
||||
|
||||
export default Helper.extend({
|
||||
|
||||
kredits: service(),
|
||||
currentUser: alias('kredits.currentUser'),
|
||||
|
||||
compute([contributor]) {
|
||||
return isPresent(contributor) && isPresent(this.currentUser) &&
|
||||
contributor.account === this.currentUser.account;
|
||||
}
|
||||
|
||||
});
|
||||
@@ -1,31 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>Kosmos Kredits</title>
|
||||
<meta name="description" content="">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
||||
|
||||
{{content-for "head"}}
|
||||
|
||||
<link integrity="" rel="stylesheet" href="{{rootURL}}assets/vendor.css">
|
||||
<link integrity="" rel="stylesheet" href="{{rootURL}}assets/kredits-web.css">
|
||||
|
||||
{{content-for "head-footer"}}
|
||||
|
||||
<script>
|
||||
window.addEventListener('load', function() {
|
||||
window.windowLoadComplete = true;
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
{{content-for "body"}}
|
||||
|
||||
<script src="{{rootURL}}assets/vendor.js"></script>
|
||||
<script src="{{rootURL}}assets/kredits-web.js"></script>
|
||||
|
||||
{{content-for "body-footer"}}
|
||||
</body>
|
||||
</html>
|
||||
Whitespace-only changes.
@@ -1,28 +0,0 @@
|
||||
import EmberObject from '@ember/object';
|
||||
import bignumber from 'kredits-web/utils/cps/bignumber';
|
||||
|
||||
export default EmberObject.extend({
|
||||
|
||||
// Contract
|
||||
id: null,
|
||||
contributorId: null,
|
||||
amount: null,
|
||||
confirmedAt: bignumber('confirmedAtBlock', 'toNumber'),
|
||||
vetoed: null,
|
||||
ipfsHash: null,
|
||||
|
||||
creatorAccount: null,
|
||||
|
||||
// IPFS
|
||||
kind: null,
|
||||
description: null,
|
||||
details: null,
|
||||
url: null,
|
||||
ipfsData: '',
|
||||
|
||||
init () {
|
||||
this._super(...arguments);
|
||||
this.set('details', {});
|
||||
}
|
||||
|
||||
});
|
||||
@@ -1,31 +0,0 @@
|
||||
import { computed } from '@ember/object';
|
||||
import EmberObject from '@ember/object';
|
||||
import bignumber from 'kredits-web/utils/cps/bignumber';
|
||||
import kreditsValue from 'kredits-web/utils/cps/kredits';
|
||||
|
||||
export default EmberObject.extend({
|
||||
// Contract
|
||||
id: bignumber('idRaw', 'toString'),
|
||||
account: null,
|
||||
balance: kreditsValue('balanceRaw'),
|
||||
totalKreditsEarned: bignumber('totalKreditsEarnedRaw', 'toNumber'),
|
||||
contributionsCount: bignumber('contributionsCountRaw', 'toNumber'),
|
||||
isCore: false,
|
||||
ipfsHash: null,
|
||||
|
||||
// IPFS
|
||||
kind: null,
|
||||
name: null,
|
||||
url: null,
|
||||
github_username: null,
|
||||
github_uid: null,
|
||||
wiki_username: null,
|
||||
ipfsData: '',
|
||||
|
||||
avatarURL: computed('github_uid', function() {
|
||||
let github_uid = this.github_uid;
|
||||
if (github_uid) {
|
||||
return `https://avatars2.githubusercontent.com/u/${github_uid}?v=3&s=128`;
|
||||
}
|
||||
}),
|
||||
});
|
||||
@@ -1,32 +0,0 @@
|
||||
import EmberObject from '@ember/object';
|
||||
import { alias } from '@ember/object/computed';
|
||||
import bignumber from 'kredits-web/utils/cps/bignumber';
|
||||
|
||||
export default EmberObject.extend({
|
||||
|
||||
// Contract
|
||||
id: bignumber('idRaw', 'toString'),
|
||||
creatorAccount: null,
|
||||
contributorId: bignumber('contributorIdRaw', 'toString'),
|
||||
amount: bignumber('amountRaw', 'toNumber'),
|
||||
votesCount: bignumber('votesCountRaw', 'toNumber'),
|
||||
votesNeeded: bignumber('votesNeededRaw', 'toNumber'),
|
||||
executed: null,
|
||||
ipfsHash: null,
|
||||
|
||||
// Shortcuts
|
||||
isExecuted: alias('executed'),
|
||||
|
||||
// IPFS
|
||||
kind: null,
|
||||
description: null,
|
||||
details: null,
|
||||
url: null,
|
||||
ipfsData: '',
|
||||
|
||||
init () {
|
||||
this._super(...arguments);
|
||||
this.set('details', {});
|
||||
}
|
||||
|
||||
});
|
||||
@@ -1,3 +0,0 @@
|
||||
import Resolver from 'ember-resolver';
|
||||
|
||||
export default Resolver;
|
||||
@@ -1,22 +0,0 @@
|
||||
import EmberRouter from '@ember/routing/router';
|
||||
import config from './config/environment';
|
||||
|
||||
const Router = EmberRouter.extend({
|
||||
location: config.locationType,
|
||||
rootURL: config.rootURL
|
||||
});
|
||||
|
||||
Router.map(function() {
|
||||
this.route('proposals', function() {
|
||||
this.route('new');
|
||||
});
|
||||
this.route('contributions', function() {
|
||||
this.route('new');
|
||||
});
|
||||
this.route('contributors', function() {
|
||||
this.route('new');
|
||||
this.route('edit', { path: ':id/edit' });
|
||||
});
|
||||
});
|
||||
|
||||
export default Router;
|
||||
Whitespace-only changes.
@@ -1,31 +0,0 @@
|
||||
import { inject as service } from '@ember/service';
|
||||
import Route from '@ember/routing/route';
|
||||
|
||||
export default Route.extend({
|
||||
kredits: service(),
|
||||
|
||||
beforeModel(transition) {
|
||||
const kredits = this.kredits;
|
||||
|
||||
return kredits.setup().then(() => {
|
||||
kredits.get('kredits').preflightChecks().catch((error) => {
|
||||
console.error('Kredits preflight check failed!');
|
||||
console.error(error);
|
||||
});
|
||||
if (kredits.get('accountNeedsUnlock')) {
|
||||
if (confirm('It looks like you have an Ethereum wallet available. Please unlock your account.')) {
|
||||
transition.retry();
|
||||
}
|
||||
}
|
||||
}).catch((error) => {
|
||||
console.log('Error initializing Kredits', error);
|
||||
});
|
||||
},
|
||||
|
||||
afterModel() {
|
||||
return this.kredits.loadInitialData()
|
||||
.then(() => {
|
||||
this.kredits.addContractEventHandlers();
|
||||
});
|
||||
}
|
||||
});
|
||||
@@ -1,29 +0,0 @@
|
||||
import { inject as service } from '@ember/service';
|
||||
import Route from '@ember/routing/route';
|
||||
import { alias } from '@ember/object/computed';
|
||||
|
||||
export default Route.extend({
|
||||
|
||||
kredits: service(),
|
||||
contributors: alias('kredits.contributors'),
|
||||
|
||||
model(params) {
|
||||
return this.kredits.contributors.findBy('id', params.id);
|
||||
},
|
||||
|
||||
setupController (controller, model) {
|
||||
this._super(controller, model);
|
||||
|
||||
controller.set('attributes', {
|
||||
account: model.account,
|
||||
name: model.name,
|
||||
kind: model.kind,
|
||||
url: model.url,
|
||||
github_username: model.github_username,
|
||||
github_uid: model.github_uid,
|
||||
gitea_username: model.gitea_username,
|
||||
wiki_username: model.wiki_username
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
@@ -1,400 +0,0 @@
|
||||
import ethers from 'npm:ethers';
|
||||
import Kredits from 'npm:kredits-contracts';
|
||||
import RSVP from 'rsvp';
|
||||
|
||||
import Service from '@ember/service';
|
||||
import EmberObject from '@ember/object';
|
||||
import { computed } from '@ember/object';
|
||||
import { alias, notEmpty } from '@ember/object/computed';
|
||||
import { isEmpty } from '@ember/utils';
|
||||
|
||||
import groupBy from 'kredits-web/utils/group-by';
|
||||
import formatKredits from 'kredits-web/utils/format-kredits';
|
||||
|
||||
import config from 'kredits-web/config/environment';
|
||||
import Contributor from 'kredits-web/models/contributor'
|
||||
import Proposal from 'kredits-web/models/proposal'
|
||||
import Contribution from 'kredits-web/models/contribution'
|
||||
|
||||
export default Service.extend({
|
||||
|
||||
currentBlock: null,
|
||||
currentUserAccounts: null, // default to not having an account. this is the wen web3 is loaded.
|
||||
currentUser: null,
|
||||
contributors: null,
|
||||
contributions: null,
|
||||
proposals: null,
|
||||
|
||||
currentUserIsContributor: notEmpty('currentUser'),
|
||||
currentUserIsCore: alias('currentUser.isCore'),
|
||||
hasAccounts: notEmpty('currentUserAccounts'),
|
||||
|
||||
accountNeedsUnlock: computed('currentUserAccounts', function() {
|
||||
return this.currentUserAccounts && isEmpty(this.currentUserAccounts);
|
||||
}),
|
||||
|
||||
contributionsUnconfirmed: computed('contributions.[]', 'currentBlock', function() {
|
||||
return this.contributions.filter(contribution => {
|
||||
return contribution.confirmedAt > this.currentBlock;
|
||||
});
|
||||
}),
|
||||
|
||||
contributionsConfirmed: computed('contributions.[]', 'currentBlock', function() {
|
||||
return this.contributions
|
||||
.filterBy('vetoed', false)
|
||||
.filter(contribution => {
|
||||
return contribution.confirmedAt <= this.currentBlock;
|
||||
});
|
||||
}),
|
||||
|
||||
kreditsByContributor: computed('contributionsUnconfirmed.@each.vetoed', 'contributors.[]', function() {
|
||||
const contributionsUnconfirmed = this.contributionsUnconfirmed.filterBy('vetoed', false);
|
||||
const contributionsGrouped = groupBy(contributionsUnconfirmed, 'contributorId');
|
||||
const contributorsWithUnconfirmed = contributionsGrouped.map(c => c.value.toString());
|
||||
const contributorsWithOnlyConfirmed = this.contributors.reject(c => contributorsWithUnconfirmed.includes(c.id))
|
||||
|
||||
const kreditsByContributor = contributionsGrouped.map(c => {
|
||||
const amountUnconfirmed = c.items.mapBy('amount').reduce((a, b) => a + b);
|
||||
const contributor = this.contributors.findBy('id', c.value.toString());
|
||||
|
||||
return EmberObject.create({
|
||||
contributor: contributor,
|
||||
amountUnconfirmed: amountUnconfirmed,
|
||||
amountConfirmed: contributor.totalKreditsEarned,
|
||||
amountTotal: contributor.totalKreditsEarned + amountUnconfirmed
|
||||
})
|
||||
});
|
||||
|
||||
contributorsWithOnlyConfirmed.forEach(c => {
|
||||
kreditsByContributor.push(EmberObject.create({
|
||||
contributor: c,
|
||||
amountUnconfirmed: 0,
|
||||
amountConfirmed: c.totalKreditsEarned,
|
||||
amountTotal: c.totalKreditsEarned
|
||||
}));
|
||||
})
|
||||
|
||||
return kreditsByContributor;
|
||||
}),
|
||||
|
||||
init () {
|
||||
this._super(...arguments);
|
||||
this.set('contributors', []);
|
||||
this.set('proposals', []);
|
||||
this.set('contributions', []);
|
||||
},
|
||||
|
||||
// This is called in the application route's beforeModel(). So it is
|
||||
// initialized before everything else, and we can rely on the ethProvider and
|
||||
// the potential currentUserAccounts to be available
|
||||
getEthProvider () {
|
||||
let ethProvider;
|
||||
|
||||
return new RSVP.Promise(async (resolve) => {
|
||||
function instantiateWithoutAccount () {
|
||||
console.debug('[kredits] Creating new instance from npm module class');
|
||||
console.debug(`[kredits] providerURL: ${config.web3ProviderUrl}`);
|
||||
ethProvider = new ethers.providers.JsonRpcProvider(config.web3ProviderUrl);
|
||||
resolve({
|
||||
ethProvider: ethProvider,
|
||||
ethSigner: null
|
||||
});
|
||||
}
|
||||
|
||||
async function instantiateWithAccount (web3Provider, context) {
|
||||
console.debug('[kredits] Using user-provided instance, e.g. from Mist browser or Metamask');
|
||||
ethProvider = new ethers.providers.Web3Provider(web3Provider);
|
||||
// const network = await ethProvider.getNetwork();
|
||||
ethProvider.listAccounts().then(accounts => {
|
||||
context.set('currentUserAccounts', accounts);
|
||||
const ethSigner = accounts.length === 0 ? null : ethProvider.getSigner();
|
||||
resolve({
|
||||
ethProvider,
|
||||
ethSigner
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
if (window.ethereum) {
|
||||
try {
|
||||
// Request account access if needed
|
||||
await window.ethereum.enable();
|
||||
// Acccounts now exposed
|
||||
instantiateWithAccount(window.ethereum, this);
|
||||
} catch (error) {
|
||||
instantiateWithoutAccount();
|
||||
}
|
||||
}
|
||||
// Legacy dapp browsers...
|
||||
else if (window.web3) {
|
||||
instantiateWithAccount(window.web3.currentProvider, this);
|
||||
}
|
||||
// Non-dapp browsers...
|
||||
else {
|
||||
instantiateWithoutAccount();
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
setup () {
|
||||
return this.getEthProvider().then((providerAndSigner) => {
|
||||
let kredits = new Kredits(providerAndSigner.ethProvider, providerAndSigner.ethSigner, {
|
||||
addresses: { Kernel: config.kreditsKernelAddress },
|
||||
apm: config.kreditsApmDomain,
|
||||
ipfsConfig: config.ipfs
|
||||
});
|
||||
return kredits
|
||||
.init()
|
||||
.then(async (kredits) => {
|
||||
this.set('kredits', kredits);
|
||||
this.set('currentBlock', await kredits.provider.getBlockNumber());
|
||||
|
||||
if (this.currentUserAccounts && this.currentUserAccounts.length > 0) {
|
||||
this.getCurrentUser.then((contributorData) => {
|
||||
this.set('currentUser', contributorData);
|
||||
});
|
||||
}
|
||||
|
||||
return kredits;
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
totalSupply: computed(function() {
|
||||
return this.kredits.Token.functions.totalSupply().then(total => {
|
||||
return formatKredits(total);
|
||||
})
|
||||
}),
|
||||
|
||||
totalKreditsEarned: computed(function() {
|
||||
return this.kredits.Contribution.functions.totalKreditsEarned(true)
|
||||
.then(total => total.toNumber());
|
||||
}),
|
||||
|
||||
|
||||
loadInitialData () {
|
||||
return this.getContributors()
|
||||
.then(contributors => this.contributors.pushObjects(contributors))
|
||||
.then(() => this.getContributions())
|
||||
.then(contributions => this.contributions.pushObjects(contributions))
|
||||
},
|
||||
|
||||
addContributor (attributes) {
|
||||
if (attributes.github_uid) {
|
||||
const uidInt = parseInt(attributes.github_uid);
|
||||
attributes.github_uid = uidInt;
|
||||
}
|
||||
|
||||
console.debug('[kredits] add contributor', attributes);
|
||||
|
||||
return this.kredits.Contributor.add(attributes, { gasLimit: 350000 })
|
||||
.then(data => {
|
||||
console.debug('[kredits] add contributor response', data);
|
||||
});
|
||||
},
|
||||
|
||||
updateContributor (id, attributes) {
|
||||
if (attributes.github_uid) {
|
||||
const uidInt = parseInt(attributes.github_uid);
|
||||
attributes.github_uid = uidInt;
|
||||
}
|
||||
|
||||
console.debug('[kredits] update contributor', attributes);
|
||||
|
||||
return this.kredits.Contributor.updateProfile(id, attributes, { gasLimit: 350000 })
|
||||
.then(data => {
|
||||
console.debug('[kredits] updateProfile response', data);
|
||||
});
|
||||
},
|
||||
|
||||
getContributors () {
|
||||
return this.kredits.Contributor.all()
|
||||
.then((contributors) => {
|
||||
return contributors.map((contributor) => {
|
||||
return Contributor.create(contributor);
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
addContribution (attributes) {
|
||||
console.debug('[kredits] add contribution', attributes);
|
||||
|
||||
return this.kredits.Contribution.addContribution(attributes, { gasLimit: 300000 })
|
||||
.then(data => {
|
||||
console.debug('[kredits] add contribution response', data);
|
||||
attributes.contributor = this.contributors.findBy('id', attributes.contributorId);
|
||||
const contribution = Contribution.create(attributes);
|
||||
// TODO receive from wrapper
|
||||
contribution.set('confirmedAtBlock', data.blockNumber + 40320);
|
||||
this.contributions.pushObject(contribution);
|
||||
return contribution;
|
||||
});
|
||||
},
|
||||
|
||||
addProposal (attributes) {
|
||||
console.debug('[kredits] add proposal', attributes);
|
||||
|
||||
return this.kredits.Proposal.addProposal(attributes)
|
||||
.then((data) => {
|
||||
console.debug('[kredits] add proposal response', data);
|
||||
attributes.contributor = this.contributors.findBy('id', attributes.contributorId);
|
||||
return Proposal.create(attributes);
|
||||
});
|
||||
},
|
||||
|
||||
getProposals () {
|
||||
return this.kredits.Proposal.all()
|
||||
.then((proposals) => {
|
||||
return proposals.map((proposal) => {
|
||||
proposal.contributor = this.contributors.findBy('id', proposal.contributorId.toString());
|
||||
return Proposal.create(proposal);
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
getContributions () {
|
||||
return this.kredits.Contribution.all({page: {size: 200}})
|
||||
.then(contributions => {
|
||||
return contributions.map(contribution => {
|
||||
contribution.contributor = this.contributors.findBy('id', contribution.contributorId.toString());
|
||||
return Contribution.create(contribution);
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
vote (proposalId) {
|
||||
console.debug('[kredits] vote for', proposalId);
|
||||
|
||||
return this.kredits.Proposal.functions.vote(proposalId)
|
||||
.then(data => {
|
||||
console.debug('[kredits] vote response', data);
|
||||
return data;
|
||||
});
|
||||
},
|
||||
|
||||
veto (contributionId) {
|
||||
console.debug('[kredits] veto against', contributionId);
|
||||
|
||||
return this.kredits.Contribution.functions.veto(contributionId, { gasLimit: 300000 })
|
||||
.then(data => {
|
||||
console.debug('[kredits] veto response', data);
|
||||
return data;
|
||||
});
|
||||
},
|
||||
|
||||
getCurrentUser: computed('kredits.provider', function() {
|
||||
if (isEmpty(this.currentUserAccounts)) {
|
||||
return RSVP.resolve();
|
||||
}
|
||||
return this.kredits.Contributor
|
||||
.functions.getContributorIdByAddress(this.get('currentUserAccounts.firstObject'))
|
||||
.then((id) => {
|
||||
// check if the user is a contributor or not
|
||||
if (id === 0) {
|
||||
return RSVP.resolve();
|
||||
} else {
|
||||
return this.kredits.Contributor.getById(id);
|
||||
}
|
||||
});
|
||||
}),
|
||||
|
||||
findProposalById(proposalId) {
|
||||
return this.proposals.findBy('id', proposalId.toString());
|
||||
},
|
||||
|
||||
// Contract events
|
||||
addContractEventHandlers () {
|
||||
this.kredits.Contributor
|
||||
.on('ContributorProfileUpdated', this.handleContributorChange.bind(this))
|
||||
.on('ContributorAccountUpdated', this.handleContributorChange.bind(this))
|
||||
.on('ContributorAdded', this.handleContributorChange.bind(this))
|
||||
|
||||
this.kredits.Contribution
|
||||
.on('ContributionVetoed', this.handleContributionVetoed.bind(this))
|
||||
|
||||
this.kredits.Proposal
|
||||
.on('ProposalCreated', this.handleProposalCreated.bind(this))
|
||||
.on('ProposalVoted', this.handleProposalVoted.bind(this))
|
||||
.on('ProposalExecuted', this.handleProposalExecuted.bind(this));
|
||||
|
||||
this.kredits.Token
|
||||
.on('Transfer', this.handleTransfer.bind(this));
|
||||
},
|
||||
|
||||
async handleContributorChange (contributorId, ...args) {
|
||||
console.debug('[kredits] Contributor add/update event received for ID', contributorId);
|
||||
console.debug('[kredits] Event data:', args);
|
||||
const contributorData = await this.kredits.Contributor.getById(contributorId);
|
||||
const newContributor = Contributor.create(contributorData);
|
||||
|
||||
const oldContributor = this.contributors.findBy('id', contributorId.toString());
|
||||
if (oldContributor) {
|
||||
console.debug('[kredits] old contributor', oldContributor);
|
||||
this.contributors.removeObject(oldContributor);
|
||||
}
|
||||
|
||||
console.debug('[kredits] new contributor', newContributor);
|
||||
this.contributors.pushObject(newContributor);
|
||||
},
|
||||
|
||||
handleContributionVetoed (contributionId) {
|
||||
console.debug('[kredits] ContributionVetoed event received for ', contributionId);
|
||||
const contribution = this.contributions.findBy('id', contributionId);
|
||||
console.debug('[kredits] contribution', contribution);
|
||||
|
||||
if (contribution) {
|
||||
contribution.set('vetoed', true);
|
||||
}
|
||||
},
|
||||
|
||||
handleProposalCreated (proposalId) {
|
||||
let proposal = this.findProposalById(proposalId);
|
||||
|
||||
if (proposal) {
|
||||
console.debug('[events] proposal exists, not adding from event');
|
||||
return;
|
||||
}
|
||||
|
||||
this.kredits.Proposal.getById(proposalId)
|
||||
.then((proposal) => {
|
||||
proposal.contributor = this.contributors.findBy('id', proposal.contributorId.toString());
|
||||
this.proposals.pushObject(Proposal.create(proposal));
|
||||
});
|
||||
},
|
||||
|
||||
// TODO: We may want to reload that proposal to show the voter as voted
|
||||
handleProposalVoted (proposalId, voterId, totalVotes) {
|
||||
let proposal = this.findProposalById(proposalId);
|
||||
|
||||
if (proposal) {
|
||||
proposal.set('votesCount', totalVotes);
|
||||
}
|
||||
},
|
||||
|
||||
handleProposalExecuted (proposalId, contributorId, amount) {
|
||||
let proposal = this.findProposalById(proposalId);
|
||||
|
||||
if (proposal.get('isExecuted')) {
|
||||
console.debug('[events] proposal already executed, not adding from event');
|
||||
return;
|
||||
}
|
||||
|
||||
proposal.set('executed', true);
|
||||
|
||||
this.contributors
|
||||
.findBy('id', contributorId.toString())
|
||||
.incrementProperty('balance', amount);
|
||||
},
|
||||
|
||||
handleTransfer (from, to, value) {
|
||||
value = value.toNumber();
|
||||
|
||||
this.contributors
|
||||
.findBy('address', from)
|
||||
.decrementProperty('balance', value);
|
||||
|
||||
this.contributors
|
||||
.findBy('address', to)
|
||||
.incrementProperty('balance', value);
|
||||
},
|
||||
});
|
||||
@@ -1,56 +0,0 @@
|
||||
button, input[type=submit], .button {
|
||||
display: inline-block;
|
||||
padding: 0.6rem 2rem;
|
||||
background-color: rgba(22, 21, 40, 0.6);
|
||||
border: 1px solid rgba(22, 21, 40, 1);
|
||||
border-radius: 3px;
|
||||
color: $primary-color;
|
||||
font-weight: 500;
|
||||
text-decoration: none;
|
||||
text-transform: uppercase;
|
||||
cursor: pointer;
|
||||
letter-spacing: 0.1em;
|
||||
|
||||
&+button, &+input[type=submit], &+.button {
|
||||
margin-left: 0.5rem;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background-color: rgba(22, 21, 40, 0.8);
|
||||
}
|
||||
|
||||
&:active, &.active {
|
||||
border-color: $primary-color;
|
||||
}
|
||||
|
||||
&.small {
|
||||
font-size: 0.8rem;
|
||||
padding: 0.2rem 0.8rem;
|
||||
}
|
||||
|
||||
&.danger {
|
||||
color: $red;
|
||||
background-color: rgba(40, 21, 21, 0.6);
|
||||
border-color: rgba(40, 21, 21, 1);
|
||||
|
||||
&:hover {
|
||||
background-color: rgba(40, 21, 21, 0.8);
|
||||
}
|
||||
&:active, &.active {
|
||||
border-color: $red;
|
||||
}
|
||||
}
|
||||
|
||||
&.green {
|
||||
color: $green;
|
||||
background-color: rgba(21, 40, 21, 0.6);
|
||||
border-color: rgba(21, 40, 21, 1);
|
||||
|
||||
&:hover {
|
||||
background-color: rgba(21, 40, 21, 0.8);
|
||||
}
|
||||
&:active, &.active {
|
||||
border-color: $green;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
$blue: #68d7fb;
|
||||
$purple: #8f68fb;
|
||||
$pink: #e068fb;
|
||||
$green: #97fb68;
|
||||
$yellow: #fbe468;
|
||||
$red: #fb6868;
|
||||
|
||||
$primary-color: $blue;
|
||||
|
||||
$body-text-color: #fff;
|
||||
|
||||
#topbar {
|
||||
background-color: rgba(255, 0, 255, .2);
|
||||
}
|
||||
|
||||
@@ -1,107 +0,0 @@
|
||||
section#add-contributor,
|
||||
section#add-contribution,
|
||||
section#add-proposal {
|
||||
|
||||
form {
|
||||
|
||||
p {
|
||||
margin-bottom: 1.5rem;
|
||||
|
||||
&.actions {
|
||||
padding-top: 1.5rem;
|
||||
text-align: center;
|
||||
a {
|
||||
color: $primary-color;
|
||||
margin-left: 1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
label {
|
||||
display: block;
|
||||
margin-bottom: 0.5rem;
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
input[type=text], select {
|
||||
width: 100%;
|
||||
padding: 1rem;
|
||||
border: none;
|
||||
border-bottom: 1px solid rgba(255,255,255,0.2);
|
||||
background-color: rgba(22, 21, 40, 0.3);
|
||||
color: #fff;
|
||||
font-size: 1.2rem;
|
||||
transition: border-color 0.1s linear;
|
||||
|
||||
&:focus, &.valid {
|
||||
background-color: rgba(22, 21, 40, 0.6);
|
||||
}
|
||||
&:focus {
|
||||
border-color: $blue;
|
||||
}
|
||||
&::placeholder {
|
||||
color: rgba(238, 238, 238, 0.5);
|
||||
}
|
||||
}
|
||||
|
||||
select {
|
||||
-moz-appearance: none;
|
||||
-webkit-appearance: none;
|
||||
appearance: none;
|
||||
border-radius: 0;
|
||||
background-color: rgba(22, 21, 40, 0.6);
|
||||
background-image:
|
||||
linear-gradient(45deg, transparent 50%, gray 50%),
|
||||
linear-gradient(135deg, gray 50%, transparent 50%);
|
||||
background-position:
|
||||
calc(100% - 1.5rem) calc(1rem + 0.5rem),
|
||||
calc(100% - 1rem) calc(1rem + 0.5rem);
|
||||
background-size:
|
||||
0.5rem 0.5rem,
|
||||
0.5rem 0.5rem;
|
||||
background-repeat: no-repeat;
|
||||
|
||||
&:invalid {
|
||||
color: rgba(238, 238, 238, 0.5);
|
||||
}
|
||||
}
|
||||
|
||||
input[type=submit] {
|
||||
padding: 0.6rem 2rem;
|
||||
&:disabled {
|
||||
background-color: transparent;
|
||||
}
|
||||
}
|
||||
|
||||
input[type=checkbox] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
label.checkbox {
|
||||
line-height: 3.2rem;
|
||||
font-size: 1.2rem;
|
||||
&::before {
|
||||
display: inline-block;
|
||||
margin-right: 0.8rem;
|
||||
height: 3.2rem;
|
||||
width: 3.2rem;
|
||||
font-size: 2rem;
|
||||
background-color: rgba(22, 21, 40, 0.3);
|
||||
border-bottom: 1px solid rgba(255,255,255,0.2);
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
content: '✓';
|
||||
color: rgba(255,255,255,0.2);
|
||||
}
|
||||
}
|
||||
|
||||
input[type=checkbox]:checked + label.checkbox {
|
||||
&::before {
|
||||
background-color: rgba(22, 21, 40, 0.6);
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,82 +0,0 @@
|
||||
main {
|
||||
padding: 1rem 2rem;
|
||||
|
||||
@include media-max(small) {
|
||||
padding: 1rem;
|
||||
}
|
||||
|
||||
&#index {
|
||||
width: 100%;
|
||||
display: grid;
|
||||
grid-row-gap: 2rem;
|
||||
grid-template-areas:
|
||||
"stats"
|
||||
"contributions";
|
||||
}
|
||||
|
||||
&.center-column {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
|
||||
section {
|
||||
width: 600px;
|
||||
max-width: 100%;
|
||||
|
||||
header {
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 550px) {
|
||||
main {
|
||||
&#index {
|
||||
grid-column-gap: 4rem;
|
||||
grid-row-gap: 2rem;
|
||||
grid-template-columns: 2fr 4fr;
|
||||
grid-template-areas:
|
||||
"stats contributions";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
main section {
|
||||
margin-bottom: 5rem;
|
||||
|
||||
&:first-of-type {
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
@include media-max(small) {
|
||||
margin-bottom: 5rem;
|
||||
}
|
||||
|
||||
header {
|
||||
margin-bottom: 3rem;
|
||||
|
||||
&.with-nav {
|
||||
display: grid;
|
||||
grid-template-columns: auto 5rem;
|
||||
grid-template-areas:
|
||||
"title" "actions";
|
||||
}
|
||||
|
||||
h2 {
|
||||
display: inline-block;
|
||||
// padding-left: 1.2rem;
|
||||
}
|
||||
|
||||
nav {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
@include media-max(small) {
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
$breakpoints-max: (
|
||||
small: 600px,
|
||||
medium: 960px,
|
||||
large: 1280px
|
||||
);
|
||||
|
||||
$breakpoints-min: (
|
||||
small: 601px,
|
||||
medium: 961px,
|
||||
large: 1281px
|
||||
);
|
||||
|
||||
@mixin media-max($screen-size) {
|
||||
@if map-has-key($breakpoints-max, $screen-size) {
|
||||
@media (max-width: map-get($breakpoints-max, $screen-size)) {
|
||||
@content;
|
||||
}
|
||||
} @else {
|
||||
// Debugging
|
||||
@warn "'#{$screen-size}' has not been declared as a breakpoint."
|
||||
}
|
||||
}
|
||||
|
||||
@mixin media-min($screen-size) {
|
||||
@if map-has-key($breakpoints-min, $screen-size) {
|
||||
@media (min-width: map-get($breakpoints-min, $screen-size)) {
|
||||
@content;
|
||||
}
|
||||
} @else {
|
||||
// Debugging
|
||||
@warn "'#{$screen-size}' has not been declared as a breakpoint."
|
||||
}
|
||||
}
|
||||
@@ -1,105 +0,0 @@
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
*:hover, *:active, *:focus {
|
||||
outline: none;
|
||||
-webkit-tap-highlight-color: rgba(255, 255, 255, 0);
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
}
|
||||
|
||||
@import "mediaqueries";
|
||||
@import "layout";
|
||||
@import "colors";
|
||||
|
||||
$font-family-sans: 'Open Sans', sans-serif;
|
||||
|
||||
body {
|
||||
font-family: $font-family-sans;
|
||||
font-weight: 300;
|
||||
background-image: linear-gradient(to bottom, rgba(22, 21, 40, .4), rgba(0, 0, 0, .75)), url('/img/bg.jpg');
|
||||
background-repeat: none;
|
||||
background-attachment: fixed;
|
||||
color: $body-text-color;
|
||||
}
|
||||
|
||||
@media screen and (min-width: 900px) {
|
||||
body {
|
||||
background-size: cover;
|
||||
}
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, input, button {
|
||||
font-family: $font-family-sans;
|
||||
font-size: 1rem;
|
||||
font-weight: 300;
|
||||
}
|
||||
|
||||
section {
|
||||
h2 {
|
||||
font-size: 1.4rem;
|
||||
color: $primary-color;
|
||||
}
|
||||
|
||||
&#people {
|
||||
.content {
|
||||
p.stats {
|
||||
margin-bottom: 1rem;
|
||||
font-size: 1rem;
|
||||
color: white;
|
||||
text-align: center;
|
||||
span.number {
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&#contributions-by-type {
|
||||
.chart {
|
||||
width: 50%;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
|
||||
@include media-max(small) {
|
||||
width: 75%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&#proposals-open, &#proposals-closed {
|
||||
.actions {
|
||||
padding-top: 3rem;
|
||||
font-size: 1rem;
|
||||
color: $primary-color;
|
||||
text-align: center;
|
||||
@include media-max(small) {
|
||||
padding-top: 2rem;
|
||||
}
|
||||
|
||||
a {
|
||||
color: $primary-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 550px) {
|
||||
section {
|
||||
h2 {
|
||||
font-size: 2rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@import "buttons";
|
||||
@import "forms";
|
||||
@import "components/topbar";
|
||||
@import "components/loading-spinner";
|
||||
@import "components/contributor-list";
|
||||
@import "components/proposal-list";
|
||||
@import "components/contribution-list";
|
||||
@import "components/user-avatar";
|
||||
@@ -1,152 +0,0 @@
|
||||
main section {
|
||||
@include media-max(small) {
|
||||
&#contributions-unconfirmed, &#contributions-confirmed {
|
||||
margin-top: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.quick-filter {
|
||||
font-size: 1.2rem;
|
||||
margin-bottom: 2rem;
|
||||
|
||||
p {
|
||||
font-size: inherit;
|
||||
padding: 0.2rem 0 0;
|
||||
}
|
||||
|
||||
label {
|
||||
font-size: inherit;
|
||||
|
||||
&+ label {
|
||||
margin-left: 3.6rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ul.contribution-list {
|
||||
clear: both;
|
||||
width: 100%;
|
||||
list-style: none;
|
||||
|
||||
li {
|
||||
display: grid;
|
||||
grid-template-columns: auto 5rem 5rem;
|
||||
grid-row-gap: 0.5rem;
|
||||
padding: 0.8rem 1.2rem;
|
||||
background-color: rgba(255,255,255,0.1);
|
||||
font-size: 1.2rem;
|
||||
border-bottom: 1px solid rgba(255,255,255,0.2);
|
||||
|
||||
&:first-of-type {
|
||||
border-top: 1px solid rgba(255,255,255,0.2);
|
||||
}
|
||||
|
||||
&.confirmed {
|
||||
grid-template-columns: auto 5rem;
|
||||
}
|
||||
|
||||
&.vetoed {
|
||||
grid-template-columns: auto 5rem;
|
||||
text-decoration: line-through;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
p {
|
||||
align-self: center;
|
||||
margin: 0;
|
||||
font-size: inherit;
|
||||
line-height: 2rem;
|
||||
|
||||
&.kredits-amount, &.voting {
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
|
||||
span {
|
||||
font-size: inherit;
|
||||
|
||||
&.title {
|
||||
a {
|
||||
font-size: inherit;
|
||||
text-decoration: none;
|
||||
color: $body-text-color;
|
||||
}
|
||||
a:hover, a:active {
|
||||
color: $primary-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.description {
|
||||
line-height: 1.4em;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.category {
|
||||
color: $blue;
|
||||
padding-right: 0.2rem;
|
||||
&.community { color: $red; }
|
||||
&.dev { color: $pink; }
|
||||
&.design { color: $yellow; }
|
||||
&.docs { color: $green; }
|
||||
&.ops { color: $purple; }
|
||||
}
|
||||
|
||||
.amount {
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.symbol {
|
||||
font-size: 0.8rem;
|
||||
padding-left: 0.2rem;
|
||||
}
|
||||
|
||||
.recipient {
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.votes {
|
||||
font-size: 1rem;
|
||||
color: $primary-color;
|
||||
margin-right: 0.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@media (min-width: 550px) {
|
||||
ul.proposal-list {
|
||||
li {
|
||||
grid-template-columns: auto 10rem;
|
||||
grid-row-gap: 0.5rem;
|
||||
|
||||
p {
|
||||
&.kredits-amount, &.voting {
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
|
||||
&.unconfirmed {
|
||||
p {
|
||||
&.kredits-amount, &.voting {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
&.description {
|
||||
grid-column-start: span 1;
|
||||
}
|
||||
|
||||
&.voting {
|
||||
grid-column-start: span 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.description {
|
||||
font-size: inherit;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,90 +0,0 @@
|
||||
table.contributor-list {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin-bottom: 1.5rem;
|
||||
|
||||
tr {
|
||||
border-bottom: 1px solid rgba(255,255,255,0.2);
|
||||
&:first-of-type {
|
||||
border-top: 1px solid rgba(255,255,255,0.2);
|
||||
}
|
||||
background-color: rgba(255,255,255,0.1);
|
||||
|
||||
&.current-user {
|
||||
background-color: rgba(255,255,255,0.2);
|
||||
}
|
||||
|
||||
&.metadata {
|
||||
height: 0;
|
||||
visibility: hidden;
|
||||
|
||||
&:not(.visible) {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
td {
|
||||
padding: 0 1.2rem;
|
||||
}
|
||||
|
||||
a {
|
||||
color: $primary-color;
|
||||
&:hover, &:active {
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style: none;
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
height: 0;
|
||||
|
||||
li {
|
||||
display: inline;
|
||||
&+li {
|
||||
margin-left: 1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.visible {
|
||||
height: auto;
|
||||
visibility: visible;
|
||||
ul {
|
||||
height: auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
td {
|
||||
padding: 0 1.2rem;
|
||||
line-height: 3.6rem;
|
||||
|
||||
&.person {
|
||||
text-align: left;
|
||||
font-size: 1.2rem;
|
||||
|
||||
img.avatar {
|
||||
margin-right: 0.2rem;
|
||||
}
|
||||
}
|
||||
|
||||
&.kredits {
|
||||
text-align: right;
|
||||
.amount {
|
||||
font-size: 1.2rem;
|
||||
font-weight: 500;
|
||||
}
|
||||
.symbol {
|
||||
font-size: 0.8rem;
|
||||
padding-left: 0.2rem;
|
||||
}
|
||||
}
|
||||
|
||||
pre {
|
||||
line-height: 1rem;
|
||||
padding-bottom: 1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
@keyframes pulse {
|
||||
from {
|
||||
opacity: 0.1;
|
||||
}
|
||||
to {
|
||||
opacity: 0.6;
|
||||
}
|
||||
}
|
||||
|
||||
.loading-spinner {
|
||||
margin-top: 12rem;
|
||||
text-align: center;
|
||||
font-size: 1.4rem;
|
||||
color: $primary-color;
|
||||
|
||||
@include media-max(small) {
|
||||
margin-top: 6rem;
|
||||
}
|
||||
|
||||
svg {
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
margin-bottom: 2rem;
|
||||
|
||||
#path-comet {
|
||||
fill: $primary-color;
|
||||
opacity: 0.1;
|
||||
|
||||
animation-name: pulse;
|
||||
animation-iteration-count: infinite;
|
||||
animation-timing-function: ease-in-out;
|
||||
animation-direction: alternate;
|
||||
animation-duration: 1s;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,114 +0,0 @@
|
||||
ul.proposal-list {
|
||||
clear: both;
|
||||
width: 100%;
|
||||
list-style: none;
|
||||
|
||||
li {
|
||||
display: grid;
|
||||
grid-template-columns: auto 5rem;
|
||||
grid-row-gap: 0.5rem;
|
||||
padding: 1rem 1.2rem;
|
||||
background-color: rgba(255,255,255,0.1);
|
||||
font-size: 1.2rem;
|
||||
border-bottom: 1px solid rgba(255,255,255,0.2);
|
||||
|
||||
&:first-of-type {
|
||||
border-top: 1px solid rgba(255,255,255,0.2);
|
||||
}
|
||||
|
||||
p {
|
||||
align-self: center;
|
||||
margin: 0;
|
||||
font-size: inherit;
|
||||
line-height: 2rem;
|
||||
|
||||
&.kredits-amount, &.voting {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
&.description {
|
||||
grid-column-start: span 2;
|
||||
}
|
||||
|
||||
&.voting {
|
||||
grid-column-start: span 2;
|
||||
}
|
||||
}
|
||||
|
||||
span {
|
||||
font-size: inherit;
|
||||
}
|
||||
|
||||
.description {
|
||||
line-height: 1.4em;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.category {
|
||||
color: $blue;
|
||||
padding-right: 0.2rem;
|
||||
&.community { color: $red; }
|
||||
&.dev { color: $pink; }
|
||||
&.design { color: $yellow; }
|
||||
&.docs { color: $green; }
|
||||
&.ops { color: $purple; }
|
||||
}
|
||||
|
||||
.amount {
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.symbol {
|
||||
font-size: 1rem;
|
||||
font-weight: 500;
|
||||
padding-left: 0.2rem;
|
||||
}
|
||||
|
||||
.recipient {
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.votes {
|
||||
font-size: 1rem;
|
||||
color: $primary-color;
|
||||
margin-right: 0.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@media (min-width: 550px) {
|
||||
ul.proposal-list {
|
||||
li {
|
||||
grid-template-columns: auto 10rem;
|
||||
grid-row-gap: 0.5rem;
|
||||
|
||||
p {
|
||||
&.kredits-amount, &.voting {
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
|
||||
&.unconfirmed {
|
||||
p {
|
||||
&.kredits-amount, &.voting {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
&.description {
|
||||
grid-column-start: span 1;
|
||||
}
|
||||
|
||||
&.voting {
|
||||
grid-column-start: span 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.description {
|
||||
font-size: inherit;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
#topbar {
|
||||
padding: 0 1rem;
|
||||
height: 3rem;
|
||||
line-height: 3rem;
|
||||
background-color: rgba(0,0,0,.3);
|
||||
|
||||
@include media-min(medium) {
|
||||
padding: 0 2rem;
|
||||
height: 4rem;
|
||||
line-height: 4rem;
|
||||
}
|
||||
|
||||
h1 {
|
||||
display: inline-block;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
section#user-account {
|
||||
display: inline-block;
|
||||
float: right;
|
||||
}
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
img.avatar {
|
||||
width: 2rem;
|
||||
height: 2rem;
|
||||
vertical-align: middle;
|
||||
margin-right: 0.2rem;
|
||||
border-radius: 1rem;
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
{{loading-spinner}}
|
||||
@@ -1,16 +0,0 @@
|
||||
<header id="topbar">
|
||||
<h1>Kosmos Kredits</h1>
|
||||
|
||||
<section id="user-account">
|
||||
{{#if kredits.hasAccounts }}
|
||||
{{#if kredits.currentUser}}
|
||||
{{kredits.currentUser.name}}
|
||||
{{#if kredits.currentUserIsCore}}(core){{/if}}
|
||||
{{/if}}
|
||||
{{else}}
|
||||
Anonymous
|
||||
{{/if}}
|
||||
</section>
|
||||
</header>
|
||||
|
||||
{{outlet}}
|
||||
Whitespace-only changes.
@@ -1,13 +0,0 @@
|
||||
<main class="center-column">
|
||||
|
||||
<section id="add-contribution">
|
||||
<header>
|
||||
<h2>Submit a contribution</h2>
|
||||
</header>
|
||||
|
||||
<div class="content">
|
||||
{{add-contribution contributors=sortedContributors save=(action "save")}}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</main>
|
||||
@@ -1,13 +0,0 @@
|
||||
<main class="center-column">
|
||||
|
||||
<section id="add-contributor">
|
||||
<header>
|
||||
<h2>Update contributor profile</h2>
|
||||
</header>
|
||||
|
||||
<div class="content">
|
||||
{{add-contributor attributes=attributes save=(action "save")}}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</main>
|
||||
@@ -1,13 +0,0 @@
|
||||
<main class="center-column">
|
||||
|
||||
<section id="add-contributor">
|
||||
<header>
|
||||
<h2>Add contributor profile</h2>
|
||||
</header>
|
||||
|
||||
<div class="content">
|
||||
{{add-contributor save=(action "save")}}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</main>
|
||||
@@ -1,75 +0,0 @@
|
||||
<main id="index">
|
||||
|
||||
<div id="stats">
|
||||
<section id="people">
|
||||
<header class="with-nav">
|
||||
<h2>Contributors</h2>
|
||||
{{#if kredits.hasAccounts}}
|
||||
<nav>
|
||||
{{link-to "add" "contributors.new" title="Add contributor profile" class="button small green"}}
|
||||
</nav>
|
||||
{{/if}}
|
||||
</header>
|
||||
<div class="content">
|
||||
{{contributor-list contributorList=kreditsToplist
|
||||
showUnconfirmedKredits=showUnconfirmedKredits}}
|
||||
|
||||
<p class="stats">
|
||||
<span class="number">{{await kredits.totalKreditsEarned}}</span> kredits confirmed and issued to
|
||||
<span class="number">{{contributorsWithKredits.length}}</span> contributors
|
||||
</p>
|
||||
<p class="stats">
|
||||
{{input type="checkbox" id="hide-unnconfirmed-kredits" checked=showUnconfirmedKredits}}
|
||||
<label for="hide-unnconfirmed-kredits">Show unconfirmed kredits in toplist</label>
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="contributions-by-type">
|
||||
<header>
|
||||
<h2>Contributions by type</h2>
|
||||
</header>
|
||||
<div class="content">
|
||||
{{chart-contributions-by-type contributions=contributions}}
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<div id="contributions">
|
||||
{{#if contributionsUnconfirmed}}
|
||||
<section id="contributions-unconfirmed">
|
||||
<header class="with-nav">
|
||||
<h2>Latest Contributions</h2>
|
||||
{{#if kredits.hasAccounts}}
|
||||
<nav>
|
||||
<button {{action "toggleQuickFilterUnconfirmed"}} class="small {{if showQuickFilterUnconfirmed "active"}}">filter</button>
|
||||
{{link-to "add" "contributions.new" title="Submit a contribution" class="button small green"}}
|
||||
</nav>
|
||||
{{/if}}
|
||||
</header>
|
||||
<div class="content">
|
||||
{{!-- TODO: We need a better naming for kredits.hasAccounts --}}
|
||||
{{contribution-list contributions=contributionsUnconfirmedSorted
|
||||
vetoContribution=(action "vetoContribution")
|
||||
contractInteractionEnabled=kredits.hasAccounts
|
||||
showQuickFilter=showQuickFilterUnconfirmed}}
|
||||
</div>
|
||||
</section>
|
||||
{{/if}}
|
||||
|
||||
<section id="contributions-confirmed">
|
||||
<header class="with-nav">
|
||||
<h2>Confirmed Contributions</h2>
|
||||
<nav>
|
||||
<button {{action "toggleQuickFilterConfirmed"}} class="small {{if showQuickFilterConfirmed "active"}}">filter</button>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="content">
|
||||
{{contribution-list contributions=contributionsConfirmedSorted
|
||||
vetoContribution=(action "vetoContribution")
|
||||
showQuickFilter=showQuickFilterConfirmed}}
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
@@ -1,10 +0,0 @@
|
||||
<section id="add-proposal">
|
||||
<header>
|
||||
<h2>Add Proposal</h2>
|
||||
</header>
|
||||
|
||||
<div class="content">
|
||||
{{add-proposal contributors=minedContributors save=(action "save")}}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
import { computed } from '@ember/object';
|
||||
import ethers from 'npm:ethers';
|
||||
|
||||
export default function(dependentKey, converterMethod) {
|
||||
return computed(dependentKey, {
|
||||
get () {
|
||||
let value = this.get(dependentKey);
|
||||
if (value && ethers.utils.BigNumber.isBigNumber(value)) {
|
||||
return value[converterMethod]();
|
||||
} else {
|
||||
return value;
|
||||
}
|
||||
},
|
||||
set (key, value) {
|
||||
const bnValue = ethers.utils.bigNumberify(value);
|
||||
this.set(dependentKey, bnValue);
|
||||
return bnValue[converterMethod]();
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
import { computed } from '@ember/object';
|
||||
import ethers from 'npm:ethers';
|
||||
import formatKredits from 'kredits-web/utils/format-kredits';
|
||||
|
||||
export default function(dependentKey, options = {}) {
|
||||
return computed(dependentKey, {
|
||||
get () {
|
||||
const value = this.get(dependentKey);
|
||||
return formatKredits(value, options);
|
||||
},
|
||||
set (key, value) {
|
||||
const bnValue = ethers.utils.bigNumberify(value);
|
||||
this.set(dependentKey, bnValue);
|
||||
return formatKredits(bnValue, options);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
import ethers from 'npm:ethers';
|
||||
|
||||
export default function(value, options = {}) {
|
||||
let etherValue = ethers.utils.formatEther(value);
|
||||
if (!options.decimals) {
|
||||
etherValue = parseInt(etherValue).toString();
|
||||
}
|
||||
return etherValue;
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
//
|
||||
// Code from https://github.com/HeroicEric/ember-group-by (MIT licensed)
|
||||
//
|
||||
import { A } from '@ember/array';
|
||||
import { get } from '@ember/object';
|
||||
import { isPresent } from '@ember/utils';
|
||||
|
||||
export default function groupBy (collection, property) {
|
||||
let groups = A();
|
||||
let items = collection;
|
||||
|
||||
if (items) {
|
||||
items.forEach(function(item) {
|
||||
let value = get(item, property);
|
||||
let group = groups.findBy('value', value);
|
||||
|
||||
if (isPresent(group)) {
|
||||
get(group, 'items').push(item);
|
||||
} else {
|
||||
group = { property: property, value: value, items: [item] };
|
||||
groups.push(group);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
return groups;
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
"use strict";define("kredits-web/app",["exports","ember","kredits-web/resolver","ember-load-initializers","kredits-web/config/environment"],function(e,t,n,o,s){var r=void 0;t.default.MODEL_FACTORY_INJECTIONS=!0,r=t.default.Application.extend({modulePrefix:s.default.modulePrefix,podModulePrefix:s.default.podModulePrefix,Resolver:n.default}),(0,o.default)(r,s.default.modulePrefix),e.default=r}),define("kredits-web/components/add-contributor/component",["exports","ember"],function(e,t){e.default=t.default.Component.extend({id:null,realName:null,address:null,classId:function(){var e=this.get("id");return t.default.isEmpty(e)?null:"valid"}.property("id"),classRealName:function(){var e=this.get("realName");return t.default.isEmpty(e)?null:"valid"}.property("realName"),classAddress:function(){var e=this.get("address");return t.default.isEmpty(e)?null:"valid"}.property("address"),actions:{save:function(){console.log("id",this.get("id")),console.log("realName",this.get("realName")),console.log("address",this.get("address"))}}})}),define("kredits-web/components/add-contributor/template",["exports"],function(e){e.default=Ember.HTMLBars.template({id:"cnYN+xuu",block:'{"statements":[["open-element","form",[]],["modifier",["action"],[["get",[null]],"save"],[["on"],["submit"]]],["flush-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["id","text","GitHub UID (123)",["get",["id"]],["get",["classId"]]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["realname","text","Carl Sagan",["get",["realName"]],["get",["classRealName"]]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["address","text","0xF18E631Ea191aE4ebE70046Fcb01a436554421BA4",["get",["address"]],["get",["classAddress"]]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["static-attr","class","actions"],["flush-element"],["text","\\n "],["open-element","input",[]],["static-attr","type","submit"],["static-attr","value","Save"],["flush-element"],["close-element"],["text","\\n "],["close-element"],["text","\\n"],["close-element"],["text","\\n"]],"locals":[],"named":[],"yields":[],"blocks":[],"hasPartials":false}',meta:{moduleName:"kredits-web/components/add-contributor/template.hbs"}})}),define("kredits-web/components/contributor-list/component",["exports","ember"],function(e,t){e.default=t.default.Component.extend({tagName:"table",classNames:"contributor-list"})}),define("kredits-web/components/contributor-list/template",["exports"],function(e){e.default=Ember.HTMLBars.template({id:"3EKzDpyc",block:'{"statements":[["open-element","tbody",[]],["flush-element"],["text","\\n"],["block",["each"],[["get",["contributors"]]],null,0],["close-element"],["text","\\n"]],"locals":[],"named":[],"yields":[],"blocks":[{"statements":[["text"," "],["open-element","tr",[]],["flush-element"],["text","\\n "],["open-element","td",[]],["static-attr","class","person"],["flush-element"],["text","\\n "],["open-element","img",[]],["static-attr","class","avatar"],["dynamic-attr","src",["unknown",["contributor","avatarURL"]],null],["flush-element"],["close-element"],["text","\\n "],["append",["unknown",["contributor","github_username"]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","td",[]],["static-attr","class","kredits"],["flush-element"],["text","\\n "],["open-element","span",[]],["static-attr","class","amount"],["flush-element"],["append",["unknown",["contributor","kredits"]],false],["close-element"],["text","\\n "],["open-element","span",[]],["static-attr","class","symbol"],["flush-element"],["text","₭S"],["close-element"],["text","\\n "],["close-element"],["text","\\n "],["close-element"],["text","\\n"]],"locals":["contributor"]}],"hasPartials":false}',meta:{moduleName:"kredits-web/components/contributor-list/template.hbs"}})}),define("kredits-web/components/loading-spinner/component",["exports","ember"],function(e,t){e.default=t.default.Component.extend({classNames:["loading-spinner"]})}),define("kredits-web/components/loading-spinner/template",["exports"],function(e){e.default=Ember.HTMLBars.template({id:"+vFITFyc",block:'{"statements":[["open-element","p",[]],["flush-element"],["text","\\n "],["open-element","svg",[]],["static-attr","xmlns","http://www.w3.org/2000/svg","http://www.w3.org/2000/xmlns/"],["static-attr","xmlns:xlink","http://www.w3.org/1999/xlink","http://www.w3.org/2000/xmlns/"],["static-attr","version","1.1"],["static-attr","x","0px"],["static-attr","y","0px"],["static-attr","viewBox","0 0 132 100"],["static-attr","enablLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"sources":["vendor/ember-cli/app-prefix.js","kredits-web/app.js","kredits-web/components/add-contribution/component.js","kredits-web/components/add-contribution/template.js","kredits-web/components/add-contributor/component.js","kredits-web/components/add-contributor/template.js","kredits-web/components/add-proposal/component.js","kredits-web/components/add-proposal/template.js","kredits-web/components/chart-contributions-by-type/component.js","kredits-web/components/chart-contributions-by-type/template.js","kredits-web/components/contribution-list/component.js","kredits-web/components/contribution-list/template.js","kredits-web/components/contributor-list/component.js","kredits-web/components/contributor-list/template.js","kredits-web/components/ember-chart.js","kredits-web/components/ember-flatpickr.js","kredits-web/components/loading-spinner/component.js","kredits-web/components/loading-spinner/template.js","kredits-web/components/proposal-list/component.js","kredits-web/components/proposal-list/template.js","kredits-web/components/user-avatar/component.js","kredits-web/components/user-avatar/template.js","kredits-web/controllers/application.js","kredits-web/controllers/contributions/new.js","kredits-web/controllers/contributors/new.js","kredits-web/controllers/index.js","kredits-web/controllers/proposals/new.js","kredits-web/helpers/and.js","kredits-web/helpers/app-version.js","kredits-web/helpers/await.js","kredits-web/helpers/contribution-status.js","kredits-web/helpers/eq.js","kredits-web/helpers/gt.js","kredits-web/helpers/gte.js","kredits-web/helpers/is-array.js","kredits-web/helpers/is-confirmed-contribution.js","kredits-web/helpers/is-current-user.js","kredits-web/helpers/is-equal.js","kredits-web/helpers/is-fulfilled.js","kredits-web/helpers/is-pending.js","kredits-web/helpers/is-rejected.js","kredits-web/helpers/lt.js","kredits-web/helpers/lte.js","kredits-web/helpers/not-eq.js","kredits-web/helpers/not.js","kredits-web/helpers/or.js","kredits-web/helpers/promise-all.js","kredits-web/helpers/promise-hash.js","kredits-web/helpers/promise-rejected-reason.js","kredits-web/helpers/xor.js","kredits-web/initializers/app-version.js","kredits-web/initializers/container-debug-adapter.js","kredits-web/initializers/export-application-global.js","kredits-web/models/contribution.js","kredits-web/models/contributor.js","kredits-web/models/proposal.js","kredits-web/resolver.js","kredits-web/router.js","kredits-web/routes/application.js","kredits-web/services/ajax.js","kredits-web/services/kredits.js","kredits-web/templates/application-loading.js","kredits-web/templates/application.js","kredits-web/templates/contributions/new.js","kredits-web/templates/contributors/new.js","kredits-web/templates/index.js","kredits-web/templates/proposals/new.js","kredits-web/utils/cps/bignumber.js","kredits-web/utils/cps/kredits.js","kredits-web/utils/format-kredits.js","kredits-web/utils/group-by.js","vendor/ember-cli/app-config.js","vendor/ember-cli/app-boot.js"],"names":["define","_exports","_resolver","_emberLoadInitializers","_environment","Object","defineProperty","value","default","App","Ember","Application","extend","modulePrefix","podModulePrefix","Resolver","_default","_slicedToArray","arr","i","Array","isArray","_arrayWithHoles","_arr","_n","_d","_e","undefined","_s","_i","Symbol","iterator","next","done","push","length","err","_iterableToArrayLimit","TypeError","_nonIterableRest","Component","attributes","contributors","freeze","isValidContributor","computed","notEmpty","isValidKind","isValidAmount","parseInt","this","amount","isValidDescription","isValidUrl","isValid","and","init","_super","apply","arguments","set","Date","contributorId","kind","date","description","url","reset","setProperties","actions","submit","_this","getProperties","keys","toISOString","split","save","then","console","warn","window","alert","finally","HTMLBars","template","id","block","meta","moduleName","kredits","inject","service","isValidAccount","isValidName","isValidURL","isValidGithubUID","isValidGithubUsername","isValidGiteaUsername","isValidWikiUsername","inProgress","account","name","github_username","github_uid","gitea_username","wiki_username","contributor","catch","didInsertElement","proposal","saved","scroll","categoryColors","contributions","chartOptions","legend","display","chartData","filterBy","map","c","reduce","kinds","datasets","data","borderColor","borderWidth","labels","tagName","classNames","veto","contributionId","contractInteractionEnabled","vetoContribution","selectedContributor","toggleContributorInfo","showMetadata","contributorList","setEach","_emberChart","_emberFlatpickr","enumerable","get","confirm","proposalId","confirmProposal","attributeBindings","src","alias","title","Controller","minedContributors","contributorsSorting","sortedContributors","sort","contribution","findBy","contributorIpfsHash","ipfsHash","addContribution","transitionToRoute","addContributor","currentBlock","contributionsConfirLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"sources":["vendor/ember-cli/app-prefix.js","kredits-web/app.js","kredits-web/components/add-contributor/component.js","kredits-web/components/add-contributor/template.js","kredits-web/components/add-proposal/component.js","kredits-web/components/add-proposal/template.js","kredits-web/components/chart-contributions-by-type/component.js","kredits-web/components/chart-contributions-by-type/template.js","kredits-web/components/contribution-list/component.js","kredits-web/components/contribution-list/template.js","kredits-web/components/contributor-list/component.js","kredits-web/components/contributor-list/template.js","kredits-web/components/ember-chart.js","kredits-web/components/loading-spinner/component.js","kredits-web/components/loading-spinner/template.js","kredits-web/components/proposal-list/component.js","kredits-web/components/proposal-list/template.js","kredits-web/components/user-avatar/component.js","kredits-web/components/user-avatar/template.js","kredits-web/controllers/application.js","kredits-web/controllers/index.js","kredits-web/controllers/proposals/new.js","kredits-web/helpers/and.js","kredits-web/helpers/app-version.js","kredits-web/helpers/await.js","kredits-web/helpers/eq.js","kredits-web/helpers/gt.js","kredits-web/helpers/gte.js","kredits-web/helpers/is-array.js","kredits-web/helpers/is-current-user.js","kredits-web/helpers/is-equal.js","kredits-web/helpers/is-fulfilled.js","kredits-web/helpers/is-pending.js","kredits-web/helpers/is-rejected.js","kredits-web/helpers/lt.js","kredits-web/helpers/lte.js","kredits-web/helpers/not-eq.js","kredits-web/helpers/not.js","kredits-web/helpers/or.js","kredits-web/helpers/promise-all.js","kredits-web/helpers/promise-hash.js","kredits-web/helpers/promise-rejected-reason.js","kredits-web/helpers/xor.js","kredits-web/initializers/app-version.js","kredits-web/initializers/container-debug-adapter.js","kredits-web/initializers/export-application-global.js","kredits-web/models/contribution.js","kredits-web/models/contributor.js","kredits-web/models/proposal.js","kredits-web/resolver.js","kredits-web/router.js","kredits-web/routes/application.js","kredits-web/services/ajax.js","kredits-web/services/kredits.js","kredits-web/templates/application-loading.js","kredits-web/templates/application.js","kredits-web/templates/index.js","kredits-web/templates/proposals/new.js","kredits-web/utils/cps/bignumber.js","kredits-web/utils/cps/kredits.js","kredits-web/utils/format-kredits.js","vendor/ember-cli/app-config.js","vendor/ember-cli/app-boot.js"],"names":["define","_exports","_resolver","_emberLoadInitializers","_environment","Object","defineProperty","value","default","App","Ember","Application","extend","modulePrefix","podModulePrefix","Resolver","_default","Component","kredits","inject","service","attributes","isValidAccount","computed","notEmpty","isValidName","isValidURL","isValidGithubUID","isValidGithubUsername","isValidWikiUsername","isValid","and","init","this","_super","apply","arguments","set","account","name","kind","url","github_username","github_uid","wiki_username","isCore","didInsertElement","reset","setProperties","actions","submit","_this","keys","contributor","getProperties","saved","save","then","window","scroll","alert","HTMLBars","template","id","block","meta","moduleName","contributors","freeze","isValidContributor","isValidAmount","parseInt","amount","isValidDescription","isValidUrl","contributorId","description","proposal","categoryColors","contributions","chartOptions","legend","display","chartData","map","c","reduce","kinds","datasets","data","borderColor","borderWidth","labels","tagName","classNames","selectedContributor","toggleContributorInfo","get","setEach","_emberChart","confirm","proposalId","contractInteractionEnabled","confirmProposal","attributeBindings","src","alias","title","Controller","currentBlock","contributorsWithKredits","filter","gt","contributorsSorting","contributorsSorted","sort","contributionsSorting","contributionsUnconfirmed","contribution","confirmedAt","contributionsConfirmed","_this2","contributionsUnconfirmedSorted","contributionsConfirmedSorted","vetoContribution","vote","transaction","hash","_this3","addContributor","pushObject","minedContributors","filterBy","findBy","contributorIpfsHash","addProposal","transitionToRoute","_and","enumerable","_regexp","appVersion","_","length","undefined","version","APP","versionOnly","hideSha","shaOnly","hideVersion","match","showExtended","versionExtendedRegExp","versionRegExp","shaRegExp","Helper","helper","_await","_equal","equal","_gt","_gte","gte","_isArray","isArray","_slicedToArray","arr","i","Array","_arrayWithHoles","_arr","_n","_d","_e","_s","_i","Symbol","iterator","next","done","push","err","_iterableToArrayLimit","TypeError","_nonIterableRest","currentUser","compute","_ref","isPresent","_isEqual","isEqual","_isFulfilled","isFulfilled","_isPending","isPending","_isRejected","isRejected","_lt","lt","_lte","lte","_notEqual","notEq","_not","not","Line truncated
|
||||
@@ -0,0 +1,2 @@
|
||||
"use strict";define("kredits-web/app",["exports","ember","kredits-web/resolver","ember-load-initializers","kredits-web/config/environment"],function(e,t,n,r,l){var s=void 0;t.default.MODEL_FACTORY_INJECTIONS=!0,s=t.default.Application.extend({modulePrefix:l.default.modulePrefix,podModulePrefix:l.default.podModulePrefix,Resolver:n.default}),(0,r.default)(s,l.default.modulePrefix),e.default=s}),define("kredits-web/components/add-contributor/component",["exports","ember"],function(e,t){e.default=t.default.Component.extend({id:null,realName:null,address:null,ipfsHash:null,isCore:!1,inProgress:!1,isValidId:function(){return t.default.isPresent(this.get("id"))}.property("id"),isValidRealName:function(){return t.default.isPresent(this.get("realName"))}.property("realName"),isValidAddress:function(){return this.get("kredits.web3Instance").isAddress(this.get("address"))}.property("address"),isValid:function(){return this.get("isValidId")&&this.get("isValidRealName")&&this.get("isValidAddress")}.property("isValidAddress","isValidId","isValidRealName"),reset:function(){this.setProperties({id:null,realName:null,address:null,ipfsHash:null,isCore:!0,inProgress:!1})},actions:{save:function(){var e=this;return this.get("contractInteractionEnabled")?void(this.get("isValid")?(this.set("inProgress",!0),this.get("kredits").addContributor(this.get("address"),this.get("realName"),this.get("isCore"),this.get("id")).then(function(t){e.reset(),e.get("contributors").pushObject(t),window.scroll(0,0)})):alert("Invalid data. Please review and try again.")):void alert("Only core team members can add new contributors. Please ask someone to set you up.")}}})}),define("kredits-web/components/add-contributor/template",["exports"],function(e){e.default=Ember.HTMLBars.template({id:"/x85W8NK",block:'{"statements":[["open-element","form",[]],["modifier",["action"],[["get",[null]],"save"],[["on"],["submit"]]],["flush-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["type","name","id","checked"],["checkbox","is-core","is-core",["get",["isCore"]]]]],false],["text","\\n "],["open-element","label",[]],["static-attr","for","is-core"],["static-attr","class","checkbox"],["flush-element"],["text","\\n Core team member (can add contributors)\\n "],["close-element"],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["id","text","GitHub UID (123)",["get",["id"]],["helper",["if"],[["get",["isValidId"]],"valid",""],null]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["realname","text","GitHub username",["get",["realName"]],["helper",["if"],[["get",["isValidRealName"]],"valid",""],null]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["address","text","0xF18E631Ea191aE4ebE70046Fcb01a436554421BA4",["get",["address"]],["helper",["if"],[["get",["isValidAddress"]],"valid",""],null]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["static-attr","class","actions"],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["type","value","disabled"],["submit",["helper",["if"],[["get",["inProgress"]],"Processing","Save"],null],["get",["inProgress"]]]]],false],["text","\\n "],["close-element"],["text","\\n"],["close-element"],["text","\\n"]],"locals":[],"named":[],"yields":[],"blocks":[],"hasPartials":false}',meta:{moduleName:"kredits-web/components/add-contributor/template.hbs"}})}),define("kredits-web/components/add-proposal/component",["exports","ember"],function(e,t){var n=t.default.Component,r=t.default.inject.service,l=t.default.computed;e.default=n.extend({kredits:r(),proposal:null,inProgress:!1,isValidRecipient:l("proposal.recipientAddress",function(){return this.get("kredits.web3Instance").isAddress(this.get("proposal.recipientAddress"))}),isValidAmount:l("proposal.amount",function(){return!0}),isValidUrl:l("proposal.url",function(){return!0}),isValidIpfsHash:l("proposal.ipfsHash",function(){return!0}),isValid:l.and("isValidRecipient","isValidAmount","isValidUrl","isValidIpfsHash"),actions:{save:function(){var e=this;this.get("isValid")?(this.set("inProgress",!0),this.get("kredits").addProposal(this.get("proposal")).then(function(){e.attrs.onSave()}).catch(function(e){t.default.Logger.error("Error creating the proposal",e),alert("Something went wrong.")}).finally(function(){e.set("inProgress",!1)})):alert("Invalid data. Please review and try again.")}}})}),define("kredits-web/components/add-proposal/template",["exports"],function(e){e.default=Ember.HTMLBars.template({Line truncated
|
||||
var a=l.default.create({address:e,github_username:n,github_uid:s,kredits:0,isCore:r,isCurrentUser:this.get("currentUserAccounts").includes(e)});return new t.default.RSVP.Promise(function(l,i){o.get("ipfs").storeFile(a.serialize()).then(function(d){a.set("ipfsHash",d),t.default.Logger.debug("ADD",e,n,d,r,s),o.get("kreditsContract").addContributor(e,n,d,r,s,function(e,n){return e?void i(e):(t.default.Logger.debug("[kredits] add contributor response",n),void l(a))})})})},addProposal:function(e){var n=this;return new t.default.RSVP.Promise(function(r,l){var s=e.getProperties("recipientAddress","amount","url","ipfsHash"),o=s.recipientAddress,a=s.amount,i=s.url,d=s.ipfsHash;n.get("kreditsContract").addProposal(o,a,i,d,function(e,n){return e?void l(e):(t.default.Logger.debug("[kredits] add proposal response",n),void r())})})},logKreditsContract:function(){t.default.Logger.debug("[kredits] kreditsContract",this.get("kreditsContract"))}.on("init")})}),define("kredits-web/services/qp",["exports","ember-parachute/services/qp"],function(e,t){Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/templates/application",["exports"],function(e){e.default=Ember.HTMLBars.template({id:"bs9LAwOM",block:'{"statements":[["open-element","main",[]],["flush-element"],["text","\\n "],["append",["unknown",["outlet"]],false],["text","\\n"],["close-element"],["text","\\n"]],"locals":[],"named":[],"yields":[],"blocks":[],"hasPartials":false}',meta:{moduleName:"kredits-web/templates/application.hbs"}})}),define("kredits-web/templates/index",["exports"],function(e){e.default=Ember.HTMLBars.template({id:"wvDNcFuV",block:'{"statements":[["open-element","section",[]],["static-attr","id","contributors"],["flush-element"],["text","\\n "],["open-element","header",[]],["flush-element"],["text","\\n "],["open-element","h2",[]],["flush-element"],["text","Kosmos Contributors"],["close-element"],["text","\\n "],["close-element"],["text","\\n\\n "],["open-element","div",[]],["static-attr","class","content"],["flush-element"],["text","\\n "],["append",["helper",["contributor-list"],null,[["contributors"],[["get",["contributorsSorted"]]]]],false],["text","\\n\\n "],["open-element","p",[]],["static-attr","class","stats"],["flush-element"],["text","\\n "],["open-element","span",[]],["static-attr","class","number"],["flush-element"],["append",["unknown",["model","totalSupply"]],false],["close-element"],["text"," kredits issued and distributed among\\n "],["open-element","span",[]],["static-attr","class","number"],["flush-element"],["append",["unknown",["contributorsWithKredits","length"]],false],["close-element"],["text"," contributors.\\n "],["close-element"],["text","\\n "],["close-element"],["text","\\n"],["close-element"],["text","\\n\\n"],["block",["if"],[["get",["proposalsOpen"]]],null,4],["text","\\n"],["open-element","section",[]],["static-attr","id","proposals-closed"],["flush-element"],["text","\\n "],["open-element","header",[]],["flush-element"],["text","\\n "],["open-element","h2",[]],["flush-element"],["text","Closed Proposals"],["close-element"],["text","\\n "],["close-element"],["text","\\n "],["open-element","div",[]],["static-attr","class","content"],["flush-element"],["text","\\n "],["append",["helper",["proposal-list"],null,[["proposals","confirmAction"],[["get",["proposalsClosedSorted"]],"confirmProposal"]]],false],["text","\\n\\n"],["block",["if"],[["get",["contractInteractionEnabled"]]],null,1],["text"," "],["close-element"],["text","\\n"],["close-element"],["text","\\n\\n"],["open-element","section",[]],["static-attr","id","add-contributor"],["flush-element"],["text","\\n "],["open-element","header",[]],["flush-element"],["text","\\n "],["open-element","h2",[]],["flush-element"],["text","Add Contributor"],["close-element"],["text","\\n "],["close-element"],["text","\\n\\n "],["open-element","div",[]],["static-attr","class","content"],["flush-element"],["text","\\n "],["append",["helper",["add-contributor"],null,[["kredits","contributors","contractInteractionEnabled"],[["get",["kredits"]],["get",["model","contributors"]],["get",["contractInteractionEnabled"]]]]],false],["text","\\n "],["close-element"],["text","\\n"],["close-element"],["text","\\n"]],"locals":[],"named":[],"yields":[],"blocks":[{"statements":[["text","Create new proposal"]],"locals":[]},{"statements":[["text"," "],["open-element","p",[]],["static-attr","class","actions"],["flush-element"],["text","\\n "],["block",["link-to"],["proposals.new"],null,0],["text","\\n "],["close-element"],["text","\\n"]],"locals":[]},{"statements":[["text","Create new proposal"]],"locals":[]},{"statements":[["text"," "],["open-element","p",[]],["static-attr","class","actions"],["flush-element"],["text","\\n "],["block",["link-to"],["proposals.new"],null,2],["text","\\n "],["close-element"],["text","\\n"]],"locals":[]},{"statements":[["text"," "],["oLine truncated
|
||||
@@ -0,0 +1,2 @@
|
||||
"use strict";define("kredits-web/app",["exports","ember","kredits-web/resolver","ember-load-initializers","kredits-web/config/environment"],function(e,t,n,r,l){var o=void 0;t.default.MODEL_FACTORY_INJECTIONS=!0,o=t.default.Application.extend({modulePrefix:l.default.modulePrefix,podModulePrefix:l.default.podModulePrefix,Resolver:n.default}),(0,r.default)(o,l.default.modulePrefix),e.default=o}),define("kredits-web/components/add-contributor/component",["exports","ember","kredits-web/models/contributor"],function(e,t,n){var r=t.default.Component,l=t.default.isPresent,o=t.default.inject.service,s=t.default.computed;e.default=r.extend({kredits:o(),newContributor:null,inProgress:!1,isValidAddress:function(){return this.get("kredits.web3").isAddress(this.get("newContributor.address"))}.property("kredits.web3","newContributor.address"),isValidName:function(){return l(this.get("newContributor.name"))}.property("newContributor.name"),isValidURL:function(){return l(this.get("newContributor.url"))}.property("newContributor.url"),isValidGithubUID:function(){return l(this.get("newContributor.github_uid"))}.property("newContributor.github_uid"),isValidGithubUsername:function(){return l(this.get("newContributor.github_username"))}.property("newContributor.github_username"),isValidWikiUsername:function(){return l(this.get("newContributor.wiki_username"))}.property("newContributor.wiki_username"),isValid:s.and("isValidAddress","isValidName","isValidGithubUID"),reset:function(){this.setProperties({newContributor:n.default.create({kind:"person"}),inProgress:!1})},actions:{save:function(){var e=this;return this.get("contractInteractionEnabled")?void(this.get("isValid")?(this.set("inProgress",!0),this.get("kredits").addContributor(this.get("newContributor")).then(function(t){e.reset(),e.get("contributors").pushObject(t),window.scroll(0,0)})):alert("Invalid data. Please review and try again.")):void alert("Only core team members can add new contributors. Please ask someone to set you up.")}}})}),define("kredits-web/components/add-contributor/template",["exports"],function(e){e.default=Ember.HTMLBars.template({id:"WQk0xZ2e",block:'{"statements":[["open-element","form",[]],["modifier",["action"],[["get",[null]],"save"],[["on"],["submit"]]],["flush-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["type","name","id","checked"],["checkbox","is-core","is-core",["get",["newContributor","isCore"]]]]],false],["text","\\n "],["open-element","label",[]],["static-attr","for","is-core"],["static-attr","class","checkbox"],["flush-element"],["text","\\n Core team member (can add contributors)\\n "],["close-element"],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["address","text","0xF18E631Ea191aE4ebE70046Fcb01a436554421BA4",["get",["newContributor","address"]],["helper",["if"],[["get",["isValidAddress"]],"valid",""],null]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["open-element","select",[]],["static-attr","required",""],["dynamic-attr","onchange",["helper",["action"],[["get",[null]],["helper",["mut"],[["get",["newContributor","kind"]]],null]],[["value"],["target.value"]]],null],["flush-element"],["text","\\n "],["open-element","option",[]],["static-attr","value","person"],["dynamic-attr","selected",["helper",["eq"],[["get",["newContributor","kind"]],"person"],null],null],["flush-element"],["text","Person"],["close-element"],["text","\\n "],["open-element","option",[]],["static-attr","value","organization"],["dynamic-attr","selected",["helper",["eq"],[["get",["newContributor","kind"]],"organization"],null],null],["flush-element"],["text","Organization"],["close-element"],["text","\\n "],["close-element"],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["name","text","Name",["get",["newContributor","name"]],["helper",["if"],[["get",["isValidName"]],"valid",""],null]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["url","text","URL",["get",["newContributor","url"]],["helper",["if"],[["get",["isValidURL"]],"valid",""],null]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["github_uid","text","GitHub UID (123)",["get",["newContributor","github_uid"]],["helper",["if"],[["get",["isValidGithubUID"]],"valid",""],null]]]],false],["text","\\n "],["close-element"],["text","\\nLine truncated
|
||||
if(r(this.get("kind"))||r(this.get("description")))throw new Error("Missing one or more required properties: kind, description");var e={"@context":"https://schema.kosmos.org","@type":"Contribution",contributor:{ipfs:this.get("recipientProfile")},kind:this.get("kind"),description:this.get("description"),details:{}};return n(this.get("url"))&&(e.url=this.get("url")),e},serializeContribution:function(){return JSON.stringify(this.contributionToJSON())}})}),define("kredits-web/resolver",["exports","ember-resolver"],function(e,t){e.default=t.default}),define("kredits-web/router",["exports","ember","kredits-web/config/environment"],function(e,t,n){var r=t.default.Router.extend({location:n.default.locationType,rootURL:n.default.rootURL});r.map(function(){this.route("spinner"),this.route("proposals",function(){this.route("new")})}),e.default=r}),define("kredits-web/routes/application",["exports","ember"],function(e,t){e.default=t.default.Route.extend({})}),define("kredits-web/routes/index",["exports","ember","kredits-web/models/contributor"],function(e,t,n){e.default=t.default.Route.extend({kredits:t.default.inject.service(),beforeModel:function(e){var t=this.get("kredits");t.get("web3")&&t.get("web3Provided")&&t.get("web3").eth.getAccounts(function(t,n){(t||0===n.length)&&confirm("It looks like you have an Ethereum wallet available. Please unlock your account.")&&e.retry()})},model:function(){var e=this.get("kredits");return t.default.RSVP.hash({contributors:e.getContributors(),totalSupply:e.getValueFromContract("tokenContract","totalSupply"),proposals:e.getProposals(),newContributor:n.default.create({kind:"person"})})}})}),define("kredits-web/routes/proposals/new",["exports","ember","kredits-web/models/proposal"],function(e,t,n){var r=t.default.Route,l=t.default.RSVP,o=t.default.inject.service;e.default=r.extend({kredits:o(),model:function(e){var t=n.default.create({recipientAddress:e.recipient,amount:e.amount,url:e.url,kind:e.kind||"dev",ipfsHash:e.ipfsHash});return l.hash({proposal:t,contributors:this.get("kredits").getContributors()})},setupController:function(e,t){this._super(e,t.proposal),e.set("contributors",t.contributors)}})}),define("kredits-web/routes/spinner",["exports","ember"],function(e,t){e.default=t.default.Route.extend({})}),define("kredits-web/services/ajax",["exports","ember-ajax/services/ajax"],function(e,t){Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/services/ipfs",["exports","ember","npm:ipfs-api","kredits-web/config/environment"],function(e,t,n,r){e.default=t.default.Service.extend({ipfsInstance:null,ipfs:function(){if(this.get("ipfsInstance"))return this.get("ipfsInstance");var e=(0,n.default)(r.default.ipfs);return this.set("ipfsInstance",e),e}.property("ipfsInstance"),storeFile:function(e){var n=this.get("ipfs");return n.add(new n.Buffer(e)).then(function(n){return t.default.Logger.debug("[ipfs] stored content in IPFS",e,n[0].hash),n[0].hash})},getFile:function(e){return this.get("ipfs").cat(e,{buffer:!0}).then(function(e){return e.toString()},function(n){throw t.default.Logger.error("[ipfs] error trying to fetch file",e,n),n})}})}),define("kredits-web/services/kredits",["exports","ember","npm:web3","kredits-web/config/environment","kredits-web/models/contributor","kredits-web/models/proposal","npm:kredits-contracts","npm:uuid"],function(e,t,n,r,l,o,s,a){var i=t.default.Service,u=t.default.isPresent,d=t.default.inject.service;e.default=i.extend({ipfs:d(),web3Instance:null,web3Provided:!1,web3:function(){if(this.get("web3Instance"))return this.get("web3Instance");var e=void 0;if("undefined"!=typeof window.web3)t.default.Logger.debug("[kredits] Using user-provided instance, e.g. from Mist browser or Metamask"),e=window.web3,this.set("web3Provided",!0);else{t.default.Logger.debug("[kredits] Creating new instance from npm module class");var l=localStorage.getItem("config:web3ProviderUrl")||r.default.web3ProviderUrl,o=new n.default.providers.HttpProvider(l);e=new n.default(o)}return this.set("web3Instance",e),window.web3=e,e}.property("web3Instance"),currentUserAccounts:function(){return this.get("web3Provided")&&this.get("web3").eth.accounts||[]}.property("web3Provided","web3"),initializeKreditsContract:function(){var e=null;return u(r.default.contractMetadata)?(localStorage.getItem("config:networkId")&&(r.default.contractMetadata.networkId=localStorage.getItem("config:networkId")),e=(0,s.default)(this.get("web3"),r.default.contractMetadata).Kredits):e=(0,s.default)(this.get("web3")).Kredits,e},kreditsContract:function(){if(this.get("kreditsContractInstance"))return this.get("kreditsContractInstance");var e=this.initializeKreditsContract();return this.set("kreditsContractInstance",e),e}.property("kreditsContractInstance","web3"),tokenContract:function(){if(this.get("tokenContractInstance"))return this.get("tokenContractInstance");var e=(0,s.default)(this.get("web3"),r.default.contractMetadata).Token;return this.set("tokenContractILine truncated
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"sources":["vendor/ember-cli/app-prefix.js","kredits-web/app.js","kredits-web/components/add-contributor/component.js","kredits-web/components/add-contributor/template.js","kredits-web/components/add-proposal/component.js","kredits-web/components/add-proposal/template.js","kredits-web/components/chart-contributions-by-type/component.js","kredits-web/components/chart-contributions-by-type/template.js","kredits-web/components/contributor-list/component.js","kredits-web/components/contributor-list/template.js","kredits-web/components/ember-chart.js","kredits-web/components/loading-spinner/component.js","kredits-web/components/loading-spinner/template.js","kredits-web/components/proposal-list/component.js","kredits-web/components/proposal-list/template.js","kredits-web/controllers/application.js","kredits-web/controllers/index.js","kredits-web/controllers/proposals/new.js","kredits-web/helpers/and.js","kredits-web/helpers/app-version.js","kredits-web/helpers/await.js","kredits-web/helpers/eq.js","kredits-web/helpers/gt.js","kredits-web/helpers/gte.js","kredits-web/helpers/is-array.js","kredits-web/helpers/is-equal.js","kredits-web/helpers/is-fulfilled.js","kredits-web/helpers/is-pending.js","kredits-web/helpers/is-rejected.js","kredits-web/helpers/lt.js","kredits-web/helpers/lte.js","kredits-web/helpers/not-eq.js","kredits-web/helpers/not.js","kredits-web/helpers/or.js","kredits-web/helpers/promise-all.js","kredits-web/helpers/promise-hash.js","kredits-web/helpers/promise-rejected-reason.js","kredits-web/helpers/xor.js","kredits-web/initializers/app-version.js","kredits-web/initializers/container-debug-adapter.js","kredits-web/initializers/export-application-global.js","kredits-web/models/contributor.js","kredits-web/models/proposal.js","kredits-web/resolver.js","kredits-web/router.js","kredits-web/routes/application.js","kredits-web/services/ajax.js","kredits-web/services/kredits.js","kredits-web/templates/application-loading.js","kredits-web/templates/application.js","kredits-web/templates/index.js","kredits-web/templates/proposals/new.js","kredits-web/utils/cps/bignumber.js","vendor/ember-cli/app-config.js","vendor/ember-cli/app-boot.js"],"names":["define","exports","_resolver","_emberLoadInitializers","_environment","Object","defineProperty","value","App","Ember","Application","extend","modulePrefix","default","podModulePrefix","Resolver","Component","kredits","inject","service","attributes","account","name","kind","url","github_username","github_uid","wiki_username","isCore","didInsertElement","this","_super","apply","arguments","reset","isValidAccount","computed","notEmpty","isValidName","isValidURL","isValidGithubUID","isValidGithubUsername","isValidWikiUsername","isValid","and","setProperties","actions","submit","_this","keys","contributor","getProperties","saved","save","set","then","window","scroll","alert","HTMLBars","template","id","block","meta","moduleName","contributorId","amount","description","contributors","isValidContributor","isValidAmount","parseInt","isValidDescription","isValidUrl","proposal","categoryColors","contributions","chartData","get","map","c","reduce","kinds","datasets","data","borderColor","borderWidth","labels","chartOptions","legend","display","tagName","classNames","selectedContributor","toggleContributorInfo","setEach","_emberChart","confirm","proposalId","contractInteractionEnabled","confirmProposal","Controller","alias","contributorsWithKredits","filter","contributorsSorting","contributorsSorted","sort","proposals","proposalsOpen","filterBy","proposalsClosed","proposalsSorting","proposalsClosedSorted","proposalsOpenSorted","vote","transaction","hash","addContributor","pushObject","minedContributors","findBy","contributorIpfsHash","addProposal","transitionToRoute","_and","enumerable","_regexp","appVersion","version","APP","_","length","undefined","hideSha","match","versionRegExp","hideVersion","shaRegExp","Helper","helper","_await","_equal","equal","_gt","gt","_gte","gte","_isArray","isArray","_isEqual","isEqual","_isFulfilled","isFulfilled","_isPending","isPending","_isRejected","isRejected","_lt","lt","_lte","lte","_notEqual","notEq","_not","not","_or","or","_promiseAll","promiseAll","_promiseHash","promiseHash","_promiseRejectedReason","_xor","xor","_initializerFactory","initialize","_containerDebugAdapter","app","register","application","exportApplicationGlobal","theGlobal","global","self","globalName","String","classify","reopen","willDestroy","_bignumber","balance","ipfsHash","ipfsData","isCurrentUser","avatarURL","creatorAccount","votesCount","votesNeeded","executed","isExecuted","details","_emberResolver","Router","location","locationType","rootURL","route","Route","beforeModel","transition","setup","retry","catch","error","console","log","afterModel","loadContributorsAndProposals","addContractEventHandlers","_ajax","_npmEthers","_npmKreditsContracts","_contributor","_proposal","Service","currentUserAccounts","currentUser","currentUserIsContributor","Line truncated
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"sources":["vendor/ember-cli/app-prefix.js","kredits-web/app.js","kredits-web/components/add-contributor/component.js","kredits-web/components/add-contributor/template.js","kredits-web/components/add-proposal/component.js","kredits-web/components/add-proposal/template.js","kredits-web/components/contributor-list/component.js","kredits-web/components/contributor-list/template.js","kredits-web/components/loading-spinner/component.js","kredits-web/components/loading-spinner/template.js","kredits-web/components/proposal-list/component.js","kredits-web/components/proposal-list/template.js","kredits-web/controllers/application.js","kredits-web/controllers/index.js","kredits-web/controllers/proposals/new.js","kredits-web/helpers/and.js","kredits-web/helpers/app-version.js","kredits-web/helpers/await.js","kredits-web/helpers/eq.js","kredits-web/helpers/gt.js","kredits-web/helpers/gte.js","kredits-web/helpers/is-array.js","kredits-web/helpers/is-equal.js","kredits-web/helpers/is-fulfilled.js","kredits-web/helpers/is-pending.js","kredits-web/helpers/is-rejected.js","kredits-web/helpers/lt.js","kredits-web/helpers/lte.js","kredits-web/helpers/not-eq.js","kredits-web/helpers/not.js","kredits-web/helpers/or.js","kredits-web/helpers/promise-all.js","kredits-web/helpers/promise-hash.js","kredits-web/helpers/promise-rejected-reason.js","kredits-web/helpers/xor.js","kredits-web/initializers/app-version.js","kredits-web/initializers/container-debug-adapter.js","kredits-web/initializers/export-application-global.js","kredits-web/models/contributor.js","kredits-web/models/proposal.js","kredits-web/resolver.js","kredits-web/router.js","kredits-web/routes/application.js","kredits-web/services/ajax.js","kredits-web/services/kredits.js","kredits-web/templates/application-loading.js","kredits-web/templates/application.js","kredits-web/templates/index.js","kredits-web/templates/proposals/new.js","kredits-web/utils/cps/bignumber.js","vendor/ember-cli/app-config.js","vendor/ember-cli/app-boot.js"],"names":["define","exports","_resolver","_emberLoadInitializers","_environment","Object","defineProperty","value","App","Ember","Application","extend","modulePrefix","default","podModulePrefix","Resolver","Component","kredits","inject","service","attributes","account","name","kind","url","github_username","github_uid","wiki_username","isCore","didInsertElement","this","_super","apply","arguments","reset","isValidAccount","computed","notEmpty","isValidName","isValidURL","isValidGithubUID","isValidGithubUsername","isValidWikiUsername","isValid","and","setProperties","actions","submit","_this","keys","contributor","getProperties","saved","save","set","then","window","scroll","alert","HTMLBars","template","id","block","meta","moduleName","contributorId","amount","description","contributors","isValidContributor","isValidAmount","parseInt","isValidDescription","isValidUrl","proposal","tagName","classNames","selectedContributor","toggleContributorInfo","get","setEach","confirm","proposalId","contractInteractionEnabled","confirmProposal","Controller","alias","contributorsWithKredits","filter","contributorsSorting","contributorsSorted","sort","proposals","proposalsOpen","filterBy","proposalsClosed","proposalsSorting","proposalsClosedSorted","proposalsOpenSorted","vote","transaction","hash","addContributor","pushObject","minedContributors","findBy","contributorIpfsHash","addProposal","transitionToRoute","_and","enumerable","_regexp","appVersion","version","APP","_","length","undefined","hideSha","match","versionRegExp","hideVersion","shaRegExp","Helper","helper","_await","_equal","equal","_gt","gt","_gte","gte","_isArray","isArray","_isEqual","isEqual","_isFulfilled","isFulfilled","_isPending","isPending","_isRejected","isRejected","_lt","lt","_lte","lte","_notEqual","notEq","_not","not","_or","or","_promiseAll","promiseAll","_promiseHash","promiseHash","_promiseRejectedReason","_xor","xor","_initializerFactory","initialize","_containerDebugAdapter","app","register","application","exportApplicationGlobal","theGlobal","global","self","globalName","String","classify","reopen","willDestroy","_bignumber","balance","ipfsHash","ipfsData","isCurrentUser","avatarURL","creatorAccount","votesCount","votesNeeded","executed","isExecuted","details","_emberResolver","Router","location","locationType","rootURL","map","route","Route","beforeModel","transition","setup","retry","catch","error","console","log","afterModel","loadContributorsAndProposals","addContractEventHandlers","_ajax","_npmEthers","_npmKreditsContracts","_contributor","_proposal","Service","currentUserAccounts","currentUser","currentUserIsContributor","currentUserIsCore","hasAccounts","accountNeedsUnlock","isEmpty","getEthProvider","RSVP","Promise","resolve","ethProvider","networkId","web3","debug","network","providers","Web3Provider","currentProvider","chainId","listAccounts","accounts","ethSigner","getSigner","contractMetadata","web3ProviderUrl","JsonRpcProvider","_this2","providerAndLine truncated
|
||||
@@ -0,0 +1,141 @@
|
||||
"use strict"
|
||||
define("kredits-web/app",["exports","kredits-web/resolver","ember-load-initializers","kredits-web/config/environment"],function(e,t,n,r){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var i=Ember.Application.extend({modulePrefix:r.default.modulePrefix,podModulePrefix:r.default.podModulePrefix,Resolver:t.default});(0,n.default)(i,r.default.modulePrefix)
|
||||
var o=i
|
||||
e.default=o}),define("kredits-web/components/add-contributor/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.Component.extend({kredits:Ember.inject.service(),attributes:null,isValidAccount:Ember.computed.notEmpty("account"),isValidName:Ember.computed.notEmpty("name"),isValidURL:Ember.computed.notEmpty("url"),isValidGithubUID:Ember.computed.notEmpty("github_uid"),isValidGithubUsername:Ember.computed.notEmpty("github_username"),isValidWikiUsername:Ember.computed.notEmpty("wiki_username"),isValid:Ember.computed.and("isValidAccount","isValidName","isValidGithubUID"),init:function(){this._super.apply(this,arguments),this.set("attributes",{account:null,name:null,kind:"person",url:null,github_username:null,github_uid:null,wiki_username:null,isCore:!1})},didInsertElement:function(){this._super.apply(this,arguments),this.reset()},reset:function(){this.setProperties(this.attributes)},actions:{submit:function(){var e=this
|
||||
if(this.isValid){var t=Object.keys(this.attributes),n=this.getProperties(t),r=this.save(n)
|
||||
this.set("inProgress",r),r.then(function(){e.reset(),window.scroll(0,0),window.alert("Contributor added.")})}else alert("Invalid data. Please review and try again.")}}})
|
||||
e.default=t}),define("kredits-web/components/add-contributor/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.HTMLBars.template({id:"NNAD5dbK",block:'{"symbols":[],"statements":[[7,"form"],[9],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["name","type","id","checked"],["is-core","checkbox","is-core",[23,["isCore"]]]]],false],[0,"\\n "],[7,"label"],[11,"for","is-core"],[11,"class","checkbox"],[9],[0,"\\n Core team member (can add contributors)\\n "],[10],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["name","type","placeholder","value","class"],["account","text","0xF18E631Ea191aE4ebE70046Fcb01a436554421BA4",[23,["account"]],[27,"if",[[23,["isValidAccount"]],"valid",""],null]]]],false],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[7,"select"],[11,"required",""],[12,"onchange",[27,"action",[[22,0,[]],[27,"mut",[[23,["kind"]]],null]],[["value"],["target.value"]]]],[9],[0,"\\n "],[7,"option"],[11,"value","person"],[12,"selected",[27,"eq",[[23,["kind"]],"person"],null]],[9],[0,"Person"],[10],[0,"\\n "],[7,"option"],[11,"value","organization"],[12,"selected",[27,"eq",[[23,["kind"]],"organization"],null]],[9],[0,"Organization"],[10],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["name","type","placeholder","value","class"],["name","text","Name",[23,["name"]],[27,"if",[[23,["isValidName"]],"valid",""],null]]]],false],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["name","type","placeholder","value","class"],["url","text","URL",[23,["url"]],[27,"if",[[23,["isValidURL"]],"valid",""],null]]]],false],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["name","type","placeholder","value","class"],["github_uid","text","GitHub UID (123)",[23,["github_uid"]],[27,"if",[[23,["isValidGithubUID"]],"valid",""],null]]]],false],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["name","type","placeholder","value","class"],["github_username","text","GitHub username",[23,["github_username"]],[27,"if",[[23,["isValidGithubUsername"]],"valid",""],null]]]],false],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["name","type","placeholder","value","class"],["wiki_username","text","Wiki Username",[23,["wiki_username"]],[27,"if",[[23,["isValidWikiUsername"]],"valid",""],null]]]],false],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[11,"class","actions"],[9],[0,"\\n "],[1,[27,"input",null,[["type","disabled","value"],["submit",[27,"is-pending",[[23,["inProgress"]]],null],[27,"if",[[27,"is-pending",[[23,["inProgress"]]],null],"Processing","Save"],null]]]],false],[0,"\\n "],[10],[0,"\\n"],[3,"action",[[22,0,[]],"submit"],[["on"],["submit"]]],[10],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/components/add-contributor/template.hbs"}})
|
||||
e.default=t}),define("kredits-web/components/add-proposal/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.Component.extend({attributes:null,contributors:Object.freeze([]),isValidContributor:Ember.computed.notEmpty("contributorId"),isValidAmount:Ember.computed("amount",function(){return parseInt(this.amount,10)>0}),isValidDescription:Ember.computed.notEmpty("description"),isValidUrl:Ember.computed.notEmpty("url"),isValid:Ember.computed.and("isValidContributor","isValidAmount","isValidDescription"),init:function(){this._super.apply(this,arguments),this.set("attributes",{contributorId:null,kind:"community",amount:null,description:null,url:null})},didInsertElement:function(){this._super.apply(this,arguments),this.reset()},reset:function(){this.setProperties(this.attributes)},actions:{submit:function(){var e=this
|
||||
if(this.isValid){var t=Object.keys(this.attributes),n=this.getProperties(t),r=this.save(n)
|
||||
this.set("inProgress",r),r.then(function(){e.reset(),window.scroll(0,0),window.alert("Proposal added.")})}else alert("Invalid data. Please review and try again.")}}})
|
||||
e.default=t}),define("kredits-web/components/add-proposal/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.HTMLBars.template({id:"3DOgBCvD",block:'{"symbols":["contributor"],"statements":[[7,"form"],[9],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[7,"select"],[11,"required",""],[12,"onchange",[27,"action",[[22,0,[]],[27,"mut",[[23,["contributorId"]]],null]],[["value"],["target.value"]]]],[9],[0,"\\n "],[7,"option"],[11,"value",""],[11,"selected",""],[11,"disabled",""],[11,"hidden",""],[9],[0,"Contributor"],[10],[0,"\\n"],[4,"each",[[23,["contributors"]]],null,{"statements":[[0," "],[7,"option"],[12,"value",[22,1,["id"]]],[12,"selected",[27,"eq",[[23,["contributorId"]],[22,1,["id"]]],null]],[9],[1,[22,1,["github_username"]],false],[10],[0,"\\n"]],"parameters":[1]},null],[0," "],[10],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[7,"select"],[11,"required",""],[12,"onchange",[27,"action",[[22,0,[]],[27,"mut",[[23,["kind"]]],null]],[["value"],["target.value"]]]],[9],[0,"\\n "],[7,"option"],[11,"value","community"],[12,"selected",[27,"eq",[[23,["kind"]],"community"],null]],[9],[0,"Community"],[10],[0,"\\n "],[7,"option"],[11,"value","design"],[12,"selected",[27,"eq",[[23,["kind"]],"design"],null]],[9],[0,"Design"],[10],[0,"\\n "],[7,"option"],[11,"value","dev"],[12,"selected",[27,"eq",[[23,["kind"]],"dev"],null]],[9],[0,"Development"],[10],[0,"\\n "],[7,"option"],[11,"value","docs"],[12,"selected",[27,"eq",[[23,["kind"]],"docs"],null]],[9],[0,"Documentation"],[10],[0,"\\n "],[7,"option"],[11,"value","ops"],[12,"selected",[27,"eq",[[23,["kind"]],"ops"],null]],[9],[0,"IT Operations"],[10],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["type","placeholder","value","class"],["text","100",[23,["amount"]],[27,"if",[[23,["isValidAmount"]],"valid",""],null]]]],false],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["type","placeholder","value","class"],["text","Description",[23,["description"]],[27,"if",[[23,["isValidDescription"]],"valid",""],null]]]],false],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["type","placeholder","value","class"],["text","URL (optional)",[23,["url"]],[27,"if",[[23,["isValidUrl"]],"valid",""],null]]]],false],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[11,"class","actions"],[9],[0,"\\n "],[1,[27,"input",null,[["type","disabled","value"],["submit",[27,"is-pending",[[23,["inProgress"]]],null],[27,"if",[[27,"is-pending",[[23,["inProgress"]]],null],"Processing","Save"],null]]]],false],[0,"\\n "],[4,"link-to",["index"],null,{"statements":[[0,"Back"]],"parameters":[]},null],[0,"\\n "],[10],[0,"\\n"],[3,"action",[[22,0,[]],"submit"],[["on"],["submit"]]],[10],[0,"\\n\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/components/add-proposal/template.hbs"}})
|
||||
e.default=t}),define("kredits-web/components/chart-contributions-by-type/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t="#fb6868",n="#fbe468",r="#e068fb",i="#97fb68",o="#8f68fb",s=Ember.Component.extend({contributions:null,chartOptions:Object.freeze({legend:{display:!1}}),chartData:Ember.computed("contributions",function(){var e=this.contributions.map(function(e){return{kind:e.kind,amount:e.amount}}).reduce(function(e,t){return t.kind in e?e[t.kind]=e[t.kind]+t.amount:e[t.kind]=t.amount,e},{})
|
||||
return{datasets:[{data:[e.community,e.design,e.dev,e.ops,e.docs],borderColor:[t,n,r,o,i],borderWidth:1}],labels:["Community","Design","Development","Operations & Infrastructure","Documentation"]}})})
|
||||
e.default=s}),define("kredits-web/components/chart-contributions-by-type/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.HTMLBars.template({id:"knNRD8x3",block:'{"symbols":[],"statements":[[7,"div"],[11,"class","chart"],[9],[0,"\\n "],[1,[27,"ember-chart",null,[["type","data","options","width","height"],["doughnut",[23,["chartData"]],[23,["chartOptions"]],200,200]]],false],[0,"\\n"],[10]],"hasEval":false}',meta:{moduleName:"kredits-web/components/chart-contributions-by-type/template.hbs"}})
|
||||
e.default=t}),define("kredits-web/components/contribution-list/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.Component.extend({tagName:"ul",classNames:["contribution-list"]})
|
||||
e.default=t}),define("kredits-web/components/contribution-list/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.HTMLBars.template({id:"pCrdk2W6",block:'{"symbols":["contribution"],"statements":[[4,"each",[[23,["contributions"]]],null,{"statements":[[0," "],[7,"li"],[12,"data-contribution-id",[22,1,["id"]]],[12,"class",[27,"if",[[22,1,["confirmed"]],"confirmed","unconfirmed"],null]],[9],[0,"\\n "],[7,"p"],[11,"class","meta"],[9],[0,"\\n "],[7,"span"],[11,"class","recipient"],[9],[1,[27,"user-avatar",null,[["contributor"],[[22,1,["contributor"]]]]],false],[10],[0,"\\n "],[7,"span"],[12,"class",[28,["category ",[22,1,["kind"]]]]],[9],[0,"("],[1,[22,1,["kind"]],false],[0,")"],[10],[0,"\\n "],[7,"span"],[11,"class","title"],[9],[0,"\\n"],[4,"if",[[22,1,["url"]]],null,{"statements":[[0," "],[7,"a"],[12,"href",[22,1,["url"]]],[11,"target","_blank"],[11,"rel","noopener"],[9],[1,[22,1,["description"]],false],[10],[0,"\\n"]],"parameters":[]},{"statements":[[0," "],[1,[22,1,["description"]],false],[0,"\\n"]],"parameters":[]}],[0," "],[10],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[11,"class","kredits-amount"],[9],[0,"\\n "],[7,"span"],[11,"class","amount"],[9],[1,[22,1,["amount"]],false],[10],[7,"span"],[11,"class","symbol"],[9],[0,"₭S"],[10],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n"]],"parameters":[1]},null]],"hasEval":false}',meta:{moduleName:"kredits-web/components/contribution-list/template.hbs"}})
|
||||
e.default=t}),define("kredits-web/components/contributor-list/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.Component.extend({tagName:"table",classNames:"contributor-list",selectedContributor:null,actions:{toggleContributorInfo:function(e){e.get("showMetadata")?e.set("showMetadata",!1):(this.contributors.setEach("showMetadata",!1),e.set("showMetadata",!0))}}})
|
||||
e.default=t}),define("kredits-web/components/contributor-list/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.HTMLBars.template({id:"0V5ZXtul",block:'{"symbols":["contributor"],"statements":[[7,"tbody"],[9],[0,"\\n"],[4,"each",[[23,["contributors"]]],null,{"statements":[[0," "],[7,"tr"],[11,"role","button"],[12,"class",[27,"if",[[27,"is-current-user",[[22,1,[]]],null],"current-user"],null]],[9],[0,"\\n "],[7,"td"],[11,"class","person"],[9],[0,"\\n "],[1,[27,"user-avatar",null,[["contributor"],[[22,1,[]]]]],false],[0," "],[1,[22,1,["name"]],false],[0,"\\n "],[10],[0,"\\n "],[7,"td"],[11,"class","kredits"],[9],[0,"\\n "],[7,"span"],[11,"class","amount"],[9],[1,[22,1,["totalKreditsEarned"]],false],[10],[0,"\\n "],[7,"span"],[11,"class","symbol"],[9],[0,"₭S"],[10],[0,"\\n "],[10],[0,"\\n "],[3,"action",[[22,0,[]],"toggleContributorInfo",[22,1,[]]]],[10],[0,"\\n "],[7,"tr"],[12,"class",[28,["metadata ",[27,"if",[[27,"is-current-user",[[22,1,[]]],null],"current-user"],null]," ",[27,"if",[[22,1,["showMetadata"]],"visible"],null]]]],[9],[0,"\\n "],[7,"td"],[11,"colspan","2"],[9],[0,"\\n "],[7,"ul"],[9],[0,"\\n "],[7,"li"],[9],[7,"a"],[12,"href",[28,["https://testnet.etherscan.io/address/",[22,1,["account"]]]]],[9],[0,"Inspect Ethereum transactions"],[10],[10],[0,"\\n"],[4,"if",[[22,1,["ipfsHash"]]],null,{"statements":[[0," "],[7,"li"],[9],[7,"a"],[12,"href",[28,["https://ipfs.io/ipfs/",[22,1,["ipfsHash"]]]]],[9],[0,"Inspect IPFS profile"],[10],[10],[0,"\\n"]],"parameters":[]},null],[0," "],[10],[0,"\\n"],[4,"if",[[22,1,["showMetadata"]]],null,{"statements":[[0," "],[7,"pre"],[9],[1,[22,1,["ipfsData"]],false],[10],[0,""]],"parameters":[]},null],[0," "],[10],[0,"\\n "],[10],[0,"\\n"]],"parameters":[1]},null],[10],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/components/contributor-list/template.hbs"}})
|
||||
e.default=t}),define("kredits-web/components/ember-chart",["exports","ember-cli-chart/components/ember-chart"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var n=t.default
|
||||
e.default=n}),define("kredits-web/components/loading-spinner/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.Component.extend({classNames:["loading-spinner"]})
|
||||
e.default=t}),define("kredits-web/components/loading-spinner/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.HTMLBars.template({id:"b6SWTOaj",block:'{"symbols":[],"statements":[[7,"p"],[9],[0,"\\n "],[7,"svg"],[11,"xmlns","http://www.w3.org/2000/svg","http://www.w3.org/2000/xmlns/"],[11,"xmlns:xlink","http://www.w3.org/1999/xlink","http://www.w3.org/2000/xmlns/"],[11,"version","1.1"],[11,"x","0px"],[11,"y","0px"],[11,"viewBox","0 0 132 100"],[11,"enable-background","new 0 0 100 100"],[11,"xml:space","preserve","http://www.w3.org/XML/1998/namespace"],[9],[0,"\\n "],[7,"path"],[11,"id","path-comet"],[11,"d","M79.062,24.173L79.062,24.173l-0.021-0.011c-0.068-0.03-0.137-0.062-0.204-0.093L42.392,7.337\\n c0,0,3.065,14.104,4.458,18.019l0,0c0,0-41.754-12.481-46.85-13.67c1.67,6.52,30.607,62.492,30.607,62.492\\n c5.848,11.873,19.394,18.485,33.522,18.485c19.811,0,35.87-16.059,35.87-35.869C100,42.313,91.418,29.837,79.062,24.173z"],[9],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n"],[10],[0,"\\n"],[7,"p"],[9],[0,"\\n Loading data...\\n"],[10],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/components/loading-spinner/template.hbs"}})
|
||||
e.default=t}),define("kredits-web/components/proposal-list/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.Component.extend({tagName:"ul",classNames:["proposal-list"],actions:{confirm:function(e){this.contractInteractionEnabled?this.confirmProposal(e):window.alert("Only members can vote on proposals. Please ask someone to set you up.")}}})
|
||||
e.default=t}),define("kredits-web/components/proposal-list/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.HTMLBars.template({id:"pZHMSOZc",block:'{"symbols":["proposal"],"statements":[[4,"each",[[23,["proposals"]]],null,{"statements":[[0," "],[7,"li"],[12,"data-proposal-id",[22,1,["id"]]],[12,"class",[27,"if",[[22,1,["isExecuted"]],"confirmed","unconfirmed"],null]],[9],[0,"\\n "],[7,"p"],[11,"class","meta"],[9],[0,"\\n "],[7,"span"],[12,"class",[28,["category ",[22,1,["kind"]]]]],[9],[0,"♥ ("],[1,[22,1,["kind"]],false],[0,")"],[10],[0,"\\n "],[7,"span"],[11,"class","recipient"],[9],[1,[22,1,["contributor","name"]],false],[0,":"],[10],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[11,"class","kredits-amount"],[9],[0,"\\n "],[7,"span"],[11,"class","amount"],[9],[1,[22,1,["amount"]],false],[10],[7,"span"],[11,"class","symbol"],[9],[0,"₭S"],[10],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[11,"class","description"],[9],[0,"\\n "],[7,"span"],[11,"class","description"],[9],[1,[22,1,["description"]],false],[10],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[11,"class","voting"],[9],[0,"\\n"],[4,"unless",[[22,1,["isExecuted"]]],null,{"statements":[[0," "],[7,"span"],[11,"class","votes"],[9],[0,"("],[1,[22,1,["votesCount"]],false],[0,"/"],[1,[22,1,["votesNeeded"]],false],[0," votes)"],[10],[0,"\\n "],[7,"button"],[9],[0,"+1"],[3,"action",[[22,0,[]],"confirm",[22,1,["id"]]]],[10],[0,"\\n"]],"parameters":[]},null],[0," "],[10],[0,"\\n "],[10],[0,"\\n"]],"parameters":[1]},null]],"hasEval":false}',meta:{moduleName:"kredits-web/components/proposal-list/template.hbs"}})
|
||||
e.default=t}),define("kredits-web/components/user-avatar/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.Component.extend({contributor:null,tagName:"img",classNames:["avatar"],attributeBindings:["src","title"],src:Ember.computed.alias("contributor.avatarURL"),title:Ember.computed.alias("contributor.name")})
|
||||
e.default=t}),define("kredits-web/components/user-avatar/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.HTMLBars.template({id:"rnnAjEgP",block:'{"symbols":[],"statements":[],"hasEval":false}',meta:{moduleName:"kredits-web/components/user-avatar/template.hbs"}})
|
||||
e.default=t}),define("kredits-web/controllers/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.Controller.extend({kredits:Ember.inject.service()})
|
||||
e.default=t}),define("kredits-web/controllers/index",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.Controller.extend({kredits:Ember.inject.service(),currentBlock:Ember.computed.alias("kredits.currentBlock"),contributors:Ember.computed.alias("kredits.contributors"),contributorsWithKredits:Ember.computed.filter("contributors",function(e){return e.get("totalKreditsEarnedRaw").gt(0)}),contributorsSorting:Object.freeze(["totalKreditsEarned:desc"]),contributorsSorted:Ember.computed.sort("contributorsWithKredits","contributorsSorting"),contributions:Ember.computed.alias("kredits.contributions"),contributionsSorting:Object.freeze(["id:desc"]),contributionsUnconfirmed:Ember.computed("contributions.[]","currentBlock",function(){var e=this
|
||||
return this.contributions.filter(function(t){return t.confirmedAt>e.currentBlock})}),contributionsConfirmed:Ember.computed("contributions.[]","currentBlock",function(){var e=this
|
||||
return this.contributions.filter(function(t){return t.confirmedAt<=e.currentBlock})}),contributionsUnconfirmedSorted:Ember.computed.sort("contributionsUnconfirmed","contributionsSorting"),contributionsConfirmedSorted:Ember.computed.sort("contributionsConfirmed","contributionsSorting"),actions:{vetoContribution:function(){},confirmProposal:function(e){this.kredits.vote(e).then(function(e){window.confirm("Vote submitted to Ethereum blockhain: "+e.hash)})},save:function(e){var t=this
|
||||
return this.kredits.addContributor(e).then(function(e){return t.contributors.pushObject(e),e})}}})
|
||||
e.default=t}),define("kredits-web/controllers/proposals/new",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.Controller.extend({kredits:Ember.inject.service(),contributors:Ember.computed.alias("kredits.contributors"),minedContributors:Ember.computed.filterBy("contributors","id"),actions:{save:function(e){var t=this,n=this.contributors.findBy("id",e.contributorId)
|
||||
return e.contributorIpfsHash=n.get("ipfsHash"),this.kredits.addProposal(e).then(function(e){return t.transitionToRoute("index"),e})}}})
|
||||
e.default=t}),define("kredits-web/helpers/and",["exports","ember-truth-helpers/helpers/and"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"and",{enumerable:!0,get:function(){return t.and}})}),define("kredits-web/helpers/app-version",["exports","kredits-web/config/environment","ember-cli-app-version/utils/regexp"],function(e,t,n){function r(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=t.default.APP.version,o=r.versionOnly||r.hideSha,s=r.shaOnly||r.hideVersion,a=null
|
||||
return o&&(r.showExtended&&(a=i.match(n.versionExtendedRegExp)),a||(a=i.match(n.versionRegExp))),s&&(a=i.match(n.shaRegExp)),a?a[0]:i}Object.defineProperty(e,"__esModule",{value:!0}),e.appVersion=r,e.default=void 0
|
||||
var i=Ember.Helper.helper(r)
|
||||
e.default=i}),define("kredits-web/helpers/await",["exports","ember-promise-helpers/helpers/await"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/helpers/eq",["exports","ember-truth-helpers/helpers/equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"equal",{enumerable:!0,get:function(){return t.equal}})}),define("kredits-web/helpers/gt",["exports","ember-truth-helpers/helpers/gt"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"gt",{enumerable:!0,get:function(){return t.gt}})}),define("kredits-web/helpers/gte",["exports","ember-truth-helpers/helpers/gte"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"gte",{enumerable:!0,get:function(){return t.gte}})}),define("kredits-web/helpers/is-array",["exports","ember-truth-helpers/helpers/is-array"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isArray",{enumerable:!0,get:function(){return t.isArray}})}),define("kredits-web/helpers/is-current-user",["exports"],function(e){function t(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,i=!1,o=void 0
|
||||
try{for(var s,a=e[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(u){i=!0,o=u}finally{try{r||null==a.return||a.return()}finally{if(i)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var n=Ember.Helper.extend({kredits:Ember.inject.service(),currentUser:Ember.computed.alias("kredits.currentUser"),compute:function(e){var n=t(e,1)[0]
|
||||
return Ember.isPresent(n)&&Ember.isPresent(this.currentUser)&&n.account===this.currentUser.account}})
|
||||
e.default=n}),define("kredits-web/helpers/is-equal",["exports","ember-truth-helpers/helpers/is-equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isEqual",{enumerable:!0,get:function(){return t.isEqual}})})
|
||||
define("kredits-web/helpers/is-fulfilled",["exports","ember-promise-helpers/helpers/is-fulfilled"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isFulfilled",{enumerable:!0,get:function(){return t.isFulfilled}})}),define("kredits-web/helpers/is-pending",["exports","ember-promise-helpers/helpers/is-pending"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isPending",{enumerable:!0,get:function(){return t.isPending}})}),define("kredits-web/helpers/is-rejected",["exports","ember-promise-helpers/helpers/is-rejected"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isRejected",{enumerable:!0,get:function(){return t.isRejected}})}),define("kredits-web/helpers/lt",["exports","ember-truth-helpers/helpers/lt"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"lt",{enumerable:!0,get:function(){return t.lt}})}),define("kredits-web/helpers/lte",["exports","ember-truth-helpers/helpers/lte"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"lte",{enumerable:!0,get:function(){return t.lte}})}),define("kredits-web/helpers/not-eq",["exports","ember-truth-helpers/helpers/not-equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"notEq",{enumerable:!0,get:function(){return t.notEq}})}),define("kredits-web/helpers/not",["exports","ember-truth-helpers/helpers/not"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"not",{enumerable:!0,get:function(){return t.not}})}),define("kredits-web/helpers/or",["exports","ember-truth-helpers/helpers/or"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"or",{enumerable:!0,get:function(){return t.or}})}),define("kredits-web/helpers/promise-all",["exports","ember-promise-helpers/helpers/promise-all"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"promiseAll",{enumerable:!0,get:function(){return t.promiseAll}})}),define("kredits-web/helpers/promise-hash",["exports","ember-promise-helpers/helpers/promise-hash"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"promiseHash",{enumerable:!0,get:function(){return t.promiseHash}})}),define("kredits-web/helpers/promise-rejected-reason",["exports","ember-promise-helpers/helpers/promise-rejected-reason"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/helpers/xor",["exports","ember-truth-helpers/helpers/xor"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"xor",{enumerable:!0,get:function(){return t.xor}})}),define("kredits-web/initializers/app-version",["exports","ember-cli-app-version/initializer-factory","kredits-web/config/environment"],function(e,t,n){var r,i
|
||||
Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,n.default.APP&&(r=n.default.APP.name,i=n.default.APP.version)
|
||||
var o={name:"App Version",initialize:(0,t.default)(r,i)}
|
||||
e.default=o}),define("kredits-web/initializers/container-debug-adapter",["exports","ember-resolver/resolvers/classic/container-debug-adapter"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var n={name:"container-debug-adapter",initialize:function(){var e=arguments[1]||arguments[0]
|
||||
e.register("container-debug-adapter:main",t.default),e.inject("container-debug-adapter:main","namespace","application:main")}}
|
||||
e.default=n}),define("kredits-web/initializers/export-application-global",["exports","kredits-web/config/environment"],function(e,t){function n(){var e=arguments[1]||arguments[0]
|
||||
if(!1!==t.default.exportApplicationGlobal){var n
|
||||
if("undefined"!=typeof window)n=window
|
||||
else if("undefined"!=typeof global)n=global
|
||||
else{if("undefined"==typeof self)return
|
||||
n=self}var r,i=t.default.exportApplicationGlobal
|
||||
r="string"==typeof i?i:Ember.String.classify(t.default.modulePrefix),n[r]||(n[r]=e,e.reopen({willDestroy:function(){this._super.apply(this,arguments),delete n[r]}}))}}Object.defineProperty(e,"__esModule",{value:!0}),e.initialize=n,e.default=void 0
|
||||
var r={name:"export-application-global",initialize:n}
|
||||
e.default=r}),define("kredits-web/models/contribution",["exports","kredits-web/utils/cps/bignumber"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var n=Ember.Object.extend({id:null,contributorId:null,amount:null,confirmedAt:(0,t.default)("confirmedAtBlock","toNumber"),vetoed:null,ipfsHash:null,creatorAccount:null,kind:null,description:null,details:null,url:null,ipfsData:"",init:function(){this._super.apply(this,arguments),this.set("details",{})}})
|
||||
e.default=n}),define("kredits-web/models/contributor",["exports","kredits-web/utils/cps/bignumber","kredits-web/utils/cps/kredits"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var r=Ember.Object.extend({id:(0,t.default)("idRaw","toString"),account:null,balance:(0,n.default)("balanceRaw"),totalKreditsEarned:(0,t.default)("totalKreditsEarnedRaw","toNumber"),contributionsCount:(0,t.default)("contributionsCountRaw","toNumber"),isCore:!1,ipfsHash:null,kind:null,name:null,url:null,github_username:null,github_uid:null,wiki_username:null,ipfsData:"",avatarURL:Ember.computed("github_uid",function(){var e=this.github_uid
|
||||
if(e)return"https://avatars2.githubusercontent.com/u/".concat(e,"?v=3&s=128")})})
|
||||
e.default=r}),define("kredits-web/models/proposal",["exports","kredits-web/utils/cps/bignumber"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var n=Ember.Object.extend({id:(0,t.default)("idRaw","toString"),creatorAccount:null,contributorId:(0,t.default)("contributorIdRaw","toString"),amount:(0,t.default)("amountRaw","toNumber"),votesCount:(0,t.default)("votesCountRaw","toNumber"),votesNeeded:(0,t.default)("votesNeededRaw","toNumber"),executed:null,ipfsHash:null,isExecuted:Ember.computed.alias("executed"),kind:null,description:null,details:null,url:null,ipfsData:"",init:function(){this._super.apply(this,arguments),this.set("details",{})}})
|
||||
e.default=n}),define("kredits-web/resolver",["exports","ember-resolver"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var n=t.default
|
||||
e.default=n}),define("kredits-web/router",["exports","kredits-web/config/environment"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var n=Ember.Router.extend({location:t.default.locationType,rootURL:t.default.rootURL})
|
||||
n.map(function(){this.route("proposals",function(){this.route("new")})})
|
||||
var r=n
|
||||
e.default=r}),define("kredits-web/routes/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.Route.extend({kredits:Ember.inject.service(),beforeModel:function(e){var t=this.kredits
|
||||
return t.setup().then(function(){t.get("kredits").preflightChecks().catch(function(e){console.error("Kredits preflight check failed!"),console.error(e)}),t.get("accountNeedsUnlock")&&confirm("It looks like you have an Ethereum wallet available. Please unlock your account.")&&e.retry()}).catch(function(e){console.log("Error initializing Kredits",e)})},afterModel:function(){var e=this
|
||||
return this.kredits.loadInitialData().then(function(){e.kredits.addContractEventHandlers()})}})
|
||||
e.default=t}),define("kredits-web/services/ajax",["exports","ember-ajax/services/ajax"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/services/kredits",["exports","npm:ethers","npm:kredits-contracts","kredits-web/utils/format-kredits","kredits-web/config/environment","kredits-web/models/contributor","kredits-web/models/proposal","kredits-web/models/contribution"],function(e,t,n,r,i,o,s,a){function u(e,t,n,r,i,o,s){try{var a=e[o](s),u=a.value}catch(l){return void n(l)}a.done?t(u):Promise.resolve(u).then(r,i)}function l(e){return function(){var t=this,n=arguments
|
||||
return new Promise(function(r,i){var o=e.apply(t,n)
|
||||
function s(e){u(o,r,i,s,a,"next",e)}function a(e){u(o,r,i,s,a,"throw",e)}s(void 0)})}}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var d=Ember.Service.extend({currentBlock:null,currentUserAccounts:null,currentUser:null,contributors:null,proposals:null,contributions:null,currentUserIsContributor:Ember.computed.notEmpty("currentUser"),currentUserIsCore:Ember.computed.alias("currentUser.isCore"),hasAccounts:Ember.computed.notEmpty("currentUserAccounts"),accountNeedsUnlock:Ember.computed("currentUserAccounts",function(){return this.currentUserAccounts&&Ember.isEmpty(this.currentUserAccounts)}),init:function(){this._super.apply(this,arguments),this.set("contributors",[]),this.set("proposals",[]),this.set("contributions",[])},getEthProvider:function(){var e,n=this
|
||||
return new Ember.RSVP.Promise(function(){var r=l(regeneratorRuntime.mark(function r(o){var s,a
|
||||
return regeneratorRuntime.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:if(a=function(n,r){console.debug("[kredits] Using user-provided instance, e.g. from Mist browser or Metamask"),(e=new t.default.providers.Web3Provider(n)).listAccounts().then(function(t){r.set("currentUserAccounts",t)
|
||||
var n=0===t.length?null:e.getSigner()
|
||||
o({ethProvider:e,ethSigner:n})})},s=function(){console.debug("[kredits] Creating new instance from npm module class"),console.debug("[kredits] providerURL: ".concat(i.default.web3ProviderUrl)),e=new t.default.providers.JsonRpcProvider(i.default.web3ProviderUrl),o({ethProvider:e,ethSigner:null})},!window.ethereum){r.next=14
|
||||
break}return r.prev=3,r.next=6,window.ethereum.enable()
|
||||
case 6:a(window.ethereum,n),r.next=12
|
||||
break
|
||||
case 9:r.prev=9,r.t0=r.catch(3),s()
|
||||
case 12:r.next=15
|
||||
break
|
||||
case 14:window.web3?a(window.web3.currentProvider,n):s()
|
||||
case 15:case"end":return r.stop()}},r,null,[[3,9]])}))
|
||||
return function(e){return r.apply(this,arguments)}}())},setup:function(){var e=this
|
||||
return this.getEthProvider().then(function(t){return new n.default(t.ethProvider,t.ethSigner,{addresses:{Kernel:i.default.kreditsKernelAddress},apm:i.default.kreditsApmDomain,ipfsConfig:i.default.ipfs}).init().then(function(){var t=l(regeneratorRuntime.mark(function t(n){return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return e.set("kredits",n),t.t0=e,t.next=4,n.provider.getBlockNumber()
|
||||
case 4:return t.t1=t.sent,t.t0.set.call(t.t0,"currentBlock",t.t1),e.currentUserAccounts&&e.currentUserAccounts.length>0&&e.getCurrentUser.then(function(t){e.set("currentUser",t)}),t.abrupt("return",n)
|
||||
case 8:case"end":return t.stop()}},t)}))
|
||||
return function(e){return t.apply(this,arguments)}}())})},totalSupply:Ember.computed(function(){return this.kredits.Token.functions.totalSupply().then(function(e){return(0,r.default)(e)})}),totalKreditsEarned:Ember.computed(function(){return this.kredits.Contribution.functions.totalKreditsEarned(!0).then(function(e){return e.toNumber()})}),loadInitialData:function(){var e=this
|
||||
return this.getContributors().then(function(t){return e.contributors.pushObjects(t)}).then(function(){return e.getContributions()}).then(function(t){return e.contributions.pushObjects(t)})},addContributor:function(e){return console.debug("[kredits] add contributor",e),this.kredits.Contributor.add(e).then(function(t){return console.debug("[kredits] add contributor response",t),o.default.create(e)})},getContributors:function(){return this.kredits.Contributor.all().then(function(e){return e.map(function(e){return o.default.create(e)})})},addProposal:function(e){var t=this
|
||||
return console.debug("[kredits] add proposal",e),this.kredits.Proposal.addProposal(e).then(function(n){return console.debug("[kredits] add proposal response",n),e.contributor=t.contributors.findBy("id",e.contributorId),s.default.create(e)})},getProposals:function(){var e=this
|
||||
return this.kredits.Proposal.all().then(function(t){return t.map(function(t){return t.contributor=e.contributors.findBy("id",t.contributorId.toString()),s.default.create(t)})})},getContributions:function(){var e=this
|
||||
return this.kredits.Contribution.all().then(function(t){return t.map(function(t){return t.contributor=e.contributors.findBy("id",t.contributorId.toString()),a.default.create(t)})})},vote:function(e){return console.debug("[kredits] vote for",e),this.kredits.Proposal.functions.vote(e).then(function(e){return console.debug("[kredits] vote response",e),e})},getCurrentUser:Ember.computed("kredits.provider",function(){var e=this
|
||||
return Ember.isEmpty(this.currentUserAccounts)?Ember.RSVP.resolve():this.kredits.Contributor.functions.getContributorIdByAddress(this.get("currentUserAccounts.firstObject")).then(function(t){return 0===t?Ember.RSVP.resolve():e.kredits.Contributor.getById(t)})}),findProposalById:function(e){return this.proposals.findBy("id",e.toString())},findContributionById:function(e){return this.contributions.findBy("id",e.toString())},addContractEventHandlers:function(){this.kredits.Proposal.on("ProposalCreated",this.handleProposalCreated.bind(this)).on("ProposalVoted",this.handleProposalVoted.bind(this)).on("ProposalExecuted",this.handleProposalExecuted.bind(this)),this.kredits.Token.on("Transfer",this.handleTransfer.bind(this))},handleProposalCreated:function(e){var t=this
|
||||
this.findProposalById(e)?console.debug("[events] proposal exists, not adding from event"):this.kredits.Proposal.getById(e).then(function(e){e.contributor=t.contributors.findBy("id",e.contributorId.toString()),t.proposals.pushObject(s.default.create(e))})},handleProposalVoted:function(e,t,n){var r=this.findProposalById(e)
|
||||
r&&r.set("votesCount",n)},handleProposalExecuted:function(e,t,n){var r=this.findProposalById(e)
|
||||
r.get("isExecuted")?console.debug("[events] proposal already executed, not adding from event"):(r.set("executed",!0),this.contributors.findBy("id",t.toString()).incrementProperty("balance",n))},handleTransfer:function(e,t,n){n=n.toNumber(),this.contributors.findBy("address",e).decrementProperty("balance",n),this.contributors.findBy("address",t).incrementProperty("balance",n)}})
|
||||
e.default=d}),define("kredits-web/templates/application-loading",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.HTMLBars.template({id:"/K85jZFR",block:'{"symbols":[],"statements":[[1,[21,"loading-spinner"],false],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/application-loading.hbs"}})
|
||||
e.default=t}),define("kredits-web/templates/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.HTMLBars.template({id:"M6vaFJ5T",block:'{"symbols":[],"statements":[[7,"header"],[11,"id","topbar"],[9],[0,"\\n "],[7,"h1"],[9],[0,"Kosmos Kredits"],[10],[0,"\\n\\n "],[7,"section"],[11,"id","user-account"],[9],[0,"\\n"],[4,"if",[[23,["kredits","hasAccounts"]]],null,{"statements":[[4,"if",[[23,["kredits","currentUser"]]],null,{"statements":[[0," "],[1,[23,["kredits","currentUser","name"]],false],[0,"\\n "],[4,"if",[[23,["kredits","currentUserIsCore"]]],null,{"statements":[[0,"(core)"]],"parameters":[]},null],[0,"\\n"]],"parameters":[]},null]],"parameters":[]},{"statements":[[0," Anonymous\\n"]],"parameters":[]}],[0," "],[10],[0,"\\n"],[10],[0,"\\n\\n"],[1,[21,"outlet"],false],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/application.hbs"}})
|
||||
e.default=t}),define("kredits-web/templates/index",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.HTMLBars.template({id:"vlh2lH1n",block:'{"symbols":[],"statements":[[7,"main"],[11,"id","index"],[9],[0,"\\n\\n "],[7,"div"],[11,"id","stats"],[9],[0,"\\n "],[7,"section"],[11,"id","people"],[9],[0,"\\n "],[7,"header"],[9],[0,"\\n "],[7,"h2"],[9],[0,"Contributors"],[10],[0,"\\n "],[10],[0,"\\n "],[7,"div"],[11,"class","content"],[9],[0,"\\n "],[1,[27,"contributor-list",null,[["contributors"],[[23,["contributorsSorted"]]]]],false],[0,"\\n\\n "],[7,"p"],[11,"class","stats"],[9],[0,"\\n "],[7,"span"],[11,"class","number"],[9],[1,[27,"await",[[23,["kredits","totalKreditsEarned"]]],null],false],[10],[0," kredits issued and distributed among\\n "],[7,"span"],[11,"class","number"],[9],[1,[23,["contributorsWithKredits","length"]],false],[10],[0," contributors.\\n "],[10],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n\\n "],[7,"section"],[11,"id","contributions-by-type"],[9],[0,"\\n "],[7,"header"],[9],[0,"\\n "],[7,"h2"],[9],[0,"Contributions by type"],[10],[0,"\\n "],[10],[0,"\\n "],[7,"div"],[11,"class","content"],[9],[0,"\\n "],[1,[27,"chart-contributions-by-type",null,[["contributions"],[[23,["contributions"]]]]],false],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n\\n "],[7,"div"],[11,"id","contributions"],[9],[0,"\\n"],[4,"if",[[23,["contributionsUnconfirmed"]]],null,{"statements":[[0," "],[7,"section"],[11,"id","contributions-unconfirmed"],[9],[0,"\\n "],[7,"header"],[9],[0,"\\n "],[7,"h2"],[9],[0,"Latest Contributions"],[10],[0,"\\n "],[10],[0,"\\n "],[7,"div"],[11,"class","content"],[9],[0,"\\n"],[0," "],[1,[27,"contribution-list",null,[["contributions","vetoContribution","contractInteractionEnabled"],[[23,["contributionsUnconfirmedSorted"]],[27,"action",[[22,0,[]],"vetoContribution"],null],[23,["kredits","hasAccounts"]]]]],false],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n"]],"parameters":[]},null],[0,"\\n "],[7,"section"],[11,"id","contributions-confirmed"],[9],[0,"\\n "],[7,"header"],[9],[0,"\\n "],[7,"h2"],[9],[0,"Confirmed Contributions"],[10],[0,"\\n "],[10],[0,"\\n "],[7,"div"],[11,"class","content"],[9],[0,"\\n "],[1,[27,"contribution-list",null,[["contributions","vetoContribution"],[[23,["contributionsConfirmedSorted"]],[27,"action",[[22,0,[]],"vetoContribution"],null]]]],false],[0,"\\n "],[10],[0,"\\n\\n"],[4,"if",[[23,["kredits","hasAccounts"]]],null,{"statements":[[0," "],[7,"p"],[11,"class","actions"],[9],[0,"\\n "],[4,"link-to",["proposals.new"],null,{"statements":[[0,"Create new proposal"]],"parameters":[]},null],[0,"\\n "],[10],[0,"\\n"]],"parameters":[]},null],[0," "],[10],[0,"\\n "],[10],[0,"\\n\\n"],[4,"if",[[23,["kredits","hasAccounts"]]],null,{"statements":[[0," "],[7,"section"],[11,"id","add-contributor"],[9],[0,"\\n "],[7,"header"],[9],[0,"\\n "],[7,"h2"],[9],[0,"Add Contributor"],[10],[0,"\\n "],[10],[0,"\\n\\n "],[7,"div"],[11,"class","content"],[9],[0,"\\n"],[4,"if",[[23,["kredits","currentUser","isCore"]]],null,{"statements":[[0," "],[1,[27,"add-contributor",null,[["contributors","save"],[[23,["contributors"]],[27,"action",[[22,0,[]],"save"],null]]]],false],[0,"\\n"]],"parameters":[]},{"statements":[[0," Only core team members can add new contributors. Please ask someone to set you up.\\n"]],"parameters":[]}],[0," "],[10],[0,"\\n "],[10],[0,"\\n"]],"parameters":[]},null],[0,"\\n"],[10],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/index.hbs"}})
|
||||
e.default=t}),define("kredits-web/templates/proposals/new",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.HTMLBars.template({id:"vauAEy3a",block:'{"symbols":[],"statements":[[7,"section"],[11,"id","add-proposal"],[9],[0,"\\n "],[7,"header"],[9],[0,"\\n "],[7,"h2"],[9],[0,"Add Proposal"],[10],[0,"\\n "],[10],[0,"\\n\\n "],[7,"div"],[11,"class","content"],[9],[0,"\\n "],[1,[27,"add-proposal",null,[["contributors","save"],[[23,["minedContributors"]],[27,"action",[[22,0,[]],"save"],null]]]],false],[0,"\\n "],[10],[0,"\\n"],[10],[0,"\\n\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/proposals/new.hbs"}})
|
||||
e.default=t}),define("kredits-web/utils/cps/bignumber",["exports","npm:ethers"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e,n){return Ember.computed(e,{get:function(){var r=this.get(e)
|
||||
return r&&t.default.utils.BigNumber.isBigNumber(r)?r[n]():r},set:function(r,i){var o=t.default.utils.bigNumberify(i)
|
||||
return this.set(e,o),o[n]()}})}}),define("kredits-web/utils/cps/kredits",["exports","npm:ethers","kredits-web/utils/format-kredits"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}
|
||||
return Ember.computed(e,{get:function(){var t=this.get(e)
|
||||
return(0,n.default)(t,r)},set:function(i,o){var s=t.default.utils.bigNumberify(o)
|
||||
return this.set(e,s),(0,n.default)(s,r)}})}}),define("kredits-web/utils/format-kredits",["exports","npm:ethers"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.default.utils.formatEther(e)
|
||||
n.decimals||(r=parseInt(r).toString())
|
||||
return r}})
|
||||
define("kredits-web/config/environment",[],function(){try{var e="kredits-web/config/environment",t=document.querySelector('meta[name="'+e+'"]').getAttribute("content"),n={default:JSON.parse(decodeURIComponent(t))}
|
||||
return Object.defineProperty(n,"__esModule",{value:!0}),n}catch(r){throw new Error('Could not read config from meta tag with name "'+e+'".')}}),runningTests||require("kredits-web/app").default.create({name:"kredits-web",version:"1.0.0+d02fb471"})
|
||||
|
||||
//# sourceMappingURL=kredits-web-53fb36cbed9fcae08f4e0a0129f127b3.map
|
||||
@@ -0,0 +1,2 @@
|
||||
"use strict";define("kredits-web/app",["exports","ember","kredits-web/resolver","ember-load-initializers","kredits-web/config/environment"],function(e,t,n,r,l){var o=void 0;t.default.MODEL_FACTORY_INJECTIONS=!0,o=t.default.Application.extend({modulePrefix:l.default.modulePrefix,podModulePrefix:l.default.podModulePrefix,Resolver:n.default}),(0,r.default)(o,l.default.modulePrefix),e.default=o}),define("kredits-web/components/add-contributor/component",["exports","ember","kredits-web/models/contributor"],function(e,t,n){var r=t.default.Component,l=t.default.isPresent,o=t.default.inject.service,s=t.default.computed;e.default=r.extend({kredits:o(),newContributor:null,inProgress:!1,isValidAddress:function(){return this.get("kredits.web3").isAddress(this.get("newContributor.address"))}.property("kredits.web3","newContributor.address"),isValidName:function(){return l(this.get("newContributor.name"))}.property("newContributor.name"),isValidURL:function(){return l(this.get("newContributor.url"))}.property("newContributor.url"),isValidGithubUID:function(){return l(this.get("newContributor.github_uid"))}.property("newContributor.github_uid"),isValidGithubUsername:function(){return l(this.get("newContributor.github_username"))}.property("newContributor.github_username"),isValidWikiUsername:function(){return l(this.get("newContributor.wiki_username"))}.property("newContributor.wiki_username"),isValid:s.and("isValidAddress","isValidName","isValidGithubUID"),reset:function(){this.setProperties({newContributor:n.default.create({kind:"person"}),inProgress:!1})},actions:{save:function(){var e=this;return this.get("contractInteractionEnabled")?void(this.get("isValid")?(this.set("inProgress",!0),this.get("kredits").addContributor(this.get("newContributor")).then(function(t){e.reset(),e.get("contributors").pushObject(t),window.scroll(0,0)})):alert("Invalid data. Please review and try again.")):void alert("Only core team members can add new contributors. Please ask someone to set you up.")}}})}),define("kredits-web/components/add-contributor/template",["exports"],function(e){e.default=Ember.HTMLBars.template({id:"WQk0xZ2e",block:'{"statements":[["open-element","form",[]],["modifier",["action"],[["get",[null]],"save"],[["on"],["submit"]]],["flush-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["type","name","id","checked"],["checkbox","is-core","is-core",["get",["newContributor","isCore"]]]]],false],["text","\\n "],["open-element","label",[]],["static-attr","for","is-core"],["static-attr","class","checkbox"],["flush-element"],["text","\\n Core team member (can add contributors)\\n "],["close-element"],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["address","text","0xF18E631Ea191aE4ebE70046Fcb01a436554421BA4",["get",["newContributor","address"]],["helper",["if"],[["get",["isValidAddress"]],"valid",""],null]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["open-element","select",[]],["static-attr","required",""],["dynamic-attr","onchange",["helper",["action"],[["get",[null]],["helper",["mut"],[["get",["newContributor","kind"]]],null]],[["value"],["target.value"]]],null],["flush-element"],["text","\\n "],["open-element","option",[]],["static-attr","value","person"],["dynamic-attr","selected",["helper",["eq"],[["get",["newContributor","kind"]],"person"],null],null],["flush-element"],["text","Person"],["close-element"],["text","\\n "],["open-element","option",[]],["static-attr","value","organization"],["dynamic-attr","selected",["helper",["eq"],[["get",["newContributor","kind"]],"organization"],null],null],["flush-element"],["text","Organization"],["close-element"],["text","\\n "],["close-element"],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["name","text","Name",["get",["newContributor","name"]],["helper",["if"],[["get",["isValidName"]],"valid",""],null]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["url","text","URL",["get",["newContributor","url"]],["helper",["if"],[["get",["isValidURL"]],"valid",""],null]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["github_uid","text","GitHub UID (123)",["get",["newContributor","github_uid"]],["helper",["if"],[["get",["isValidGithubUID"]],"valid",""],null]]]],false],["text","\\n "],["close-element"],["text","\\nLine truncated
|
||||
},kind:this.get("kind"),description:this.get("description"),details:{}};return n(this.get("url"))&&(e.url=this.get("url")),e},serializeContribution:function(){return JSON.stringify(this.contributionToJSON())}})}),define("kredits-web/resolver",["exports","ember-resolver"],function(e,t){e.default=t.default}),define("kredits-web/router",["exports","ember","kredits-web/config/environment"],function(e,t,n){var r=t.default.Router.extend({location:n.default.locationType,rootURL:n.default.rootURL});r.map(function(){this.route("spinner"),this.route("proposals",function(){this.route("new")})}),e.default=r}),define("kredits-web/routes/application",["exports","ember"],function(e,t){e.default=t.default.Route.extend({})}),define("kredits-web/routes/index",["exports","ember","kredits-web/models/contributor"],function(e,t,n){e.default=t.default.Route.extend({kredits:t.default.inject.service(),model:function(){var e=this.get("kredits");return t.default.RSVP.hash({contributors:e.getContributors(),totalSupply:e.getValueFromContract("tokenContract","totalSupply"),proposals:e.getProposals(),newContributor:n.default.create({kind:"person"})})}})}),define("kredits-web/routes/proposals/new",["exports","ember","kredits-web/models/proposal"],function(e,t,n){var r=t.default.Route,l=t.default.RSVP,o=t.default.inject.service;e.default=r.extend({kredits:o(),model:function(e){var t=n.default.create({recipientAddress:e.recipient,amount:e.amount,url:e.url,kind:e.kind||"dev",ipfsHash:e.ipfsHash});return l.hash({proposal:t,contributors:this.get("kredits").getContributors()})},setupController:function(e,t){this._super(e,t.proposal),e.set("contributors",t.contributors)}})}),define("kredits-web/routes/spinner",["exports","ember"],function(e,t){e.default=t.default.Route.extend({})}),define("kredits-web/services/ajax",["exports","ember-ajax/services/ajax"],function(e,t){Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/services/ipfs",["exports","ember","npm:ipfs-api","kredits-web/config/environment"],function(e,t,n,r){e.default=t.default.Service.extend({ipfsInstance:null,ipfs:function(){if(this.get("ipfsInstance"))return this.get("ipfsInstance");var e=(0,n.default)(r.default.ipfs);return this.set("ipfsInstance",e),e}.property("ipfsInstance"),storeFile:function(e){var n=this.get("ipfs");return n.add(new n.Buffer(e)).then(function(n){return t.default.Logger.debug("[ipfs] stored content in IPFS",e,n[0].hash),n[0].hash})},getFile:function(e){return this.get("ipfs").cat(e,{buffer:!0}).then(function(e){return e.toString()},function(n){throw t.default.Logger.error("[ipfs] error trying to fetch file",e,n),n})}})}),define("kredits-web/services/kredits",["exports","ember","npm:web3","kredits-web/config/environment","kredits-web/models/contributor","kredits-web/models/proposal","npm:kredits-contracts","npm:uuid"],function(e,t,n,r,l,o,s,a){var i=t.default.Service,u=t.default.isPresent,d=t.default.inject.service;e.default=i.extend({ipfs:d(),web3Instance:null,web3Provided:!1,web3:function(){if(this.get("web3Instance"))return this.get("web3Instance");var e=void 0;if("undefined"!=typeof window.web3)t.default.Logger.debug("[kredits] Using user-provided instance, e.g. from Mist browser or Metamask"),e=window.web3,this.set("web3Provided",!0);else{t.default.Logger.debug("[kredits] Creating new instance from npm module class");var l=localStorage.getItem("config:web3ProviderUrl")||r.default.web3ProviderUrl,o=new n.default.providers.HttpProvider(l);e=new n.default(o)}return this.set("web3Instance",e),window.web3=e,e}.property("web3Instance"),currentUserAccounts:function(){return this.get("web3Provided")&&this.get("web3").eth.accounts||[]}.property("web3Provided","web3"),initializeKreditsContract:function(){var e=null;return u(r.default.contractMetadata)?(localStorage.getItem("config:networkId")&&(r.default.contractMetadata.networkId=localStorage.getItem("config:networkId")),e=(0,s.default)(this.get("web3"),r.default.contractMetadata).Kredits):e=(0,s.default)(this.get("web3")).Kredits,e},kreditsContract:function(){if(this.get("kreditsContractInstance"))return this.get("kreditsContractInstance");var e=this.initializeKreditsContract();return this.set("kreditsContractInstance",e),e}.property("kreditsContractInstance","web3"),tokenContract:function(){if(this.get("tokenContractInstance"))return this.get("tokenContractInstance");var e=(0,s.default)(this.get("web3"),r.default.contractMetadata).Token;return this.set("tokenContractInstance",e),window.Token=e,e}.property("tokenContractInstance","web3"),getValueFromContract:function(e,n){for(var r=arguments.length,l=Array(r>2?r-2:0),o=2;o<r;o++)l[o-2]=arguments[o];var s=this;return t.default.Logger.debug("[kredits] read from contract",e),new t.default.RSVP.Promise(function(t,r){var o;(o=s.get(e))[n].apply(o,l.concat([function(e,n){return e?void r(e):void t(n)}]))})},getContributorData:function(e){var n=this,r=new t.default.RSVP.Promise(function(r,o){n.getValueFromContract("krLine truncated
|
||||
@@ -0,0 +1,42 @@
|
||||
"use strict"
|
||||
define("kredits-web/app",["exports","kredits-web/resolver","ember-load-initializers","kredits-web/config/environment"],function(e,t,n,r){Object.defineProperty(e,"__esModule",{value:!0})
|
||||
var o=Ember.Application.extend({modulePrefix:r.default.modulePrefix,podModulePrefix:r.default.podModulePrefix,Resolver:t.default});(0,n.default)(o,r.default.modulePrefix),e.default=o}),define("kredits-web/components/add-contributor/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({kredits:Ember.inject.service(),attributes:{account:null,name:null,kind:"person",url:null,github_username:null,github_uid:null,wiki_username:null,isCore:!1},didInsertElement:function(){this._super.apply(this,arguments),this.reset()},isValidAccount:Ember.computed.notEmpty("account"),isValidName:Ember.computed.notEmpty("name"),isValidURL:Ember.computed.notEmpty("url"),isValidGithubUID:Ember.computed.notEmpty("github_uid"),isValidGithubUsername:Ember.computed.notEmpty("github_username"),isValidWikiUsername:Ember.computed.notEmpty("wiki_username"),isValid:Ember.computed.and("isValidAccount","isValidName","isValidGithubUID"),reset:function(){this.setProperties(this.attributes)},actions:{submit:function(){var e=this
|
||||
if(this.isValid){var t=Object.keys(this.attributes),n=this.getProperties(t),r=this.save(n)
|
||||
this.set("inProgress",r),r.then(function(){e.reset(),window.scroll(0,0),window.alert("Contributor added.")})}else alert("Invalid data. Please review and try again.")}}})}),define("kredits-web/components/add-contributor/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"CSegBQfj",block:'{"symbols":[],"statements":[[6,"form"],[3,"action",[[21,0,[]],"submit"],[["on"],["submit"]]],[8],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","id","checked"],["is-core","checkbox","is-core",[22,["isCore"]]]]],false],[0,"\\n "],[6,"label"],[10,"for","is-core"],[10,"class","checkbox"],[8],[0,"\\n Core team member (can add contributors)\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["account","text","0xF18E631Ea191aE4ebE70046Fcb01a436554421BA4",[22,["account"]],[26,"if",[[22,["isValidAccount"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[6,"select"],[10,"required",""],[11,"onchange",[26,"action",[[21,0,[]],[26,"mut",[[22,["kind"]]],null]],[["value"],["target.value"]]],null],[8],[0,"\\n "],[6,"option"],[10,"value","person"],[11,"selected",[26,"eq",[[22,["kind"]],"person"],null],null],[8],[0,"Person"],[9],[0,"\\n "],[6,"option"],[10,"value","organization"],[11,"selected",[26,"eq",[[22,["kind"]],"organization"],null],null],[8],[0,"Organization"],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["name","text","Name",[22,["name"]],[26,"if",[[22,["isValidName"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["url","text","URL",[22,["url"]],[26,"if",[[22,["isValidURL"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["github_uid","text","GitHub UID (123)",[22,["github_uid"]],[26,"if",[[22,["isValidGithubUID"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["github_username","text","GitHub username",[22,["github_username"]],[26,"if",[[22,["isValidGithubUsername"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["wiki_username","text","Wiki Username",[22,["wiki_username"]],[26,"if",[[22,["isValidWikiUsername"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[10,"class","actions"],[8],[0,"\\n "],[1,[26,"input",null,[["type","disabled","value"],["submit",[26,"is-pending",[[22,["inProgress"]]],null],[26,"if",[[26,"is-pending",[[22,["inProgress"]]],null],"Processing","Save"],null]]]],false],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/components/add-contributor/template.hbs"}})}),define("kredits-web/components/add-proposal/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({attributes:{contributorId:null,kind:"community",amount:null,description:null,url:null},didInsertElement:function(){this._super.apply(this,arguments),this.reset()},contributors:[],isValidContributor:Ember.computed.notEmpty("contributorId"),isValidAmount:Ember.computed("amount",function(){return parseInt(this.amount,10)>0}),isValidDescription:Ember.computed.notEmpty("description"),isValidUrl:Ember.computed.notEmpty("url"),isValid:Ember.computed.and("isValidContributor","isValidAmount","isValidDescription"),reset:function(){this.setProperties(this.attributes)},actions:{submit:function(){var e=this
|
||||
if(this.isValid){var t=Object.keys(this.attributes),n=this.getProperties(t),r=this.save(n)
|
||||
this.set("inProgress",r),r.then(function(){e.reset(),window.scroll(0,0),window.alert("Proposal added.")})}else alert("Invalid data. Please review and try again.")}}})}),define("kredits-web/components/add-proposal/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"cM+dvRZ+",block:'{"symbols":["contributor"],"statements":[[6,"form"],[3,"action",[[21,0,[]],"submit"],[["on"],["submit"]]],[8],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[6,"select"],[10,"required",""],[11,"onchange",[26,"action",[[21,0,[]],[26,"mut",[[22,["contributorId"]]],null]],[["value"],["target.value"]]],null],[8],[0,"\\n "],[6,"option"],[10,"value",""],[10,"selected",""],[10,"disabled",""],[10,"hidden",""],[8],[0,"Contributor"],[9],[0,"\\n"],[4,"each",[[22,["contributors"]]],null,{"statements":[[0," "],[6,"option"],[11,"value",[21,1,["id"]],null],[11,"selected",[26,"eq",[[22,["contributorId"]],[21,1,["id"]]],null],null],[8],[1,[21,1,["github_username"]],false],[9],[0,"\\n"]],"parameters":[1]},null],[0," "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[6,"select"],[10,"required",""],[11,"onchange",[26,"action",[[21,0,[]],[26,"mut",[[22,["kind"]]],null]],[["value"],["target.value"]]],null],[8],[0,"\\n "],[6,"option"],[10,"value","community"],[11,"selected",[26,"eq",[[22,["kind"]],"community"],null],null],[8],[0,"Community"],[9],[0,"\\n "],[6,"option"],[10,"value","design"],[11,"selected",[26,"eq",[[22,["kind"]],"design"],null],null],[8],[0,"Design"],[9],[0,"\\n "],[6,"option"],[10,"value","dev"],[11,"selected",[26,"eq",[[22,["kind"]],"dev"],null],null],[8],[0,"Development"],[9],[0,"\\n "],[6,"option"],[10,"value","docs"],[11,"selected",[26,"eq",[[22,["kind"]],"docs"],null],null],[8],[0,"Documentation"],[9],[0,"\\n "],[6,"option"],[10,"value","ops"],[11,"selected",[26,"eq",[[22,["kind"]],"ops"],null],null],[8],[0,"IT Operations"],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["type","placeholder","value","class"],["text","100",[22,["amount"]],[26,"if",[[22,["isValidAmount"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["type","placeholder","value","class"],["text","Description",[22,["description"]],[26,"if",[[22,["isValidDescription"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["type","placeholder","value","class"],["text","URL (optional)",[22,["url"]],[26,"if",[[22,["isValidUrl"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[10,"class","actions"],[8],[0,"\\n "],[1,[26,"input",null,[["type","disabled","value"],["submit",[26,"is-pending",[[22,["inProgress"]]],null],[26,"if",[[26,"is-pending",[[22,["inProgress"]]],null],"Processing","Save"],null]]]],false],[0,"\\n "],[4,"link-to",["index"],null,{"statements":[[0,"Back"]],"parameters":[]},null],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/components/add-proposal/template.hbs"}})}),define("kredits-web/components/contributor-list/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({tagName:"table",classNames:"contributor-list",selectedContributor:null,actions:{toggleContributorInfo:function(e){e.get("showMetadata")?e.set("showMetadata",!1):(this.contributors.setEach("showMetadata",!1),e.set("showMetadata",!0))}}})}),define("kredits-web/components/contributor-list/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"1c6etkaE",block:'{"symbols":["contributor"],"statements":[[6,"tbody"],[8],[0,"\\n"],[4,"each",[[22,["contributors"]]],null,{"statements":[[0," "],[6,"tr"],[11,"class",[27,[[26,"if",[[21,1,["isCurrentUser"]],"current-user"],null]]]],[3,"action",[[21,0,[]],"toggleContributorInfo",[21,1,[]]]],[8],[0,"\\n "],[6,"td"],[10,"class","person"],[8],[0,"\\n "],[6,"img"],[10,"class","avatar"],[11,"src",[21,1,["avatarURL"]],null],[8],[9],[0,"\\n "],[1,[21,1,["name"]],false],[0,"\\n "],[9],[0,"\\n "],[6,"td"],[10,"class","kredits"],[8],[0,"\\n "],[6,"span"],[10,"class","amount"],[8],[1,[21,1,["balance"]],false],[9],[0,"\\n "],[6,"span"],[10,"class","symbol"],[8],[0,"₭S"],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"tr"],[11,"class",[27,["metadata ",[26,"if",[[21,1,["isCurrentUser"]],"current-user"],null]," ",[26,"if",[[21,1,["showMetadata"]],"visible"],null]]]],[8],[0,"\\n "],[6,"td"],[10,"colspan","2"],[8],[0,"\\n "],[6,"ul"],[8],[0,"\\n "],[6,"li"],[8],[6,"a"],[11,"href",[27,["https://testnet.etherscan.io/address/",[21,1,["account"]]]]],[8],[0,"Inspect Ethereum transactions"],[9],[9],[0,"\\n"],[4,"if",[[21,1,["ipfsHash"]]],null,{"statements":[[0," "],[6,"li"],[8],[6,"a"],[11,"href",[27,["https://ipfs.io/ipfs/",[21,1,[Line truncated
|
||||
return this.kredits.addContributor(e).then(function(e){return t.contributors.pushObject(e),e})}}})}),define("kredits-web/controllers/proposals/new",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Controller.extend({kredits:Ember.inject.service(),contributors:Ember.computed.alias("kredits.contributors"),minedContributors:Ember.computed.filterBy("contributors","id"),actions:{save:function(e){var t=this,n=this.contributors.findBy("id",e.contributorId)
|
||||
return e.contributorIpfsHash=n.get("ipfsHash"),this.kredits.addProposal(e).then(function(e){return t.transitionToRoute("index"),e})}}})}),define("kredits-web/helpers/and",["exports","ember-truth-helpers/helpers/and"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"and",{enumerable:!0,get:function(){return t.and}})}),define("kredits-web/helpers/app-version",["exports","kredits-web/config/environment","ember-cli-app-version/utils/regexp"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.appVersion=o
|
||||
var r=t.default.APP.version
|
||||
function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}
|
||||
return t.hideSha?r.match(n.versionRegExp)[0]:t.hideVersion?r.match(n.shaRegExp)[0]:r}e.default=Ember.Helper.helper(o)}),define("kredits-web/helpers/await",["exports","ember-promise-helpers/helpers/await"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/helpers/eq",["exports","ember-truth-helpers/helpers/equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"equal",{enumerable:!0,get:function(){return t.equal}})}),define("kredits-web/helpers/gt",["exports","ember-truth-helpers/helpers/gt"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"gt",{enumerable:!0,get:function(){return t.gt}})}),define("kredits-web/helpers/gte",["exports","ember-truth-helpers/helpers/gte"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"gte",{enumerable:!0,get:function(){return t.gte}})}),define("kredits-web/helpers/is-array",["exports","ember-truth-helpers/helpers/is-array"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isArray",{enumerable:!0,get:function(){return t.isArray}})}),define("kredits-web/helpers/is-equal",["exports","ember-truth-helpers/helpers/is-equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isEqual",{enumerable:!0,get:function(){return t.isEqual}})}),define("kredits-web/helpers/is-fulfilled",["exports","ember-promise-helpers/helpers/is-fulfilled"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isFulfilled",{enumerable:!0,get:function(){return t.isFulfilled}})}),define("kredits-web/helpers/is-pending",["exports","ember-promise-helpers/helpers/is-pending"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isPending",{enumerable:!0,get:function(){return t.isPending}})}),define("kredits-web/helpers/is-rejected",["exports","ember-promise-helpers/helpers/is-rejected"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isRejected",{enumerable:!0,get:function(){return t.isRejected}})}),define("kredits-web/helpers/lt",["exports","ember-truth-helpers/helpers/lt"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"lt",{enumerable:!0,get:function(){return t.lt}})}),define("kredits-web/helpers/lte",["exports","ember-truth-helpers/helpers/lte"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"lte",{enumerable:!0,get:function(){return t.lte}})}),define("kredits-web/helpers/not-eq",["exports","ember-truth-helpers/helpers/not-equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"notEq",{enumerable:!0,get:function(){return t.notEq}})}),define("kredits-web/helpers/not",["exports","ember-truth-helpers/helpers/not"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"not",{enumerable:!0,get:function(){return t.not}})}),define("kredits-web/helpers/or",["exports","ember-truth-helpers/helpers/or"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"or",{enumerable:!0,get:function(){return t.or}})})
|
||||
define("kredits-web/helpers/promise-all",["exports","ember-promise-helpers/helpers/promise-all"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"promiseAll",{enumerable:!0,get:function(){return t.promiseAll}})}),define("kredits-web/helpers/promise-hash",["exports","ember-promise-helpers/helpers/promise-hash"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"promiseHash",{enumerable:!0,get:function(){return t.promiseHash}})}),define("kredits-web/helpers/promise-rejected-reason",["exports","ember-promise-helpers/helpers/promise-rejected-reason"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/helpers/xor",["exports","ember-truth-helpers/helpers/xor"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"xor",{enumerable:!0,get:function(){return t.xor}})}),define("kredits-web/initializers/app-version",["exports","ember-cli-app-version/initializer-factory","kredits-web/config/environment"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0})
|
||||
var r=void 0,o=void 0
|
||||
n.default.APP&&(r=n.default.APP.name,o=n.default.APP.version),e.default={name:"App Version",initialize:(0,t.default)(r,o)}}),define("kredits-web/initializers/container-debug-adapter",["exports","ember-resolver/resolvers/classic/container-debug-adapter"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"container-debug-adapter",initialize:function(){var e=arguments[1]||arguments[0]
|
||||
e.register("container-debug-adapter:main",t.default),e.inject("container-debug-adapter:main","namespace","application:main")}}}),define("kredits-web/initializers/export-application-global",["exports","kredits-web/config/environment"],function(e,t){function n(){var e=arguments[1]||arguments[0]
|
||||
if(!1!==t.default.exportApplicationGlobal){var n
|
||||
if("undefined"!=typeof window)n=window
|
||||
else if("undefined"!=typeof global)n=global
|
||||
else{if("undefined"==typeof self)return
|
||||
n=self}var r,o=t.default.exportApplicationGlobal
|
||||
r="string"==typeof o?o:Ember.String.classify(t.default.modulePrefix),n[r]||(n[r]=e,e.reopen({willDestroy:function(){this._super.apply(this,arguments),delete n[r]}}))}}Object.defineProperty(e,"__esModule",{value:!0}),e.initialize=n,e.default={name:"export-application-global",initialize:n}}),define("kredits-web/models/contributor",["exports","kredits-web/utils/cps/bignumber"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Object.extend({id:(0,t.default)("idRaw","toString"),account:null,balance:(0,t.default)("balanceRaw","toNumber"),isCore:!1,ipfsHash:null,kind:null,name:null,url:null,github_username:null,github_uid:null,wiki_username:null,ipfsData:"",isCurrentUser:!1,avatarURL:Ember.computed("github_uid",function(){var e=this.github_uid
|
||||
if(e)return"https://avatars2.githubusercontent.com/u/"+e+"?v=3&s=128"})})}),define("kredits-web/models/proposal",["exports","kredits-web/utils/cps/bignumber"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Object.extend({id:(0,t.default)("idRaw","toString"),creatorAccount:null,contributorId:(0,t.default)("contributorIdRaw","toString"),amount:(0,t.default)("amountRaw","toNumber"),votesCount:(0,t.default)("votesCountRaw","toNumber"),votesNeeded:(0,t.default)("votesNeededRaw","toNumber"),executed:null,ipfsHash:null,isExecuted:Ember.computed.alias("executed"),kind:null,description:null,details:{},url:null,ipfsData:""})}),define("kredits-web/resolver",["exports","ember-resolver"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=t.default}),define("kredits-web/router",["exports","kredits-web/config/environment"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0})
|
||||
var n=Ember.Router.extend({location:t.default.locationType,rootURL:t.default.rootURL})
|
||||
n.map(function(){this.route("spinner"),this.route("proposals",function(){this.route("new")})}),e.default=n}),define("kredits-web/routes/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Route.extend({kredits:Ember.inject.service(),beforeModel:function(e){var t=this.kredits
|
||||
return t.setup().then(function(){t.get("accountNeedsUnlock")&&confirm("It looks like you have an Ethereum wallet available. Please unlock your account.")&&e.retry()}).catch(function(e){console.log("Error initializing Kredits",e)})},afterModel:function(){var e=this
|
||||
return this.kredits.loadContributorsAndProposals().then(function(){e.kredits.addContractEventHandlers()})}})}),define("kredits-web/routes/spinner",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Route.extend({})}),define("kredits-web/services/ajax",["exports","ember-ajax/services/ajax"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/services/kredits",["exports","npm:ethers","npm:kredits-contracts","kredits-web/config/environment","kredits-web/models/contributor","kredits-web/models/proposal"],function(e,t,n,r,o,s){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Service.extend({currentUserAccounts:null,currentUser:null,currentUserIsContributor:Ember.computed.notEmpty("currentUser"),currentUserIsCore:Ember.computed.alias("currentUser.isCore"),hasAccounts:Ember.computed.notEmpty("currentUserAccounts"),accountNeedsUnlock:Ember.computed("currentUserAccounts",function(){return this.currentUserAccounts&&Ember.isEmpty(this.currentUserAccounts)}),getEthProvider:function(){var e=this
|
||||
return new Ember.RSVP.Promise(function(n){var o=void 0,s=void 0
|
||||
void 0!==window.web3?(console.debug("[kredits] Using user-provided instance, e.g. from Mist browser or Metamask"),s=parseInt(window.web3.version.network),(o=new t.default.providers.Web3Provider(window.web3.currentProvider,{chainId:s})).listAccounts().then(function(t){e.set("currentUserAccounts",t),n(o)})):(console.debug("[kredits] Creating new instance from npm module class"),s=parseInt(r.default.contractMetadata.networkId),o=new t.default.providers.JsonRpcProvider(r.default.web3ProviderUrl,{chainId:s}),n(o))})},setup:function(){var e=this
|
||||
return this.getEthProvider().then(function(t){var r=void 0
|
||||
return t.getSigner&&(r=t.getSigner()),new n.default(t,r).init().then(function(t){return e.set("kredits",t),e.currentUserAccounts&&e.currentUserAccounts.length>0&&e.getCurrentUser.then(function(t){e.set("currentUser",t)}),t})})},totalSupply:Ember.computed(function(){return this.kredits.Token.functions.totalSupply()}),contributors:[],proposals:[],loadContributorsAndProposals:function(){var e=this
|
||||
return this.getContributors().then(function(t){return e.contributors.pushObjects(t)}).then(function(){return e.getProposals()}).then(function(t){return e.proposals.pushObjects(t)})},addContributor:function(e){return console.debug("[kredits] add contributor",e),this.kredits.Contributor.add(e).then(function(t){return console.debug("[kredits] add contributor response",t),o.default.create(e)})},getContributors:function(){return this.kredits.Contributor.all().then(function(e){return e.map(function(e){return o.default.create(e)})})},addProposal:function(e){var t=this
|
||||
return console.debug("[kredits] add proposal",e),this.kredits.Operator.addProposal(e).then(function(n){return console.debug("[kredits] add proposal response",n),e.contributor=t.contributors.findBy("id",e.contributorId),s.default.create(e)})},getProposals:function(){var e=this
|
||||
return this.kredits.Operator.all().then(function(t){return t.map(function(t){return t.contributor=e.contributors.findBy("id",t.contributorId.toString()),s.default.create(t)})})},vote:function(e){return console.debug("[kredits] vote for",e),this.kredits.Operator.functions.vote(e).then(function(e){return console.debug("[kredits] vote response",e),e})},getCurrentUser:Ember.computed("kredits.provider",function(){var e=this
|
||||
return Ember.isEmpty(this.currentUserAccounts)?Ember.RSVP.resolve():this.kredits.Contributor.functions.getContributorIdByAddress(this.get("currentUserAccounts.firstObject")).then(function(t){return 0===(t=t.toNumber())?Ember.RSVP.resolve():e.kredits.Contributor.getById(t)})}),findProposalById:function(e){return this.proposals.findBy("id",e.toString())},addContractEventHandlers:function(){this.kredits.Operator.on("ProposalCreated",this.handleProposalCreated.bind(this)).on("ProposalVoted",this.handleProposalVoted.bind(this)).on("ProposalExecuted",this.handleProposalExecuted.bind(this)),this.kredits.Token.on("Transfer",this.handleTransfer.bind(this))},handleProposalCreated:function(e){var t=this
|
||||
this.findProposalById(e)?console.debug("[events] proposal exists, not adding from event"):this.kredits.Operator.getById(e).then(function(e){e.contributor=t.contributors.findBy("id",e.contributorId.toString()),t.proposals.pushObject(s.default.create(e))})},handleProposalVoted:function(e,t,n){var r=this.findProposalById(e)
|
||||
r&&r.set("votesCount",n)},handleProposalExecuted:function(e,t,n){var r=this.findProposalById(e)
|
||||
r.get("isExecuted")?console.debug("[events] proposal already executed, not adding from event"):(r.set("executed",!0),this.contributors.findBy("id",t.toString()).incrementProperty("balance",n.toNumber()))},handleTransfer:function(e,t,n){n=n.toNumber(),this.contributors.findBy("address",e).decrementProperty("balance",n),this.contributors.findBy("address",t).incrementProperty("balance",n)}})}),define("kredits-web/templates/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"Lp1+Ni2p",block:'{"symbols":[],"statements":[[6,"main"],[8],[0,"\\n "],[1,[20,"outlet"],false],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/application.hbs"}})}),define("kredits-web/templates/index",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"Vx25wHka",block:'{"symbols":[],"statements":[[4,"if",[[22,["kredits","hasAccounts"]]],null,{"statements":[[0," "],[6,"section"],[10,"id","user-account"],[8],[0,"\\n"],[4,"if",[[22,["kredits","currentUser"]]],null,{"statements":[[0," "],[1,[22,["kredits","currentUser","name"]],false],[0,"\\n"],[4,"if",[[22,["kredits","currentUserIsCore"]]],null,{"statements":[[0," (core)\\n"]],"parameters":[]},null],[0," Account: "],[1,[22,["kredits","currentUser","account"]],false],[0,"\\n"]],"parameters":[]},null],[0," "],[9],[0,"\\n"]],"parameters":[]},null],[0,"\\n"],[6,"section"],[10,"id","contributors"],[8],[0,"\\n "],[6,"header"],[8],[0,"\\n "],[6,"h2"],[8],[0,"Kosmos Contributors"],[9],[0,"\\n "],[9],[0,"\\n "],[6,"div"],[10,"class","content"],[8],[0,"\\n "],[1,[26,"contributor-list",null,[["contributors"],[[22,["contributorsSorted"]]]]],false],[0,"\\n\\n "],[6,"p"],[10,"class","stats"],[8],[0,"\\n "],[6,"span"],[10,"class","number"],[8],[1,[26,"await",[[22,["kredits","totalSupply"]]],null],false],[9],[0," kredits issued and distributed among\\n "],[6,"span"],[10,"class","number"],[8],[1,[22,["contributorsWithKredits","length"]],false],[9],[0," contributors.\\n "],[9],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n\\n"],[4,"if",[[22,["proposalsOpen"]]],null,{"statements":[[0," "],[6,"section"],[10,"id","proposals-open"],[8],[0,"\\n "],[6,"header"],[8],[0,"\\n "],[6,"h2"],[8],[0,"Open Proposals"],[9],[0,"\\n "],[9],[0,"\\n "],[6,"div"],[10,"class","content"],[8],[0,"\\n"],[0," "],[1,[26,"proposal-list",null,[["proposals","confirmProposal","contractInteractionEnabled"],[[22,["proposalsOpenSorted"]],[26,"action",[[21,0,[]],"confirmProposal"],null],[22,["kredits","hasAccounts"]]]]],false],[0,"\\n\\n"],[4,"if",[[22,["kredits","hasAccounts"]]],null,{"statements":[[0," "],[6,"p"],[10,"class","actions"],[8],[0,"\\n "],[4,"link-to",["proposals.new"],null,{"statements":[[0,"Create new proposal"]],"parameters":[]},null],[0,"\\n "],[9],[0,"\\n"]],"parameters":[]},null],[0," "],[9],[0,"\\n "],[9],[0,"\\n"]],"parameters":[]},null],[0,"\\n"],[6,"section"],[10,"id","proposals-closed"],[8],[0,"\\n "],[6,"header"],[8],[0,"\\n "],[6,"h2"],[8],[0,"Closed Proposals"],[9],[0,"\\n "],[9],[0,"\\n "],[6,"div"],[10,"class","content"],[8],[0,"\\n "],[1,[26,"proposal-list",null,[["proposals","confirmProposal"],[[22,["proposalsClosedSorted"]],[26,"action",[[21,0,[]],"confirmProposal"],null]]]],false],[0,"\\n\\n"],[4,"if",[[22,["kredits","hasAccounts"]]],null,{"statements":[[0," "],[6,"p"],[10,"class","actions"],[8],[0,"\\n "],[4,"link-to",["proposals.new"],null,{"statements":[[0,"Create new proposal"]],"parameters":[]},null],[0,"\\n "],[9],[0,"\\n"]],"parameters":[]},null],[0," "],[9],[0,"\\n"],[9],[0,"\\n\\n"],[6,"section"],[10,"id","add-contributor"],[8],[0,"\\n "],[6,"header"],[8],[0,"\\n "],[6,"h2"],[8],[0,"Add Contributor"],[9],[0,"\\n "],[9],[0,"\\n\\n "],[6,"div"],[10,"class","content"],[8],[0,"\\n"],[4,"if",[[22,["kredits","currentUser","isCore"]]],null,{"statements":[[0," "],[1,[26,"add-contributor",null,[["contributors","save"],[[22,["contributors"]],[26,"action",[[21,0,[]],"save"],null]]]],false],[0,"\\n"]],"parameters":[]},{"statements":[[0," Only core team members can add new contributors. Please ask someone to set you up.\\n"]],"parameters":[]}],[0," "],[9],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/index.hbs"}})}),define("kredits-web/templates/loading",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"mH9O+n3h",block:'{"symbols":[],"statements":[[1,[20,"loading-spinner"],false],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/loading.hbs"}})}),define("kredits-web/templates/proposals/new",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"AndvFYbw",block:'{"symbols":[],"statements":[[6,"section"],[10,"id","add-proposal"],[8],[0,"\\n "],[6,"headerLine truncated
|
||||
return r&&t.default.utils.isBigNumber(r)?r[n]():r},set:function(r,o){return o=t.default.utils.bigNumberify(o),this.set(e,o),o[n]()}})}}),define("kredits-web/config/environment",[],function(){try{var e="kredits-web/config/environment",t=document.querySelector('meta[name="'+e+'"]').getAttribute("content"),n={default:JSON.parse(unescape(t))}
|
||||
return Object.defineProperty(n,"__esModule",{value:!0}),n}catch(t){throw new Error('Could not read config from meta tag with name "'+e+'".')}}),runningTests||require("kredits-web/app").default.create({name:"kredits-web",version:"1.0.0+d070288e"})
|
||||
|
||||
//# sourceMappingURL=kredits-web-2ed17443aa6fc1b1eac2fd0c4cd6f36d.map
|
||||
@@ -0,0 +1,158 @@
|
||||
"use strict"
|
||||
define("kredits-web/app",["exports","kredits-web/resolver","ember-load-initializers","kredits-web/config/environment"],function(e,t,n,r){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var i=Ember.Application.extend({modulePrefix:r.default.modulePrefix,podModulePrefix:r.default.podModulePrefix,Resolver:t.default});(0,n.default)(i,r.default.modulePrefix)
|
||||
var o=i
|
||||
e.default=o}),define("kredits-web/components/add-contributor/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.Component.extend({kredits:Ember.inject.service(),attributes:null,isValidAccount:Ember.computed.notEmpty("account"),isValidName:Ember.computed.notEmpty("name"),isValidURL:Ember.computed.notEmpty("url"),isValidGithubUID:Ember.computed.notEmpty("github_uid"),isValidGithubUsername:Ember.computed.notEmpty("github_username"),isValidGiteaUsername:Ember.computed.notEmpty("gitea_username"),isValidWikiUsername:Ember.computed.notEmpty("wiki_username"),isValid:Ember.computed.and("isValidAccount","isValidName","isValidGithubUID"),inProgress:!1,init:function(){this._super.apply(this,arguments),this.set("attributes",{account:null,name:null,kind:"person",url:null,github_username:null,github_uid:null,gitea_username:null,wiki_username:null})},didInsertElement:function(){this._super.apply(this,arguments),this.reset()},reset:function(){this.setProperties(this.attributes)},actions:{submit:function(){var e=this
|
||||
if(this.isValid){var t=Object.keys(this.attributes),n=this.getProperties(t)
|
||||
this.set("inProgress",!0),this.save(n).then(function(){e.reset(),window.scroll(0,0)}).catch(function(e){console.log(e),window.alert("Something went wrong. Please check the browser console.")}).finally(function(){e.set("inProgress",!1)})}else alert("Invalid data. Please review and try again.")}}})
|
||||
e.default=t}),define("kredits-web/components/add-contributor/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.HTMLBars.template({id:"tTvY+kme",block:'{"symbols":[],"statements":[[7,"form"],[9],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["name","type","placeholder","value","class"],["account","text","0xF18E631Ea191aE4ebE70046Fcb01a436554421BA4",[23,["account"]],[27,"if",[[23,["isValidAccount"]],"valid",""],null]]]],false],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[7,"select"],[11,"required",""],[12,"onchange",[27,"action",[[22,0,[]],[27,"mut",[[23,["kind"]]],null]],[["value"],["target.value"]]]],[9],[0,"\\n "],[7,"option"],[11,"value","person"],[12,"selected",[27,"eq",[[23,["kind"]],"person"],null]],[9],[0,"Person"],[10],[0,"\\n "],[7,"option"],[11,"value","organization"],[12,"selected",[27,"eq",[[23,["kind"]],"organization"],null]],[9],[0,"Organization"],[10],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["name","type","placeholder","value","class"],["name","text","Name",[23,["name"]],[27,"if",[[23,["isValidName"]],"valid",""],null]]]],false],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["name","type","placeholder","value","class"],["url","text","URL",[23,["url"]],[27,"if",[[23,["isValidURL"]],"valid",""],null]]]],false],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["name","type","placeholder","value","class"],["github_uid","text","GitHub UID (123)",[23,["github_uid"]],[27,"if",[[23,["isValidGithubUID"]],"valid",""],null]]]],false],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["name","type","placeholder","value","class"],["github_username","text","GitHub username",[23,["github_username"]],[27,"if",[[23,["isValidGithubUsername"]],"valid",""],null]]]],false],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["name","type","placeholder","value","class"],["gitea_username","text","Gitea username",[23,["gitea_username"]],[27,"if",[[23,["isValidGiteaUsername"]],"valid",""],null]]]],false],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["name","type","placeholder","value","class"],["wiki_username","text","Wiki Username",[23,["wiki_username"]],[27,"if",[[23,["isValidWikiUsername"]],"valid",""],null]]]],false],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[11,"class","actions"],[9],[0,"\\n "],[1,[27,"input",null,[["type","disabled","value"],["submit",[23,["inProgress"]],[27,"if",[[23,["inProgress"]],"Processing","Save"],null]]]],false],[0,"\\n "],[10],[0,"\\n"],[3,"action",[[22,0,[]],"submit"],[["on"],["submit"]]],[10],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/components/add-contributor/template.hbs"}})
|
||||
e.default=t}),define("kredits-web/components/add-proposal/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.Component.extend({attributes:null,contributors:Object.freeze([]),isValidContributor:Ember.computed.notEmpty("contributorId"),isValidAmount:Ember.computed("amount",function(){return parseInt(this.amount,10)>0}),isValidDescription:Ember.computed.notEmpty("description"),isValidUrl:Ember.computed.notEmpty("url"),isValid:Ember.computed.and("isValidContributor","isValidAmount","isValidDescription"),init:function(){this._super.apply(this,arguments),this.set("attributes",{contributorId:null,kind:"community",amount:null,description:null,url:null})},didInsertElement:function(){this._super.apply(this,arguments),this.reset()},reset:function(){this.setProperties(this.attributes)},actions:{submit:function(){var e=this
|
||||
if(this.isValid){var t=Object.keys(this.attributes),n=this.getProperties(t),r=this.save(n)
|
||||
this.set("inProgress",r),r.then(function(){e.reset(),window.scroll(0,0),window.alert("Proposal added.")})}else alert("Invalid data. Please review and try again.")}}})
|
||||
e.default=t}),define("kredits-web/components/add-proposal/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.HTMLBars.template({id:"3DOgBCvD",block:'{"symbols":["contributor"],"statements":[[7,"form"],[9],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[7,"select"],[11,"required",""],[12,"onchange",[27,"action",[[22,0,[]],[27,"mut",[[23,["contributorId"]]],null]],[["value"],["target.value"]]]],[9],[0,"\\n "],[7,"option"],[11,"value",""],[11,"selected",""],[11,"disabled",""],[11,"hidden",""],[9],[0,"Contributor"],[10],[0,"\\n"],[4,"each",[[23,["contributors"]]],null,{"statements":[[0," "],[7,"option"],[12,"value",[22,1,["id"]]],[12,"selected",[27,"eq",[[23,["contributorId"]],[22,1,["id"]]],null]],[9],[1,[22,1,["github_username"]],false],[10],[0,"\\n"]],"parameters":[1]},null],[0," "],[10],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[7,"select"],[11,"required",""],[12,"onchange",[27,"action",[[22,0,[]],[27,"mut",[[23,["kind"]]],null]],[["value"],["target.value"]]]],[9],[0,"\\n "],[7,"option"],[11,"value","community"],[12,"selected",[27,"eq",[[23,["kind"]],"community"],null]],[9],[0,"Community"],[10],[0,"\\n "],[7,"option"],[11,"value","design"],[12,"selected",[27,"eq",[[23,["kind"]],"design"],null]],[9],[0,"Design"],[10],[0,"\\n "],[7,"option"],[11,"value","dev"],[12,"selected",[27,"eq",[[23,["kind"]],"dev"],null]],[9],[0,"Development"],[10],[0,"\\n "],[7,"option"],[11,"value","docs"],[12,"selected",[27,"eq",[[23,["kind"]],"docs"],null]],[9],[0,"Documentation"],[10],[0,"\\n "],[7,"option"],[11,"value","ops"],[12,"selected",[27,"eq",[[23,["kind"]],"ops"],null]],[9],[0,"IT Operations"],[10],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["type","placeholder","value","class"],["text","100",[23,["amount"]],[27,"if",[[23,["isValidAmount"]],"valid",""],null]]]],false],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["type","placeholder","value","class"],["text","Description",[23,["description"]],[27,"if",[[23,["isValidDescription"]],"valid",""],null]]]],false],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[9],[0,"\\n "],[1,[27,"input",null,[["type","placeholder","value","class"],["text","URL (optional)",[23,["url"]],[27,"if",[[23,["isValidUrl"]],"valid",""],null]]]],false],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[11,"class","actions"],[9],[0,"\\n "],[1,[27,"input",null,[["type","disabled","value"],["submit",[27,"is-pending",[[23,["inProgress"]]],null],[27,"if",[[27,"is-pending",[[23,["inProgress"]]],null],"Processing","Save"],null]]]],false],[0,"\\n "],[4,"link-to",["index"],null,{"statements":[[0,"Back"]],"parameters":[]},null],[0,"\\n "],[10],[0,"\\n"],[3,"action",[[22,0,[]],"submit"],[["on"],["submit"]]],[10],[0,"\\n\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/components/add-proposal/template.hbs"}})
|
||||
e.default=t}),define("kredits-web/components/chart-contributions-by-type/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t="#fb6868",n="#fbe468",r="#e068fb",i="#97fb68",o="#8f68fb",s=Ember.Component.extend({contributions:null,chartOptions:Object.freeze({legend:{display:!1}}),chartData:Ember.computed("contributions",function(){var e=this.contributions.map(function(e){return{kind:e.kind,amount:e.amount}}).reduce(function(e,t){return t.kind in e?e[t.kind]=e[t.kind]+t.amount:e[t.kind]=t.amount,e},{})
|
||||
return{datasets:[{data:[e.community,e.design,e.dev,e.ops,e.docs],borderColor:[t,n,r,o,i],borderWidth:1}],labels:["Community","Design","Development","Operations & Infrastructure","Documentation"]}})})
|
||||
e.default=s}),define("kredits-web/components/chart-contributions-by-type/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.HTMLBars.template({id:"knNRD8x3",block:'{"symbols":[],"statements":[[7,"div"],[11,"class","chart"],[9],[0,"\\n "],[1,[27,"ember-chart",null,[["type","data","options","width","height"],["doughnut",[23,["chartData"]],[23,["chartOptions"]],200,200]]],false],[0,"\\n"],[10]],"hasEval":false}',meta:{moduleName:"kredits-web/components/chart-contributions-by-type/template.hbs"}})
|
||||
e.default=t}),define("kredits-web/components/contribution-list/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.Component.extend({tagName:"ul",classNames:["contribution-list"],actions:{veto:function(e){this.contractInteractionEnabled?this.vetoContribution(e):window.alert("Only members can veto contributions. Please ask someone to set you up.")}}})
|
||||
e.default=t}),define("kredits-web/components/contribution-list/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.HTMLBars.template({id:"xYW3ZUYB",block:'{"symbols":["contribution"],"statements":[[4,"each",[[23,["contributions"]]],null,{"statements":[[0," "],[7,"li"],[12,"data-contribution-id",[22,1,["id"]]],[12,"class",[28,[[27,"contribution-status",[[22,1,[]]],null]," ",[27,"if",[[22,1,["vetoed"]],"vetoed"],null]]]],[9],[0,"\\n "],[7,"p"],[11,"class","meta"],[9],[0,"\\n "],[7,"span"],[11,"class","recipient"],[9],[1,[27,"user-avatar",null,[["contributor"],[[22,1,["contributor"]]]]],false],[10],[0,"\\n "],[7,"span"],[12,"class",[28,["category ",[22,1,["kind"]]]]],[9],[0,"("],[1,[22,1,["kind"]],false],[0,")"],[10],[0,"\\n "],[7,"span"],[11,"class","title"],[9],[0,"\\n"],[4,"if",[[22,1,["url"]]],null,{"statements":[[0," "],[7,"a"],[12,"href",[22,1,["url"]]],[11,"target","_blank"],[11,"rel","noopener"],[9],[1,[22,1,["description"]],false],[10],[0,"\\n"]],"parameters":[]},{"statements":[[0," "],[1,[22,1,["description"]],false],[0,"\\n"]],"parameters":[]}],[0," "],[10],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[11,"class","kredits-amount"],[9],[0,"\\n "],[7,"span"],[11,"class","amount"],[9],[1,[22,1,["amount"]],false],[10],[7,"span"],[11,"class","symbol"],[9],[0,"₭S"],[10],[0,"\\n "],[10],[0,"\\n"],[4,"unless",[[22,1,["vetoed"]]],null,{"statements":[[4,"unless",[[27,"is-confirmed-contribution",[[22,1,[]]],null]],null,{"statements":[[0," "],[7,"p"],[11,"class","voting"],[9],[0,"\\n "],[7,"button"],[11,"class","small danger"],[9],[0,"veto"],[3,"action",[[22,0,[]],"veto",[22,1,["id"]]]],[10],[0,"\\n "],[10],[0,"\\n"]],"parameters":[]},null]],"parameters":[]},null],[0," "],[10],[0,"\\n"]],"parameters":[1]},null]],"hasEval":false}',meta:{moduleName:"kredits-web/components/contribution-list/template.hbs"}})
|
||||
e.default=t}),define("kredits-web/components/contributor-list/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.Component.extend({tagName:"table",classNames:"contributor-list",selectedContributor:null,actions:{toggleContributorInfo:function(e){e.showMetadata?e.set("showMetadata",!1):(this.contributorList.setEach("showMetadata",!1),e.set("showMetadata",!0))}}})
|
||||
e.default=t}),define("kredits-web/components/contributor-list/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.HTMLBars.template({id:"TJ50ruBI",block:'{"symbols":["c"],"statements":[[7,"tbody"],[9],[0,"\\n"],[4,"each",[[23,["contributorList"]]],null,{"statements":[[0," "],[7,"tr"],[11,"role","button"],[12,"class",[27,"if",[[27,"is-current-user",[[22,1,["contributor"]]],null],"current-user"],null]],[9],[0,"\\n "],[7,"td"],[11,"class","person"],[9],[0,"\\n "],[1,[27,"user-avatar",null,[["contributor"],[[22,1,["contributor"]]]]],false],[0," "],[1,[22,1,["contributor","name"]],false],[0,"\\n "],[10],[0,"\\n "],[7,"td"],[11,"class","kredits"],[9],[0,"\\n "],[7,"span"],[11,"class","amount"],[9],[0,"\\n"],[4,"if",[[23,["showUnconfirmedKredits"]]],null,{"statements":[[0," "],[1,[22,1,["amountTotal"]],false],[0,"\\n"]],"parameters":[]},{"statements":[[0," "],[1,[22,1,["amountConfirmed"]],false],[0,"\\n"]],"parameters":[]}],[0," "],[10],[0,"\\n "],[7,"span"],[11,"class","symbol"],[9],[0,"₭S"],[10],[0,"\\n "],[10],[0,"\\n "],[3,"action",[[22,0,[]],"toggleContributorInfo",[22,1,[]]]],[10],[0,"\\n "],[7,"tr"],[12,"class",[28,["metadata ",[27,"if",[[27,"is-current-user",[[22,1,["contributor"]]],null],"current-user"],null]," ",[27,"if",[[22,1,["showMetadata"]],"visible"],null]]]],[9],[0,"\\n "],[7,"td"],[11,"colspan","2"],[9],[0,"\\n "],[7,"ul"],[9],[0,"\\n "],[7,"li"],[9],[0,"\\n "],[7,"a"],[12,"href",[28,["https://rinkeby.etherscan.io/address/",[22,1,["contributor","account"]]]]],[11,"target","_blank"],[11,"rel","noopener"],[9],[0,"Inspect Ethereum transactions"],[10],[0,"\\n "],[10],[0,"\\n"],[4,"if",[[22,1,["contributor","ipfsHash"]]],null,{"statements":[[0," "],[7,"li"],[9],[0,"\\n "],[7,"a"],[12,"href",[28,["https://ipfs.io/ipfs/",[22,1,["contributor","ipfsHash"]]]]],[11,"target","_blank"],[11,"rel","noopener"],[9],[0,"Inspect IPFS profile"],[10],[0,"\\n "],[10],[0,"\\n"]],"parameters":[]},null],[0," "],[10],[0,"\\n"],[4,"if",[[22,1,["showMetadata"]]],null,{"statements":[[0," "],[7,"pre"],[9],[1,[22,1,["contributor","ipfsData"]],false],[10],[0,""]],"parameters":[]},null],[0," "],[10],[0,"\\n "],[10],[0,"\\n"]],"parameters":[1]},null],[10],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/components/contributor-list/template.hbs"}})
|
||||
e.default=t}),define("kredits-web/components/ember-chart",["exports","ember-cli-chart/components/ember-chart"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var n=t.default
|
||||
e.default=n}),define("kredits-web/components/loading-spinner/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.Component.extend({classNames:["loading-spinner"]})
|
||||
e.default=t}),define("kredits-web/components/loading-spinner/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.HTMLBars.template({id:"b6SWTOaj",block:'{"symbols":[],"statements":[[7,"p"],[9],[0,"\\n "],[7,"svg"],[11,"xmlns","http://www.w3.org/2000/svg","http://www.w3.org/2000/xmlns/"],[11,"xmlns:xlink","http://www.w3.org/1999/xlink","http://www.w3.org/2000/xmlns/"],[11,"version","1.1"],[11,"x","0px"],[11,"y","0px"],[11,"viewBox","0 0 132 100"],[11,"enable-background","new 0 0 100 100"],[11,"xml:space","preserve","http://www.w3.org/XML/1998/namespace"],[9],[0,"\\n "],[7,"path"],[11,"id","path-comet"],[11,"d","M79.062,24.173L79.062,24.173l-0.021-0.011c-0.068-0.03-0.137-0.062-0.204-0.093L42.392,7.337\\n c0,0,3.065,14.104,4.458,18.019l0,0c0,0-41.754-12.481-46.85-13.67c1.67,6.52,30.607,62.492,30.607,62.492\\n c5.848,11.873,19.394,18.485,33.522,18.485c19.811,0,35.87-16.059,35.87-35.869C100,42.313,91.418,29.837,79.062,24.173z"],[9],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n"],[10],[0,"\\n"],[7,"p"],[9],[0,"\\n Loading data...\\n"],[10],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/components/loading-spinner/template.hbs"}})
|
||||
e.default=t}),define("kredits-web/components/proposal-list/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.Component.extend({tagName:"ul",classNames:["proposal-list"],actions:{confirm:function(e){this.contractInteractionEnabled?this.confirmProposal(e):window.alert("Only members can vote on proposals. Please ask someone to set you up.")}}})
|
||||
e.default=t}),define("kredits-web/components/proposal-list/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.HTMLBars.template({id:"pZHMSOZc",block:'{"symbols":["proposal"],"statements":[[4,"each",[[23,["proposals"]]],null,{"statements":[[0," "],[7,"li"],[12,"data-proposal-id",[22,1,["id"]]],[12,"class",[27,"if",[[22,1,["isExecuted"]],"confirmed","unconfirmed"],null]],[9],[0,"\\n "],[7,"p"],[11,"class","meta"],[9],[0,"\\n "],[7,"span"],[12,"class",[28,["category ",[22,1,["kind"]]]]],[9],[0,"♥ ("],[1,[22,1,["kind"]],false],[0,")"],[10],[0,"\\n "],[7,"span"],[11,"class","recipient"],[9],[1,[22,1,["contributor","name"]],false],[0,":"],[10],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[11,"class","kredits-amount"],[9],[0,"\\n "],[7,"span"],[11,"class","amount"],[9],[1,[22,1,["amount"]],false],[10],[7,"span"],[11,"class","symbol"],[9],[0,"₭S"],[10],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[11,"class","description"],[9],[0,"\\n "],[7,"span"],[11,"class","description"],[9],[1,[22,1,["description"]],false],[10],[0,"\\n "],[10],[0,"\\n "],[7,"p"],[11,"class","voting"],[9],[0,"\\n"],[4,"unless",[[22,1,["isExecuted"]]],null,{"statements":[[0," "],[7,"span"],[11,"class","votes"],[9],[0,"("],[1,[22,1,["votesCount"]],false],[0,"/"],[1,[22,1,["votesNeeded"]],false],[0," votes)"],[10],[0,"\\n "],[7,"button"],[9],[0,"+1"],[3,"action",[[22,0,[]],"confirm",[22,1,["id"]]]],[10],[0,"\\n"]],"parameters":[]},null],[0," "],[10],[0,"\\n "],[10],[0,"\\n"]],"parameters":[1]},null]],"hasEval":false}',meta:{moduleName:"kredits-web/components/proposal-list/template.hbs"}})
|
||||
e.default=t}),define("kredits-web/components/user-avatar/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.Component.extend({contributor:null,tagName:"img",classNames:["avatar"],attributeBindings:["src","title"],src:Ember.computed.alias("contributor.avatarURL"),title:Ember.computed.alias("contributor.name")})
|
||||
e.default=t}),define("kredits-web/components/user-avatar/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.HTMLBars.template({id:"rnnAjEgP",block:'{"symbols":[],"statements":[],"hasEval":false}',meta:{moduleName:"kredits-web/components/user-avatar/template.hbs"}})
|
||||
e.default=t}),define("kredits-web/controllers/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.Controller.extend({kredits:Ember.inject.service()})
|
||||
e.default=t}),define("kredits-web/controllers/index",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.Controller.extend({kredits:Ember.inject.service(),currentBlock:Ember.computed.alias("kredits.currentBlock"),contributions:Ember.computed.alias("kredits.contributions"),contributionsConfirmed:Ember.computed.alias("kredits.contributionsConfirmed"),contributionsUnconfirmed:Ember.computed.alias("kredits.contributionsUnconfirmed"),contributionsSorting:Object.freeze(["id:desc"]),contributionsUnconfirmedSorted:Ember.computed.sort("contributionsUnconfirmed","contributionsSorting"),contributionsConfirmedSorted:Ember.computed.sort("contributionsConfirmed","contributionsSorting"),kreditsByContributor:Ember.computed.alias("kredits.kreditsByContributor"),kreditsToplistSorting:Ember.computed("showUnconfirmedKredits",function(){return this.showUnconfirmedKredits?["amountTotal:desc"]:["amountConfirmed:desc"]}),kreditsToplist:Ember.computed.sort("kreditsByContributor","kreditsToplistSorting"),showUnconfirmedKredits:!0,hideUnconfirmedKredits:Ember.computed.not("showUnconfirmedKredits"),actions:{vetoContribution:function(e){this.kredits.veto(e).then(function(e){console.debug("[controllers:index] Veto submitted to Ethereum blockhain: "+e.hash)})},confirmProposal:function(e){this.kredits.vote(e).then(function(e){console.debug("[controllers:index] Vote submitted to Ethereum blockhain: "+e.hash)})},save:function(e){var t=this
|
||||
return this.kredits.addContributor(e).then(function(e){return t.contributors.pushObject(e),e})}}})
|
||||
e.default=t}),define("kredits-web/controllers/proposals/new",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.Controller.extend({kredits:Ember.inject.service(),contributors:Ember.computed.alias("kredits.contributors"),minedContributors:Ember.computed.filterBy("contributors","id"),actions:{save:function(e){var t=this,n=this.contributors.findBy("id",e.contributorId)
|
||||
return e.contributorIpfsHash=n.get("ipfsHash"),this.kredits.addProposal(e).then(function(e){return t.transitionToRoute("index"),e})}}})
|
||||
e.default=t}),define("kredits-web/helpers/and",["exports","ember-truth-helpers/helpers/and"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"and",{enumerable:!0,get:function(){return t.and}})}),define("kredits-web/helpers/app-version",["exports","kredits-web/config/environment","ember-cli-app-version/utils/regexp"],function(e,t,n){function r(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=t.default.APP.version,o=r.versionOnly||r.hideSha,s=r.shaOnly||r.hideVersion,a=null
|
||||
return o&&(r.showExtended&&(a=i.match(n.versionExtendedRegExp)),a||(a=i.match(n.versionRegExp))),s&&(a=i.match(n.shaRegExp)),a?a[0]:i}Object.defineProperty(e,"__esModule",{value:!0}),e.appVersion=r,e.default=void 0
|
||||
var i=Ember.Helper.helper(r)
|
||||
e.default=i}),define("kredits-web/helpers/await",["exports","ember-promise-helpers/helpers/await"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/helpers/contribution-status",["exports"],function(e){function t(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,i=!1,o=void 0
|
||||
try{for(var s,a=e[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(u){i=!0,o=u}finally{try{r||null==a.return||a.return()}finally{if(i)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var n=Ember.Helper.extend({kredits:Ember.inject.service(),currentBlock:Ember.computed.alias("kredits.currentBlock"),compute:function(e){var n=t(e,1)[0]
|
||||
return n.vetoed?"vetoed":n.confirmedAt>this.currentBlock?"unconfirmed":"confirmed"}})
|
||||
e.default=n}),define("kredits-web/helpers/eq",["exports","ember-truth-helpers/helpers/equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"equal",{enumerable:!0,get:function(){return t.equal}})}),define("kredits-web/helpers/gt",["exports","ember-truth-helpers/helpers/gt"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"gt",{enumerable:!0,get:function(){return t.gt}})}),define("kredits-web/helpers/gte",["exports","ember-truth-helpers/helpers/gte"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"gte",{enumerable:!0,get:function(){return t.gte}})}),define("kredits-web/helpers/is-array",["exports","ember-truth-helpers/helpers/is-array"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isArray",{enumerable:!0,get:function(){return t.isArray}})}),define("kredits-web/helpers/is-confirmed-contribution",["exports"],function(e){function t(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,i=!1,o=void 0
|
||||
try{for(var s,a=e[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(u){i=!0,o=u}finally{try{r||null==a.return||a.return()}finally{if(i)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var n=Ember.Helper.extend({kredits:Ember.inject.service(),currentBlock:Ember.computed.alias("kredits.currentBlock"),compute:function(e){var n=t(e,1)[0]
|
||||
return!n.vetoed&&n.confirmedAt<=this.currentBlock}})
|
||||
e.default=n})
|
||||
define("kredits-web/helpers/is-current-user",["exports"],function(e){function t(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,i=!1,o=void 0
|
||||
try{for(var s,a=e[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(u){i=!0,o=u}finally{try{r||null==a.return||a.return()}finally{if(i)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var n=Ember.Helper.extend({kredits:Ember.inject.service(),currentUser:Ember.computed.alias("kredits.currentUser"),compute:function(e){var n=t(e,1)[0]
|
||||
return Ember.isPresent(n)&&Ember.isPresent(this.currentUser)&&n.account===this.currentUser.account}})
|
||||
e.default=n}),define("kredits-web/helpers/is-equal",["exports","ember-truth-helpers/helpers/is-equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isEqual",{enumerable:!0,get:function(){return t.isEqual}})}),define("kredits-web/helpers/is-fulfilled",["exports","ember-promise-helpers/helpers/is-fulfilled"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isFulfilled",{enumerable:!0,get:function(){return t.isFulfilled}})}),define("kredits-web/helpers/is-pending",["exports","ember-promise-helpers/helpers/is-pending"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isPending",{enumerable:!0,get:function(){return t.isPending}})}),define("kredits-web/helpers/is-rejected",["exports","ember-promise-helpers/helpers/is-rejected"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isRejected",{enumerable:!0,get:function(){return t.isRejected}})}),define("kredits-web/helpers/lt",["exports","ember-truth-helpers/helpers/lt"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"lt",{enumerable:!0,get:function(){return t.lt}})}),define("kredits-web/helpers/lte",["exports","ember-truth-helpers/helpers/lte"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"lte",{enumerable:!0,get:function(){return t.lte}})}),define("kredits-web/helpers/not-eq",["exports","ember-truth-helpers/helpers/not-equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"notEq",{enumerable:!0,get:function(){return t.notEq}})}),define("kredits-web/helpers/not",["exports","ember-truth-helpers/helpers/not"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"not",{enumerable:!0,get:function(){return t.not}})}),define("kredits-web/helpers/or",["exports","ember-truth-helpers/helpers/or"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"or",{enumerable:!0,get:function(){return t.or}})}),define("kredits-web/helpers/promise-all",["exports","ember-promise-helpers/helpers/promise-all"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"promiseAll",{enumerable:!0,get:function(){return t.promiseAll}})}),define("kredits-web/helpers/promise-hash",["exports","ember-promise-helpers/helpers/promise-hash"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"promiseHash",{enumerable:!0,get:function(){return t.promiseHash}})}),define("kredits-web/helpers/promise-rejected-reason",["exports","ember-promise-helpers/helpers/promise-rejected-reason"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/helpers/xor",["exports","ember-truth-helpers/helpers/xor"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"xor",{enumerable:!0,get:function(){return t.xor}})}),define("kredits-web/initializers/app-version",["exports","ember-cli-app-version/initializer-factory","kredits-web/config/environment"],function(e,t,n){var r,i
|
||||
Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,n.default.APP&&(r=n.default.APP.name,i=n.default.APP.version)
|
||||
var o={name:"App Version",initialize:(0,t.default)(r,i)}
|
||||
e.default=o}),define("kredits-web/initializers/container-debug-adapter",["exports","ember-resolver/resolvers/classic/container-debug-adapter"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var n={name:"container-debug-adapter",initialize:function(){var e=arguments[1]||arguments[0]
|
||||
e.register("container-debug-adapter:main",t.default),e.inject("container-debug-adapter:main","namespace","application:main")}}
|
||||
e.default=n}),define("kredits-web/initializers/export-application-global",["exports","kredits-web/config/environment"],function(e,t){function n(){var e=arguments[1]||arguments[0]
|
||||
if(!1!==t.default.exportApplicationGlobal){var n
|
||||
if("undefined"!=typeof window)n=window
|
||||
else if("undefined"!=typeof global)n=global
|
||||
else{if("undefined"==typeof self)return
|
||||
n=self}var r,i=t.default.exportApplicationGlobal
|
||||
r="string"==typeof i?i:Ember.String.classify(t.default.modulePrefix),n[r]||(n[r]=e,e.reopen({willDestroy:function(){this._super.apply(this,arguments),delete n[r]}}))}}Object.defineProperty(e,"__esModule",{value:!0}),e.initialize=n,e.default=void 0
|
||||
var r={name:"export-application-global",initialize:n}
|
||||
e.default=r}),define("kredits-web/models/contribution",["exports","kredits-web/utils/cps/bignumber"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var n=Ember.Object.extend({id:null,contributorId:null,amount:null,confirmedAt:(0,t.default)("confirmedAtBlock","toNumber"),vetoed:null,ipfsHash:null,creatorAccount:null,kind:null,description:null,details:null,url:null,ipfsData:"",init:function(){this._super.apply(this,arguments),this.set("details",{})}})
|
||||
e.default=n}),define("kredits-web/models/contributor",["exports","kredits-web/utils/cps/bignumber","kredits-web/utils/cps/kredits"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var r=Ember.Object.extend({id:(0,t.default)("idRaw","toString"),account:null,balance:(0,n.default)("balanceRaw"),totalKreditsEarned:(0,t.default)("totalKreditsEarnedRaw","toNumber"),contributionsCount:(0,t.default)("contributionsCountRaw","toNumber"),isCore:!1,ipfsHash:null,kind:null,name:null,url:null,github_username:null,github_uid:null,wiki_username:null,ipfsData:"",avatarURL:Ember.computed("github_uid",function(){var e=this.github_uid
|
||||
if(e)return"https://avatars2.githubusercontent.com/u/".concat(e,"?v=3&s=128")})})
|
||||
e.default=r}),define("kredits-web/models/proposal",["exports","kredits-web/utils/cps/bignumber"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var n=Ember.Object.extend({id:(0,t.default)("idRaw","toString"),creatorAccount:null,contributorId:(0,t.default)("contributorIdRaw","toString"),amount:(0,t.default)("amountRaw","toNumber"),votesCount:(0,t.default)("votesCountRaw","toNumber"),votesNeeded:(0,t.default)("votesNeededRaw","toNumber"),executed:null,ipfsHash:null,isExecuted:Ember.computed.alias("executed"),kind:null,description:null,details:null,url:null,ipfsData:"",init:function(){this._super.apply(this,arguments),this.set("details",{})}})
|
||||
e.default=n}),define("kredits-web/resolver",["exports","ember-resolver"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var n=t.default
|
||||
e.default=n}),define("kredits-web/router",["exports","kredits-web/config/environment"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var n=Ember.Router.extend({location:t.default.locationType,rootURL:t.default.rootURL})
|
||||
n.map(function(){this.route("proposals",function(){this.route("new")})})
|
||||
var r=n
|
||||
e.default=r}),define("kredits-web/routes/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.Route.extend({kredits:Ember.inject.service(),beforeModel:function(e){var t=this.kredits
|
||||
return t.setup().then(function(){t.get("kredits").preflightChecks().catch(function(e){console.error("Kredits preflight check failed!"),console.error(e)}),t.get("accountNeedsUnlock")&&confirm("It looks like you have an Ethereum wallet available. Please unlock your account.")&&e.retry()}).catch(function(e){console.log("Error initializing Kredits",e)})},afterModel:function(){var e=this
|
||||
return this.kredits.loadInitialData().then(function(){e.kredits.addContractEventHandlers()})}})
|
||||
e.default=t}),define("kredits-web/services/ajax",["exports","ember-ajax/services/ajax"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/services/kredits",["exports","npm:ethers","npm:kredits-contracts","kredits-web/utils/group-by","kredits-web/utils/format-kredits","kredits-web/config/environment","kredits-web/models/contributor","kredits-web/models/proposal","kredits-web/models/contribution"],function(e,t,n,r,i,o,s,a,u){function l(e,t,n,r,i,o,s){try{var a=e[o](s),u=a.value}catch(l){return void n(l)}a.done?t(u):Promise.resolve(u).then(r,i)}function d(e){return function(){var t=this,n=arguments
|
||||
return new Promise(function(r,i){var o=e.apply(t,n)
|
||||
function s(e){l(o,r,i,s,a,"next",e)}function a(e){l(o,r,i,s,a,"throw",e)}s(void 0)})}}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var c=Ember.Service.extend({currentBlock:null,currentUserAccounts:null,currentUser:null,contributors:null,contributions:null,proposals:null,currentUserIsContributor:Ember.computed.notEmpty("currentUser"),currentUserIsCore:Ember.computed.alias("currentUser.isCore"),hasAccounts:Ember.computed.notEmpty("currentUserAccounts"),accountNeedsUnlock:Ember.computed("currentUserAccounts",function(){return this.currentUserAccounts&&Ember.isEmpty(this.currentUserAccounts)}),contributionsUnconfirmed:Ember.computed("contributions.[]","currentBlock",function(){var e=this
|
||||
return this.contributions.filter(function(t){return t.confirmedAt>e.currentBlock})}),contributionsConfirmed:Ember.computed("contributions.[]","currentBlock",function(){var e=this
|
||||
return this.contributions.filter(function(t){return t.confirmedAt<=e.currentBlock})}),kreditsByContributor:Ember.computed("contributionsUnconfirmed.@each.vetoed","contributors",function(){var e=this,t=this.contributionsUnconfirmed.filterBy("vetoed",!1),n=(0,r.default)(t,"contributorId"),i=n.map(function(e){return e.value.toString()}),o=this.contributors.reject(function(e){return i.includes(e.id)}),s=n.map(function(t){var n=t.items.mapBy("amount").reduce(function(e,t){return e+t}),r=e.contributors.findBy("id",t.value.toString())
|
||||
return Ember.Object.create({contributor:r,amountUnconfirmed:n,amountConfirmed:r.totalKreditsEarned,amountTotal:r.totalKreditsEarned+n})})
|
||||
return o.forEach(function(e){s.push(Ember.Object.create({contributor:e,amountUnconfirmed:0,amountConfirmed:e.totalKreditsEarned,amountTotal:e.totalKreditsEarned}))}),s}),init:function(){this._super.apply(this,arguments),this.set("contributors",[]),this.set("proposals",[]),this.set("contributions",[])},getEthProvider:function(){var e,n=this
|
||||
return new Ember.RSVP.Promise(function(){var r=d(regeneratorRuntime.mark(function r(i){var s,a,u
|
||||
return regeneratorRuntime.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:if(u=function(){return(u=d(regeneratorRuntime.mark(function n(r,o){return regeneratorRuntime.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:console.debug("[kredits] Using user-provided instance, e.g. from Mist browser or Metamask"),(e=new t.default.providers.Web3Provider(r)).listAccounts().then(function(t){o.set("currentUserAccounts",t)
|
||||
var n=0===t.length?null:e.getSigner()
|
||||
i({ethProvider:e,ethSigner:n})})
|
||||
case 3:case"end":return n.stop()}},n)}))).apply(this,arguments)},a=function(e,t){return u.apply(this,arguments)},s=function(){console.debug("[kredits] Creating new instance from npm module class"),console.debug("[kredits] providerURL: ".concat(o.default.web3ProviderUrl)),e=new t.default.providers.JsonRpcProvider(o.default.web3ProviderUrl),i({ethProvider:e,ethSigner:null})},!window.ethereum){r.next=15
|
||||
break}return r.prev=4,r.next=7,window.ethereum.enable()
|
||||
case 7:a(window.ethereum,n),r.next=13
|
||||
break
|
||||
case 10:r.prev=10,r.t0=r.catch(4),s()
|
||||
case 13:r.next=16
|
||||
break
|
||||
case 15:window.web3?a(window.web3.currentProvider,n):s()
|
||||
case 16:case"end":return r.stop()}},r,null,[[4,10]])}))
|
||||
return function(e){return r.apply(this,arguments)}}())},setup:function(){var e=this
|
||||
return this.getEthProvider().then(function(t){return new n.default(t.ethProvider,t.ethSigner,{addresses:{Kernel:o.default.kreditsKernelAddress},apm:o.default.kreditsApmDomain,ipfsConfig:o.default.ipfs}).init().then(function(){var t=d(regeneratorRuntime.mark(function t(n){return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return e.set("kredits",n),t.t0=e,t.next=4,n.provider.getBlockNumber()
|
||||
case 4:return t.t1=t.sent,t.t0.set.call(t.t0,"currentBlock",t.t1),e.currentUserAccounts&&e.currentUserAccounts.length>0&&e.getCurrentUser.then(function(t){e.set("currentUser",t)}),t.abrupt("return",n)
|
||||
case 8:case"end":return t.stop()}},t)}))
|
||||
return function(e){return t.apply(this,arguments)}}())})},totalSupply:Ember.computed(function(){return this.kredits.Token.functions.totalSupply().then(function(e){return(0,i.default)(e)})}),totalKreditsEarned:Ember.computed(function(){return this.kredits.Contribution.functions.totalKreditsEarned(!0).then(function(e){return e.toNumber()})}),loadInitialData:function(){var e=this
|
||||
return this.getContributors().then(function(t){return e.contributors.pushObjects(t)}).then(function(){return e.getContributions()}).then(function(t){return e.contributions.pushObjects(t)})},addContributor:function(e){if(e.github_uid){var t=parseInt(e.github_uid)
|
||||
e.github_uid=t}return console.debug("[kredits] add contributor",e),this.kredits.Contributor.add(e,{gasLimit:35e4}).then(function(t){return console.debug("[kredits] add contributor response",t),s.default.create(e)})},getContributors:function(){return this.kredits.Contributor.all().then(function(e){return e.map(function(e){return s.default.create(e)})})},addProposal:function(e){var t=this
|
||||
return console.debug("[kredits] add proposal",e),this.kredits.Proposal.addProposal(e).then(function(n){return console.debug("[kredits] add proposal response",n),e.contributor=t.contributors.findBy("id",e.contributorId),a.default.create(e)})},getProposals:function(){var e=this
|
||||
return this.kredits.Proposal.all().then(function(t){return t.map(function(t){return t.contributor=e.contributors.findBy("id",t.contributorId.toString()),a.default.create(t)})})},getContributions:function(){var e=this
|
||||
return this.kredits.Contribution.all({page:{size:200}}).then(function(t){return t.map(function(t){return t.contributor=e.contributors.findBy("id",t.contributorId.toString()),u.default.create(t)})})},vote:function(e){return console.debug("[kredits] vote for",e),this.kredits.Proposal.functions.vote(e).then(function(e){return console.debug("[kredits] vote response",e),e})},veto:function(e){return console.debug("[kredits] veto against",e),this.kredits.Contribution.functions.veto(e,{gasLimit:3e5}).then(function(e){return console.debug("[kredits] veto response",e),e})},getCurrentUser:Ember.computed("kredits.provider",function(){var e=this
|
||||
return Ember.isEmpty(this.currentUserAccounts)?Ember.RSVP.resolve():this.kredits.Contributor.functions.getContributorIdByAddress(this.get("currentUserAccounts.firstObject")).then(function(t){return 0===t?Ember.RSVP.resolve():e.kredits.Contributor.getById(t)})}),findProposalById:function(e){return this.proposals.findBy("id",e.toString())},addContractEventHandlers:function(){this.kredits.Contribution.on("ContributionVetoed",this.handleContributionVetoed.bind(this)),this.kredits.Proposal.on("ProposalCreated",this.handleProposalCreated.bind(this)).on("ProposalVoted",this.handleProposalVoted.bind(this)).on("ProposalExecuted",this.handleProposalExecuted.bind(this)),this.kredits.Token.on("Transfer",this.handleTransfer.bind(this))},handleContributionVetoed:function(e){console.debug("[kredits] ContributionVetoed event received for ",e)
|
||||
var t=this.contributions.findBy("id",e)
|
||||
console.debug("[kredits] contribution",t),t&&t.set("vetoed",!0)},handleProposalCreated:function(e){var t=this
|
||||
this.findProposalById(e)?console.debug("[events] proposal exists, not adding from event"):this.kredits.Proposal.getById(e).then(function(e){e.contributor=t.contributors.findBy("id",e.contributorId.toString()),t.proposals.pushObject(a.default.create(e))})},handleProposalVoted:function(e,t,n){var r=this.findProposalById(e)
|
||||
r&&r.set("votesCount",n)},handleProposalExecuted:function(e,t,n){var r=this.findProposalById(e)
|
||||
r.get("isExecuted")?console.debug("[events] proposal already executed, not adding from event"):(r.set("executed",!0),this.contributors.findBy("id",t.toString()).incrementProperty("balance",n))},handleTransfer:function(e,t,n){n=n.toNumber(),this.contributors.findBy("address",e).decrementProperty("balance",n),this.contributors.findBy("address",t).incrementProperty("balance",n)}})
|
||||
e.default=c}),define("kredits-web/templates/application-loading",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.HTMLBars.template({id:"/K85jZFR",block:'{"symbols":[],"statements":[[1,[21,"loading-spinner"],false],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/application-loading.hbs"}})
|
||||
e.default=t}),define("kredits-web/templates/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.HTMLBars.template({id:"M6vaFJ5T",block:'{"symbols":[],"statements":[[7,"header"],[11,"id","topbar"],[9],[0,"\\n "],[7,"h1"],[9],[0,"Kosmos Kredits"],[10],[0,"\\n\\n "],[7,"section"],[11,"id","user-account"],[9],[0,"\\n"],[4,"if",[[23,["kredits","hasAccounts"]]],null,{"statements":[[4,"if",[[23,["kredits","currentUser"]]],null,{"statements":[[0," "],[1,[23,["kredits","currentUser","name"]],false],[0,"\\n "],[4,"if",[[23,["kredits","currentUserIsCore"]]],null,{"statements":[[0,"(core)"]],"parameters":[]},null],[0,"\\n"]],"parameters":[]},null]],"parameters":[]},{"statements":[[0," Anonymous\\n"]],"parameters":[]}],[0," "],[10],[0,"\\n"],[10],[0,"\\n\\n"],[1,[21,"outlet"],false],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/application.hbs"}})
|
||||
e.default=t}),define("kredits-web/templates/index",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.HTMLBars.template({id:"mk8W6Kxd",block:'{"symbols":[],"statements":[[7,"main"],[11,"id","index"],[9],[0,"\\n\\n "],[7,"div"],[11,"id","stats"],[9],[0,"\\n "],[7,"section"],[11,"id","people"],[9],[0,"\\n "],[7,"header"],[9],[0,"\\n "],[7,"h2"],[9],[0,"Contributors"],[10],[0,"\\n "],[10],[0,"\\n "],[7,"div"],[11,"class","content"],[9],[0,"\\n "],[1,[27,"contributor-list",null,[["contributorList","showUnconfirmedKredits"],[[23,["kreditsToplist"]],[23,["showUnconfirmedKredits"]]]]],false],[0,"\\n\\n "],[7,"p"],[11,"class","stats"],[9],[0,"\\n "],[7,"span"],[11,"class","number"],[9],[1,[27,"await",[[23,["kredits","totalKreditsEarned"]]],null],false],[10],[0," kredits confirmed and issued to\\n "],[7,"span"],[11,"class","number"],[9],[1,[23,["contributorsWithKredits","length"]],false],[10],[0," contributors\\n "],[10],[0,"\\n "],[7,"p"],[11,"class","stats"],[9],[0,"\\n "],[1,[27,"input",null,[["type","id","checked"],["checkbox","hide-unnconfirmed-kredits",[23,["showUnconfirmedKredits"]]]]],false],[0,"\\n "],[7,"label"],[11,"for","hide-unnconfirmed-kredits"],[9],[0,"Show unconfirmed kredits in toplist"],[10],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n\\n "],[7,"section"],[11,"id","contributions-by-type"],[9],[0,"\\n "],[7,"header"],[9],[0,"\\n "],[7,"h2"],[9],[0,"Contributions by type"],[10],[0,"\\n "],[10],[0,"\\n "],[7,"div"],[11,"class","content"],[9],[0,"\\n "],[1,[27,"chart-contributions-by-type",null,[["contributions"],[[23,["contributions"]]]]],false],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n\\n "],[7,"div"],[11,"id","contributions"],[9],[0,"\\n"],[4,"if",[[23,["contributionsUnconfirmed"]]],null,{"statements":[[0," "],[7,"section"],[11,"id","contributions-unconfirmed"],[9],[0,"\\n "],[7,"header"],[9],[0,"\\n "],[7,"h2"],[9],[0,"Latest Contributions"],[10],[0,"\\n "],[10],[0,"\\n "],[7,"div"],[11,"class","content"],[9],[0,"\\n"],[0," "],[1,[27,"contribution-list",null,[["contributions","vetoContribution","contractInteractionEnabled"],[[23,["contributionsUnconfirmedSorted"]],[27,"action",[[22,0,[]],"vetoContribution"],null],[23,["kredits","hasAccounts"]]]]],false],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n"]],"parameters":[]},null],[0,"\\n "],[7,"section"],[11,"id","contributions-confirmed"],[9],[0,"\\n "],[7,"header"],[9],[0,"\\n "],[7,"h2"],[9],[0,"Confirmed Contributions"],[10],[0,"\\n "],[10],[0,"\\n "],[7,"div"],[11,"class","content"],[9],[0,"\\n "],[1,[27,"contribution-list",null,[["contributions","vetoContribution"],[[23,["contributionsConfirmedSorted"]],[27,"action",[[22,0,[]],"vetoContribution"],null]]]],false],[0,"\\n "],[10],[0,"\\n\\n"],[4,"if",[[23,["kredits","hasAccounts"]]],null,{"statements":[[0," "],[7,"p"],[11,"class","actions"],[9],[0,"\\n "],[4,"link-to",["proposals.new"],null,{"statements":[[0,"Create new proposal"]],"parameters":[]},null],[0,"\\n "],[10],[0,"\\n"]],"parameters":[]},null],[0," "],[10],[0,"\\n "],[10],[0,"\\n\\n"],[4,"if",[[23,["kredits","hasAccounts"]]],null,{"statements":[[0," "],[7,"section"],[11,"id","add-contributor"],[9],[0,"\\n "],[7,"header"],[9],[0,"\\n "],[7,"h2"],[9],[0,"Add Contributor"],[10],[0,"\\n "],[10],[0,"\\n\\n "],[7,"div"],[11,"class","content"],[9],[0,"\\n"],[4,"if",[[23,["kredits","currentUser","isCore"]]],null,{"statements":[[0," "],[1,[27,"add-contributor",null,[["contributors","save"],[[23,["contributors"]],[27,"action",[[22,0,[]],"save"],null]]]],false],[0,"\\n"]],"parameters":[]},{"statements":[[0," Only core team members can add new contributors. Please ask someone to set you up.\\n"]],"parameters":[]}],[0," "],[10],[0,"\\n "],[10],[0,"\\n"]],"parameters":[]},null],[0,"\\n"],[10],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/index.hbs"}})
|
||||
e.default=t}),define("kredits-web/templates/proposals/new",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
||||
var t=Ember.HTMLBars.template({id:"vauAEy3a",block:'{"symbols":[],"statements":[[7,"section"],[11,"id","add-proposal"],[9],[0,"\\n "],[7,"header"],[9],[0,"\\n "],[7,"h2"],[9],[0,"Add Proposal"],[10],[0,"\\n "],[10],[0,"\\n\\n "],[7,"div"],[11,"class","content"],[9],[0,"\\n "],[1,[27,"add-proposal",null,[["contributors","save"],[[23,["minedContributors"]],[27,"action",[[22,0,[]],"save"],null]]]],false],[0,"\\n "],[10],[0,"\\n"],[10],[0,"\\n\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/proposals/new.hbs"}})
|
||||
e.default=t}),define("kredits-web/utils/cps/bignumber",["exports","npm:ethers"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e,n){return Ember.computed(e,{get:function(){var r=this.get(e)
|
||||
return r&&t.default.utils.BigNumber.isBigNumber(r)?r[n]():r},set:function(r,i){var o=t.default.utils.bigNumberify(i)
|
||||
return this.set(e,o),o[n]()}})}})
|
||||
define("kredits-web/utils/cps/kredits",["exports","npm:ethers","kredits-web/utils/format-kredits"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}
|
||||
return Ember.computed(e,{get:function(){var t=this.get(e)
|
||||
return(0,n.default)(t,r)},set:function(i,o){var s=t.default.utils.bigNumberify(o)
|
||||
return this.set(e,s),(0,n.default)(s,r)}})}}),define("kredits-web/utils/format-kredits",["exports","npm:ethers"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.default.utils.formatEther(e)
|
||||
n.decimals||(r=parseInt(r).toString())
|
||||
return r}}),define("kredits-web/utils/group-by",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e,t){var n=Ember.A(),r=e
|
||||
r&&r.forEach(function(e){var r=Ember.get(e,t),i=n.findBy("value",r)
|
||||
Ember.isPresent(i)?Ember.get(i,"items").push(e):(i={property:t,value:r,items:[e]},n.push(i))})
|
||||
return n}}),define("kredits-web/config/environment",[],function(){try{var e="kredits-web/config/environment",t=document.querySelector('meta[name="'+e+'"]').getAttribute("content"),n={default:JSON.parse(decodeURIComponent(t))}
|
||||
return Object.defineProperty(n,"__esModule",{value:!0}),n}catch(r){throw new Error('Could not read config from meta tag with name "'+e+'".')}}),runningTests||require("kredits-web/app").default.create({name:"kredits-web",version:"1.0.0+4c2d95f8"})
|
||||
|
||||
//# sourceMappingURL=kredits-web-f60c75d6ff7a9c4afb0c9272d7945362.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"sources":["vendor/ember-cli/app-prefix.js","kredits-web/app.js","kredits-web/components/add-contributor/component.js","kredits-web/components/add-contributor/template.js","kredits-web/components/add-proposal/component.js","kredits-web/components/add-proposal/template.js","kredits-web/components/contributor-list/component.js","kredits-web/components/contributor-list/template.js","kredits-web/components/loading-spinner/component.js","kredits-web/components/loading-spinner/template.js","kredits-web/components/proposal-list/component.js","kredits-web/components/proposal-list/template.js","kredits-web/controllers/application.js","kredits-web/controllers/index.js","kredits-web/controllers/proposals/new.js","kredits-web/helpers/and.js","kredits-web/helpers/app-version.js","kredits-web/helpers/await.js","kredits-web/helpers/eq.js","kredits-web/helpers/gt.js","kredits-web/helpers/gte.js","kredits-web/helpers/is-array.js","kredits-web/helpers/is-equal.js","kredits-web/helpers/is-fulfilled.js","kredits-web/helpers/is-pending.js","kredits-web/helpers/is-rejected.js","kredits-web/helpers/lt.js","kredits-web/helpers/lte.js","kredits-web/helpers/not-eq.js","kredits-web/helpers/not.js","kredits-web/helpers/or.js","kredits-web/helpers/promise-all.js","kredits-web/helpers/promise-hash.js","kredits-web/helpers/promise-rejected-reason.js","kredits-web/helpers/xor.js","kredits-web/initializers/app-version.js","kredits-web/initializers/container-debug-adapter.js","kredits-web/initializers/export-application-global.js","kredits-web/models/contributor.js","kredits-web/models/proposal.js","kredits-web/resolver.js","kredits-web/router.js","kredits-web/routes/application.js","kredits-web/routes/spinner.js","kredits-web/services/ajax.js","kredits-web/services/kredits.js","kredits-web/templates/application.js","kredits-web/templates/index.js","kredits-web/templates/loading.js","kredits-web/templates/proposals/new.js","kredits-web/templates/spinner.js","kredits-web/utils/cps/bignumber.js","vendor/ember-cli/app-config.js","vendor/ember-cli/app-boot.js"],"names":["define","exports","_resolver","_emberLoadInitializers","_environment","Object","defineProperty","value","App","Ember","Application","extend","modulePrefix","default","podModulePrefix","Resolver","Component","kredits","inject","service","attributes","account","name","kind","url","github_username","github_uid","wiki_username","isCore","didInsertElement","this","_super","apply","arguments","reset","isValidAccount","computed","notEmpty","isValidName","isValidURL","isValidGithubUID","isValidGithubUsername","isValidWikiUsername","isValid","and","setProperties","actions","submit","_this","keys","contributor","getProperties","saved","save","set","then","window","scroll","alert","HTMLBars","template","id","block","meta","moduleName","contributorId","amount","description","contributors","isValidContributor","isValidAmount","parseInt","isValidDescription","isValidUrl","proposal","tagName","classNames","selectedContributor","toggleContributorInfo","get","setEach","confirm","proposalId","contractInteractionEnabled","confirmProposal","Controller","alias","contributorsWithKredits","filter","contributorsSorting","contributorsSorted","sort","proposals","proposalsOpen","filterBy","proposalsClosed","proposalsSorting","proposalsClosedSorted","proposalsOpenSorted","vote","transaction","hash","addContributor","pushObject","minedContributors","findBy","contributorIpfsHash","addProposal","transitionToRoute","_and","enumerable","_regexp","appVersion","version","APP","_","length","undefined","hideSha","match","versionRegExp","hideVersion","shaRegExp","Helper","helper","_await","_equal","equal","_gt","gt","_gte","gte","_isArray","isArray","_isEqual","isEqual","_isFulfilled","isFulfilled","_isPending","isPending","_isRejected","isRejected","_lt","lt","_lte","lte","_notEqual","notEq","_not","not","_or","or","_promiseAll","promiseAll","_promiseHash","promiseHash","_promiseRejectedReason","_xor","xor","_initializerFactory","initialize","_containerDebugAdapter","app","register","application","exportApplicationGlobal","theGlobal","global","self","globalName","String","classify","reopen","willDestroy","_bignumber","balance","ipfsHash","ipfsData","isCurrentUser","avatarURL","creatorAccount","votesCount","votesNeeded","executed","isExecuted","details","_emberResolver","Router","location","locationType","rootURL","map","route","Route","beforeModel","transition","setup","retry","catch","error","console","log","afterModel","loadContributorsAndProposals","addContractEventHandlers","_ajax","_npmEthers","_npmKreditsContracts","_contributor","_proposal","Service","currentUserAccounts","currentUser","currentUserIsContributor","currentUserIsCore","hasAccounts","accountNeedsUnlock","isEmpty","getEthProvider","RSVP","Promise","resolve","ethProvider","networkId","web3","debug","network","providers","Web3Provider","currentProvider","chainId","listAccounts","accounts","contractMetadata","JsonRpcProvider","web3ProLine truncated
|
||||
@@ -0,0 +1,43 @@
|
||||
"use strict"
|
||||
define("kredits-web/app",["exports","kredits-web/resolver","ember-load-initializers","kredits-web/config/environment"],function(e,t,n,r){Object.defineProperty(e,"__esModule",{value:!0})
|
||||
var o=Ember.Application.extend({modulePrefix:r.default.modulePrefix,podModulePrefix:r.default.podModulePrefix,Resolver:t.default});(0,n.default)(o,r.default.modulePrefix),e.default=o}),define("kredits-web/components/add-contributor/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({kredits:Ember.inject.service(),attributes:{account:null,name:null,kind:"person",url:null,github_username:null,github_uid:null,wiki_username:null,isCore:!1},didInsertElement:function(){this._super.apply(this,arguments),this.reset()},isValidAccount:Ember.computed.notEmpty("account"),isValidName:Ember.computed.notEmpty("name"),isValidURL:Ember.computed.notEmpty("url"),isValidGithubUID:Ember.computed.notEmpty("github_uid"),isValidGithubUsername:Ember.computed.notEmpty("github_username"),isValidWikiUsername:Ember.computed.notEmpty("wiki_username"),isValid:Ember.computed.and("isValidAccount","isValidName","isValidGithubUID"),reset:function(){this.setProperties(this.attributes)},actions:{submit:function(){var e=this
|
||||
if(this.isValid){var t=Object.keys(this.attributes),n=this.getProperties(t),r=this.save(n)
|
||||
this.set("inProgress",r),r.then(function(){e.reset(),window.scroll(0,0),window.alert("Contributor added.")})}else alert("Invalid data. Please review and try again.")}}})}),define("kredits-web/components/add-contributor/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"CSegBQfj",block:'{"symbols":[],"statements":[[6,"form"],[3,"action",[[21,0,[]],"submit"],[["on"],["submit"]]],[8],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","id","checked"],["is-core","checkbox","is-core",[22,["isCore"]]]]],false],[0,"\\n "],[6,"label"],[10,"for","is-core"],[10,"class","checkbox"],[8],[0,"\\n Core team member (can add contributors)\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["account","text","0xF18E631Ea191aE4ebE70046Fcb01a436554421BA4",[22,["account"]],[26,"if",[[22,["isValidAccount"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[6,"select"],[10,"required",""],[11,"onchange",[26,"action",[[21,0,[]],[26,"mut",[[22,["kind"]]],null]],[["value"],["target.value"]]],null],[8],[0,"\\n "],[6,"option"],[10,"value","person"],[11,"selected",[26,"eq",[[22,["kind"]],"person"],null],null],[8],[0,"Person"],[9],[0,"\\n "],[6,"option"],[10,"value","organization"],[11,"selected",[26,"eq",[[22,["kind"]],"organization"],null],null],[8],[0,"Organization"],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["name","text","Name",[22,["name"]],[26,"if",[[22,["isValidName"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["url","text","URL",[22,["url"]],[26,"if",[[22,["isValidURL"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["github_uid","text","GitHub UID (123)",[22,["github_uid"]],[26,"if",[[22,["isValidGithubUID"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["github_username","text","GitHub username",[22,["github_username"]],[26,"if",[[22,["isValidGithubUsername"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["wiki_username","text","Wiki Username",[22,["wiki_username"]],[26,"if",[[22,["isValidWikiUsername"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[10,"class","actions"],[8],[0,"\\n "],[1,[26,"input",null,[["type","disabled","value"],["submit",[26,"is-pending",[[22,["inProgress"]]],null],[26,"if",[[26,"is-pending",[[22,["inProgress"]]],null],"Processing","Save"],null]]]],false],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/components/add-contributor/template.hbs"}})}),define("kredits-web/components/add-proposal/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({attributes:{contributorId:null,kind:"community",amount:null,description:null,url:null},didInsertElement:function(){this._super.apply(this,arguments),this.reset()},contributors:[],isValidContributor:Ember.computed.notEmpty("contributorId"),isValidAmount:Ember.computed("amount",function(){return parseInt(this.amount,10)>0}),isValidDescription:Ember.computed.notEmpty("description"),isValidUrl:Ember.computed.notEmpty("url"),isValid:Ember.computed.and("isValidContributor","isValidAmount","isValidDescription"),reset:function(){this.setProperties(this.attributes)},actions:{submit:function(){var e=this
|
||||
if(this.isValid){var t=Object.keys(this.attributes),n=this.getProperties(t),r=this.save(n)
|
||||
this.set("inProgress",r),r.then(function(){e.reset(),window.scroll(0,0),window.alert("Proposal added.")})}else alert("Invalid data. Please review and try again.")}}})}),define("kredits-web/components/add-proposal/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"cM+dvRZ+",block:'{"symbols":["contributor"],"statements":[[6,"form"],[3,"action",[[21,0,[]],"submit"],[["on"],["submit"]]],[8],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[6,"select"],[10,"required",""],[11,"onchange",[26,"action",[[21,0,[]],[26,"mut",[[22,["contributorId"]]],null]],[["value"],["target.value"]]],null],[8],[0,"\\n "],[6,"option"],[10,"value",""],[10,"selected",""],[10,"disabled",""],[10,"hidden",""],[8],[0,"Contributor"],[9],[0,"\\n"],[4,"each",[[22,["contributors"]]],null,{"statements":[[0," "],[6,"option"],[11,"value",[21,1,["id"]],null],[11,"selected",[26,"eq",[[22,["contributorId"]],[21,1,["id"]]],null],null],[8],[1,[21,1,["github_username"]],false],[9],[0,"\\n"]],"parameters":[1]},null],[0," "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[6,"select"],[10,"required",""],[11,"onchange",[26,"action",[[21,0,[]],[26,"mut",[[22,["kind"]]],null]],[["value"],["target.value"]]],null],[8],[0,"\\n "],[6,"option"],[10,"value","community"],[11,"selected",[26,"eq",[[22,["kind"]],"community"],null],null],[8],[0,"Community"],[9],[0,"\\n "],[6,"option"],[10,"value","design"],[11,"selected",[26,"eq",[[22,["kind"]],"design"],null],null],[8],[0,"Design"],[9],[0,"\\n "],[6,"option"],[10,"value","dev"],[11,"selected",[26,"eq",[[22,["kind"]],"dev"],null],null],[8],[0,"Development"],[9],[0,"\\n "],[6,"option"],[10,"value","docs"],[11,"selected",[26,"eq",[[22,["kind"]],"docs"],null],null],[8],[0,"Documentation"],[9],[0,"\\n "],[6,"option"],[10,"value","ops"],[11,"selected",[26,"eq",[[22,["kind"]],"ops"],null],null],[8],[0,"IT Operations"],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["type","placeholder","value","class"],["text","100",[22,["amount"]],[26,"if",[[22,["isValidAmount"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["type","placeholder","value","class"],["text","Description",[22,["description"]],[26,"if",[[22,["isValidDescription"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["type","placeholder","value","class"],["text","URL (optional)",[22,["url"]],[26,"if",[[22,["isValidUrl"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[10,"class","actions"],[8],[0,"\\n "],[1,[26,"input",null,[["type","disabled","value"],["submit",[26,"is-pending",[[22,["inProgress"]]],null],[26,"if",[[26,"is-pending",[[22,["inProgress"]]],null],"Processing","Save"],null]]]],false],[0,"\\n "],[4,"link-to",["index"],null,{"statements":[[0,"Back"]],"parameters":[]},null],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/components/add-proposal/template.hbs"}})}),define("kredits-web/components/contributor-list/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({tagName:"table",classNames:"contributor-list",selectedContributor:null,actions:{toggleContributorInfo:function(e){e.get("showMetadata")?e.set("showMetadata",!1):(this.contributors.setEach("showMetadata",!1),e.set("showMetadata",!0))}}})}),define("kredits-web/components/contributor-list/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"1c6etkaE",block:'{"symbols":["contributor"],"statements":[[6,"tbody"],[8],[0,"\\n"],[4,"each",[[22,["contributors"]]],null,{"statements":[[0," "],[6,"tr"],[11,"class",[27,[[26,"if",[[21,1,["isCurrentUser"]],"current-user"],null]]]],[3,"action",[[21,0,[]],"toggleContributorInfo",[21,1,[]]]],[8],[0,"\\n "],[6,"td"],[10,"class","person"],[8],[0,"\\n "],[6,"img"],[10,"class","avatar"],[11,"src",[21,1,["avatarURL"]],null],[8],[9],[0,"\\n "],[1,[21,1,["name"]],false],[0,"\\n "],[9],[0,"\\n "],[6,"td"],[10,"class","kredits"],[8],[0,"\\n "],[6,"span"],[10,"class","amount"],[8],[1,[21,1,["balance"]],false],[9],[0,"\\n "],[6,"span"],[10,"class","symbol"],[8],[0,"₭S"],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"tr"],[11,"class",[27,["metadata ",[26,"if",[[21,1,["isCurrentUser"]],"current-user"],null]," ",[26,"if",[[21,1,["showMetadata"]],"visible"],null]]]],[8],[0,"\\n "],[6,"td"],[10,"colspan","2"],[8],[0,"\\n "],[6,"ul"],[8],[0,"\\n "],[6,"li"],[8],[6,"a"],[11,"href",[27,["https://testnet.etherscan.io/address/",[21,1,["account"]]]]],[8],[0,"Inspect Ethereum transactions"],[9],[9],[0,"\\n"],[4,"if",[[21,1,["ipfsHash"]]],null,{"statements":[[0," "],[6,"li"],[8],[6,"a"],[11,"href",[27,["https://ipfs.io/ipfs/",[21,1,[Line truncated
|
||||
return this.kredits.addContributor(e).then(function(e){return t.contributors.pushObject(e),e})}}})}),define("kredits-web/controllers/proposals/new",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Controller.extend({kredits:Ember.inject.service(),contributors:Ember.computed.alias("kredits.contributors"),minedContributors:Ember.computed.filterBy("contributors","id"),actions:{save:function(e){var t=this,n=this.contributors.findBy("id",e.contributorId)
|
||||
return e.contributorIpfsHash=n.get("ipfsHash"),this.kredits.addProposal(e).then(function(e){return t.transitionToRoute("index"),e})}}})}),define("kredits-web/helpers/and",["exports","ember-truth-helpers/helpers/and"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"and",{enumerable:!0,get:function(){return t.and}})}),define("kredits-web/helpers/app-version",["exports","kredits-web/config/environment","ember-cli-app-version/utils/regexp"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.appVersion=o
|
||||
var r=t.default.APP.version
|
||||
function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}
|
||||
return t.hideSha?r.match(n.versionRegExp)[0]:t.hideVersion?r.match(n.shaRegExp)[0]:r}e.default=Ember.Helper.helper(o)}),define("kredits-web/helpers/await",["exports","ember-promise-helpers/helpers/await"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/helpers/eq",["exports","ember-truth-helpers/helpers/equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"equal",{enumerable:!0,get:function(){return t.equal}})}),define("kredits-web/helpers/gt",["exports","ember-truth-helpers/helpers/gt"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"gt",{enumerable:!0,get:function(){return t.gt}})}),define("kredits-web/helpers/gte",["exports","ember-truth-helpers/helpers/gte"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"gte",{enumerable:!0,get:function(){return t.gte}})}),define("kredits-web/helpers/is-array",["exports","ember-truth-helpers/helpers/is-array"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isArray",{enumerable:!0,get:function(){return t.isArray}})}),define("kredits-web/helpers/is-equal",["exports","ember-truth-helpers/helpers/is-equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isEqual",{enumerable:!0,get:function(){return t.isEqual}})}),define("kredits-web/helpers/is-fulfilled",["exports","ember-promise-helpers/helpers/is-fulfilled"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isFulfilled",{enumerable:!0,get:function(){return t.isFulfilled}})}),define("kredits-web/helpers/is-pending",["exports","ember-promise-helpers/helpers/is-pending"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isPending",{enumerable:!0,get:function(){return t.isPending}})}),define("kredits-web/helpers/is-rejected",["exports","ember-promise-helpers/helpers/is-rejected"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isRejected",{enumerable:!0,get:function(){return t.isRejected}})}),define("kredits-web/helpers/lt",["exports","ember-truth-helpers/helpers/lt"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"lt",{enumerable:!0,get:function(){return t.lt}})}),define("kredits-web/helpers/lte",["exports","ember-truth-helpers/helpers/lte"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"lte",{enumerable:!0,get:function(){return t.lte}})}),define("kredits-web/helpers/not-eq",["exports","ember-truth-helpers/helpers/not-equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"notEq",{enumerable:!0,get:function(){return t.notEq}})}),define("kredits-web/helpers/not",["exports","ember-truth-helpers/helpers/not"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"not",{enumerable:!0,get:function(){return t.not}})}),define("kredits-web/helpers/or",["exports","ember-truth-helpers/helpers/or"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"or",{enumerable:!0,get:function(){return t.or}})})
|
||||
define("kredits-web/helpers/promise-all",["exports","ember-promise-helpers/helpers/promise-all"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"promiseAll",{enumerable:!0,get:function(){return t.promiseAll}})}),define("kredits-web/helpers/promise-hash",["exports","ember-promise-helpers/helpers/promise-hash"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"promiseHash",{enumerable:!0,get:function(){return t.promiseHash}})}),define("kredits-web/helpers/promise-rejected-reason",["exports","ember-promise-helpers/helpers/promise-rejected-reason"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/helpers/xor",["exports","ember-truth-helpers/helpers/xor"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"xor",{enumerable:!0,get:function(){return t.xor}})}),define("kredits-web/initializers/app-version",["exports","ember-cli-app-version/initializer-factory","kredits-web/config/environment"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0})
|
||||
var r=void 0,o=void 0
|
||||
n.default.APP&&(r=n.default.APP.name,o=n.default.APP.version),e.default={name:"App Version",initialize:(0,t.default)(r,o)}}),define("kredits-web/initializers/container-debug-adapter",["exports","ember-resolver/resolvers/classic/container-debug-adapter"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"container-debug-adapter",initialize:function(){var e=arguments[1]||arguments[0]
|
||||
e.register("container-debug-adapter:main",t.default),e.inject("container-debug-adapter:main","namespace","application:main")}}}),define("kredits-web/initializers/export-application-global",["exports","kredits-web/config/environment"],function(e,t){function n(){var e=arguments[1]||arguments[0]
|
||||
if(!1!==t.default.exportApplicationGlobal){var n
|
||||
if("undefined"!=typeof window)n=window
|
||||
else if("undefined"!=typeof global)n=global
|
||||
else{if("undefined"==typeof self)return
|
||||
n=self}var r,o=t.default.exportApplicationGlobal
|
||||
r="string"==typeof o?o:Ember.String.classify(t.default.modulePrefix),n[r]||(n[r]=e,e.reopen({willDestroy:function(){this._super.apply(this,arguments),delete n[r]}}))}}Object.defineProperty(e,"__esModule",{value:!0}),e.initialize=n,e.default={name:"export-application-global",initialize:n}}),define("kredits-web/models/contributor",["exports","kredits-web/utils/cps/bignumber"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Object.extend({id:(0,t.default)("idRaw","toString"),account:null,balance:(0,t.default)("balanceRaw","toNumber"),isCore:!1,ipfsHash:null,kind:null,name:null,url:null,github_username:null,github_uid:null,wiki_username:null,ipfsData:"",isCurrentUser:!1,avatarURL:Ember.computed("github_uid",function(){var e=this.github_uid
|
||||
if(e)return"https://avatars2.githubusercontent.com/u/"+e+"?v=3&s=128"})})}),define("kredits-web/models/proposal",["exports","kredits-web/utils/cps/bignumber"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Object.extend({id:(0,t.default)("idRaw","toString"),creatorAccount:null,contributorId:(0,t.default)("contributorIdRaw","toString"),amount:(0,t.default)("amountRaw","toNumber"),votesCount:(0,t.default)("votesCountRaw","toNumber"),votesNeeded:(0,t.default)("votesNeededRaw","toNumber"),executed:null,ipfsHash:null,isExecuted:Ember.computed.alias("executed"),kind:null,description:null,details:{},url:null,ipfsData:""})}),define("kredits-web/resolver",["exports","ember-resolver"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=t.default}),define("kredits-web/router",["exports","kredits-web/config/environment"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0})
|
||||
var n=Ember.Router.extend({location:t.default.locationType,rootURL:t.default.rootURL})
|
||||
n.map(function(){this.route("proposals",function(){this.route("new")})}),e.default=n}),define("kredits-web/routes/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Route.extend({kredits:Ember.inject.service(),beforeModel:function(e){var t=this.kredits
|
||||
return t.setup().then(function(){t.get("accountNeedsUnlock")&&confirm("It looks like you have an Ethereum wallet available. Please unlock your account.")&&e.retry()}).catch(function(e){console.log("Error initializing Kredits",e)})},afterModel:function(){var e=this
|
||||
return this.kredits.loadContributorsAndProposals().then(function(){e.kredits.addContractEventHandlers()})}})}),define("kredits-web/services/ajax",["exports","ember-ajax/services/ajax"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/services/kredits",["exports","npm:ethers","npm:kredits-contracts","kredits-web/config/environment","kredits-web/models/contributor","kredits-web/models/proposal"],function(e,t,n,r,o,s){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Service.extend({currentUserAccounts:null,currentUser:null,currentUserIsContributor:Ember.computed.notEmpty("currentUser"),currentUserIsCore:Ember.computed.alias("currentUser.isCore"),hasAccounts:Ember.computed.notEmpty("currentUserAccounts"),accountNeedsUnlock:Ember.computed("currentUserAccounts",function(){return this.currentUserAccounts&&Ember.isEmpty(this.currentUserAccounts)}),getEthProvider:function(){var e=this
|
||||
return new Ember.RSVP.Promise(function(n){var o=void 0,s=void 0
|
||||
void 0!==window.web3?(console.debug("[kredits] Using user-provided instance, e.g. from Mist browser or Metamask"),s=parseInt(window.web3.version.network),(o=new t.default.providers.Web3Provider(window.web3.currentProvider,{chainId:s})).listAccounts().then(function(t){e.set("currentUserAccounts",t)
|
||||
var r=0===t.length?null:o.getSigner()
|
||||
n({ethProvider:o,ethSigner:r})})):(console.debug("[kredits] Creating new instance from npm module class"),s=parseInt(r.default.contractMetadata.networkId),console.debug("[kredits] networkId="+s+" providerURL: "+r.default.web3ProviderUrl),o=new t.default.providers.JsonRpcProvider(r.default.web3ProviderUrl,{chainId:s}),n({ethProvider:o,ethSigner:null}))})},setup:function(){var e=this
|
||||
return this.getEthProvider().then(function(t){return new n.default(t.ethProvider,t.ethSigner,{ipfsConfig:r.default.ipfs}).init().then(function(t){return e.set("kredits",t),e.currentUserAccounts&&e.currentUserAccounts.length>0&&e.getCurrentUser.then(function(t){e.set("currentUser",t)}),t})})},totalSupply:Ember.computed(function(){return this.kredits.Token.functions.totalSupply()}),contributors:[],proposals:[],loadContributorsAndProposals:function(){var e=this
|
||||
return this.getContributors().then(function(t){return e.contributors.pushObjects(t)}).then(function(){return e.getProposals()}).then(function(t){return e.proposals.pushObjects(t)})},addContributor:function(e){return console.debug("[kredits] add contributor",e),this.kredits.Contributor.add(e).then(function(t){return console.debug("[kredits] add contributor response",t),o.default.create(e)})},getContributors:function(){return this.kredits.Contributor.all().then(function(e){return e.map(function(e){return o.default.create(e)})})},addProposal:function(e){var t=this
|
||||
return console.debug("[kredits] add proposal",e),this.kredits.Operator.addProposal(e).then(function(n){return console.debug("[kredits] add proposal response",n),e.contributor=t.contributors.findBy("id",e.contributorId),s.default.create(e)})},getProposals:function(){var e=this
|
||||
return this.kredits.Operator.all().then(function(t){return t.map(function(t){return t.contributor=e.contributors.findBy("id",t.contributorId.toString()),s.default.create(t)})})},vote:function(e){return console.debug("[kredits] vote for",e),this.kredits.Operator.functions.vote(e).then(function(e){return console.debug("[kredits] vote response",e),e})},getCurrentUser:Ember.computed("kredits.provider",function(){var e=this
|
||||
return Ember.isEmpty(this.currentUserAccounts)?Ember.RSVP.resolve():this.kredits.Contributor.functions.getContributorIdByAddress(this.get("currentUserAccounts.firstObject")).then(function(t){return 0===(t=t.toNumber())?Ember.RSVP.resolve():e.kredits.Contributor.getById(t)})}),findProposalById:function(e){return this.proposals.findBy("id",e.toString())},addContractEventHandlers:function(){this.kredits.Operator.on("ProposalCreated",this.handleProposalCreated.bind(this)).on("ProposalVoted",this.handleProposalVoted.bind(this)).on("ProposalExecuted",this.handleProposalExecuted.bind(this)),this.kredits.Token.on("Transfer",this.handleTransfer.bind(this))},handleProposalCreated:function(e){var t=this
|
||||
this.findProposalById(e)?console.debug("[events] proposal exists, not adding from event"):this.kredits.Operator.getById(e).then(function(e){e.contributor=t.contributors.findBy("id",e.contributorId.toString()),t.proposals.pushObject(s.default.create(e))})},handleProposalVoted:function(e,t,n){var r=this.findProposalById(e)
|
||||
r&&r.set("votesCount",n)},handleProposalExecuted:function(e,t,n){var r=this.findProposalById(e)
|
||||
r.get("isExecuted")?console.debug("[events] proposal already executed, not adding from event"):(r.set("executed",!0),this.contributors.findBy("id",t.toString()).incrementProperty("balance",n.toNumber()))},handleTransfer:function(e,t,n){n=n.toNumber(),this.contributors.findBy("address",e).decrementProperty("balance",n),this.contributors.findBy("address",t).incrementProperty("balance",n)}})}),define("kredits-web/templates/application-loading",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"CLjY4Liw",block:'{"symbols":[],"statements":[[1,[20,"loading-spinner"],false],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/application-loading.hbs"}})}),define("kredits-web/templates/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"vrOJgdM9",block:'{"symbols":[],"statements":[[6,"header"],[10,"id","topbar"],[8],[0,"\\n "],[6,"h1"],[8],[0,"Kosmos Kredits"],[9],[0,"\\n\\n "],[6,"section"],[10,"id","user-account"],[8],[0,"\\n"],[4,"if",[[22,["kredits","hasAccounts"]]],null,{"statements":[[4,"if",[[22,["kredits","currentUser"]]],null,{"statements":[[0," "],[1,[22,["kredits","currentUser","name"]],false],[0,"\\n "],[4,"if",[[22,["kredits","currentUserIsCore"]]],null,{"statements":[[0,"(core)"]],"parameters":[]},null],[0,"\\n"]],"parameters":[]},null]],"parameters":[]},{"statements":[[0," Anonymous\\n"]],"parameters":[]}],[0," "],[9],[0,"\\n"],[9],[0,"\\n\\n"],[1,[20,"outlet"],false],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/application.hbs"}})}),define("kredits-web/templates/index",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"aExP47oA",block:'{"symbols":[],"statements":[[6,"main"],[10,"id","index"],[8],[0,"\\n\\n "],[6,"section"],[10,"id","people"],[8],[0,"\\n "],[6,"header"],[8],[0,"\\n "],[6,"h2"],[8],[0,"Contributors"],[9],[0,"\\n "],[9],[0,"\\n "],[6,"div"],[10,"class","content"],[8],[0,"\\n "],[1,[26,"contributor-list",null,[["contributors"],[[22,["contributorsSorted"]]]]],false],[0,"\\n\\n "],[6,"p"],[10,"class","stats"],[8],[0,"\\n "],[6,"span"],[10,"class","number"],[8],[1,[26,"await",[[22,["kredits","totalSupply"]]],null],false],[9],[0," kredits issued and distributed among\\n "],[6,"span"],[10,"class","number"],[8],[1,[22,["contributorsWithKredits","length"]],false],[9],[0," contributors.\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n\\n "],[6,"div"],[10,"id","contributions"],[8],[0,"\\n"],[4,"if",[[22,["proposalsOpen"]]],null,{"statements":[[0," "],[6,"section"],[10,"id","proposals-open"],[8],[0,"\\n "],[6,"header"],[8],[0,"\\n "],[6,"h2"],[8],[0,"Unconfirmed Contributions"],[9],[0,"\\n "],[9],[0,"\\n "],[6,"div"],[10,"class","content"],[8],[0,"\\n"],[0," "],[1,[26,"proposal-list",null,[["proposals","confirmProposal","contractInteractionEnabled"],[[22,["proposalsOpenSorted"]],[26,"action",[[21,0,[]],"confirmProposal"],null],[22,["kredits","hasAccounts"]]]]],false],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n"]],"parameters":[]},null],[0,"\\n "],[6,"section"],[10,"id","proposals-closed"],[8],[0,"\\n "],[6,"header"],[8],[0,"\\n "],[6,"h2"],[8],[0,"Confirmed Contributions"],[9],[0,"\\n "],[9],[0,"\\n "],[6,"div"],[10,"class","content"],[8],[0,"\\n "],[1,[26,"proposal-list",null,[["proposals","confirmProposal"],[[22,["proposalsClosedSorted"]],[26,"action",[[21,0,[]],"confirmProposal"],null]]]],false],[0,"\\n "],[9],[0,"\\n\\n"],[4,"if",[[22,["kredits","hasAccounts"]]],null,{"statements":[[0," "],[6,"p"],[10,"class","actions"],[8],[0,"\\n "],[4,"link-to",["proposals.new"],null,{"statements":[[0,"Create new proposal"]],"parameters":[]},null],[0,"\\n "],[9],[0,"\\n"]],"parameters":[]},null],[0," "],[9],[0,"\\n "],[9],[0,"\\n\\n"],[4,"if",[[22,["kredits","hasAccounts"]]],null,{"statements":[[0," "],[6,"section"],[10,"id","add-contributor"],[8],[0,"\\n "],[6,"header"],[8],[0,"\\n "],[6,"h2"],[8],[0,"Add Contributor"],[9],[0,"\\n "],[9],[0,"\\n\\n "],[6,"div"],[10,"class","content"],[8],[0,"\\n"],[4,"if",[[22,["kredits","currentUser","isCore"]]],null,{"statements":[[0," "],[1,[26,"add-contributor",null,[["contributors","save"],[[22,["contributors"]],[26,"action",[[21,0,[]],"save"],null]]]],false],[0,"\\n"]],"parameters":[]},{"statements":[[0," Only core team members can add new contributors. Please ask someone to set you up.\\n"]],"parameters":[]}],[0," "],[9],[0,"\\n "],[9],[0,"\\n"]],"parameters":[]},null],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/index.hbs"}})}),define("kredits-web/templates/proposals/new",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBLine truncated
|
||||
return r&&t.default.utils.isBigNumber(r)?r[n]():r},set:function(r,o){return o=t.default.utils.bigNumberify(o),this.set(e,o),o[n]()}})}}),define("kredits-web/config/environment",[],function(){try{var e="kredits-web/config/environment",t=document.querySelector('meta[name="'+e+'"]').getAttribute("content"),n={default:JSON.parse(unescape(t))}
|
||||
return Object.defineProperty(n,"__esModule",{value:!0}),n}catch(t){throw new Error('Could not read config from meta tag with name "'+e+'".')}}),runningTests||require("kredits-web/app").default.create({name:"kredits-web",version:"1.0.0+ef0f3ffb"})
|
||||
|
||||
//# sourceMappingURL=kredits-web-7a69991339eedc4c173829a3b18a3f7d.map
|
||||
@@ -0,0 +1,43 @@
|
||||
"use strict"
|
||||
define("kredits-web/app",["exports","kredits-web/resolver","ember-load-initializers","kredits-web/config/environment"],function(e,t,n,r){Object.defineProperty(e,"__esModule",{value:!0})
|
||||
var o=Ember.Application.extend({modulePrefix:r.default.modulePrefix,podModulePrefix:r.default.podModulePrefix,Resolver:t.default});(0,n.default)(o,r.default.modulePrefix),e.default=o}),define("kredits-web/components/add-contributor/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({kredits:Ember.inject.service(),attributes:{account:null,name:null,kind:"person",url:null,github_username:null,github_uid:null,wiki_username:null,isCore:!1},didInsertElement:function(){this._super.apply(this,arguments),this.reset()},isValidAccount:Ember.computed.notEmpty("account"),isValidName:Ember.computed.notEmpty("name"),isValidURL:Ember.computed.notEmpty("url"),isValidGithubUID:Ember.computed.notEmpty("github_uid"),isValidGithubUsername:Ember.computed.notEmpty("github_username"),isValidWikiUsername:Ember.computed.notEmpty("wiki_username"),isValid:Ember.computed.and("isValidAccount","isValidName","isValidGithubUID"),reset:function(){this.setProperties(this.attributes)},actions:{submit:function(){var e=this
|
||||
if(this.isValid){var t=Object.keys(this.attributes),n=this.getProperties(t),r=this.save(n)
|
||||
this.set("inProgress",r),r.then(function(){e.reset(),window.scroll(0,0),window.alert("Contributor added.")})}else alert("Invalid data. Please review and try again.")}}})}),define("kredits-web/components/add-contributor/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"CSegBQfj",block:'{"symbols":[],"statements":[[6,"form"],[3,"action",[[21,0,[]],"submit"],[["on"],["submit"]]],[8],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","id","checked"],["is-core","checkbox","is-core",[22,["isCore"]]]]],false],[0,"\\n "],[6,"label"],[10,"for","is-core"],[10,"class","checkbox"],[8],[0,"\\n Core team member (can add contributors)\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["account","text","0xF18E631Ea191aE4ebE70046Fcb01a436554421BA4",[22,["account"]],[26,"if",[[22,["isValidAccount"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[6,"select"],[10,"required",""],[11,"onchange",[26,"action",[[21,0,[]],[26,"mut",[[22,["kind"]]],null]],[["value"],["target.value"]]],null],[8],[0,"\\n "],[6,"option"],[10,"value","person"],[11,"selected",[26,"eq",[[22,["kind"]],"person"],null],null],[8],[0,"Person"],[9],[0,"\\n "],[6,"option"],[10,"value","organization"],[11,"selected",[26,"eq",[[22,["kind"]],"organization"],null],null],[8],[0,"Organization"],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["name","text","Name",[22,["name"]],[26,"if",[[22,["isValidName"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["url","text","URL",[22,["url"]],[26,"if",[[22,["isValidURL"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["github_uid","text","GitHub UID (123)",[22,["github_uid"]],[26,"if",[[22,["isValidGithubUID"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["github_username","text","GitHub username",[22,["github_username"]],[26,"if",[[22,["isValidGithubUsername"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["wiki_username","text","Wiki Username",[22,["wiki_username"]],[26,"if",[[22,["isValidWikiUsername"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[10,"class","actions"],[8],[0,"\\n "],[1,[26,"input",null,[["type","disabled","value"],["submit",[26,"is-pending",[[22,["inProgress"]]],null],[26,"if",[[26,"is-pending",[[22,["inProgress"]]],null],"Processing","Save"],null]]]],false],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/components/add-contributor/template.hbs"}})}),define("kredits-web/components/add-proposal/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({attributes:{contributorId:null,kind:"community",amount:null,description:null,url:null},didInsertElement:function(){this._super.apply(this,arguments),this.reset()},contributors:[],isValidContributor:Ember.computed.notEmpty("contributorId"),isValidAmount:Ember.computed("amount",function(){return parseInt(this.amount,10)>0}),isValidDescription:Ember.computed.notEmpty("description"),isValidUrl:Ember.computed.notEmpty("url"),isValid:Ember.computed.and("isValidContributor","isValidAmount","isValidDescription"),reset:function(){this.setProperties(this.attributes)},actions:{submit:function(){var e=this
|
||||
if(this.isValid){var t=Object.keys(this.attributes),n=this.getProperties(t),r=this.save(n)
|
||||
this.set("inProgress",r),r.then(function(){e.reset(),window.scroll(0,0),window.alert("Proposal added.")})}else alert("Invalid data. Please review and try again.")}}})}),define("kredits-web/components/add-proposal/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"cM+dvRZ+",block:'{"symbols":["contributor"],"statements":[[6,"form"],[3,"action",[[21,0,[]],"submit"],[["on"],["submit"]]],[8],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[6,"select"],[10,"required",""],[11,"onchange",[26,"action",[[21,0,[]],[26,"mut",[[22,["contributorId"]]],null]],[["value"],["target.value"]]],null],[8],[0,"\\n "],[6,"option"],[10,"value",""],[10,"selected",""],[10,"disabled",""],[10,"hidden",""],[8],[0,"Contributor"],[9],[0,"\\n"],[4,"each",[[22,["contributors"]]],null,{"statements":[[0," "],[6,"option"],[11,"value",[21,1,["id"]],null],[11,"selected",[26,"eq",[[22,["contributorId"]],[21,1,["id"]]],null],null],[8],[1,[21,1,["github_username"]],false],[9],[0,"\\n"]],"parameters":[1]},null],[0," "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[6,"select"],[10,"required",""],[11,"onchange",[26,"action",[[21,0,[]],[26,"mut",[[22,["kind"]]],null]],[["value"],["target.value"]]],null],[8],[0,"\\n "],[6,"option"],[10,"value","community"],[11,"selected",[26,"eq",[[22,["kind"]],"community"],null],null],[8],[0,"Community"],[9],[0,"\\n "],[6,"option"],[10,"value","design"],[11,"selected",[26,"eq",[[22,["kind"]],"design"],null],null],[8],[0,"Design"],[9],[0,"\\n "],[6,"option"],[10,"value","dev"],[11,"selected",[26,"eq",[[22,["kind"]],"dev"],null],null],[8],[0,"Development"],[9],[0,"\\n "],[6,"option"],[10,"value","docs"],[11,"selected",[26,"eq",[[22,["kind"]],"docs"],null],null],[8],[0,"Documentation"],[9],[0,"\\n "],[6,"option"],[10,"value","ops"],[11,"selected",[26,"eq",[[22,["kind"]],"ops"],null],null],[8],[0,"IT Operations"],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["type","placeholder","value","class"],["text","100",[22,["amount"]],[26,"if",[[22,["isValidAmount"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["type","placeholder","value","class"],["text","Description",[22,["description"]],[26,"if",[[22,["isValidDescription"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["type","placeholder","value","class"],["text","URL (optional)",[22,["url"]],[26,"if",[[22,["isValidUrl"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[10,"class","actions"],[8],[0,"\\n "],[1,[26,"input",null,[["type","disabled","value"],["submit",[26,"is-pending",[[22,["inProgress"]]],null],[26,"if",[[26,"is-pending",[[22,["inProgress"]]],null],"Processing","Save"],null]]]],false],[0,"\\n "],[4,"link-to",["index"],null,{"statements":[[0,"Back"]],"parameters":[]},null],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/components/add-proposal/template.hbs"}})}),define("kredits-web/components/contributor-list/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({tagName:"table",classNames:"contributor-list",selectedContributor:null,actions:{toggleContributorInfo:function(e){e.get("showMetadata")?e.set("showMetadata",!1):(this.contributors.setEach("showMetadata",!1),e.set("showMetadata",!0))}}})}),define("kredits-web/components/contributor-list/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"1c6etkaE",block:'{"symbols":["contributor"],"statements":[[6,"tbody"],[8],[0,"\\n"],[4,"each",[[22,["contributors"]]],null,{"statements":[[0," "],[6,"tr"],[11,"class",[27,[[26,"if",[[21,1,["isCurrentUser"]],"current-user"],null]]]],[3,"action",[[21,0,[]],"toggleContributorInfo",[21,1,[]]]],[8],[0,"\\n "],[6,"td"],[10,"class","person"],[8],[0,"\\n "],[6,"img"],[10,"class","avatar"],[11,"src",[21,1,["avatarURL"]],null],[8],[9],[0,"\\n "],[1,[21,1,["name"]],false],[0,"\\n "],[9],[0,"\\n "],[6,"td"],[10,"class","kredits"],[8],[0,"\\n "],[6,"span"],[10,"class","amount"],[8],[1,[21,1,["balance"]],false],[9],[0,"\\n "],[6,"span"],[10,"class","symbol"],[8],[0,"₭S"],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"tr"],[11,"class",[27,["metadata ",[26,"if",[[21,1,["isCurrentUser"]],"current-user"],null]," ",[26,"if",[[21,1,["showMetadata"]],"visible"],null]]]],[8],[0,"\\n "],[6,"td"],[10,"colspan","2"],[8],[0,"\\n "],[6,"ul"],[8],[0,"\\n "],[6,"li"],[8],[6,"a"],[11,"href",[27,["https://testnet.etherscan.io/address/",[21,1,["account"]]]]],[8],[0,"Inspect Ethereum transactions"],[9],[9],[0,"\\n"],[4,"if",[[21,1,["ipfsHash"]]],null,{"statements":[[0," "],[6,"li"],[8],[6,"a"],[11,"href",[27,["https://ipfs.io/ipfs/",[21,1,[Line truncated
|
||||
return this.kredits.addContributor(e).then(function(e){return t.contributors.pushObject(e),e})}}})}),define("kredits-web/controllers/proposals/new",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Controller.extend({kredits:Ember.inject.service(),contributors:Ember.computed.alias("kredits.contributors"),minedContributors:Ember.computed.filterBy("contributors","id"),actions:{save:function(e){var t=this,n=this.contributors.findBy("id",e.contributorId)
|
||||
return e.contributorIpfsHash=n.get("ipfsHash"),this.kredits.addProposal(e).then(function(e){return t.transitionToRoute("index"),e})}}})}),define("kredits-web/helpers/and",["exports","ember-truth-helpers/helpers/and"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"and",{enumerable:!0,get:function(){return t.and}})}),define("kredits-web/helpers/app-version",["exports","kredits-web/config/environment","ember-cli-app-version/utils/regexp"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.appVersion=o
|
||||
var r=t.default.APP.version
|
||||
function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}
|
||||
return t.hideSha?r.match(n.versionRegExp)[0]:t.hideVersion?r.match(n.shaRegExp)[0]:r}e.default=Ember.Helper.helper(o)}),define("kredits-web/helpers/await",["exports","ember-promise-helpers/helpers/await"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/helpers/eq",["exports","ember-truth-helpers/helpers/equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"equal",{enumerable:!0,get:function(){return t.equal}})}),define("kredits-web/helpers/gt",["exports","ember-truth-helpers/helpers/gt"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"gt",{enumerable:!0,get:function(){return t.gt}})}),define("kredits-web/helpers/gte",["exports","ember-truth-helpers/helpers/gte"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"gte",{enumerable:!0,get:function(){return t.gte}})}),define("kredits-web/helpers/is-array",["exports","ember-truth-helpers/helpers/is-array"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isArray",{enumerable:!0,get:function(){return t.isArray}})}),define("kredits-web/helpers/is-equal",["exports","ember-truth-helpers/helpers/is-equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isEqual",{enumerable:!0,get:function(){return t.isEqual}})}),define("kredits-web/helpers/is-fulfilled",["exports","ember-promise-helpers/helpers/is-fulfilled"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isFulfilled",{enumerable:!0,get:function(){return t.isFulfilled}})}),define("kredits-web/helpers/is-pending",["exports","ember-promise-helpers/helpers/is-pending"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isPending",{enumerable:!0,get:function(){return t.isPending}})}),define("kredits-web/helpers/is-rejected",["exports","ember-promise-helpers/helpers/is-rejected"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isRejected",{enumerable:!0,get:function(){return t.isRejected}})}),define("kredits-web/helpers/lt",["exports","ember-truth-helpers/helpers/lt"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"lt",{enumerable:!0,get:function(){return t.lt}})}),define("kredits-web/helpers/lte",["exports","ember-truth-helpers/helpers/lte"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"lte",{enumerable:!0,get:function(){return t.lte}})}),define("kredits-web/helpers/not-eq",["exports","ember-truth-helpers/helpers/not-equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"notEq",{enumerable:!0,get:function(){return t.notEq}})}),define("kredits-web/helpers/not",["exports","ember-truth-helpers/helpers/not"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"not",{enumerable:!0,get:function(){return t.not}})}),define("kredits-web/helpers/or",["exports","ember-truth-helpers/helpers/or"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"or",{enumerable:!0,get:function(){return t.or}})})
|
||||
define("kredits-web/helpers/promise-all",["exports","ember-promise-helpers/helpers/promise-all"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"promiseAll",{enumerable:!0,get:function(){return t.promiseAll}})}),define("kredits-web/helpers/promise-hash",["exports","ember-promise-helpers/helpers/promise-hash"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"promiseHash",{enumerable:!0,get:function(){return t.promiseHash}})}),define("kredits-web/helpers/promise-rejected-reason",["exports","ember-promise-helpers/helpers/promise-rejected-reason"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/helpers/xor",["exports","ember-truth-helpers/helpers/xor"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"xor",{enumerable:!0,get:function(){return t.xor}})}),define("kredits-web/initializers/app-version",["exports","ember-cli-app-version/initializer-factory","kredits-web/config/environment"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0})
|
||||
var r=void 0,o=void 0
|
||||
n.default.APP&&(r=n.default.APP.name,o=n.default.APP.version),e.default={name:"App Version",initialize:(0,t.default)(r,o)}}),define("kredits-web/initializers/container-debug-adapter",["exports","ember-resolver/resolvers/classic/container-debug-adapter"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"container-debug-adapter",initialize:function(){var e=arguments[1]||arguments[0]
|
||||
e.register("container-debug-adapter:main",t.default),e.inject("container-debug-adapter:main","namespace","application:main")}}}),define("kredits-web/initializers/export-application-global",["exports","kredits-web/config/environment"],function(e,t){function n(){var e=arguments[1]||arguments[0]
|
||||
if(!1!==t.default.exportApplicationGlobal){var n
|
||||
if("undefined"!=typeof window)n=window
|
||||
else if("undefined"!=typeof global)n=global
|
||||
else{if("undefined"==typeof self)return
|
||||
n=self}var r,o=t.default.exportApplicationGlobal
|
||||
r="string"==typeof o?o:Ember.String.classify(t.default.modulePrefix),n[r]||(n[r]=e,e.reopen({willDestroy:function(){this._super.apply(this,arguments),delete n[r]}}))}}Object.defineProperty(e,"__esModule",{value:!0}),e.initialize=n,e.default={name:"export-application-global",initialize:n}}),define("kredits-web/models/contributor",["exports","kredits-web/utils/cps/bignumber"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Object.extend({id:(0,t.default)("idRaw","toString"),account:null,balance:(0,t.default)("balanceRaw","toNumber"),isCore:!1,ipfsHash:null,kind:null,name:null,url:null,github_username:null,github_uid:null,wiki_username:null,ipfsData:"",isCurrentUser:!1,avatarURL:Ember.computed("github_uid",function(){var e=this.github_uid
|
||||
if(e)return"https://avatars2.githubusercontent.com/u/"+e+"?v=3&s=128"})})}),define("kredits-web/models/proposal",["exports","kredits-web/utils/cps/bignumber"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Object.extend({id:(0,t.default)("idRaw","toString"),creatorAccount:null,contributorId:(0,t.default)("contributorIdRaw","toString"),amount:(0,t.default)("amountRaw","toNumber"),votesCount:(0,t.default)("votesCountRaw","toNumber"),votesNeeded:(0,t.default)("votesNeededRaw","toNumber"),executed:null,ipfsHash:null,isExecuted:Ember.computed.alias("executed"),kind:null,description:null,details:{},url:null,ipfsData:""})}),define("kredits-web/resolver",["exports","ember-resolver"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=t.default}),define("kredits-web/router",["exports","kredits-web/config/environment"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0})
|
||||
var n=Ember.Router.extend({location:t.default.locationType,rootURL:t.default.rootURL})
|
||||
n.map(function(){this.route("proposals",function(){this.route("new")})}),e.default=n}),define("kredits-web/routes/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Route.extend({kredits:Ember.inject.service(),beforeModel:function(e){var t=this.kredits
|
||||
return t.setup().then(function(){t.get("accountNeedsUnlock")&&confirm("It looks like you have an Ethereum wallet available. Please unlock your account.")&&e.retry()}).catch(function(e){console.log("Error initializing Kredits",e)})},afterModel:function(){var e=this
|
||||
return this.kredits.loadContributorsAndProposals().then(function(){e.kredits.addContractEventHandlers()})}})}),define("kredits-web/services/ajax",["exports","ember-ajax/services/ajax"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/services/kredits",["exports","npm:ethers","npm:kredits-contracts","kredits-web/config/environment","kredits-web/models/contributor","kredits-web/models/proposal"],function(e,t,n,r,o,s){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Service.extend({currentUserAccounts:null,currentUser:null,currentUserIsContributor:Ember.computed.notEmpty("currentUser"),currentUserIsCore:Ember.computed.alias("currentUser.isCore"),hasAccounts:Ember.computed.notEmpty("currentUserAccounts"),accountNeedsUnlock:Ember.computed("currentUserAccounts",function(){return this.currentUserAccounts&&Ember.isEmpty(this.currentUserAccounts)}),getEthProvider:function(){var e=this
|
||||
return new Ember.RSVP.Promise(function(n){var o=void 0,s=void 0
|
||||
void 0!==window.web3?(console.debug("[kredits] Using user-provided instance, e.g. from Mist browser or Metamask"),s=parseInt(window.web3.version.network),(o=new t.default.providers.Web3Provider(window.web3.currentProvider,{chainId:s})).listAccounts().then(function(t){e.set("currentUserAccounts",t)
|
||||
var r=0===t.length?null:o.getSigner()
|
||||
n({ethProvider:o,ethSigner:r})})):(console.debug("[kredits] Creating new instance from npm module class"),s=parseInt(r.default.contractMetadata.networkId),console.debug("[kredits] networkId="+s+" providerURL: "+r.default.web3ProviderUrl),o=new t.default.providers.JsonRpcProvider(r.default.web3ProviderUrl,{chainId:s}),n({ethProvider:o,ethSigner:null}))})},setup:function(){var e=this
|
||||
return this.getEthProvider().then(function(t){return new n.default(t.ethProvider,t.ethSigner,{ipfsConfig:r.default.ipfs}).init().then(function(t){return e.set("kredits",t),e.currentUserAccounts&&e.currentUserAccounts.length>0&&e.getCurrentUser.then(function(t){e.set("currentUser",t)}),t})})},totalSupply:Ember.computed(function(){return this.kredits.Token.functions.totalSupply()}),contributors:[],proposals:[],loadContributorsAndProposals:function(){var e=this
|
||||
return this.getContributors().then(function(t){return e.contributors.pushObjects(t)}).then(function(){return e.getProposals()}).then(function(t){return e.proposals.pushObjects(t)})},addContributor:function(e){return console.debug("[kredits] add contributor",e),this.kredits.Contributor.add(e).then(function(t){return console.debug("[kredits] add contributor response",t),o.default.create(e)})},getContributors:function(){return this.kredits.Contributor.all().then(function(e){return e.map(function(e){return o.default.create(e)})})},addProposal:function(e){var t=this
|
||||
return console.debug("[kredits] add proposal",e),this.kredits.Operator.addProposal(e).then(function(n){return console.debug("[kredits] add proposal response",n),e.contributor=t.contributors.findBy("id",e.contributorId),s.default.create(e)})},getProposals:function(){var e=this
|
||||
return this.kredits.Operator.all().then(function(t){return t.map(function(t){return t.contributor=e.contributors.findBy("id",t.contributorId.toString()),s.default.create(t)})})},vote:function(e){return console.debug("[kredits] vote for",e),this.kredits.Operator.functions.vote(e).then(function(e){return console.debug("[kredits] vote response",e),e})},getCurrentUser:Ember.computed("kredits.provider",function(){var e=this
|
||||
return Ember.isEmpty(this.currentUserAccounts)?Ember.RSVP.resolve():this.kredits.Contributor.functions.getContributorIdByAddress(this.get("currentUserAccounts.firstObject")).then(function(t){return 0===(t=t.toNumber())?Ember.RSVP.resolve():e.kredits.Contributor.getById(t)})}),findProposalById:function(e){return this.proposals.findBy("id",e.toString())},addContractEventHandlers:function(){this.kredits.Operator.on("ProposalCreated",this.handleProposalCreated.bind(this)).on("ProposalVoted",this.handleProposalVoted.bind(this)).on("ProposalExecuted",this.handleProposalExecuted.bind(this)),this.kredits.Token.on("Transfer",this.handleTransfer.bind(this))},handleProposalCreated:function(e){var t=this
|
||||
this.findProposalById(e)?console.debug("[events] proposal exists, not adding from event"):this.kredits.Operator.getById(e).then(function(e){e.contributor=t.contributors.findBy("id",e.contributorId.toString()),t.proposals.pushObject(s.default.create(e))})},handleProposalVoted:function(e,t,n){var r=this.findProposalById(e)
|
||||
r&&r.set("votesCount",n)},handleProposalExecuted:function(e,t,n){var r=this.findProposalById(e)
|
||||
r.get("isExecuted")?console.debug("[events] proposal already executed, not adding from event"):(r.set("executed",!0),this.contributors.findBy("id",t.toString()).incrementProperty("balance",n.toNumber()))},handleTransfer:function(e,t,n){n=n.toNumber(),this.contributors.findBy("address",e).decrementProperty("balance",n),this.contributors.findBy("address",t).incrementProperty("balance",n)}})}),define("kredits-web/templates/application-loading",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"CLjY4Liw",block:'{"symbols":[],"statements":[[1,[20,"loading-spinner"],false],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/application-loading.hbs"}})}),define("kredits-web/templates/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"Lp1+Ni2p",block:'{"symbols":[],"statements":[[6,"main"],[8],[0,"\\n "],[1,[20,"outlet"],false],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/application.hbs"}})}),define("kredits-web/templates/index",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"Vx25wHka",block:'{"symbols":[],"statements":[[4,"if",[[22,["kredits","hasAccounts"]]],null,{"statements":[[0," "],[6,"section"],[10,"id","user-account"],[8],[0,"\\n"],[4,"if",[[22,["kredits","currentUser"]]],null,{"statements":[[0," "],[1,[22,["kredits","currentUser","name"]],false],[0,"\\n"],[4,"if",[[22,["kredits","currentUserIsCore"]]],null,{"statements":[[0," (core)\\n"]],"parameters":[]},null],[0," Account: "],[1,[22,["kredits","currentUser","account"]],false],[0,"\\n"]],"parameters":[]},null],[0," "],[9],[0,"\\n"]],"parameters":[]},null],[0,"\\n"],[6,"section"],[10,"id","contributors"],[8],[0,"\\n "],[6,"header"],[8],[0,"\\n "],[6,"h2"],[8],[0,"Kosmos Contributors"],[9],[0,"\\n "],[9],[0,"\\n "],[6,"div"],[10,"class","content"],[8],[0,"\\n "],[1,[26,"contributor-list",null,[["contributors"],[[22,["contributorsSorted"]]]]],false],[0,"\\n\\n "],[6,"p"],[10,"class","stats"],[8],[0,"\\n "],[6,"span"],[10,"class","number"],[8],[1,[26,"await",[[22,["kredits","totalSupply"]]],null],false],[9],[0," kredits issued and distributed among\\n "],[6,"span"],[10,"class","number"],[8],[1,[22,["contributorsWithKredits","length"]],false],[9],[0," contributors.\\n "],[9],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n\\n"],[4,"if",[[22,["proposalsOpen"]]],null,{"statements":[[0," "],[6,"section"],[10,"id","proposals-open"],[8],[0,"\\n "],[6,"header"],[8],[0,"\\n "],[6,"h2"],[8],[0,"Open Proposals"],[9],[0,"\\n "],[9],[0,"\\n "],[6,"div"],[10,"class","content"],[8],[0,"\\n"],[0," "],[1,[26,"proposal-list",null,[["proposals","confirmProposal","contractInteractionEnabled"],[[22,["proposalsOpenSorted"]],[26,"action",[[21,0,[]],"confirmProposal"],null],[22,["kredits","hasAccounts"]]]]],false],[0,"\\n\\n"],[4,"if",[[22,["kredits","hasAccounts"]]],null,{"statements":[[0," "],[6,"p"],[10,"class","actions"],[8],[0,"\\n "],[4,"link-to",["proposals.new"],null,{"statements":[[0,"Create new proposal"]],"parameters":[]},null],[0,"\\n "],[9],[0,"\\n"]],"parameters":[]},null],[0," "],[9],[0,"\\n "],[9],[0,"\\n"]],"parameters":[]},null],[0,"\\n"],[6,"section"],[10,"id","proposals-closed"],[8],[0,"\\n "],[6,"header"],[8],[0,"\\n "],[6,"h2"],[8],[0,"Closed Proposals"],[9],[0,"\\n "],[9],[0,"\\n "],[6,"div"],[10,"class","content"],[8],[0,"\\n "],[1,[26,"proposal-list",null,[["proposals","confirmProposal"],[[22,["proposalsClosedSorted"]],[26,"action",[[21,0,[]],"confirmProposal"],null]]]],false],[0,"\\n\\n"],[4,"if",[[22,["kredits","hasAccounts"]]],null,{"statements":[[0," "],[6,"p"],[10,"class","actions"],[8],[0,"\\n "],[4,"link-to",["proposals.new"],null,{"statements":[[0,"Create new proposal"]],"parameters":[]},null],[0,"\\n "],[9],[0,"\\n"]],"parameters":[]},null],[0," "],[9],[0,"\\n"],[9],[0,"\\n\\n"],[6,"section"],[10,"id","add-contributor"],[8],[0,"\\n "],[6,"header"],[8],[0,"\\n "],[6,"h2"],[8],[0,"Add Contributor"],[9],[0,"\\n "],[9],[0,"\\n\\n "],[6,"div"],[10,"class","content"],[8],[0,"\\n"],[4,"if",[[22,["kredits","currentUser","isCore"]]],null,{"statements":[[0," "],[1,[26,"add-contributor",null,[["contributors","save"],[[22,["contributors"]],[26,"action",[[21,0,[]],"save"],null]]]],false],[0,"\\n"]],"parameters":[]},{"statements":[[0," Only core team members can add new contributors. Please ask someone to set you up.\\n"]],"parameters":[]}],[0," "],[9],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/index.hbs"}})}),define("kredits-web/templates/proposals/new",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"AndvFYbw",block:'{"symbols":[],"statements":[[6,"section"],[10,"id","add-proposal"],[8Line truncated
|
||||
return r&&t.default.utils.isBigNumber(r)?r[n]():r},set:function(r,o){return o=t.default.utils.bigNumberify(o),this.set(e,o),o[n]()}})}}),define("kredits-web/config/environment",[],function(){try{var e="kredits-web/config/environment",t=document.querySelector('meta[name="'+e+'"]').getAttribute("content"),n={default:JSON.parse(unescape(t))}
|
||||
return Object.defineProperty(n,"__esModule",{value:!0}),n}catch(t){throw new Error('Could not read config from meta tag with name "'+e+'".')}}),runningTests||require("kredits-web/app").default.create({name:"kredits-web",version:"1.0.0+575c1a11"})
|
||||
|
||||
//# sourceMappingURL=kredits-web-1e74c12706219f926f222478125c5637.map
|
||||
@@ -0,0 +1 @@
|
||||
@charset "UTF-8";body,button,h1,h2,h3,h4,h5,input{font-family:"Open Sans",sans-serif;font-weight:300}#topbar h1,button,input[type=submit]{text-transform:uppercase;display:inline-block}*{margin:0;padding:0;box-sizing:border-box;font-size:14px}:active,:focus,:hover{outline:0;-webkit-tap-highlight-color:rgba(255,255,255,0);-webkit-tap-highlight-color:transparent}main{padding:1rem}main#index{width:100%;display:grid;grid-row-gap:2rem;grid-template-areas:"stats" "contributions"}main section{margin-bottom:5rem}main section:first-of-type{margin-top:2rem}main section header{padding-bottom:3rem;text-align:center}body{background-image:linear-gradient(to bottom,rgba(22,21,40,.4),rgba(0,0,0,.75)),url(/img/bg-947d3bf6bb15a1a3b07afcba4c307690.jpg);background-repeat:none;background-attachment:fixed;color:#fff}@media screen and (min-width:900px){body{background-size:cover}}button,h1,h2,h3,h4,h5,input{font-size:1rem}section h2{font-size:1.4rem;color:#68d7fb}section#people .content p.stats{padding-top:3rem;font-size:1rem;color:#fff;text-align:center}section#people .content p.stats span.number{font-weight:600}button,input[type=submit],ul.contribution-list li .amount,ul.contribution-list li .recipient,ul.proposal-list li .amount,ul.proposal-list li .recipient,ul.proposal-list li .symbol{font-weight:500}section#contributions-by-type .chart{width:50%;margin-left:auto;margin-right:auto}@media (max-width:600px){main section{margin-bottom:5rem}main section header{padding-bottom:2rem}section#people .content p.stats{padding-top:2rem}section#contributions-by-type .chart{width:75%}}section#proposals-closed .actions,section#proposals-open .actions{padding-top:3rem;font-size:1rem;color:#68d7fb;text-align:center}@media (max-width:600px){section#proposals-closed .actions,section#proposals-open .actions{padding-top:2rem}}section#proposals-closed .actions a,section#proposals-open .actions a{color:#68d7fb}button,input[type=submit]{border:1px solid #161528;background-color:rgba(22,21,40,.6);color:#68d7fb;border-radius:3px;cursor:pointer;letter-spacing:.1em}button:hover,input[type=submit]:hover{background-color:rgba(22,21,40,.8)}@media (min-width:550px){main#index{grid-column-gap:4rem;grid-row-gap:2rem;grid-template-columns:2fr 4fr;grid-template-areas:"stats contributions"}section h2{font-size:2rem}}.loading-spinner,table.contributor-list tr td.kredits .amount{font-size:1.4rem}#topbar{height:3rem;padding:0 1rem;line-height:3rem;background-color:rgba(0,0,0,.3)}#topbar section#user-account{display:inline-block;float:right}@keyframes pulse{from{opacity:.1}to{opacity:.6}}.loading-spinner{margin-top:12rem;text-align:center;color:#68d7fb}@media (max-width:600px){.loading-spinner{margin-top:6rem}main section#contributions-confirmed,main section#contributions-unconfirmed{margin-top:0}}.loading-spinner svg{width:200px;height:200px;margin-bottom:2rem}.loading-spinner svg #path-comet{fill:#68d7fb;opacity:.1;animation-name:pulse;animation-iteration-count:infinite;animation-timing-function:ease-in-out;animation-direction:alternate;animation-duration:1s}table.contributor-list{width:100%;border-collapse:collapse}table.contributor-list tr{border-bottom:1px solid rgba(255,255,255,.2);background-color:rgba(255,255,255,.1)}table.contributor-list tr:first-of-type{border-top:1px solid rgba(255,255,255,.2)}table.contributor-list tr.current-user{background-color:rgba(255,255,255,.2)}table.contributor-list tr.metadata{height:0;transition:all .2s ease-out}table.contributor-list tr.metadata td{padding:0 1.2rem}table.contributor-list tr.metadata a{color:#68d7fb}table.contributor-list tr.metadata a:active,table.contributor-list tr.metadata a:hover{color:#fff}table.contributor-list tr.metadata ul{list-style:none;display:block;overflow:hidden;height:0;transition:all .2s ease-out}table.contributor-list tr.metadata ul li{display:inline}table.contributor-list tr.metadata ul li+li{margin-left:1rem}table.contributor-list tr.metadata.visible,table.contributor-list tr.metadata.visible ul{height:auto}table.contributor-list tr td{padding:0 1.2rem;line-height:4.2rem}table.contributor-list tr td.person{text-align:left;font-size:1.4rem}table.contributor-list tr td.person img.avatar{margin-right:.2rem}table.contributor-list tr td.kredits{text-align:right}table.contributor-list tr td.kredits .symbol{font-size:1rem;padding-left:.2rem}table.contributor-list tr td pre{line-height:1rem;padding-bottom:1rem}section#add-contributor form p,section#add-proposal form p{margin-bottom:1rem}section#add-contributor form p.actions,section#add-proposal form p.actions{padding-top:1rem;text-align:center}section#add-contributor form p.actions a,section#add-proposal form p.actions a{color:#68d7fb;margin-left:1rem}section#add-contributor form input[type=text],section#add-contributor form select,section#add-proposal form input[type=text],section#add-proposal form select{width:100%;padding:1rem;border:none;border-bottom:1px solid rgba(255,255,255,.2);background-color:rgba(22,21,40,.3);color:#fff;font-size:1.2rLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"sources":["vendor/ember-cli/app-prefix.js","kredits-web/app.js","kredits-web/components/add-contributor/component.js","kredits-web/components/add-contributor/template.js","kredits-web/components/add-proposal/component.js","kredits-web/components/add-proposal/template.js","kredits-web/components/chart-contributions-by-type/component.js","kredits-web/components/chart-contributions-by-type/template.js","kredits-web/components/contribution-list/component.js","kredits-web/components/contribution-list/template.js","kredits-web/components/contributor-list/component.js","kredits-web/components/contributor-list/template.js","kredits-web/components/ember-chart.js","kredits-web/components/loading-spinner/component.js","kredits-web/components/loading-spinner/template.js","kredits-web/components/proposal-list/component.js","kredits-web/components/proposal-list/template.js","kredits-web/components/user-avatar/component.js","kredits-web/components/user-avatar/template.js","kredits-web/controllers/application.js","kredits-web/controllers/index.js","kredits-web/controllers/proposals/new.js","kredits-web/helpers/and.js","kredits-web/helpers/app-version.js","kredits-web/helpers/await.js","kredits-web/helpers/eq.js","kredits-web/helpers/gt.js","kredits-web/helpers/gte.js","kredits-web/helpers/is-array.js","kredits-web/helpers/is-current-user.js","kredits-web/helpers/is-equal.js","kredits-web/helpers/is-fulfilled.js","kredits-web/helpers/is-pending.js","kredits-web/helpers/is-rejected.js","kredits-web/helpers/lt.js","kredits-web/helpers/lte.js","kredits-web/helpers/not-eq.js","kredits-web/helpers/not.js","kredits-web/helpers/or.js","kredits-web/helpers/promise-all.js","kredits-web/helpers/promise-hash.js","kredits-web/helpers/promise-rejected-reason.js","kredits-web/helpers/xor.js","kredits-web/initializers/app-version.js","kredits-web/initializers/container-debug-adapter.js","kredits-web/initializers/export-application-global.js","kredits-web/models/contribution.js","kredits-web/models/contributor.js","kredits-web/models/proposal.js","kredits-web/resolver.js","kredits-web/router.js","kredits-web/routes/application.js","kredits-web/services/ajax.js","kredits-web/services/kredits.js","kredits-web/templates/application-loading.js","kredits-web/templates/application.js","kredits-web/templates/index.js","kredits-web/templates/proposals/new.js","kredits-web/utils/cps/bignumber.js","kredits-web/utils/cps/kredits.js","kredits-web/utils/format-kredits.js","vendor/ember-cli/app-config.js","vendor/ember-cli/app-boot.js"],"names":["define","_exports","_resolver","_emberLoadInitializers","_environment","Object","defineProperty","value","default","App","Ember","Application","extend","modulePrefix","podModulePrefix","Resolver","_default","Component","kredits","inject","service","attributes","isValidAccount","computed","notEmpty","isValidName","isValidURL","isValidGithubUID","isValidGithubUsername","isValidWikiUsername","isValid","and","init","this","_super","apply","arguments","set","account","name","kind","url","github_username","github_uid","wiki_username","isCore","didInsertElement","reset","setProperties","actions","submit","_this","keys","contributor","getProperties","saved","save","then","window","scroll","alert","HTMLBars","template","id","block","meta","moduleName","contributors","freeze","isValidContributor","isValidAmount","parseInt","amount","isValidDescription","isValidUrl","contributorId","description","proposal","categoryColors","contributions","chartOptions","legend","display","chartData","map","c","reduce","kinds","datasets","data","borderColor","borderWidth","labels","tagName","classNames","selectedContributor","toggleContributorInfo","get","setEach","_emberChart","confirm","proposalId","contractInteractionEnabled","confirmProposal","attributeBindings","src","alias","title","Controller","currentBlock","contributorsWithKredits","filter","gt","contributorsSorting","contributorsSorted","sort","contributionsSorting","contributionsUnconfirmed","contribution","confirmedAt","contributionsConfirmed","_this2","contributionsUnconfirmedSorted","contributionsConfirmedSorted","vetoContribution","vote","transaction","hash","_this3","addContributor","pushObject","minedContributors","filterBy","findBy","contributorIpfsHash","addProposal","transitionToRoute","_and","enumerable","_regexp","appVersion","_","length","undefined","version","APP","versionOnly","hideSha","shaOnly","hideVersion","match","showExtended","versionExtendedRegExp","versionRegExp","shaRegExp","Helper","helper","_await","_equal","equal","_gt","_gte","gte","_isArray","isArray","_slicedToArray","arr","i","Array","_arrayWithHoles","_arr","_n","_d","_e","_s","_i","Symbol","iterator","next","done","push","err","_iterableToArrayLimit","TypeError","_nonIterableRest","currentUser","compute","_ref","isPresent","_isEqual","isEqual","_isFulfilled","isFulfilled","_isPending","isPending","_isRejected","isRejected","_lt","lt","_lte","lte","_notEqual","notEq","_not","not","Line truncated
|
||||
@@ -0,0 +1 @@
|
||||
@charset "UTF-8";body,button,h1,h2,h3,h4,h5,input{font-family:"Open Sans",sans-serif;font-weight:300}#topbar h1,button,input[type=submit]{text-transform:uppercase;display:inline-block}*{margin:0;padding:0;box-sizing:border-box;font-size:14px}:active,:focus,:hover{outline:0;-webkit-tap-highlight-color:rgba(255,255,255,0);-webkit-tap-highlight-color:transparent}main{padding:1rem}main#index{width:100%;display:grid;grid-row-gap:2rem;grid-template-areas:"stats" "contributions"}main section{margin-bottom:5rem}main section:first-of-type{margin-top:2rem}main section header{padding-bottom:3rem;text-align:center}body{background-image:linear-gradient(to bottom,rgba(22,21,40,.4),rgba(0,0,0,.75)),url(/img/bg-947d3bf6bb15a1a3b07afcba4c307690.jpg);background-repeat:none;background-attachment:fixed;color:#fff}@media screen and (min-width:900px){body{background-size:cover}}button,h1,h2,h3,h4,h5,input{font-size:1rem}section h2{font-size:1.4rem;color:#68d7fb}section#people .content p.stats{padding-top:3rem;font-size:1rem;color:#fff;text-align:center}section#people .content p.stats span.number{font-weight:600}button,input[type=submit],ul.contribution-list li .amount,ul.contribution-list li .recipient,ul.contribution-list li .symbol,ul.proposal-list li .amount,ul.proposal-list li .recipient,ul.proposal-list li .symbol{font-weight:500}section#contributions-by-type .chart{width:50%;margin-left:auto;margin-right:auto}@media (max-width:600px){main section{margin-bottom:5rem}main section header{padding-bottom:2rem}section#people .content p.stats{padding-top:2rem}section#contributions-by-type .chart{width:75%}}section#proposals-closed .actions,section#proposals-open .actions{padding-top:3rem;font-size:1rem;color:#68d7fb;text-align:center}@media (max-width:600px){section#proposals-closed .actions,section#proposals-open .actions{padding-top:2rem}}section#proposals-closed .actions a,section#proposals-open .actions a{color:#68d7fb}button,input[type=submit]{border:1px solid #161528;background-color:rgba(22,21,40,.6);color:#68d7fb;border-radius:3px;cursor:pointer;letter-spacing:.1em}table.contributor-list tr:first-of-type,ul.contribution-list li:first-of-type,ul.proposal-list li:first-of-type{border-top:1px solid rgba(255,255,255,.2)}button:hover,input[type=submit]:hover{background-color:rgba(22,21,40,.8)}@media (min-width:550px){main#index{grid-column-gap:4rem;grid-row-gap:2rem;grid-template-columns:2fr 4fr;grid-template-areas:"stats contributions"}section h2{font-size:2rem}}#topbar{height:3rem;padding:0 1rem;line-height:3rem;background-color:rgba(0,0,0,.3)}#topbar section#user-account{display:inline-block;float:right}@keyframes pulse{from{opacity:.1}to{opacity:.6}}.loading-spinner{margin-top:12rem;text-align:center;font-size:1.4rem;color:#68d7fb}@media (max-width:600px){.loading-spinner{margin-top:6rem}main section#contributions-confirmed,main section#contributions-unconfirmed{margin-top:0}}.loading-spinner svg{width:200px;height:200px;margin-bottom:2rem}.loading-spinner svg #path-comet{fill:#68d7fb;opacity:.1;animation-name:pulse;animation-iteration-count:infinite;animation-timing-function:ease-in-out;animation-direction:alternate;animation-duration:1s}table.contributor-list{width:100%;border-collapse:collapse}table.contributor-list tr{border-bottom:1px solid rgba(255,255,255,.2);background-color:rgba(255,255,255,.1)}table.contributor-list tr.current-user{background-color:rgba(255,255,255,.2)}table.contributor-list tr.metadata{height:0;transition:all .2s ease-out}table.contributor-list tr.metadata td{padding:0 1.2rem}table.contributor-list tr.metadata a{color:#68d7fb}table.contributor-list tr.metadata a:active,table.contributor-list tr.metadata a:hover{color:#fff}table.contributor-list tr.metadata ul{list-style:none;display:block;overflow:hidden;height:0;transition:all .2s ease-out}table.contributor-list tr.metadata ul li{display:inline}table.contributor-list tr.metadata ul li+li{margin-left:1rem}table.contributor-list tr.metadata.visible,table.contributor-list tr.metadata.visible ul{height:auto}table.contributor-list tr td{padding:0 1.2rem;line-height:4.2rem}table.contributor-list tr td.person{text-align:left;font-size:1.4rem}table.contributor-list tr td.person img.avatar{width:2rem;height:2rem;vertical-align:middle;margin-right:.2rem;border-radius:1rem}table.contributor-list tr td.kredits{text-align:right}table.contributor-list tr td.kredits .amount{font-size:1.4rem}table.contributor-list tr td.kredits .symbol{font-size:1rem;padding-left:.2rem}table.contributor-list tr td pre{line-height:1rem;padding-bottom:1rem}section#add-contributor form p,section#add-proposal form p{margin-bottom:1rem}section#add-contributor form p.actions,section#add-proposal form p.actions{padding-top:1rem;text-align:center}section#add-contributor form p.actions a,section#add-proposal form p.actions a{color:#68d7fb;margin-left:1rem}section#add-contributor form input[type=text],section#add-contributor form select,section#add-proposal form input[type=text],sectioLine truncated
|
||||
@@ -0,0 +1,43 @@
|
||||
"use strict"
|
||||
define("kredits-web/app",["exports","kredits-web/resolver","ember-load-initializers","kredits-web/config/environment"],function(e,t,n,r){Object.defineProperty(e,"__esModule",{value:!0})
|
||||
var o=Ember.Application.extend({modulePrefix:r.default.modulePrefix,podModulePrefix:r.default.podModulePrefix,Resolver:t.default});(0,n.default)(o,r.default.modulePrefix),e.default=o}),define("kredits-web/components/add-contributor/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({kredits:Ember.inject.service(),attributes:{account:null,name:null,kind:"person",url:null,github_username:null,github_uid:null,wiki_username:null,isCore:!1},didInsertElement:function(){this._super.apply(this,arguments),this.reset()},isValidAccount:Ember.computed.notEmpty("account"),isValidName:Ember.computed.notEmpty("name"),isValidURL:Ember.computed.notEmpty("url"),isValidGithubUID:Ember.computed.notEmpty("github_uid"),isValidGithubUsername:Ember.computed.notEmpty("github_username"),isValidWikiUsername:Ember.computed.notEmpty("wiki_username"),isValid:Ember.computed.and("isValidAccount","isValidName","isValidGithubUID"),reset:function(){this.setProperties(this.attributes)},actions:{submit:function(){var e=this
|
||||
if(this.isValid){var t=Object.keys(this.attributes),n=this.getProperties(t),r=this.save(n)
|
||||
this.set("inProgress",r),r.then(function(){e.reset(),window.scroll(0,0),window.alert("Contributor added.")})}else alert("Invalid data. Please review and try again.")}}})}),define("kredits-web/components/add-contributor/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"CSegBQfj",block:'{"symbols":[],"statements":[[6,"form"],[3,"action",[[21,0,[]],"submit"],[["on"],["submit"]]],[8],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","id","checked"],["is-core","checkbox","is-core",[22,["isCore"]]]]],false],[0,"\\n "],[6,"label"],[10,"for","is-core"],[10,"class","checkbox"],[8],[0,"\\n Core team member (can add contributors)\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["account","text","0xF18E631Ea191aE4ebE70046Fcb01a436554421BA4",[22,["account"]],[26,"if",[[22,["isValidAccount"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[6,"select"],[10,"required",""],[11,"onchange",[26,"action",[[21,0,[]],[26,"mut",[[22,["kind"]]],null]],[["value"],["target.value"]]],null],[8],[0,"\\n "],[6,"option"],[10,"value","person"],[11,"selected",[26,"eq",[[22,["kind"]],"person"],null],null],[8],[0,"Person"],[9],[0,"\\n "],[6,"option"],[10,"value","organization"],[11,"selected",[26,"eq",[[22,["kind"]],"organization"],null],null],[8],[0,"Organization"],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["name","text","Name",[22,["name"]],[26,"if",[[22,["isValidName"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["url","text","URL",[22,["url"]],[26,"if",[[22,["isValidURL"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["github_uid","text","GitHub UID (123)",[22,["github_uid"]],[26,"if",[[22,["isValidGithubUID"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["github_username","text","GitHub username",[22,["github_username"]],[26,"if",[[22,["isValidGithubUsername"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["name","type","placeholder","value","class"],["wiki_username","text","Wiki Username",[22,["wiki_username"]],[26,"if",[[22,["isValidWikiUsername"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[10,"class","actions"],[8],[0,"\\n "],[1,[26,"input",null,[["type","disabled","value"],["submit",[26,"is-pending",[[22,["inProgress"]]],null],[26,"if",[[26,"is-pending",[[22,["inProgress"]]],null],"Processing","Save"],null]]]],false],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/components/add-contributor/template.hbs"}})}),define("kredits-web/components/add-proposal/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({attributes:{contributorId:null,kind:"community",amount:null,description:null,url:null},didInsertElement:function(){this._super.apply(this,arguments),this.reset()},contributors:[],isValidContributor:Ember.computed.notEmpty("contributorId"),isValidAmount:Ember.computed("amount",function(){return parseInt(this.amount,10)>0}),isValidDescription:Ember.computed.notEmpty("description"),isValidUrl:Ember.computed.notEmpty("url"),isValid:Ember.computed.and("isValidContributor","isValidAmount","isValidDescription"),reset:function(){this.setProperties(this.attributes)},actions:{submit:function(){var e=this
|
||||
if(this.isValid){var t=Object.keys(this.attributes),n=this.getProperties(t),r=this.save(n)
|
||||
this.set("inProgress",r),r.then(function(){e.reset(),window.scroll(0,0),window.alert("Proposal added.")})}else alert("Invalid data. Please review and try again.")}}})}),define("kredits-web/components/add-proposal/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"cM+dvRZ+",block:'{"symbols":["contributor"],"statements":[[6,"form"],[3,"action",[[21,0,[]],"submit"],[["on"],["submit"]]],[8],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[6,"select"],[10,"required",""],[11,"onchange",[26,"action",[[21,0,[]],[26,"mut",[[22,["contributorId"]]],null]],[["value"],["target.value"]]],null],[8],[0,"\\n "],[6,"option"],[10,"value",""],[10,"selected",""],[10,"disabled",""],[10,"hidden",""],[8],[0,"Contributor"],[9],[0,"\\n"],[4,"each",[[22,["contributors"]]],null,{"statements":[[0," "],[6,"option"],[11,"value",[21,1,["id"]],null],[11,"selected",[26,"eq",[[22,["contributorId"]],[21,1,["id"]]],null],null],[8],[1,[21,1,["github_username"]],false],[9],[0,"\\n"]],"parameters":[1]},null],[0," "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[6,"select"],[10,"required",""],[11,"onchange",[26,"action",[[21,0,[]],[26,"mut",[[22,["kind"]]],null]],[["value"],["target.value"]]],null],[8],[0,"\\n "],[6,"option"],[10,"value","community"],[11,"selected",[26,"eq",[[22,["kind"]],"community"],null],null],[8],[0,"Community"],[9],[0,"\\n "],[6,"option"],[10,"value","design"],[11,"selected",[26,"eq",[[22,["kind"]],"design"],null],null],[8],[0,"Design"],[9],[0,"\\n "],[6,"option"],[10,"value","dev"],[11,"selected",[26,"eq",[[22,["kind"]],"dev"],null],null],[8],[0,"Development"],[9],[0,"\\n "],[6,"option"],[10,"value","docs"],[11,"selected",[26,"eq",[[22,["kind"]],"docs"],null],null],[8],[0,"Documentation"],[9],[0,"\\n "],[6,"option"],[10,"value","ops"],[11,"selected",[26,"eq",[[22,["kind"]],"ops"],null],null],[8],[0,"IT Operations"],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["type","placeholder","value","class"],["text","100",[22,["amount"]],[26,"if",[[22,["isValidAmount"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["type","placeholder","value","class"],["text","Description",[22,["description"]],[26,"if",[[22,["isValidDescription"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[8],[0,"\\n "],[1,[26,"input",null,[["type","placeholder","value","class"],["text","URL (optional)",[22,["url"]],[26,"if",[[22,["isValidUrl"]],"valid",""],null]]]],false],[0,"\\n "],[9],[0,"\\n "],[6,"p"],[10,"class","actions"],[8],[0,"\\n "],[1,[26,"input",null,[["type","disabled","value"],["submit",[26,"is-pending",[[22,["inProgress"]]],null],[26,"if",[[26,"is-pending",[[22,["inProgress"]]],null],"Processing","Save"],null]]]],false],[0,"\\n "],[4,"link-to",["index"],null,{"statements":[[0,"Back"]],"parameters":[]},null],[0,"\\n "],[9],[0,"\\n"],[9],[0,"\\n\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/components/add-proposal/template.hbs"}})}),define("kredits-web/components/contributor-list/component",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({tagName:"table",classNames:"contributor-list",selectedContributor:null,actions:{toggleContributorInfo:function(e){e.get("showMetadata")?e.set("showMetadata",!1):(this.contributors.setEach("showMetadata",!1),e.set("showMetadata",!0))}}})}),define("kredits-web/components/contributor-list/template",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"1c6etkaE",block:'{"symbols":["contributor"],"statements":[[6,"tbody"],[8],[0,"\\n"],[4,"each",[[22,["contributors"]]],null,{"statements":[[0," "],[6,"tr"],[11,"class",[27,[[26,"if",[[21,1,["isCurrentUser"]],"current-user"],null]]]],[3,"action",[[21,0,[]],"toggleContributorInfo",[21,1,[]]]],[8],[0,"\\n "],[6,"td"],[10,"class","person"],[8],[0,"\\n "],[6,"img"],[10,"class","avatar"],[11,"src",[21,1,["avatarURL"]],null],[8],[9],[0,"\\n "],[1,[21,1,["name"]],false],[0,"\\n "],[9],[0,"\\n "],[6,"td"],[10,"class","kredits"],[8],[0,"\\n "],[6,"span"],[10,"class","amount"],[8],[1,[21,1,["balance"]],false],[9],[0,"\\n "],[6,"span"],[10,"class","symbol"],[8],[0,"₭S"],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[6,"tr"],[11,"class",[27,["metadata ",[26,"if",[[21,1,["isCurrentUser"]],"current-user"],null]," ",[26,"if",[[21,1,["showMetadata"]],"visible"],null]]]],[8],[0,"\\n "],[6,"td"],[10,"colspan","2"],[8],[0,"\\n "],[6,"ul"],[8],[0,"\\n "],[6,"li"],[8],[6,"a"],[11,"href",[27,["https://testnet.etherscan.io/address/",[21,1,["account"]]]]],[8],[0,"Inspect Ethereum transactions"],[9],[9],[0,"\\n"],[4,"if",[[21,1,["ipfsHash"]]],null,{"statements":[[0," "],[6,"li"],[8],[6,"a"],[11,"href",[27,["https://ipfs.io/ipfs/",[21,1,[Line truncated
|
||||
return this.kredits.addContributor(e).then(function(e){return t.contributors.pushObject(e),e})}}})}),define("kredits-web/controllers/proposals/new",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Controller.extend({kredits:Ember.inject.service(),contributors:Ember.computed.alias("kredits.contributors"),minedContributors:Ember.computed.filterBy("contributors","id"),actions:{save:function(e){var t=this,n=this.contributors.findBy("id",e.contributorId)
|
||||
return e.contributorIpfsHash=n.get("ipfsHash"),this.kredits.addProposal(e).then(function(e){return t.transitionToRoute("index"),e})}}})}),define("kredits-web/helpers/and",["exports","ember-truth-helpers/helpers/and"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"and",{enumerable:!0,get:function(){return t.and}})}),define("kredits-web/helpers/app-version",["exports","kredits-web/config/environment","ember-cli-app-version/utils/regexp"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.appVersion=o
|
||||
var r=t.default.APP.version
|
||||
function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}
|
||||
return t.hideSha?r.match(n.versionRegExp)[0]:t.hideVersion?r.match(n.shaRegExp)[0]:r}e.default=Ember.Helper.helper(o)}),define("kredits-web/helpers/await",["exports","ember-promise-helpers/helpers/await"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/helpers/eq",["exports","ember-truth-helpers/helpers/equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"equal",{enumerable:!0,get:function(){return t.equal}})}),define("kredits-web/helpers/gt",["exports","ember-truth-helpers/helpers/gt"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"gt",{enumerable:!0,get:function(){return t.gt}})}),define("kredits-web/helpers/gte",["exports","ember-truth-helpers/helpers/gte"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"gte",{enumerable:!0,get:function(){return t.gte}})}),define("kredits-web/helpers/is-array",["exports","ember-truth-helpers/helpers/is-array"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isArray",{enumerable:!0,get:function(){return t.isArray}})}),define("kredits-web/helpers/is-equal",["exports","ember-truth-helpers/helpers/is-equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isEqual",{enumerable:!0,get:function(){return t.isEqual}})}),define("kredits-web/helpers/is-fulfilled",["exports","ember-promise-helpers/helpers/is-fulfilled"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isFulfilled",{enumerable:!0,get:function(){return t.isFulfilled}})}),define("kredits-web/helpers/is-pending",["exports","ember-promise-helpers/helpers/is-pending"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isPending",{enumerable:!0,get:function(){return t.isPending}})}),define("kredits-web/helpers/is-rejected",["exports","ember-promise-helpers/helpers/is-rejected"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isRejected",{enumerable:!0,get:function(){return t.isRejected}})}),define("kredits-web/helpers/lt",["exports","ember-truth-helpers/helpers/lt"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"lt",{enumerable:!0,get:function(){return t.lt}})}),define("kredits-web/helpers/lte",["exports","ember-truth-helpers/helpers/lte"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"lte",{enumerable:!0,get:function(){return t.lte}})}),define("kredits-web/helpers/not-eq",["exports","ember-truth-helpers/helpers/not-equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"notEq",{enumerable:!0,get:function(){return t.notEq}})}),define("kredits-web/helpers/not",["exports","ember-truth-helpers/helpers/not"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"not",{enumerable:!0,get:function(){return t.not}})}),define("kredits-web/helpers/or",["exports","ember-truth-helpers/helpers/or"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"or",{enumerable:!0,get:function(){return t.or}})})
|
||||
define("kredits-web/helpers/promise-all",["exports","ember-promise-helpers/helpers/promise-all"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"promiseAll",{enumerable:!0,get:function(){return t.promiseAll}})}),define("kredits-web/helpers/promise-hash",["exports","ember-promise-helpers/helpers/promise-hash"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"promiseHash",{enumerable:!0,get:function(){return t.promiseHash}})}),define("kredits-web/helpers/promise-rejected-reason",["exports","ember-promise-helpers/helpers/promise-rejected-reason"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/helpers/xor",["exports","ember-truth-helpers/helpers/xor"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"xor",{enumerable:!0,get:function(){return t.xor}})}),define("kredits-web/initializers/app-version",["exports","ember-cli-app-version/initializer-factory","kredits-web/config/environment"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0})
|
||||
var r=void 0,o=void 0
|
||||
n.default.APP&&(r=n.default.APP.name,o=n.default.APP.version),e.default={name:"App Version",initialize:(0,t.default)(r,o)}}),define("kredits-web/initializers/container-debug-adapter",["exports","ember-resolver/resolvers/classic/container-debug-adapter"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"container-debug-adapter",initialize:function(){var e=arguments[1]||arguments[0]
|
||||
e.register("container-debug-adapter:main",t.default),e.inject("container-debug-adapter:main","namespace","application:main")}}}),define("kredits-web/initializers/export-application-global",["exports","kredits-web/config/environment"],function(e,t){function n(){var e=arguments[1]||arguments[0]
|
||||
if(!1!==t.default.exportApplicationGlobal){var n
|
||||
if("undefined"!=typeof window)n=window
|
||||
else if("undefined"!=typeof global)n=global
|
||||
else{if("undefined"==typeof self)return
|
||||
n=self}var r,o=t.default.exportApplicationGlobal
|
||||
r="string"==typeof o?o:Ember.String.classify(t.default.modulePrefix),n[r]||(n[r]=e,e.reopen({willDestroy:function(){this._super.apply(this,arguments),delete n[r]}}))}}Object.defineProperty(e,"__esModule",{value:!0}),e.initialize=n,e.default={name:"export-application-global",initialize:n}}),define("kredits-web/models/contributor",["exports","kredits-web/utils/cps/bignumber"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Object.extend({id:(0,t.default)("idRaw","toString"),account:null,balance:(0,t.default)("balanceRaw","toNumber"),isCore:!1,ipfsHash:null,kind:null,name:null,url:null,github_username:null,github_uid:null,wiki_username:null,ipfsData:"",isCurrentUser:!1,avatarURL:Ember.computed("github_uid",function(){var e=this.github_uid
|
||||
if(e)return"https://avatars2.githubusercontent.com/u/"+e+"?v=3&s=128"})})}),define("kredits-web/models/proposal",["exports","kredits-web/utils/cps/bignumber"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Object.extend({id:(0,t.default)("idRaw","toString"),creatorAccount:null,contributorId:(0,t.default)("contributorIdRaw","toString"),amount:(0,t.default)("amountRaw","toNumber"),votesCount:(0,t.default)("votesCountRaw","toNumber"),votesNeeded:(0,t.default)("votesNeededRaw","toNumber"),executed:null,ipfsHash:null,isExecuted:Ember.computed.alias("executed"),kind:null,description:null,details:{},url:null,ipfsData:""})}),define("kredits-web/resolver",["exports","ember-resolver"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=t.default}),define("kredits-web/router",["exports","kredits-web/config/environment"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0})
|
||||
var n=Ember.Router.extend({location:t.default.locationType,rootURL:t.default.rootURL})
|
||||
n.map(function(){this.route("proposals",function(){this.route("new")})}),e.default=n}),define("kredits-web/routes/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Route.extend({kredits:Ember.inject.service(),beforeModel:function(e){var t=this.kredits
|
||||
return t.setup().then(function(){t.get("accountNeedsUnlock")&&confirm("It looks like you have an Ethereum wallet available. Please unlock your account.")&&e.retry()}).catch(function(e){console.log("Error initializing Kredits",e)})},afterModel:function(){var e=this
|
||||
return this.kredits.loadContributorsAndProposals().then(function(){e.kredits.addContractEventHandlers()})}})}),define("kredits-web/services/ajax",["exports","ember-ajax/services/ajax"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/services/kredits",["exports","npm:ethers","npm:kredits-contracts","kredits-web/config/environment","kredits-web/models/contributor","kredits-web/models/proposal"],function(e,t,n,r,o,s){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Service.extend({currentUserAccounts:null,currentUser:null,currentUserIsContributor:Ember.computed.notEmpty("currentUser"),currentUserIsCore:Ember.computed.alias("currentUser.isCore"),hasAccounts:Ember.computed.notEmpty("currentUserAccounts"),accountNeedsUnlock:Ember.computed("currentUserAccounts",function(){return this.currentUserAccounts&&Ember.isEmpty(this.currentUserAccounts)}),getEthProvider:function(){var e=this
|
||||
return new Ember.RSVP.Promise(function(n){var o=void 0,s=void 0
|
||||
void 0!==window.web3?(console.debug("[kredits] Using user-provided instance, e.g. from Mist browser or Metamask"),s=parseInt(window.web3.version.network),(o=new t.default.providers.Web3Provider(window.web3.currentProvider,{chainId:s})).listAccounts().then(function(t){e.set("currentUserAccounts",t)
|
||||
var r=0===t.length?null:o.getSigner()
|
||||
n({ethProvider:o,ethSigner:r})})):(console.debug("[kredits] Creating new instance from npm module class"),s=parseInt(r.default.contractMetadata.networkId),console.debug("[kredits] networkId="+s+" providerURL: "+r.default.web3ProviderUrl),o=new t.default.providers.JsonRpcProvider(r.default.web3ProviderUrl,{chainId:s}),n({ethProvider:o,ethSigner:null}))})},setup:function(){var e=this
|
||||
return this.getEthProvider().then(function(t){return new n.default(t.ethProvider,t.ethSigner,{ipfsConfig:r.default.ipfs}).init().then(function(t){return e.set("kredits",t),e.currentUserAccounts&&e.currentUserAccounts.length>0&&e.getCurrentUser.then(function(t){e.set("currentUser",t)}),t})})},totalSupply:Ember.computed(function(){return this.kredits.Token.functions.totalSupply()}),contributors:[],proposals:[],loadContributorsAndProposals:function(){var e=this
|
||||
return this.getContributors().then(function(t){return e.contributors.pushObjects(t)}).then(function(){return e.getProposals()}).then(function(t){return e.proposals.pushObjects(t)})},addContributor:function(e){return console.debug("[kredits] add contributor",e),this.kredits.Contributor.add(e).then(function(t){return console.debug("[kredits] add contributor response",t),o.default.create(e)})},getContributors:function(){return this.kredits.Contributor.all().then(function(e){return e.map(function(e){return o.default.create(e)})})},addProposal:function(e){var t=this
|
||||
return console.debug("[kredits] add proposal",e),this.kredits.Operator.addProposal(e).then(function(n){return console.debug("[kredits] add proposal response",n),e.contributor=t.contributors.findBy("id",e.contributorId),s.default.create(e)})},getProposals:function(){var e=this
|
||||
return this.kredits.Operator.all().then(function(t){return t.map(function(t){return t.contributor=e.contributors.findBy("id",t.contributorId.toString()),s.default.create(t)})})},vote:function(e){return console.debug("[kredits] vote for",e),this.kredits.Operator.functions.vote(e).then(function(e){return console.debug("[kredits] vote response",e),e})},getCurrentUser:Ember.computed("kredits.provider",function(){var e=this
|
||||
return Ember.isEmpty(this.currentUserAccounts)?Ember.RSVP.resolve():this.kredits.Contributor.functions.getContributorIdByAddress(this.get("currentUserAccounts.firstObject")).then(function(t){return 0===(t=t.toNumber())?Ember.RSVP.resolve():e.kredits.Contributor.getById(t)})}),findProposalById:function(e){return this.proposals.findBy("id",e.toString())},addContractEventHandlers:function(){this.kredits.Operator.on("ProposalCreated",this.handleProposalCreated.bind(this)).on("ProposalVoted",this.handleProposalVoted.bind(this)).on("ProposalExecuted",this.handleProposalExecuted.bind(this)),this.kredits.Token.on("Transfer",this.handleTransfer.bind(this))},handleProposalCreated:function(e){var t=this
|
||||
this.findProposalById(e)?console.debug("[events] proposal exists, not adding from event"):this.kredits.Operator.getById(e).then(function(e){e.contributor=t.contributors.findBy("id",e.contributorId.toString()),t.proposals.pushObject(s.default.create(e))})},handleProposalVoted:function(e,t,n){var r=this.findProposalById(e)
|
||||
r&&r.set("votesCount",n)},handleProposalExecuted:function(e,t,n){var r=this.findProposalById(e)
|
||||
r.get("isExecuted")?console.debug("[events] proposal already executed, not adding from event"):(r.set("executed",!0),this.contributors.findBy("id",t.toString()).incrementProperty("balance",n.toNumber()))},handleTransfer:function(e,t,n){n=n.toNumber(),this.contributors.findBy("address",e).decrementProperty("balance",n),this.contributors.findBy("address",t).incrementProperty("balance",n)}})}),define("kredits-web/templates/application-loading",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"CLjY4Liw",block:'{"symbols":[],"statements":[[1,[20,"loading-spinner"],false],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/application-loading.hbs"}})}),define("kredits-web/templates/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"vrOJgdM9",block:'{"symbols":[],"statements":[[6,"header"],[10,"id","topbar"],[8],[0,"\\n "],[6,"h1"],[8],[0,"Kosmos Kredits"],[9],[0,"\\n\\n "],[6,"section"],[10,"id","user-account"],[8],[0,"\\n"],[4,"if",[[22,["kredits","hasAccounts"]]],null,{"statements":[[4,"if",[[22,["kredits","currentUser"]]],null,{"statements":[[0," "],[1,[22,["kredits","currentUser","name"]],false],[0,"\\n "],[4,"if",[[22,["kredits","currentUserIsCore"]]],null,{"statements":[[0,"(core)"]],"parameters":[]},null],[0,"\\n"]],"parameters":[]},null]],"parameters":[]},{"statements":[[0," Anonymous\\n"]],"parameters":[]}],[0," "],[9],[0,"\\n"],[9],[0,"\\n\\n"],[1,[20,"outlet"],false],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/application.hbs"}})}),define("kredits-web/templates/index",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"aExP47oA",block:'{"symbols":[],"statements":[[6,"main"],[10,"id","index"],[8],[0,"\\n\\n "],[6,"section"],[10,"id","people"],[8],[0,"\\n "],[6,"header"],[8],[0,"\\n "],[6,"h2"],[8],[0,"Contributors"],[9],[0,"\\n "],[9],[0,"\\n "],[6,"div"],[10,"class","content"],[8],[0,"\\n "],[1,[26,"contributor-list",null,[["contributors"],[[22,["contributorsSorted"]]]]],false],[0,"\\n\\n "],[6,"p"],[10,"class","stats"],[8],[0,"\\n "],[6,"span"],[10,"class","number"],[8],[1,[26,"await",[[22,["kredits","totalSupply"]]],null],false],[9],[0," kredits issued and distributed among\\n "],[6,"span"],[10,"class","number"],[8],[1,[22,["contributorsWithKredits","length"]],false],[9],[0," contributors.\\n "],[9],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n\\n "],[6,"div"],[10,"id","contributions"],[8],[0,"\\n"],[4,"if",[[22,["proposalsOpen"]]],null,{"statements":[[0," "],[6,"section"],[10,"id","proposals-open"],[8],[0,"\\n "],[6,"header"],[8],[0,"\\n "],[6,"h2"],[8],[0,"Unconfirmed Contributions"],[9],[0,"\\n "],[9],[0,"\\n "],[6,"div"],[10,"class","content"],[8],[0,"\\n"],[0," "],[1,[26,"proposal-list",null,[["proposals","confirmProposal","contractInteractionEnabled"],[[22,["proposalsOpenSorted"]],[26,"action",[[21,0,[]],"confirmProposal"],null],[22,["kredits","hasAccounts"]]]]],false],[0,"\\n "],[9],[0,"\\n "],[9],[0,"\\n"]],"parameters":[]},null],[0,"\\n "],[6,"section"],[10,"id","proposals-closed"],[8],[0,"\\n "],[6,"header"],[8],[0,"\\n "],[6,"h2"],[8],[0,"Confirmed Contributions"],[9],[0,"\\n "],[9],[0,"\\n "],[6,"div"],[10,"class","content"],[8],[0,"\\n "],[1,[26,"proposal-list",null,[["proposals","confirmProposal"],[[22,["proposalsClosedSorted"]],[26,"action",[[21,0,[]],"confirmProposal"],null]]]],false],[0,"\\n "],[9],[0,"\\n\\n"],[4,"if",[[22,["kredits","hasAccounts"]]],null,{"statements":[[0," "],[6,"p"],[10,"class","actions"],[8],[0,"\\n "],[4,"link-to",["proposals.new"],null,{"statements":[[0,"Create new proposal"]],"parameters":[]},null],[0,"\\n "],[9],[0,"\\n"]],"parameters":[]},null],[0," "],[9],[0,"\\n "],[9],[0,"\\n\\n"],[4,"if",[[22,["kredits","hasAccounts"]]],null,{"statements":[[0," "],[6,"section"],[10,"id","add-contributor"],[8],[0,"\\n "],[6,"header"],[8],[0,"\\n "],[6,"h2"],[8],[0,"Add Contributor"],[9],[0,"\\n "],[9],[0,"\\n\\n "],[6,"div"],[10,"class","content"],[8],[0,"\\n"],[4,"if",[[22,["kredits","currentUser","isCore"]]],null,{"statements":[[0," "],[1,[26,"add-contributor",null,[["contributors","save"],[[22,["contributors"]],[26,"action",[[21,0,[]],"save"],null]]]],false],[0,"\\n"]],"parameters":[]},{"statements":[[0," Only core team members can add new contributors. Please ask someone to set you up.\\n"]],"parameters":[]}],[0," "],[9],[0,"\\n "],[9],[0,"\\n"]],"parameters":[]},null],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"kredits-web/templates/index.hbs"}})}),define("kredits-web/templates/proposals/new",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBLine truncated
|
||||
return r&&t.default.utils.isBigNumber(r)?r[n]():r},set:function(r,o){return o=t.default.utils.bigNumberify(o),this.set(e,o),o[n]()}})}}),define("kredits-web/config/environment",[],function(){try{var e="kredits-web/config/environment",t=document.querySelector('meta[name="'+e+'"]').getAttribute("content"),n={default:JSON.parse(unescape(t))}
|
||||
return Object.defineProperty(n,"__esModule",{value:!0}),n}catch(t){throw new Error('Could not read config from meta tag with name "'+e+'".')}}),runningTests||require("kredits-web/app").default.create({name:"kredits-web",version:"1.0.0+c074ccf4"})
|
||||
|
||||
//# sourceMappingURL=kredits-web-e128ef0dcc297bf39edccd05bee72282.map
|
||||
@@ -0,0 +1 @@
|
||||
"use strict";define("kredits-web/app",["exports","ember","kredits-web/resolver","ember-load-initializers","kredits-web/config/environment"],function(e,t,n,o,s){var r=void 0;t.default.MODEL_FACTORY_INJECTIONS=!0,r=t.default.Application.extend({modulePrefix:s.default.modulePrefix,podModulePrefix:s.default.podModulePrefix,Resolver:n.default}),(0,o.default)(r,s.default.modulePrefix),e.default=r}),define("kredits-web/components/add-contributor/component",["exports","ember"],function(e,t){e.default=t.default.Component.extend({id:null,realName:null,address:null,classId:function(){var e=this.get("id");return t.default.isEmpty(e)?null:"valid"}.property("id"),classRealName:function(){var e=this.get("realName");return t.default.isEmpty(e)?null:"valid"}.property("realName"),classAddress:function(){var e=this.get("address");return t.default.isEmpty(e)?null:"valid"}.property("address"),actions:{save:function(){console.log("id",this.get("id")),console.log("realName",this.get("realName")),console.log("address",this.get("address"))}}})}),define("kredits-web/components/add-contributor/template",["exports"],function(e){e.default=Ember.HTMLBars.template({id:"cnYN+xuu",block:'{"statements":[["open-element","form",[]],["modifier",["action"],[["get",[null]],"save"],[["on"],["submit"]]],["flush-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["id","text","GitHub UID (123)",["get",["id"]],["get",["classId"]]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["realname","text","Carl Sagan",["get",["realName"]],["get",["classRealName"]]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["address","text","0xF18E631Ea191aE4ebE70046Fcb01a436554421BA4",["get",["address"]],["get",["classAddress"]]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["static-attr","class","actions"],["flush-element"],["text","\\n "],["open-element","input",[]],["static-attr","type","submit"],["static-attr","value","Save"],["flush-element"],["close-element"],["text","\\n "],["close-element"],["text","\\n"],["close-element"],["text","\\n"]],"locals":[],"named":[],"yields":[],"blocks":[],"hasPartials":false}',meta:{moduleName:"kredits-web/components/add-contributor/template.hbs"}})}),define("kredits-web/components/contributor-list/component",["exports","ember"],function(e,t){e.default=t.default.Component.extend({tagName:"table",classNames:"contributor-list"})}),define("kredits-web/components/contributor-list/template",["exports"],function(e){e.default=Ember.HTMLBars.template({id:"3EKzDpyc",block:'{"statements":[["open-element","tbody",[]],["flush-element"],["text","\\n"],["block",["each"],[["get",["contributors"]]],null,0],["close-element"],["text","\\n"]],"locals":[],"named":[],"yields":[],"blocks":[{"statements":[["text"," "],["open-element","tr",[]],["flush-element"],["text","\\n "],["open-element","td",[]],["static-attr","class","person"],["flush-element"],["text","\\n "],["open-element","img",[]],["static-attr","class","avatar"],["dynamic-attr","src",["unknown",["contributor","avatarURL"]],null],["flush-element"],["close-element"],["text","\\n "],["append",["unknown",["contributor","github_username"]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","td",[]],["static-attr","class","kredits"],["flush-element"],["text","\\n "],["open-element","span",[]],["static-attr","class","amount"],["flush-element"],["append",["unknown",["contributor","kredits"]],false],["close-element"],["text","\\n "],["open-element","span",[]],["static-attr","class","symbol"],["flush-element"],["text","₭S"],["close-element"],["text","\\n "],["close-element"],["text","\\n "],["close-element"],["text","\\n"]],"locals":["contributor"]}],"hasPartials":false}',meta:{moduleName:"kredits-web/components/contributor-list/template.hbs"}})}),define("kredits-web/components/loading-spinner/component",["exports","ember"],function(e,t){e.default=t.default.Component.extend({classNames:["loading-spinner"]})}),define("kredits-web/components/loading-spinner/template",["exports"],function(e){e.default=Ember.HTMLBars.template({id:"+vFITFyc",block:'{"statements":[["open-element","p",[]],["flush-element"],["text","\\n "],["open-element","svg",[]],["static-attr","xmlns","http://www.w3.org/2000/svg","http://www.w3.org/2000/xmlns/"],["static-attr","xmlns:xlink","http://www.w3.org/1999/xlink","http://www.w3.org/2000/xmlns/"],["static-attr","version","1.1"],["static-attr","x","0px"],["static-attr","y","0px"],["static-attr","viewBox","0 0 132 100"],["static-attr","enablLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"sources":["vendor/ember-cli/app-prefix.js","kredits-web/app.js","kredits-web/components/add-contributor/component.js","kredits-web/components/add-contributor/template.js","kredits-web/components/add-proposal/component.js","kredits-web/components/add-proposal/template.js","kredits-web/components/contributor-list/component.js","kredits-web/components/contributor-list/template.js","kredits-web/components/loading-spinner/component.js","kredits-web/components/loading-spinner/template.js","kredits-web/components/proposal-list/component.js","kredits-web/components/proposal-list/template.js","kredits-web/controllers/application.js","kredits-web/controllers/index.js","kredits-web/controllers/proposals/new.js","kredits-web/helpers/and.js","kredits-web/helpers/app-version.js","kredits-web/helpers/await.js","kredits-web/helpers/eq.js","kredits-web/helpers/gt.js","kredits-web/helpers/gte.js","kredits-web/helpers/is-array.js","kredits-web/helpers/is-equal.js","kredits-web/helpers/is-fulfilled.js","kredits-web/helpers/is-pending.js","kredits-web/helpers/is-rejected.js","kredits-web/helpers/lt.js","kredits-web/helpers/lte.js","kredits-web/helpers/not-eq.js","kredits-web/helpers/not.js","kredits-web/helpers/or.js","kredits-web/helpers/promise-all.js","kredits-web/helpers/promise-hash.js","kredits-web/helpers/promise-rejected-reason.js","kredits-web/helpers/xor.js","kredits-web/initializers/app-version.js","kredits-web/initializers/container-debug-adapter.js","kredits-web/initializers/export-application-global.js","kredits-web/models/contributor.js","kredits-web/models/proposal.js","kredits-web/resolver.js","kredits-web/router.js","kredits-web/routes/application.js","kredits-web/routes/spinner.js","kredits-web/services/ajax.js","kredits-web/services/kredits.js","kredits-web/templates/application.js","kredits-web/templates/index.js","kredits-web/templates/loading.js","kredits-web/templates/proposals/new.js","kredits-web/templates/spinner.js","kredits-web/utils/cps/bignumber.js","vendor/ember-cli/app-config.js","vendor/ember-cli/app-boot.js"],"names":["define","exports","_resolver","_emberLoadInitializers","_environment","Object","defineProperty","value","App","Ember","Application","extend","modulePrefix","default","podModulePrefix","Resolver","Component","kredits","inject","service","attributes","account","name","kind","url","github_username","github_uid","wiki_username","isCore","didInsertElement","this","_super","apply","arguments","reset","isValidAccount","computed","notEmpty","isValidName","isValidURL","isValidGithubUID","isValidGithubUsername","isValidWikiUsername","isValid","and","setProperties","actions","submit","_this","keys","contributor","getProperties","saved","save","set","then","window","scroll","alert","HTMLBars","template","id","block","meta","moduleName","contributorId","amount","description","contributors","isValidContributor","isValidAmount","parseInt","isValidDescription","isValidUrl","proposal","tagName","classNames","selectedContributor","toggleContributorInfo","get","setEach","confirm","proposalId","contractInteractionEnabled","confirmProposal","Controller","alias","contributorsWithKredits","filter","contributorsSorting","contributorsSorted","sort","proposals","proposalsOpen","filterBy","proposalsClosed","proposalsSorting","proposalsClosedSorted","proposalsOpenSorted","vote","transaction","hash","addContributor","pushObject","minedContributors","findBy","contributorIpfsHash","addProposal","transitionToRoute","_and","enumerable","_regexp","appVersion","version","APP","_","length","undefined","hideSha","match","versionRegExp","hideVersion","shaRegExp","Helper","helper","_await","_equal","equal","_gt","gt","_gte","gte","_isArray","isArray","_isEqual","isEqual","_isFulfilled","isFulfilled","_isPending","isPending","_isRejected","isRejected","_lt","lt","_lte","lte","_notEqual","notEq","_not","not","_or","or","_promiseAll","promiseAll","_promiseHash","promiseHash","_promiseRejectedReason","_xor","xor","_initializerFactory","initialize","_containerDebugAdapter","app","register","application","exportApplicationGlobal","theGlobal","global","self","globalName","String","classify","reopen","willDestroy","_bignumber","balance","ipfsHash","ipfsData","isCurrentUser","avatarURL","creatorAccount","votesCount","votesNeeded","executed","isExecuted","details","_emberResolver","Router","location","locationType","rootURL","map","route","Route","beforeModel","transition","setup","retry","catch","error","console","log","afterModel","loadContributorsAndProposals","addContractEventHandlers","_ajax","_npmEthers","_npmKreditsContracts","_contributor","_proposal","Service","currentUserAccounts","currentUser","currentUserIsContributor","currentUserIsCore","hasAccounts","accountNeedsUnlock","isEmpty","getEthProvider","RSVP","Promise","resolve","ethProvider","networkId","web3","debug","network","providers","Web3Provider","currentProvider","chainId","listAccounts","accounts","contractMetadata","JsonRpcProvider","web3ProLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
@charset "UTF-8";body,button,h1,h2,h3,h4,h5,input{font-family:"Open Sans",sans-serif;font-weight:300}#topbar h1,button,input[type=submit]{text-transform:uppercase;display:inline-block}*{margin:0;padding:0;box-sizing:border-box;font-size:14px}:active,:focus,:hover{outline:0;-webkit-tap-highlight-color:rgba(255,255,255,0);-webkit-tap-highlight-color:transparent}main{padding:1rem}main#index{width:100%;display:grid;grid-row-gap:2rem;grid-template-areas:"stats" "contributions"}main section{margin-bottom:5rem}main section:first-of-type{margin-top:2rem}main section header{padding-bottom:3rem;text-align:center}@media (max-width:600px){main section{margin-bottom:5rem}main section header{padding-bottom:2rem}}body{background-image:linear-gradient(to bottom,rgba(22,21,40,.4),rgba(0,0,0,.75)),url(/img/bg-947d3bf6bb15a1a3b07afcba4c307690.jpg);background-repeat:none;background-attachment:fixed;color:#fff}@media screen and (min-width:900px){body{background-size:cover}}button,h1,h2,h3,h4,h5,input{font-size:1rem}section h2{font-size:1.4rem;color:#68d7fb}section#people .content p.stats{margin-bottom:1rem;font-size:1rem;color:#fff;text-align:center}section#people .content p.stats span.number{font-weight:600}button,input[type=submit],ul.contribution-list li .amount,ul.contribution-list li .recipient,ul.proposal-list li .amount,ul.proposal-list li .recipient,ul.proposal-list li .symbol{font-weight:500}section#contributions-by-type .chart{width:50%;margin-left:auto;margin-right:auto}section#proposals-closed .actions,section#proposals-open .actions{padding-top:3rem;font-size:1rem;color:#68d7fb;text-align:center}@media (max-width:600px){section#contributions-by-type .chart{width:75%}section#proposals-closed .actions,section#proposals-open .actions{padding-top:2rem}}section#proposals-closed .actions a,section#proposals-open .actions a{color:#68d7fb}@media (min-width:550px){main#index{grid-column-gap:4rem;grid-row-gap:2rem;grid-template-columns:2fr 4fr;grid-template-areas:"stats contributions"}section h2{font-size:2rem}}button,input[type=submit]{padding:.6rem 2rem;background-color:rgba(22,21,40,.6);border:1px solid #161528;border-radius:3px;color:#68d7fb;cursor:pointer;letter-spacing:.1em}button:hover,input[type=submit]:hover{background-color:rgba(22,21,40,.8)}button.small,input[type=submit].small{font-size:.8rem;padding:.2rem .8rem}.loading-spinner,table.contributor-list tr td.kredits .amount{font-size:1.4rem}button.danger,input[type=submit].danger{color:#fb6868;background-color:rgba(40,21,21,.6)}button.danger:hover,input[type=submit].danger:hover{background-color:rgba(40,21,21,.8)}#topbar{height:3rem;padding:0 1rem;line-height:3rem;background-color:rgba(0,0,0,.3)}#topbar section#user-account{display:inline-block;float:right}@keyframes pulse{from{opacity:.1}to{opacity:.6}}.loading-spinner{margin-top:12rem;text-align:center;color:#68d7fb}@media (max-width:600px){.loading-spinner{margin-top:6rem}main section#contributions-confirmed,main section#contributions-unconfirmed{margin-top:0}}.loading-spinner svg{width:200px;height:200px;margin-bottom:2rem}.loading-spinner svg #path-comet{fill:#68d7fb;opacity:.1;animation-name:pulse;animation-iteration-count:infinite;animation-timing-function:ease-in-out;animation-direction:alternate;animation-duration:1s}table.contributor-list{width:100%;border-collapse:collapse;margin-bottom:1.5rem}table.contributor-list tr{border-bottom:1px solid rgba(255,255,255,.2);background-color:rgba(255,255,255,.1)}table.contributor-list tr:first-of-type{border-top:1px solid rgba(255,255,255,.2)}table.contributor-list tr.current-user{background-color:rgba(255,255,255,.2)}table.contributor-list tr.metadata{height:0;transition:all .2s ease-out}table.contributor-list tr.metadata td{padding:0 1.2rem}table.contributor-list tr.metadata a{color:#68d7fb}table.contributor-list tr.metadata a:active,table.contributor-list tr.metadata a:hover{color:#fff}table.contributor-list tr.metadata ul{list-style:none;display:block;overflow:hidden;height:0;transition:all .2s ease-out}table.contributor-list tr.metadata ul li{display:inline}table.contributor-list tr.metadata ul li+li{margin-left:1rem}table.contributor-list tr.metadata.visible,table.contributor-list tr.metadata.visible ul{height:auto}table.contributor-list tr td{padding:0 1.2rem;line-height:4.2rem}table.contributor-list tr td.person{text-align:left;font-size:1.4rem}table.contributor-list tr td.person img.avatar{margin-right:.2rem}table.contributor-list tr td.kredits{text-align:right}table.contributor-list tr td.kredits .symbol{font-size:1rem;padding-left:.2rem}table.contributor-list tr td pre{line-height:1rem;padding-bottom:1rem}section#add-contributor form p,section#add-proposal form p{margin-bottom:1rem}section#add-contributor form p.actions,section#add-proposal form p.actions{padding-top:1rem;text-align:center}section#add-contributor form p.actions a,section#add-proposal form p.actions a{color:#68d7fb;margin-left:1rem}section#add-contributor form input[type=text],section#adLine truncated
|
||||
@@ -0,0 +1,2 @@
|
||||
"use strict";define("kredits-web/app",["exports","ember","kredits-web/resolver","ember-load-initializers","kredits-web/config/environment"],function(e,t,n,r,l){var s=void 0;t.default.MODEL_FACTORY_INJECTIONS=!0,s=t.default.Application.extend({modulePrefix:l.default.modulePrefix,podModulePrefix:l.default.podModulePrefix,Resolver:n.default}),(0,r.default)(s,l.default.modulePrefix),e.default=s}),define("kredits-web/components/add-contributor/component",["exports","ember"],function(e,t){e.default=t.default.Component.extend({id:null,realName:null,address:null,ipfsHash:null,isCore:!1,inProgress:!1,isValidId:function(){return t.default.isPresent(this.get("id"))}.property("id"),isValidRealName:function(){return t.default.isPresent(this.get("realName"))}.property("realName"),isValidAddress:function(){return this.get("kredits.web3Instance").isAddress(this.get("address"))}.property("address"),isValid:function(){return this.get("isValidId")&&this.get("isValidRealName")&&this.get("isValidAddress")}.property("isValidAddress","isValidId","isValidRealName"),reset:function(){this.setProperties({id:null,realName:null,address:null,ipfsHash:null,isCore:!0,inProgress:!1})},actions:{save:function(){var e=this;return this.get("contractInteractionEnabled")?void(this.get("isValid")?(this.set("inProgress",!0),this.get("kredits").addContributor(this.get("address"),this.get("realName"),this.get("isCore"),this.get("id")).then(function(t){e.reset(),e.get("contributors").pushObject(t),window.scroll(0,0)})):alert("Invalid data. Please review and try again.")):void alert("Only core team members can add new contributors. Please ask someone to set you up.")}}})}),define("kredits-web/components/add-contributor/template",["exports"],function(e){e.default=Ember.HTMLBars.template({id:"/x85W8NK",block:'{"statements":[["open-element","form",[]],["modifier",["action"],[["get",[null]],"save"],[["on"],["submit"]]],["flush-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["type","name","id","checked"],["checkbox","is-core","is-core",["get",["isCore"]]]]],false],["text","\\n "],["open-element","label",[]],["static-attr","for","is-core"],["static-attr","class","checkbox"],["flush-element"],["text","\\n Core team member (can add contributors)\\n "],["close-element"],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["id","text","GitHub UID (123)",["get",["id"]],["helper",["if"],[["get",["isValidId"]],"valid",""],null]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["realname","text","GitHub username",["get",["realName"]],["helper",["if"],[["get",["isValidRealName"]],"valid",""],null]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["address","text","0xF18E631Ea191aE4ebE70046Fcb01a436554421BA4",["get",["address"]],["helper",["if"],[["get",["isValidAddress"]],"valid",""],null]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["static-attr","class","actions"],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["type","value","disabled"],["submit",["helper",["if"],[["get",["inProgress"]],"Processing","Save"],null],["get",["inProgress"]]]]],false],["text","\\n "],["close-element"],["text","\\n"],["close-element"],["text","\\n"]],"locals":[],"named":[],"yields":[],"blocks":[],"hasPartials":false}',meta:{moduleName:"kredits-web/components/add-contributor/template.hbs"}})}),define("kredits-web/components/add-proposal/component",["exports","ember"],function(e,t){var n=t.default.Component,r=t.default.inject.service,l=t.default.computed;e.default=n.extend({kredits:r(),proposal:null,inProgress:!1,isValidRecipient:l("proposal.recipientAddress",function(){return this.get("kredits.web3Instance").isAddress(this.get("proposal.recipientAddress"))}),isValidAmount:l("proposal.amount",function(){return!0}),isValidUrl:l("proposal.url",function(){return!0}),isValidIpfsHash:l("proposal.ipfsHash",function(){return!0}),isValid:l.and("isValidRecipient","isValidAmount","isValidUrl","isValidIpfsHash"),actions:{save:function(){var e=this;this.get("isValid")?(this.set("inProgress",!0),this.get("kredits").addProposal(this.get("proposal")).then(function(){e.attrs.onSave()}).catch(function(e){t.default.Logger.error("Error creating the proposal",e),alert("Something went wrong.")}).finally(function(){e.set("inProgress",!1)})):alert("Invalid data. Please review and try again.")}}})}),define("kredits-web/components/add-proposal/template",["exports"],function(e){e.default=Ember.HTMLBars.template({Line truncated
|
||||
var a=l.default.create({address:e,github_username:n,github_uid:s,kredits:0,isCore:r,isCurrentUser:this.get("currentUserAccounts").includes(e)});return new t.default.RSVP.Promise(function(l,i){o.get("ipfs").storeFile(a.serialize()).then(function(d){a.set("ipfsHash",d),t.default.Logger.debug("ADD",e,n,d,r,s),o.get("kreditsContract").addContributor(e,n,d,r,s,function(e,n){return e?void i(e):(t.default.Logger.debug("[kredits] add contributor response",n),void l(a))})})})},addProposal:function(e){var n=this;return new t.default.RSVP.Promise(function(r,l){var s=e.getProperties("recipientAddress","amount","url","ipfsHash"),o=s.recipientAddress,a=s.amount,i=s.url,d=s.ipfsHash;n.get("kreditsContract").addProposal(o,a,i,d,function(e,n){return e?void l(e):(t.default.Logger.debug("[kredits] add proposal response",n),void r())})})},logKreditsContract:function(){t.default.Logger.debug("[kredits] kreditsContract",this.get("kreditsContract"))}.on("init")})}),define("kredits-web/services/qp",["exports","ember-parachute/services/qp"],function(e,t){Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("kredits-web/templates/application",["exports"],function(e){e.default=Ember.HTMLBars.template({id:"bs9LAwOM",block:'{"statements":[["open-element","main",[]],["flush-element"],["text","\\n "],["append",["unknown",["outlet"]],false],["text","\\n"],["close-element"],["text","\\n"]],"locals":[],"named":[],"yields":[],"blocks":[],"hasPartials":false}',meta:{moduleName:"kredits-web/templates/application.hbs"}})}),define("kredits-web/templates/index",["exports"],function(e){e.default=Ember.HTMLBars.template({id:"wvDNcFuV",block:'{"statements":[["open-element","section",[]],["static-attr","id","contributors"],["flush-element"],["text","\\n "],["open-element","header",[]],["flush-element"],["text","\\n "],["open-element","h2",[]],["flush-element"],["text","Kosmos Contributors"],["close-element"],["text","\\n "],["close-element"],["text","\\n\\n "],["open-element","div",[]],["static-attr","class","content"],["flush-element"],["text","\\n "],["append",["helper",["contributor-list"],null,[["contributors"],[["get",["contributorsSorted"]]]]],false],["text","\\n\\n "],["open-element","p",[]],["static-attr","class","stats"],["flush-element"],["text","\\n "],["open-element","span",[]],["static-attr","class","number"],["flush-element"],["append",["unknown",["model","totalSupply"]],false],["close-element"],["text"," kredits issued and distributed among\\n "],["open-element","span",[]],["static-attr","class","number"],["flush-element"],["append",["unknown",["contributorsWithKredits","length"]],false],["close-element"],["text"," contributors.\\n "],["close-element"],["text","\\n "],["close-element"],["text","\\n"],["close-element"],["text","\\n\\n"],["block",["if"],[["get",["proposalsOpen"]]],null,4],["text","\\n"],["open-element","section",[]],["static-attr","id","proposals-closed"],["flush-element"],["text","\\n "],["open-element","header",[]],["flush-element"],["text","\\n "],["open-element","h2",[]],["flush-element"],["text","Closed Proposals"],["close-element"],["text","\\n "],["close-element"],["text","\\n "],["open-element","div",[]],["static-attr","class","content"],["flush-element"],["text","\\n "],["append",["helper",["proposal-list"],null,[["proposals","confirmAction"],[["get",["proposalsClosedSorted"]],"confirmProposal"]]],false],["text","\\n\\n"],["block",["if"],[["get",["contractInteractionEnabled"]]],null,1],["text"," "],["close-element"],["text","\\n"],["close-element"],["text","\\n\\n"],["open-element","section",[]],["static-attr","id","add-contributor"],["flush-element"],["text","\\n "],["open-element","header",[]],["flush-element"],["text","\\n "],["open-element","h2",[]],["flush-element"],["text","Add Contributor"],["close-element"],["text","\\n "],["close-element"],["text","\\n\\n "],["open-element","div",[]],["static-attr","class","content"],["flush-element"],["text","\\n "],["append",["helper",["add-contributor"],null,[["kredits","contributors","contractInteractionEnabled"],[["get",["kredits"]],["get",["model","contributors"]],["get",["contractInteractionEnabled"]]]]],false],["text","\\n "],["close-element"],["text","\\n"],["close-element"],["text","\\n"]],"locals":[],"named":[],"yields":[],"blocks":[{"statements":[["text","Create new proposal"]],"locals":[]},{"statements":[["text"," "],["open-element","p",[]],["static-attr","class","actions"],["flush-element"],["text","\\n "],["block",["link-to"],["proposals.new"],null,0],["text","\\n "],["close-element"],["text","\\n"]],"locals":[]},{"statements":[["text","Create new proposal"]],"locals":[]},{"statements":[["text"," "],["open-element","p",[]],["static-attr","class","actions"],["flush-element"],["text","\\n "],["block",["link-to"],["proposals.new"],null,2],["text","\\n "],["close-element"],["text","\\n"]],"locals":[]},{"statements":[["text"," "],["oLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
body,button,h1,h2,h3,h4,h5,input{font-family:"Open Sans",sans-serif;font-weight:300}*{margin:0;padding:0}:active,:focus,:hover{outline:0;-webkit-tap-highlight-color:rgba(255,255,255,0);-webkit-tap-highlight-color:transparent}html{box-sizing:border-box}*,::after,::before{box-sizing:inherit}section{max-width:41.66667em;margin-left:auto;margin-right:auto;margin-bottom:8rem}section::after{clear:both;content:"";display:block}section:first-of-type{margin-top:6rem}section header{float:left;display:block;margin-right:2.35765%;width:100%;padding-bottom:3rem;text-align:center}section header:last-child{margin-right:0}@media screen and (max-width:600px){section{margin-bottom:5rem}section:first-of-type{margin-top:2rem}section header{float:left;display:block;margin-right:2.35765%;width:82.94039%;margin-left:8.5298%;padding-bottom:2rem}section header:last-child{margin-right:0}}section header div.content{float:left;display:block;margin-right:2.35765%;width:100%}section header div.content:last-child{margin-right:0}body{background-image:url(/img/bg-947d3bf6bb15a1a3b07afcba4c307690.jpg);background-repeat:none;background-attachment:fixed;font-size:16px;color:#fff}@media screen and (min-width:900px){body{background-size:cover}}button,h1,h2,h3,h4,h5,input{font-size:1rem}section h2{font-size:2.8rem;color:#add8e6}@media screen and (max-width:600px){section h2{font-size:2rem}}section#contributors .content p.stats{padding-top:3rem;font-size:1rem;color:#add8e6;text-align:center}.loading-spinner,table.contributor-list tr td.kredits .amount{font-size:1.4rem}section#contributors .content p.stats span.number{font-weight:600}button,input[type=submit],ul.proposal-list li .amount,ul.proposal-list li .recipient{font-weight:500}button,input[type=submit]{display:inline-block;border:1px solid #161528;background-color:rgba(22,21,40,.6);color:#add8e6;border-radius:3px;text-transform:uppercase;cursor:pointer;letter-spacing:.1em}button:hover,input[type=submit]:hover{background-color:rgba(22,21,40,.8)}@keyframes pulse{from{opacity:.1}to{opacity:.6}}.loading-spinner{margin-top:12rem;text-align:center;color:#add8e6}@media screen and (max-width:600px){section#contributors .content p.stats{padding-top:2rem}.loading-spinner{margin-top:6rem}}.loading-spinner svg{width:200px;height:200px;margin-bottom:2rem}.loading-spinner svg #path-comet{fill:#add8e6;opacity:.1;animation-name:pulse;animation-iteration-count:infinite;animation-timing-function:ease-in-out;animation-direction:alternate;animation-duration:1s}table.contributor-list{width:100%;border-collapse:collapse}table.contributor-list tr{border-bottom:1px solid rgba(255,255,255,.2)}table.contributor-list tr:first-of-type{border-top:1px solid rgba(255,255,255,.2)}table.contributor-list tr td{padding:0 1.2rem;line-height:4.2rem;background-color:rgba(255,255,255,.1)}table.contributor-list tr td.person{text-align:left;font-size:1.4rem}table.contributor-list tr td.person img.avatar{width:2rem;height:2rem;vertical-align:middle;margin-right:.2rem;border-radius:1rem}table.contributor-list tr td.kredits{text-align:right}table.contributor-list tr td.kredits .symbol{font-size:1rem;padding-left:.2rem}table.contributor-list tr.current-user td{background-color:rgba(255,255,255,.2)}section#add-contributor form p{margin-bottom:1rem}section#add-contributor form p.actions{padding-top:1rem;text-align:center}section#add-contributor form input[type=text]{width:100%;padding:1rem;border:none;border-bottom:1px solid rgba(255,255,255,.2);background-color:rgba(22,21,40,.3);color:#fff;font-size:1.2rem}section#add-contributor form input[type=text].valid,section#add-contributor form input[type=text]:focus{background-color:rgba(22,21,40,.6)}section#add-contributor form input[type=submit]{padding:.6rem 2rem}section#add-contributor form input[type=submit]:disabled{background-color:transparent}ul.proposal-list{clear:both;width:100%;list-style:none}ul.proposal-list li{padding:0 1.2rem;line-height:4.2rem;background-color:rgba(255,255,255,.1);font-size:1.4rem;border-bottom:1px solid rgba(255,255,255,.2)}ul.proposal-list li:first-of-type{border-top:1px solid rgba(255,255,255,.2)}ul.proposal-list li .id{color:#add8e6;padding-right:.2rem}ul.proposal-list li .symbol{font-size:1rem;font-weight:500;padding-left:.2rem}ul.proposal-list li .votes{font-size:1rem;color:#add8e6;padding-left:1rem}ul.proposal-list li button{float:right;margin-top:1.1rem;height:2rem;line-height:2rem;padding:0 .6rem}
|
||||
@@ -0,0 +1,2 @@
|
||||
"use strict";define("kredits-web/app",["exports","ember","kredits-web/resolver","ember-load-initializers","kredits-web/config/environment"],function(e,t,n,s,o){var r=void 0;t.default.MODEL_FACTORY_INJECTIONS=!0,r=t.default.Application.extend({modulePrefix:o.default.modulePrefix,podModulePrefix:o.default.podModulePrefix,Resolver:n.default}),(0,s.default)(r,o.default.modulePrefix),e.default=r}),define("kredits-web/components/add-contributor/component",["exports","ember"],function(e,t){e.default=t.default.Component.extend({id:null,realName:null,address:null,ipfsHash:null,isCore:!1,inProgress:!1,isValidId:function(){return t.default.isPresent(this.get("id"))}.property("id"),isValidRealName:function(){return t.default.isPresent(this.get("realName"))}.property("realName"),isValidAddress:function(){return this.get("kredits.web3Instance").isAddress(this.get("address"))}.property("address"),isValid:function(){return this.get("isValidId")&&this.get("isValidRealName")&&this.get("isValidAddress")}.property("isValidAddress","isValidId","isValidRealName"),reset:function(){this.setProperties({id:null,realName:null,address:null,ipfsHash:null,isCore:!0,inProgress:!1})},actions:{save:function(){var e=this;return this.get("contractInteractionEnabled")?void(this.get("isValid")?(this.set("inProgress",!0),this.get("kredits").addContributor(this.get("address"),this.get("realName"),this.get("isCore"),this.get("id")).then(function(t){e.reset(),e.get("contributors").pushObject(t),window.scroll(0,0)})):alert("Invalid data. Please review and try again.")):void alert("Only core team members can add new contributors. Please ask someone to set you up.")}}})}),define("kredits-web/components/add-contributor/template",["exports"],function(e){e.default=Ember.HTMLBars.template({id:"/x85W8NK",block:'{"statements":[["open-element","form",[]],["modifier",["action"],[["get",[null]],"save"],[["on"],["submit"]]],["flush-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["type","name","id","checked"],["checkbox","is-core","is-core",["get",["isCore"]]]]],false],["text","\\n "],["open-element","label",[]],["static-attr","for","is-core"],["static-attr","class","checkbox"],["flush-element"],["text","\\n Core team member (can add contributors)\\n "],["close-element"],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["id","text","GitHub UID (123)",["get",["id"]],["helper",["if"],[["get",["isValidId"]],"valid",""],null]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["realname","text","GitHub username",["get",["realName"]],["helper",["if"],[["get",["isValidRealName"]],"valid",""],null]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["name","type","placeholder","value","class"],["address","text","0xF18E631Ea191aE4ebE70046Fcb01a436554421BA4",["get",["address"]],["helper",["if"],[["get",["isValidAddress"]],"valid",""],null]]]],false],["text","\\n "],["close-element"],["text","\\n "],["open-element","p",[]],["static-attr","class","actions"],["flush-element"],["text","\\n "],["append",["helper",["input"],null,[["type","value","disabled"],["submit",["helper",["if"],[["get",["inProgress"]],"Processing","Save"],null],["get",["inProgress"]]]]],false],["text","\\n "],["close-element"],["text","\\n"],["close-element"],["text","\\n"]],"locals":[],"named":[],"yields":[],"blocks":[],"hasPartials":false}',meta:{moduleName:"kredits-web/components/add-contributor/template.hbs"}})}),define("kredits-web/components/add-proposal/component",["exports","ember"],function(e,t){var n=t.default.Component,s=t.default.inject.service,o=t.default.computed;e.default=n.extend({kredits:s(),proposal:null,inProgress:!1,isValidRecipient:o("proposal.recipientAddress",function(){return this.get("kredits.web3Instance").isAddress(this.get("proposal.recipientAddress"))}),isValidAmount:o("proposal.amount",function(){return!0}),isValidUrl:o("proposal.url",function(){return!0}),isValidIpfsHash:o("proposal.ipfsHash",function(){return!0}),isValid:o.and("isValidRecipient","isValidAmount","isValidUrl","isValidIpfsHash"),actions:{save:function(){var e=this;this.get("isValid")?(this.set("inProgress",!0),this.get("kredits").addProposal(this.get("proposal")).then(function(){e.attrs.onSave()}).catch(function(e){t.default.Logger.error("Error creating the proposal",e),alert("Something went wrong.")}).finally(function(){e.set("inProgress",!1)})):alert("Invalid data. Please review and try again.")}}})}),define("kredits-web/components/add-proposal/template",["exports"],function(e){e.default=Ember.HTMLBars.template({Line truncated
|
||||
meta:{moduleName:"kredits-web/templates/index.hbs"}})}),define("kredits-web/templates/loading",["exports"],function(e){e.default=Ember.HTMLBars.template({id:"elCfJGFx",block:'{"statements":[["append",["unknown",["loading-spinner"]],false],["text","\\n"]],"locals":[],"named":[],"yields":[],"blocks":[],"hasPartials":false}',meta:{moduleName:"kredits-web/templates/loading.hbs"}})}),define("kredits-web/templates/proposals/new",["exports"],function(e){e.default=Ember.HTMLBars.template({id:"fCAPepGF",block:'{"statements":[["open-element","section",[]],["static-attr","id","add-proposal"],["flush-element"],["text","\\n "],["open-element","header",[]],["flush-element"],["text","\\n "],["open-element","h2",[]],["flush-element"],["text","Add Proposal"],["close-element"],["text","\\n "],["close-element"],["text","\\n\\n "],["open-element","div",[]],["static-attr","class","content"],["flush-element"],["text","\\n "],["append",["helper",["add-proposal"],null,[["proposal","onSave"],[["get",["model"]],["helper",["action"],[["get",[null]],"onSave"],null]]]],false],["text","\\n "],["close-element"],["text","\\n"],["close-element"],["text","\\n\\n"]],"locals":[],"named":[],"yields":[],"blocks":[],"hasPartials":false}',meta:{moduleName:"kredits-web/templates/proposals/new.hbs"}})}),define("kredits-web/templates/spinner",["exports"],function(e){e.default=Ember.HTMLBars.template({id:"OxhVgkbb",block:'{"statements":[["append",["unknown",["loading-spinner"]],false],["text","\\n"]],"locals":[],"named":[],"yields":[],"blocks":[],"hasPartials":false}',meta:{moduleName:"kredits-web/templates/spinner.hbs"}})}),define("kredits-web/config/environment",["ember"],function(e){var t="kredits-web";try{var n=t+"/config/environment",s=document.querySelector('meta[name="'+n+'"]').getAttribute("content"),o=JSON.parse(unescape(s)),r={default:o};return Object.defineProperty(r,"__esModule",{value:!0}),r}catch(e){throw new Error('Could not read config from meta tag with name "'+n+'".')}}),runningTests||require("kredits-web/app").default.create({name:"kredits-web",version:"0.1.0+0b7afc0d"});
|
||||
Loaded 100 of 214 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user