1 | $(function() { |
---|
2 | if ($('#edit-entry').length==0) {return;} |
---|
3 | |
---|
4 | // Get document format and prepare toolbars |
---|
5 | var formatField = $('#post_format').get(0); |
---|
6 | var last_post_format = $(formatField).val(); |
---|
7 | $(formatField).change(function() { |
---|
8 | // Confirm post format change |
---|
9 | if(window.confirm(dotclear.msg.confirm_change_post_format_noconvert)){ |
---|
10 | excerptTb.switchMode(this.value); |
---|
11 | contentTb.switchMode(this.value); |
---|
12 | last_post_format = $(this).val(); |
---|
13 | }else{ |
---|
14 | // Restore last format if change cancelled |
---|
15 | $(this).val(last_post_format); |
---|
16 | } |
---|
17 | |
---|
18 | $('.format_control > *').addClass('hide'); |
---|
19 | $('.format_control:not(.control_no_'+$(this).val()+') > *').removeClass('hide'); |
---|
20 | }); |
---|
21 | |
---|
22 | var excerptTb = new jsToolBar(document.getElementById('post_excerpt')); |
---|
23 | var contentTb = new jsToolBar(document.getElementById('post_content')); |
---|
24 | excerptTb.context = contentTb.context = 'post'; |
---|
25 | |
---|
26 | $('.format_control > *').addClass('hide'); |
---|
27 | $('.format_control:not(.control_no_'+last_post_format+') > *').removeClass('hide'); |
---|
28 | |
---|
29 | if ($('#comment_content').length>0) { |
---|
30 | var commentTb = new jsToolBar(document.getElementById('comment_content')); |
---|
31 | commentTb.draw('xhtml'); |
---|
32 | } |
---|
33 | |
---|
34 | $('#edit-entry').onetabload(function() { |
---|
35 | // Markup validator |
---|
36 | var v = $('<div class="format_control"><p><a id="a-validator"></a></p><div/>').get(0); |
---|
37 | $('.format_control').before(v); |
---|
38 | var a = $('#a-validator').get(0); |
---|
39 | a.href = '#'; |
---|
40 | a.className = 'button '; |
---|
41 | $(a).click(function() { |
---|
42 | |
---|
43 | excerpt_content = $('#post_excerpt').css('display') != 'none' ? $('#post_excerpt').val() : $('#excerpt-area iframe').contents().find('body').html(); |
---|
44 | post_content = $('#post_content').css('display') != 'none' ? $('#post_content').val() : $('#content-area iframe').contents().find('body').html(); |
---|
45 | |
---|
46 | var params = { |
---|
47 | xd_check: dotclear.nonce, |
---|
48 | f: 'validatePostMarkup', |
---|
49 | excerpt: excerpt_content, |
---|
50 | content: post_content, |
---|
51 | format: $('#post_format').get(0).value, |
---|
52 | lang: $('#post_lang').get(0).value |
---|
53 | }; |
---|
54 | |
---|
55 | $.post('services.php',params,function(data) { |
---|
56 | if ($(data).find('rsp').attr('status') != 'ok') { |
---|
57 | alert($(data).find('rsp message').text()); |
---|
58 | return false; |
---|
59 | } |
---|
60 | |
---|
61 | $('.message, .success, .error, .warning-msg').remove(); |
---|
62 | |
---|
63 | if ($(data).find('valid').text() == 1) { |
---|
64 | var p = document.createElement('p'); |
---|
65 | p.id = 'markup-validator'; |
---|
66 | |
---|
67 | $(p).addClass('success'); |
---|
68 | $(p).text(dotclear.msg.xhtml_valid); |
---|
69 | $('#entry-content h3').after(p); |
---|
70 | $(p).backgroundFade({sColor: dotclear.fadeColor.beginValidatorMsg, eColor: dotclear.fadeColor.endValidatorMsg, steps: 50},function() { |
---|
71 | $(this).backgroundFade({sColor: dotclear.fadeColor.endValidatorMsg, eColor: dotclear.fadeColor.beginValidatorMsg}); |
---|
72 | }); |
---|
73 | } else { |
---|
74 | var div = document.createElement('div'); |
---|
75 | div.id = 'markup-validator'; |
---|
76 | |
---|
77 | $(div).addClass('error'); |
---|
78 | $(div).html('<p><strong>' + dotclear.msg.xhtml_not_valid + '</strong></p>' + $(data).find('errors').text()); |
---|
79 | $('#entry-content h3').after(div); |
---|
80 | $(div).backgroundFade({sColor: dotclear.fadeColor.beginValidatorErr,eColor: dotclear.fadeColor.endValidatorErr, steps: 50},function() { |
---|
81 | $(this).backgroundFade({sColor: dotclear.fadeColor.endValidatorErr, eColor: dotclear.fadeColor.beginValidatorErr}); |
---|
82 | }); |
---|
83 | } |
---|
84 | |
---|
85 | if ( $('#post_excerpt').text() != excerpt_content || $('#post_content').text() != post_content ) { |
---|
86 | var pn = document.createElement('p'); |
---|
87 | $(pn).addClass('warning-msg'); |
---|
88 | $(pn).text(dotclear.msg.warning_validate_no_save_content); |
---|
89 | $('#entry-content h3').after(pn); |
---|
90 | } |
---|
91 | |
---|
92 | return false; |
---|
93 | }); |
---|
94 | |
---|
95 | return false; |
---|
96 | }); |
---|
97 | |
---|
98 | a.appendChild(document.createTextNode(dotclear.msg.xhtml_validator)); |
---|
99 | |
---|
100 | // Load toolbars |
---|
101 | contentTb.switchMode(formatField.value); |
---|
102 | excerptTb.switchMode(formatField.value); |
---|
103 | |
---|
104 | // Check unsaved changes before XHTML conversion |
---|
105 | var excerpt = $('#post_excerpt').val(); |
---|
106 | var content = $('#post_content').val(); |
---|
107 | $('#convert-xhtml').click(function() { |
---|
108 | if (excerpt != $('#post_excerpt').val() || content != $('#post_content').val()) { |
---|
109 | return window.confirm(dotclear.msg.confirm_change_post_format); |
---|
110 | } |
---|
111 | }); |
---|
112 | }); |
---|
113 | }); |
---|