MARGIN['rdf:RDF'] = 3;
MARGIN['rdf:Description'] = 2;
+var blockTags = ['akap', 'akap_cd', 'akap_dialog', 'strofa', 'didaskalia', 'wers', 'wers_cd', 'wers_akap', 'wers_wciety', 'autor_utworu', 'nazwa_utworu', 'dzielo_nadrzedne', 'podpis'];
function elementType(element) {
- if ($.inArray(element.tagName, ['akap', 'akap_cd', 'akap_dialog', 'strofa', 'didaskalia', 'wers', 'wers_cd', 'wers_akap', 'wers_wciety', 'autor_utworu', 'nazwa_utworu', 'dzielo_nadrzedne', 'podpis'])) {
+ if (blockTags.indexOf(element.tagName) != -1) {
return 'inline';
} else {
return 'block';
}
if (element.nodeType == 3) { // tekst
- if (mode == 'block') {
- return [$.trim(element.nodeValue)];
- } else {
- return [element.nodeValue];
- }
+ return [element.nodeValue];
} else if (element.nodeType != 1) { // pomijamy węzły nie będące elementami XML ani tekstem
return [];
}
var result = [];
var hasContent = false;
+
+
if (MARGIN[element.tagName]) {
for (var i=0; i < MARGIN[element.tagName]; i++) {
result.push('\n');
}
$.blockUI({message: 'Ładowanie arkuszy stylów...'});
$.ajax({
- url: '/static/xsl/wl2html_client.xsl',
+ url: STATIC_URL + 'xsl/wl2html_client.xsl',
dataType: 'xml',
success: function(data) {
xml2htmlStylesheet = createXSLT(data);
$.ajax({
- url: '/static/xsl/html2wl_client.xsl',
+ url: STATIC_URL + 'xsl/html2wl_client.xsl',
dataType: 'xml',
success: function(data) {
html2xmlStylesheet = createXSLT(data);
})
}
-function transform(editor) {
- $.blockUI({message: 'Ładowanie...'});
- withStylesheets(function() {
- setTimeout(function() {
- var doc = null;
- var parser = new DOMParser();
- var serializer = new XMLSerializer();
-
- doc = editor.getCode().replace(/\/\s+/g, '<br />');
- doc = parser.parseFromString(doc, 'text/xml');
- var error = $('parsererror', doc);
- console.log(error);
- if (error.length == 0) {
- doc = xml2htmlStylesheet.transformToFragment(doc, document);
- error = $('parsererror', doc);
- }
- console.log('xml', doc);
- if (error.length > 0) {
- console.log(error);
- $('#html-view').html('<p class="error">Wystąpił błąd:</p><pre>' + error.text() + '</pre>');
- } else {
- console.log('after transform', doc);
- $('#html-view').html(doc.firstChild);
- }
- $.unblockUI();
- }, 200);
- }, function() { alert('Nie udało się załadować XSLT!'); });
-};
+function xml2html(options) {
+ withStylesheets(function() {
+ var xml = options.xml.replace(/\/\s+/g, '<br />');
+ var parser = new DOMParser();
+ var serializer = new XMLSerializer();
+ var doc = parser.parseFromString(xml, 'text/xml');
+ var error = $('parsererror', doc);
+
+ if (error.length == 0) {
+ doc = xml2htmlStylesheet.transformToFragment(doc, document);
+ error = $('parsererror', doc);
+ }
+
+ if (error.length > 0 && options.error) {
+ options.error(error.text());
+ } else {
+ options.success(doc.firstChild);
+ }
+ }, function() { options.error && options.error('Nie udało się załadować XSLT'); });
+}
-function reverseTransform(editor) {
- $.blockUI({message: 'Ładowanie...'});
+function html2xml(options) {
withStylesheets(function() {
- setTimeout(function() {
- var doc = null;
- var parser = new DOMParser();
- var serializer = new XMLSerializer();
-
- if ($('#html-view .error').length > 0) {
- $('#source-editor').unblock();
- return;
- }
-
- doc = serializer.serializeToString($('#html-view div').get(0))
- doc = parser.parseFromString(doc, 'text/xml');
- console.log('xml',doc, doc.documentElement);
- // TODO: Sprawdzenie błędów
- var error = $('parsererror', doc.documentElement);
- console.log(error);
- if (error.length == 0) {
- doc = html2xmlStylesheet.transformToDocument(doc, document);
- error = $('parsererror', doc.documentElement);
- }
-
- if (error.length > 0) {
- console.log(error);
- $('#source-editor').html('<p>Wystąpił błąd:</p>' + error.text());
+ var xml = options.xml;
+ var parser = new DOMParser();
+ var serializer = new XMLSerializer();
+ var doc = parser.parseFromString(xml, 'text/xml');
+ var error = $('parsererror', doc.documentElement);
+
+ if (error.length == 0) {
+ doc = html2xmlStylesheet.transformToDocument(doc);
+ error = $('parsererror', doc.documentElement);
+ }
+
+ if (error.length > 0 && options.error) {
+ options.error(error.text());
+ } else {
+ if (options.inner) {
+ var result = [];
+ for (var i = 0; i < doc.documentElement.childNodes.length; i++) {
+ result.push(serialize(doc.documentElement.childNodes[i]).join(''));
+ };
+ options.success(result.join(''));
} else {
- doc = serialize(doc.documentElement).join('');
- editor.setCode(doc);
+ options.success(serialize(doc.documentElement).join(''));
}
-
- console.log('after transform', doc, doc.documentElement);
- $.unblockUI();
- }, 200)
- }, function() { alert('Nie udało się załadować XSLT!')});
+ }
+ }, function() { options.error && options.error('Nie udało się załadować XSLT'); });
};