Reports page: move export-button disable/re-enable into a Stimulus controller
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 72/100
- Tipo de issue
- Refactorización
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- javascript, jquery, rails
- Área
- frontend
Línea de trabajo
Empieza con app/javascript/src/reports.js, el listener global de clics que deshabilita el botón de exportar, pone data-disable-with y lo vuelve a habilitar después de 3 segundos. Luego revisa los dos botones con .report-form-submit en app/views/reports/index.html.erb, alrededor de las líneas 42 y 125. Se considera terminado cuando un controlador de Stimulus registrado en controllers/index.js controla ambos botones, se eliminan reports.js y su require, pasa una prueba de Jest en app/javascript/tests/ y bundle exec rspec spec/system/reports está en verde. Comenta en el issue para que te asignen primero.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
What
On /reports, the export buttons have .report-form-submit. app/javascript/src/reports.js (plain JS, a global click listener) disables the button, swaps its text to data-disable-with, submits, and re-enables it after 3 seconds. That last step matters because the download doesn't reload the page. Turn this into a small Stimulus controller.
Checklist
- Add
app/javascript/controllers/report_submit_controller.js(or a better name) with the same behavior, and register it incontrollers/index.js - Wire both buttons in
app/views/reports/index.html.erb(lines ~42 and ~125) - Delete
app/javascript/src/reports.jsand itsrequire - Add a Jest test in
app/javascript/__tests__/ -
bundle exec rspec spec/system/reportspasses
Before you start
- Comment here to be assigned. Setup is
bin/setup, thenbin/dev. Logins are in the README. - JS tests:
npm run test. Lint:bin/lint. - Part of #7301 (removing jQuery). Keep this PR to just this file.
- Lenguaje dominante
- Ruby
- Estrellas
- 382
- Forks
- 547
- Merge medio
- 2 d 22 h
- PR fusionados (30 d)
- 46
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Incluye un Dockerfile o un archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de rubyforgood/casa
-
Remove leftover Cloud66 custom_web process from ProcfilePosiblemente ocupada @ShahadatTest la tomó hoy. AbiertoDifficulty: Easy Good First Issue
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
rubyforgood/casa#7330 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
dependencies Difficulty: Easy Good First Issue
Dificultad 1/5 Menos de una hora Aptitud para principiantes 82/100
rubyforgood/casa#7325 ·
Los mantenedores suelen responder en 1 día
-
Difficulty: Easy Good First Issue Help Wanted javascript
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
rubyforgood/casa#7310 ·
Los mantenedores suelen responder en 1 día
-
Difficulty: Easy Good First Issue Help Wanted javascript
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
rubyforgood/casa#7309 ·
Los mantenedores suelen responder en 1 día
-
🖥️ Frontend Difficulty: Easy Good First Issue Help Wanted javascript
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
rubyforgood/casa#7308 ·
Los mantenedores suelen responder en 1 día
Todos los issues de rubyforgood/casa
Issues similares
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
zold-io/zold-ruby-sdk#85 ·
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 62/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100