Projet

Général

Profil

Bug #43626

rafraichissement des select « template-meetings » et gestion des créneaux "disabled"

Ajouté par Thomas Noël il y a presque 4 ans. Mis à jour il y a presque 4 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
04 juin 2020
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Sur un agenda Chrono qui renvoie des créneaux "disabled", il me semble que #41364 ne gère pas cet attribut quand il est renvoyé en live.

En live on fait :

  function fill_with_items(items) {
    $select.empty();
    $('<option value=""></option>').appendTo($select);
    for (var i=0; i<items.length; i++) {
      var $option = $('<option></option>', {value: items[i].id, text: items[i].text});
      var date = new Date(items[i].datetime);
      $option.attr('data-weekday', WEEKDAYS[date.getDay()]);
      $option.attr('data-date', items[i].datetime.slice(0, 10));
      $option.attr('data-time', items[i].datetime.slice(11, 16));
      $option.appendTo($select);
    }
  }

alors qu'en statique, juste au dessus, on a :

  {% for option in widget.get_options %}
    {% with datetime=option.options.datetime|parse_datetime %}
    <option{% for attr in option.attrs.items %} {{attr.0}}="{{attr.1}}"{% endfor %}
          data-weekday="{{ datetime|date:"l" }}" 
          data-date="{{ datetime|date:"Y-m-d" }}" 
          data-time="{{ datetime|date:"H:i" }}" 
      >{{ option.description }}</option>
    {% endwith %}
  {% endfor %}

et je pense que la partie option.attrs.items a été oubliée.


Fichiers

Révisions associées

Révision 1d4e6f84 (diff)
Ajouté par Thomas Noël il y a presque 4 ans

templates: handle disabled choices when meetings live changes (#43626)

Historique

#2

Mis à jour par Thomas Noël il y a presque 4 ans

#3

Mis à jour par Serghei Mihai (congés, retour 15/05) il y a presque 4 ans

A partir de Jquery 1.6 il faut faire prop("disabled", true), apparemment: https://api.jquery.com/prop/

#4

Mis à jour par Thomas Jund il y a presque 4 ans

Quel bordel ce Jquery :p
Et pourquoi pas faire du JS directement, quand c'est plus simple ?

element.disabled = true;
#5

Mis à jour par Thomas Noël il y a presque 4 ans

Ok, je ne veux me battre avec personne du w3c merci :)

J'utilise ici prop() pour faire comme un peu plus bas dans le même fichier js, et ne rien inventer.

(Testé sur mon ffox 77 ça marche tout bien)

#6

Mis à jour par Serghei Mihai (congés, retour 15/05) il y a presque 4 ans

  • Statut changé de Solution proposée à Solution validée
  • Assigné à mis à Thomas Noël
#7

Mis à jour par Thomas Noël il y a presque 4 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit 1d4e6f848ceb9e4aaaf528cb53344c2ec171a7e0
Author: Thomas NOEL <tnoel@entrouvert.com>
Date:   Thu Jun 4 13:57:58 2020 +0200

    templates: handle disabled choices when meetings live changes (#43626)

#8

Mis à jour par Thomas Noël il y a presque 4 ans

Juste pour préciser quand même par rapport à Thomas :

faire du JS directement

Je suis d'accord avec ça, of course, mais je ne m'y connais pas assez pour savoir ce qu'on peut déjà faire ou pas. Et donc j'ai préféré être "conservateur" ici.

#9

Mis à jour par Frédéric Péters il y a presque 4 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF