FEATURE: Show user fields when the user is signing up

This commit is contained in:
Robin Ward
2014-09-26 14:48:34 -04:00
parent 872d8fce58
commit edb34c178a
42 changed files with 476 additions and 141 deletions

View File

@@ -13,10 +13,12 @@ export default Ember.ObjectController.extend(BufferedContent, {
save: function() {
var self = this;
this.commitBuffer();
this.get('model').save().then(function(res) {
var attrs = this.get('buffered').getProperties('name', 'field_type', 'editable');
this.get('model').save(attrs).then(function(res) {
self.set('model.id', res.user_field.id);
self.set('editing', false);
self.commitBuffer();
}).catch(function() {
bootbox.alert(I18n.t('generic_error'));
});

View File

@@ -2,8 +2,10 @@ import UserField from 'admin/models/user-field';
export default Ember.ArrayController.extend({
fieldTypes: null,
createDisabled: Em.computed.gte('model.length', 3),
userFieldsName: function() {
return I18n.t('admin.user_fields.name');
}.property(),
_performDestroy: function(f, model) {
return f.destroy().then(function() {
@@ -13,10 +15,7 @@ export default Ember.ArrayController.extend({
actions: {
createField: function() {
this.pushObject(UserField.create({
field_type: 'text',
name: I18n.t('admin.user_fields.untitled')
}));
this.pushObject(UserField.create({ field_type: 'text' }));
},
destroy: function(f) {

View File

@@ -1,14 +1,6 @@
import ObjectController from 'discourse/controllers/object';
import CanCheckEmails from 'discourse/mixins/can-check-emails';
/**
A controller related to viewing a user in the admin section
@class AdminUserIndexController
@extends ObjectController
@namespace Discourse
@module Discourse
**/
export default ObjectController.extend(CanCheckEmails, {
editingTitle: false,
originalPrimaryGroupId: null,
@@ -23,6 +15,19 @@ export default ObjectController.extend(CanCheckEmails, {
return (!g.automatic && g.visible);
}),
userFields: function() {
var siteUserFields = this.site.get('user_fields'),
userFields = this.get('user_fields');
if (!Ember.empty(siteUserFields)) {
return siteUserFields.map(function(uf) {
var value = userFields ? userFields[uf.get('id').toString()] : null;
return {name: uf.get('name'), value: value};
});
}
return [];
}.property('user_fields.@each'),
actions: {
toggleTitleEdit: function() {
this.toggleProperty('editingTitle');

View File

@@ -1,12 +1,3 @@
import ObjectController from 'discourse/controllers/object';
/**
The top-level controller for user pages in admin.
Ember assertion says that this class needs to be defined even if it's empty.
@class AdminUserController
@extends ObjectController
@namespace Discourse
@module Discourse
**/
export default ObjectController.extend();