New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

filter-creator

Package Overview
Dependencies
Maintainers
1
Versions
27
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

filter-creator

modal filter creator for spider-city

  • 0.1.22
  • npm
  • Socket score

Version published
Weekly downloads
9
decreased by-65.38%
Maintainers
1
Weekly downloads
 
Created
Source

filter-creator

Ejecución del creador de filtros

Carga del módulo en cliente

En uno de nuestros ficheros HTML, JSP... debemos hacer referencia a la librería de la siguiente manera:

<script src='<%=request.getContextPath() %>/resources/js/filter/FilterCreator.dist.min.js' charset="UTF-8"></script>

Inicilizar el componete

Debemos inicializar el componente de la siguiente manera.

<script type="text/javascript" charset="UTF-8">
        var initConfig = {            
            locale: 'locale',
            dateFormats: {dateFormats},
            contextPath: 'contextPath',
            theme: 'theme'
        };
		FilterCreator.init(initConfig);
</script>
  • locale: Idioma que se usará

  • dateFormats: objeto en el que le pasamos los formatos de las fechas. Ejemplo:

    { "year": "YYYY", "month": "MM/YYYY", "day": "DD/YYYY/MM", "week": "DD/MM/YYYY WW" }

  • contextPath: elcontexto de donde se obtendran los datos de servidor

  • theme: tema que se usará para generar los filtros. Las constantes se obtienen de la siguiente manera:

    FilterCreator.THEMES.NONE FilterCreator.THEMES.BOOTSTRAP FilterCreator.THEMES.IK_WI_2 FilterCreator.THEMES.IK_WI_3

Ejemplo:

<script type="text/javascript" charset="UTF-8">

        var initConfig = {
            locale: 'eu',
            dateFormats: {
                "year": "YYYY",
                "month": "MM/YYYY",
                "day": "DD/YYYY/MM",
                "week": "DD/MM/YYYY WW"
            },
            contextPath: 'http://localhost:8087',
            theme: 'theme'
        };
		FilterCreator.init(initConfig);
</script>

Generar el filtro

Generaremos el filtro con la funcion generateFilter que acepta un solo parametro que es un objeto con parametros de configuración de dicho filtro.

var filterConfig = {            
    targetContainerId: string,
    data: object,
    ajaxUrl: string,
    type: string,
    callback: function,
    small: boolean
};
FilterCreator.generateFilter(filterConfig);

Las propiedades del objeto son las siguientes:

  • targetContainerId: contenedor donde se renderizara el filtro
  • data: Objeto con la definicion de los inputs que se renderizaran. Si ajaxUrl no es null, esta propiedad se ignora.
  • ajaxUrl: url de la ruta donde obtendrenos los inputs que se renderizaran.
  • type: tipo de renderizado del filtro (se explica más profundamente más adelante)
  • callback: [opcional] funcion que seejecutara despues de renderizar el filtro
  • small: [opcional] en caso de renderizar un modal, boolean para poner el modal con un ancho de 400px en vez de 600px

Ejemplo con datos en crudo:

var filterData = 
    [
         [
             {
                 "type": "number",
                 "name": "number1",
                 "label": "number 1"
             }
         ]
    ];
var filterConfig = {            
    targetContainerId: 'filterContainer',
    data: filterData,
    type: FilterCrator.FILTER_TYPES.PLAIN_FILTER
};
FilterCreator.generateFilter(filterConfig);

Ejemplo con datos obtenidos desde servidor:

var url = "data/filterData";
var filterConfig = {            
    targetContainerId: 'filterContainer',
    ajaxUrl: url,
    type: FilterCrator.FILTER_TYPES.PLAIN_FILTER
};
FilterCreator.generateFilter(filterConfig);

###Tipos de filtro

FilterCrator.FILTER_TYPES.PLAIN_FILTER

Se renderiza el filtro en el contenedor indicado en targetContainerId.

FilterCrator.FILTER_TYPES.CHART_MODAL_FILTER

Es la misma funcionalidad de Añadir un filtro especifico (mas adelante en la documentacion).

Genera el filtro en un modal (tipo bootstrap) con el id {targetContainerId]+-filter. Por ejemplo, si targetContainerId es container, el id del modal generado sería container-filter.

El boton que enseña dicho modal es responsabilidad del usuario.

FilterCrator.FILTER_TYPES.TABLE_MODAL_FILTER

Es la misma funcionalidad de Añadir un filtro de componente tabla (mas adelante en la documentacion).

Genera el filtro en un modal con el id {targetContainerId]+-filter. Por ejemplo, si targetContainerId es container, el id del modal generado sería container-filter.

FilterCrator.FILTER_TYPES.MULTIPLE_CHART_MODAL_FILTER

Es la misma funcionalidad de Añadir un filtro general (mas adelante en la documentacion).

Genera el filtro en un modal con el id filterModalque afecta a todos los graficos puestos en targetContainerId (separados por coma).l modal generado sería container-filter.

Añadir un filtro especifico (deprecated)

Por último necesitamos un div que lo contenga, cuyo id le proporcionaremos al componente.

