sallesma / IF-BackOffice

Back Office for the Festival's mobile app
1 stars 1 forks source link

Interface - Buttons #2

Closed flo-sch closed 10 years ago

flo-sch commented 10 years ago

Hello,

Je ne sais pas si vous faites souvent des BO full-asynchrones, Perso je préfère souvent du PHP direct, plus facile à débugger, Et à maintenir si le nombre d'entités augmente ;

Mais si vous préférez AJAX, Une petite piste d'amélioration :

http://getbootstrap.com/javascript/#buttons

Bootstrap v3, de base, permet des boutons avec "loading state", en gros juste un texte de chargement que vous appliquez le temps d'un appel AJAX :)

<input type='submit' class='btn btn-success' data-loading-state='Loading...' />
<script>
    var $button = $('#button'),
        refresh = function (response) {
            console.log('refresh content);
        };

    $button.on('click', function (e) {
        // Set button state as loading
        // NB : $(this) == $button, in this scope... But not on AJAX callback of course !
        $button.button('loading');
        // Send AJAX request
        $.ajax({
            'type': 'post',
            'url': '/something',
            'data': {
                'foo': 'bar'
            }
    }).done(function (response) {
        // Manage success
        refresh.apply(this, [response]);
    }).fail(function (error) {
        // Manage error
        console.error(error);
    }).always(function () {
        // Reset button state
        $button.button('reset');
    });
</script>
sallesma commented 10 years ago

Oui, j'utilise ça au taff aussi. Actuellement on essaye de finir et d'avoir un truc fonctionnel, on n'a pas la masse de temps et on préfère ne pas entamer de nouveaux changements.

Mais c'est une idée pour la suite, oui.

flo-sch commented 10 years ago

Ouaip c'était juste une suggestion pour le futur :)

sallesma commented 10 years ago

Peut être même qu'on peut virer les mots dans nos boutons et utiliser juste des signes comme ça :

screen shot 2014-06-14 at 10 57 17 Au lieu de : screen shot 2014-06-14 at 10 59 06

Ça prendrait moins de place. On peut toujours utiliser l'état loading et mettre un petit spinner dedans

flo-sch commented 10 years ago

Ça se fait très bien avec font-awesome, associé a Twitter Bootstrap :

http://fortawesome.github.io/Font-Awesome/icons/

sallesma commented 10 years ago

Ça tombe bien parce que je pensais aussi à font awesome :)

Je vais faire ça dans la semaine

sallesma commented 10 years ago

Sur les news j'arrive à ça : screen shot 2014-06-15 at 17 15 26

screen shot 2014-06-15 at 17 20 03