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 "" } else { lappend ::_mws_css $file } } proc _js {file} { if {$::_mws_headerdone} { puts "" } 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 }