Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
msinn committed Mar 31, 2023
2 parents c0cfb39 + ec7f7c5 commit 646146a
Show file tree
Hide file tree
Showing 195 changed files with 1,036 additions and 65,283 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
workflow_dispatch:
pull_request:
branches:
- 'develop'
- '!develop'

jobs:
build:
Expand Down
35 changes: 29 additions & 6 deletions .github/workflows/unittests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ on:
branches:
- '*'
- '!release_doc'
pull_request:
branches:
- 'develop'

jobs:
build:
Expand All @@ -24,24 +27,44 @@ jobs:
sudo apt-get install gcc --only-upgrade
- name: Get branch name
run: |
echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
echo ${GITHUB_REF#refs/heads/}
run: echo "branch=$(echo ${GITHUB_REF#refs/heads/})" >>$GITHUB_OUTPUT
id: extract_branch

- name: Checkout core from ${{steps.extract_branch.outputs.branch}} branch
- name: Workflow Information
run: |
echo github.event_name '${{ github.event_name }}'
echo github.workflow '${{ github.workflow }}'
echo github.action_repository '${{ github.action_repository }}'
echo github.actor '${{ github.actor }}'
echo github.ref_name '${{ github.ref_name }}'
echo github.ref '${{ github.ref }}'
echo github.base_ref '${{ github.base_ref }}'
echo github.head_ref '${{ github.head_ref }}'
echo github.pull_request.base.ref '${{ github.pull_request.base.ref }}'
echo steps.extract_branch.outputs.branch '${{ steps.extract_branch.outputs.branch }}'
- name: Checkout core from branch '${{ github.base_ref }} branch'
uses: actions/checkout@v3
with:
repository: smarthomeNG/smarthome
ref: ${{steps.extract_branch.outputs.branch}}
ref: ${{ github.base_ref }}

- name: Checkout plugins from ${{steps.extract_branch.outputs.branch}} branch (${{ github.event.pull_request.base.ref }})
- name: Checkout plugins from branch '${{steps.extract_branch.outputs.branch}}' (for push)
if: github.event_name != 'pull_request'
uses: actions/checkout@v3
with:
repository: smarthomeNG/plugins
ref: ${{steps.extract_branch.outputs.branch}}
path: plugins

- name: Checkout plugins from branch 'develop' (for pull request)
if: github.event_name == 'pull_request'
uses: actions/checkout@v3
with:
repository: smarthomeNG/plugins
ref: develop
path: plugins

- name: Set up Python
uses: actions/setup-python@v3
with:
Expand Down
7 changes: 5 additions & 2 deletions bin/shngversion.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,10 +94,13 @@
# Update auf 1.9.3.5 wg. Veränderungen am websocket Modul

# Update auf 1.9.4 wg. Release
# Update auf 1.9.4.1 wg. Kennzeichnung des Repo Stands als "nach dem v1.9.4 Release"

shNG_version = '1.9.4'
# Update auf 1.9.5 wg. Release

shNG_version = '1.9.5'
shNG_branch = 'master'
shNG_releasedate = '14. März 2023' # Muss beim Release für den master branch auf das Release Datum gesetzt werden
shNG_releasedate = '31. März 2023' # Muss beim Release für den master branch auf das Release Datum gesetzt werden

# ---------------------------------------------------------------------------------
FileBASE = None
Expand Down
4 changes: 2 additions & 2 deletions dev/sample_mqttplugin/webif/templates/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@
-->
{% set tab1title = "<strong>" ~ p.get_shortname() ~ " Items</strong> (" ~ item_count ~ ")" %}
{% block bodytab1 %}
<div class="container-fluid m-2 table-resize">

<!-- remove this div if not needed -->
<div class="mb-2">
{{ _('Hier kommt der Inhalt des Webinterfaces hin.') }} (optional)
Expand Down Expand Up @@ -161,7 +161,7 @@
<div class="mb-2">
Etwaige Informationen unterhalb der Tabelle (optional)
</div>
</div>

{% endblock bodytab1 %}


Expand Down
3 changes: 1 addition & 2 deletions dev/sample_plugin/webif/templates/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,6 @@
-->
{% set tab1title = "<strong>" ~ p.get_shortname() ~ " Items</strong> (" ~ item_count ~ ")" %}
{% block bodytab1 %}
<div class="container-fluid m-2 table-resize">
<!-- remove this div if not needed -->
<div class="mb-2">
{{ _('Hier kommt der Inhalt des Webinterfaces hin.') }} (optional)
Expand Down Expand Up @@ -226,7 +225,7 @@
<div class="mb-2">
Etwaige Informationen unterhalb der Tabelle (optional)
</div>
</div>

{% endblock bodytab1 %}


Expand Down
5 changes: 4 additions & 1 deletion doc/build_plugin_config_files.py
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,10 @@ def build_pluginlist( plugin_type='all' ):
else:
plugin_yaml = ''
if plugin_yaml != '':
section_dict = plugin_yaml.get('plugin')
try:
section_dict = plugin_yaml.get('plugin')
except Exception as e:
raise AttributeError(f"'{metafile}: Exception {e}")
if section_dict != None:
if section_dict.get('type') != None:
if section_dict.get('type').lower() in plugin_types:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,8 +107,7 @@ Bei Tabellen im bodytab werden die einzelnen Datenzeilen beim Rendern durch die
.. code-block:: html+jinja

{% block **bodytab1** %}
<div class="container-fluid m-2 table-resize">
<table id="maintable">
<table id="maintable" class="dataTableAdditional">
<thead>
<tr>
<th></th>
Expand All @@ -130,7 +129,6 @@ Bei Tabellen im bodytab werden die einzelnen Datenzeilen beim Rendern durch die
{% endfor %}
</tbody>
</table>
</div>
{% endblock **bodytab1** %}


Expand All @@ -157,8 +155,7 @@ pro Zeile eine leere Zelle einzufügen! Bei headtables sollten leere Spalten ver
...

{% block **bodytab1** %}
<div class="container-fluid m-2 table-resize">
<table id="maintable">
<table id="maintable" class="dataTableAdditional">
<thead>
<tr>
<th></th>
Expand All @@ -176,18 +173,16 @@ pro Zeile eine leere Zelle einzufügen! Bei headtables sollten leere Spalten ver
{% endfor %}
</tbody>
</table>
</div>
{% endblock **bodytab1** %}

Jetzt können die DOM-Elemente über die IDs ``fromip`` und ``<item>_value`` angesprochen werden.

.. warning::

Damit die Anzeige und Adaption der Datatables einwandfrei funktioniert, ist es elementar, den
Aufbau sauber und exakt aus dem Sampleplugin zu übernehmen. So muss beispielsweise die Tabelle
selbst in ein div gepackt werden, dem die Klasse ``table-resize`` zugewiesen ist. Außerdem
müssen leere Zellen am Anfang jeder Zeile eingefügt werden. Ein Angabe von Klassen ist nicht nötig,
da dies automatisch passiert.
Aufbau sauber und exakt aus dem Sampleplugin zu übernehmen. So müssen leere Zellen am Anfang jeder Zeile eingefügt werden. Eine Angabe von Klassen ist nicht nötig,
da dies automatisch passiert, wobei die Klasse ``dataTableAdditional`` gegebenenfalls
zu einem schnelleren Laden führen kann.


Erweitern der JavaScript-Funktion handleUpdatedData()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,18 +88,15 @@ Die folgenden Schritte dienen dazu, das Webinterface mit Leben zu füllen:
sowie der jeweiligen End-Tags. Außerdem muss jeder Tabelle eine einzigartige ID vergeben werden.
Sowohl im Tablehead als auch Tablebody ist eine leere erste Spalte einzufügen, die für das responsive
Feature der Datatables genutzt wird.
Die Klasse``table-resize`` ist zwingend dem ``<div>`` Tag, in dem sich die Tabelle befindet, hinzuzufügen,
um die automatische Anpassung der Datentabelle an die Fensterhöhe zu ermöglichen
(siehe auch index.html im Example-Plugin). Sollen ober- oder unterhalb der Tabelle zusätzliche Informationen
Sollen ober- oder unterhalb der Tabelle zusätzliche Informationen
angezeigt werden, müssen diese in einem ``<div class="mb-2">`` Tag stehen.

.. code-block:: html+jinja

<div class="container-fluid m-2 table-resize">
<div class="mb-2">
Informationen oberhalb der Tabelle
</div>
<table id="maintable">
<table id="maintable" class="dataTableAdditional">
<thead>
<tr>
<th></th>
Expand All @@ -122,7 +119,6 @@ Die folgenden Schritte dienen dazu, das Webinterface mit Leben zu füllen:
<div class="mb-2">
Informationen unterhalb der Tabelle
</div>
</div>



Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -132,8 +132,7 @@ Tabellen in einem ``bodytab?`` können mit einer Schleife befüllt werden, das i

{% block **bodytab1** %}

<div class="container-fluid m-2 table-resize">
<table id="maintable">
<table id="maintable" class="dataTableAdditional">
<thead>
<tr>
<th></th>
Expand All @@ -155,7 +154,6 @@ Tabellen in einem ``bodytab?`` können mit einer Schleife befüllt werden, das i
{% endfor %}
</tbody>
</table>
</div>
{% endblock **bodytab1** %}


Expand Down Expand Up @@ -183,8 +181,7 @@ Damit die IDs in den Wertetabellen eindeutig sind, verwenden wir die Variable au
...

{% block **bodytab1** %}
<div class="container-fluid m-2 table-resize">
<table id="maintable">
<table id="maintable" class="dataTableAdditional">
<thead>
<tr>
<th></th>
Expand All @@ -206,7 +203,6 @@ Damit die IDs in den Wertetabellen eindeutig sind, verwenden wir die Variable au
{% endfor %}
</tbody>
</table>
</div>
{% endblock **bodytab1** %}

Jetzt können die DOM-Elemente über die IDs ``fromip`` und ``<elem>_value`` angesprochen werden.
Expand All @@ -233,49 +229,45 @@ Wie weiter unten beschrieben, ist für jeden Button, der auf diese Weise impleme
eine eigene Handler-Routine erforderlich.

Wenn mehrere Buttons dieser Art vorgesehen sind, oder z.B. in einer Wertetabelle ein Button
in jeder Zeile stehen soll, dann bietet es sich an, statt einzelnen Button-Elementen eine Formularkonstruktion zu nutzen:
in jeder Zeile stehen soll, dann bietet es sich an, statt einzelnen Button-Elementen eine Formularkonstruktion zu nutzen. Um das automatische Skalieren von Tabellen zu gewährleisten,
sollte das ``form`` Element NACH der Tabelle deklariert werden.

.. code-block:: html+jinja

{% block bodytab1 %}
<div class="container-fluid m-2 table-resize">

<form id="button_pressed" action="" method="post">

<input type="hidden" id="button" name="button" value="" />
<table id="maintable">
<thead>
<table id="maintable" class="dataTableAdditional">
<thead>
<tr>
<th></th>
<th>{{ _('Attribut 1') }}</th>
<th>{{ _('Attribut 2') }}</th>
<th>{{ _('aktualisieren') }}</th>
<th>{{ _('Wert') }}</th>
</tr>
</thead>
<tbody>
{% for elem in data %}
<tr>
<th></th>
<th>{{ _('Attribut 1') }}</th>
<th>{{ _('Attribut 2') }}</th>
<th>{{ _('aktualisieren') }}</th>
<th>{{ _('Wert') }}</th>
<td></td>
<td>{{ data[elem]['attr1'] }}</td>
<td>{{ data[elem]['attr2'] }}</td>
<td>
<button
class="btn btn-shng btn-sm"
type="button"
onclick="$('#button').val('{{ elem }}');$('#button_pressed').submit();"
>lesen
</button>
</td>
<td id="{{ elem }}_value">{{ data[elem]['wert']</td>
</tr>
</thead>
<tbody>
{% for elem in data %}
<tr>
<td></td>
<td>{{ data[elem]['attr1'] }}</td>
<td>{{ data[elem]['attr2'] }}</td>
<td>
<button
class="btn btn-shng btn-sm"
type="button"
onclick="$('#button').val('{{ elem }}');$('#button_pressed').submit();"
>lesen
</button>
</td>
<td id="{{ elem }}_value">{{ data[elem]['wert']</td>
</tr>
{% endfor %}
</tbody>
</table>

{% endfor %}
</tbody>
</table>
<form id="button_pressed" action="" method="post">
<input type="hidden" id="button" name="button" value="" />
</form>

</div>
{% endblock bodytab1 %}


Expand Down
Loading

0 comments on commit 646146a

Please sign in to comment.