To Do (for HYMNS v0.5: Elga's Maintainer Interface):
- done tasks prefixed by * (star) -
- >>>> <<<< mark improvments for speed/ease-of-use: TBI in next version(s) -
* -check why stat.pl won't be read in; reformat it as hymnsu.pl; > UNIX rights;
-find out a way to get to the www.aubg.edu logs; >Ani? Ivo?
* -error routine: takes string and outputs; "Sorry: string... Go back"; > in custom.pl
* -routine to check the existence of a directory; > -d perl operator;
* -routine to format a directory; > in hymnsm.pl;
* -routine to display pictures; > in hymnsm.pl;
* >>>>-utility to modify the gob separator;<<<<
>>>>-make Manager-oriented and Designer-oriented documentation (different presentation order -- and arguments);<<<<
>>>>-utility to import already-existing sites;<<<<
* >>>>-figure out a way to automatize #-type links; > in hymnsm&ver<<<<
>>>>-make the whole thing fool-proof (check ALL data entry, including syntax for template input and HTML (JavaScript?) for data and template input)<<<<
>>>>-think about binary file saving (make it an option or the norm?)<<<<
>>>>-beautify somehow the whole thing!<<<<
>>>>-for shareware delivery, garble the whole thing, place the common subs in the mains & remove the comments; then take out the \ns :)<<<<
$gtf is the Query string
single letters (f,d,...) are $Form{'letter'}
„maintainer's page <maint.shtml>
* - link to file manager
* - link to scheduler
>>>>-add/delete version; additions should be paralelled in trash<<<<
>>>>-view/empty trash (a little trash icon shown with the size of the data in it)<<<<
* -link to user statistics
* -link to site generation
>>>>-make controls for all the variables in the custom.pl<<<<
„statistics makes: <hymnsu.pl>
* -generates index page and reads data from log (plain)
>>>>-increments data on a one-page&user basis ($gtf='w=inc&f=<file>')<<<<
>>>>-should keep track of time... monthly?<<<<
>>>>-which pages open by what user?<<<<
>>>>-hits/day? IPs/day? hits/home vs hits/rest? hits/no.users?<<<<
>>>> <<<<
„manager makes: <hymnsm.pl>
* -FM index page (default) -> (prev)(tbox)
-(prev frame) „innitial list of given directory ($gtf="lst<path>")
>>>>-figure out add and delete directory; they should be parallelled in trash and in every version<<<<
* -> a click on directory fills (main) with „manager(folder)
* -> select action („choose, „edit, „add, „delete) from pop-up menu (a)
* -> a click on a file fills (input) with chosen action
* -> file size gets displayed
-> if file is a directory or a UNIX link, it becomes a button to open it
* -> if file is a picture, it gets displayed
* -> if file is a template, its description gets displayed
-> if file is a document, its title gets displayed
>>>>-> add checkbox for "directories first"<<<<
* -(tbox frame) „innitial instructions to use the File Manager ($gtf="inst")
-(tbox frame) action ($gtf='in&<action>&<file name>')
* -> „choose: fills the 'choose' input field in (tbox) with the file name, abs to area root
* -> „edit: click on <file/name> link fills (_top) with the „editor index
-> „add:
-> „delete: asks for filename to replace the deleted one in references
-> „reference: fills (tbox) with a list of all files pointing to the one you click
>>>>-> „duplicate: asks for filename; makes a new file with the same templates and data values<<<<
-(tbox frame) „delete reply ($gtf="delf<file name>")
-> click on update button fills (prev) with list of files which had links to the deleted one
>>>>-> checkbox for 'completely delete' (delete the file and any reference to it)<<<<
>>>>-> checkbox for 'deal with each file individually'<<<<
>>>>-> make sure the files replaced are not remote (warn the user in documentation (and in toolbox) "You'll have to modify/delete manually the links leading to the mirror site(s)")<<<<
-(tbox frame) „reference reply ($gtf="reff<file name>")
>>>>-figure out undelete options<<<<
>>>> <<<<
„generator does: <hymnsg.pl>
-preview of page using files ($gtf='prev&<data file name>')
-preview of page using template form($gtf='pret&<data file name>')
-preview of page using data form($gtf='pred&<data file name>')
-preview of page using chunk form($gtf='prec&<data file name>')
>>>>-make temporary files and recover from them in case of crash<<<<
>>>>-filter out garbage (non-$hye files)<<<<
-one page, all versions ($gtf='bake<data file name>')
-> find all variables in a template
-all pages using one template/chunk ($gtf='bake<template file name>')
-recursively, whole area, all versions (default)
>>>>-think about mirroring (remote locations in @hymult?)<<<<
>>>>-routine to add version<<<<
>>>>-think about repeating layout element (r# <chunk/name>)<<<<
„editor makes: <hymnse.pl>
-„data index page ($gtf='ind') -> (templ)(prev)(tbox)
-„template index page ($gtf='indt') -> (templ)(prev)(tbox)
-(templ frame) „template edit page ($gtf='inst&<template file name>')
-> enter template in textarea
-> click on 'preview' button (s?) fills (prev) with „generator
>>>>-> if necessary, record sizes for textareas<<<<
-(templ frame) „list of data values ($gtf='inst&<data file name>')
-> edit the data in textareas
-> 'preview' buttons fill (prev frame) with „generator
-(tbox frame) „data toolbox ($gtf='tbx')
-> 'choose' input field gets data from „manager, „color composition
-> 'clip' textarea gets formated data from buttons below
-> click on 'get file' button fills (prev frame) with „manager
-> click on 'make link' button converts 'choose' to a link in 'clip'
-> click on 'make image' button converts 'choose' to a image in 'clip'
-> click on 'make chunk' button imports in 'clip' the template from 'choose'
-> click on 'get color' button fills (prev frame) with „color composition
-> click on 'preview' button fills (prev frame) with „generator
-> click on 'generate' button just calls „generator for 'one page'
-> click on 'edit template' button fills (_top) with „template index
-> click on 'cancel' button fills (_top) with „manager
>>>>-> load automatic hints<<<<
-(tbox frame) „template toolbox ($gtf='tbxt')
-> 'choose' input field gets data from „manager, „color composition
-> 'clip' textarea gets formated data from buttons below
-> click on 'get file' button fills (prev frame) with „manager
-> click on 'make link' button converts 'choose' to a link in 'clip'
-> click on 'make image' button converts 'choose' to a image in 'clip'
-> click on 'make chunk' button imports in 'clip' the template from 'choose'
-> click on 'get color' button fills (prev frame) with „color composition
-> click on 'edit template' button fills (templ) with „template edit on the file in 'choose'
-> click on 'preview' button fills (prev frame) with „generator for 'one page'
-> click on 'generate' button fills (prev frame) with „generator for 'one template'
-> click on 'cancel' button fills (_top) with „data index
>>>>-> load automatic hints<<<<
>>>>-> add HTML and JavaScript pop-up, take out make link, make image<<<<
-(prev frame) „color composition page ($gtf='cols<bg pict filename>')
-> takes the whole tag from 'clip' or background image from 'choose'
-> imagemap and/or RGB controlls
-> text, link, vlink, alink radio buttons to select where the color you choose should go
-> text, link, vlink, alink text fields to store a complete scheme
-> pick text color formats a <font> tag in 'clip'
-> font pop-up for most commonly-used fonts
-> pick color scheme formats a <body> tag in 'clip'
>>>>-> up/down buttons to slightly modify RGB values for the colors that are dynamically processed<<<<
>>>> <<<<
„todo makes: <hymnsd.pl>
-TD index page ($gtf='ind') -> (prev)(tbox)
-(main frame) „to-do list ($gtf='do' or w='do' a=<item to add> d=<no. of item to delete>
c=<delete choice>)
-> a click on 'manager' link fills (_top) with index of „manager
-(input frame) „to-do options (w='in' a='do')
-> >>>>check 'add' box and<<<< type new item in (a)textarea
-> check 'delete' or 'done' (c) and choose from pop-up number of item to delete (d)
-> a click on 'do' button fills (main) with „to-do
>>>>-sort by date due, task<<<<
>>>>-purge list of done items<<<<
>>>>-view backup lists<<<<
>>>> <<<<
>>>>„mailer makes: <hymnsa.pl><<<<
>>>> <<<<
>>>>„mudder makes: <hymnsn.pl><<<<
>>>> <<<<
>>>>„ip manager makes: <mons.pl><<<<
>>>> <<<<
„chunks
>>>>-HTML mnemonics<<<<
>>>>-JavaScript mnemonics<<<<
-search:
>>>>->make it flexible and write its documentation<<<<
->input text filled with keywords
->boolean pop-up (AND,OR)
>>>>->sort by something... :)<<<<
>>>>->radio buttons: data only / data and context<<<<
>>>>->find a way (better parser? subsequent searches?) to allow for more complicate expressions like (and or)<<<<
>>>> <<<<
„data files:
(<> replaced with text, <#> replaced with number, [] is an optional element, []n optional repeating n times)
-statistics
->area (one line)
<FirstReadDate>:<TotalCorrectlyReadPages>:<TotalPages>:<LastReadDate>
->users (<#TotalUsers>)
<userIP>:<#total correct reads>\n
->pages (<#TotalCorrectPages>)
<filename>:<#total correct reads>\n
-to do
-><full name>„„[<date recorded>:<date due>:<manager>:<importance[1-3]>:<user>:<task>:[d]:<item>„„]<#items>
-data
->>>>index of pages linked to this<<<<
plain \n list of pages, relative to the data root
->data file
<template name>„„[<data name>„„<value>„„]<#data fields>
-template
->>>>index of pages using this<<<< (<no. of pages> lines)
plain \n list of pages, relative to the template root
->template file
(<description>„„
([p[<related data>] <piece>„„] |
[d<variable name> [<default>]„„] |
[c<postfix> <chunk|template f-name>„„])<#layout pieces>
)
„HYMNS Hints
(<> are links to further explanations)
- protect the hymns directory <against external access>
- before composing colors, choose a background image with the file manager
- Don't name any of your subareas as you name the version areas
- Make sure that a template you use for a data file has the <html></html> in its extreme pieces
- Make the first words of your template description one of {page layout,layout element,mnemonic piece}
- Keep track of all variable names that you use in a template
- Add a part of the name of the template to the name of each variable on that template (e.g. AdTel - the telephone number variable in the adress chunk)
„assume that:
- browser used is Netscape v>=3.0.1 (a release, not a preview!)
- OS runs perl v>=5
- OS has commands named 'ls','cp','mv','rm' which behave like on UNIX
- ls -R <path> produces something like:
==========example==========
cc:/u/radu/cgi/hymns> ls -R /u/radu
cgi p public_html
/u/radu/cgi:
hymns tests
/u/radu/cgi/hymns:
chsep.pl hymnse.pl hymnsm.pl t.txt
custom.pl hymnsg.pl hymnsu.pl tst.pl
/u/radu/cgi/tests:
date.pl date1.pl date2.pl date3.pl dump-env.pl fin
=======endof example=======
- ls -l <path> produces something like:
==========example==========
total 96
-rwxr-x--x 1 radu staff 884 Jun 6 02:06 chsep.pl
-rwxr-x--x 1 radu staff 2484 Jun 5 23:53 custom.pl
-rwxr-x--x 1 radu staff 8843 Jun 4 03:01 hymnse.pl
-rwxr-x--x 1 radu staff 2424 Jun 4 01:24 hymnsg.pl
-rwxr-x--x 1 radu staff 6303 Jun 3 22:51 hymnsm.pl
-rwxr-x--x 1 radu staff 4359 Jun 2 16:09 hymnsu.pl
=======endof example=======
- the only '.' in pathname to every file in the area is the one before the extension
(that is, no hidden files or directories!)
- in links there's no space after the " in <a href="/path"
„Credits (in order of their direct or indirect contribution to HYMNS):
-Rich Beilock (for challenging me to create 'the best tool out there')
-the Mellon Foundation and the Pew Charitable Trust (for indirectly (but effectively :) providing the money that funded the development of this tool)
-Elga Nikolova (for a manager's requirements)
-Mark Stefanovich (for the use of his kool Macs, managerial guidance and 'focusing' my development efforts)
-Ani Milanova (for suggesting -- and even coding! -- enhancements, and constantly asking for simplification of the interface)
-the American University in Bulgaria (for server space -- and teaching me!!, and working environment, and many more)
-Mark Andersen and his Netscape team (for the most woderful information tool since the modern press)
-Larry Wall (for a kool P[er...]L)
-the University of Missouri (for their short'n effective course on perl)
-the BG-BIO team at AUBG (for extensive beta-testing)
-countless of web designers from whose work I learned