wejsv2old-plugin-cdp-profile
Version:
We.js plugin wejsv2old-plugin-cdp-profile
81 lines (70 loc) • 2.08 kB
JavaScript
// Map user routers
App.Router.map(function(match) {
// item route
this.resource('profile',{ path: '/profile/:id' }, function(){
// edit item route
this.route('edit');
});
});
App.ProfileRoute = Ember.Route.extend({
queryParams: {
edit: {}
},
model: function (params) {
return this.store.find('user', params.id);
},
afterModel: function (model){
var ProfilePermission = Ember.WePermissions.create();
if (!ProfilePermission.can('user_update', 'user', model)) {
return this.transitionTo('forbidden');
}
}
});
// route /user/:id/
App.ProfileIndexRoute = Ember.Route.extend({
beforeModel: function(transition) {
this._super();
// redirect /user/:id/ to /user/:id/edit route
this.transitionTo('profile.edit', transition.params.profile.id);
}
});
// route item /edit
App.ProfileEditRoute = Ember.Route.extend(App.ResetScrollMixin, {
renderTemplate: function() {
this.render('profile/edit');
},
model: function() {
return this.modelFor('profile').reload();
},
afterModel: function(model) {
this._super();
var displayName = Ember.get(model, 'displayName');
var username = Ember.get(model, 'username');
// deixa o displayName vazio se for iqual ao username
if (!displayName || (username == displayName) ) {
model.set('displayName', null);
}
if (model.get('cpf')) {
model.set('canEditCPF', false);
} else {
model.set('canEditCPF', true);
}
},
setupController: function(controller, model) {
// Add model to controller
controller.set('model', model);
var redirectToServiceUrl;
if ($.cookie('redirectUrl')) {
try {
redirectToServiceUrl = JSON.parse($.cookie('redirectUrl'));
} catch (e) {
Ember.Logger.error('Could not parse redirectToServiceUrl', e);
}
$.removeCookie('redirectUrl', { path: '/' });
}
if (redirectToServiceUrl) {
controller.set('redirectToServiceUrl', redirectToServiceUrl);
}
controller.set('currentUsername', model.get('username'));
}
});