Difference between revisions of "JKey Player & JKey Editor"

From Biowikifarm Metawiki
Jump to: navigation, search
 
(21 intermediate revisions by the same user not shown)
Line 4: Line 4:
  
 
== Todos JKey Player ==
 
== Todos JKey Player ==
 +
* neue Bilder für historyActiveOn & historyActiveOff
 
* Stresstest
 
* Stresstest
  
== Todos JKey Editor==
+
== Todos JKey Editor ==
 +
* neues Bild für edtIconActionEdit
 
* Renummerierung der Couplets beim Bewegen
 
* Renummerierung der Couplets beim Bewegen
: a) Referenzen der coupletIDs im coupletMemory Tauschen
+
: a) Referenzen der zu den coupletIDs gehörenden objs mit den itemIDs im coupletMemory tauschen
: b) für alle itemIDs zugehörig zu einer coupletID (siehe coupletMemory) die unnamed_x mit class jedtCoupletID_jedtParseLeadID suchen und analog zu coupletId Wechsel anpassen
+
: b) transformiert: für alle itemIDs zugehörig zu einer coupletID (siehe coupletMemory) die ...unnamed_x (die mit class jedtCoupletID_jedtParseLeadID) suchen und analog zu coupletID den Wechsel anpassen
: c) analog alle unnamed_x mit class jedtNextCouplet anpassen (Achtung: für alle couplets, die nicht in den Bearbeiten-Modus überführt wurden, ist das Flag wasEdit nicht gesetzt worden im coupletMemory - alos entwedern neues Flag mit neuem Wert da einführen und beim Serialisieren beachten oder direkt im jedtParsedPageData ändern)
+
: c) transformiert: analog ...unnamed_x (die mit class jedtNextCouplet), sprich "Next Lead" anpassen, wenn nötig
 +
: d) transformiert: alle ...unnames_xc (die mit class jedtCoupletBacklink) anpassen, wenn nötig
 +
: e) nicht transformiert: dt-nodeid suchen und Inhalt in der cell direkt ändern; nach leadalt suchen und schaun ob "(\d+)" und anpassen, wenn nötig
 +
: f) nicht transformiert: "span.leadon a" links anpassen, wenn nötig
 +
: g) natürlich auch "alle anderen Couplets" betrachten und ändern, die auf die "bewegten" verweisen ("Next Lead" || "span.leadon a")
 +
: h) Achtung: für alle Couplets, die nicht in den Bearbeiten-Modus überführt wurden, ist das Flag wasEdited natürlich noch nicht gesetzt worden im coupletMemory - also entwedern neues Flag mit neuem Wert einführen im itemID obj und dann beim Serialisieren beachten oder direkt im jedtParsedPageData in den uniqueParsedID objs ändern (letzteres würde verlangen, das die felder dann einzeln serialisiert werden); bei "alle anderen Couplets" auch Änderungen merken
 +
: i) die IDs der beiden getauschten Rows mit class edtCouplet sowie table mit class coupletItems anpassen -> letzten Teil ..._coupletX bzw ..._coupletItemsX das X
 +
* Renummerierung aller Couplets beim Speichern
 
* Stresstest
 
* Stresstest
  
== Aufbau jedtParsedPageData und coupletMemory ==
+
== Infos JKey Player ==
 +
* wenn in "Key Start" ein field: "flags" existiert, kann mit den Werten "jkey-autostart" und "jkey-nocontrols" zusätzliche Funktionalität gesteuert werden
 +
* "jkey-autostart" - Schlüssel automatisch in den interaktiven Modus wechseln
 +
* "jkey-nocontrols" - keine Player Controls anbieten
 +
 
 +
== Infos JKey Editor ==
 
* jedtParsedPageData enthält die geparste Struktur einer WikiSeite
 
* jedtParsedPageData enthält die geparste Struktur einer WikiSeite
 
* für jeden Schlüssel, wenn er bearbeitet wird, werden zusätzliche Felder (wasEdited, domRef, coupletMemory) innerhalb des zugehörigen "Key Start"-Templates eingefügt, durch die der Bearbeiten-Vorgang dokumentiert wird (weitere Änderungen an der Struktur werden nicht vorgenommen)
 
* für jeden Schlüssel, wenn er bearbeitet wird, werden zusätzliche Felder (wasEdited, domRef, coupletMemory) innerhalb des zugehörigen "Key Start"-Templates eingefügt, durch die der Bearbeiten-Vorgang dokumentiert wird (weitere Änderungen an der Struktur werden nicht vorgenommen)
 
* Bsp. einer geparsten Struktur:
 
