Class Relations
- class: ::nx::Object
::nx::Object create ::xowiki::CSS
Methods (to be applied on the object)
class (scripted)
if {[dict exists ${:cssClasses} $name]} {
return [dict get ${:cssClasses} $name]
} else {
return $name
}
classes (scripted)
return [join [lmap class $classNames {:class $class}] " "]
clear (scripted)
unset -nocomplain :preferredCSSToolkit
icon_name (scripted)
set iconName file
if {${:iconset} eq "bootstrap-icons"} {
switch [ad_file extension $filename] {
.doc -
.docx -
.odt -
.txt {set iconName "file-earmark-text"}
.csv -
.ods -
.xls -
.xlsx {set iconName "file-earmark-spreadsheet"}
.odp -
.ppt -
.pptx {set iconName "file-earmark-spreadsheet"}
.pdf {set iconName "file-earmark-pdf"}
.c -
.h -
.tcl {set iconName "file-earmark-code"}
.css -
.html -
.java -
.js -
.json -
.py -
.sql {set iconName "filetype-[string range [ad_file extension $filename] 1 end]"}
default {
switch -glob [ns_guesstype $filename] {
image/* {set iconName "file-earmark-image"}
video/* {set iconName "file-earmark-play"}
audio/* {set iconName "file-earmark-slides"}
default {
ns_log notice "not handled '[ad_file extension $filename] / [ns_guesstype $filename] of <$filename>"
}
}
}
}
}
return $iconName
initialize (scripted)
if {[ns_conn isconnected] && [apm_package_enabled_p "bootstrap-icons"]} {
template::head::add_css -href urn:ad:css:bootstrap-icons
}
set paramValue [parameter::get_global_value -package_key xowiki -parameter PreferredCSSToolkit -default default]
if {$paramValue in {default bootstrap bootstrap5} && [ns_conn isconnected]} {
set theme [subsite::get_theme]
if {$paramValue in {bootstrap default} && [string match *bootstrap5* $theme]} {
set paramValue bootstrap5
} elseif {$paramValue in {bootstrap5 default} && [string match *bootstrap3* $theme]} {
set paramValue bootstrap
}
if {$paramValue eq "default"} {
set paramValue yui
}
}
if {[info exists :preferredCSSToolkit]
&& ${:preferredCSSToolkit} eq $paramValue
} {
return
}
set :preferredCSSToolkit $paramValue
set :iconset [template::iconset]
if {${:preferredCSSToolkit} eq "bootstrap"} {
set :cssClasses {
btn-default btn-default
bulk-action "btn btn-default"
form-action "btn btn-default"
action "btn btn-default"
margin-form ""
card "panel panel-default"
card-header panel-heading
card-body panel-body
d-none hidden
text-warning text-warn
}
::xowiki::formfield::FormField parameter [subst {
{CSSclass form-control}
{form_item_wrapper_CSSclass form-group}
{form_label_CSSclass ""}
{form_widget_CSSclass ""}
{form_button_CSSclass "[xowiki::CSS class form-action]"}
{form_button_wrapper_CSSclass ""}
{form_help_text_CSSclass help-block}
}]
} elseif {${:preferredCSSToolkit} eq "bootstrap5"} {
set :cssClasses {
btn-default btn-outline-secondary
bulk-action "btn btn-outline-secondary btn-sm"
form-action "btn btn-outline-secondary btn-sm m-1"
action "btn btn-outline-secondary btn-sm m-1"
navbar-default navbar-light
navbar-right ms-auto
margin-form ""
cog gear
print printer
close btn-close
checkbox-inline form-check-inline
radio-inline form-check-inline
}
::xowiki::formfield::FormField parameter [subst {
{CSSclass form-control}
{form_item_wrapper_CSSclass mb-3}
{form_label_CSSclass "form-label me-1"}
{form_widget_CSSclass ""}
{form_button_CSSclass "[xowiki::CSS class form-action]"}
{form_button_wrapper_CSSclass ""}
{form_help_text_CSSclass form-text}
}]
::xowiki::formfield::select parameter {
{CSSclass form-select}
}
} else {
::xowiki::formfield::FormField parameter {
{CSSclass}
{form_label_CSSclass ""}
{form_widget_CSSclass form-widget}
{form_item_wrapper_CSSclass form-item-wrapper}
{form_button_CSSclass ""}
{form_button_wrapper_CSSclass form-button}
{form_help_text_CSSclass form-help-text}
}
set :cssClasses {
btn-default ""
margin-form margin-form
}
::xowiki::Form requireFormCSS
}
require_toolkit (scripted)
if {${:preferredCSSToolkit} eq "bootstrap5"} {
if {$css} {::xo::Page requireCSS urn:ad:css:bootstrap5}
if {$js} {::xo::Page requireJS urn:ad:js:bootstrap5}
} elseif {${:preferredCSSToolkit} eq "bootstrap"} {
if {$css} {::xo::Page requireCSS urn:ad:css:bootstrap3}
if {$js} {::xo::Page requireJS urn:ad:js:bootstrap3}
} else {
}
toolkit (scripted)
return ${:preferredCSSToolkit}