[issue #347] Fixed bugs. Some changes.
This commit is contained in:
parent
a68d4a2926
commit
871c8ed1f4
|
@ -14,11 +14,16 @@ Rosa.Models.Collaborator = Backbone.Model.extend({
|
||||||
},
|
},
|
||||||
|
|
||||||
changeRole: function(r) {
|
changeRole: function(r) {
|
||||||
|
var self = this;
|
||||||
this._prevState = this.get('role');
|
this._prevState = this.get('role');
|
||||||
this.save({role: r},
|
this.save({role: r},
|
||||||
{wait: true,
|
{wait: true,
|
||||||
|
success: function(model, response) {
|
||||||
|
self.trigger('sync_success');
|
||||||
|
},
|
||||||
error: function(model, response) {
|
error: function(model, response) {
|
||||||
model.set({role: model._prevState});
|
model.set({role: model._prevState});
|
||||||
|
self.trigger('sync_failed');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return this;
|
return this;
|
||||||
|
|
|
@ -55,6 +55,8 @@ Rosa.Views.AddCollaboratorView = Backbone.View.extend({
|
||||||
_.each( items, function( item ) {
|
_.each( items, function( item ) {
|
||||||
self.addOne( ul, item );
|
self.addOne( ul, item );
|
||||||
});
|
});
|
||||||
|
var factor = (items.length > 10) ? 10 : items.length;
|
||||||
|
ul.height(ul.children('li').first() * factor);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
Rosa.Views.CollaboratorView = Backbone.View.extend({
|
Rosa.Views.CollaboratorView = Backbone.View.extend({
|
||||||
template: JST['backbone/templates/collaborators/collaborator'],
|
template: JST['backbone/templates/collaborators/collaborator'],
|
||||||
tagName: 'tr',
|
tagName: 'tr',
|
||||||
|
className: 'regular',
|
||||||
|
|
||||||
events: {
|
events: {
|
||||||
'change input[type="radio"]': 'changeRole',
|
'change input[type="radio"]': 'changeRole',
|
||||||
|
@ -11,6 +12,8 @@ Rosa.Views.CollaboratorView = Backbone.View.extend({
|
||||||
this.$el.attr('id', 'admin-table-members-row' + this.options.model.get('id') + this.options.model.get('actor_type'));
|
this.$el.attr('id', 'admin-table-members-row' + this.options.model.get('id') + this.options.model.get('actor_type'));
|
||||||
this.model.on('change', this.render, this);
|
this.model.on('change', this.render, this);
|
||||||
this.model.on('destroy', this.hide, this);
|
this.model.on('destroy', this.hide, this);
|
||||||
|
this.model.on('sync_failed', this.syncError, this);
|
||||||
|
this.model.on('sync_success', this.syncSuccess, this);
|
||||||
},
|
},
|
||||||
|
|
||||||
render: function() {
|
render: function() {
|
||||||
|
@ -33,5 +36,33 @@ Rosa.Views.CollaboratorView = Backbone.View.extend({
|
||||||
|
|
||||||
hide: function() {
|
hide: function() {
|
||||||
this.remove();
|
this.remove();
|
||||||
|
},
|
||||||
|
|
||||||
|
syncError: function() {
|
||||||
|
var self = this;
|
||||||
|
this.$el.addClass('sync_error');
|
||||||
|
this.$('td').animate({
|
||||||
|
'background-color': '#FFFFFF'
|
||||||
|
}, {
|
||||||
|
duration: 1500,
|
||||||
|
easing: 'easeInCirc',
|
||||||
|
complete: function() {
|
||||||
|
self.$el.removeClass('sync_error');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
syncSuccess: function() {
|
||||||
|
var self = this;
|
||||||
|
this.$el.addClass('sync_success');
|
||||||
|
this.$('td').animate({
|
||||||
|
'background-color': '#FFFFFF'
|
||||||
|
}, {
|
||||||
|
duration: 1500,
|
||||||
|
easing: 'easeInCirc',
|
||||||
|
complete: function() {
|
||||||
|
self.$el.removeClass('sync_success');
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -771,10 +771,19 @@ div.tos_sidebar ul li a {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
table.tablesorter tbody tr.removed td {
|
table.tablesorter tbody tr.regular td {
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tablesorter tbody tr.removed td,
|
||||||
|
table.tablesorter tbody tr.sync_error td {
|
||||||
background-color: #FFECEC;
|
background-color: #FFECEC;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
table.tablesorter tbody tr.sync_success td {
|
||||||
|
background-color: #E0ECFF;
|
||||||
|
}
|
||||||
|
|
||||||
ul.ui-autocomplete li.item {
|
ul.ui-autocomplete li.item {
|
||||||
/* padding: 1px 0; */
|
/* padding: 1px 0; */
|
||||||
}
|
}
|
||||||
|
@ -811,7 +820,7 @@ ul.ui-autocomplete li.item div.collaborator div.name {
|
||||||
}
|
}
|
||||||
|
|
||||||
ul.ui-autocomplete.has_results {
|
ul.ui-autocomplete.has_results {
|
||||||
height: 200px;
|
/* height: 200px; */
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -83,7 +83,7 @@ class Collaborator
|
||||||
|
|
||||||
def actor_name
|
def actor_name
|
||||||
if @actor.present?
|
if @actor.present?
|
||||||
@actor.instance_of?(User) ? "#{@actor.uname} (#{@actor.name})" : @actor.uname
|
@actor.instance_of?(User) ? "#{@actor.uname}#{ @actor.try(:name) and !@actor.name.empty? ? " (#{@actor.name})" : ''}" : @actor.uname
|
||||||
else
|
else
|
||||||
nil
|
nil
|
||||||
end
|
end
|
||||||
|
|
|
@ -12,4 +12,4 @@
|
||||||
= link_to t("layout.projects.sections"), sections_project_path(@project)
|
= link_to t("layout.projects.sections"), sections_project_path(@project)
|
||||||
- if can? :manage_collaborators, @project
|
- if can? :manage_collaborators, @project
|
||||||
%li{:class => (act == :edit && contr == :collaborators) ? 'active' : ''}
|
%li{:class => (act == :edit && contr == :collaborators) ? 'active' : ''}
|
||||||
= link_to t("layout.projects.edit_collaborators"), edit_project_collaborators_path(@project)
|
= link_to t("layout.projects.edit_collaborators"), project_collaborators_path(@project)
|
||||||
|
|
Loading…
Reference in New Issue