El Grillo
 

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

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:

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ónTipoDescripció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, :rightAlineamiento.
Tipo de datos
:type :stringEl dato es un texto. (Alineado a la izquierda).
:type :numberEl dato es un número. (Alineado a la derecha).
:type :percentNúmero que termina con un '%'.
:type :currencyNúmero que termina con un '$'.
:type :phoneNúmero de teléfono.
:type :link_toCrea un link a alguna acción.
:type :link_image_toCrea un link de im´gen a una acción.
:type :hiddenEs una columna 'hidden'. (Útil para forms)
:type :hideLa columna no se muestra. Útil parar como dato en otras columnas
:options HashOpciones que se aplican a los tipos. (p.e. :link_to and :image_link_to).
:format StringSobreescribe el formato por defecto. p.e. "%s [min]".
Opciones de datos
:code StringEjecuta codigo. Acepta primitivas Ruby.
:sql_selectStringSobreescribe la parte del select que le corresponde a la columna. Permite ejecutar codigo SQL arbitrario.
:value StringPermite la operacion entre columnas, referenciadas por su id.
Opciones de la columna
:searchableBooleanHabilita la búsqueda en esta columna.
:orderable BooleanHabilita 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'