wejsv2old-plugin-cdp-profile
Version:
We.js plugin wejsv2old-plugin-cdp-profile
141 lines (124 loc) • 4.27 kB
JavaScript
$( document ).ready(function (){
App.UserController = Ember.ObjectController.extend(App.UserSaveAttributeMixin, {
breadCrumb: function(){
var displayName = this.get('user.displayName');
if(displayName){
return displayName;
}
return null;
}.property('user.displayName'),
ensureLink: function (){
var user = this.get('user');
if (!user) return;
var hasHttp = new RegExp(/^(http|https):\/\/.*/);
var prefix = 'http://';
var social = ['fbprofile', 'twitprofile', 'lkinprofile', 'instprofile', 'youtbprofile'];
for (var prop in Ember.get(user, '_data')){
if (social.indexOf(prop) === -1) continue;
if (hasHttp.test(Ember.get(user, '_data')[prop])) continue;
if (!Ember.get(user, '_data')[prop]) continue;
user.set(prop, 'http://' + Ember.get(user, '_data')[prop]);
}
}.observes('user').on('init'),
isAuthenticated: function (){
return App.auth.get('isAuthenticated');
}.property('auth.isAuthenticated'),
totalRelatos: function (){
var counts = this.get('counts.relatos');
var total = 0;
for ( var count in counts ) {
total += counts[count];
}
return total;
}.property('counts.relatos'),
actions: {
//Show the modal
showLoginModal: function() {
return jQuery('#we-auth-modal-need-login').modal('show');
},
contactButtomClicked: function() {
switch(this.get('contact.currentUserStatus')){
case 'requested':
// TODO!
this.send('cancelContactRequest');
break;
case 'requestsToYou':
this.send('acceptAddInContactList');
break;
case 'accepted':
this.send('deleteContact');
break;
case 'ignored':
this.send('deleteContact');
break;
default:
this.send('requestAddInContactList');
}
},
requestAddInContactList: function(){
var self = this;
Ember.$.post('/api/v1/user/'+this.get('user.id')+'/contact-request')
.done(function(data) {
console.warn('contact',data.contact);
self.set('contact',self.get('store').push('contact',data.contact));
FollowObject.follow(
'user',
self.get('user.id'),
self.get('store')
).then(function(){
// self.set('flag',flag);
// self.set('isLoading', false);
});
})
.fail(function(data) {
Ember.Logger.error('Error on requestAddInContactList contact:',data.contact);
});
},
acceptAddInContactList: function(){
var self = this;
Ember.$.post('/api/v1/user/'+this.get('user.id')+'/contact-accept')
.done(function(data) {
self.set('contact.status',data.contact.status);
FollowObject.follow(
'user',
self.get('user.id'),
self.get('store')
).then(function(){
// self.set('flag',flag);
// self.set('isLoading', false);
});
})
.fail(function(data) {
Ember.Logger.error('Error on acceptAddInContactList contact:',data);
});
},
ignoreContact: function(){
var self = this;
Ember.$.post('/api/v1/user/'+this.get('user.id')+'/contact-ignore')
.done(function(data) {
console.warn('ignoreContact',data.contact);
self.set('contact.status',data.contact.status);
})
.fail(function(data) {
Ember.Logger.error('Error on ignoreContact contact:',data);
});
},
deleteContact: function(){
if(confirm('Tem certeza que deseja canselar a amizade com o '+
this.get('user.displayName') + ' ?')
){
Ember.$.ajax({
url: '/api/v1/user/'+this.get('user.id')+'/contact/',
type: 'DELETE'
})
.done(function(data) {
console.warn('ignoreContact',data.contact);
})
.fail(function(data) {
Ember.Logger.error('Error on deleteContact:',data);
});
}
}
}
});
});