webif/var/mongoose/lib/setup

105 lines
2.2 KiB
Plaintext

if {![exists -proc require]} {
proc require {args} {{done {}}} {
foreach file $args {
if {$file ni $done} {
uplevel source "/mod/webif/lib/$file"
lappend done $file
}
}
}
proc httpheader {{type "text/html"} {cache 0} {extra ""}} {{done 0}} {
if {$done} return
if {!$cache} {
puts -nonewline "Content-Type: $type; charset=\"UTF-8\"; no-cache\r\n"
puts -nonewline "Expires: -1\r\n"
puts -nonewline "Connection: close\r\n"
puts -nonewline "Pragma: no-cache\r\n"
puts -nonewline "Cache-Control: no-cache\r\n"
} else {
puts -nonewline "Content-Type: $type; charset=\"UTF-8\"\r\n"
}
if {$extra ne ""} { puts -nonewline "$extra" }
puts -nonewline "\r\n"
set done 1
}
set ::_mws_headerdone 0
set ::_mws_js {}
set ::_mws_css {}
proc header {{type "text/html"} {cache 0}} {
httpheader $type $cache
uplevel source /mod/webif/html/lib/header.jim
incr ::_mws_headerdone
}
proc noheader {} {
emit_jscss
incr ::_mws_headerdone
}
proc footer {} {
uplevel source /mod/webif/html/lib/footer.jim
}
proc mheader {} {
uplevel source /mod/webif/html/m/lib/header.jim
}
proc mfooter {} {
uplevel source /mod/webif/html/m/lib/footer.jim
}
proc _css {file} {
if {$::_mws_headerdone} {
puts "<link href=\"$file\" rel=stylesheet type=text/css />"
} else {
lappend ::_mws_css $file
}
}
proc _js {file} {
if {$::_mws_headerdone} {
puts "<script type=text/javascript src=\"$file\"></script>"
} else {
lappend ::_mws_js $file
}
}
proc emit_jscss {} {
foreach js $::_mws_js { _js $js }
foreach css $::_mws_css { _css $css }
}
proc jqplugin {args} {{done {}}} {
foreach name $args {
if {$name in $done} continue
lappend done $name
set dir "/mod/webif/html/lib/jquery.plugin/$name"
if {![file isdirectory $dir]} {
error "Unknown JQ Plugin - '$name'"
}
foreach file [glob -nocomplain "$dir/*.js"] {
set file [join [lrange [split $file /] 4 end] /]
_js "/$file"
}
foreach file [glob -nocomplain "$dir/*.css"] {
set file [join [lrange [split $file /] 4 end] /]
_css "/$file"
}
}
}
proc jscss {{js ""} {css ""}} {
foreach j $js { _js $j }
foreach c $css { _css $c }
}
require fileops overrides
# Jim 0.75 removes legacy 'case'
alias case switch
}