; Set all form actions
'simple-sqil.html' attribute /html/body//form action
; Count
/log/main/count replace /html/body//span[@id='count'] ;
; Navigation Forms
/log/navigation/row repeat /html/body//form[@name='navigation'] {
./idx content .//button//span[@class='navigation'] ;
./line_ub attribute .//input[@name='line_ub'] value ;
; all others
/log/parameter[@name!='line_ub']
repeat .//input[@name='other'] {
; Move name/value from parameter to input
./@value attribute . value ;
./@name attribute . name ;
} ;
} ;
; Previous button
/log/parameter[@name!='line_ub']
repeat /html/body//form[@name='page']//input[@name='other'] {
; Move name/value from parameter to input
./@value attribute . value ;
./@name attribute . name ;
} ;
/log/main/row[last()]/line
attribute /html/body//form[@name='page']//input[@name='line_ub'] value ;
; Filter
/log/filter repeat /html/body//select[@name='filter']/option {
descendant-or-self::node()/@name attribute . value ;
. content . ;
}
; Remove Filter
/log/parameter repeat /html/body//form[@name='remove'] {
; Iterate over the other parameters
; Ugly, but works
following-sibling::parameter|preceding-sibling::parameter repeat .//input {
; Move name/value from parameter to input
./@value attribute . value ;
./@name attribute . name ;
} ;
; and on the button
./@name replace .//span[@id='remove_name'] ;
./@value replace .//span[@id='remove_value'] ;
} ;
; Table rows - we must restrict to td children to not
; overwrite the headers
/log/main/row repeat /html/body//table//tr[./td] {
; ; A way for "join conditions" is missing.
; ./* repeat ./td[@class=local-name(data())] {
; . content .//button ;
; . attribute .//input[@name=local-name(data())] value ;
; } ;
./idx content ./td[@class='idx']//button ;
./idx attribute ./td[@class='idx']//input[@name='idx'] value ;
./remote_host content ./td[@class='remote_host']//button ;
./remote_host attribute ./td[@class='remote_host']//input[@name='remote_host'] value ;
./time content ./td[@class='time'] ;
./request_method content ./td[@class='request_method']//button ;
./request_method attribute ./td[@class='request_method']//input[@name='request_method'] value ;
./request_uri content ./td[@class='request_uri']//button ;
./request_uri attribute ./td[@class='request_uri']//input[@name='request_uri'] value ;
./status content ./td[@class='status']//button ;
./status attribute ./td[@class='status']//input[@name='status'] value ;
./bytes_sent content ./td[@class='bytes_sent'] ;
; substring-before(substring-after(./referer,'//'),'/') content ./td[@class='referer']//a ;
./referer content ./td[@class='referer']//a ;
./referer attribute ./td[@class='referer']//a href ;
./agent content ./td[@class='agent']//button ;
./agent attribute ./td[@class='agent']//input[@name='agent'] value ;
./usertrack content ./td[@class='usertrack']//button ;
./usertrack attribute ./td[@class='usertrack']//input[@name='usertrack'] value ;
./id content ./td[@class='id']//button ;
./id attribute ./td[@class='id']//input[@name='id'] value ;
./child_pid content ./td[@class='child_pid']//button ;
./child_pid attribute ./td[@class='child_pid']//input[@name='child_pid'] value ;
./cookie content ./td[@class='cookie']//button ;
./cookie attribute ./td[@class='cookie']//input[@name='cookie'] value ;
./machine_id content ./td[@class='machine_id']//button ;
./machine_id attribute ./td[@class='machine_id']//input[@name='machine_id'] value ;
./request_file content ./td[@class='request_file']//button ;
./request_file attribute ./td[@class='request_file']//input[@name='request_file'] value ;
./remote_logname content ./td[@class='remote_logname']//button ;
./remote_logname attribute ./td[@class='remote_logname']//input[@name='remote_logname'] value ;
./remote_user content ./td[@class='remote_user']//button ;
./remote_user attribute ./td[@class='remote_user']//input[@name='remote_user'] value ;
./request_duration content ./td[@class='request_duration'] ;
./request_line content ./td[@class='request_line']//button ;
./request_line attribute ./td[@class='request_line']//input[@name='request_line'] value ;
./request_protocol content ./td[@class='request_protocol']//button ;
./request_protocol attribute ./td[@class='request_protocol']//input[@name='request_protocol'] value ;
./request_time content ./td[@class='request_time']//button ;
./request_time attribute ./td[@class='request_time']//input[@name='request_time'] value ;
./request_args content ./td[@class='request_args']//button ;
./request_args attribute ./td[@class='request_args']//input[@name='request_args'] value ;
./server_port content ./td[@class='server_port']//button ;
./server_port attribute ./td[@class='server_port']//input[@name='server_port'] value ;
./ssl_cipher content ./td[@class='ssl_cipher']//button ;
./ssl_cipher attribute ./td[@class='ssl_cipher']//input[@name='ssl_cipher'] value ;
./ssl_keysize content ./td[@class='ssl_keysize']//button ;
./ssl_keysize attribute ./td[@class='ssl_keysize']//input[@name='ssl_keysize'] value ;
./ssl_maxkeysize content ./td[@class='ssl_maxkeysize']//button ;
./ssl_maxkeysize attribute ./td[@class='ssl_maxkeysize']//input[@name='ssl_maxkeysize'] value ;
./time_stamp content ./td[@class='time_stamp']//button ;
./time_stamp attribute ./td[@class='time_stamp']//input[@name='time_stamp'] value ;
./virtual_host content ./td[@class='virtual_host']//button ;
./virtual_host attribute ./td[@class='virtual_host']//input[@name='virtual_host'] value ;
./line content ./td[@class='line']//button ;
./line attribute ./td[@class='line']//input[@name='line'] value ;
; This is done for all tags
/log/parameter repeat .//input[@name='others'] {
; Move name/value from parameter to input
./@value attribute . value ;
./@name attribute . name ;
}
} ;
; /log/parameter/@name repeat /html/body//table//tr {
; }
; TODO: Decision -
; Empty nodeset - don't touch vs. remove (e.g. content)