Warning: session_start(): open(/var/lib/php/sessions/sess_evcqcjb29fn1uqdd7bues74taj, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
concept G22LeftArrowScript > ConceptWithChangeListeners {
settableWithVar S description;
// the script (last "saved" version)
settableWithVar S text;
// the latest code that has been cleared to auto-run (if any)
settableWithVar ClearForAutoRun clearedForAutoRun;
// text currently being modified in an editor (or null)
// Note that "" doesn't count as null.
settableWithVar S editingText;
@Override void _doneLoading2() {
//print("_doneLoading " + this);
cMigrateField(this, "code", "text");
}
S myType() { ret dropPrefix("G22", shortClassName(this)); }
toString { ret or2(description, myType() + " " + id); }
void initEditingText {
editingText(unnull(or(editingText, text)));
}
S stableText() { ret text; }
void completeEdit aka save() {
S t = editingText;
if (t != null) {
text(t);
editingText(null);
}
}
S textForEditing() {
initEditingText();
ret editingText;
}
File historyFile() {
ret fileInConceptsDir("History/" + shortDynName(this) + id + ".history");
}
void saveTextToHistory() {
File historyFile = assertNotNull(+historyFile());
S text = this.text;
appendToTextFile(historyFile,
"\n===\n" +
"Concept ID: " + id + "\n" +
"Date: " + dateWithMSUTC() + "\n" +
"Text (" + nLines(text) + ", " + nChars(text) + "):\n" +
indentx(text) + "\n" +
"\n" +
"===" + "\n");
}
}