bgneal@312
|
1 // -------------------------------------------------------------------
|
bgneal@312
|
2 // markItUp!
|
bgneal@312
|
3 // -------------------------------------------------------------------
|
bgneal@312
|
4 // Copyright (C) 2008 Jay Salvat
|
bgneal@312
|
5 // http://markitup.jaysalvat.com/
|
bgneal@312
|
6 // -------------------------------------------------------------------
|
bgneal@312
|
7 // MarkDown tags example
|
bgneal@312
|
8 // http://en.wikipedia.org/wiki/Markdown
|
bgneal@312
|
9 // http://daringfireball.net/projects/markdown/
|
bgneal@312
|
10 // -------------------------------------------------------------------
|
bgneal@312
|
11 // Feel free to add more tags
|
bgneal@312
|
12 // -------------------------------------------------------------------
|
bgneal@693
|
13 // Modified by Brian Neal for SurfGuitar101
|
bgneal@312
|
14 mySettings = {
|
bgneal@312
|
15 previewParserPath: '/comments/markdown/',
|
bgneal@312
|
16 previewParserVar: 'data',
|
bgneal@312
|
17 previewInWindow: false,
|
bgneal@312
|
18 previewAutoRefresh: false,
|
bgneal@312
|
19 previewPosition: 'after',
|
bgneal@312
|
20 onShiftEnter: {keepDefault:false, openWith:'\n\n'},
|
bgneal@312
|
21 markupSet: [
|
bgneal@312
|
22 {name:'Bold', key:'B', openWith:'**', closeWith:'**'},
|
bgneal@312
|
23 {name:'Italic', key:'I', openWith:'_', closeWith:'_'},
|
bgneal@360
|
24 {name:'Strike', key:'S', openWith:'---', closeWith:'---'},
|
bgneal@312
|
25 {separator:'---------------' },
|
bgneal@693
|
26 {name:'Bulleted List', openWith:'- ', multiline:true},
|
bgneal@312
|
27 {name:'Numeric List', openWith:function(markItUp) {
|
bgneal@312
|
28 return markItUp.line+'. ';
|
bgneal@693
|
29 }, multiline:true},
|
bgneal@312
|
30 {separator:'---------------' },
|
bgneal@312
|
31 {name:'Link', key:'L', openWith:'[', closeWith:']([![Url:!:http://]!])', placeHolder:'Your text to link here...' },
|
bgneal@693
|
32 {separator:'---------------'},
|
bgneal@693
|
33 {name:'Quotes', openWith:'> ', multiline:true},
|
bgneal@693
|
34 {name:'Code Block / Code', openWith:'(!(\t|!|`)!)', closeWith:'(!(`)!)', multiline:true},
|
bgneal@312
|
35 {separator:'---------------'},
|
bgneal@312
|
36 {name:'Smilies', className:'smilies', dropMenu: [
|
bgneal@312
|
37 {name:'Argh', replaceWith:' :argh: ', className:'col1-1' },
|
bgneal@312
|
38 {name:'Grin', replaceWith:' :-D ', className:'col1-2' },
|
bgneal@312
|
39 {name:'Razz', replaceWith:' :-P ', className:'col1-3' },
|
bgneal@312
|
40 {name:'Confused', replaceWith:' o_O ', className:'col1-4' },
|
bgneal@312
|
41 {name:'Cool', replaceWith:' 8^) ', className:'col1-5' },
|
bgneal@312
|
42 {name:'Cry', replaceWith:' :-( ', className:'col2-1' },
|
bgneal@312
|
43 {name:'Dead', replaceWith:' x_x ', className:'col2-2' },
|
bgneal@312
|
44 {name:'Embarrassed', replaceWith:' :-# ', className:'col2-3' },
|
bgneal@312
|
45 {name:'LOL', replaceWith:' :lol: ', className:'col2-4' },
|
bgneal@312
|
46 {name:'Mad', replaceWith:' X-( ', className:'col2-5' },
|
bgneal@312
|
47 {name:'No', replaceWith:' :no: ', className:'col3-1' },
|
bgneal@312
|
48 {name:'None', replaceWith:' :-| ', className:'col3-2' },
|
bgneal@312
|
49 {name:'Shock', replaceWith:' :shock: ', className:'col3-3' },
|
bgneal@312
|
50 {name:'Sigh', replaceWith:' :sigh: ', className:'col3-4' },
|
bgneal@312
|
51 {name:'Smile', replaceWith:' :-) ', className:'col3-5' },
|
bgneal@312
|
52 {name:'Uh-oh', replaceWith:' :uh-oh: ', className:'col4-1' },
|
bgneal@312
|
53 {name:'Whatever', replaceWith:' :whatever: ', className:'col4-2' },
|
bgneal@312
|
54 {name:'Wink', replaceWith:' ;-) ', className:'col4-3' },
|
bgneal@312
|
55 {name:'Yes', replaceWith:' :yes: ', className:'col4-4' },
|
bgneal@312
|
56 {name:'Sleep', replaceWith:' :sleep: ', className:'col4-5' }
|
bgneal@312
|
57 ]
|
bgneal@312
|
58 },
|
bgneal@312
|
59 {separator:'---------------'},
|
bgneal@312
|
60 {name:'Preview', call:'preview', className:"preview"}
|
bgneal@312
|
61 ]
|
bgneal@312
|
62 }
|
bgneal@312
|
63
|
bgneal@312
|
64 // mIu nameSpace to avoid conflict.
|
bgneal@312
|
65 miu = {
|
bgneal@312
|
66 markdownTitle: function(markItUp, char) {
|
bgneal@312
|
67 heading = '';
|
bgneal@312
|
68 n = $.trim(markItUp.selection||markItUp.placeHolder).length;
|
bgneal@312
|
69 for(i = 0; i < n; i++) {
|
bgneal@312
|
70 heading += char;
|
bgneal@312
|
71 }
|
bgneal@312
|
72 return '\n'+heading;
|
bgneal@312
|
73 }
|
bgneal@312
|
74 }
|
bgneal@312
|
75
|
bgneal@312
|
76 $(document).ready(function() {
|
bgneal@312
|
77 $('.markItUp').markItUp(mySettings);
|
bgneal@312
|
78
|
bgneal@312
|
79 $('#smileys_dialog_popup').dialog({autoOpen:false});
|
bgneal@312
|
80 var firstTimeSmiley = true;
|
bgneal@312
|
81 $('#more_smileys_link').click(function () {
|
bgneal@312
|
82 $('#smileys_dialog_popup').dialog('open');
|
bgneal@312
|
83 var smileyTarget = $('.smileyTarget')[0];
|
bgneal@312
|
84 if (firstTimeSmiley) {
|
bgneal@312
|
85 $.ajax({
|
bgneal@312
|
86 url: '/smiley/farm/extra/',
|
bgneal@312
|
87 type: 'GET',
|
bgneal@312
|
88 dataType: 'html',
|
bgneal@312
|
89 success: function(data, textStatus) {
|
bgneal@312
|
90 var img = $('#smiley_busy');
|
bgneal@312
|
91 img.hide();
|
bgneal@312
|
92 img.after(data);
|
bgneal@312
|
93 $('#smileys_dialog_popup .smiley_farm img').click(function() {
|
bgneal@312
|
94 smileyTarget.value += ' ' + this.alt + ' ';
|
bgneal@312
|
95 smileyTarget.focus();
|
bgneal@312
|
96 });
|
bgneal@312
|
97 firstTimeSmiley = false;
|
bgneal@312
|
98 },
|
bgneal@312
|
99 error: function (xhr, textStatus, ex) {
|
bgneal@312
|
100 alert('Oops, an error occurred: ' + xhr.statusText + ' - ' + xhr.responseText);
|
bgneal@312
|
101 }
|
bgneal@312
|
102 });
|
bgneal@312
|
103 }
|
bgneal@312
|
104 return false;
|
bgneal@312
|
105 });
|
bgneal@312
|
106 $('#markdown_help_dialog_popup').dialog({autoOpen: false, width: 720, height: 600});
|
bgneal@312
|
107 var firstTimeMdHelp = true;
|
bgneal@312
|
108 $('#markdown_help_link').click(function () {
|
bgneal@312
|
109 $('#markdown_help_dialog_popup').dialog('open');
|
bgneal@312
|
110 if (firstTimeMdHelp) {
|
bgneal@312
|
111 $.ajax({
|
bgneal@312
|
112 url: '/core/markdown_help/',
|
bgneal@312
|
113 type: 'GET',
|
bgneal@312
|
114 dataType: 'html',
|
bgneal@312
|
115 success: function(data, textStatus) {
|
bgneal@312
|
116 var img = $('#markdown_busy');
|
bgneal@312
|
117 img.hide();
|
bgneal@312
|
118 img.after(data);
|
bgneal@312
|
119 firstTimeMdHelp = false;
|
bgneal@312
|
120 },
|
bgneal@312
|
121 error: function (xhr, textStatus, ex) {
|
bgneal@312
|
122 alert('Oops, an error occurred: ' + xhr.statusText + ' - ' + xhr.responseText);
|
bgneal@312
|
123 }
|
bgneal@312
|
124 });
|
bgneal@312
|
125 }
|
bgneal@312
|
126 return false;
|
bgneal@312
|
127 });
|
bgneal@722
|
128
|
bgneal@722
|
129 var $photoProgress = $('#photo-upload-progress');
|
bgneal@725
|
130 if ($photoProgress.length) {
|
bgneal@725
|
131 var $photoForm = $('#photo-upload-form');
|
bgneal@725
|
132 var $postBox = $('#id_body');
|
bgneal@725
|
133 var $photoUploadSubmit = $('#photo-upload-submit');
|
bgneal@722
|
134
|
bgneal@725
|
135 $photoForm.ajaxForm({
|
bgneal@725
|
136 beforeSubmit: function(arr, $form, options) {
|
bgneal@725
|
137 var fileObj = null;
|
bgneal@725
|
138 $.each(arr, function(index, val) {
|
bgneal@725
|
139 if (val.name == 'image_file') {
|
bgneal@725
|
140 fileObj = val.value;
|
bgneal@725
|
141 }
|
bgneal@725
|
142 });
|
bgneal@725
|
143 if (!fileObj) {
|
bgneal@725
|
144 alert("Please choose a file to upload.");
|
bgneal@725
|
145 return false;
|
bgneal@722
|
146 }
|
bgneal@725
|
147 $photoUploadSubmit.attr('disabled', 'disabled').val('Uploading...');
|
bgneal@725
|
148 return true;
|
bgneal@725
|
149 },
|
bgneal@725
|
150 beforeSend: function() {
|
bgneal@725
|
151 $photoProgress.progressbar({value: 0});
|
bgneal@725
|
152 },
|
bgneal@725
|
153 uploadProgress: function(event, position, total, percentComplete) {
|
bgneal@725
|
154 if (percentComplete < 100) {
|
bgneal@725
|
155 $photoProgress.progressbar({value: percentComplete});
|
bgneal@725
|
156 }
|
bgneal@725
|
157 else {
|
bgneal@725
|
158 $photoProgress.progressbar({value: false});
|
bgneal@725
|
159 }
|
bgneal@725
|
160 },
|
bgneal@725
|
161 success: function(resp, statusText, xhr, $form) {
|
bgneal@725
|
162 $photoProgress.progressbar({value: 100});
|
bgneal@725
|
163 if (resp.success) {
|
bgneal@725
|
164 $postBox.val($postBox.val() + '\n![image](' + resp.url + ')');
|
bgneal@725
|
165 alert("Success! The image code was added to your post.");
|
bgneal@725
|
166 }
|
bgneal@725
|
167 else {
|
bgneal@725
|
168 alert('Error: ' + resp.msg);
|
bgneal@725
|
169 }
|
bgneal@725
|
170 },
|
bgneal@725
|
171 complete: function(xhr) {
|
bgneal@725
|
172 $photoProgress.progressbar({value: 0});
|
bgneal@725
|
173 $photoForm.clearForm();
|
bgneal@725
|
174 $photoUploadSubmit.removeAttr('disabled').val('Upload photo');
|
bgneal@725
|
175 },
|
bgneal@725
|
176 error: function(xhr, textStatus, ex) {
|
bgneal@725
|
177 alert('Oops, there was an error: ' + ex);
|
bgneal@722
|
178 }
|
bgneal@725
|
179 });
|
bgneal@725
|
180 }
|
bgneal@971
|
181
|
bgneal@971
|
182 var $hotLinkForm = $('#hot-link-form');
|
bgneal@971
|
183 if ($hotLinkForm.length) {
|
bgneal@971
|
184 var $postBox = $('#id_body');
|
bgneal@971
|
185 var $hotLinkFormSubmit = $('#hot-link-form-submit');
|
bgneal@971
|
186
|
bgneal@971
|
187 $hotLinkForm.ajaxForm({
|
bgneal@971
|
188 beforeSubmit: function(arr, $form, options) {
|
bgneal@971
|
189 var url = null;
|
bgneal@971
|
190 $.each(arr, function(index, val) {
|
bgneal@971
|
191 if (val.name == 'url') {
|
bgneal@971
|
192 url = val.value;
|
bgneal@971
|
193 }
|
bgneal@971
|
194 });
|
bgneal@971
|
195 if (!url) {
|
bgneal@971
|
196 alert("Please enter an image URL.");
|
bgneal@971
|
197 return false;
|
bgneal@971
|
198 }
|
bgneal@971
|
199 $hotLinkFormSubmit.attr('disabled', 'disabled').val('Retrieving...');
|
bgneal@971
|
200 return true;
|
bgneal@971
|
201 },
|
bgneal@971
|
202 success: function(resp, statusText, xhr, $form) {
|
bgneal@971
|
203 $postBox.val($postBox.val() + '\n![image](' + resp.url + ')');
|
bgneal@971
|
204 alert("Success! The image code was added to your post.");
|
bgneal@971
|
205 $hotLinkForm.clearForm();
|
bgneal@971
|
206 },
|
bgneal@971
|
207 complete: function(xhr) {
|
bgneal@971
|
208 $hotLinkFormSubmit.removeAttr('disabled').val('Hot Link');
|
bgneal@971
|
209 },
|
bgneal@971
|
210 error: function(xhr, textStatus, ex) {
|
bgneal@971
|
211 alert('Oops, there was an error: ' + ex);
|
bgneal@971
|
212 }
|
bgneal@971
|
213 });
|
bgneal@971
|
214 }
|
bgneal@312
|
215 });
|