Tcl

GUI for the fnest command
Login

Home

Description

A browser-based client-server GUI for the fnest command.
The GUI aims to make the fnest group/fgroup more easy to use.

Background

The fnest index/findex command generates a static HTML page, which is uploaded to the remote server. This allows for browsing all existing repositories.
Here is an example HTML page.

A modified version of fnest index/findex may be used to create a similar HTML page, but with JavaScript support.
The main purpose for JavaScript-enabled HTML page would be to use fnest group/fgroup options in a GUI environment.

The fgroup command is used to modify the .fgroup file.
The findex command is used to update the index.html file, based on .fgroup.
Both .fgroup and index.html resides on the remote server, so no access to local files is required.

Proposal

Proposals for the fgroup CLI options and the equivalent GUI actions:

CLI 'fgroup' option   GUI action                                     Description
-------------------   ----------                                     -----------
--new                 Click '+' sign, popup text                     Create new group(s)
--new-hidden          Click '+' sign, popup text, hidden checkbox    Create new hidden group(s)
--new-synonym         Click '+' sign, popup text, hidden checkbox    Create new synonym group(s)
--delete              Drag group to trash can (or right click)       Delete group(s)
--add                 Drag repos to group, SHIFT pressed             Add repos(s) to a group, or group(s) to a synonym group
--remove              Drag repos to trash can (or right click),      Remove repos(s) from a group, or group(s) from a synonym group
                      show info that repos will NOT be deleted!
--move                Drag repos to group, SHIFT NOT pressed         Move repo(s)/group(s) from one group to another
--rename              Right click, type new text directly in group   Rename group
--hide                Select one or more groups, right click         Hide group(s) (does not apply to synonym groups)
--unhide              Select one or more groups, right click         Unhide group(s) (does not apply to synonym groups)
--flatten             Select one or more groups, right click         Convert synonym group(s) to normal group(s)
--merge               Select at least two groups, right click        Merge existing groups to a new group

In the same fashion as the fgroup command, the GUI actions never modifies a repository, only properties related to groups.

The GUI may be launched with fnest ui.

GUI - Solutions

  1. Client-side JavaScript library, server-side Tcl CGI scripts, running on a local web server.
  2. Client-side JavaScript library, server-side Tcl CGI scripts, running on a remote web server.
  3. Wacl (WASM Tcl) implementation.

Solution 1: Client-side JS, local web server

Components:

Pros:

Cons:

Solution 2: Client-side JS, remote web server

Components:

Pros:

Cons:

Solution 3: Wacl (WASM Tcl) implementation

Components:

Pros:

Cons:

Links

Basic example

cgi01.tcl