Ja, bis auf diese Kleinigkeit in der Installationsbeschreibung (die ich persönlich auch gedanklich ergänzt habe :wink: ), sieht das richtig gut und komfortabel aus. :klasse:
Enterprise Policy Generator
-
Sören Hentzschel -
6. April 2018 um 00:44 -
Erledigt
-
-
Ja, schaut doch inzwischen so aus, als sei es bereits fertig.
Übersichtlich und praktisch selbsterklärend.Freut mich zu hören!
Und jetzt schaue ich mir deinen Quellcode an.
Super. Lass mich wissen, wenn du dazu Anmerkungen hast. Dass es noch etwas viel Code-Duplizierung gibt, ist mir bekannt, für nach Version 1.0 steht ein bisschen Code-Refactoring an. Ich will die Veröffentlichung der ersten Version nicht damit aufhalten. Auch könnte der Code deutlich mehr Kommentare vertragen. Das wird dann auch im Rahmen des Refactorings passieren.
Ich habe mich nämlich gestern tatsächlich dazu aufraffen können, mal meine erste Webextension zu scripten. Nicht Wildes - eine Tab/History-Liste in der Sidebar und als Popup - und natürlich relativ stark an den Beispielen orientiert. Und dazu habe ich jetzt mehr Fragen als mir lieb sind...
Gratulation zu den ersten Gehversuchen mit WebExtensions! Zöger nicht, deine Fragen zu stellen (in einem eigenen Thread dann natürlich ).
Sieht gut aus. Da ist jedoch ein kleiner Stolperer im String explanation_intro_windows„erstellen Sie ein Verzeichnis mit dem Namen „distribution“ in dem Verzeichnis, in welchem sich die Datei firefox.exe befindet und platzieren sie Datei „policies.json“ dort.“
Der fette Textteil soll sicherlich platzieren Sie die heißen. Hier hast du wohl zwei Wörter in eins „zusammengemoscht“, wie man hier in Sachsen sagt.
Danke, wird korrigiert!
In "explanation_intro_linux" ist der Fehler übrigens auch drin.
In Linux ist der Fehler auch drin, weil Copy & Paste und nur der unterschiedliche Teil angepasst worden ist.
-
Super. Lass mich wissen, wenn du dazu Anmerkungen hast. Dass es noch etwas viel Code-Duplizierung gibt, ist mir bekannt, für nach Version 1.0 steht ein bisschen Code-Refactoring an. Ich will die Veröffentlichung der ersten Version nicht damit aufhalten. Auch könnte der Code deutlich mehr Kommentare vertragen. Das wird dann auch im Rahmen des Refactorings passieren.
Na, da werde ich dir sicher nicht viel zu sagen haben. Ich habe ganz bestimmt weniger Erfahrung mit reinem Javascript als du, da ich ja jQuery-verwöhnt bin und deshalb selten darauf zurückgreifen musste. Ich kenne die Basics, aber vieles ist mir auch relativ unbekannt. So Konstrukte wie
sind mir fremd und ich frage mich, was will der Author mir damit sagen... :-??
Okay, querySelectorAll und forEach verstehe ich, aber was bedeutet :scope und überhaupt: was sollen die drei Punkte da...
Du siehst, meine Schwierigkeiten fangen bereits an, bevor ich überhaupt eine manifest.json erstellt habe.
Gratulation zu den ersten Gehversuchen mit WebExtensions! Zöger nicht, deine Fragen zu stellen (in einem eigenen Thread dann natürlich ).
Dankeschön.
Ich habe es lange vor mich hergeschoben (auch weil ich mich bissel vor dem reinen Javascript drücken wollte), aber das hat mich doch schon die ganze Zeit gereizt. Aller Anfang ist schwer, aber mit der Zeit werde ich mich da sicher auch reinfinden. Das Angebot nehme ich natürlich dankend an und werde bestimmt die nächsten Tage die ersten Fragen stellen. Momentan tue ich mir noch schwer mit den Strukturen. Ich habe z.B. heute das i18n eingebunden, aber es hat nicht sofort geklappt. Warum? Weil ich eine halbe Stunde gebraucht habe, um herauszufinden, dass man in der manifest eine default_locale vorgeben muss... -
Na, da werde ich dir sicher nicht viel zu sagen haben. Ich habe ganz bestimmt weniger Erfahrung mit reinem Javascript als du, da ich ja jQuery-verwöhnt bin und deshalb selten darauf zurückgreifen musste.
jQuery macht einem das Leben wirklich einfach, hat aber auch viel Overhead, so dass ich es gerne vermeide. Bei Firefox-Erweiterungen kommt dazu, dass die Verwendung von Bibliotheken zwar möglich, aber bei den Reviews eine Hürde ist, auf die ich verzichten möchte.
Ich kenne die Basics, aber vieles ist mir auch relativ unbekannt. So Konstrukte wie
sind mir fremd und ich frage mich, was will der Author mir damit sagen... :-??
Okay, querySelectorAll und forEach verstehe ich, aber was bedeutet :scope und überhaupt: was sollen die drei Punkte da...Die drei Punkte sind der sogenannte Spread-Operator:
https://developer.mozilla.org/de/docs/Web/Ja…Spread_operatorDer Unterschied ist, dass Folgendes eine NodeList zurückliefert:
el.querySelectorAll(':scope input')Und das liefert ein Array zurück:
[...el.querySelectorAll(':scope input')]Hier findest du einen Artikel über den Unterschied zwischen NodeList und Array:
https://toddmotto.com/a-comprehensiv…anding-the-dom/Eine Erklärung zu :scope findest du hier:
https://developer.mozilla.org/de/docs/Web/AP…ectorAll#QuirksMomentan tue ich mir noch schwer mit den Strukturen. Ich habe z.B. heute das i18n eingebunden, aber es hat nicht sofort geklappt. Warum? Weil ich eine halbe Stunde gebraucht habe, um herauszufinden, dass man in der manifest eine default_locale vorgeben muss...
Das passiert mir nicht, weil es in meinem Grundgerüst schon drin ist. Wenn du dir von meinem Enterprise Policy Generator die ersten beiden Commits ansiehst, siehst du, womit ich eigentlich immer starte:
https://github.com/cadeyrn/enterp…ba864ec1855a123
https://github.com/cadeyrn/enterp…77d2eb17da454b9Der erste Commit ist reiner Nicht-Erweiterungs-Code, der zweite Commit ein absolutes Basis-Gerüst für die WebExtensions. Du kannst ja generell mal die Commits durchgehen, damit du ein Gefühl dafür bekommst, wie ich so eine Erweiterung schrittweise aufbaue:
https://github.com/cadeyrn/enterp…a8708040cd3f+69
Meine i18n-Bibliothek ist aber definitiv nicht die leichteste Koste zum Lernen, weil ich darin XPath verwende. Das ist nicht das größte Vergnügen, aber einfach extrem mächtig.
-
Version 0.4 steht zum Download bereit:
https://github.com/cadeyrn/enterp…rator-0.4.0.xpiÄnderungen gegenüber Version 0.3:
- Neues Feature: es kann nun eine Info-URL für jede Policy hinterlegt werden; drei Policies besitzen bislang einen solchen Info-Link
- Neues Feature: bestimmte Policies können nun gesperrt werden, d.h. wenn die Option gesetzt ist, kann der Benutzer die getroffene Einstellung auch nicht verändern. Das ist für alle Policies implementiert, die das unterstützen.
- weitere kleinere Verbesserungen der vorhandenen Policies
Änderungen im Detail:
https://github.com/cadeyrn/enterp…v0.3.0...v0.4.0Damit bleiben noch offen: SearchEngines-Policy und Validierung von Pflichtfeldern.
-
Ich habe mal noch eine Frage zum String policy_description_DisableFirefoxAccounts:
„Deaktiviere Firefox Account basierende Dienste, einschließlich Firefox Sync“
Muss es hier nicht Firefox Accounts heißen, so wie der Entity-Name es vermuten lässt? Ich würde davor auch noch ein auf einfügen, besser noch einen Relativsatz daraus machen: „Deaktiviere Dienste, die auf Firefox Accounts basieren, ...“. Ich finde, das ist stilistisch besser.
-
Einverstanden, wird im nächsten Update geändert sein.
-
Ich will es ja nicht übertreiben, aber ich habe noch einen Vorschlag zum String policy_description_DisablePrivateBrowsing:
„Deaktiviere den Private Browsing-Modus“
Dieser Modus heißt meines Erachtens im deutschen Firefox allgemein Privater Modus. Der Konsistenz wegen sollte man dabei bleiben.
-
Danke und keine Sorge, als Übertreibung werte ich das nicht. Ich habe ja sogar darum gebeten, dass selbst Kleinigkeiten gemeldet werden, die nicht unbedingt falsch sein müssen, sondern euch anders einfach besser gefallen würden. Letztlich entscheide ich dann, ob ich das auch so sehe oder nicht, aber mit diesen Vorschlägen bin ich in jedem Fall einverstanden.
-
...
Vielen Dank für die Erklärung und die weiterführenden Links, Sören.ZitatThis then introduces the black box scenario for many new JavaScript developers, jQuery “just works”. If you’re one of those people, you’re probably going to tread on a nail one day and realise you’d wished you learned how the DOM really works with JavaScript, so here’s a quick lesson for you if you’re in that boat.
Eben mal kurz in den Todd Motto-Artikel geschaut: Meine Rede. So ähnlich geht es mir ja nun auch. Vielleicht nicht ganz so tragisch, weil ich immerhin die Basics kenne und nicht völlig unbedarft bin, aber ich musste schon schmunzeln.Zu deinen Commits stellen sich mir auch wieder Fragen, aber das würde hier zu weit führen. Das mache ich dann mal die Tage. :wink:
Die neue Version schaue ich mir dann morgen auch noch an.
-
Mach das. Ich beantworte gerne alle Fragen zu dem Code, den ich verbrochen habe.
-
Version 0.5 steht zum Download bereit:
https://github.com/cadeyrn/enterp…rator-0.5.0.xpiÄnderungen gegenüber Version 0.4:
- Unterstützung für den letzten Policy-Typen und damit nun auch Unterstützung für die Policy "SearchEngines". "Ändere die Liste der in Firefox eingebauten Suchmaschinen" unter "Anpassung" ist also dazu gekommen.
- Das Laden der Übersetzungen ist nun gefühlt wesentlich performanter, weil es nicht mehr zu einem deutlichen Flackern kommt (von "MSG_VARIABLENBEZEICHNUNG__" zum übersetzten Text).
Änderungen im Detail:
https://github.com/cadeyrn/enterp…v0.4.0...v0.5.0 -
Da gibt es wohl einen kleinen Fehler unter der neuen Richtlinie "SearchEngines". Es gibt zweimal den Eintrag Installation nicht verhindern:
-
Danke, ist korrigiert! Ich habe soeben die letzte Vorab-Version fertiggestellt. Wäre super, wenn da nochmal jemand drüber schauen könnte. Sollten keine Fehler mehr auffallen, wird die Version auf AMO veröffentlicht.
https://github.com/cadeyrn/enterp…rator-0.6.0.xpi
Änderungen gegenüber Version 0.5:
- Design für Auswahlfelder implementiert
- Pflichtfeld-Validierung hinzugefügt
Änderungen im Detail:
https://github.com/cadeyrn/enterp…v0.5.0...v0.6.0 -
Pflichtfeld-Validierung hinzugefügt
Das klappt noch nicht mit den Suchmaschinen.
Oder soll das so?
[attachment=0]search.PNG[/attachment] -
Okay, das hätte ich vielleicht dazu schreiben sollen. Die Validierung erfolgt derzeit nur visuell, d.h. Pflichtfelder werden markiert und wenn du die Felder ausfüllst, verschwindet die entsprechende Markierung. Ich werte das mal als Feedback, dass ich das noch in Version 1.0 implementieren soll, dass das dann auch nicht zum JSON hinzugefügt wird, richtig?
-
Richtig! So sehe ich Validierung in diesem Fall...
-
Erledigt:
https://github.com/cadeyrn/enterp…rator-0.7.0.xpiÄnderungen im Detail:
https://github.com/cadeyrn/enterp…v0.6.0...v0.7.0 -
Okay. :klasse:
Man könnte jetzt noch eine Validierung der Einträge vornehmen, aber ich denke, das kann man sich sparen. Wie ich schon vorher geschrieben habe, sollte ein User wissen, was er macht und in der Lage sein, dort eine gültige URL einzugeben.
Was ist mit "URL für Vorschläge" gemeint? -
Ich habe da noch eine Verständnisfrage zu der Einstellung "Die Installation neuer Suchmaschinen verhindern":
Was genau ist der Unterschied zwischen "keine Voreinstellung" und "Installation nicht verhindern"? Bewirken beide Einstellungen faktisch nicht dasselbe? -