jeudi 10 mai 2012

Sondage SharePoint PARTIE 2

Sondage SharePoint PARTIE 2,
                message sur la page de retour.


Et en SharePoint 2010, comment j'aurais écrit la même chose mais cette fois en bénéficent de EcmaScript de SharePoint 2010. Pour référence voici la partie 1

Chargement
Dans un premier temps je veux utiliser la librairie "sp.js".


CODE:
              ExecuteOrDelayUntilScriptLoaded(initialize, "sp.js");


Cette ligne de code permet de m'assurer que ma librairie est charger dans ma page avant d'initialisé mon traitement. Effectivement les librairies Javascript sont chargés dans la page de façon asynchrone. Cette ligne me protège.


CODE COMPLET
<script language="javascript" type="text/javascript">

   ExecuteOrDelayUntilScriptLoaded(initialize, "sp.js");
    function initialize()
    {
            var LIST_NAME = getParameterByName("ListName"); // nom de la liste de sondage
            var listSurvey = null;
            if(LIST_NAME == undefined || LIST_NAME== '')
            {
                     return;
             }

            var clientContext = new SP.ClientContext.get_current();

                if (clientContext != undefined && clientContext != null)
                {
                     var web = clientContext.get_web();
                     listSurvey = web.get_lists().getByTitle(LIST_NAME);
                     var query = SP.CamlQuery.createAllItemsQuery();
                     surveys = listSurvey.getItems(query);
                     clientContext.load(surveys , 'Include(Completed)');
                     var success = Function.createDelegate(this, this.onSuccess);
                     var failure = Function.createDelegate(this, this.onFailure);
                     clientContext.executeQueryAsync(success , failure );
                 }
          }

           function onSuccess(sender, args)
          {
                 var COMPLETED = '1'; //if 1 then is completed
                 var MESSAGE_SONDAGE_COMPLETED = "Merci d'avoir participer au sondage.";
                 var MESSAGE_SONDAGE_NOT_COMPLETED = "Revenez participer au sondage une prochaine fois.";

                 if(this.surveys!= undefined && this.surveys!=null )
                  {

                        var ListEnumerator = this.surveys.getEnumerator();
                        ListEnumerator.moveNext();
                        var currentItem = ListEnumerator.get_current();

                         if(currentItem == undefined)
                         {
                             $("#message").html(MESSAGE_SONDAGE_NOT_COMPLETED);
                             return;
                          }

                        var completedValue = currentItem.get_item('Completed');

                        if(completedValue == COMPLETED )
                          { 
                            $("#message").html(MESSAGE_SONDAGE_COMPLETED);
                          }
                         else
                          {
                             $("#message").html(MESSAGE_SONDAGE_NOT_COMPLETED);
                          }
                   }
           }

          function onFailure(sender, args)
          {
             $("#message").html(MESSAGE_SONDAGE_NOT_COMPLETED);

         }


          /// Find query string
         function getParameterByName(name)
         {
             name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
             var regexS = "[\\?&]" + name + "=([^&#]*)"; var regex = new RegExp(regexS);
             var results = regex.exec(window.location.search); if(results == null) return "";
             else return decodeURIComponent(results[1].replace(/\+/g, " "));
          }

       </script>

       <div id="message">Revenez participer au sondage une prochaine fois.</div>

Aucun commentaire:

Enregistrer un commentaire