Notiz zeigt sich sofort gesetzt, Widgets nach Wunsch des Nutzers
Aus dem Zettel wird die Notiz: Der Text steht immer formatiert da, roh ist nur
die Zeile mit der Schreibmarke. Dazu eine kleine Werkzeugleiste (Aufgabe,
Aufzaehlung, Nummer, Ueberschrift, fett, Linie), Enter fuehrt Listen fort,
Backspace am Zeilenanfang nimmt erst den Vorsatz. Fuer groessere Umbauten
bleibt der Quelltext-Knopf.
Kein contenteditable: Der Quelltext bleibt die Wahrheit und wird nie aus dem
HTML zurueckgerechnet, das der Browser beim Tippen erzeugt.
Reihenfolge und An/Aus der Widgets liegen jetzt je Nutzer auf dem Server, in
einer Einstellung ("benutzer,notiz,-system,wetter,bild"). Der Schalter fuer das
Wetter auf dem Schreibtisch faellt damit weg — es ist ein Widget wie jedes
andere.
Die Einstellungen sind in Abschnitte sortiert (Darstellung, HoneyBar, Widgets,
Wetter, Programme, Konto), Beschriftung links, Schalter rechts.
This commit is contained in:
1 parent
c0abfbb491
commit
3807ddca24
12 files changed
+806
-220
No files matched your search
@@ -39,8 +39,8 @@ type User struct {
|
||||
Name string `json:"name,omitempty"`
|
||||
Picture string `json:"picture,omitempty"`
|
||||
Settings map[string]string `json:"settings,omitempty"`
|
||||
// Der Zettel. Nicht in den Einstellungen, obwohl er dorthin passen würde:
|
||||
// Die sind auf kurze Werte ausgelegt (200 Zeichen je Feld), und ein Zettel
|
||||
// Die Notiz. Nicht in den Einstellungen, obwohl sie dorthin passen würde:
|
||||
// Die sind auf kurze Werte ausgelegt (200 Zeichen je Feld), und eine Notiz
|
||||
// ist Text, kein Schalter.
|
||||
Note string `json:"note,omitempty"`
|
||||
|
||||
@@ -67,7 +67,7 @@ const (
|
||||
maxApps = 24
|
||||
maxSettings = 40
|
||||
maxFieldLen = 200
|
||||
// Ein Zettel, kein Dokument. Wer mehr braucht, hat InkNote — und der Server
|
||||
// Eine Notiz, kein Dokument. Wer mehr braucht, hat InkNote — und der Server
|
||||
// muss die Grenze durchsetzen, nicht das Formular.
|
||||
maxNoteLen = 4000
|
||||
)
|
||||
@@ -200,19 +200,19 @@ func (s *Store) SeenUser(sub, name, picture string) error {
|
||||
return s.save()
|
||||
}
|
||||
|
||||
// Note gibt den Zettel des Nutzers. Kein Rückfall auf den Standardnutzer wie
|
||||
// bei den Einstellungen: Ein fremder Zettel ist kein Ersatz für den eigenen.
|
||||
// Note gibt die Notiz des Nutzers. Kein Rückfall auf den Standardnutzer wie
|
||||
// bei den Einstellungen: Eine fremde Notiz ist kein Ersatz für die eigene.
|
||||
func (s *Store) Note(sub string) string {
|
||||
return s.User(sub).Note
|
||||
}
|
||||
|
||||
// SetNote schreibt den Zettel. Zwei offene Geräte überschreiben einander — der
|
||||
// letzte Stand gewinnt. Für einen Zettel ist das vertretbar; alles darüber
|
||||
// SetNote schreibt die Notiz. Zwei offene Geräte überschreiben einander — der
|
||||
// letzte Stand gewinnt. Für eine Notiz ist das vertretbar; alles darüber
|
||||
// bräuchte Versionen und eine Zusammenführung, und dann wäre es keine
|
||||
// Kleinigkeit mehr, sondern eine Notiz-App.
|
||||
func (s *Store) SetNote(sub, text string) error {
|
||||
if len([]rune(text)) > maxNoteLen {
|
||||
return fmt.Errorf("der Zettel fasst %d Zeichen", maxNoteLen)
|
||||
return fmt.Errorf("die Notiz fasst %d Zeichen", maxNoteLen)
|
||||
}
|
||||
|
||||
s.mu.Lock()
|
||||
|
||||
Reference in new issue
Block a user