Warning: session_start(): open(/var/lib/php/sessions/sess_65krs7o9h3hil2bdvpgaelf1to, 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
!7
sclass DirectoryInfo extends DynModule {
S dir;
bool allowedToLook;
Bool exists, isFile;
L filesContained;
File dirObject() { ret newFile(dir); }
void start { ownTimer(doEvery(10.0, r fullUpdate)); }
JComponent visualize() {
if (dir == null)
ret jcenteredbutton("Select directory...", r {
selectFile("Select directory to show", voidfunc(File dir) {
setField(dir := f2s(dir));
revisualize();
});
});
ret makeForm(
"Directory" := dir,
allowedToLook := yesNoComboBox(allowedToLook, voidfunc(bool b) {
setField(allowedToLook := b) }),
+exists,
+isFile,
"Files contained", filesContained == null ? "Unknown" : l(filesContained));
}
void fullUpdate { lock lock; filesContained = null; update(); }
void update {
lock lock;
if (dir != null && allowedToLook) {
File dirObject = dirObject();
setField(exists := dirObject.isDirectory());
setField(isFile := dirObject.isFile());
if (filesContained == null
&& setField(filesContained := listFileNames(dirObject)))
revisualize();
} else
if (setFields(exists := null, isFile := null, filesContained := null)) revisualize();
}
// API for other modules
S getDir() { ret dir; }
}