Changeset 24934
- Timestamp:
- 2012-01-11T10:05:58+13:00 (12 years ago)
- Location:
- gs3-extensions/html-to-expeditee/trunk/src
- Files:
-
- 1 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
gs3-extensions/html-to-expeditee/trunk/src/perllib/cgiactions/HtmlToExpediteeAction.pm
r24927 r24934 30 30 use cgiactions::baseaction; 31 31 32 use ExpediteeFrameIO; 32 33 use JSON; 33 34 … … 84 85 my $exp_frame_tree = decode_json $json_str_utf8; 85 86 86 87 87 my $output_dir = &util::filename_cat($collect_dir,$collect,"export"); 88 88 … … 92 92 my $frame_filename = &util::filename_cat($output_dir,"$fn.exp"); 93 93 94 if (open(FOUT,">$frame_filename")) { 95 binmode(FOUT,":utf8"); 94 my $expeditee_frame_io = new ExpediteeFrameIO(); 95 96 $expeditee_frame_io->buildFrame($exp_frame_tree); 96 97 97 print FOUT $json_str_utf8; 98 close(FOUT); 98 # if (open(FOUT,">$frame_filename")) { 99 # binmode(FOUT,":utf8"); 100 101 # print FOUT $json_str_utf8; 102 # close(FOUT); 103 # $gsdl_cgi->generate_message("html-to-expeditee saved frame $fn"); 104 # } 105 # else { 106 # $gsdl_cgi->generate_error("Failed to open $frame_filename for output"); 107 # } 108 109 if ($expeditee_frame_io->saveFrame($frame_filename)) { 99 110 100 111 # write out next free frame num 101 112 $expeditee_frame_io->saveNextFreeFrame($fn+1); 113 102 114 $gsdl_cgi->generate_message("html-to-expeditee saved frame $fn"); 103 115 } -
gs3-extensions/html-to-expeditee/trunk/src/src/cgi-bin/html-to-expeditee.pl.in
r24926 r24934 157 157 url = "library.cgi"; 158 158 url += "?c="+collect +"&a=d&d=" + docOID; 159 }160 else {159 } 160 else { 161 161 url = "dev"; 162 162 url += "?c="+collect +"&a=d&d=" + docOID; 163 163 url += "&ed=1&dt=hierarchy"; 164 } 165 164 // url += "&excerptid=gs_content"; 165 } 166 167 /* load iframe with document drawn from Greenstone collection */ 166 168 iframe.src = url; 167 169 … … 200 202 }); 201 203 202 var expFrameTree = htmlToExpeditee(iframeDoc.body); 204 var gsContent = iframeDoc.getElementById("gs_content"); 205 206 /* 207 var gsContentPos = getElementPosition(gsContent); 208 var pxl = gsContentPos.xl; 209 var pxr = gsContentPos.xr; 210 */ 211 212 var expFrameTree = htmlToExpeditee(gsContent); 213 203 214 var expFrame = JSON.stringify(expFrameTree); 204 215 //alert(expFrame); … … 240 251 url += "?c="+collect +"&a=d&d=" + docOID; 241 252 url += "&ed=1&dt=hierarchy"; 253 // url += "&excerptid=gs_content"; 242 254 } 243 255 … … 277 289 { 278 290 279 # $ENV{'QUERY_STRING'} = "a=set-import-metadata&c=espresso-music&d=HASH012d6f72cde5dc48162f4a1d.1&metaname=annotation&metapos=0&metavalue=adfadfad"; 280 # $ENV{'QUERYSTRING'} = "a=set-import-metadata&c=espresso-music&d=HASH012d6f72cde5dc48162f4a1d.1&metaname=annotation&metapos=0&metavalue=adfadfad"; 291 # $ENV{'QUERY_STRING'} = "a=...";set-import-metadata&c=espresso-music&d=HASH012d6f72cde5dc48162f4a1d.1&metaname=annotation&metapos=0&metavalue=adfadfad"; 281 292 # $ENV{'REQUEST_METHOD'} = "GET"; 282 283 293 284 294 my $gsdl_cgi = new gsdlCGI(); -
gs3-extensions/html-to-expeditee/trunk/src/src/js/html-to-expeditee.js
r24925 r24934 31 31 return elem.clip.width; 32 32 } else { 33 if (elem.style .pixelWidth) {33 if (elem.style && elem.style.pixelWidth) { 34 34 return elem.style.pixelWidth; 35 35 } else { … … 44 44 return elem.clip.height; 45 45 } else { 46 if (elem.style .pixelHeight) {46 if (elem.style && elem.style.pixelHeight) { 47 47 return elem.style.pixelHeight; 48 48 } else { … … 84 84 85 85 86 function htmlToExpeditee(node) 87 { 88 var nodePos = getElementPosition(node); 89 var pxl = nodePos.xl; 90 var pyt = nodePos.yt; 91 var pxr = nodePos.xr; 92 var pyb = nodePos.yb; 86 93 87 function htmlToExpeditee(node,depth) 94 return htmlToExpediteeRec(node, pxl,pyt, pxl,pyt,pxr,pyb, 0); 95 } 96 97 98 function htmlToExpediteeRec(node,baseX,baseY, pxl,pyt,pxr,pyb, depth) 88 99 { 89 100 depth = (depth) ? depth : 0; 90 101 91 102 //var expSyntax = ""; 92 var jsonNode = {};103 var jsonNode = null; 93 104 94 105 if (node.nodeType == 3) { /* text node */ … … 99 110 //expSyntax += "Text item: " + node.nodeValue + "\n"; 100 111 112 jsonNode = {}; 113 101 114 jsonNode.type = "text"; 102 115 jsonNode.text = node.nodeValue; 116 117 jsonNode.x = pxl; 118 jsonNode.y = pyt; 119 103 120 } 104 121 } … … 108 125 /* need to dig out: text size, l/r/justified, font-face, type, colour */ 109 126 110 var elemName = node.Name; 111 if (elemName != "SCRIPT") { 127 var elemName = node.nodeName.toLowerCase(); 112 128 113 129 if (!elemName.match(/script/)) { 130 114 131 var nodePos = getElementPosition(node); 115 132 var xl = nodePos.xl; … … 129 146 */ 130 147 131 var rect = { "xl":xl, "yt":yt, "xr":xr, "yb":yb }; 132 148 jsonNode = {}; 133 149 jsonNode.type = "rect"; 134 150 jsonNode.elem = node.nodeName; 151 152 var rect = { "xl":xl, "yt":yt, "xr":xr, "yb":yb }; 135 153 jsonNode.rect = rect; 136 154 … … 139 157 var cnode = node.firstChild; 140 158 while (cnode != null) { 141 //expSyntax += htmlToExpeditee(cnode,depth+1);142 159 143 var jsonChildNode = htmlToExpeditee(cnode,depth+1); 144 jsonChildNodes.push(jsonChildNode); 160 var jsonChildNode 161 = htmlToExpediteeRec(cnode,baseX,baseY,xl,yt,xr,yb,depth+1); 162 163 if (jsonChildNode != null) { 164 jsonChildNodes.push(jsonChildNode); 165 } 145 166 146 167 cnode = cnode.nextSibling;
Note:
See TracChangeset
for help on using the changeset viewer.