-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Erstellen von Verknüpfungen on-the-fly #56
Comments
zu den Fragen:
|
Ich nehme mal die Kollegen mit in die Diskussion: @dragonfly28 @ejcsid |
Ich finde schon, dass die Referenzimplementierung dieses Feature bereits beinhalten könnte und sollte. Ich finde es im Arbeitsablauf sehr wichtig, dass es so eine Funktionalität gibt. Und damit sollte man sich auch überlegen, wie sich der Generator bzgl. dieses Features verhalten soll - z.B. ein on-the-fly Generieren des zu verknüpfenden Objekts standardmäßig immer ermöglichen. Dann wäre die DSL für so eine Komponente nach wie vor
|
Die Komponenten zu genrieren und in der DSL zur GUI Modellierung verwenden zu können sind aus meiner Sicht unterschiedliche Sachen. Wenn wir entscheiden so etwas ist wichtig, dann können wir sie generieren lassen. D.h. sie ist verfügbar und der Entwickler kann sie dann per Hand in die View einfügen. Der zweite Schritte wäre dann, sie in die GUI Modellierung mit auf zu nehmen. |
Ich finde dieses Feature super und fände es sehr gut, wenn wir es mitgenerieren würden. Wenn das zu aufwändig ist, verschieben wir es auf Barrakuda 2.1 (gibt es eigentlich eine Roadmap?). |
Wie gesagt bei solchen Sachen ist immer die Frage:
Fall 1 bedeutet immer einen Änderung an der DSL (die ich nicht überfrachten würde), Fall 2 kann man relativ einfach im Generator umsetzen, sofern man es einmal sauber implementiert hat. |
KISS!!! |
Mache ich im ersten Schritt für keepers. |
Modale Fenster funktionieren bei mir nicht. Siehe hierzu auch PolymerElements/paper-dialog#152. Ich werde das jetzt ohne modales Fenster implementieren. Aus meiner Sicht ist das kein Problem, weil ein Klick neben das Fenster dies einfach schließt. Nach dem Öffnen sind die Daten immer noch da. Insofern führt ein "Verklicken" nicht zu Datenverlust. |
Es funktioniert, wenn man das Element in die index.html packt, wie du es
auch schon mit dem toast machst. Siehe hier :
https://github.com/rowe42/bezweck-showcase/blob/master/index.html
Am 23.01.2018 10:49 vorm. schrieb "Claus Straube" <[email protected]
…:
Modale Fenster funktionieren bei mir nicht. Siehe hierzu auch
PolymerElements/paper-dialog#152
<PolymerElements/paper-dialog#152>. Ich werde
das jetzt ohne modales Fenster implementieren. Aus meiner Sicht ist das
kein Problem, weil ein Klick neben das Fenster dies einfach schließt. Nach
dem Öffnen sind die Daten immer noch da. Insofern führt ein "Verklicken"
nicht zu Datenverlust.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#56 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AYx7YdyDRcqCpcE2wUF9hVnZ8V_xcdPPks5tNasUgaJpZM4RcXQJ>
.
|
Ja, aber das passt nicht zum Anwendungsfall. Der Toast ist ein sehr generisches Ding, dem ich einfach einen Text schicke. Hier habe ich aber eine Komponente, die andere Komponenten in sich hat. Entweder habe ich n Dialoge (so viele wie wir Entiäten haben) in der index.html, oder ich manipuliere den DOM um da das Formular und die Buttons rein zu bekommen. Beides finde ich nicht gut. Dann lieber ohne modales Fenster. |
Ich finde, dass es konzeptionell dem Toast sehr ähnlich ist. In beiden Fällen gibt es einen generischen Rahmen, der fallspezifisch mit Inhalt befüllt wird. Ein Unterschied ist sicher, dass man sich rekursiv mehrere modale Fenster übereinander vorstellen kann. Um das 100% zu lösen reicht auch nicht, so viele modale Fenster vorzuhalten wie es Entitäten gibt, da ja auch eine rekursive Anlage innerhalb einer Entität (z.B. "Tier hat Vater") vorstellbar ist. Ich würde deshalb vorschlagen, generell eine pragmatsiche Anzahl (5?) von modalen Fenstern vorzusehen, und wenn die genutzt sind, "ist halt Schluss" (mehr Stack kann sich der Nutzer im Hirn ja auch nicht vorhalten). Was meinen denn die anderen? @Baumfrosch @Dr-Thomas-Tensi @ejcsid @dragonfly28 |
Das ist aber technisch dem Toast nicht sehr ähnlich. Beim Toast mache ich folgendes: index.html <paper-toast
id="global_success_toast"
always-on-top>
</paper-toast> Dann selektiere ich den in einer beliebigen Komponente und übergeben ihm die Nachricht als Property: _success() {
this._successToast.text = this.t('form_success');
this._successToast.open();
} Das ist einfach. Ich habe ein Property und ich habe kein Datahandling. Ein Dialog schaut aber so aus: <paper-dialog>
<h2>Dialog Title</h2>
<paper-dialog-scrollable>
<!-- DAS IST INDIVIDUELL UND ABHÄNGIG VOM SCOPE -->
<iron-form id="iform">
<form class="animad-keeper-create-dialog-form">
<animad-keeper-form data="{{_dialogdata}}" auto-validate></animad-keeper-form>
</form>
</iron-form>
</paper-dialog-scrollable>
<div class="buttons">
<!-- DAS IST ABHÄNGIG VOM SCOPE -->
<paper-button dialog-dismiss on-tap="_resetForm">cancel</paper-button>
<paper-button dialog-confirm on-tap="_saveDialog">save</paper-button>
</div>
</paper-dialog> Ich bette hier individuelle Struktur in den DOM ein (das hat nichts mit Stacking zu tun) UND ich brauche den Scope um die Datenverarbeiten zu können. Der Dialog hat definitiv nichts in der index.html verloren. |
Generell finde ich das Konzept mit dem Anlegen an der Relation gut (das steht auch so im Navigationskonzeptpapier ;-). Wir haben eine Schwierigkeit: bei alleinstehenden Relationen gibt es kein Ausgangsobjekt, bei einer eingebetteten Relation schon. Das muss man entweder in der DSL unterscheiden oder der Generator erkennt den Kontext.
Was spricht gegen eine vollständige Dialogumschaltung auf das neue Objekt? Nach der Anlage kann man wieder (mit einem History-Mechanismus z.B. per Knopf) zum ursprünglichen Objekt zurückkehren (die History der offenen Objekte könnte auch in der Navigationsleiste dargestellt werden, dann kann man hin und her klicken). |
@Dr-Thomas-Tensi du kannst gerne deine Meinung sagen, aber du schließt bitte nicht einfach irgend welche Issues. Das macht derjenige, der den Pull Request reviewed. Wenn beschlossen wird etwas nicht zu implementieren, dann macht es derjenige, der es eröffnet. Issues zu schließen um eine Diskussion abzuwürgen ist ein no go... @ejcsid hat den gerade gemerged, insofern kann das Issue geschlossen bleiben. |
@rowe42 wenn du dich nicht dieser Meinung
anschließen kannst, dann bitte dafür ein neues Issue aufmachen. Die geforderte Funktionalität ist erst einmal (ohne modales Fenster) implementiert. Ein modales Fenster ist wegen des oben beschriebenen Bugs eine größere Sache. Das sollten wir separat behandeln. |
Hi Claus, |
Kann ich dem modalen Fenster eine Komponente übergeben? |
@Baumfrosch ja, das kann ich. Aber dann habe ich immer noch nicht den scope. Ein modales Fenster ist nichts anderes als das: <!-- HIER WIRD MODAL REIN GESCHRIEBEN -->
<paper-dialog modal>
<h2>Dialog Title</h2>
<paper-dialog-scrollable>
<!-- DAS IST INDIVIDUELL UND ABHÄNGIG VOM SCOPE -->
<iron-form id="iform">
<form class="animad-keeper-create-dialog-form">
<animad-keeper-form data="{{_dialogdata}}" auto-validate></animad-keeper-form>
</form>
</iron-form>
</paper-dialog-scrollable>
<div class="buttons">
<!-- DAS IST ABHÄNGIG VOM SCOPE -->
<paper-button dialog-dismiss on-tap="_resetForm">cancel</paper-button>
<paper-button dialog-confirm on-tap="_saveDialog">save</paper-button>
</div>
</paper-dialog> |
Ich schlage aber vor diese Diskussion bei Bedarf in einem neuen Issue fortzuführen. Dort sollte dann auch rein geschrieben werden, welche Anforderungen so ein Dialogfenster erfüllen muss und wie wichtig die sind. Nur wegen eines Bugs und unklaren Anforderungen einen kruden Workaround (und das haben wir, wenn wir alle Dialoge in die index.html werfen) zu bauen halte ich nicht für sehr sinnvoll. |
Ich finde es schade, dass hier keine echte Diskussion zugelassen wird, sondern der Code einfach gemerged und das Issue geschlossen wird. Ein modales Fenster kann man erreichen, indem man in der index.html so etwas aufnimmt:
und an der Stelle, an der man das Fenster befüllen will, so etwas:
sowie JavaScript
Wo ist da jetzt das Problem? |
@rowe42 das sage ich dir gerne nochmal: Das Problem ist der SCOPE! Hatte ich glaube ich schon so sechs bis sieben mal erwähnt.
Auch das sage ich dir gerne nochmal: Mach dafür ein neues Issue auf und begründe warum der Dialog modal sein muss. Da können wir auch gerne diskutieren. Und wenn es da überhaupt kein Problem gibt, dann kannst du es gerne auch implementieren und beweisen. Aber auch du brauchst einen Scope um mit den Daten zu arbeiten. Für mich war das Hauptfeature, dass man eine Verknüpfung on the fly erstellen kann. In einem Dialogfenster. Das wurde implementiert. Und ja - sorry ich habe nicht erkannt, dass eigentlich die graue Fläche (die leider wegen eines Polymerbugs nicht richtig funktioniert) das Killerfeature ist. Aber du kannst da gerne ein neues Issue aufmachen. Hatte ich glaube ich schon zwei oder dreimal erwähnt. Ich diskutiere in diesem Issue auf jeden Fall nicht mehr mit. |
@xdoo Wo kann ich denn das Fenster in Aktion erleben? Es scheint so, dass _new in animad-relation-behaviour true sein müsste, und das wird, sobald in der HAL-Nachricht eine Relation "...New" enthalten ist. Aber in animad-animals-view wird http://demo7841195.mockable.io/animals/new referenziert, was es offenbar nicht gibt... |
Problem: In der aktuellen Implementierung kann man nur bereits existierende Elemente verknüpfen. Ein wichtiger Usecase wäre es aber, dass man Elemente on-the-fly erzeugen und dann gleich verlinken kann, ohne das aktuelle Element zu verlassen.
Beispiel Verknüpfungselement mit NEU-Button:
Optionen:
Eine Herausforderung für beide Optionen ist Rekursivität, also wenn innerhalb des on-the-fly zu erstellenden Objekts ein weiteres Objekt on-the-fly erstellt werden soll (also bei Option 2 ein modales Fenster oberhalb des modalen Fensters).
So könnte das modale Fenster aussehen:
Fragen:
The text was updated successfully, but these errors were encountered: