Code Monkey home page Code Monkey logo

gift-editor's People

Contributors

pedroblanco avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

gift-editor's Issues

Decidir diseño de interfaz general

Hay que decidir el diseño que el interfaz va a tener. Por ahora vamos a utilizar 3 paneles/columnas (de izquierda a derecha):

  1. Editor de texto GIFT:
    • Contiene los controles para crear, editar, importar y procesar el texto en formato GIFT. Al procesar el texto lo vamos a visualizar en el segundo panel.
    • Una vez hemos procesado el texto para llevarlo al siguiente panel no tiene mucho sentido que siga abierto, porque la edición de las preguntas se hará en el siguiente panel y no vamos a actualizar el texto GIFT según editamos las preguntas, es una operación que sólo se necesitaría cuando hemos terminado de trabajar con ellas.
  2. Panel de lista de preguntas.
    • Muestra la lista de preguntas con la que estamos trabajando. Podremos editar sus atributos y contenido, ordenarlas, eliminarlas y crear nuevas.
  3. Panel de lista de categorías:
    • Muestra las categorías que tenemos. Normalmente sólo nos interesa si hay más de una categoría definida en el grupo de trabajo, por lo que no haría falta mostrar el panel si sólo estamos trabajando con una categoría (podríamos ocultar por defecto el panel y mostrar una etiqueta o alguna notificación que indique el número de categorías y la categoría activa).

El diseño horizontal podría estar dividido en varias franjas que ocupen todo el ancho de la ventana:

  • Franja superior con título, enlaces/menús de configuración general y ayuda.
  • Franja de control de las columnas/paneles:
    • Con las columnas 1 y 3 ocultas deberíamos mostrar controles para mostrarlas si así lo queremos. Mostradas podrían tener anchos 3-6-3 (o 4-4-4, aunque es cuestión de probar). Si sólo mostramos una columna de las 1 o 3, podrían tener un ancho de 4 y dejar 8 para la columna
  • Franja con mensajes de ayuda.
  • Franja final con información del proyecto, autor, ...

Posible problema: +function

Posible problema en la librería bootstrap-validator al definir la función principal como:

+function

Tal vez hay que cambiarla en la portabilidad a gift-app-1

Aprender del interfaz de Waffle

Aprender del interfaz de Waffle en cosas como las textareas que sólo muestran el borde cuando tienen el foco, el uso del título entero como handle de draggable, ...

Mostrar correctamente la información de relleno

Mostrar la información de relleno cuando una zona de de trabajo quede vacía (p.e. el acordeón de preguntas) no debe hacerse con toggle, sino con show y hide, para ejecutarlos cuando realmente queda vacía esa sección y cuando le entra contenido, respectivamente.

Estudiar: Orden de tabulado de campos

Hay que estudiar el orden de tabulado de campos al añadir o editar preguntas, pues ahora mismo tras los campos el siguiente botón es cancelar y no aceptar.

Estudiar la gestión de categorías

Hay que estudiar cómo (si) vamos a gestionar las diferentes categorías.

En un primer momento, si vamos a trabajar con archivos individuales, podríamos considerarlos de la misma categoría y no hacer nada más.

En caso de que dentro del archivo se definan varias categorías tal vez sí que deberíamos poder gestionar esas categorías.

Hacer textarea no resizable

Hacer el textarea de entrada de GIFT no resizable (horizontalmente) para que no sobrelape los demás elementos.

Utilizar menú superior

Podemos utilizar el menú superior para añadir de forma rápida ejemplos y configurar el comportamiento de ciertas acciones (p.e. si la conversión entre GIFT y preguntas sobrescriben el destino o se añaden al final, tanto en un sentido como en el otro).

WISH: Deshacer/rehacer

Estudiar en qué contextos tienen sentido y cómo se podrían implementar las operaciones deshacer y rehacer

Exportar la lista de preguntas a GIFT

Una vez hayamos terminado de definir/editar/ordenar/... las preguntas, deberíamos poder convertirlas a GIFT (texto mostrado y/o enlace de descarga).

Texto GIFT: descarga de resultado

Añadir un enlace para descargar el archivo generado.

Ver cómo PEG-parser crea un enlace con el archivo en data:... por si nos fuera útil, aunque no creo que funcione en gift-app-1.

Generar GIFT parcial para cada pregunta

Al crear o modificar una pregunta de forma gráfica, deberíamos crear/actualizar un campo interno que contenga el texto GIFT de esa pregunta, para poder mostrarlo de forma individual y que sea más sencilla la exportación a GIFT.

Texto GIFT: destino de conversión

El textarea del editor GIFT que usamos como origen de las preguntas debería recibir el resultado de la operación convertir a GIFT.

El resultado podría ser sustituir el contenido o añadirlo, para poder ir añadiendo preguntas al final, aunque si no podemos reconocer las preguntas existentes mejor no añadir y sí sustituir.

Corregir el final de texto GIFT introducido

El actual parser de GIFT (v4) necesita que haya 3 retornos de carro (2 líneas en blanco) al final del texto GIFT a parsear, por lo que hay que asegurarse que de corregir el final del texto GIFT introducido (especialmente mediante el cuadro de texto, pero también el archivo subido) para añadir las líneas necesarias.

Otra posibilidad es mejorar el parser para que coja correctamente el final del texto, pero por ahora es más sencillo hacerlo en el cliente.

Editar los atributos de cada pregunta

Estudiar si la edición de los atributos de las preguntas se hace inline o mediante un diálogo (si es inline no es necesario botón si hacemos que todos los campos sean editables estilo waffle).

Añadir pregunta: Limpiar campos

Como reutilizamos los diálogos modales para añadir preguntas del mismo tipo, debemos limpiar los campos cada vez que abrimos un modal de este tipo.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.