diaspora/app/assets/javascripts/aspects-dropdown.js
Steven Hancock 1aa0b15c8c Move Javascript to the asset pipeline
* Move all Diaspora-specific javascripts to app/assets/javascripts
* Move all vendored javascripts to vendor/assets/javascripts
* Add the appropriate Sprockets require directives to make sure
  everything gets included in the right order
* Remove Jammit dependencies
* Fix all templates that were using Jammit's include_javascripts helper
* Add handlebars_assets gem for compiling Handlebars templates
* Move all Handlebars templates to app/assets/templates and rename
  from .handlebars to .jst.hbs (this is to keep them in the same
  global JST namespace that they were in under Jammit)
* Add public/assets to .gitignore since these files can and should
  be re-generated by Heroku or Capistrano during each deploy
* Fix a few Handlebars templates that were looking for images in the
  wrong location (I'm sure there are others, but it's late)
* Configure application.rb to precompile all javascript and css assets
  that were compiled by Jammit in the Rails 3.0 code
2012-03-27 18:07:44 -07:00

61 lines
2.2 KiB
JavaScript

// Copyright (c) 2010-2011, Diaspora Inc. This file is
// licensed under the Affero General Public License version 3 or later. See
// the COPYRIGHT file.
var AspectsDropdown = {
updateNumber: function(dropdown, personId, number, inAspectClass){
var button = dropdown.parents(".dropdown").children('.button.toggle'),
selectedAspects = dropdown.children(".selected").length,
allAspects = dropdown.children().length,
replacement;
if (number == 0) {
button.removeClass(inAspectClass);
if( dropdown.closest('#publisher').length ) {
replacement = Diaspora.I18n.t("aspect_dropdown.select_aspects");
} else {
replacement = Diaspora.I18n.t("aspect_dropdown.add_to_aspect");
/* flash message prompt */
var message = Diaspora.I18n.t("aspect_dropdown.stopped_sharing_with", {name: dropdown.data('person-short-name')});
Diaspora.page.flashMessages.render({success: true, notice: message});
}
}else if (selectedAspects == allAspects) {
replacement = Diaspora.I18n.t('aspect_dropdown.all_aspects');
}else if (number == 1) {
button.addClass(inAspectClass);
replacement = dropdown.find(".selected").first().text();
/* flash message prompt */
if( dropdown.closest('#publisher').length == 0 ) {
var message = Diaspora.I18n.t("aspect_dropdown.started_sharing_with", {name: dropdown.data('person-short-name')});
Diaspora.page.flashMessages.render({success: true, notice: message});
}
}else {
replacement = Diaspora.I18n.t('aspect_dropdown.toggle', { count: number.toString()})
}
button.text(replacement + ' ▼');
},
toggleCheckbox: function(check) {
if(!check.hasClass('radio')){
var selectedAspects = check.closest(".dropdown").find("li.radio");
AspectsDropdown.uncheckGroup(selectedAspects);
}
check.toggleClass('selected');
},
toggleRadio: function(check) {
var selectedAspects = check.closest(".dropdown").find("li");
AspectsDropdown.uncheckGroup(selectedAspects);
AspectsDropdown.toggleCheckbox(check);
},
uncheckGroup: function(elements){
$.each(elements, function(index, value) {
$(value).removeClass('selected');
});
}
};