#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:
basicaavanzadarefineBusquedarepInfo- Información de repositoríos por institucion para ser cargada dinámicamente en el panel de Búsqueda Avanzado
refineBusquedafacetada
######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.