diff --git a/README.md b/README.md
index 3a58c14..83b4b77 100644
--- a/README.md
+++ b/README.md
@@ -33,9 +33,10 @@ Bitcoin Crowdfunding Platform
##### Client Configuration
You can configure:
-* Google Analytics ID in the **/client/index.html**
-* Addthis user ID in the **/client/index.html**
-* Disquss App name in the **/client/app/app.js**
+* Google Analytics ID in the **/client/index.html** file
+* Addthis user ID in the **/client/index.html** file
+* Disquss App name in the **/client/app/app.js** file
+* $scope.fee Withdrawal fee in the **/client/app/account/settings/settings.controller.js** file
## Platform Workflow : User
1. A user create is account
diff --git a/bower.json b/bower.json
index 0c325c1..18ff6a9 100644
--- a/bower.json
+++ b/bower.json
@@ -21,7 +21,8 @@
"angular-loading-bar": "~0.6.0",
"angular-disqus": "~1.1.0",
"angular-slugify": "~1.0.0",
- "angular-utils-pagination": "~0.4.0"
+ "angular-utils-pagination": "~0.4.0",
+ "angucomplete-alt": "~0.0.31"
},
"devDependencies": {
"angular-mocks": ">=1.2.*",
diff --git a/client/app/account/dashboard/dashboard.jade b/client/app/account/dashboard/dashboard.jade
index 221ebe6..8b280ce 100644
--- a/client/app/account/dashboard/dashboard.jade
+++ b/client/app/account/dashboard/dashboard.jade
@@ -53,14 +53,14 @@ div(ng-include='"components/navbar/navbar.html"')
tr(ng-repeat="proj in projects")
td
i.fa.fa-book.text-muted
-
+ |
a(ng-href="/projects/{{proj.slug}}") {{proj.name}}
td
span.label.label-success(ng-show="proj.amountRaised >= proj.amountToRaise") Finished
span.label.label-warning(ng-show="proj.amountRaised !== 0 && proj.amountRaised < proj.amountToRaise") Ongoing
span.label.label-default(ng-show="proj.amountRaised === 0") Not started
td
- {{proj.amountRaised | toBTC}} / {{proj.amountToRaise | toBTC}} BTC
+ span {{proj.amountRaised | toBTC}} / {{proj.amountToRaise | toBTC}} BTC
td.text-center
a(ng-href='/projects/{{proj.slug}}/edit')
span.glyphicon.glyphicon-pencil
diff --git a/client/app/account/profile/profile.jade b/client/app/account/profile/profile.jade
index a7dbb18..d8e3b39 100644
--- a/client/app/account/profile/profile.jade
+++ b/client/app/account/profile/profile.jade
@@ -30,17 +30,17 @@ div(ng-include='"components/navbar/navbar.html"')
div(ng-show="user.bitcointalkLogin != ''")
i.fa.fa-comment.text-muted.space-right
span {{user.bitcointalkLogin}} @
-
+ |
a(href="https://bitcointalk.org") BitcoinTalk
div(ng-show="user.githubLogin != ''")
i.fa.fa-github-alt.text-muted.space-right
span {{user.githubLogin}} @
-
+ |
a(href="https://github.com/{{user.githubLogin}}") GitHub
div(ng-show="user.stackexchangeLogin != ''")
i.fa.fa-stack-exchange.text-muted.space-right
span {{user.stackexchangeLogin}} @
-
+ |
a(href="http://stackexchange.com/") StackExchange
.col-md-9
.col-md-6
diff --git a/client/app/account/settings/settings.jade b/client/app/account/settings/settings.jade
index 641ab8b..5cf272d 100644
--- a/client/app/account/settings/settings.jade
+++ b/client/app/account/settings/settings.jade
@@ -30,25 +30,25 @@ div(ng-include='"components/navbar/navbar.html"')
.form-group
label
span Your
-
+ |
a(href="https://bitcointalk.org/", target="_blank") Bitcointalk
-
+ |
span account name
input.form-control(type='text', name='bitcointalkLogin', ng-model='user.bitcointalkLogin', mongoose-error='', placeholder='')
.form-group
label
span Your
-
+ |
a(href="https://github.com", target="_blank") Github
-
+ |
span account name
input.form-control(type='text', name='githubLogin', ng-model='user.githubLogin', mongoose-error='', placeholder='')
.form-group
label
span Your
-
+ |
a(href="https://stackexchange.com", target="_blank") StackExchange
-
+ |
span login
input.form-control(type='text', name='stackexchangeLogin', ng-model='user.stackexchangeLogin', mongoose-error='', placeholder='')
hr
@@ -57,7 +57,7 @@ div(ng-include='"components/navbar/navbar.html"')
.form-group
label
input(type='checkbox', ng-model="user.privateContrib")
-
+ |
b Anonymous contributions
br
span If you enable this option, your contributions won't be displayed with your name along.
diff --git a/client/app/admin/admin.jade b/client/app/admin/admin.jade
index a4f90fe..218f964 100644
--- a/client/app/admin/admin.jade
+++ b/client/app/admin/admin.jade
@@ -5,25 +5,25 @@ div(ng-include='"components/navbar/navbar.html"')
tab
tab-heading
span.glyphicon.glyphicon-user.text-muted
-
+ |
b Users Management
ul.list-group.well
li.list-group-item(ng-repeat='user in users | orderBy:"role"')
span.pull-left
a.text-muted(href="/profile/{{user.name}}")
img.avatar(gravatar-src="'{{user.email}}'", width=40)
-
+ |
span
strong
a.text-muted(href="/profile/{{user.name}}") {{user.name}}
-
+ |
span.label.label-danger(ng-show="user.role == 'admin'") Admin
span.label.label-info(ng-show="user.role == 'user'") User
br
small.text-warning {{user.balance | toBTC}} BTC
small.text-muted
-
- {{user.email}}
+ |
+ | {{user.email}}
div.pull-right
a.trash(ng-href='/admin/{{user._id}}/editUser')
span.glyphicon.glyphicon-edit
@@ -35,7 +35,7 @@ div(ng-include='"components/navbar/navbar.html"')
tab
tab-heading
span.fa.fa-book.text-muted
-
+ |
b Projects Management
ul.list-group.well
tabset(justified='true', type="'pills'")
@@ -45,21 +45,21 @@ div(ng-include='"components/navbar/navbar.html"')
span.label.label-success(ng-show="project.amountRaised >= project.amountToRaise") Finished
span.label.label-warning(ng-show="project.amountRaised !== 0 && project.amountRaised < project.amountToRaise") Ongoing
span.label.label-default(ng-show="project.amountRaised === 0") Not started
-
+ |
span {{project.name}} ({{project.amountRaised | toBTC}} / {{project.amountToRaise | toBTC}})
br
small.text-muted
span Project created
-
+ |
b(am-time-ago="project.dateCreat")
-
+ |
span and finishing
-
+ |
b(am-time-ago="project.dateEndCampaign")
.pull-right
a(ng-href='/projects/{{project.slug}}/edit')
span.glyphicon.glyphicon-pencil
-
+ |
a.trash(ng-click='deleteProject(project)')
span.glyphicon.glyphicon-trash
tab(heading='Not Started').label-default.tabText
@@ -68,21 +68,21 @@ div(ng-include='"components/navbar/navbar.html"')
span.label.label-success(ng-show="project.amountRaised >= project.amountToRaise") Finished
span.label.label-warning(ng-show="project.amountRaised !== 0 && project.amountRaised < project.amountToRaise") Ongoing
span.label.label-default(ng-show="project.amountRaised === 0") Not started
-
+ |
span {{project.name}} ({{project.amountRaised | toBTC}} / {{project.amountToRaise | toBTC}})
br
small.text-muted
span Project created
-
+ |
b(am-time-ago="project.dateCreat")
-
+ |
span and finishing
-
+ |
b(am-time-ago="project.dateEndCampaign")
.pull-right
a(ng-href='/projects/{{project.slug}}/edit')
span.glyphicon.glyphicon-pencil
-
+ |
a.trash(ng-click='deleteProject(project)')
span.glyphicon.glyphicon-trash
tab(heading='Ongoing').label-warning.tabText
@@ -91,21 +91,21 @@ div(ng-include='"components/navbar/navbar.html"')
span.label.label-success(ng-show="project.amountRaised >= project.amountToRaise") Finished
span.label.label-warning(ng-show="project.amountRaised !== 0 && project.amountRaised < project.amountToRaise") Ongoing
span.label.label-default(ng-show="project.amountRaised === 0") Not started
-
+ |
span {{project.name}} ({{project.amountRaised | toBTC}} / {{project.amountToRaise | toBTC}})
br
small.text-muted
span Project created
-
+ |
b(am-time-ago="project.dateCreat")
-
+ |
span and finishing
-
+ |
b(am-time-ago="project.dateEndCampaign")
.pull-right
a(ng-href='/projects/{{project.slug}}/edit')
span.glyphicon.glyphicon-pencil
-
+ |
a.trash(ng-click='deleteProject(project)')
span.glyphicon.glyphicon-trash
tab(heading='Expired').label-danger.tabText
@@ -115,21 +115,21 @@ div(ng-include='"components/navbar/navbar.html"')
span.label.label-success(ng-show="project.amountRaised >= project.amountToRaise") Finished
span.label.label-warning(ng-show="project.amountRaised !== 0 && project.amountRaised < project.amountToRaise") Ongoing
span.label.label-default(ng-show="project.amountRaised === 0") Not started
-
+ |
span {{project.name}} ({{project.amountRaised | toBTC}} / {{project.amountToRaise | toBTC}})
br
small.text-muted
span Project created
-
+ |
b(am-time-ago="project.dateCreat")
-
+ |
span and finishing
-
+ |
b(am-time-ago="project.dateEndCampaign")
.pull-right
a(ng-href='/projects/{{project.slug}}/edit')
span.glyphicon.glyphicon-pencil
-
+ |
a.trash(ng-click='deleteProject(project)')
span.glyphicon.glyphicon-trash
tab(heading='Finished').label-success.tabText
@@ -138,21 +138,21 @@ div(ng-include='"components/navbar/navbar.html"')
span.label.label-success(ng-show="project.amountRaised >= project.amountToRaise") Finished
span.label.label-warning(ng-show="project.amountRaised !== 0 && project.amountRaised < project.amountToRaise") Ongoing
span.label.label-default(ng-show="project.amountRaised === 0") Not started
-
+ |
span {{project.name}} ({{project.amountRaised | toBTC}} / {{project.amountToRaise | toBTC}})
br
small.text-muted
span Project created
-
+ |
b(am-time-ago="project.dateCreat")
-
+ |
span and finishing
-
+ |
b(am-time-ago="project.dateEndCampaign")
.pull-right
a(ng-href='/projects/{{project.slug}}/edit')
span.glyphicon.glyphicon-pencil
-
+ |
a.trash(ng-click='deleteProject(project)')
span.glyphicon.glyphicon-trash
tab(heading='Done').label-info.tabText
@@ -161,21 +161,21 @@ div(ng-include='"components/navbar/navbar.html"')
span.label.label-success(ng-show="project.amountRaised >= project.amountToRaise") Finished
span.label.label-warning(ng-show="project.amountRaised !== 0 && project.amountRaised < project.amountToRaise") Ongoing
span.label.label-default(ng-show="project.amountRaised === 0") Not started
-
+ |
span {{project.name}} ({{project.amountRaised | toBTC}} / {{project.amountToRaise | toBTC}})
br
small.text-muted
span Project created
-
+ |
b(am-time-ago="project.dateCreat")
-
+ |
span and finishing
-
+ |
b(am-time-ago="project.dateEndCampaign")
.pull-right
a(ng-href='/projects/{{project.slug}}/edit')
span.glyphicon.glyphicon-pencil
-
+ |
a.trash(ng-click='deleteProject(project)')
span.glyphicon.glyphicon-trash
diff --git a/client/app/app.js b/client/app/app.js
index 44d21fd..d9970c2 100644
--- a/client/app/app.js
+++ b/client/app/app.js
@@ -14,7 +14,8 @@ angular.module('bitCrowdFundsApp', [
'angular-loading-bar',
'ngDisqus',
'slugifier',
- 'angularUtils.directives.dirPagination'
+ 'angularUtils.directives.dirPagination',
+ 'angucomplete-alt'
])
.config(['cfpLoadingBarProvider', function(cfpLoadingBarProvider) {
cfpLoadingBarProvider.includeSpinner = false;
diff --git a/client/app/main/main.jade b/client/app/main/main.jade
index 18592a4..8dac590 100644
--- a/client/app/main/main.jade
+++ b/client/app/main/main.jade
@@ -16,7 +16,7 @@ header#banner.hero-unit
br
br
a.btn.btn-default.btn-lg(href='/addproject') Create a project
-
+ |
a.btn.btn-success.btn-lg(href='/projects') Explore projects
br
br
@@ -29,12 +29,12 @@ header#banner.hero-unit
.panel-heading
h3.panel-title
i.fa.fa-book.text-muted
-
+ |
a(ng-href="/projects/{{proj.slug}}") {{proj.name}}
-
+ |
small.text-muted
span by
-
+ |
a(href="/profile/{{proj.Owner}}") {{proj.Owner}}
span.pull-right
div.progress
@@ -43,17 +43,17 @@ header#banner.hero-unit
div.row
.col-lg-8
span {{proj.description | limitTo: 1000}}.
-
+ |
a(ng-href="/projects/{{proj.slug}}") See project page.
br
br
span.text-muted
span Project started
-
+ |
b(am-time-ago="proj.dateCreat")
-
+ |
span and finishing
-
+ |
b(am-time-ago="proj.dateEndCampaign")
.col-lg-3.text-right
div.project-state.well.text-center
diff --git a/client/app/projects/list/projects.jade b/client/app/projects/list/projects.jade
index 74a8cbc..3662141 100644
--- a/client/app/projects/list/projects.jade
+++ b/client/app/projects/list/projects.jade
@@ -10,12 +10,12 @@ div(ng-include='"components/navbar/navbar.html"')
.panel-heading
h3.panel-title
i.fa.fa-book.text-muted
-
+ |
a(ng-href="/projects/{{proj.slug}}") {{proj.name}}
-
+ |
small.text-muted
span by
-
+ |
a(href="/profile/{{proj.Owner}}") {{proj.Owner}}
span.pull-right
div.progress
@@ -24,17 +24,17 @@ div(ng-include='"components/navbar/navbar.html"')
div.row
.col-lg-8
span {{proj.description | limitTo: 1000}}.
-
+ |
a(ng-href="/projects/{{proj.slug}}") See project page.
br
br
span.text-muted
span Project started
-
+ |
b(am-time-ago="proj.dateCreat")
-
+ |
span and finishing
-
+ |
b(am-time-ago="proj.dateEndCampaign")
.col-lg-3.text-right
div.project-state.well.text-center
diff --git a/client/app/projects/project/project.jade b/client/app/projects/project/project.jade
index bb2dbcf..94c2af1 100644
--- a/client/app/projects/project/project.jade
+++ b/client/app/projects/project/project.jade
@@ -6,34 +6,34 @@ div(ng-include='"components/navbar/navbar.html"')
.col-md-12
h1.page-header
i.fa.fa-book.text-muted
-
+ |
span {{currentProject.name}}
-
+ |
small by
-
+ |
a(href="/profile/{{currentProject.Owner}}")
small {{currentProject.Owner}}
-
+ |
img.avatar(gravatar-src="currentProject.OwnerDatas.email", width=20)
span.pull-right
a.btn.btn-xs.btn-default(ng-show="currentProject.OwnerDatas.name == currentUser.name", ng-href="/projects/{{currentProject.slug}}/edit")
i.fa.fa-edit
-
+ |
span Edit project
-
+ |
a.btn.btn-xs.btn-primary(ng-href="mailto:{{currentProject.Owner}}", ng-show="currentProject.OwnerDatas.name != currentUser.name")
i.fa.fa-envelope
-
+ |
span Contact
.row
.col-md-8
span.text-muted
span Project started
-
+ |
b(am-time-ago="currentProject.dateCreat")
-
+ |
span and finishing
-
+ |
b(am-time-ago="currentProject.dateEndCampaign")
br
br
@@ -94,7 +94,7 @@ div(ng-include='"components/navbar/navbar.html"')
div(ng-repeat="contributor in filteredContributors")
.col-sm-4
span(ng-show="contributor.isPrivate == false").badge.badge-success.pull-right
- a(ng-href="/profile/{{contributor.userName}}", style="color: white;"){{contributor.userName}}
+ a(ng-href="/profile/{{contributor.userName}}", style="color: white;") {{contributor.userName}}
span(ng-show="contributor.isPrivate == true").badge.badge-success.pull-right Private
.col-sm-8.pull-left
span Amount:
diff --git a/client/app/projects/search/search.controller.js b/client/app/projects/search/search.controller.js
index 20898e9..c02eb66 100644
--- a/client/app/projects/search/search.controller.js
+++ b/client/app/projects/search/search.controller.js
@@ -8,7 +8,7 @@ angular.module('bitCrowdFundsApp')
$http.get('/api/projects/search/'+ $routeParams.name)
.success(function (data)
{
- $scope.projectsList = data;
+ $scope.projectsList = data.data;
})
.error(function (data)
{
diff --git a/client/components/footer/footer.jade b/client/components/footer/footer.jade
index 153b796..f8d523d 100644
--- a/client/components/footer/footer.jade
+++ b/client/components/footer/footer.jade
@@ -16,28 +16,28 @@
.col-md-12
a.btn.btn-warning.btn-xs(href="http://coindesk.com", target="_blank")
img(src="http://www.coindesk.com/wp-content/themes/coindesk2/images/header-logo.png", height="15")
-
+ |
span real time BTC price
-
+ |
span.text-muted
span (updated
-
+ |
span(am-time-ago="current_prices.time.updated")
span )
ul.list-inline
span.label.label-primary
span {{current_prices.bpi.USD.rate}}
-
+ |
i.fa.fa-dollar
-
+ |
span.label.label-primary
span {{current_prices.bpi.EUR.rate}}
-
+ |
i.fa.fa-euro
-
+ |
span.label.label-primary
span {{current_prices.bpi.GBP.rate}}
-
+ |
i.fa.fa-gbp
br
diff --git a/client/components/navbar/navbar.controller.js b/client/components/navbar/navbar.controller.js
index 3c57120..9e2ea8c 100644
--- a/client/components/navbar/navbar.controller.js
+++ b/client/components/navbar/navbar.controller.js
@@ -27,8 +27,17 @@ angular.module('bitCrowdFundsApp')
{
if ($scope.valueSearch === '')
{
+ console.log('value search empty');
return;
}
+ if (!_.isString($scope.valueSearch))
+ {
+ if (!$scope.valueSearch.title)
+ {
+ return $location.path('/projects/search/' + $scope.valueSearch.originalObject);
+ }
+ return $location.path('/projects/search/' + $scope.valueSearch.title);
+ }
$location.path('/projects/search/' + $scope.valueSearch);
};
});
diff --git a/client/components/navbar/navbar.jade b/client/components/navbar/navbar.jade
index e4b9efb..78d4d36 100644
--- a/client/components/navbar/navbar.jade
+++ b/client/components/navbar/navbar.jade
@@ -22,8 +22,19 @@ div.navbar.navbar-default.navbar-static-top(ng-controller='NavbarCtrl')
form.navbar-form.navbar-nav
div#searchbar.form-group
- input#search.form-control(type='text', name='searchInput', ng-model='valueSearch', placeholder='Search projects...')
-
+ angucomplete-alt(id="search",
+ placeholder="Search projects...",
+ pause="100",
+ selected-object="valueSearch",
+ remote-url="http://localhost:9000/api/projects/search/",
+ remote-url-data-field="data",
+ title-field="name",
+ description-field="description",
+ minlength=2,
+ override-suggestions="true",
+ inputclass="form-control")
+ //- input#search.form-control(type='text', name='searchInput', ng-model='valueSearch', placeholder='Search projects...')
+ |
button.btn.btn-warning.btn-xs(type='submit', ng-click='search()')
i.fa.fa-search
@@ -39,7 +50,7 @@ div.navbar.navbar-default.navbar-static-top(ng-controller='NavbarCtrl')
p.navbar-text
img.avatar(gravatar-src="'{{getCurrentUser().email}}'")
a(ng-href="/profile/{{getCurrentUser().name}}") {{ getCurrentUser().name }}
-
+ |
span.label.label-danger(ng-show='isAdmin()') STAFF
li(ng-show='isLoggedIn()', ng-class='{active: isActive("/addproject")}', tooltip-placement="bottom", tooltip="New project")
a(ng-href='/addproject')
diff --git a/client/index.html b/client/index.html
index 6b86ffa..f705054 100644
--- a/client/index.html
+++ b/client/index.html
@@ -18,6 +18,7 @@
+
@@ -86,6 +87,7 @@
+
diff --git a/server/api/project/project.controller.js b/server/api/project/project.controller.js
index 03c01bb..5607e00 100644
--- a/server/api/project/project.controller.js
+++ b/server/api/project/project.controller.js
@@ -202,6 +202,8 @@ exports.search = function(req, res)
.exec(function(err, projects) {
if (err || !projects)
return handleError(res, err);
- res.json(200, projects);
+ var obj = {secret: 'lol', data: projects};
+ //console.log(JSON.stringify(obj));
+ res.json(200, obj);
});
};