Skip to content

Archive Trac dn fs

madscatt edited this page Jun 20, 2026 · 1 revision

Dn Fs

Legacy Trac archive page imported from dn_fs. Source: https://genapp.rocks/wiki/wiki/dn_fs. Review age, links, and examples before treating as current.

developer technical notes: file system

  • relevance: html5/php only

  • the html5/php file system is available to the client via ajax calls to ajax/sys_config/sys_files.php

  • on the client side

    • the calls are consumed by a jstree widget using a callback function to a client side cache jqfc.js
    • this enables a single ajax call for any number of file system widgets
    • the jqfc:fs_cache(node,cb) function provides a direct callback to jstree's callback function
    • only one directory is expanded per call
    • multiple initial calls on the same directory before the cache is filled with the first response will result in one call and all callbacks being given the results
    • fs_cache.clear( node ) will clear all children also, since there is a cache entry for each previously expanded node
    • any active jstree's should also be refreshed, e.g.:
   fs_cache.clear( "Li9lbXJl" );
   $("#tree").jstree( true ).refresh_node( "Li9lbXJl" );
  • this is automatically handled by registering the element in fs_cache.trees, e.g.:
   fs_cache.trees[ "#tree" ] = 1;
- the auto refresh checks for element length, so if it is deleted, the refresh won't be called 
  • the user's file system can only be modified by certain events, requiring a cache clear/refresh

    • running a job which uses a project directory

    • at time of submission (uploaded files)

    • during run (produced output)

    • interaction with a file manager

    • not yet implemented

      • delete
      • upload
      • rename
    • multiple windows or running of jobs to the same user can each modify the file system

    • locking of a project during run is implemented

  • status

    • current refreshing on each submit and retrieval of results
  • future

    • performance
    • implement server side mongo'd differential window state based cache
    • convenience
    • implement messaging to notify of refresh request from server
    • messaging refresh requests

Clone this wiki locally