* Bsp. einer geparsten Struktur:
: "0":{ // beliebiges Template, was keine Felder besitzt ("0" entspricht einer uniqueParsedID)
+
: "0":{ // beliebiges Template, was keine Felder besitzt ("0" entspricht einer "unique parsed ID")
 
:: type: "{{",  
 
:: type: "{{",  
 
:: closingType: "}}",
 
:: closingType: "}}",
Line 58: Line 72:
 
::::: wasOrigin : true, // default gesetzt bei original geparstem "decisons"
 
::::: wasOrigin : true, // default gesetzt bei original geparstem "decisons"
 
::::: wasEdited : false // wird gesetzt, sobald Couplet in Bearbeiten-Modus transformiert wird
 
::::: wasEdited : false // wird gesetzt, sobald Couplet in Bearbeiten-Modus transformiert wird
 +
::::: hasNamedID : true
 
:::: },
 
:::: },
:::: "4n1": { // neue "decision" entstanden durch die AddNew action
+
:::: "4n1": { // neue itemID entstanden durch die AddNew action; n ist der separator; Zahl davor ist Verweis auf uniqueParsedID und dessen obj
 
::::: wasOrigin : false, // wird gesetzt, wenn AddNew action ausgeführt wird
 
::::: wasOrigin : false, // wird gesetzt, wenn AddNew action ausgeführt wird
::::: wasEdited : true, // wird gesetzt, wenn AddNew action ausgeführt wird
+
::::: wasEdited : true // wird gesetzt, wenn AddNew action ausgeführt wird
::::: originID: 4, // Verweis auf uniqueParsedID
+
::::: hasNamedID : true
 
:::: },
 
:::: },
 
:::: ...
 
:::: ...
Line 74: Line 89:
 
:: endIndex: 1720,  
 
:: endIndex: 1720,  
 
:},
 
:},
: "4": { // Template für eine "decision"; itemIDS innerhalb des coupletMemorys zeigen hierauf
+
: "4": { // Template für eine "decision"; itemIDs innerhalb des coupletMemorys zeigen hierauf
 
:: type: "{{",  
 
:: type: "{{",  
 
:: closingType: "}}",
 
:: closingType: "}}",
Line 122: Line 137:
 
* sowohl parameter name als auch parameter value werden auf beiden Seiten whitespace-trimmed (aber im parameter value, sind returns und blanks signifikant)
 
* sowohl parameter name als auch parameter value werden auf beiden Seiten whitespace-trimmed (aber im parameter value, sind returns und blanks signifikant)
  
* <nowiki></nowiki> & <!-- --> tags und dessen childs ignorieren / überspringen
+
* <nowiki><nowiki></nowiki></nowiki> & <nowiki><!-- --></nowiki> tags und dessen childs ignorieren = überspringen
 +
 
 +
== parentlead ==
 +
: http://biowikifarm.net/testwiki/index.php?title=Nested_Key_Test gibt eine Fehlermeldung.
 +
 
 +
: Grund ist ziemlich klar, die erst seit einigen Wochen bestehende Möglichkeit von nested Unterschlüsseln.
 +
 
 +
: Vermutete Lösung: Wenn es ein "parentlead="  value gibt, gelten Regeln für das parsen der LeadID.
 +
 
 +
: Bei z.B.:
 +
:: <nowiki>{{Lead | parentlead=1 | a1| Statement a | result= Aus bus ssp. ixus}}</nowiki>
 +
:: <nowiki>{{Lead | parentlead=1 | a2| Statement b | b }}</nowiki>
 +
:: <nowiki>{{Lead | parentlead=1 | a3| Statement c | result= Aus bus ssp. ypsilon}}</nowiki>
 +
 
 +
: Ist die couplet-ID die 1a und die alternative "" bzw "*"
 +
 
 +
: Die Hauptschwierigkeit ist, dass es naturlich auch 1a gibt, wobei der LeadID Parser dann 1 + a parsen soll.
 +
 
 +
: Es gibt auch:
 +
 
 +
:: <nowiki>{{Lead | #1 | Statement a | result= Aus bus ssp. ixus}}</nowiki>
 +
:: <nowiki>{{Lead | #2| Statement b | b }}</nowiki>
 +
:: <nowiki>{{Lead | $1 | Statement c | result= Aus bus ssp. ypsilon}}</nowiki>
 +
:: <nowiki>{{Lead | $2</nowiki>
 +
 
 +
: Schlüsselnummerierungen
 +
: Vielleicht:
 +
:: WENN links eine Ziffer, dann sind Buchstaben  UND XXX  als Alternative wegzuparsen,
 +
:: WENN links keine Ziffer (Buchstabe oder auch Symbol!), dann Ziffern UND XXX wegparsen, wobei  XXX = *. ', "-" usw.
 +
 
 +
: Das Parentlead sollte editierbar sein, ist evtl. im HTML-Form noch nicht enthalten.
 +
</nowiki>

Latest revision as of 15:47, 11 December 2009