smartVisu Select-Widget mit Hash für schönere Optionen

Begonnen von marvin78, 10 November 2015, 07:46:55

Vorheriges Thema - Nächstes Thema

marvin78

Hier ein Widget, das eine Dropdownlist mit einem Hash befüllt (Optionsname und Text getrennt):

{% macro select_hash(id, gad, items, text) %}
    <div align="center">
    <label>
        <select id="{{ uid(page, id) }}" data-widget="basic.select_hash" data-item="{{ gad }}" data-native-menu="false" data-placeholder="false" />
        {% if text != '' %}
            <option>{{ text }}</option>
        {% endif %}
        {% for key, item in items %}
                <option value="{{ key }}">{{ item }}</option>
        {% endfor %}
        </select>
    </label>
    </div>
{% endmacro %}


Code für visu.js

$(document).delegate('select[data-widget="basic.select_hash"]', {
    'update': function (event, response) {
        $(this).val(response).selectmenu('refresh');
        $("#"+this.id+" option[value='"+response+"']").attr('selected',true);
    },

    'change': function (event) {
        // DEBUG:
        console.log("[basicext.select_uni] change '" + this.id + "':", $(this).prop("value"));
        io.write($(this).attr('data-item'), $(this).val() );
    }
});


Beispiel für den Einbau:

{{ basic.select_hash('messageTTS', 'messageDevice', {'TTSall':'alle','TTS':'Büro','BadTTS':'Bad','WzTablet':'Wohnzimmer','FlurTablet':'Flur'},'bitte wählen') }}

Vielleicht kann es jemand gebrauchen.

bruece-lee

Perfekt, genau das wonach ich schon länger gesucht hatte! Vielen Dank, funktioniert prima!

Gruß, Bruece-lee

dev0

Genial wäre es noch, wenn der Hash aus einem reading gelesen werden könnte. Hast Du dazu vielleicht eine Idee? Wäre praktisch für Playlisten oder Ähnliches.

RoBra81

Zitat von: dev0 am 27 November 2015, 09:20:14
Genial wäre es noch, wenn der Hash aus einem reading gelesen werden könnte. Hast Du dazu vielleicht eine Idee? Wäre praktisch für Playlisten oder Ähnliches.

Da ich mir gerade ein Widget für den SB_PLAYER baue, wäre das toll - gibt's da mittlerweile was?