lunes, 8 de septiembre de 2014

2.5.4 - Implementar las funciones

Implementando las funciones que implementan la funcionalidad

A continuación, incorporaremos las funciones JavaScript para las definiciones. Cada función en el código se ejecuta mediante un llamado a executeQueryAsync(), que se encarga de ejecutar los llamados pendientes que puedan existir en el servidor de forma asincrónica utilizando el client-side object model (CSOM) de SharePoint.
Es importante comentar que cuando una función es ejecutada de forma asincrónica, el script continúa ejecutándose sin esperar la respuesta del servidor.
Cada  llamado a executeQueryAsync(), incluye 2 manejadores de eventos (Event handlers). Uno de ellos se activa si la función se ejecutó de forma existosa, mientras que el otro responde si la función falló.
A continuación describimos las funciones que estaremos implementando y su objetivo:


  • welcome(): Obtiene una referencia al contexto web actual, y lo utiliza para obtener la información del usuario en el contexto actual.
  • getWebProperties(): Obtiene el listado de listas en la web actual, y devuelve el número de elementos que lo conforman.
  • displaylists(): Obtiene el listado de listas en la web actual. Si el resultado fue satisfactorio, la función se encarga de incluir el nombre de cada lista disponible en el listado de listas disponibles.
  • createlist(): Crea una lista genérica en SharePoint (utilizando el template de lista del tipo genericList) y le setea el nombre que especificó el usuario en el control createlistbox. Se pueden crear otros tipos de listas.  Para obtener un listado completo de tipos de listas, se puede acceder al siguiente link de MS.
  • deletelist(): Elimina la lista seleccionada por el usuario en el listado de listas disponibles.
Para incorporar el código, incluir luego de la función onGetUserNameFail() del archivo App.js las siguientes secciones de código para cada una de las funciones:

  • getWebProperties():
// función getWebProperties y sus Handlers

function getWebProperties() {
// Obtiene el número de listas en el contexto web actual.
context.load(lists);
context.executeQueryAsync(onWebPropsSuccess, onWebPropsFail);
}

function onWebPropsSuccess(sender, args) {
alert('Number of lists in web: ' + lists.get_count());
}

function onWebPropsFail(sender, args) {
alert('Failed to get list. Error: ' + args.get_message());
}















  •  displaylists()

// función displayLists y sus Handlers
    function displayLists() {
        // Obtiene las listas en el contexto web actual, y las carga en el contexto 
        lists = web.get_lists();
        context.load(lists);
        context.executeQueryAsync(onGetListsSuccess, onGetListsFail);
    }

    function onGetListsSuccess(sender, args) {
        // Listas obtenidas en forma satisfactoria. 
// Eliminar las referencias a los elementos del listado de las listas disponibles 
        var listEnumerator = lists.getEnumerator();
        var selectListBox = document.getElementById("selectlistbox");
        if (selectListBox.hasChildNodes()) {
            while (selectListBox.childNodes.length >= 1) {
                selectListBox.removeChild(selectListBox.firstChild);
            }
        }
        // Recorrer los elementos de las listas de SharePoint, e incluir los elementos    
        // en el listado de las listas disponibles
        while (listEnumerator.moveNext()) {
            var selectOption = document.createElement("option");
            selectOption.value = listEnumerator.get_current().get_title();
            selectOption.innerHTML = listEnumerator.get_current().get_title();
            selectListBox.appendChild(selectOption);
        }
    }

    function onGetListsFail(sender, args) {
        // La lista no pudo ser cargada en forma satisfactoria. Mostrar los errores
        alert('Error al obtener la lista. Error: ' + args.get_message());
    }


  • deletelist()
// función deletelist y sus Handlers
function deletelist() {
        // Borra la lista especificada por el usuario
        var selectListBox = document.getElementById("selectlistbox");
        var selectedListTitle = selectListBox.value;
        var selectedList = web.get_lists().getByTitle(selectedListTitle);
        selectedList.deleteObject();
        context.executeQueryAsync(onDeleteListSuccess, onDeleteListFail);
    }

    function onDeleteListSuccess() {
        displayLists();
    }

    function onDeleteListFail(sender, args) {
        alert('Error al eliminar la lista. ' + args.get_message());
    }


 


  • createlist()
// función createlist y sus Handlers
function createlist() {
        // Crear una lista de SharePoint utilizando el nombre especificado por el usuario.
        var listCreationInfo = new SP.ListCreationInformation();
        var listTitle = document.getElementById("createlistbox").value;
        listCreationInfo.set_title(listTitle);
        listCreationInfo.set_templateType(SP.ListTemplateType.genericList);
        lists = web.get_lists();
        var newList = lists.add(listCreationInfo);
        context.load(newList);
        context.executeQueryAsync(onListCreationSuccess, onListCreationFail);
    }

    function onListCreationSuccess() {
        displayLists();
    }

    function onListCreationFail(sender, args) {
        alert('Failed to create the list. ' + args.get_message());
    }


No hay comentarios.:

Publicar un comentario