edit.html 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261
  1. <#include "../_inc/_layout.html"/>
  2. <#macro script>
  3. function commentable(){
  4. var checkbox = $('.checkbox')[0];
  5. var commentStatus = $('#comment_status');
  6. if (checkbox.classList.contains("active")) {
  7. commentStatus.attr("value","close");
  8. checkbox.classList.remove('active');
  9. } else {
  10. commentStatus.attr("value","open");
  11. checkbox.classList.add('active');
  12. }
  13. }
  14. function getPushTime(){
  15. //var now = new Date();
  16. //格式化日,如果小于9,前面补0
  17. //var day = ("0" + now.getDate()).slice(-2);
  18. //格式化月,如果小于9,前面补0
  19. //var month = ("0" + (now.getMonth() + 1)).slice(-2);
  20. //拼装完整日期格式
  21. //var today = now.getFullYear()+"-"+(month)+"-"+(day) ;
  22. //完成赋值
  23. //$('#createDefaultTime').val(today);
  24. var pushDate = $('.push_time');
  25. var createDefaultTime = $('#createDefaultTime');
  26. createDefaultTime.attr("value",createDefaultTime.val());
  27. pushDate.attr("value",createDefaultTime.val());
  28. }
  29. function countSummaryLength(){
  30. var summary = $('#content_summary');
  31. var CountUas = $('.CountLengthUas');
  32. CountUas.html(summary.val().length);
  33. }
  34. var data={
  35. url:'',
  36. alt:''
  37. };
  38. function initTinymce(){
  39. tinymce.init({
  40. selector: '#textarea',
  41. height: 365,
  42. language: 'zh_CN',
  43. menubar: false,
  44. automatic_uploads: true,
  45. paste_data_images: true,
  46. convert_urls: false,
  47. relative_urls : false,
  48. imagetools_toolbar: "rotateleft rotateright | flipv fliph | editimage imageoptions",
  49. imagetools_proxy: '${CPATH}/admin/tinymce/image/proxy',
  50. images_upload_url: '${CPATH}/admin/tinymce/image/upload',
  51. wordcount_countregex: /[\u4e00-\u9fa5_a-zA-Z0-9]/g,
  52. file_picker_callback: function(callback, value, meta) {
  53. layer.open({
  54. type: 2,
  55. title: '选择图片',
  56. shadeClose: true,
  57. shade: 0.8,
  58. area: ['92%', '90%'],
  59. content: '${CPATH}/admin/attachment/choose_layer',
  60. end:function(){
  61. if(''!=data.url && null != data.url){
  62. callback(data.url, {alt: data.alt});
  63. }
  64. }
  65. });
  66. },
  67. plugins: [
  68. "advlist autolink autosave link image media imagetools lists charmap print preview hr anchor pagebreak spellchecker",
  69. "searchreplace wordcount visualblocks visualchars code codesample fullscreen insertdatetime media nonbreaking",
  70. "table contextmenu directionality emoticons template textcolor paste fullpage textcolor colorpicker textpattern"
  71. ],
  72. toolbar1: ' bold italic underline strikethrough removeformat | blockquote hr table image media codesample | anchor link unlink | alignleft aligncenter alignright alignjustify | bullist numlist ',
  73. toolbar2: ' formatselect | outdent indent | forecolor backcolor | undo redo | code fullscreen',
  74. });
  75. }
  76. var simplemde ;
  77. function initMarkdownEditor(){
  78. simplemde = new SimpleMDE({ element: $("#textarea")[0] });
  79. }
  80. var _editor = "${_editor!}";
  81. if("tinymce" == _editor){
  82. initTinymce();
  83. }else{
  84. initMarkdownEditor();
  85. }
  86. function save(turnpage){
  87. $('#content_slug').attr('value',$("#slug_text").text());
  88. if("tinymce" == _editor){
  89. tinymce.activeEditor.uploadImages(function(success) {
  90. tinymce.triggerSave();
  91. doSubmit(turnpage);
  92. });
  93. }else{
  94. $("#textarea").text(simplemde.markdown(simplemde.value()));
  95. doSubmit();
  96. }
  97. return false;
  98. }
  99. function doPreview(){
  100. saveAsDraft(turnPage);
  101. /*var slug = $('#content_slug').val();
  102. if("" == slug) {
  103. slug = $('#title').val();
  104. }*/
  105. }
  106. function turnPage(){
  107. var contentId = $("#content_id").val();
  108. window.location.href = "${CPATH}/admin/content/edit?id="+contentId+"&c=edit&p=uuhelper&m=uuhelper";
  109. }
  110. function saveAsDraft(turnpage){
  111. $("#content_status").attr("value","draft");
  112. save(turnpage);
  113. }
  114. function doSubmit(turnpage){
  115. $("#form").ajaxSubmit({
  116. type : "post",
  117. dataType : "json",
  118. success : function(data) {
  119. if(data.errorCode == 0){
  120. $("#content_id").attr("value",data.data);
  121. toastr.success('保存成功!','操作成功');
  122. if(turnpage) {
  123. turnpage();
  124. }
  125. }else{
  126. toastr.error(data.message,'操作失败');
  127. }
  128. },
  129. error : function() {
  130. alert("信息提交错误");
  131. }
  132. });
  133. }
  134. function doSelectThumbnail(){
  135. layer.open({
  136. type: 2,
  137. title: '选择图片',
  138. shadeClose: true,
  139. shade: 0.8,
  140. area: ['92%', '90%'],
  141. content: '${CPATH}/admin/attachment/choose_layer',
  142. end:function(){
  143. if(''!=data.url && null != data.url){
  144. $("#thumbnail").attr("src",data.url);
  145. $("#content_thumbnail").attr("value",data.url);
  146. }
  147. }
  148. });
  149. }
  150. function doRemoveThumbnail(){
  151. $("#thumbnail").attr("src","${CPATH}/static/jpress/admin/image/nothumbnail.jpg");
  152. $("#content_thumbnail").val("");
  153. }
  154. function doChangeEditor(){
  155. if("tinymce" == _editor){
  156. doAjax('${CPATH}/admin/content/changeEditor/markdown');
  157. }else{
  158. doAjax('${CPATH}/admin/content/changeEditor/tinymce');
  159. }
  160. }
  161. function doAjax(url){
  162. $.get(url, function(result){
  163. if(result.errorCode > 0){
  164. toastr.error(result.message,'操作失败');
  165. }else{
  166. location.reload();
  167. }
  168. });
  169. }
  170. <#if module ??>
  171. <#list module.taxonomyTypes! as taxonomyType >
  172. $('#_${taxonomyType.name}').tagEditor();
  173. </#list>
  174. </#if>
  175. $("#title").keyup(function(){
  176. if($('#content_slug').val() == ""){
  177. $("#slug_text").text(this.value);
  178. $('#slug_text').editable('setValue',this.value);
  179. }
  180. });
  181. $(document).ready(function(){
  182. $.fn.editable.defaults.mode = 'inline';
  183. $('#slug_text').editable();
  184. var url = window.location.protocol +"//"+ window.location.host+"${CPATH}${urlPreffix}" ;
  185. $("#url_preffix").text(url);
  186. $('#slug_text').editable('setValue'," ${(content.slug)!'标题'}");
  187. $('#titleurl').on('save', function(e, params) {
  188. $('#content_slug').attr('value',params.newValue);
  189. });
  190. <#if content?? && "uuhelper" == content.module>
  191. window.open($("#content_url").val());
  192. </#if>
  193. });
  194. </#macro>
  195. <#macro script_import>
  196. <script src="${CPATH}/static/tinymce/tinymce.min.js"></script>
  197. <script src="${CPATH}/static/plugins/tag/jquery.caret.min.js"></script>
  198. <script src="${CPATH}/static/plugins/tag/jquery.tag-editor.min.js"></script>
  199. <script src="${CPATH}/static/plugins/editable/bootstrap-editable.min.js"></script>
  200. <script src="${CPATH}/static/simplemde/simplemde.min.js"></script>
  201. <script src="${CTPATH}/assets/js/jquery.imgareaselect.pack.js"></script>
  202. </#macro>
  203. <#macro css_import>
  204. <link rel="stylesheet" href="${CPATH}/static/plugins/tag/jquery.tag-editor.css">
  205. <link rel="stylesheet" href="${CPATH}/static/plugins/editable/bootstrap-editable.css">
  206. <link rel="stylesheet" href="${CPATH}/static/simplemde/simplemde.min.css">
  207. <link rel="stylesheet" type="text/css" href="${CTPATH}/assets/css/imgareaselect-default.css"/>
  208. </#macro>
  209. <#macro css>
  210. .editable-input {
  211. width: 100%;
  212. }
  213. .form-inline .form-control {
  214. display: inline-block;
  215. width: 100%;
  216. vertical-align: middle;
  217. }
  218. .nav-tabs-custom {
  219. margin-bottom: 0px;
  220. background: #fff;
  221. box-shadow: 0 1px 1px rgba(0, 0, 0, 0);
  222. border-radius: 3px;
  223. }
  224. </#macro>
  225. <@layout active_id=p child_active_id=c>
  226. <#include include/>
  227. </@layout>