#BDNG
Biblioteca Digital de Nueva Generación
###Búsquedas
La aplicación de búsquedas de BDNG está compuesta por dos partes, aplicación Front-end (JavaScript) y Back-end (xQuery). Se recomienda tener conocimiento previo de xQuery para poder entender mejor la estructura y funcionamiento del Back-end.
Aquí algunos links que pueden ser de gran utilidad.
-
FunctX XQuery Function Library
Al trabajar sin ningún framework todo el código se encuentra contenido dentro de funciones,
libraryModules
. Sin embargo algunos archivos hacen la función de controladores en el modelo MVC.- procesarAdministracion.xq
- procesarBusquedad.xq
- procesarNavegacion.xq
####Organización de archivos
.
├── index.xq
├── layout
│ └── application_layout.xq
├── libraryModules
│ ├── busquedaAvanzada.xq
│ ├── busquedaBasica.xq
│ ├── certificacionRegistros.xq
│ ├── columnLeft.xq
│ ├── configVariables.xq
│ ├── display.xq
│ ├── features
│ │ └── liveSearch.xq
│ ├── feed.xq
│ ├── repositorios.xq
│ └── salidaFacetada.xq
├── navegacion.xql
├── procesarAdministracion.xq
├── procesarBusquedad.xq
├── procesarNavegacion.xq
├── repositoriosTree.xq
├── resources
│ ├── Images
│ ├── css
│ │ ├── app
│ │ │ ├── admin.css
│ │ │ ├── basic.css
│ │ │ └── displayRecords.css
│ │ ├── general
│ │ │ ├── chosen.css
│ │ │ ├── jackedup.css
│ │ │ ├── jquery.reject.css
│ │ │ ├── nanoscroller.css
│ │ │ ├── redmond
│ │ │ │ ├── images
│ │ │ │ └── jquery-ui-1.8.17.custom.css
│ │ │ ├── stylePaginate.css
│ │ │ └── tipTip.css
│ │ └── images
│ └── js
│ ├── app
│ │ ├── admin.js
│ │ ├── app.js
│ │ ├── commonFunctions.js
│ │ ├── navegacion.js
│ │ └── stopWords.js
│ └── general
│ ├── chosen.jquery.min.js
│ ├── humane.min.js
│ ├── jquery-1.7.1.min.js
│ ├── jquery-ui-1.8.17.custom.min.js
│ ├── jquery.jsonp.min.js
│ ├── jquery.nanoscroller.min.js
│ ├── jquery.paginate.js
│ ├── jquery.reject.min.js
│ ├── jquery.tipTip.minified.js
│ ├── jquery.xmlns.js
│ ├── modernizr.js
│ └── spin.min.js
├── temp.html
├── test
│ ├── test.js
│ ├── test_index.xq
│ └── test_procesarBusqueda.xq
└── user
├── Session.xq
├── User.xq
├── activarUsuario.xq
├── changePassword.xql
├── configWeb.xq
├── controllerLogin.xq
├── css
│ ├── colorbox.css
│ ├── default-style.css
│ ├── display.css
│ ├── front.css
│ ├── register.css
│ └── tipsy.css
├── images
├── js
│ ├── captcha.js
│ ├── jquery.colorbox.js
│ ├── jquery.tipsy.js
│ ├── jquery.validate.js
│ ├── jsLogin.js
│ ├── jsRegister.js
│ ├── jsUsuarios.js
│ └── load.js
├── loginF.xq
├── logout.xql
├── mail.xq
├── newAdmin.xq
├── profile.xql
├── recaptcha.xqm
├── recuperarPassword.xq
├── register.xq
├── retrievePass.xq
├── testmail.xq
└── updateConf.xq
Toda la parte del front-end se puede ver como una single-page application (SPA), ya que toda la interacción en esta, es a través de llamados asíncronos (Ajax) al Back-end. index.xq
es el único archivo que es enviado directamente desde el servidor.
La aplicación del Front-end se encuentra en:
$ resources/js/app
En esencia es Javascript puro, junto con jQuery. Se recomiendo en gran medida, para futuros desarrollos la utilización de algún framework del lado del cliente para el manejo y organización de todo el código JavaScript.
######Recomendaciones
├── layout
│ └── application_layout.xq
├── index.xq
├── navegacion.xql
├── procesarAdministracion.xq
├── procesarBusquedad.xq
├── procesarNavegacion.xq
├── repositoriosTree.xq
Todos los archivos procesar*.xq
(controladores) son los encargados de redireccionar las peticiones que llegan al servidor hacia las funciones especificas dentro de libraryModules
.
######procesarAdministracion.xq
Este archivo recibe las peticiones para las acciones certify
y delete
cuando el usuario es un administrador. Estas acciones hacen parte de la funcionalidad de Validación de Documentos desde la aplicación de Búsquedas por parte del administrador.
######procesarBusquedad.xq
Este archivo recibe las peticiones de búsqueda para:
basica
avanzada
refineBusqueda
repInfo
- Información de repositoríos por institucion para ser cargada dinámicamente en el panel de Búsqueda Avanzado
refineBusqueda
facetada
######procesarNavegacion.xq
Este archivo recibe la petición para navegacionFacetar
; utilizada en la vista de navegación (navegacion.xql
), la cual es cargada con Ajax.
├── libraryModules
│ ├── busquedaAvanzada.xq
│ ├── busquedaBasica.xq
│ ├── certificacionRegistros.xq
│ ├── columnLeft.xq
│ ├── configVariables.xq
│ ├── display.xq
│ ├── features
│ │ └── liveSearch.xq
│ ├── feed.xq
│ ├── repositorios.xq
│ └── salidaFacetada.xq
Aquí es donde se encuentra toda la lógica de negocio para las funcionalidades específicas. Y es aquí donde se debe tener un buen conocimiento previo de xQuery.