El segundo parametro es un array de arrays. Cada array es un conjunto de inputs que se agruparan en un contenedor con la clase "well" de bootstrap.

FilterCreator.render("id del contenedor del grafico",
    [
        [{input1A}, {input1B}, ...],
        [{input2A}, {input2B}, ...],
        ...
    ],
    {options} [optional]
);

Ejemplo:

FilterCreator.render("chart",
    [
        [
            {"type": "text", "name": "inputPru", "defaultValue": "default", "label": "label"},
            {"type": "date", "name": "date2", "label": "date2"}
        ],
        [
            {"type": "dateFromTo", "name": "dateFromTo", "label": "label3"}
        ]
    ],
    {small: true}
);

Añadir un filtro general (deprecated)

Elprimer parametro es una lista de los graficos a los que afecta el filtro separado por puntocoma ";".

El segundo parametro es un array de arrays. Cada array es un conjunto de inputs que se agruparan en un contenedor con la clase "well" de bootstrap.

FilterCreator.renderGeneral("content-intensity;content-users;content-duration",
    [
        [{input1A}, {input1B}, ...],
        [{input2A}, {input2B}, ...],
        ...
    ],
    {options} [optional]
);

Ejemplo:

FilterCreator.renderGeneral("chart",
    [
        [
            {"type": "text", "name": "inputPru", "defaultValue": "default", "label": "label"},
            {"type": "date", "name": "date2", "label": "date2"}
        ],
        [
            {"type": "dateFromTo", "name": "dateFromTo", "label": "label3"}
        ]
    ]
);

Añadir un filtro de componente tabla (deprecated)

El comportamiento es igual que el de un filtro especifico, pero en vez de a la funcion render se le llama a la funcion renderForTable con los mismos parametros.

##Definicion del parametro opcional "options"

{
    "small": true,
    "callback": function(){}
}

small: [optional] El modal por defecto tiene un tamaño de 600px. Si le ponemos la opcion small a true tendra un ancho de 400px. Util cuando solo tenemos un imput y así centrarlo. Ese input tambien debe tener un tamaño de 12 columnas. callback: [optional] Callback que se ejecutara al finalizar el renderizado del formulario.

Definicion de los distintos inputs

Texto

Input de texto normal

Cuadro de Mando Integral

Se construye de la siguiente manera:

{
	"type": "text",
	"name": "input_name",
	"defaultValue": "default_value",
	"label": "label"
}
  • [obligatorio] type: "text"
  • [obligatorio] name: nombre que llevara el input en el formulario
  • [obligatorio] label: etiqueta que irá junto al input
  • defaultValue: valor que se pondra por defecto
  • size: Tamaño del input. 6 por defecto (Entre 1 y 12)

Numerico

Input de numerico

Se construye de la siguiente manera:

{
	"type": "number",
	"name": "input_name",
	"defaultValue": "default_value",
	"label": "label"
}
  • [obligatorio] type: "numeric"
  • [obligatorio] name: nombre que llevara el input en el formulario
  • [obligatorio] label: etiqueta que irá junto al input
  • defaultValue: valor que se pondra por defecto
  • size: Tamaño del input. 6 por defecto (Entre 1 y 12)

Checkbox

Input de checkbox

Cuadro de Mando Integral

Se construye de la siguiente manera:

{
	"type": "checkbox",
	"name": "checkbox",
	"label": "checkbox",
	"checked": true
}
  • [obligatorio] type: "checkbox"
  • [obligatorio] name: nombre que llevara el input en el formulario
  • [obligatorio] label: etiqueta que irá junto al input
  • checked: si es true el checkbox aparecera seleccionado, si es false aparecera deseleccionado. Si el parametro no se envia por defecto saldrá seleccionado.
  • size: Tamaño del input. 6 por defecto (Entre 1 y 12)

Select

Input de select

Cuadro de Mando Integral

Se construye de la siguiente manera:

{
	"type": "select",
	"name": "select",
	"label": "select",
	"options": [
		{"value": "a", "text": "a"},
		{"value": "b", "text": "b"},
		{"value": "c", "text": "c"}
	]
}
  • [obligatorio] type: "select"
  • [obligatorio] name: nombre que llevara el input en el formulario
  • [obligatorio] label: etiqueta que irá junto al input
  • size: Tamaño del input. 6 por defecto (Entre 1 y 12)
  • selected: opcion que saldrá por defecto. tiene que ser un valor igual al value de los option. Si no lo encuentra pone el primer valor.
  • [obligatorio] options: array de las opciones del select
    • [obligatorio] value: valor de la opcion
    • [obligatorio] text: texto de la opcion

Select Dependido

Input de select al que el onchange afecta a otro select

Cuadro de Mando Integral

Se construye de la siguiente manera:

