Que es
El Grillo?
El Grillo es un plugin para Ruby on Rails que facilita el despliege de información de manera tabular. Las principales características son
- Paginación
- Búsqueda
- Ordenación por columnas
- Soporte para ActiveRecord/SQL
- Exportación a PDF y Microsoft Excel 2006
- Formateo de columnas, dependiendo de su tipo
- Ejecución de codigo ruby para operacióes entre columnas
- Acciones
El foco del Grillo esta en deplegar la información en html estandar, de esta manera cualquier navegador puede utilizarlo (Nada de AJAX).
El Grillo esta en etapa de desarrollo, asique usalo con cuidado. No dudes en preguntar o ayudar en lo que sea! Es la única manera de hacer que El Grillo crezca!
El Grillo usa Ruby FPDF y scio_excel.rb de Rolando Abarca Millán, para exportación a excel. Si quieres usar pdf o excel, vas a necesitarlos.
Instalación
El grillo puede ser usado como un plugin RoR. Para utilizarlo, puedes bajarlo al directorio vendor/plugins de tu proyecto. Además, puedes utilizar las imágenes y estilo que viene por defecto:
- Crea tu proyecto
- Apunta a la base de datos que vas a utilizar:
- Edita tu_proyecto/config/database.yml
- Copia el plugin del grillo:
-
cd tu_proyecto/vendor/plugins
-
svn co http://el-grillo.rubyforge.org/svn/trunk/vendor/plugins/grillo
- Copia las imagenes y estilo por defecto:
- cd ../../public
- rm -r images stylesheets
- svn export http://el-grillo.rubyforge.org/svn/trunk/public/images
- svn export http://el-grillo.rubyforge.org/svn/trunk/public/stylesheets
- cd ..
- Write, and start your project!
Puedes obtener el grillo desde el
repositorio del proyecto en
RubyForge.
Ejemplo
El Controlador:
def Ejemplo
@grid = Grillo.new(
:order=>order_options,
:search=>search_options,
:pages=>pages_options,
:export=>export_options,
:title=>"Calls from the outside"
)
@grid.add_column("calldate", :header=>'Date', :orderable=>true, :type=>:short_date)
@grid.add_column("clid", :header=>'Source', :type=>:phone, :searchable=>true, :orderable=>true)
@grid.add_column("dst", :header=>'Destiny', :type=>:phone, :orderable=>true)
@grid.add_column("duration", :header=>'Duration', :orderable=>true, :format=>'%s [min]', :type=>:number, :sql_select=>" duration/60 ")
@grid.add_column("dstchannel", :header=>'Channel')
@grid.add_column("disposition",:header=>'State', :orderable=>true)
@grid.add_column("lastapp", :header=>'Command')
@grid.fill_from_database(Cdr, :conditions=>"src!='' and duration>'25'")
end
La vista:
<%= render_grillo @grid %>
Produce la siguiente salida:
Baja el proyecto de ejemplo y pruebalo!
Docs
El principal compoente del Grillo son las columnas. Un grillo esta compuesto por columnas.
Hay 4 grupo de parametros para las columnas:
| Opción | Tipo | Descripción |
| Opciones de formato |
| :width | Número | Ancho de la columna. |
| :position | Número | Posición de la columna. |
| :header | Texto | Título de la columna. |
| :align | :center, :left, :right | Alineamiento. |
| Tipo de datos |
| :type | :string | El dato es un texto. (Alineado a la izquierda). |
| :type | :number | El dato es un número. (Alineado a la derecha). |
| :type | :percent | Número que termina con un '%'. |
| :type | :currency | Número que termina con un '$'. |
| :type | :phone | Número de teléfono. |
| :type | :link_to | Crea un link a alguna acción. |
| :type | :link_image_to | Crea un link de im´gen a una acción. |
| :type | :hidden | Es una columna 'hidden'. (Útil para forms) |
| :type | :hide | La columna no se muestra. Útil parar como dato en otras columnas |
| :options | Hash | Opciones que se aplican a los tipos. (p.e. :link_to and :image_link_to). |
| :format | String | Sobreescribe el formato por defecto. p.e. "%s [min]". |
| Opciones de datos |
| :code | String | Ejecuta codigo. Acepta primitivas Ruby. |
| :sql_select | String | Sobreescribe la parte del select que le corresponde a la columna. Permite ejecutar codigo SQL arbitrario. |
| :value | String | Permite la operacion entre columnas, referenciadas por su id. |
| Opciones de la columna |
| :searchable | Boolean | Habilita la búsqueda en esta columna. |
| :orderable | Boolean | Habilita el ordenamiento en esta columna. |
La otra parte del grillo, es la fuente de datos. El metodo 'fill_from_database' acepta 2 parametros, el objeto (modelo) que hace referencia a una tabla y un hash de parametros, los mismos que tiene el metodo find.
Probablemente te interese ver algunos
ejemplos que muestran las capacidades del grillo.
Créditos and
License
El Grillo es desarrollado por
Marcelo Soto Montes y Phillip Neumann. Soportado por TransTel Ltda Chile, Servicios y Soluciones de Negocios Móviles.
El software esta licenciado bajo la licencia MIT. 'Use at your own risk'