Skip to content
Snippets Groups Projects
populate-selects.js 1.92 KiB
Newer Older
Daniel's avatar
Daniel committed
AppSelect.prototype.fulfillmentOfSelect = function(data) {
  // 1) Remember options
  appSelect.rememberStateOfSelect(data);
  // 2) Delete options
  appSelect.depopulateSelect(data.selectID);
  // 3) Set options
  appSelect.populateSelect(data);
}

AppSelect.prototype.rememberStateOfSelect = function(data) {
  var indexOfCurrentlySelectedOption = $('#' + data.selectID).prop('selectedIndex');
  if (indexOfCurrentlySelectedOption != -1) {
    data.selected = indexOfCurrentlySelectedOption;
  }
}

AppSelect.prototype.populateSelect = function(data) {
  if(!data.hasOwnProperty('selected')) {
    data.selected = 0;
  }

  if(!data.hasOwnProperty('title')) {
    data.title = {
      'pl': data.text.pl,
      'en': data.text.en
    };
  }

  if(document.body.className == 'pl') {
    $.each(data.value, function(i, val) {
      if(i == data.selected) {
        $('#' + data.selectID).append(
          '<option selected title="' + data.title.pl[i] + '" value="' + val + '">' + data.text.pl[i] + '</option>'
        );
      } else {
        $('#' + data.selectID).append(
          '<option title="' + data.title.pl[i] + '" value="' + val + '">' + data.text.pl[i] + '</option>'
        );
      }
    });
  } else if (document.body.className == 'en') {
    $.each(data.value, function(i, val) {
      if(i == data.selected) {
        $('#' + data.selectID).append(
          '<option selected title="' + data.title.en[i] + '" value="' + val + '">' + data.text.en[i] + '</option>'
        );
      } else {
        $('#' + data.selectID).append(
          '<option title="' + data.title.en[i] + '" value="' + val + '">' + data.text.en[i] + '</option>'
        );
      }
    });
  }
}

AppSelect.prototype.depopulateSelect = function(id) {
  $('#' + id).empty();
}

AppSelect.prototype.clearCheckedFields = function(id) {
  $('#' + id).find('input').each(function() {
    this.checked = false;
  });
}

function AppSelect() {}

var appSelect = new AppSelect();