{
	"type": "selectDependant",
	"name": "select",
	"label": "select",
	"options": [
		{"value": "a", "text": "a"},
		{"value": "b", "text": "b"},
		{"value": "c", "text": "c"}
	],
	"optionKey": "paramoption",
	"affects": "select2",
	"url": "/data/list"
}
  • [obligatorio] type: "selectDependant"
  • [obligatorio] name: nombre que llevara el input en el formulario
  • [obligatorio] label: etiqueta que irá junto al input
  • size: Tamaño del input. 6 por defecto (Entre 1 y 12)
  • optionKey: clave del parametro que se pasa a la llamada url. Por defecto paramoption
  • selected: opcion que saldrá por defecto. tiene que ser un valor igual al value de los option. Si no lo encuentra pone el primer valor.
  • [obligatorio] affects: name del select al que afecta
  • affectsSelected: opcion que saldrá por defecto en el select dependiente. tiene que ser un valor igual al value de los option. Si no lo encuentra pone el primer valor.
  • [obligatorio] url: url a la que se hace la llamada ajax. En la llamada ajax se le pasara el argumento options y como valor el value del select. Ej: /data/list?option=valueSelect
  • [obligatorio] options: array de las opciones del select
    • [obligatorio] value: valor de la opcion
    • [obligatorio] text: texto de la opcion

Radiobutton

Input de radiobutton

Cuadro de Mando Integral

Se construye de la siguiente manera:

{
	"type": "radio",
	"name": "radio2",
	"label": "radio2",
	"size": "12",
	"options": [
		{"value": "a", "text": "a"},
		{"value": "b", "text": "b"},
		{"value": "c", "text": "c"}
	]
}
  • [obligatorio] type: "radio"
  • [obligatorio] name: nombre que llevara el input en el formulario
  • [obligatorio] label: etiqueta que irá junto al input
  • size: Tamaño del input. 6 por defecto (Entre 1 y 12)
  • [obligatorio] options: array de las opciones del radiobutton
    • [obligatorio] value: valor de la opcion
    • [obligatorio] text: texto de la opcion
    • checked: si es true este valor será el que sale por defecto

Hidden

Input oculto (hidden)

Se construye de la siguiente manera:

{
	"type": "hidden",
	"name": "nombre",
	"value": "valor"
}
  • [obligatorio] type: "hidden"
  • [obligatorio] name: nombre que llevara el input en el formulario
  • [obligatorio] value: valor que llevara el input en el formulario

Date

Input de fecha. por defecto lleva la fecha del día de hoy

Cuadro de Mando Integral

Se construye de la siguiente manera:

{
	"type": "date",
	"name": "date1",
	"label": "date1",
	"date": new Date()
}
  • [obligatorio] type: "date"
  • [obligatorio] name: nombre que llevara el input en el formulario
  • [obligatorio] label: etiqueta que irá junto al input
  • size: Tamaño del input. 6 por defecto (Entre 1 y 12)
  • date: Fecha que sale por defecto. (Si no se le pone nada pone el dia de hoy)

Date From-To

Monta el componente completo para seleccionar rango de fecha radiobuttons incluidos

Cuadro de Mando Integral

Se construye de la siguiente manera:

{
	"type": "dateFromTo",
	"name": "dateFromTo",
	"label": "label3",
	"from": new Date(new Date().getTime() - 86400000 * 31),
	"to": new Date(),
	"checked": {"yearly": true},
	"show": {"yearly": true,"monthly": true,"daily": true}
}
  • [obligatorio] type: "dateFromTo"
  • [obligatorio] name: nombre que llevara el input en el formulario
  • [obligatorio] label: etiqueta que irá junto al input
  • from: fecha por defecto para el campo FROM
  • to: fecha por defecto para el campo TO
  • checked: para elegir granularidad por defecto. Hay que enviarle una de las siguientes opciones a true: yearly, monthly, daily, weekly
  • show: para elegir que opciones salen en la granularidad. Si no se defino show por defecto salen los cuatro. Si se define show hay que definir las opciones yearly, monthly, weekly y daily. Para que aparezcan estas tienen que ser true. No aparecen si se definen como false o si no se definen.

Date Changeable

Monta un input de date con radiobuttons para poder cambiar el formato de la fecha

Cuadro de Mando Integral

Se construye de la siguiente manera:

{
	"type": "dateChangeable",
	"name": "dateChangeable",
	"label": "label4",
	"date": new Date(),
	"checked": {"yearly": true}
	"show": {"yearly": true,"monthly": true,"daily": true}
}
  • [obligatorio] type: "dateChangeable"
  • [obligatorio] name: nombre que llevara el input en el formulario
  • [obligatorio] label: etiqueta que irá junto al input
  • date: fecha por defecto para el campo de fecha
  • checked: para elegir granularidad por defecto. Hay que enviarle una de las siguientes opciones a true: yearly, monthly, daily, weekly
  • show: para elegir que opciones salen en la granularidad. Si no se defino show por defecto salen los cuatro. Si se define show hay que definir las opciones yearly, monthly, weekly y daily. Para que aparezcan estas tienen que ser true. No aparecen si se definen como false o si no se definen.

¿A quien puedo preguntar?

  • Andoni Fernandez Pina
  • andoni.fernandez@ikusi.net

Keywords

FAQs

Package last updated on 09 Mar 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc