myva v1.0

myva.js

Summary

No overview generated for 'myva.js'


Method Summary
static void arvioi(transport)
           Käsittelee salasanan vaihdon palautteen, onnistuiko salasanan vaihtaminen.
static void changePasswordAjax()
           Suorittaa salasanan vaihdon (ajax) lomakkeen changePasswordForm tietojen mukaan.
static void closeAjaxPopup()
           Sulkee ajax-ponnahdusikkunan.
static Object dailyReportAjax(<int> campaign_id)
           Avaa ajax-ponnahdusikkunaan Miten menee?
static Object isBlankString(<String> str)
           Palauttaa totuusarvon, onko parametrina annettu merkkijono tyhjä.
static Object openPopup(<Element> a_element, <String> features, <String> windowName)
           Avaa a-elementin href-attribuutin sisältämän URL:n ponnahdusikkunassa.
static Object popupSubmit(<Form> form, <String> features, <String> windowName)
           Lähettää html-lomakkeen ja avaa palvelimen lähettämän vastauksen ponnahdusikkunaan.
static Object showAjaxMessage(<int> campaign_id)
           Näyttää ajax-ponnahdusikkunassa kampanjaan liittyvän viestin.
static void showAjaxPasswd()
           Avaa salasananvaihtoikkunan (ajax).
static Object showAjaxSearchContacts()
           Avaa ajax-ponnahdusikkunan, johon ladataan hakulomakkeella lähetetyn haun tulokset.
static Object validateSearchCampaignsForm(<Element> search_form)
           Validoi hakulomakkeen tiedot ennen lähetystä.

/**
 * Ponnahdusikkunan oletusasetukset katenoitavaksi koko- ym asetusten kanssa.
 * @deprecated Tulisi käyttää: Myva.defaultPoputFeatures 
 */
var defaultPopupFeatures = 'menubar=no,toolbar=no,location=no,resizable=yes,scrollbars=yes,dependent=yes';


/**
 * Myva-otus, joka sisältää yleisiä tietokenttiä järjestelmän tilasta.
 * @constructor
 */
Myva = {
/**
 * Ponnahdusikkunan oletusasetukset katenoitavaksi koko- ym asetusten kanssa.
 */
  defaultPopupFeatures: 'menubar=no,toolbar=no,location=no,resizable=yes,scrollbars=yes,dependent=yes',
/**
  * Boolean: Onko selain Internet Explorer
  */
  is_IE: (navigator.userAgent.indexOf(' MSIE ') >= 0)
}

/**
 * Boolean: Onko selain Internet Explorer 7
 */
Myva.is_IE7 = (Myva.is_IE && navigator.userAgent.indexOf(' MSIE 7') >= 0);


/**
 * Asettaa Myva-olioon tiedot nykyisen URL:n osista. Vastaavat CakePHP:n vastaavia $params-taulukon alkoioita.
 * 
 * @param {String} base_url URL:n perusosa
 * @param {String} controller Kontrollerin nimi
 * @param {String} action Metodin nimi
 * @param {Array} pass Metodille annetut parametrit taulukossa
 */
Myva.setUrlData = function(base_url, controller, action, pass) {
  Myva.base_url = base_url;
  Myva.controller = controller;
  Myva.action = action;
  Myva.pass = pass;
  Myva.encoding = 'iso-8859-1';
}


/**
 * Lähettää html-lomakkeen ja avaa palvelimen lähettämän vastauksen ponnahdusikkunaan.
 * Käytetään form-elementin onsubmit-attribuutissa, esim.
 * onsubmit="return popupSubmit(this, Myva.defaultPopupFeatures);"
 *
 * @param {Form} form Lähetettävä lomake.
 * @param {String} features Ponnahdusikkunan ominaisuudet (window.open -parametri).
 * @param {String} windowName Ponnahdusikkunalle annettava nimi. Ei pakollinen parametri.
 * @return true
 */
function popupSubmit(form, features, windowName) {
  if (!windowName) {
    windowName = 'myva_popup' + (new Date().getTime());
  }
  form.target = windowName;
  window.open ('', windowName, features);
  return true;
}


/**
 * Avaa a-elementin href-attribuutin sisältämän URL:n ponnahdusikkunassa.
 * Käytetään a-elementin onclick-attribuutissa, esim.
 * onclick="return openPopup(this, Myva.defaultPopupFeatures);"
 *
 * @param {Element} a_element Kohdeosoitteen sisältävä a-elementti.
 * @param {String} features Ponnahdusikkunan ominaisuudet (window.open -parametri).
 * @param {String} windowName Ponnahdusikkunalle annettava nimi. Ei pakollinen parametri.
 * @return false
 */
function openPopup(a_element, features, windowName) {
  if (!windowName) {
    windowName = 'myva_popup' + (new Date().getTime());
  }
  window.open (a_element.href, windowName, features);
  return false;
}


/**
 * Validoi hakulomakkeen tiedot ennen lähetystä.
 * Toistaiseksi tarkistaa ainoastaan, ettei lomake ole tyhjä.
 * Käytetään form-elementin onsubmit-attribuutissa, esim.
 * onsubmit="return validateSearchCampaignsForm(this);"
 *
 * @param {Element} search_form Validoitava hakulomake.
 * @return false, jos validointi epäonnistui, muutoin showAjaxSearchContacts()-kutsun paluuarvo.
 */
function validateSearchCampaignsForm(search_form) {
  var input_fields = $(search_form).getElementsBySelector('input[type="text"]');
  for (var i = 0; i < input_fields.length; ++i) {
    if (! isBlankString(input_fields[i].value)) {
      break;
    }
  }
  if (i == input_fields.length) {
    alert('Ole hyvä ja määritä hakuehdot.');
    return false;
  } else {
    //avaa ajaxruutu
    return showAjaxSearchContacts();
    //return popupSubmit(search_form, 'left=100,top=100,width=1024,height=600,' + Myva.defaultPopupFeatures);
  }
}


/**
 * Palauttaa totuusarvon, onko parametrina annettu merkkijono tyhjä.
 * Tyhjäksi katsotaan myös arvot undefined ja null sekä pelkkiä välilyöntejä sisältävät merkkijonot.
 *
 * @param {String} str Tarkistettava merkkijono.
 * @return boolean, oliko merkkijono tyhjä. 
 */
function isBlankString(str) {
  return (str === undefined || str === null || str.match(/^[ ]*$/));
}

/**
 * Avaa salasananvaihtoikkunan (ajax).
 * Elementin ajaxpopup (id) class-attribuuttiin lisätään arvo "password".
 */
function showAjaxPasswd(){
		//TODO viittausongelma
		var myAjax = new Ajax.Updater(
			'ajaxpopup', 
			Myva.base_url + "/users/changePassword", 
			{
				method: 'get',
				onSuccess: function(){
                  $("ajaxpopup").addClassName("password");
				}				
			});
	}
  
/**
 * Suorittaa salasanan vaihdon (ajax) lomakkeen changePasswordForm tietojen mukaan.
 */  
	function changePasswordAjax(){
		//TODO viittausongelma
		new Ajax.Request(Myva.base_url + '/users/changePassword', {
  			parameters: $('changePasswordForm').serialize(true),
  			onSuccess: arvioi
  		});
	}

  /**
   * Käsittelee salasanan vaihdon palautteen, onnistuiko salasanan vaihtaminen. 
   * 
   * @param {} transport Ajax-kutsun palaute.
   */
	function arvioi(transport){
		var response = transport.responseText || "no response text";		
      	
      	try{
      	
      	var transport = transport;
      	var answer = transport.responseXML.documentElement.getElementsByTagName('response');
      	
      	var value = transport.responseXML.documentElement.getElementsByTagName('response')[0].textContent; 
      	
      	
      	if (value == 1){
      		alert("Salasanan vaihto onnistui");      		      		
      		closeAjaxPopup();
      	} else if (value == 0)
      	{
      		alert("Vanha salasana väärin tai salasanat eivät täsmää");
      	} else {
      		alert("Tuntematon virhe");
      	}
      	} catch (error){
      		alert("Xml-dokumentin parserointi ei onnistunut");
      	}
	}
	
  /**
   * Sulkee ajax-ponnahdusikkunan. Poistaa elementin (id="ajaxpopup") lapset ja asettaa
   * elementin class-attribuutin arvoksi (ainoastaan) "ajaxpopup".
   */
	function closeAjaxPopup(){
            var popup_element = $('ajaxpopup');
			var children = popup_element.childNodes;

            while (children.length > 0){
              Element.remove(children[0]);
            }
            popup_element.className = 'ajaxpopup';
      		//Element.remove('passwordbox');
	}


  /**
   * Avaa ajax-ponnahdusikkunan, johon ladataan hakulomakkeella lähetetyn haun tulokset.
   * Elementin ajaxpopup (id) class-attribuuttiin lisätään arvo "search_contacts".
   *
   * @return false
   */
  function showAjaxSearchContacts() {
    var myAjax = new Ajax.Updater(
      'ajaxpopup', 
      Myva.base_url + "/campaigns/searchContacts", 
      {
        method: 'post',
        parameters: $('search_campaigns_form').serialize(true),
        onSuccess: function(){
          $("ajaxpopup").addClassName("search_contacts");
        }
      });
     return false;
  }
  
  
  /**
   * Näyttää ajax-ponnahdusikkunassa kampanjaan liittyvän viestin.
   * Elementin ajaxpopup (id) class-attribuuttiin lisätään arvo "show_message".
   *
   * @param {int} campaign_id Kampanjan tunniste.
   *
   * @return false
   */
  function showAjaxMessage(campaign_id) {
    var myAjax = new Ajax.Updater(
      'ajaxpopup', 
      Myva.base_url + '/campaigns/showMessage' + '/' + campaign_id, 
      {
        onSuccess: function(){
          $("ajaxpopup").addClassName("show_message");
        }
      });
     return false;
  }
  
  
  /**
   * Avaa ajax-ponnahdusikkunaan Miten menee? -ikkunan.
   * Elementin ajaxpopup (id) class-attribuuttiin lisätään arvo "daily_report".
   *
   * @param {int} campaign_id Kampanjan tunniste.
   *
   * @return false
   */
  function dailyReportAjax(campaign_id) {
    var myAjax = new Ajax.Updater(
      'ajaxpopup', 
      Myva.base_url + '/campaignsUsers/dailyReport' + '/' + campaign_id, 
      {
        onSuccess: function(){
          $("ajaxpopup").addClassName("daily_report"); //!!
        }
      });
     return false;
  }

myva v1.0

Documentation generated by JSDoc on Fri Aug 24 10:02:55 2007