懒得勤快 4 hafta önce
ebeveyn
işleme
4c98a5cc9d
100 değiştirilmiş dosya ile 20 ekleme ve 9351 silme
  1. 1 0
      front/.gitignore
  2. 3 2
      front/package.json
  3. 16 0
      front/predev.js
  4. 0 62
      front/public/UEditorPlus/dialogs/anchor/anchor.html
  5. 0 716
      front/public/UEditorPlus/dialogs/attachment/attachment.css
  6. 0 61
      front/public/UEditorPlus/dialogs/attachment/attachment.html
  7. 0 774
      front/public/UEditorPlus/dialogs/attachment/attachment.js
  8. BIN
      front/public/UEditorPlus/dialogs/attachment/images/alignicon.gif
  9. BIN
      front/public/UEditorPlus/dialogs/attachment/images/alignicon.png
  10. BIN
      front/public/UEditorPlus/dialogs/attachment/images/bg.png
  11. BIN
      front/public/UEditorPlus/dialogs/attachment/images/file-icons.gif
  12. BIN
      front/public/UEditorPlus/dialogs/attachment/images/file-icons.png
  13. BIN
      front/public/UEditorPlus/dialogs/attachment/images/icons.gif
  14. BIN
      front/public/UEditorPlus/dialogs/attachment/images/icons.png
  15. BIN
      front/public/UEditorPlus/dialogs/attachment/images/image.png
  16. BIN
      front/public/UEditorPlus/dialogs/attachment/images/progress.png
  17. BIN
      front/public/UEditorPlus/dialogs/attachment/images/success.gif
  18. BIN
      front/public/UEditorPlus/dialogs/attachment/images/success.png
  19. 0 818
      front/public/UEditorPlus/dialogs/audio/audio.css
  20. 0 83
      front/public/UEditorPlus/dialogs/audio/audio.html
  21. 0 782
      front/public/UEditorPlus/dialogs/audio/audio.js
  22. BIN
      front/public/UEditorPlus/dialogs/audio/images/bg.png
  23. BIN
      front/public/UEditorPlus/dialogs/audio/images/center_focus.jpg
  24. BIN
      front/public/UEditorPlus/dialogs/audio/images/file-icons.gif
  25. BIN
      front/public/UEditorPlus/dialogs/audio/images/file-icons.png
  26. BIN
      front/public/UEditorPlus/dialogs/audio/images/icons.gif
  27. BIN
      front/public/UEditorPlus/dialogs/audio/images/icons.png
  28. BIN
      front/public/UEditorPlus/dialogs/audio/images/image.png
  29. BIN
      front/public/UEditorPlus/dialogs/audio/images/left_focus.jpg
  30. BIN
      front/public/UEditorPlus/dialogs/audio/images/none_focus.jpg
  31. BIN
      front/public/UEditorPlus/dialogs/audio/images/progress.png
  32. BIN
      front/public/UEditorPlus/dialogs/audio/images/right_focus.jpg
  33. BIN
      front/public/UEditorPlus/dialogs/audio/images/success.gif
  34. BIN
      front/public/UEditorPlus/dialogs/audio/images/success.png
  35. 0 193
      front/public/UEditorPlus/dialogs/background/background.css
  36. 0 59
      front/public/UEditorPlus/dialogs/background/background.html
  37. 0 370
      front/public/UEditorPlus/dialogs/background/background.js
  38. BIN
      front/public/UEditorPlus/dialogs/background/images/bg.png
  39. BIN
      front/public/UEditorPlus/dialogs/background/images/success.png
  40. 0 176
      front/public/UEditorPlus/dialogs/contentimport/contentimport.html
  41. 0 91
      front/public/UEditorPlus/dialogs/contentimport/contentimport.js
  42. 0 129
      front/public/UEditorPlus/dialogs/emotion/emotion.css
  43. 0 70
      front/public/UEditorPlus/dialogs/emotion/emotion.html
  44. 0 186
      front/public/UEditorPlus/dialogs/emotion/emotion.js
  45. BIN
      front/public/UEditorPlus/dialogs/emotion/images/0.gif
  46. BIN
      front/public/UEditorPlus/dialogs/emotion/images/bface.gif
  47. BIN
      front/public/UEditorPlus/dialogs/emotion/images/cface.gif
  48. BIN
      front/public/UEditorPlus/dialogs/emotion/images/fface.gif
  49. BIN
      front/public/UEditorPlus/dialogs/emotion/images/jxface2.gif
  50. BIN
      front/public/UEditorPlus/dialogs/emotion/images/neweditor-tab-bg.png
  51. BIN
      front/public/UEditorPlus/dialogs/emotion/images/tface.gif
  52. BIN
      front/public/UEditorPlus/dialogs/emotion/images/wface.gif
  53. BIN
      front/public/UEditorPlus/dialogs/emotion/images/yface.gif
  54. 0 98
      front/public/UEditorPlus/dialogs/formula/formula.html
  55. 0 147
      front/public/UEditorPlus/dialogs/formula/formula.js
  56. 0 37
      front/public/UEditorPlus/dialogs/help/help.css
  57. 0 82
      front/public/UEditorPlus/dialogs/help/help.html
  58. 0 57
      front/public/UEditorPlus/dialogs/help/help.js
  59. 0 752
      front/public/UEditorPlus/dialogs/image/image.css
  60. 0 125
      front/public/UEditorPlus/dialogs/image/image.html
  61. 0 1028
      front/public/UEditorPlus/dialogs/image/image.js
  62. BIN
      front/public/UEditorPlus/dialogs/image/images/alignicon.jpg
  63. BIN
      front/public/UEditorPlus/dialogs/image/images/bg.png
  64. BIN
      front/public/UEditorPlus/dialogs/image/images/icons.gif
  65. BIN
      front/public/UEditorPlus/dialogs/image/images/icons.png
  66. BIN
      front/public/UEditorPlus/dialogs/image/images/image.png
  67. BIN
      front/public/UEditorPlus/dialogs/image/images/progress.png
  68. BIN
      front/public/UEditorPlus/dialogs/image/images/success.gif
  69. BIN
      front/public/UEditorPlus/dialogs/image/images/success.png
  70. 0 135
      front/public/UEditorPlus/dialogs/insertframe/insertframe.html
  71. 0 81
      front/public/UEditorPlus/dialogs/internal.js
  72. 0 155
      front/public/UEditorPlus/dialogs/link/link.html
  73. 0 45
      front/public/UEditorPlus/dialogs/preview/preview.html
  74. BIN
      front/public/UEditorPlus/dialogs/scrawl/images/addimg.png
  75. BIN
      front/public/UEditorPlus/dialogs/scrawl/images/brush.png
  76. BIN
      front/public/UEditorPlus/dialogs/scrawl/images/delimg.png
  77. BIN
      front/public/UEditorPlus/dialogs/scrawl/images/delimgH.png
  78. BIN
      front/public/UEditorPlus/dialogs/scrawl/images/empty.png
  79. BIN
      front/public/UEditorPlus/dialogs/scrawl/images/emptyH.png
  80. BIN
      front/public/UEditorPlus/dialogs/scrawl/images/eraser.png
  81. BIN
      front/public/UEditorPlus/dialogs/scrawl/images/redo.png
  82. BIN
      front/public/UEditorPlus/dialogs/scrawl/images/redoH.png
  83. BIN
      front/public/UEditorPlus/dialogs/scrawl/images/scale.png
  84. BIN
      front/public/UEditorPlus/dialogs/scrawl/images/scaleH.png
  85. BIN
      front/public/UEditorPlus/dialogs/scrawl/images/size.png
  86. BIN
      front/public/UEditorPlus/dialogs/scrawl/images/undo.png
  87. BIN
      front/public/UEditorPlus/dialogs/scrawl/images/undoH.png
  88. 0 324
      front/public/UEditorPlus/dialogs/scrawl/scrawl.css
  89. 0 95
      front/public/UEditorPlus/dialogs/scrawl/scrawl.html
  90. 0 682
      front/public/UEditorPlus/dialogs/scrawl/scrawl.js
  91. 0 144
      front/public/UEditorPlus/dialogs/searchreplace/searchreplace.html
  92. 0 174
      front/public/UEditorPlus/dialogs/searchreplace/searchreplace.js
  93. 0 42
      front/public/UEditorPlus/dialogs/spechars/spechars.html
  94. 0 86
      front/public/UEditorPlus/dialogs/spechars/spechars.js
  95. BIN
      front/public/UEditorPlus/dialogs/table/dragicon.png
  96. 0 85
      front/public/UEditorPlus/dialogs/table/edittable.css
  97. 0 69
      front/public/UEditorPlus/dialogs/table/edittable.html
  98. 0 241
      front/public/UEditorPlus/dialogs/table/edittable.js
  99. 0 62
      front/public/UEditorPlus/dialogs/table/edittd.html
  100. 0 33
      front/public/UEditorPlus/dialogs/table/edittip.html

+ 1 - 0
front/.gitignore

@@ -22,3 +22,4 @@ pnpm-debug.log*
 *.sln
 *.sw?
 /package-lock.json
+/public/UEditorPlus

+ 3 - 2
front/package.json

@@ -3,7 +3,7 @@
   "version": "0.1.0",
   "private": true,
   "scripts": {
-    "dev": "vue-cli-service serve",
+    "dev": "node predev.js && vue-cli-service serve",
     "build": "vue-cli-service build",
     "lint": "vue-cli-service lint",
     "analyzer": "cross-env use_analyzer=true npm run build"
@@ -13,6 +13,7 @@
     "axios": "^1.12.2",
     "core-js": "^3.45.1",
     "dayjs": "^1.11.18",
+    "fs-extra": "^11.3.2",
     "monaco-editor": "^0.53.0",
     "pinia": "^3.0.3",
     "quasar": "^2.18.5",
@@ -62,4 +63,4 @@
     "last 2 versions",
     "not dead"
   ]
-}
+}

+ 16 - 0
front/predev.js

@@ -0,0 +1,16 @@
+const fs = require('fs');
+const path = require('path');
+const fse = require('fs-extra');
+
+const target = path.join(__dirname, 'public', 'UEditorPlus');
+const source = path.join(__dirname, '..', 'src', 'Masuit.MyBlogs.Core', 'wwwroot', 'UEditorPlus');
+
+if (!fs.existsSync(target)) {
+  if (fs.existsSync(source)) {
+    fse.copySync(source, target);
+    console.log('UEditorPlus 已拷贝到 public 目录');
+  } else {
+    console.error('源目录不存在:', source);
+    process.exit(1);
+  }
+}

+ 0 - 62
front/public/UEditorPlus/dialogs/anchor/anchor.html

@@ -1,62 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-    "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
-    <title></title>
-    <style type="text/css">
-        * {
-            color: #838383;
-            margin: 0;
-            padding: 0
-        }
-
-        html, body {
-            font-size: 12px;
-            overflow: hidden;
-        }
-
-        .content {
-            padding: 5px 0 0 15px;
-        }
-
-        input {
-            margin-left: 4px;
-            box-sizing: border-box;
-            width: 210px;
-            height: 30px;
-            line-height: 30px;
-            border: 1px solid #d7d7d7;
-            border-radius: 3px;
-            padding: 0 5px;
-            outline: none;
-        }
-    </style>
-</head>
-<body>
-<div class="content">
-    <span><var id="lang_input_anchorName"></var></span><input id="anchorName" value=""/>
-</div>
-<script type="text/javascript" src="../internal.js?aea0c61c"></script>
-<script type="text/javascript">
-    var anchorInput = $G('anchorName'),
-        node = editor.selection.getRange().getClosedNode();
-    if (node && node.tagName == 'IMG' && (node = node.getAttribute('anchorname'))) {
-        anchorInput.value = node;
-    }
-    anchorInput.onkeydown = function (evt) {
-        evt = evt || window.event;
-        if (evt.keyCode == 13) {
-            editor.execCommand('anchor', anchorInput.value);
-            dialog.close();
-            domUtils.preventDefault(evt)
-        }
-    };
-    dialog.onok = function () {
-        editor.execCommand('anchor', anchorInput.value);
-        dialog.close();
-    };
-    $focus(anchorInput);
-</script>
-</body>
-</html>

+ 0 - 716
front/public/UEditorPlus/dialogs/attachment/attachment.css

@@ -1,716 +0,0 @@
-@charset "utf-8";
-/* dialog样式 */
-.wrapper {
-    zoom: 1;
-    width: 630px;
-    *width: 626px;
-    height: 380px;
-    margin: 0 auto;
-    padding: 10px;
-    position: relative;
-    font-family: sans-serif;
-}
-
-/*tab样式框大小*/
-.tabhead {
-    float: left;
-}
-
-.tabbody {
-    width: 100%;
-    height: 346px;
-    position: relative;
-    clear: both;
-}
-
-.tabbody .panel {
-    position: absolute;
-    width: 0;
-    height: 0;
-    background: #fff;
-    overflow: hidden;
-    display: none;
-}
-
-.tabbody .panel.focus {
-    width: 100%;
-    height: 346px;
-    display: block;
-}
-
-/* 上传附件 */
-.tabbody #upload.panel {
-    width: 0;
-    height: 0;
-    overflow: hidden;
-    position: absolute !important;
-    clip: rect(1px, 1px, 1px, 1px);
-    background: #fff;
-    display: block;
-}
-
-.tabbody #upload.panel.focus {
-    width: 100%;
-    height: 346px;
-    display: block;
-    clip: auto;
-}
-
-#upload .queueList {
-    margin: 0;
-    width: 100%;
-    height: 100%;
-    position: absolute;
-    overflow: hidden;
-}
-
-#upload p {
-    margin: 0;
-}
-
-.element-invisible {
-    width: 0 !important;
-    height: 0 !important;
-    border: 0;
-    padding: 0;
-    margin: 0;
-    overflow: hidden;
-    position: absolute !important;
-    clip: rect(1px, 1px, 1px, 1px);
-}
-
-#upload .placeholder {
-    margin: 10px;
-    border: 2px dashed #e6e6e6;
-    *border: 0px dashed #e6e6e6;
-    height: 172px;
-    padding-top: 150px;
-    text-align: center;
-    background: url(./images/image.png) center 70px no-repeat;
-    color: #cccccc;
-    font-size: 18px;
-    position: relative;
-    top: 0;
-    *top: 10px;
-}
-
-#upload .placeholder .webuploader-pick {
-    font-size: 18px;
-    background: #00b7ee;
-    border-radius: 3px;
-    line-height: 44px;
-    padding: 0 30px;
-    *width: 120px;
-    color: #fff;
-    display: inline-block;
-    margin: 0 auto 20px auto;
-    cursor: pointer;
-    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
-}
-
-#upload .placeholder .webuploader-pick-hover {
-    background: #00a2d4;
-}
-
-
-#filePickerContainer {
-    text-align: center;
-}
-
-#upload .placeholder .flashTip {
-    color: #666666;
-    font-size: 12px;
-    position: absolute;
-    width: 100%;
-    text-align: center;
-    bottom: 20px;
-}
-
-#upload .placeholder .flashTip a {
-    color: #0785d1;
-    text-decoration: none;
-}
-
-#upload .placeholder .flashTip a:hover {
-    text-decoration: underline;
-}
-
-#upload .placeholder.webuploader-dnd-over {
-    border-color: #999999;
-}
-
-#upload .filelist {
-    list-style: none;
-    margin: 0;
-    padding: 0;
-    overflow-x: hidden;
-    overflow-y: auto;
-    position: relative;
-    height: 300px;
-}
-
-#upload .filelist:after {
-    content: '';
-    display: block;
-    width: 0;
-    height: 0;
-    overflow: hidden;
-    clear: both;
-}
-
-#upload .filelist li {
-    width: 113px;
-    height: 113px;
-    background: url(./images/bg.png);
-    text-align: center;
-    margin: 9px 0 0 9px;
-    *margin: 6px 0 0 6px;
-    position: relative;
-    display: block;
-    float: left;
-    overflow: hidden;
-    font-size: 12px;
-}
-
-#upload .filelist li p.log {
-    position: relative;
-    top: -45px;
-}
-
-#upload .filelist li p.title {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    overflow: hidden;
-    white-space: nowrap;
-    text-overflow: ellipsis;
-    top: 5px;
-    text-indent: 5px;
-    text-align: left;
-}
-
-#upload .filelist li p.progress {
-    position: absolute;
-    width: 100%;
-    bottom: 0;
-    left: 0;
-    height: 8px;
-    overflow: hidden;
-    z-index: 50;
-    margin: 0;
-    border-radius: 0;
-    background: none;
-    -webkit-box-shadow: 0 0 0;
-}
-
-#upload .filelist li p.progress span {
-    display: none;
-    overflow: hidden;
-    width: 0;
-    height: 100%;
-    background: #1483d8 url(./images/progress.png) repeat-x;
-
-    -webit-transition: width 200ms linear;
-    -moz-transition: width 200ms linear;
-    -o-transition: width 200ms linear;
-    -ms-transition: width 200ms linear;
-    transition: width 200ms linear;
-
-    -webkit-animation: progressmove 2s linear infinite;
-    -moz-animation: progressmove 2s linear infinite;
-    -o-animation: progressmove 2s linear infinite;
-    -ms-animation: progressmove 2s linear infinite;
-    animation: progressmove 2s linear infinite;
-
-    -webkit-transform: translateZ(0);
-}
-
-@-webkit-keyframes progressmove {
-    0% {
-        background-position: 0 0;
-    }
-    100% {
-        background-position: 17px 0;
-    }
-}
-
-@-moz-keyframes progressmove {
-    0% {
-        background-position: 0 0;
-    }
-    100% {
-        background-position: 17px 0;
-    }
-}
-
-@keyframes progressmove {
-    0% {
-        background-position: 0 0;
-    }
-    100% {
-        background-position: 17px 0;
-    }
-}
-
-#upload .filelist li p.imgWrap {
-    position: relative;
-    z-index: 2;
-    line-height: 113px;
-    vertical-align: middle;
-    overflow: hidden;
-    width: 113px;
-    height: 113px;
-
-    -webkit-transform-origin: 50% 50%;
-    -moz-transform-origin: 50% 50%;
-    -o-transform-origin: 50% 50%;
-    -ms-transform-origin: 50% 50%;
-    transform-origin: 50% 50%;
-
-    -webit-transition: 200ms ease-out;
-    -moz-transition: 200ms ease-out;
-    -o-transition: 200ms ease-out;
-    -ms-transition: 200ms ease-out;
-    transition: 200ms ease-out;
-}
-
-#upload .filelist li p.imgWrap.notimage {
-    margin-top: 0;
-    width: 111px;
-    height: 111px;
-    border: 1px #eeeeee solid;
-}
-
-#upload .filelist li p.imgWrap.notimage i.file-preview {
-    margin-top: 15px;
-}
-
-#upload .filelist li img {
-    width: 100%;
-}
-
-#upload .filelist li p.error {
-    background: #f43838;
-    color: #fff;
-    position: absolute;
-    bottom: 0;
-    left: 0;
-    height: 28px;
-    line-height: 28px;
-    width: 100%;
-    z-index: 100;
-    display: none;
-}
-
-#upload .filelist li .success {
-    display: block;
-    position: absolute;
-    left: 0;
-    bottom: 0;
-    height: 40px;
-    width: 100%;
-    z-index: 200;
-    background: url(./images/success.png) no-repeat right bottom;
-    background-image: url(./images/success.gif) \9;
-}
-
-#upload .filelist li.filePickerBlock {
-    width: 113px;
-    height: 113px;
-    background: url(./images/image.png) no-repeat center 12px;
-    border: 1px solid #eeeeee;
-    border-radius: 0;
-}
-
-#upload .filelist li.filePickerBlock div.webuploader-pick {
-    width: 100%;
-    height: 100%;
-    margin: 0;
-    padding: 0;
-    opacity: 0;
-    background: none;
-    font-size: 0;
-}
-
-#upload .filelist div.file-panel {
-    position: absolute;
-    height: 0;
-    filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#80000000', endColorstr='#80000000') \0;
-    background: rgba(0, 0, 0, 0.5);
-    width: 100%;
-    top: 0;
-    left: 0;
-    overflow: hidden;
-    z-index: 300;
-}
-
-#upload .filelist div.file-panel span {
-    width: 24px;
-    height: 24px;
-    display: inline;
-    float: right;
-    text-indent: -9999px;
-    overflow: hidden;
-    background: url(./images/icons.png) no-repeat;
-    background: url(./images/icons.gif) no-repeat \9;
-    margin: 5px 1px 1px;
-    cursor: pointer;
-    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
-    -webkit-user-select: none;
-    -moz-user-select: none;
-    -ms-user-select: none;
-    user-select: none;
-}
-
-#upload .filelist div.file-panel span.rotateLeft {
-    display: none;
-    background-position: 0 -24px;
-}
-
-#upload .filelist div.file-panel span.rotateLeft:hover {
-    background-position: 0 0;
-}
-
-#upload .filelist div.file-panel span.rotateRight {
-    display: none;
-    background-position: -24px -24px;
-}
-
-#upload .filelist div.file-panel span.rotateRight:hover {
-    background-position: -24px 0;
-}
-
-#upload .filelist div.file-panel span.cancel {
-    background-position: -48px -24px;
-}
-
-#upload .filelist div.file-panel span.cancel:hover {
-    background-position: -48px 0;
-}
-
-#upload .statusBar {
-    height: 45px;
-    border-bottom: 1px solid #dadada;
-    margin: 0 10px;
-    padding: 0;
-    line-height: 45px;
-    vertical-align: middle;
-    position: relative;
-}
-
-#upload .statusBar .progress {
-    border: 1px solid #1483d8;
-    width: 198px;
-    background: #fff;
-    height: 18px;
-    position: absolute;
-    top: 12px;
-    display: none;
-    text-align: center;
-    line-height: 18px;
-    color: #6dbfff;
-    margin: 0 10px 0 0;
-}
-
-#upload .statusBar .progress span.percentage {
-    width: 0;
-    height: 100%;
-    left: 0;
-    top: 0;
-    background: #1483d8;
-    position: absolute;
-}
-
-#upload .statusBar .progress span.text {
-    position: relative;
-    z-index: 10;
-}
-
-#upload .statusBar .info {
-    display: inline-block;
-    font-size: 14px;
-    color: #666666;
-}
-
-#upload .statusBar .btns {
-    position: absolute;
-    top: 7px;
-    right: 0;
-    line-height: 30px;
-}
-
-#filePickerBtn {
-    display: inline-block;
-    float: left;
-}
-
-#upload .statusBar .btns .webuploader-pick,
-#upload .statusBar .btns .uploadBtn,
-#upload .statusBar .btns .uploadBtn.state-uploading,
-#upload .statusBar .btns .uploadBtn.state-paused {
-    background: #ffffff;
-    border: 1px solid #cfcfcf;
-    color: #565656;
-    padding: 0 18px;
-    display: inline-block;
-    border-radius: 3px;
-    margin-left: 10px;
-    cursor: pointer;
-    font-size: 14px;
-    float: left;
-    -webkit-user-select: none;
-    -moz-user-select: none;
-    -ms-user-select: none;
-    user-select: none;
-}
-
-#upload .statusBar .btns .webuploader-pick-hover,
-#upload .statusBar .btns .uploadBtn:hover,
-#upload .statusBar .btns .uploadBtn.state-uploading:hover,
-#upload .statusBar .btns .uploadBtn.state-paused:hover {
-    background: #f0f0f0;
-}
-
-#upload .statusBar .btns .uploadBtn,
-#upload .statusBar .btns .uploadBtn.state-paused {
-    background: #00b7ee;
-    color: #fff;
-    border-color: transparent;
-}
-
-#upload .statusBar .btns .uploadBtn:hover,
-#upload .statusBar .btns .uploadBtn.state-paused:hover {
-    background: #00a2d4;
-}
-
-#upload .statusBar .btns .uploadBtn.disabled {
-    pointer-events: none;
-    filter: alpha(opacity=60);
-    -moz-opacity: 0.6;
-    -khtml-opacity: 0.6;
-    opacity: 0.6;
-}
-
-
-/* 图片管理样式 */
-#online {
-    width: 100%;
-    height: 336px;
-    padding: 10px 0 0 0;
-}
-
-#online #fileList {
-    width: 100%;
-    height: 100%;
-    overflow-x: hidden;
-    overflow-y: auto;
-    position: relative;
-}
-
-#online ul {
-    display: block;
-    list-style: none;
-    margin: 0;
-    padding: 0;
-}
-
-#online li {
-    float: left;
-    display: block;
-    list-style: none;
-    padding: 0;
-    width: 113px;
-    height: 113px;
-    margin: 0 0 9px 9px;
-    *margin: 0 0 6px 6px;
-    background-color: #eee;
-    overflow: hidden;
-    cursor: pointer;
-    position: relative;
-}
-
-#online li.clearFloat {
-    float: none;
-    clear: both;
-    display: block;
-    width: 0;
-    height: 0;
-    margin: 0;
-    padding: 0;
-}
-
-#online li img {
-    cursor: pointer;
-}
-
-#online li div.file-wrapper {
-    cursor: pointer;
-    position: absolute;
-    display: block;
-    width: 111px;
-    height: 111px;
-    border: 1px solid #eee;
-    background: url("./images/bg.png") repeat;
-}
-
-#online li div span.file-title {
-    display: block;
-    padding: 0 3px;
-    margin: 3px 0 0 0;
-    font-size: 12px;
-    height: 15px;
-    color: #555555;
-    text-align: center;
-    width: 107px;
-    white-space: nowrap;
-    word-break: break-all;
-    overflow: hidden;
-    text-overflow: ellipsis;
-}
-
-#online li .icon {
-    cursor: pointer;
-    width: 113px;
-    height: 113px;
-    position: absolute;
-    top: 0;
-    left: 0;
-    z-index: 2;
-    border: 0;
-    background-repeat: no-repeat;
-}
-
-#online li .icon:hover {
-    width: 107px;
-    height: 107px;
-    border: 3px solid #1094fa;
-}
-
-#online li.selected .icon {
-    background-image: url(images/success.png);
-    background-image: url(images/success.gif) \9;
-    background-position: 75px 75px;
-}
-
-#online li.selected .icon:hover {
-    width: 107px;
-    height: 107px;
-    border: 3px solid #1094fa;
-    background-position: 72px 72px;
-}
-
-
-/* 在线文件的文件预览图标 */
-i.file-preview {
-    display: block;
-    margin: 10px auto;
-    width: 70px;
-    height: 70px;
-    background-image: url("./images/file-icons.png");
-    background-image: url("./images/file-icons.gif") \9;
-    background-position: -140px center;
-    background-repeat: no-repeat;
-}
-
-i.file-preview.file-type-dir {
-    background-position: 0 center;
-}
-
-i.file-preview.file-type-file {
-    background-position: -140px center;
-}
-
-i.file-preview.file-type-filelist {
-    background-position: -210px center;
-}
-
-i.file-preview.file-type-zip,
-i.file-preview.file-type-rar,
-i.file-preview.file-type-7z,
-i.file-preview.file-type-tar,
-i.file-preview.file-type-gz,
-i.file-preview.file-type-bz2 {
-    background-position: -280px center;
-}
-
-i.file-preview.file-type-xls,
-i.file-preview.file-type-xlsx {
-    background-position: -350px center;
-}
-
-i.file-preview.file-type-doc,
-i.file-preview.file-type-docx {
-    background-position: -420px center;
-}
-
-i.file-preview.file-type-ppt,
-i.file-preview.file-type-pptx {
-    background-position: -490px center;
-}
-
-i.file-preview.file-type-vsd {
-    background-position: -560px center;
-}
-
-i.file-preview.file-type-pdf {
-    background-position: -630px center;
-}
-
-i.file-preview.file-type-txt,
-i.file-preview.file-type-md,
-i.file-preview.file-type-json,
-i.file-preview.file-type-htm,
-i.file-preview.file-type-xml,
-i.file-preview.file-type-html,
-i.file-preview.file-type-js,
-i.file-preview.file-type-css,
-i.file-preview.file-type-php,
-i.file-preview.file-type-jsp,
-i.file-preview.file-type-asp {
-    background-position: -700px center;
-}
-
-i.file-preview.file-type-apk {
-    background-position: -770px center;
-}
-
-i.file-preview.file-type-exe {
-    background-position: -840px center;
-}
-
-i.file-preview.file-type-ipa {
-    background-position: -910px center;
-}
-
-i.file-preview.file-type-mp4,
-i.file-preview.file-type-swf,
-i.file-preview.file-type-mkv,
-i.file-preview.file-type-avi,
-i.file-preview.file-type-flv,
-i.file-preview.file-type-mov,
-i.file-preview.file-type-mpg,
-i.file-preview.file-type-mpeg,
-i.file-preview.file-type-ogv,
-i.file-preview.file-type-webm,
-i.file-preview.file-type-rm,
-i.file-preview.file-type-rmvb {
-    background-position: -980px center;
-}
-
-i.file-preview.file-type-ogg,
-i.file-preview.file-type-wav,
-i.file-preview.file-type-wmv,
-i.file-preview.file-type-mid,
-i.file-preview.file-type-mp3 {
-    background-position: -1050px center;
-}
-
-i.file-preview.file-type-jpg,
-i.file-preview.file-type-jpeg,
-i.file-preview.file-type-gif,
-i.file-preview.file-type-bmp,
-i.file-preview.file-type-png,
-i.file-preview.file-type-psd {
-    background-position: -140px center;
-}

+ 0 - 61
front/public/UEditorPlus/dialogs/attachment/attachment.html

@@ -1,61 +0,0 @@
-<!doctype html>
-<html>
-<head>
-    <meta charset="UTF-8">
-    <title>ueditor图片对话框</title>
-    <script type="text/javascript" src="../internal.js?aea0c61c"></script>
-
-    <!-- jquery -->
-    <script type="text/javascript" src="../../third-party/jquery-1.10.2.js?628072e7"></script>
-
-    <!-- webuploader -->
-    <script src="../../third-party/webuploader/webuploader.js?f37088cc"></script>
-    <link rel="stylesheet" type="text/css" href="../../third-party/webuploader/webuploader.css?0057c5c7">
-
-    <!-- attachment dialog -->
-    <link rel="stylesheet" href="attachment.css?e8f09700" type="text/css"/>
-</head>
-<body>
-
-<div class="wrapper">
-    <div id="tabhead" class="tabhead">
-        <span class="tab focus" data-content-id="upload"><var id="lang_tab_upload"></var></span>
-        <span class="tab" data-content-id="online"><var id="lang_tab_online"></var></span>
-    </div>
-    <div id="tabbody" class="tabbody">
-        <!-- 上传图片 -->
-        <div id="upload" class="panel focus">
-            <div id="queueList" class="queueList">
-                <div class="statusBar element-invisible">
-                    <div class="progress">
-                        <span class="text">0%</span>
-                        <span class="percentage"></span>
-                    </div>
-                    <div class="info"></div>
-                    <div class="btns">
-                        <div id="filePickerBtn"></div>
-                        <div class="uploadBtn"><var id="lang_start_upload"></var></div>
-                    </div>
-                </div>
-                <div id="dndArea" class="placeholder">
-                    <div class="filePickerContainer">
-                        <div id="filePickerReady"></div>
-                    </div>
-                </div>
-                <ul class="filelist element-invisible">
-                    <li id="filePickerBlock" class="filePickerBlock"></li>
-                </ul>
-            </div>
-        </div>
-
-        <!-- 在线图片 -->
-        <div id="online" class="panel">
-            <div id="fileList"><var id="lang_imgLoading"></var></div>
-        </div>
-
-    </div>
-</div>
-<script type="text/javascript" src="attachment.js?21e4194b"></script>
-
-</body>
-</html>

+ 0 - 774
front/public/UEditorPlus/dialogs/attachment/attachment.js

@@ -1,774 +0,0 @@
-/**
- * User: Jinqn
- * Date: 14-04-08
- * Time: 下午16:34
- * 上传图片对话框逻辑代码,包括tab: 远程图片/上传图片/在线图片/搜索图片
- */
-
-(function () {
-
-    var uploadFile,
-        onlineFile;
-
-    window.onload = function () {
-        initTabs();
-        initButtons();
-    };
-
-    /* 初始化tab标签 */
-    function initTabs() {
-        var tabs = $G('tabhead').children;
-        for (var i = 0; i < tabs.length; i++) {
-            domUtils.on(tabs[i], "click", function (e) {
-                var target = e.target || e.srcElement;
-                setTabFocus(target.getAttribute('data-content-id'));
-            });
-        }
-
-        setTabFocus('upload');
-    }
-
-    /* 初始化tabbody */
-    function setTabFocus(id) {
-        if (!id) return;
-        var i, bodyId, tabs = $G('tabhead').children;
-        for (i = 0; i < tabs.length; i++) {
-            bodyId = tabs[i].getAttribute('data-content-id')
-            if (bodyId == id) {
-                domUtils.addClass(tabs[i], 'focus');
-                domUtils.addClass($G(bodyId), 'focus');
-            } else {
-                domUtils.removeClasses(tabs[i], 'focus');
-                domUtils.removeClasses($G(bodyId), 'focus');
-            }
-        }
-        switch (id) {
-            case 'upload':
-                uploadFile = uploadFile || new UploadFile('queueList');
-                break;
-            case 'online':
-                onlineFile = onlineFile || new OnlineFile('fileList');
-                break;
-        }
-    }
-
-    /* 初始化onok事件 */
-    function initButtons() {
-
-        dialog.onok = function () {
-            var list = [], id, tabs = $G('tabhead').children;
-            for (var i = 0; i < tabs.length; i++) {
-                if (domUtils.hasClass(tabs[i], 'focus')) {
-                    id = tabs[i].getAttribute('data-content-id');
-                    break;
-                }
-            }
-
-            switch (id) {
-                case 'upload':
-                    list = uploadFile.getInsertList();
-                    var count = uploadFile.getQueueCount();
-                    if (count) {
-                        $('.info', '#queueList').html('<span style="color:red;">' + '还有2个未上传文件'.replace(/[\d]/, count) + '</span>');
-                        return false;
-                    }
-                    break;
-                case 'online':
-                    list = onlineFile.getInsertList();
-                    break;
-            }
-
-            editor.execCommand('insertfile', list);
-        };
-    }
-
-
-    /* 上传附件 */
-    function UploadFile(target) {
-        this.$wrap = target.constructor == String ? $('#' + target) : $(target);
-        this.init();
-    }
-
-    UploadFile.prototype = {
-        init: function () {
-            this.fileList = [];
-            this.initContainer();
-            this.initUploader();
-        },
-        initContainer: function () {
-            this.$queue = this.$wrap.find('.filelist');
-        },
-        /* 初始化容器 */
-        initUploader: function () {
-            var _this = this,
-                $ = jQuery,    // just in case. Make sure it's not an other libaray.
-                $wrap = _this.$wrap,
-                // 图片容器
-                $queue = $wrap.find('.filelist'),
-                // 状态栏,包括进度和控制按钮
-                $statusBar = $wrap.find('.statusBar'),
-                // 文件总体选择信息。
-                $info = $statusBar.find('.info'),
-                // 上传按钮
-                $upload = $wrap.find('.uploadBtn'),
-                // 上传按钮
-                $filePickerBtn = $wrap.find('.filePickerBtn'),
-                // 上传按钮
-                $filePickerBlock = $wrap.find('.filePickerBlock'),
-                // 没选择文件之前的内容。
-                $placeHolder = $wrap.find('.placeholder'),
-                // 总体进度条
-                $progress = $statusBar.find('.progress').hide(),
-                // 添加的文件数量
-                fileCount = 0,
-                // 添加的文件总大小
-                fileSize = 0,
-                // 优化retina, 在retina下这个值是2
-                ratio = window.devicePixelRatio || 1,
-                // 缩略图大小
-                thumbnailWidth = 113 * ratio,
-                thumbnailHeight = 113 * ratio,
-                // 可能有pedding, ready, uploading, confirm, done.
-                state = '',
-                // 所有文件的进度信息,key为file id
-                percentages = {},
-                supportTransition = (function () {
-                    var s = document.createElement('p').style,
-                        r = 'transition' in s ||
-                            'WebkitTransition' in s ||
-                            'MozTransition' in s ||
-                            'msTransition' in s ||
-                            'OTransition' in s;
-                    s = null;
-                    return r;
-                })(),
-                // WebUploader实例
-                uploader,
-                actionUrl = editor.getActionUrl(editor.getOpt('fileActionName')),
-                fileMaxSize = editor.getOpt('fileMaxSize'),
-                acceptExtensions = (editor.getOpt('fileAllowFiles') || []).join('').replace(/\./g, ',').replace(/^[,]/, '');
-            ;
-
-            if (!WebUploader.Uploader.support()) {
-                $('#filePickerReady').after($('<div>').html(lang.errorNotSupport)).hide();
-                return;
-            } else if (!editor.getOpt('fileActionName')) {
-                $('#filePickerReady').after($('<div>').html(lang.errorLoadConfig)).hide();
-                return;
-            }
-
-            uploader = _this.uploader = WebUploader.create({
-                pick: {
-                    id: '#filePickerReady',
-                    label: lang.uploadSelectFile
-                },
-                swf: '../../third-party/webuploader/Uploader.swf',
-                server: actionUrl,
-                fileVal: editor.getOpt('fileFieldName'),
-                duplicate: true,
-                fileSingleSizeLimit: fileMaxSize,
-                headers: editor.getOpt('serverHeaders') || {},
-                compress: false
-            });
-            uploader.addButton({
-                id: '#filePickerBlock'
-            });
-            uploader.addButton({
-                id: '#filePickerBtn',
-                label: lang.uploadAddFile
-            });
-
-            setState('pedding');
-
-            // 当有文件添加进来时执行,负责view的创建
-            function addFile(file) {
-                var $li = $('<li id="' + file.id + '">' +
-                    '<p class="title">' + file.name + '</p>' +
-                    '<p class="imgWrap"></p>' +
-                    '<p class="progress"><span></span></p>' +
-                    '</li>'),
-
-                    $btns = $('<div class="file-panel">' +
-                        '<span class="cancel">' + lang.uploadDelete + '</span>' +
-                        '<span class="rotateRight">' + lang.uploadTurnRight + '</span>' +
-                        '<span class="rotateLeft">' + lang.uploadTurnLeft + '</span></div>').appendTo($li),
-                    $prgress = $li.find('p.progress span'),
-                    $wrap = $li.find('p.imgWrap'),
-                    $info = $('<p class="error"></p>').hide().appendTo($li),
-
-                    showError = function (code) {
-                        switch (code) {
-                            case 'exceed_size':
-                                text = lang.errorExceedSize;
-                                break;
-                            case 'interrupt':
-                                text = lang.errorInterrupt;
-                                break;
-                            case 'http':
-                                text = lang.errorHttp;
-                                break;
-                            case 'not_allow_type':
-                                text = lang.errorFileType;
-                                break;
-                            default:
-                                text = lang.errorUploadRetry;
-                                break;
-                        }
-                        $info.text(text).show();
-                    };
-
-                if (file.getStatus() === 'invalid') {
-                    showError(file.statusText);
-                } else {
-                    $wrap.text(lang.uploadPreview);
-                    if ('|png|jpg|jpeg|bmp|gif|'.indexOf('|' + file.ext.toLowerCase() + '|') == -1) {
-                        $wrap.empty().addClass('notimage').append('<i class="file-preview file-type-' + file.ext.toLowerCase() + '"></i>' +
-                            '<span class="file-title" title="' + file.name + '">' + file.name + '</span>');
-                    } else {
-                        if (browser.ie && browser.version <= 7) {
-                            $wrap.text(lang.uploadNoPreview);
-                        } else {
-                            uploader.makeThumb(file, function (error, src) {
-                                if (error || !src) {
-                                    $wrap.text(lang.uploadNoPreview);
-                                } else {
-                                    var $img = $('<img src="' + src + '">');
-                                    $wrap.empty().append($img);
-                                    $img.on('error', function () {
-                                        $wrap.text(lang.uploadNoPreview);
-                                    });
-                                }
-                            }, thumbnailWidth, thumbnailHeight);
-                        }
-                    }
-                    percentages[file.id] = [file.size, 0];
-                    file.rotation = 0;
-
-                    /* 检查文件格式 */
-                    if (!file.ext || acceptExtensions.indexOf(file.ext.toLowerCase()) == -1) {
-                        showError('not_allow_type');
-                        uploader.removeFile(file);
-                    }
-                }
-
-                file.on('statuschange', function (cur, prev) {
-                    if (prev === 'progress') {
-                        $prgress.hide().width(0);
-                    } else if (prev === 'queued') {
-                        $li.off('mouseenter mouseleave');
-                        $btns.remove();
-                    }
-                    // 成功
-                    if (cur === 'error' || cur === 'invalid') {
-                        showError(file.statusText);
-                        percentages[file.id][1] = 1;
-                    } else if (cur === 'interrupt') {
-                        showError('interrupt');
-                    } else if (cur === 'queued') {
-                        percentages[file.id][1] = 0;
-                    } else if (cur === 'progress') {
-                        $info.hide();
-                        $prgress.css('display', 'block');
-                    } else if (cur === 'complete') {
-                    }
-
-                    $li.removeClass('state-' + prev).addClass('state-' + cur);
-                });
-
-                $li.on('mouseenter', function () {
-                    $btns.stop().animate({height: 30});
-                });
-                $li.on('mouseleave', function () {
-                    $btns.stop().animate({height: 0});
-                });
-
-                $btns.on('click', 'span', function () {
-                    var index = $(this).index(),
-                        deg;
-
-                    switch (index) {
-                        case 0:
-                            uploader.removeFile(file);
-                            return;
-                        case 1:
-                            file.rotation += 90;
-                            break;
-                        case 2:
-                            file.rotation -= 90;
-                            break;
-                    }
-
-                    if (supportTransition) {
-                        deg = 'rotate(' + file.rotation + 'deg)';
-                        $wrap.css({
-                            '-webkit-transform': deg,
-                            '-mos-transform': deg,
-                            '-o-transform': deg,
-                            'transform': deg
-                        });
-                    } else {
-                        $wrap.css('filter', 'progid:DXImageTransform.Microsoft.BasicImage(rotation=' + (~~((file.rotation / 90) % 4 + 4) % 4) + ')');
-                    }
-
-                });
-
-                $li.insertBefore($filePickerBlock);
-            }
-
-            // 负责view的销毁
-            function removeFile(file) {
-                var $li = $('#' + file.id);
-                delete percentages[file.id];
-                updateTotalProgress();
-                $li.off().find('.file-panel').off().end().remove();
-            }
-
-            function updateTotalProgress() {
-                var loaded = 0,
-                    total = 0,
-                    spans = $progress.children(),
-                    percent;
-
-                $.each(percentages, function (k, v) {
-                    total += v[0];
-                    loaded += v[0] * v[1];
-                });
-
-                percent = total ? loaded / total : 0;
-
-                spans.eq(0).text(Math.round(percent * 100) + '%');
-                spans.eq(1).css('width', Math.round(percent * 100) + '%');
-                updateStatus();
-            }
-
-            function setState(val, files) {
-
-                if (val != state) {
-
-                    var stats = uploader.getStats();
-
-                    $upload.removeClass('state-' + state);
-                    $upload.addClass('state-' + val);
-
-                    switch (val) {
-
-                        /* 未选择文件 */
-                        case 'pedding':
-                            $queue.addClass('element-invisible');
-                            $statusBar.addClass('element-invisible');
-                            $placeHolder.removeClass('element-invisible');
-                            $progress.hide();
-                            $info.hide();
-                            uploader.refresh();
-                            break;
-
-                        /* 可以开始上传 */
-                        case 'ready':
-                            $placeHolder.addClass('element-invisible');
-                            $queue.removeClass('element-invisible');
-                            $statusBar.removeClass('element-invisible');
-                            $progress.hide();
-                            $info.show();
-                            $upload.text(lang.uploadStart);
-                            uploader.refresh();
-                            break;
-
-                        /* 上传中 */
-                        case 'uploading':
-                            $progress.show();
-                            $info.hide();
-                            $upload.text(lang.uploadPause);
-                            break;
-
-                        /* 暂停上传 */
-                        case 'paused':
-                            $progress.show();
-                            $info.hide();
-                            $upload.text(lang.uploadContinue);
-                            break;
-
-                        case 'confirm':
-                            $progress.show();
-                            $info.hide();
-                            $upload.text(lang.uploadStart);
-
-                            stats = uploader.getStats();
-                            if (stats.successNum && !stats.uploadFailNum) {
-                                setState('finish');
-                                return;
-                            }
-                            break;
-
-                        case 'finish':
-                            $progress.hide();
-                            $info.show();
-                            if (stats.uploadFailNum) {
-                                $upload.text(lang.uploadRetry);
-                            } else {
-                                $upload.text(lang.uploadStart);
-                            }
-                            break;
-                    }
-
-                    state = val;
-                    updateStatus();
-
-                }
-
-                if (!_this.getQueueCount()) {
-                    $upload.addClass('disabled')
-                } else {
-                    $upload.removeClass('disabled')
-                }
-
-            }
-
-            function updateStatus() {
-                var text = '', stats;
-
-                if (state === 'ready') {
-                    text = lang.updateStatusReady.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize));
-                } else if (state === 'confirm') {
-                    stats = uploader.getStats();
-                    if (stats.uploadFailNum) {
-                        text = lang.updateStatusConfirm.replace('_', stats.successNum).replace('_', stats.successNum);
-                    }
-                } else {
-                    stats = uploader.getStats();
-                    text = lang.updateStatusFinish.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize)).replace('_', stats.successNum);
-
-                    if (stats.uploadFailNum) {
-                        text += lang.updateStatusError.replace('_', stats.uploadFailNum);
-                    }
-                }
-
-                $info.html(text);
-            }
-
-            uploader.on('fileQueued', function (file) {
-                if (file.ext && acceptExtensions.indexOf(file.ext.toLowerCase()) != -1 && file.size <= fileMaxSize) {
-                    fileCount++;
-                    fileSize += file.size;
-                }
-
-                if (fileCount === 1) {
-                    $placeHolder.addClass('element-invisible');
-                    $statusBar.show();
-                }
-
-                addFile(file);
-            });
-
-            uploader.on('fileDequeued', function (file) {
-                if (file.ext && acceptExtensions.indexOf(file.ext.toLowerCase()) != -1 && file.size <= fileMaxSize) {
-                    fileCount--;
-                    fileSize -= file.size;
-                }
-
-                removeFile(file);
-                updateTotalProgress();
-            });
-
-            uploader.on('filesQueued', function (file) {
-                if (!uploader.isInProgress() && (state == 'pedding' || state == 'finish' || state == 'confirm' || state == 'ready')) {
-                    setState('ready');
-                }
-                updateTotalProgress();
-            });
-
-            uploader.on('all', function (type, files) {
-                switch (type) {
-                    case 'uploadFinished':
-                        setState('confirm', files);
-                        break;
-                    case 'startUpload':
-                        /* 添加额外的GET参数 */
-                        var params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '',
-                            url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?' : '&') + 'encode=utf-8&' + params);
-                        uploader.option('server', url);
-                        setState('uploading', files);
-                        break;
-                    case 'stopUpload':
-                        setState('paused', files);
-                        break;
-                }
-            });
-
-            uploader.on('uploadBeforeSend', function (file, data, header) {
-                //这里可以通过data对象添加POST参数
-                if (actionUrl.toLowerCase().indexOf('jsp') != -1) {
-                    header['X_Requested_With'] = 'XMLHttpRequest';
-                }
-            });
-
-            uploader.on('uploadProgress', function (file, percentage) {
-                var $li = $('#' + file.id),
-                    $percent = $li.find('.progress span');
-
-                $percent.css('width', percentage * 100 + '%');
-                percentages[file.id][1] = percentage;
-                updateTotalProgress();
-            });
-
-            uploader.on('uploadSuccess', function (file, ret) {
-                var $file = $('#' + file.id);
-                try {
-                    var responseText = (ret._raw || ret),
-                        json = utils.str2json(responseText);
-                    if (json.state == 'SUCCESS') {
-                        _this.fileList.push(json);
-                        $file.append('<span class="success"></span>');
-                        // 触发上传附件事件
-                        editor.fireEvent("uploadsuccess", {
-                            res: json,
-                            type: 'file'
-                        });
-                    } else {
-                        $file.find('.error').text(json.state).show();
-                    }
-                } catch (e) {
-                    $file.find('.error').text(lang.errorServerUpload).show();
-                }
-            });
-
-            uploader.on('uploadError', function (file, code) {
-            });
-            uploader.on('error', function (code, file) {
-                if (code == 'Q_TYPE_DENIED' || code == 'F_EXCEED_SIZE') {
-                    addFile(file);
-                }
-            });
-            uploader.on('uploadComplete', function (file, ret) {
-            });
-
-            $upload.on('click', function () {
-                if ($(this).hasClass('disabled')) {
-                    return false;
-                }
-
-                if (state === 'ready') {
-                    uploader.upload();
-                } else if (state === 'paused') {
-                    uploader.upload();
-                } else if (state === 'uploading') {
-                    uploader.stop();
-                }
-            });
-
-            $upload.addClass('state-' + state);
-            updateTotalProgress();
-        },
-        getQueueCount: function () {
-            var file, i, status, readyFile = 0, files = this.uploader.getFiles();
-            for (i = 0; file = files[i++];) {
-                status = file.getStatus();
-                if (status == 'queued' || status == 'uploading' || status == 'progress') readyFile++;
-            }
-            return readyFile;
-        },
-        getInsertList: function () {
-            var i, link, data, list = [],
-                prefix = editor.getOpt('fileUrlPrefix');
-            for (i = 0; i < this.fileList.length; i++) {
-                data = this.fileList[i];
-                link = data.url;
-                list.push({
-                    title: data.original || link.substr(link.lastIndexOf('/') + 1),
-                    url: prefix + link
-                });
-            }
-            return list;
-        }
-    };
-
-
-    /* 在线附件 */
-    function OnlineFile(target) {
-        this.container = utils.isString(target) ? document.getElementById(target) : target;
-        this.init();
-    }
-
-    OnlineFile.prototype = {
-        init: function () {
-            this.initContainer();
-            this.initEvents();
-            this.initData();
-        },
-        /* 初始化容器 */
-        initContainer: function () {
-            this.container.innerHTML = '';
-            this.list = document.createElement('ul');
-            this.clearFloat = document.createElement('li');
-
-            domUtils.addClass(this.list, 'list');
-            domUtils.addClass(this.clearFloat, 'clearFloat');
-
-            this.list.appendChild(this.clearFloat);
-            this.container.appendChild(this.list);
-        },
-        /* 初始化滚动事件,滚动到地步自动拉取数据 */
-        initEvents: function () {
-            var _this = this;
-
-            /* 滚动拉取图片 */
-            domUtils.on($G('fileList'), 'scroll', function (e) {
-                var panel = this;
-                if (panel.scrollHeight - (panel.offsetHeight + panel.scrollTop) < 10) {
-                    _this.getFileData();
-                }
-            });
-            /* 选中图片 */
-            domUtils.on(this.list, 'click', function (e) {
-                var target = e.target || e.srcElement,
-                    li = target.parentNode;
-
-                if (li.tagName.toLowerCase() == 'li') {
-                    if (domUtils.hasClass(li, 'selected')) {
-                        domUtils.removeClasses(li, 'selected');
-                    } else {
-                        domUtils.addClass(li, 'selected');
-                    }
-                }
-            });
-        },
-        /* 初始化第一次的数据 */
-        initData: function () {
-
-            /* 拉取数据需要使用的值 */
-            this.state = 0;
-            this.listSize = editor.getOpt('fileManagerListSize');
-            this.listIndex = 0;
-            this.listEnd = false;
-
-            /* 第一次拉取数据 */
-            this.getFileData();
-        },
-        /* 向后台拉取图片列表数据 */
-        getFileData: function () {
-            var _this = this;
-
-            if (!_this.listEnd && !this.isLoadingData) {
-                this.isLoadingData = true;
-                ajax.request(editor.getActionUrl(editor.getOpt('fileManagerActionName')), {
-                    timeout: 100000,
-                    data: utils.extend({
-                        start: this.listIndex,
-                        size: this.listSize
-                    }, editor.queryCommandValue('serverparam')),
-                    headers: editor.options.serverHeaders || {},
-                    method: 'get',
-                    onsuccess: function (r) {
-                        try {
-                            var json = eval('(' + r.responseText + ')');
-                            if (json.state == 'SUCCESS') {
-                                _this.pushData(json.list);
-                                _this.listIndex = parseInt(json.start) + parseInt(json.list.length);
-                                if (_this.listIndex >= json.total) {
-                                    _this.listEnd = true;
-                                }
-                                _this.isLoadingData = false;
-                            }
-                        } catch (e) {
-                            if (r.responseText.indexOf('ue_separate_ue') != -1) {
-                                var list = r.responseText.split(r.responseText);
-                                _this.pushData(list);
-                                _this.listIndex = parseInt(list.length);
-                                _this.listEnd = true;
-                                _this.isLoadingData = false;
-                            }
-                        }
-                    },
-                    onerror: function () {
-                        _this.isLoadingData = false;
-                    }
-                });
-            }
-        },
-        /* 添加图片到列表界面上 */
-        pushData: function (list) {
-            var i, item, img, filetype, preview, icon, _this = this,
-                urlPrefix = editor.getOpt('fileManagerUrlPrefix');
-            for (i = 0; i < list.length; i++) {
-                if (list[i] && list[i].url) {
-                    item = document.createElement('li');
-                    icon = document.createElement('span');
-                    filetype = list[i].url.substr(list[i].url.lastIndexOf('.') + 1);
-
-                    if ("png|jpg|jpeg|gif|bmp".indexOf(filetype) != -1) {
-                        preview = document.createElement('img');
-                        domUtils.on(preview, 'load', (function (image) {
-                            return function () {
-                                _this.scale(image, image.parentNode.offsetWidth, image.parentNode.offsetHeight);
-                            };
-                        })(preview));
-                        preview.width = 113;
-                        preview.setAttribute('src', urlPrefix + list[i].url + (list[i].url.indexOf('?') == -1 ? '?noCache=' : '&noCache=') + (+new Date()).toString(36));
-                    } else {
-                        var ic = document.createElement('i'),
-                            textSpan = document.createElement('span');
-                        textSpan.innerHTML = list[i].original || list[i].url.substr(list[i].url.lastIndexOf('/') + 1);
-                        preview = document.createElement('div');
-                        preview.appendChild(ic);
-                        preview.appendChild(textSpan);
-                        domUtils.addClass(preview, 'file-wrapper');
-                        domUtils.addClass(textSpan, 'file-title');
-                        domUtils.addClass(ic, 'file-type-' + filetype);
-                        domUtils.addClass(ic, 'file-preview');
-                    }
-                    domUtils.addClass(icon, 'icon');
-                    item.setAttribute('data-url', urlPrefix + list[i].url);
-                    if (list[i].original) {
-                        item.setAttribute('data-title', list[i].original);
-                    }
-
-                    item.appendChild(preview);
-                    item.appendChild(icon);
-                    this.list.insertBefore(item, this.clearFloat);
-                }
-            }
-        },
-        /* 改变图片大小 */
-        scale: function (img, w, h, type) {
-            var ow = img.width,
-                oh = img.height;
-
-            if (type == 'justify') {
-                if (ow >= oh) {
-                    img.width = w;
-                    img.height = h * oh / ow;
-                    img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px';
-                } else {
-                    img.width = w * ow / oh;
-                    img.height = h;
-                    img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px';
-                }
-            } else {
-                if (ow >= oh) {
-                    img.width = w * ow / oh;
-                    img.height = h;
-                    img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px';
-                } else {
-                    img.width = w;
-                    img.height = h * oh / ow;
-                    img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px';
-                }
-            }
-        },
-        getInsertList: function () {
-            var i, lis = this.list.children, list = [];
-            for (i = 0; i < lis.length; i++) {
-                if (domUtils.hasClass(lis[i], 'selected')) {
-                    var url = lis[i].getAttribute('data-url');
-                    var title = lis[i].getAttribute('data-title') || url.substr(url.lastIndexOf('/') + 1);
-                    list.push({
-                        title: title,
-                        url: url
-                    });
-                }
-            }
-            return list;
-        }
-    };
-
-
-})();

BIN
front/public/UEditorPlus/dialogs/attachment/images/alignicon.gif


BIN
front/public/UEditorPlus/dialogs/attachment/images/alignicon.png


BIN
front/public/UEditorPlus/dialogs/attachment/images/bg.png


BIN
front/public/UEditorPlus/dialogs/attachment/images/file-icons.gif


BIN
front/public/UEditorPlus/dialogs/attachment/images/file-icons.png


BIN
front/public/UEditorPlus/dialogs/attachment/images/icons.gif


BIN
front/public/UEditorPlus/dialogs/attachment/images/icons.png


BIN
front/public/UEditorPlus/dialogs/attachment/images/image.png


BIN
front/public/UEditorPlus/dialogs/attachment/images/progress.png


BIN
front/public/UEditorPlus/dialogs/attachment/images/success.gif


BIN
front/public/UEditorPlus/dialogs/attachment/images/success.png


+ 0 - 818
front/public/UEditorPlus/dialogs/audio/audio.css

@@ -1,818 +0,0 @@
-@charset "utf-8";
-.wrapper {
-    width: 570px;
-    _width: 575px;
-    margin: 10px auto;
-    zoom: 1;
-    position: relative
-}
-
-.tabbody {
-    height: 355px;
-}
-
-.tabbody .panel {
-    position: absolute;
-    width: 0;
-    height: 0;
-    background: #fff;
-    overflow: hidden;
-    display: none;
-}
-
-.tabbody .panel.focus {
-    width: 100%;
-    height: 355px;
-    display: block;
-}
-
-.tabbody .panel table td {
-    vertical-align: middle;
-}
-
-#audioUrl {
-    width: 380px;
-    height: 26px;
-    line-height: 26px;
-    margin: 8px 5px;
-    background: #FFF;
-    border: 1px solid #d7d7d7;
-    outline: none;
-    border-radius: 3px;
-    padding: 0 5px;
-}
-
-#audioSelect {
-    width: 100px;
-    display: inline-block;
-    background: #FFF;
-    border: 1px solid #EEE;
-    line-height: 26px;
-    text-align: center;
-    color: #333;
-    text-decoration: none;
-    border-radius: 3px;
-    vertical-align: middle;
-}
-
-#audioSearchTxt {
-    margin-left: 15px;
-    background: #FFF;
-    width: 200px;
-    height: 21px;
-    line-height: 21px;
-    border: 1px solid #d7d7d7;
-}
-
-#searchList {
-    width: 570px;
-    overflow: auto;
-    zoom: 1;
-    height: 270px;
-}
-
-#searchList div {
-    float: left;
-    width: 120px;
-    height: 135px;
-    margin: 5px 15px;
-}
-
-#searchList img {
-    margin: 2px 8px;
-    cursor: pointer;
-    border: 2px solid #fff
-}
-
-/*不用缩略图*/
-#searchList p {
-    margin-left: 10px;
-}
-
-#audioType {
-    width: 65px;
-    height: 23px;
-    line-height: 22px;
-    border: 1px solid #d7d7d7;
-}
-
-#audioSearchBtn, #audioSearchReset {
-    /*width: 80px;*/
-    height: 25px;
-    line-height: 25px;
-    background: #eee;
-    border: 1px solid #d7d7d7;
-    cursor: pointer;
-    padding: 0 5px;
-}
-
-
-#preview {
-    position: relative;
-    width: 420px;
-    padding: 0;
-    overflow: hidden;
-    margin-left: 10px;
-    _margin-left: 5px;
-    height: 280px;
-    background-color: #ddd;
-    float: left
-}
-
-#preview .previewMsg {
-    position: absolute;
-    top: 0;
-    margin: 0;
-    padding: 0;
-    height: 280px;
-    width: 100%;
-    background-color: #666;
-}
-
-#preview .previewMsg span {
-    display: block;
-    margin: 125px auto 0 auto;
-    text-align: center;
-    font-size: 18px;
-    color: #fff;
-}
-
-#preview .previewaudio {
-    position: absolute;
-    top: 0;
-    margin: 0;
-    padding: 0;
-    height: 280px;
-    width: 100%;
-}
-
-.edui-audio-wrapper fieldset {
-    border: 1px solid #ddd;
-    padding-left: 5px;
-    margin-bottom: 20px;
-    padding-bottom: 5px;
-    width: 115px;
-}
-
-#audioInfo {
-    width: 120px;
-    float: left;
-    margin-left: 10px;
-    _margin-left: 7px;
-}
-
-fieldset {
-    border: 1px solid #ddd;
-    padding-left: 5px;
-    margin-bottom: 20px;
-    padding-bottom: 5px;
-    width: 115px;
-}
-
-fieldset legend {
-    font-weight: bold;
-}
-
-fieldset p {
-    line-height: 30px;
-}
-
-fieldset input.txt {
-    width: 65px;
-    height: 21px;
-    line-height: 21px;
-    margin: 8px 5px;
-    background: #FFF;
-    border: 1px solid #d7d7d7;
-}
-
-label.url {
-    font-weight: bold;
-    margin-left: 5px;
-}
-
-#audioFloat div {
-    cursor: pointer;
-    opacity: 0.5;
-    filter: alpha(opacity=50);
-    margin: 9px;
-    _margin: 5px;
-    width: 38px;
-    height: 36px;
-    float: left;
-}
-
-#audioFloat .focus {
-    opacity: 1;
-    filter: alpha(opacity=100)
-}
-
-span.view {
-    display: inline-block;
-    width: 30px;
-    float: right;
-    cursor: pointer;
-    color: blue
-}
-
-
-/* upload audio */
-.tabbody #upload.panel {
-    width: 0;
-    height: 0;
-    overflow: hidden;
-    position: absolute !important;
-    clip: rect(1px, 1px, 1px, 1px);
-    background: #fff;
-    display: block;
-}
-
-.tabbody #upload.panel.focus {
-    width: 100%;
-    height: 335px;
-    display: block;
-    clip: auto;
-}
-
-#upload_alignment div {
-    cursor: pointer;
-    opacity: 0.5;
-    filter: alpha(opacity=50);
-    margin: 9px;
-    _margin: 5px;
-    width: 38px;
-    height: 36px;
-    float: left;
-}
-
-#upload_alignment .focus {
-    opacity: 1;
-    filter: alpha(opacity=100)
-}
-
-#upload_left {
-    width: 427px;
-    float: left;
-}
-
-#upload_left .controller {
-    height: 30px;
-    clear: both;
-}
-
-#uploadaudioInfo {
-    margin-top: 10px;
-    float: right;
-    padding-right: 8px;
-}
-
-#upload .queueList {
-    margin: 0;
-}
-
-#upload p {
-    margin: 0;
-}
-
-.element-invisible {
-    width: 0 !important;
-    height: 0 !important;
-    border: 0;
-    padding: 0;
-    margin: 0;
-    overflow: hidden;
-    position: absolute !important;
-    clip: rect(1px, 1px, 1px, 1px);
-}
-
-#upload .placeholder {
-    margin: 10px;
-    margin-right: 0;
-    border: 2px dashed #e6e6e6;
-    *border: 0px dashed #e6e6e6;
-    height: 161px;
-    padding-top: 150px;
-    text-align: center;
-    width: 97%;
-    float: left;
-    background: url(./images/image.png) center 70px no-repeat;
-    color: #cccccc;
-    font-size: 18px;
-    position: relative;
-    top: 0;
-    *margin-left: 0;
-    *left: 10px;
-}
-
-#upload .placeholder .webuploader-pick {
-    font-size: 18px;
-    background: #00b7ee;
-    border-radius: 3px;
-    line-height: 44px;
-    padding: 0 30px;
-    *width: 120px;
-    color: #fff;
-    display: inline-block;
-    margin: 0 auto 20px auto;
-    cursor: pointer;
-    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
-}
-
-#upload .placeholder .webuploader-pick-hover {
-    background: #00a2d4;
-}
-
-
-#filePickerContainer {
-    text-align: center;
-}
-
-#upload .placeholder .flashTip {
-    color: #666666;
-    font-size: 12px;
-    position: absolute;
-    width: 100%;
-    text-align: center;
-    bottom: 20px;
-}
-
-#upload .placeholder .flashTip a {
-    color: #0785d1;
-    text-decoration: none;
-}
-
-#upload .placeholder .flashTip a:hover {
-    text-decoration: underline;
-}
-
-#upload .placeholder.webuploader-dnd-over {
-    border-color: #999999;
-}
-
-#upload .filelist {
-    list-style: none;
-    margin: 0;
-    padding: 0;
-    overflow-x: hidden;
-    overflow-y: auto;
-    position: relative;
-    height: 285px;
-}
-
-#upload .filelist:after {
-    content: '';
-    display: block;
-    width: 0;
-    height: 0;
-    overflow: hidden;
-    clear: both;
-}
-
-#upload .filelist li {
-    width: 113px;
-    height: 113px;
-    background: url(./images/bg.png);
-    text-align: center;
-    margin: 15px 0 0 20px;
-    *margin: 15px 0 0 15px;
-    position: relative;
-    display: block;
-    float: left;
-    overflow: hidden;
-    font-size: 12px;
-}
-
-#upload .filelist li p.log {
-    position: relative;
-    top: -45px;
-}
-
-#upload .filelist li p.title {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    overflow: hidden;
-    white-space: nowrap;
-    text-overflow: ellipsis;
-    top: 5px;
-    text-indent: 5px;
-    text-align: left;
-}
-
-#upload .filelist li p.progress {
-    position: absolute;
-    width: 100%;
-    bottom: 0;
-    left: 0;
-    height: 8px;
-    overflow: hidden;
-    z-index: 50;
-    margin: 0;
-    border-radius: 0;
-    background: none;
-    -webkit-box-shadow: 0 0 0;
-}
-
-#upload .filelist li p.progress span {
-    display: none;
-    overflow: hidden;
-    width: 0;
-    height: 100%;
-    background: #1483d8 url(./images/progress.png) repeat-x;
-
-    -webit-transition: width 200ms linear;
-    -moz-transition: width 200ms linear;
-    -o-transition: width 200ms linear;
-    -ms-transition: width 200ms linear;
-    transition: width 200ms linear;
-
-    -webkit-animation: progressmove 2s linear infinite;
-    -moz-animation: progressmove 2s linear infinite;
-    -o-animation: progressmove 2s linear infinite;
-    -ms-animation: progressmove 2s linear infinite;
-    animation: progressmove 2s linear infinite;
-
-    -webkit-transform: translateZ(0);
-}
-
-@-webkit-keyframes progressmove {
-    0% {
-        background-position: 0 0;
-    }
-    100% {
-        background-position: 17px 0;
-    }
-}
-
-@-moz-keyframes progressmove {
-    0% {
-        background-position: 0 0;
-    }
-    100% {
-        background-position: 17px 0;
-    }
-}
-
-@keyframes progressmove {
-    0% {
-        background-position: 0 0;
-    }
-    100% {
-        background-position: 17px 0;
-    }
-}
-
-#upload .filelist li p.imgWrap {
-    position: relative;
-    z-index: 2;
-    line-height: 113px;
-    vertical-align: middle;
-    overflow: hidden;
-    width: 113px;
-    height: 113px;
-
-    -webkit-transform-origin: 50% 50%;
-    -moz-transform-origin: 50% 50%;
-    -o-transform-origin: 50% 50%;
-    -ms-transform-origin: 50% 50%;
-    transform-origin: 50% 50%;
-
-    -webit-transition: 200ms ease-out;
-    -moz-transition: 200ms ease-out;
-    -o-transition: 200ms ease-out;
-    -ms-transition: 200ms ease-out;
-    transition: 200ms ease-out;
-}
-
-#upload .filelist li p.imgWrap.notimage {
-    margin-top: 0;
-    width: 111px;
-    height: 111px;
-    border: 1px #eeeeee solid;
-}
-
-#upload .filelist li p.imgWrap.notimage i.file-preview {
-    margin-top: 15px;
-}
-
-#upload .filelist li img {
-    width: 100%;
-}
-
-#upload .filelist li p.error {
-    background: #f43838;
-    color: #fff;
-    position: absolute;
-    bottom: 0;
-    left: 0;
-    height: 28px;
-    line-height: 28px;
-    width: 100%;
-    z-index: 100;
-    display: none;
-}
-
-#upload .filelist li .success {
-    display: block;
-    position: absolute;
-    left: 0;
-    bottom: 0;
-    height: 40px;
-    width: 100%;
-    z-index: 200;
-    background: url(./images/success.png) no-repeat right bottom;
-    background-image: url(./images/success.gif) \9;
-}
-
-#upload .filelist li.filePickerBlock {
-    width: 113px;
-    height: 113px;
-    background: url(./images/image.png) no-repeat center 12px;
-    border: 1px solid #eeeeee;
-    border-radius: 0;
-}
-
-#upload .filelist li.filePickerBlock div.webuploader-pick {
-    width: 100%;
-    height: 100%;
-    margin: 0;
-    padding: 0;
-    opacity: 0;
-    background: none;
-    font-size: 0;
-}
-
-#upload .filelist div.file-panel {
-    position: absolute;
-    height: 0;
-    filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#80000000', endColorstr='#80000000') \0;
-    background: rgba(0, 0, 0, 0.5);
-    width: 100%;
-    top: 0;
-    left: 0;
-    overflow: hidden;
-    z-index: 300;
-}
-
-#upload .filelist div.file-panel span {
-    width: 24px;
-    height: 24px;
-    display: inline;
-    float: right;
-    text-indent: -9999px;
-    overflow: hidden;
-    background: url(./images/icons.png) no-repeat;
-    background: url(./images/icons.gif) no-repeat \9;
-    margin: 5px 1px 1px;
-    cursor: pointer;
-    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
-    -webkit-user-select: none;
-    -moz-user-select: none;
-    -ms-user-select: none;
-    user-select: none;
-}
-
-#upload .filelist div.file-panel span.rotateLeft {
-    display: none;
-    background-position: 0 -24px;
-}
-
-#upload .filelist div.file-panel span.rotateLeft:hover {
-    background-position: 0 0;
-}
-
-#upload .filelist div.file-panel span.rotateRight {
-    display: none;
-    background-position: -24px -24px;
-}
-
-#upload .filelist div.file-panel span.rotateRight:hover {
-    background-position: -24px 0;
-}
-
-#upload .filelist div.file-panel span.cancel {
-    background-position: -48px -24px;
-}
-
-#upload .filelist div.file-panel span.cancel:hover {
-    background-position: -48px 0;
-}
-
-#upload .statusBar {
-    height: 45px;
-    border-bottom: 1px solid #dadada;
-    margin: 0 10px;
-    padding: 0;
-    line-height: 45px;
-    vertical-align: middle;
-    position: relative;
-}
-
-#upload .statusBar .progress {
-    border: 1px solid #1483d8;
-    width: 198px;
-    background: #fff;
-    height: 18px;
-    position: absolute;
-    top: 12px;
-    display: none;
-    text-align: center;
-    line-height: 18px;
-    color: #6dbfff;
-    margin: 0 10px 0 0;
-}
-
-#upload .statusBar .progress span.percentage {
-    width: 0;
-    height: 100%;
-    left: 0;
-    top: 0;
-    background: #1483d8;
-    position: absolute;
-}
-
-#upload .statusBar .progress span.text {
-    position: relative;
-    z-index: 10;
-}
-
-#upload .statusBar .info {
-    display: inline-block;
-    font-size: 14px;
-    color: #666666;
-}
-
-#upload .statusBar .btns {
-    position: absolute;
-    top: 7px;
-    right: 0;
-    line-height: 30px;
-}
-
-#filePickerBtn {
-    display: inline-block;
-    float: left;
-}
-
-#upload .statusBar .btns .webuploader-pick,
-#upload .statusBar .btns .uploadBtn,
-#upload .statusBar .btns .uploadBtn.state-uploading,
-#upload .statusBar .btns .uploadBtn.state-paused {
-    background: #ffffff;
-    border: 1px solid #cfcfcf;
-    color: #565656;
-    padding: 0 18px;
-    display: inline-block;
-    border-radius: 3px;
-    margin-left: 10px;
-    cursor: pointer;
-    font-size: 14px;
-    float: left;
-    -webkit-user-select: none;
-    -moz-user-select: none;
-    -ms-user-select: none;
-    user-select: none;
-}
-
-#upload .statusBar .btns .webuploader-pick-hover,
-#upload .statusBar .btns .uploadBtn:hover,
-#upload .statusBar .btns .uploadBtn.state-uploading:hover,
-#upload .statusBar .btns .uploadBtn.state-paused:hover {
-    background: #f0f0f0;
-}
-
-#upload .statusBar .btns .uploadBtn,
-#upload .statusBar .btns .uploadBtn.state-paused {
-    background: #00b7ee;
-    color: #fff;
-    border-color: transparent;
-}
-
-#upload .statusBar .btns .uploadBtn:hover,
-#upload .statusBar .btns .uploadBtn.state-paused:hover {
-    background: #00a2d4;
-}
-
-#upload .statusBar .btns .uploadBtn.disabled {
-    pointer-events: none;
-    filter: alpha(opacity=60);
-    -moz-opacity: 0.6;
-    -khtml-opacity: 0.6;
-    opacity: 0.6;
-}
-
-
-/* 在线文件的文件预览图标 */
-i.file-preview {
-    display: block;
-    margin: 10px auto;
-    width: 70px;
-    height: 70px;
-    background-image: url("./images/file-icons.png");
-    background-image: url("./images/file-icons.gif") \9;
-    background-position: -140px center;
-    background-repeat: no-repeat;
-}
-
-i.file-preview.file-type-dir {
-    background-position: 0 center;
-}
-
-i.file-preview.file-type-file {
-    background-position: -140px center;
-}
-
-i.file-preview.file-type-filelist {
-    background-position: -210px center;
-}
-
-i.file-preview.file-type-zip,
-i.file-preview.file-type-rar,
-i.file-preview.file-type-7z,
-i.file-preview.file-type-tar,
-i.file-preview.file-type-gz,
-i.file-preview.file-type-bz2 {
-    background-position: -280px center;
-}
-
-i.file-preview.file-type-xls,
-i.file-preview.file-type-xlsx {
-    background-position: -350px center;
-}
-
-i.file-preview.file-type-doc,
-i.file-preview.file-type-docx {
-    background-position: -420px center;
-}
-
-i.file-preview.file-type-ppt,
-i.file-preview.file-type-pptx {
-    background-position: -490px center;
-}
-
-i.file-preview.file-type-vsd {
-    background-position: -560px center;
-}
-
-i.file-preview.file-type-pdf {
-    background-position: -630px center;
-}
-
-i.file-preview.file-type-txt,
-i.file-preview.file-type-md,
-i.file-preview.file-type-json,
-i.file-preview.file-type-htm,
-i.file-preview.file-type-xml,
-i.file-preview.file-type-html,
-i.file-preview.file-type-js,
-i.file-preview.file-type-css,
-i.file-preview.file-type-php,
-i.file-preview.file-type-jsp,
-i.file-preview.file-type-asp {
-    background-position: -700px center;
-}
-
-i.file-preview.file-type-apk {
-    background-position: -770px center;
-}
-
-i.file-preview.file-type-exe {
-    background-position: -840px center;
-}
-
-i.file-preview.file-type-ipa {
-    background-position: -910px center;
-}
-
-i.file-preview.file-type-mp4,
-i.file-preview.file-type-swf,
-i.file-preview.file-type-mkv,
-i.file-preview.file-type-avi,
-i.file-preview.file-type-flv,
-i.file-preview.file-type-mov,
-i.file-preview.file-type-mpg,
-i.file-preview.file-type-mpeg,
-i.file-preview.file-type-ogv,
-i.file-preview.file-type-webm,
-i.file-preview.file-type-rm,
-i.file-preview.file-type-rmvb {
-    background-position: -980px center;
-}
-
-i.file-preview.file-type-ogg,
-i.file-preview.file-type-wav,
-i.file-preview.file-type-wmv,
-i.file-preview.file-type-mid,
-i.file-preview.file-type-mp3 {
-    background-position: -1050px center;
-}
-
-i.file-preview.file-type-jpg,
-i.file-preview.file-type-jpeg,
-i.file-preview.file-type-gif,
-i.file-preview.file-type-bmp,
-i.file-preview.file-type-png,
-i.file-preview.file-type-psd {
-    background-position: -140px center;
-}

+ 0 - 83
front/public/UEditorPlus/dialogs/audio/audio.html

@@ -1,83 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-    "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-    <title></title>
-    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
-    <script type="text/javascript" src="../internal.js?aea0c61c"></script>
-    <link rel="stylesheet" type="text/css" href="audio.css?c75591bc"/>
-</head>
-<body>
-<div class="wrapper">
-    <div id="audioTab">
-        <div id="tabHeads" class="tabhead">
-            <span tabSrc="audio" class="focus" data-content-id="audio"><var id="lang_tab_insertV"></var></span>
-            <span tabSrc="upload" style="display:none;" data-content-id="upload"><var
-                id="lang_tab_uploadV"></var></span>
-        </div>
-        <div id="tabBodys" class="tabbody">
-            <div id="audio" class="panel focus">
-                <table>
-                    <tr>
-                        <td><label for="audioUrl" class="url"><var id="lang_audio_url"></var></label></td>
-                        <td><input id="audioUrl" type="text"><a href="javascript:;" id="audioSelect"
-                                                                style="display:none;">选择音频</a></td>
-                    </tr>
-                </table>
-                <div style="padding:0 5px 5px 5px;color:#999;">
-                    外链音频支持MP3格式
-                </div>
-                <div id="preview"></div>
-                <div id="audioInfo">
-                    <fieldset>
-                        <legend><var id="lang_alignment"></var></legend>
-                        <div id="audioFloat"></div>
-                    </fieldset>
-                </div>
-            </div>
-            <div id="upload" class="panel">
-                <div id="upload_left">
-                    <div id="queueList" class="queueList">
-                        <div class="statusBar element-invisible">
-                            <div class="progress">
-                                <span class="text">0%</span>
-                                <span class="percentage"></span>
-                            </div>
-                            <div class="info"></div>
-                            <div class="btns">
-                                <div id="filePickerBtn"></div>
-                                <div class="uploadBtn"><var id="lang_start_upload"></var></div>
-                            </div>
-                        </div>
-                        <div id="dndArea" class="placeholder">
-                            <div class="filePickerContainer">
-                                <div id="filePickerReady"></div>
-                            </div>
-                        </div>
-                        <ul class="filelist element-invisible">
-                            <li id="filePickerBlock" class="filePickerBlock"></li>
-                        </ul>
-                    </div>
-                </div>
-                <div id="uploadaudioInfo">
-                    <fieldset>
-                        <legend><var id="lang_upload_alignment"></var></legend>
-                        <div id="upload_alignment"></div>
-                    </fieldset>
-                </div>
-            </div>
-        </div>
-    </div>
-</div>
-
-<!-- jquery -->
-<script type="text/javascript" src="../../third-party/jquery-1.10.2.js?628072e7"></script>
-
-<!-- webuploader -->
-<script type="text/javascript" src="../../third-party/webuploader/webuploader.js?f37088cc"></script>
-<link rel="stylesheet" type="text/css" href="../../third-party/webuploader/webuploader.css?0057c5c7">
-
-<!-- audio -->
-<script type="text/javascript" src="audio.js?9f84905f"></script>
-</body>
-</html>

+ 0 - 782
front/public/UEditorPlus/dialogs/audio/audio.js

@@ -1,782 +0,0 @@
-/**
- * Created by JetBrains PhpStorm.
- * User: taoqili
- * Date: 12-2-20
- * Time: 上午11:19
- * To change this template use File | Settings | File Templates.
- */
-
-(function () {
-
-    var audio = {},
-        uploadaudioList = [],
-        isModifyUploadaudio = false,
-        uploadFile;
-    var editorOpt = {};
-
-    window.onload = function () {
-        editorOpt = editor.getOpt('audioConfig');
-        $focus($G("audioUrl"));
-        initTabs();
-        initAudio();
-        initUpload();
-    };
-
-    /* 初始化tab标签 */
-    function initTabs() {
-        var tabs = $G('tabHeads').children;
-        for (var i = 0; i < tabs.length; i++) {
-            domUtils.on(tabs[i], "click", function (e) {
-                var j, bodyId, target = e.target || e.srcElement;
-                for (j = 0; j < tabs.length; j++) {
-                    bodyId = tabs[j].getAttribute('data-content-id');
-                    if (tabs[j] == target) {
-                        domUtils.addClass(tabs[j], 'focus');
-                        domUtils.addClass($G(bodyId), 'focus');
-                    } else {
-                        domUtils.removeClasses(tabs[j], 'focus');
-                        domUtils.removeClasses($G(bodyId), 'focus');
-                    }
-                }
-            });
-        }
-        if (!editorOpt.disableUpload) {
-            $G('tabHeads').querySelector('[data-content-id="upload"]').style.display = 'inline-block';
-        }
-        if (!!editorOpt.selectCallback) {
-            $G('audioSelect').style.display = 'inline-block';
-            domUtils.on($G('audioSelect'), "click", function (e) {
-                editorOpt.selectCallback(editor, function (info) {
-                    if (info) {
-                        $G('audioUrl').value = info.path;
-                        createPreview(info.path);
-                    }
-                });
-            });
-        }
-    }
-
-    function initAudio() {
-        createAlignButton(["audioFloat", "upload_alignment"]);
-        addUrlChangeListener($G("audioUrl"));
-        addOkListener();
-
-        //编辑视频时初始化相关信息
-        (function () {
-            var img = editor.selection.getRange().getClosedNode(), url;
-            if (img && img.className) {
-                var hasFakedClass = (img.className == "edui-faked-audio"),
-                    hasUploadClass = img.className.indexOf("edui-upload-audio") != -1;
-                if (hasFakedClass || hasUploadClass) {
-                    $G("audioUrl").value = url = img.getAttribute("_url");
-                    var align = domUtils.getComputedStyle(img, "float"),
-                        parentAlign = domUtils.getComputedStyle(img.parentNode, "text-align");
-                    updateAlignButton(parentAlign === "center" ? "center" : align);
-                }
-                if (hasUploadClass) {
-                    isModifyUploadaudio = true;
-                }
-            }
-            createPreview(url);
-        })();
-    }
-
-    /**
-     * 监听确认和取消两个按钮事件,用户执行插入或者清空正在播放的视频实例操作
-     */
-    function addOkListener() {
-        dialog.onok = function () {
-            $G("preview").innerHTML = "";
-            var currentTab = findFocus("tabHeads", "tabSrc");
-            switch (currentTab) {
-                case "audio":
-                    return insertSingle();
-                    break;
-                // case "audioSearch":
-                //     return insertSearch("searchList");
-                //     break;
-                case "upload":
-                    return insertUpload();
-                    break;
-            }
-        };
-        dialog.oncancel = function () {
-            $G("preview").innerHTML = "";
-        };
-    }
-
-    /**
-     * 依据传入的align值更新按钮信息
-     * @param align
-     */
-    function updateAlignButton(align) {
-        var aligns = $G("audioFloat").children;
-        for (var i = 0, ci; ci = aligns[i++];) {
-            if (ci.getAttribute("name") == align) {
-                if (ci.className != "focus") {
-                    ci.className = "focus";
-                }
-            } else {
-                if (ci.className == "focus") {
-                    ci.className = "";
-                }
-            }
-        }
-    }
-
-    /**
-     * 将单个视频信息插入编辑器中
-     */
-    function insertSingle() {
-        var url = $G('audioUrl').value,
-            align = findFocus("audioFloat", "name");
-        if (!url) return false;
-        editor.execCommand('insertaudio', {
-            url: url,
-        }, isModifyUploadaudio ? 'upload' : null);
-    }
-
-    /**
-     * 将元素id下的所有代表视频的图片插入编辑器中
-     * @param id
-     */
-    function insertSearch(id) {
-        var imgs = domUtils.getElementsByTagName($G(id), "img"),
-            audioObjs = [];
-        for (var i = 0, img; img = imgs[i++];) {
-            if (img.getAttribute("selected")) {
-                audioObjs.push({
-                    url: img.getAttribute("ue_audio_url"),
-                    width: 420,
-                    height: 280,
-                    align: "none"
-                });
-            }
-        }
-        editor.execCommand('insertaudio', audioObjs);
-    }
-
-    /**
-     * 找到id下具有focus类的节点并返回该节点下的某个属性
-     * @param id
-     * @param returnProperty
-     */
-    function findFocus(id, returnProperty) {
-        var tabs = $G(id).children,
-            property;
-        for (var i = 0, ci; ci = tabs[i++];) {
-            if (ci.className == "focus") {
-                property = ci.getAttribute(returnProperty);
-                break;
-            }
-        }
-        return property;
-    }
-
-    /**
-     * 数字判断
-     * @param value
-     */
-    function isNumber(value) {
-        return /(0|^[1-9]\d*$)/.test(value);
-    }
-
-    /**
-     * 创建图片浮动选择按钮
-     * @param ids
-     */
-    function createAlignButton(ids) {
-        for (var i = 0, ci; ci = ids[i++];) {
-            var floatContainer = $G(ci),
-                nameMaps = {
-                    "none": lang['default'],
-                    "left": lang.floatLeft,
-                    "right": lang.floatRight,
-                    "center": lang.block
-                };
-            for (var j in nameMaps) {
-                var div = document.createElement("div");
-                div.setAttribute("name", j);
-                if (j == "none") div.className = "focus";
-                div.style.cssText = "background:url(images/" + j + "_focus.jpg);";
-                div.setAttribute("title", nameMaps[j]);
-                floatContainer.appendChild(div);
-            }
-            switchSelect(ci);
-        }
-    }
-
-    /**
-     * 选择切换
-     * @param selectParentId
-     */
-    function switchSelect(selectParentId) {
-        var selects = $G(selectParentId).children;
-        for (var i = 0, ci; ci = selects[i++];) {
-            domUtils.on(ci, "click", function () {
-                for (var j = 0, cj; cj = selects[j++];) {
-                    cj.className = "";
-                    cj.removeAttribute && cj.removeAttribute("class");
-                }
-                this.className = "focus";
-            })
-        }
-    }
-
-    /**
-     * 监听url改变事件
-     * @param url
-     */
-    function addUrlChangeListener(url) {
-        if (browser.ie) {
-            url.onpropertychange = function () {
-                createPreview(this.value);
-            }
-        } else {
-            url.addEventListener("input", function () {
-                createPreview(this.value);
-            }, false);
-        }
-    }
-
-    function createAudioHtml(url, param) {
-        param = param || {};
-        var str = [
-            "<audio",
-            (param.id ? ' id="' + param.id + '"' : ""),
-            (param.cls ? ' class="' + param.cls + '"' : ''),
-            ' controls >',
-            '<source src="' + url + '" type="audio/mpeg' + '" />',
-            '</audio>',
-        ];
-        return str.join('');
-    }
-
-    /**
-     * 根据url生成视频预览
-     * @param url
-     */
-    function createPreview(url) {
-        if (!url) {
-            return;
-        }
-
-        $G("preview").innerHTML = '<div class="previewMsg"><span>' + lang.urlError + '</span></div>' +
-            '<div style="position: absolute; inset: 0; background: #FFF; text-align: center; display: flex; justify-items: center; align-items: center;">' +
-            '<div style="text-align:center;flex-grow:1;">' + createAudioHtml(url) + '</div>'
-            + '</div>';
-    }
-
-
-    /* 插入上传视频 */
-    function insertUpload() {
-        var audioObjs = [],
-            uploadDir = editor.getOpt('audioUrlPrefix'),
-            align = findFocus("upload_alignment", "name") || 'none';
-        for (var key in uploadaudioList) {
-            var file = uploadaudioList[key];
-            audioObjs.push({
-                url: uploadDir + file.url,
-                align: align
-            });
-        }
-
-        var count = uploadFile.getQueueCount();
-        if (count) {
-            $('.info', '#queueList').html('<span style="color:red;">' + '还有2个未上传文件'.replace(/[\d]/, count) + '</span>');
-            return false;
-        } else {
-            editor.execCommand('insertaudio', audioObjs, 'upload');
-        }
-    }
-
-    /*初始化上传标签*/
-    function initUpload() {
-        uploadFile = new UploadFile('queueList');
-    }
-
-
-    /* 上传附件 */
-    function UploadFile(target) {
-        this.$wrap = target.constructor == String ? $('#' + target) : $(target);
-        this.init();
-    }
-
-    UploadFile.prototype = {
-        init: function () {
-            this.fileList = [];
-            this.initContainer();
-            this.initUploader();
-        },
-        initContainer: function () {
-            this.$queue = this.$wrap.find('.filelist');
-        },
-        /* 初始化容器 */
-        initUploader: function () {
-            var _this = this,
-                $ = jQuery,    // just in case. Make sure it's not an other libaray.
-                $wrap = _this.$wrap,
-                // 图片容器
-                $queue = $wrap.find('.filelist'),
-                // 状态栏,包括进度和控制按钮
-                $statusBar = $wrap.find('.statusBar'),
-                // 文件总体选择信息。
-                $info = $statusBar.find('.info'),
-                // 上传按钮
-                $upload = $wrap.find('.uploadBtn'),
-                // 上传按钮
-                $filePickerBtn = $wrap.find('.filePickerBtn'),
-                // 上传按钮
-                $filePickerBlock = $wrap.find('.filePickerBlock'),
-                // 没选择文件之前的内容。
-                $placeHolder = $wrap.find('.placeholder'),
-                // 总体进度条
-                $progress = $statusBar.find('.progress').hide(),
-                // 添加的文件数量
-                fileCount = 0,
-                // 添加的文件总大小
-                fileSize = 0,
-                // 优化retina, 在retina下这个值是2
-                ratio = window.devicePixelRatio || 1,
-                // 缩略图大小
-                thumbnailWidth = 113 * ratio,
-                thumbnailHeight = 113 * ratio,
-                // 可能有pedding, ready, uploading, confirm, done.
-                state = '',
-                // 所有文件的进度信息,key为file id
-                percentages = {},
-                supportTransition = (function () {
-                    var s = document.createElement('p').style,
-                        r = 'transition' in s ||
-                            'WebkitTransition' in s ||
-                            'MozTransition' in s ||
-                            'msTransition' in s ||
-                            'OTransition' in s;
-                    s = null;
-                    return r;
-                })(),
-                // WebUploader实例
-                uploader,
-                actionUrl = editor.getActionUrl(editor.getOpt('audioActionName')),
-                fileMaxSize = editor.getOpt('audioMaxSize'),
-                acceptExtensions = (editor.getOpt('audioAllowFiles') || []).join('').replace(/\./g, ',').replace(/^[,]/, '');
-            ;
-
-            if (!WebUploader.Uploader.support()) {
-                $('#filePickerReady').after($('<div>').html(lang.errorNotSupport)).hide();
-                return;
-            } else if (!editor.getOpt('audioActionName')) {
-                $('#filePickerReady').after($('<div>').html(lang.errorLoadConfig)).hide();
-                return;
-            }
-
-            uploader = _this.uploader = WebUploader.create({
-                pick: {
-                    id: '#filePickerReady',
-                    label: lang.uploadSelectFile
-                },
-                swf: '../../third-party/webuploader/Uploader.swf',
-                server: actionUrl,
-                fileVal: editor.getOpt('audioFieldName'),
-                duplicate: true,
-                fileSingleSizeLimit: fileMaxSize,
-                headers: editor.getOpt('serverHeaders') || {},
-                compress: false
-            });
-            uploader.addButton({
-                id: '#filePickerBlock'
-            });
-            uploader.addButton({
-                id: '#filePickerBtn',
-                label: lang.uploadAddFile
-            });
-
-            setState('pedding');
-
-            // 当有文件添加进来时执行,负责view的创建
-            function addFile(file) {
-                var $li = $('<li id="' + file.id + '">' +
-                    '<p class="title">' + file.name + '</p>' +
-                    '<p class="imgWrap"></p>' +
-                    '<p class="progress"><span></span></p>' +
-                    '</li>'),
-
-                    $btns = $('<div class="file-panel">' +
-                        '<span class="cancel">' + lang.uploadDelete + '</span>' +
-                        '<span class="rotateRight">' + lang.uploadTurnRight + '</span>' +
-                        '<span class="rotateLeft">' + lang.uploadTurnLeft + '</span></div>').appendTo($li),
-                    $prgress = $li.find('p.progress span'),
-                    $wrap = $li.find('p.imgWrap'),
-                    $info = $('<p class="error"></p>').hide().appendTo($li),
-
-                    showError = function (code) {
-                        switch (code) {
-                            case 'exceed_size':
-                                text = lang.errorExceedSize;
-                                break;
-                            case 'interrupt':
-                                text = lang.errorInterrupt;
-                                break;
-                            case 'http':
-                                text = lang.errorHttp;
-                                break;
-                            case 'not_allow_type':
-                                text = lang.errorFileType;
-                                break;
-                            default:
-                                text = lang.errorUploadRetry;
-                                break;
-                        }
-                        $info.text(text).show();
-                    };
-
-                if (file.getStatus() === 'invalid') {
-                    showError(file.statusText);
-                } else {
-                    $wrap.text(lang.uploadPreview);
-                    if ('|png|jpg|jpeg|bmp|gif|'.indexOf('|' + file.ext.toLowerCase() + '|') == -1) {
-                        $wrap.empty().addClass('notimage').append('<i class="file-preview file-type-' + file.ext.toLowerCase() + '"></i>' +
-                            '<span class="file-title">' + file.name + '</span>');
-                    } else {
-                        if (browser.ie && browser.version <= 7) {
-                            $wrap.text(lang.uploadNoPreview);
-                        } else {
-                            uploader.makeThumb(file, function (error, src) {
-                                if (error || !src || (/^data:/.test(src) && browser.ie && browser.version <= 7)) {
-                                    $wrap.text(lang.uploadNoPreview);
-                                } else {
-                                    var $img = $('<img src="' + src + '">');
-                                    $wrap.empty().append($img);
-                                    $img.on('error', function () {
-                                        $wrap.text(lang.uploadNoPreview);
-                                    });
-                                }
-                            }, thumbnailWidth, thumbnailHeight);
-                        }
-                    }
-                    percentages[file.id] = [file.size, 0];
-                    file.rotation = 0;
-
-                    /* 检查文件格式 */
-                    if (!file.ext || acceptExtensions.indexOf(file.ext.toLowerCase()) == -1) {
-                        showError('not_allow_type');
-                        uploader.removeFile(file);
-                    }
-                }
-
-                file.on('statuschange', function (cur, prev) {
-                    if (prev === 'progress') {
-                        $prgress.hide().width(0);
-                    } else if (prev === 'queued') {
-                        $li.off('mouseenter mouseleave');
-                        $btns.remove();
-                    }
-                    // 成功
-                    if (cur === 'error' || cur === 'invalid') {
-                        showError(file.statusText);
-                        percentages[file.id][1] = 1;
-                    } else if (cur === 'interrupt') {
-                        showError('interrupt');
-                    } else if (cur === 'queued') {
-                        percentages[file.id][1] = 0;
-                    } else if (cur === 'progress') {
-                        $info.hide();
-                        $prgress.css('display', 'block');
-                    } else if (cur === 'complete') {
-                    }
-
-                    $li.removeClass('state-' + prev).addClass('state-' + cur);
-                });
-
-                $li.on('mouseenter', function () {
-                    $btns.stop().animate({height: 30});
-                });
-                $li.on('mouseleave', function () {
-                    $btns.stop().animate({height: 0});
-                });
-
-                $btns.on('click', 'span', function () {
-                    var index = $(this).index(),
-                        deg;
-
-                    switch (index) {
-                        case 0:
-                            uploader.removeFile(file);
-                            return;
-                        case 1:
-                            file.rotation += 90;
-                            break;
-                        case 2:
-                            file.rotation -= 90;
-                            break;
-                    }
-
-                    if (supportTransition) {
-                        deg = 'rotate(' + file.rotation + 'deg)';
-                        $wrap.css({
-                            '-webkit-transform': deg,
-                            '-mos-transform': deg,
-                            '-o-transform': deg,
-                            'transform': deg
-                        });
-                    } else {
-                        $wrap.css('filter', 'progid:DXImageTransform.Microsoft.BasicImage(rotation=' + (~~((file.rotation / 90) % 4 + 4) % 4) + ')');
-                    }
-
-                });
-
-                $li.insertBefore($filePickerBlock);
-            }
-
-            // 负责view的销毁
-            function removeFile(file) {
-                var $li = $('#' + file.id);
-                delete percentages[file.id];
-                updateTotalProgress();
-                $li.off().find('.file-panel').off().end().remove();
-            }
-
-            function updateTotalProgress() {
-                var loaded = 0,
-                    total = 0,
-                    spans = $progress.children(),
-                    percent;
-
-                $.each(percentages, function (k, v) {
-                    total += v[0];
-                    loaded += v[0] * v[1];
-                });
-
-                percent = total ? loaded / total : 0;
-
-                spans.eq(0).text(Math.round(percent * 100) + '%');
-                spans.eq(1).css('width', Math.round(percent * 100) + '%');
-                updateStatus();
-            }
-
-            function setState(val, files) {
-
-                if (val != state) {
-
-                    var stats = uploader.getStats();
-
-                    $upload.removeClass('state-' + state);
-                    $upload.addClass('state-' + val);
-
-                    switch (val) {
-
-                        /* 未选择文件 */
-                        case 'pedding':
-                            $queue.addClass('element-invisible');
-                            $statusBar.addClass('element-invisible');
-                            $placeHolder.removeClass('element-invisible');
-                            $progress.hide();
-                            $info.hide();
-                            uploader.refresh();
-                            break;
-
-                        /* 可以开始上传 */
-                        case 'ready':
-                            $placeHolder.addClass('element-invisible');
-                            $queue.removeClass('element-invisible');
-                            $statusBar.removeClass('element-invisible');
-                            $progress.hide();
-                            $info.show();
-                            $upload.text(lang.uploadStart);
-                            uploader.refresh();
-                            break;
-
-                        /* 上传中 */
-                        case 'uploading':
-                            $progress.show();
-                            $info.hide();
-                            $upload.text(lang.uploadPause);
-                            break;
-
-                        /* 暂停上传 */
-                        case 'paused':
-                            $progress.show();
-                            $info.hide();
-                            $upload.text(lang.uploadContinue);
-                            break;
-
-                        case 'confirm':
-                            $progress.show();
-                            $info.hide();
-                            $upload.text(lang.uploadStart);
-
-                            stats = uploader.getStats();
-                            if (stats.successNum && !stats.uploadFailNum) {
-                                setState('finish');
-                                return;
-                            }
-                            break;
-
-                        case 'finish':
-                            $progress.hide();
-                            $info.show();
-                            if (stats.uploadFailNum) {
-                                $upload.text(lang.uploadRetry);
-                            } else {
-                                $upload.text(lang.uploadStart);
-                            }
-                            break;
-                    }
-
-                    state = val;
-                    updateStatus();
-
-                }
-
-                if (!_this.getQueueCount()) {
-                    $upload.addClass('disabled')
-                } else {
-                    $upload.removeClass('disabled')
-                }
-
-            }
-
-            function updateStatus() {
-                var text = '', stats;
-
-                if (state === 'ready') {
-                    text = lang.updateStatusReady.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize));
-                } else if (state === 'confirm') {
-                    stats = uploader.getStats();
-                    if (stats.uploadFailNum) {
-                        text = lang.updateStatusConfirm.replace('_', stats.successNum).replace('_', stats.successNum);
-                    }
-                } else {
-                    stats = uploader.getStats();
-                    text = lang.updateStatusFinish.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize)).replace('_', stats.successNum);
-
-                    if (stats.uploadFailNum) {
-                        text += lang.updateStatusError.replace('_', stats.uploadFailNum);
-                    }
-                }
-
-                $info.html(text);
-            }
-
-            uploader.on('fileQueued', function (file) {
-                fileCount++;
-                fileSize += file.size;
-
-                if (fileCount === 1) {
-                    $placeHolder.addClass('element-invisible');
-                    $statusBar.show();
-                }
-
-                addFile(file);
-            });
-
-            uploader.on('fileDequeued', function (file) {
-                fileCount--;
-                fileSize -= file.size;
-
-                removeFile(file);
-                updateTotalProgress();
-            });
-
-            uploader.on('filesQueued', function (file) {
-                if (!uploader.isInProgress() && (state == 'pedding' || state == 'finish' || state == 'confirm' || state == 'ready')) {
-                    setState('ready');
-                }
-                updateTotalProgress();
-            });
-
-            uploader.on('all', function (type, files) {
-                switch (type) {
-                    case 'uploadFinished':
-                        setState('confirm', files);
-                        break;
-                    case 'startUpload':
-                        /* 添加额外的GET参数 */
-                        var params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '',
-                            url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?' : '&') + 'encode=utf-8&' + params);
-                        uploader.option('server', url);
-                        setState('uploading', files);
-                        break;
-                    case 'stopUpload':
-                        setState('paused', files);
-                        break;
-                }
-            });
-
-            uploader.on('uploadBeforeSend', function (file, data, header) {
-                //这里可以通过data对象添加POST参数
-                if (actionUrl.toLowerCase().indexOf('jsp') != -1) {
-                    header['X_Requested_With'] = 'XMLHttpRequest';
-                }
-            });
-
-            uploader.on('uploadProgress', function (file, percentage) {
-                var $li = $('#' + file.id),
-                    $percent = $li.find('.progress span');
-
-                $percent.css('width', percentage * 100 + '%');
-                percentages[file.id][1] = percentage;
-                updateTotalProgress();
-            });
-
-            uploader.on('uploadSuccess', function (file, ret) {
-                var $file = $('#' + file.id);
-                try {
-                    var responseText = (ret._raw || ret),
-                        json = utils.str2json(responseText);
-                    if (json.state == 'SUCCESS') {
-                        uploadaudioList.push({
-                            'url': json.url,
-                            'type': json.type,
-                            'original': json.original
-                        });
-                        $file.append('<span class="success"></span>');
-                    } else {
-                        $file.find('.error').text(json.state).show();
-                    }
-                } catch (e) {
-                    $file.find('.error').text(lang.errorServerUpload).show();
-                }
-            });
-
-            uploader.on('uploadError', function (file, code) {
-            });
-            uploader.on('error', function (code, file) {
-                if (code == 'Q_TYPE_DENIED' || code == 'F_EXCEED_SIZE') {
-                    addFile(file);
-                }
-            });
-            uploader.on('uploadComplete', function (file, ret) {
-            });
-
-            $upload.on('click', function () {
-                if ($(this).hasClass('disabled')) {
-                    return false;
-                }
-
-                if (state === 'ready') {
-                    uploader.upload();
-                } else if (state === 'paused') {
-                    uploader.upload();
-                } else if (state === 'uploading') {
-                    uploader.stop();
-                }
-            });
-
-            $upload.addClass('state-' + state);
-            updateTotalProgress();
-        },
-        getQueueCount: function () {
-            var file, i, status, readyFile = 0, files = this.uploader.getFiles();
-            for (i = 0; file = files[i++];) {
-                status = file.getStatus();
-                if (status == 'queued' || status == 'uploading' || status == 'progress') readyFile++;
-            }
-            return readyFile;
-        },
-        refresh: function () {
-            this.uploader.refresh();
-        }
-    };
-
-})();

BIN
front/public/UEditorPlus/dialogs/audio/images/bg.png


BIN
front/public/UEditorPlus/dialogs/audio/images/center_focus.jpg


BIN
front/public/UEditorPlus/dialogs/audio/images/file-icons.gif


BIN
front/public/UEditorPlus/dialogs/audio/images/file-icons.png


BIN
front/public/UEditorPlus/dialogs/audio/images/icons.gif


BIN
front/public/UEditorPlus/dialogs/audio/images/icons.png


BIN
front/public/UEditorPlus/dialogs/audio/images/image.png


BIN
front/public/UEditorPlus/dialogs/audio/images/left_focus.jpg


BIN
front/public/UEditorPlus/dialogs/audio/images/none_focus.jpg


BIN
front/public/UEditorPlus/dialogs/audio/images/progress.png


BIN
front/public/UEditorPlus/dialogs/audio/images/right_focus.jpg


BIN
front/public/UEditorPlus/dialogs/audio/images/success.gif


BIN
front/public/UEditorPlus/dialogs/audio/images/success.png


+ 0 - 193
front/public/UEditorPlus/dialogs/background/background.css

@@ -1,193 +0,0 @@
-.wrapper {
-    width: 424px;
-    margin: 10px auto;
-    zoom: 1;
-    position: relative
-}
-
-.tabbody {
-    height: 225px;
-}
-
-.tabbody .panel {
-    position: absolute;
-    width: 100%;
-    height: 100%;
-    background: #fff;
-    display: none;
-}
-
-.tabbody .focus {
-    display: block;
-}
-
-body {
-    font-size: 12px;
-    color: #888;
-    overflow: hidden;
-}
-
-input, label {
-    vertical-align: middle
-}
-
-.clear {
-    clear: both;
-}
-
-.pl {
-    padding-left: 18px;
-    padding-left: 23px \9;
-}
-
-#imageList {
-    width: 420px;
-    height: 215px;
-    margin-top: 10px;
-    overflow: hidden;
-    overflow-y: auto;
-}
-
-#imageList div {
-    float: left;
-    width: 100px;
-    height: 95px;
-    margin: 5px 10px;
-}
-
-#imageList img {
-    cursor: pointer;
-    border: 2px solid white;
-}
-
-.bgarea {
-    margin: 10px;
-    padding: 5px;
-    height: 84%;
-    border: 1px solid #A8A297;
-}
-
-.content div {
-    margin: 10px 0 10px 5px;
-}
-
-.content .iptradio {
-    margin: 0px 5px 5px 0px;
-}
-
-.txt {
-    width: 280px;
-}
-
-.wrapcolor {
-    height: 19px;
-}
-
-div.color {
-    float: left;
-    margin: 0;
-}
-
-#colorPicker {
-    width: 17px;
-    height: 17px;
-    border: 1px solid #CCC;
-    display: inline-block;
-    border-radius: 3px;
-    box-shadow: 2px 2px 5px #D3D6DA;
-    margin: 0;
-    float: left;
-}
-
-div.alignment, #custom {
-    margin-left: 23px;
-    margin-left: 28px \9;
-}
-
-#custom input {
-    height: 15px;
-    min-height: 15px;
-    width: 20px;
-}
-
-#repeatType {
-    width: 100px;
-}
-
-
-/* 图片管理样式 */
-#imgManager {
-    width: 100%;
-    height: 225px;
-}
-
-#imgManager #imageList {
-    width: 100%;
-    overflow-x: hidden;
-    overflow-y: auto;
-}
-
-#imgManager ul {
-    display: block;
-    list-style: none;
-    margin: 0;
-    padding: 0;
-}
-
-#imgManager li {
-    float: left;
-    display: block;
-    list-style: none;
-    padding: 0;
-    width: 113px;
-    height: 113px;
-    margin: 9px 0 0 19px;
-    background-color: #eee;
-    overflow: hidden;
-    cursor: pointer;
-    position: relative;
-}
-
-#imgManager li.clearFloat {
-    float: none;
-    clear: both;
-    display: block;
-    width: 0;
-    height: 0;
-    margin: 0;
-    padding: 0;
-}
-
-#imgManager li img {
-    cursor: pointer;
-}
-
-#imgManager li .icon {
-    cursor: pointer;
-    width: 113px;
-    height: 113px;
-    position: absolute;
-    top: 0;
-    left: 0;
-    z-index: 2;
-    border: 0;
-    background-repeat: no-repeat;
-}
-
-#imgManager li .icon:hover {
-    width: 107px;
-    height: 107px;
-    border: 3px solid #1094fa;
-}
-
-#imgManager li.selected .icon {
-    background-image: url(images/success.png);
-    background-position: 75px 75px;
-}
-
-#imgManager li.selected .icon:hover {
-    width: 107px;
-    height: 107px;
-    border: 3px solid #1094fa;
-    background-position: 72px 72px;
-}

+ 0 - 59
front/public/UEditorPlus/dialogs/background/background.html

@@ -1,59 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
-    <script type="text/javascript" src="../internal.js?aea0c61c"></script>
-    <link rel="stylesheet" type="text/css" href="background.css?da860c7a">
-</head>
-<body>
-<div id="bg_container" class="wrapper">
-    <div id="tabHeads" class="tabhead">
-        <span class="focus" data-content-id="normal"><var id="lang_background_normal"></var></span>
-    </div>
-    <div id="tabBodys" class="tabbody">
-        <div id="normal" class="panel focus">
-            <fieldset class="bgarea">
-                <legend><var id="lang_background_set"></var></legend>
-                <div class="content">
-                    <div>
-                        <label><input id="nocolorRadio" class="iptradio" type="radio" name="t" value="none"
-                                      checked="checked"><var id="lang_background_none"></var></label>
-                        <label><input id="coloredRadio" class="iptradio" type="radio" name="t" value="color"><var
-                            id="lang_background_colored"></var></label>
-                    </div>
-                    <div class="wrapcolor pl">
-                        <div class="color">
-                            <var id="lang_background_color"></var>:
-                        </div>
-                        <div id="colorPicker"></div>
-                        <div class="clear"></div>
-                    </div>
-                    <div class="wrapcolor pl">
-                        <label><var id="lang_background_netimg"></var>:</label><input class="txt" type="text" id="url">
-                    </div>
-                    <div id="alignment" class="alignment">
-                        <var id="lang_background_align"></var>:<select id="repeatType">
-                        <option value="center"></option>
-                        <option value="repeat-x"></option>
-                        <option value="repeat-y"></option>
-                        <option value="repeat"></option>
-                        <option value="self"></option>
-                    </select>
-                    </div>
-                    <div id="custom">
-                        <var id="lang_background_position"></var>:x:<input type="text" size="1" id="x" maxlength="4"
-                                                                           value="0">px&nbsp;&nbsp;y:<input type="text"
-                                                                                                            size="1"
-                                                                                                            id="y"
-                                                                                                            maxlength="4"
-                                                                                                            value="0">px
-                    </div>
-                </div>
-            </fieldset>
-
-        </div>
-    </div>
-</div>
-<script type="text/javascript" src="background.js?dd36acd0"></script>
-</body>
-</html>

+ 0 - 370
front/public/UEditorPlus/dialogs/background/background.js

@@ -1,370 +0,0 @@
-(function () {
-
-    var onlineImage,
-        backupStyle = editor.queryCommandValue('background');
-
-    window.onload = function () {
-        initTabs();
-        initColorSelector();
-    };
-
-    /* 初始化tab标签 */
-    function initTabs() {
-        var tabs = $G('tabHeads').children;
-        for (var i = 0; i < tabs.length; i++) {
-            domUtils.on(tabs[i], "click", function (e) {
-                var target = e.target || e.srcElement;
-                for (var j = 0; j < tabs.length; j++) {
-                    if (tabs[j] == target) {
-                        tabs[j].className = "focus";
-                        var contentId = tabs[j].getAttribute('data-content-id');
-                        $G(contentId).style.display = "block";
-                    } else {
-                        tabs[j].className = "";
-                        $G(tabs[j].getAttribute('data-content-id')).style.display = "none";
-                    }
-                }
-            });
-        }
-    }
-
-    /* 初始化颜色设置 */
-    function initColorSelector() {
-        var obj = editor.queryCommandValue('background');
-        if (obj) {
-            var color = obj['background-color'],
-                repeat = obj['background-repeat'] || 'repeat',
-                image = obj['background-image'] || '',
-                position = obj['background-position'] || 'center center',
-                pos = position.split(' '),
-                x = parseInt(pos[0]) || 0,
-                y = parseInt(pos[1]) || 0;
-
-            if (repeat == 'no-repeat' && (x || y)) repeat = 'self';
-
-            image = image.match(/url[\s]*\(([^\)]*)\)/);
-            image = image ? image[1] : '';
-            updateFormState('colored', color, image, repeat, x, y);
-        } else {
-            updateFormState();
-        }
-
-        var updateHandler = function () {
-            updateFormState();
-            updateBackground();
-        }
-        domUtils.on($G('nocolorRadio'), 'click', updateBackground);
-        domUtils.on($G('coloredRadio'), 'click', updateHandler);
-        domUtils.on($G('url'), 'keyup', function () {
-            if ($G('url').value && $G('alignment').style.display == "none") {
-                utils.each($G('repeatType').children, function (item) {
-                    item.selected = ('repeat' == item.getAttribute('value') ? 'selected' : false);
-                });
-            }
-            updateHandler();
-        });
-        domUtils.on($G('repeatType'), 'change', updateHandler);
-        domUtils.on($G('x'), 'keyup', updateBackground);
-        domUtils.on($G('y'), 'keyup', updateBackground);
-
-        initColorPicker();
-    }
-
-    /* 初始化颜色选择器 */
-    function initColorPicker() {
-        var me = editor,
-            cp = $G("colorPicker");
-
-        /* 生成颜色选择器ui对象 */
-        var popup = new UE.ui.Popup({
-            content: new UE.ui.ColorPicker({
-                noColorText: me.getLang("clearColor"),
-                editor: me,
-                onpickcolor: function (t, color) {
-                    updateFormState('colored', color);
-                    updateBackground();
-                    UE.ui.Popup.postHide();
-                },
-                onpicknocolor: function (t, color) {
-                    updateFormState('colored', 'transparent');
-                    updateBackground();
-                    UE.ui.Popup.postHide();
-                }
-            }),
-            editor: me,
-            onhide: function () {
-            }
-        });
-
-        /* 设置颜色选择器 */
-        domUtils.on(cp, "click", function () {
-            popup.showAnchor(this);
-        });
-        domUtils.on(document, 'mousedown', function (evt) {
-            var el = evt.target || evt.srcElement;
-            UE.ui.Popup.postHide(el);
-        });
-        domUtils.on(window, 'scroll', function () {
-            UE.ui.Popup.postHide();
-        });
-    }
-
-    /* 更新背景色设置面板 */
-    function updateFormState(radio, color, url, align, x, y) {
-        var nocolorRadio = $G('nocolorRadio'),
-            coloredRadio = $G('coloredRadio');
-
-        if (radio) {
-            nocolorRadio.checked = (radio == 'colored' ? false : 'checked');
-            coloredRadio.checked = (radio == 'colored' ? 'checked' : false);
-        }
-        if (color) {
-            domUtils.setStyle($G("colorPicker"), "background-color", color);
-        }
-
-        if (url && /^\//.test(url)) {
-            var a = document.createElement('a');
-            a.href = url;
-            browser.ie && (a.href = a.href);
-            url = browser.ie ? a.href : (a.protocol + '//' + a.host + a.pathname + a.search + a.hash);
-        }
-
-        if (url || url === '') {
-            $G('url').value = url;
-        }
-        if (align) {
-            utils.each($G('repeatType').children, function (item) {
-                item.selected = (align == item.getAttribute('value') ? 'selected' : false);
-            });
-        }
-        if (x || y) {
-            $G('x').value = parseInt(x) || 0;
-            $G('y').value = parseInt(y) || 0;
-        }
-
-        $G('alignment').style.display = coloredRadio.checked && $G('url').value ? '' : 'none';
-        $G('custom').style.display = coloredRadio.checked && $G('url').value && $G('repeatType').value == 'self' ? '' : 'none';
-    }
-
-    /* 更新背景颜色 */
-    function updateBackground() {
-        if ($G('coloredRadio').checked) {
-            var color = domUtils.getStyle($G("colorPicker"), "background-color"),
-                bgimg = $G("url").value,
-                align = $G("repeatType").value,
-                backgroundObj = {
-                    "background-repeat": "no-repeat",
-                    "background-position": "center center"
-                };
-
-            if (color) backgroundObj["background-color"] = color;
-            if (bgimg) backgroundObj["background-image"] = 'url(' + bgimg + ')';
-            if (align == 'self') {
-                backgroundObj["background-position"] = $G("x").value + "px " + $G("y").value + "px";
-            } else if (align == 'repeat-x' || align == 'repeat-y' || align == 'repeat') {
-                backgroundObj["background-repeat"] = align;
-            }
-
-            editor.execCommand('background', backgroundObj);
-        } else {
-            editor.execCommand('background', null);
-        }
-    }
-
-
-    /* 在线图片 */
-    function OnlineImage(target) {
-        this.container = utils.isString(target) ? document.getElementById(target) : target;
-        this.init();
-    }
-
-    OnlineImage.prototype = {
-        init: function () {
-            this.reset();
-            this.initEvents();
-        },
-        /* 初始化容器 */
-        initContainer: function () {
-            this.container.innerHTML = '';
-            this.list = document.createElement('ul');
-            this.clearFloat = document.createElement('li');
-
-            domUtils.addClass(this.list, 'list');
-            domUtils.addClass(this.clearFloat, 'clearFloat');
-
-            this.list.id = 'imageListUl';
-            this.list.appendChild(this.clearFloat);
-            this.container.appendChild(this.list);
-        },
-        /* 初始化滚动事件,滚动到地步自动拉取数据 */
-        initEvents: function () {
-            var _this = this;
-
-            /* 滚动拉取图片 */
-            domUtils.on($G('imageList'), 'scroll', function (e) {
-                var panel = this;
-                if (panel.scrollHeight - (panel.offsetHeight + panel.scrollTop) < 10) {
-                    _this.getImageData();
-                }
-            });
-            /* 选中图片 */
-            domUtils.on(this.container, 'click', function (e) {
-                var target = e.target || e.srcElement,
-                    li = target.parentNode,
-                    nodes = $G('imageListUl').childNodes;
-
-                if (li.tagName.toLowerCase() == 'li') {
-                    updateFormState('nocolor', null, '');
-                    for (var i = 0, node; node = nodes[i++];) {
-                        if (node == li && !domUtils.hasClass(node, 'selected')) {
-                            domUtils.addClass(node, 'selected');
-                            updateFormState('colored', null, li.firstChild.getAttribute("_src"), 'repeat');
-                        } else {
-                            domUtils.removeClasses(node, 'selected');
-                        }
-                    }
-                    updateBackground();
-                }
-            });
-        },
-        /* 初始化第一次的数据 */
-        initData: function () {
-
-            /* 拉取数据需要使用的值 */
-            this.state = 0;
-            this.listSize = editor.getOpt('imageManagerListSize');
-            this.listIndex = 0;
-            this.listEnd = false;
-
-            /* 第一次拉取数据 */
-            this.getImageData();
-        },
-        /* 重置界面 */
-        reset: function () {
-            this.initContainer();
-            this.initData();
-        },
-        /* 向后台拉取图片列表数据 */
-        getImageData: function () {
-            var _this = this;
-
-            if (!_this.listEnd && !this.isLoadingData) {
-                this.isLoadingData = true;
-                var url = editor.getActionUrl(editor.getOpt('imageManagerActionName')),
-                    isJsonp = utils.isCrossDomainUrl(url);
-                ajax.request(url, {
-                    'timeout': 100000,
-                    'dataType': isJsonp ? 'jsonp' : '',
-                    'data': utils.extend({
-                        start: this.listIndex,
-                        size: this.listSize
-                    }, editor.queryCommandValue('serverparam')),
-                    'headers': editor.options.serverHeaders || {},
-                    'method': 'get',
-                    'onsuccess': function (r) {
-                        try {
-                            var json = isJsonp ? r : eval('(' + r.responseText + ')');
-                            if (json.state == 'SUCCESS') {
-                                _this.pushData(json.list);
-                                _this.listIndex = parseInt(json.start) + parseInt(json.list.length);
-                                if (_this.listIndex >= json.total) {
-                                    _this.listEnd = true;
-                                }
-                                _this.isLoadingData = false;
-                            }
-                        } catch (e) {
-                            if (r.responseText.indexOf('ue_separate_ue') != -1) {
-                                var list = r.responseText.split(r.responseText);
-                                _this.pushData(list);
-                                _this.listIndex = parseInt(list.length);
-                                _this.listEnd = true;
-                                _this.isLoadingData = false;
-                            }
-                        }
-                    },
-                    'onerror': function () {
-                        _this.isLoadingData = false;
-                    }
-                });
-            }
-        },
-        /* 添加图片到列表界面上 */
-        pushData: function (list) {
-            var i, item, img, icon, _this = this,
-                urlPrefix = editor.getOpt('imageManagerUrlPrefix');
-            for (i = 0; i < list.length; i++) {
-                if (list[i] && list[i].url) {
-                    item = document.createElement('li');
-                    img = document.createElement('img');
-                    icon = document.createElement('span');
-
-                    domUtils.on(img, 'load', (function (image) {
-                        return function () {
-                            _this.scale(image, image.parentNode.offsetWidth, image.parentNode.offsetHeight);
-                        }
-                    })(img));
-                    img.width = 113;
-                    img.setAttribute('src', urlPrefix + list[i].url + (list[i].url.indexOf('?') == -1 ? '?noCache=' : '&noCache=') + (+new Date()).toString(36));
-                    img.setAttribute('_src', urlPrefix + list[i].url);
-                    domUtils.addClass(icon, 'icon');
-
-                    item.appendChild(img);
-                    item.appendChild(icon);
-                    this.list.insertBefore(item, this.clearFloat);
-                }
-            }
-        },
-        /* 改变图片大小 */
-        scale: function (img, w, h, type) {
-            var ow = img.width,
-                oh = img.height;
-
-            if (type == 'justify') {
-                if (ow >= oh) {
-                    img.width = w;
-                    img.height = h * oh / ow;
-                    img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px';
-                } else {
-                    img.width = w * ow / oh;
-                    img.height = h;
-                    img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px';
-                }
-            } else {
-                if (ow >= oh) {
-                    img.width = w * ow / oh;
-                    img.height = h;
-                    img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px';
-                } else {
-                    img.width = w;
-                    img.height = h * oh / ow;
-                    img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px';
-                }
-            }
-        },
-        getInsertList: function () {
-            var i, lis = this.list.children, list = [], align = getAlign();
-            for (i = 0; i < lis.length; i++) {
-                if (domUtils.hasClass(lis[i], 'selected')) {
-                    var img = lis[i].firstChild,
-                        src = img.getAttribute('_src');
-                    list.push({
-                        src: src,
-                        _src: src,
-                        floatStyle: align
-                    });
-                }
-
-            }
-            return list;
-        }
-    };
-
-    dialog.onok = function () {
-        updateBackground();
-        editor.fireEvent('saveScene');
-    };
-    dialog.oncancel = function () {
-        editor.execCommand('background', backupStyle);
-    };
-
-})();

BIN
front/public/UEditorPlus/dialogs/background/images/bg.png


BIN
front/public/UEditorPlus/dialogs/background/images/success.png


+ 0 - 176
front/public/UEditorPlus/dialogs/contentimport/contentimport.html

@@ -1,176 +0,0 @@
-<!DOCTYPE html>
-<head>
-    <title></title>
-    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
-    <script type="text/javascript" src="../internal.js?aea0c61c"></script>
-    <style type="text/css">
-        .wrapper {
-            width: 600px;
-            padding: 10px;
-            height: 352px;
-            overflow: hidden;
-            position: relative;
-            border-bottom: 1px solid #d7d7d7;
-        }
-
-        .wrapper .file-upload {
-            display: flex;
-            align-items: center;
-        }
-
-        .wrapper .file-upload .file-tip {
-            color: #999;
-            font-size: 12px;
-            padding-left: 10px;
-            flex-grow: 1;
-        }
-
-        .wrapper .file-manual {
-            background: #EEE;
-            padding: 10px;
-            border-radius: 5px;
-            margin-top: 10px;
-            line-height: 2;
-        }
-
-        .wrapper .file-manual .title {
-            font-weight: bold;
-            font-size: 120%;
-        }
-
-        .wrapper .file-manual .body {
-        }
-
-        .wrapper .file-manual .body li {
-            list-style: disc;
-            margin-left: 20px;
-        }
-
-        .wrapper .upload-button {
-            width: 100px;
-            height: 30px;
-            background-color: #F8F8F8;
-            border: 1px solid #EEE;
-            border-radius: 4px;
-            text-align: center;
-            line-height: 28px;
-            cursor: pointer;
-            position: relative;
-            flex-shrink: 0;
-            margin-right: 5px;
-        }
-
-        .wrapper .upload-button .text {
-            display: inline-block;
-            vertical-align: middle;
-        }
-
-        .wrapper .upload-button input {
-            position: absolute;
-            left: 0;
-            top: 0;
-            opacity: 0;
-            cursor: pointer;
-            height: 100%;
-            width: 100%;
-        }
-
-        .wrapper .file-result {
-            border: 1px solid #333;
-            padding: 10px;
-            border-radius: 5px;
-            position: absolute;
-            left: 10px;
-            right: 10px;
-            top: 50px;
-            background: #FFF;
-            bottom: 10px;
-            overflow: auto;
-            display: none;
-        }
-        .wrapper .file-input{
-            position: absolute;
-            left: 10px;
-            right: 10px;
-            top: 50px;
-            background: #EEE;
-            bottom: 10px;
-            border-radius: 5px;
-            display:none;
-        }
-        .wrapper .file-input textarea{
-            position: absolute;
-            left: 10px;
-            right: 10px;
-            bottom: 10px;
-            border: none;
-            resize: none;
-            border-radius: 5px;
-            padding: 5px;
-            outline: none;
-            top: 30px;
-        }
-        .wrapper .file-input .tool{
-            text-align: right;
-            padding: 5px 10px;
-        }
-        .wrapper .file-input .tool a{
-            display: inline-block;
-            text-decoration: none;
-            color: #333;
-            background: #FFF;
-            padding: 0 10px;
-            line-height: 20px;
-            border-radius: 3px;
-        }
-    </style>
-</head>
-<body>
-<div class="wrapper">
-    <div class="file-upload">
-        <div class="upload-button">
-            <div class="text">选择本地文件</div>
-            <input type="file" id="contentImport"/>
-        </div>
-        <div class="upload-button">
-            <div class="text" onclick="$('.file-input').show();">粘贴Markdown</div>
-        </div>
-        <div class="file-tip"></div>
-    </div>
-    <div class="file-manual">
-        <div class="title">
-            支持文档格式
-        </div>
-        <div class="body">
-            <ul>
-                <li><b>Word</b>:docx</li>
-                <li><b>Markdown</b>:md</li>
-            </ul>
-        </div>
-    </div>
-    <div class="file-result"></div>
-    <div class="file-input">
-        <textarea id="fileInputContent"></textarea>
-        <div class="tool">
-            <a href="javascript:;" id="fileInputConfirm">
-                确定
-            </a>
-            <a href="javascript:;" onclick="$(this).closest('.file-input').hide();">
-                关闭
-            </a>
-        </div>
-    </div>
-</div>
-<script src="../../third-party/jquery-1.10.2.js?628072e7"></script>
-<script src="https://cdn.bootcdn.net/ajax/libs/mammoth/1.6.0/mammoth.browser.min.js"></script>
-<script src="https://cdn.bootcdn.net/ajax/libs/showdown/2.1.0/showdown.min.js"></script>
-<script type="text/javascript" src="contentimport.js?5760833a"></script>
-<script type="text/javascript">
-    utils.domReady(function () {
-        var options = {};
-        var callbacks = {};
-        contentImport.init(options, callbacks);
-    });
-</script>
-</body>
-</html>

+ 0 - 91
front/public/UEditorPlus/dialogs/contentimport/contentimport.js

@@ -1,91 +0,0 @@
-var contentImport = {};
-var g = $G;
-
-contentImport.data = {
-    result: null,
-};
-contentImport.init = function (opt, callbacks) {
-    addUploadButtonListener();
-    addOkListener();
-};
-
-function processWord(file) {
-    $('.file-tip').html('正在转换Word文件,请稍后...');
-    $('.file-result').html('').hide();
-    var reader = new FileReader();
-    reader.onload = function (loadEvent) {
-        mammoth.convertToHtml({
-            arrayBuffer: loadEvent.target.result
-        })
-            .then(function displayResult(result) {
-                $('.file-tip').html('转换成功');
-                contentImport.data.result = result.value;
-                $('.file-result').html(result.value).show();
-            }, function (error) {
-                $('.file-tip').html('Word文件转换失败:' + error);
-            });
-    };
-    reader.onerror = function (loadEvent) {
-        $('.file-tip').html('Word文件转换失败:' + loadEvent);
-    };
-    reader.readAsArrayBuffer(file);
-}
-
-function processMarkdown( markdown ){
-    var converter = new showdown.Converter();
-    var html = converter.makeHtml(markdown);
-    $('.file-tip').html('转换成功');
-    contentImport.data.result = html;
-    $('.file-result').html(html).show();
-}
-
-function processMarkdownFile(file) {
-    $('.file-tip').html('正在转换Markdown文件,请稍后...');
-    $('.file-result').html('').hide();
-    var reader = new FileReader();
-    reader.onload = function (loadEvent) {
-        processMarkdown( loadEvent.target.result );
-    };
-    reader.onerror = function (loadEvent) {
-        $('.file-tip').html('Markdown文件转换失败:' + loadEvent);
-    };
-    reader.readAsText(file, "UTF-8");
-}
-
-function addUploadButtonListener() {
-    g('contentImport').addEventListener('change', function () {
-        const file = this.files[0];
-        const fileName = file.name;
-        const fileExt = fileName.substring(fileName.lastIndexOf('.') + 1).toLowerCase();
-        switch (fileExt) {
-            case 'docx':
-            case 'doc':
-                processWord(file);
-                break;
-            case 'md':
-                processMarkdownFile(file);
-                break;
-            default:
-                $('.file-tip').html('不支持的文件格式:' + fileExt);
-                break;
-        }
-    });
-    g('fileInputConfirm').addEventListener('click', function () {
-        processMarkdown( g('fileInputContent').value );
-        $('.file-input').hide();
-    });
-}
-
-function addOkListener() {
-    dialog.onok = function () {
-        if (!contentImport.data.result) {
-            alert('请先上传文件识别内容');
-            return false;
-        }
-        editor.fireEvent('saveScene');
-        editor.execCommand("inserthtml", contentImport.data.result);
-        editor.fireEvent('saveScene');
-    };
-    dialog.oncancel = function () {
-    };
-}

+ 0 - 129
front/public/UEditorPlus/dialogs/emotion/emotion.css

@@ -1,129 +0,0 @@
-.jd img {
-    background: transparent url(images/jxface2.gif?v=1.1) no-repeat scroll left top;
-    cursor: pointer;
-    width: 35px;
-    height: 35px;
-    display: block;
-}
-
-.pp img {
-    background: transparent url(images/fface.gif?v=1.1) no-repeat scroll left top;
-    cursor: pointer;
-    width: 25px;
-    height: 25px;
-    display: block;
-}
-
-.ldw img {
-    background: transparent url(images/wface.gif?v=1.1) no-repeat scroll left top;
-    cursor: pointer;
-    width: 35px;
-    height: 35px;
-    display: block;
-}
-
-.tsj img {
-    background: transparent url(images/tface.gif?v=1.1) no-repeat scroll left top;
-    cursor: pointer;
-    width: 35px;
-    height: 35px;
-    display: block;
-}
-
-.cat img {
-    background: transparent url(images/cface.gif?v=1.1) no-repeat scroll left top;
-    cursor: pointer;
-    width: 35px;
-    height: 35px;
-    display: block;
-}
-
-.bb img {
-    background: transparent url(images/bface.gif?v=1.1) no-repeat scroll left top;
-    cursor: pointer;
-    width: 35px;
-    height: 35px;
-    display: block;
-}
-
-.youa img {
-    background: transparent url(images/yface.gif?v=1.1) no-repeat scroll left top;
-    cursor: pointer;
-    width: 35px;
-    height: 35px;
-    display: block;
-}
-
-.smileytable td {
-    height: 37px;
-}
-
-#tabPanel {
-    margin-left: 5px;
-    overflow: hidden;
-}
-
-#tabContent {
-    float: left;
-    background: #FFFFFF;
-}
-
-#tabContent div {
-    display: none;
-    width: 480px;
-    overflow: hidden;
-}
-
-#tabIconReview.show {
-    left: 17px;
-    display: block;
-}
-
-.menuFocus {
-    background: #ACCD3C;
-}
-
-.menuDefault {
-    background: #FFFFFF;
-}
-
-#tabIconReview {
-    position: absolute;
-    left: 406px;
-    left: 398px \9;
-    top: 41px;
-    z-index: 65533;
-    width: 90px;
-    height: 76px;
-}
-
-img.review {
-    width: 90px;
-    height: 76px;
-    border: 2px solid #9cb945;
-    background: #FFFFFF;
-    background-position: center;
-    background-repeat: no-repeat;
-}
-
-.wrapper .tabbody {
-    position: relative;
-    float: left;
-    clear: both;
-    padding: 10px;
-    width: 95%;
-}
-
-.tabbody table {
-    width: 100%;
-}
-
-.tabbody td {
-    border: 1px solid #BAC498;
-}
-
-.tabbody td span {
-    display: block;
-    zoom: 1;
-    padding: 0 4px;
-}

+ 0 - 70
front/public/UEditorPlus/dialogs/emotion/emotion.html

@@ -1,70 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-    <title></title>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
-    <meta name="robots" content="noindex, nofollow"/>
-    <script type="text/javascript" src="../internal.js?aea0c61c"></script>
-    <link rel="stylesheet" type="text/css" href="emotion.css?d5b42328">
-</head>
-<body>
-<div id="tabPanel" class="wrapper">
-    <div id="tabHeads" class="tabhead">
-        <span><var id="lang_input_choice"></var></span>
-        <span><var id="lang_input_Tuzki"></var></span>
-        <span><var id="lang_input_lvdouwa"></var></span>
-        <span><var id="lang_input_BOBO"></var></span>
-        <span><var id="lang_input_babyCat"></var></span>
-        <span><var id="lang_input_bubble"></var></span>
-        <span><var id="lang_input_youa"></var></span>
-    </div>
-    <div id="tabBodys" class="tabbody">
-        <div id="tab0"></div>
-        <div id="tab1"></div>
-        <div id="tab2"></div>
-        <div id="tab3"></div>
-        <div id="tab4"></div>
-        <div id="tab5"></div>
-        <div id="tab6"></div>
-    </div>
-</div>
-<div id="tabIconReview">
-    <img id='faceReview' class='review' src="../../themes/default/images/spacer.gif"/>
-</div>
-<script type="text/javascript" src="emotion.js?61027075"></script>
-<script type="text/javascript">
-    var emotion = {
-        tabNum: 7, //切换面板数量
-        SmilmgName: {
-            tab0: ['j_00', 84],
-            tab1: ['t_00', 40],
-            tab2: ['w_00', 52],
-            tab3: ['B_00', 63],
-            tab4: ['C_00', 20],
-            tab5: ['i_f', 50],
-            tab6: ['y_00', 40]
-        }, //图片前缀名
-        imageFolders: {
-            tab0: 'jx2/',
-            tab1: 'tsj/',
-            tab2: 'ldw/',
-            tab3: 'bobo/',
-            tab4: 'babycat/',
-            tab5: 'face/',
-            tab6: 'youa/'
-        }, //图片对应文件夹路径
-        imageCss: {tab0: 'jd', tab1: 'tsj', tab2: 'ldw', tab3: 'bb', tab4: 'cat', tab5: 'pp', tab6: 'youa'}, //图片css类名
-        imageCssOffset: {tab0: 35, tab1: 35, tab2: 35, tab3: 35, tab4: 35, tab5: 25, tab6: 35}, //图片偏移
-        SmileyInfor: {
-            tab0: ['Kiss', 'Love', 'Yeah', '啊!', '背扭', '顶', '抖胸', '88', '汗', '瞌睡', '鲁拉', '拍砖', '揉脸', '生日快乐', '大笑', '瀑布汗~', '惊讶', '臭美', '傻笑', '抛媚眼', '发怒', '打酱油', '俯卧撑', '气愤', '?', '吻', '怒', '胜利', 'HI', 'KISS', '不说', '不要', '扯花', '大心', '顶', '大惊', '飞吻', '鬼脸', '害羞', '口水', '狂哭', '来', '发财了', '吃西瓜', '套牢', '害羞', '庆祝', '我来了', '敲打', '晕了', '胜利', '臭美', '被打了', '贪吃', '迎接', '酷', '微笑', '亲吻', '调皮', '惊恐', '耍酷', '发火', '害羞', '汗水', '大哭', '', '加油', '困', '你NB', '晕倒', '开心', '偷笑', '大哭', '滴汗', '叹气', '超赞', '??', '飞吻', '天使', '撒花', '生气', '被砸', '吓傻', '随意吐'],
-            tab1: ['Kiss', 'Love', 'Yeah', '啊!', '背扭', '顶', '抖胸', '88', '汗', '瞌睡', '鲁拉', '拍砖', '揉脸', '生日快乐', '摊手', '睡觉', '瘫坐', '无聊', '星星闪', '旋转', '也不行', '郁闷', '正Music', '抓墙', '撞墙至死', '歪头', '戳眼', '飘过', '互相拍砖', '砍死你', '扔桌子', '少林寺', '什么?', '转头', '我爱牛奶', '我踢', '摇晃', '晕厥', '在笼子里', '震荡'],
-            tab2: ['大笑', '瀑布汗~', '惊讶', '臭美', '傻笑', '抛媚眼', '发怒', '我错了', 'money', '气愤', '挑逗', '吻', '怒', '胜利', '委屈', '受伤', '说啥呢?', '闭嘴', '不', '逗你玩儿', '飞吻', '眩晕', '魔法', '我来了', '睡了', '我打', '闭嘴', '打', '打晕了', '刷牙', '爆揍', '炸弹', '倒立', '刮胡子', '邪恶的笑', '不要不要', '爱恋中', '放大仔细看', '偷窥', '超高兴', '晕', '松口气', '我跑', '享受', '修养', '哭', '汗', '啊~', '热烈欢迎', '打酱油', '俯卧撑', '?'],
-            tab3: ['HI', 'KISS', '不说', '不要', '扯花', '大心', '顶', '大惊', '飞吻', '鬼脸', '害羞', '口水', '狂哭', '来', '泪眼', '流泪', '生气', '吐舌', '喜欢', '旋转', '再见', '抓狂', '汗', '鄙视', '拜', '吐血', '嘘', '打人', '蹦跳', '变脸', '扯肉', '吃To', '吃花', '吹泡泡糖', '大变身', '飞天舞', '回眸', '可怜', '猛抽', '泡泡', '苹果', '亲', '', '骚舞', '烧香', '睡', '套娃娃', '捅捅', '舞倒', '西红柿', '爱慕', '摇', '摇摆', '杂耍', '招财', '被殴', '被球闷', '大惊', '理想', '欧打', '呕吐', '碎', '吐痰'],
-            tab4: ['发财了', '吃西瓜', '套牢', '害羞', '庆祝', '我来了', '敲打', '晕了', '胜利', '臭美', '被打了', '贪吃', '迎接', '酷', '顶', '幸运', '爱心', '躲', '送花', '选择'],
-            tab5: ['微笑', '亲吻', '调皮', '惊讶', '耍酷', '发火', '害羞', '汗水', '大哭', '得意', '鄙视', '困', '夸奖', '晕倒', '疑问', '媒婆', '狂吐', '青蛙', '发愁', '亲吻', '', '爱心', '心碎', '玫瑰', '礼物', '哭', '奸笑', '可爱', '得意', '呲牙', '暴汗', '楚楚可怜', '困', '哭', '生气', '惊讶', '口水', '彩虹', '夜空', '太阳', '钱钱', '灯泡', '咖啡', '蛋糕', '音乐', '爱', '胜利', '赞', '鄙视', 'OK'],
-            tab6: ['男兜', '女兜', '开心', '乖乖', '偷笑', '大笑', '抽泣', '大哭', '无奈', '滴汗', '叹气', '狂晕', '委屈', '超赞', '??', '疑问', '飞吻', '天使', '撒花', '生气', '被砸', '口水', '泪奔', '吓傻', '吐舌头', '点头', '随意吐', '旋转', '困困', '鄙视', '狂顶', '篮球', '再见', '欢迎光临', '恭喜发财', '稍等', '我在线', '恕不议价', '库房有货', '货在路上']
-        }
-    };
-</script>
-</body>
-</html>

+ 0 - 186
front/public/UEditorPlus/dialogs/emotion/emotion.js

@@ -1,186 +0,0 @@
-window.onload = function () {
-    editor.setOpt({
-        emotionLocalization: false
-    });
-
-    emotion.SmileyPath = editor.options.emotionLocalization === true ? 'images/' : "http://img.baidu.com/hi/";
-    emotion.SmileyBox = createTabList(emotion.tabNum);
-    emotion.tabExist = createArr(emotion.tabNum);
-
-    initImgName();
-    initEvtHandler("tabHeads");
-};
-
-function initImgName() {
-    for (var pro in emotion.SmilmgName) {
-        var tempName = emotion.SmilmgName[pro],
-            tempBox = emotion.SmileyBox[pro],
-            tempStr = "";
-
-        if (tempBox.length) return;
-        for (var i = 1; i <= tempName[1]; i++) {
-            tempStr = tempName[0];
-            if (i < 10) tempStr = tempStr + '0';
-            tempStr = tempStr + i + '.gif';
-            tempBox.push(tempStr);
-        }
-    }
-}
-
-function initEvtHandler(conId) {
-    var tabHeads = $G(conId);
-    for (var i = 0, j = 0; i < tabHeads.childNodes.length; i++) {
-        var tabObj = tabHeads.childNodes[i];
-        if (tabObj.nodeType == 1) {
-            domUtils.on(tabObj, "click", (function (index) {
-                return function () {
-                    switchTab(index);
-                };
-            })(j));
-            j++;
-        }
-    }
-    switchTab(0);
-    $G("tabIconReview").style.display = 'none';
-}
-
-function InsertSmiley(url, evt) {
-    var obj = {
-        src: editor.options.emotionLocalization ? editor.options.UEDITOR_HOME_URL + "dialogs/emotion/" + url : url
-    };
-    obj._src = obj.src;
-    editor.execCommand('insertimage', obj);
-    if (!evt.ctrlKey) {
-        dialog.popup.hide();
-    }
-}
-
-function switchTab(index) {
-
-    autoHeight(index);
-    if (emotion.tabExist[index] == 0) {
-        emotion.tabExist[index] = 1;
-        createTab('tab' + index);
-    }
-    //获取呈现元素句柄数组
-    var tabHeads = $G("tabHeads").getElementsByTagName("span"),
-        tabBodys = $G("tabBodys").getElementsByTagName("div"),
-        i = 0, L = tabHeads.length;
-    //隐藏所有呈现元素
-    for (; i < L; i++) {
-        tabHeads[i].className = "";
-        tabBodys[i].style.display = "none";
-    }
-    //显示对应呈现元素
-    tabHeads[index].className = "focus";
-    tabBodys[index].style.display = "block";
-}
-
-function autoHeight(index) {
-    var iframe = dialog.getDom("iframe"),
-        parent = iframe.parentNode.parentNode;
-    switch (index) {
-        case 0:
-            iframe.style.height = "380px";
-            parent.style.height = "392px";
-            break;
-        case 1:
-            iframe.style.height = "220px";
-            parent.style.height = "232px";
-            break;
-        case 2:
-            iframe.style.height = "260px";
-            parent.style.height = "272px";
-            break;
-        case 3:
-            iframe.style.height = "300px";
-            parent.style.height = "312px";
-            break;
-        case 4:
-            iframe.style.height = "140px";
-            parent.style.height = "152px";
-            break;
-        case 5:
-            iframe.style.height = "260px";
-            parent.style.height = "272px";
-            break;
-        case 6:
-            iframe.style.height = "230px";
-            parent.style.height = "242px";
-            break;
-        default:
-
-    }
-}
-
-
-function createTab(tabName) {
-    var faceVersion = "?v=1.1", //版本号
-        tab = $G(tabName), //获取将要生成的Div句柄
-        imagePath = emotion.SmileyPath + emotion.imageFolders[tabName], //获取显示表情和预览表情的路径
-        positionLine = 11 / 2, //中间数
-        iWidth = iHeight = 35, //图片长宽
-        iColWidth = 3, //表格剩余空间的显示比例
-        tableCss = emotion.imageCss[tabName],
-        cssOffset = emotion.imageCssOffset[tabName],
-        textHTML = ['<table class="smileytable">'],
-        i = 0, imgNum = emotion.SmileyBox[tabName].length, imgColNum = 11, faceImage,
-        sUrl, realUrl, posflag, offset, infor;
-
-    for (; i < imgNum;) {
-        textHTML.push('<tr>');
-        for (var j = 0; j < imgColNum; j++, i++) {
-            faceImage = emotion.SmileyBox[tabName][i];
-            if (faceImage) {
-                sUrl = imagePath + faceImage + faceVersion;
-                realUrl = imagePath + faceImage;
-                posflag = j < positionLine ? 0 : 1;
-                offset = cssOffset * i * (-1) - 1;
-                infor = emotion.SmileyInfor[tabName][i];
-
-                textHTML.push('<td  class="' + tableCss + '"   border="1" width="' + iColWidth + '%" style="border-collapse:collapse;" align="center"  bgcolor="transparent" onclick="InsertSmiley(\'' + realUrl.replace(/'/g, "\\'") + '\',event)" onmouseover="over(this,\'' + sUrl + '\',\'' + posflag + '\')" onmouseout="out(this)">');
-                textHTML.push('<span>');
-                textHTML.push('<img  style="background-position:left ' + offset + 'px;" title="' + infor + '" src="' + emotion.SmileyPath + (editor.options.emotionLocalization ? '0.gif" width="' : 'default/0.gif" width="') + iWidth + '" height="' + iHeight + '"></img>');
-                textHTML.push('</span>');
-            } else {
-                textHTML.push('<td width="' + iColWidth + '%"   bgcolor="#FFFFFF">');
-            }
-            textHTML.push('</td>');
-        }
-        textHTML.push('</tr>');
-    }
-    textHTML.push('</table>');
-    textHTML = textHTML.join("");
-    tab.innerHTML = textHTML;
-}
-
-function over(td, srcPath, posFlag) {
-    td.style.backgroundColor = "#ACCD3C";
-    $G('faceReview').style.backgroundImage = "url(" + srcPath + ")";
-    if (posFlag == 1) $G("tabIconReview").className = "show";
-    $G("tabIconReview").style.display = 'block';
-}
-
-function out(td) {
-    td.style.backgroundColor = "transparent";
-    var tabIconRevew = $G("tabIconReview");
-    tabIconRevew.className = "";
-    tabIconRevew.style.display = 'none';
-}
-
-function createTabList(tabNum) {
-    var obj = {};
-    for (var i = 0; i < tabNum; i++) {
-        obj["tab" + i] = [];
-    }
-    return obj;
-}
-
-function createArr(tabNum) {
-    var arr = [];
-    for (var i = 0; i < tabNum; i++) {
-        arr[i] = 0;
-    }
-    return arr;
-}
-

BIN
front/public/UEditorPlus/dialogs/emotion/images/0.gif


BIN
front/public/UEditorPlus/dialogs/emotion/images/bface.gif


BIN
front/public/UEditorPlus/dialogs/emotion/images/cface.gif


BIN
front/public/UEditorPlus/dialogs/emotion/images/fface.gif


BIN
front/public/UEditorPlus/dialogs/emotion/images/jxface2.gif


BIN
front/public/UEditorPlus/dialogs/emotion/images/neweditor-tab-bg.png


BIN
front/public/UEditorPlus/dialogs/emotion/images/tface.gif


BIN
front/public/UEditorPlus/dialogs/emotion/images/wface.gif


BIN
front/public/UEditorPlus/dialogs/emotion/images/yface.gif


+ 0 - 98
front/public/UEditorPlus/dialogs/formula/formula.html

@@ -1,98 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-    <title></title>
-    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
-    <script type="text/javascript" src="../internal.js?aea0c61c"></script>
-    <style type="text/css">
-        .wrapper {
-            box-sizing: border-box;
-            width: 800px;
-            height: 390px;
-            overflow: hidden;
-            position: relative;
-            border-bottom: 1px solid #d7d7d7
-        }
-
-        .editor-wrap {
-            display: flex;
-            margin: 10px;
-        }
-
-        .editor-wrap #editor {
-            width: 0;
-            flex-grow: 1;
-            border: 1px solid #CCC;
-            border-radius: 3px;
-            padding: 5px;
-            height: 100px;
-            outline: none;
-        }
-
-        .input-tip {
-            margin: 10px;
-        }
-
-        .input-tip a {
-            color: #0f0d0d;
-        }
-
-        .editor-preview {
-            background: #FFF;
-            border-radius: 3px;
-            border: 1px solid #EEE;
-            display: none;
-            margin: 10px;
-        }
-
-        .editor-preview .title {
-            padding: 5px;
-        }
-
-        .editor-preview .body {
-            padding: 5px 5px 15px 5px;
-            text-align: center;
-        }
-
-        .editor-preview .body .image {
-            max-width: 100%;
-            max-height: 100px;
-        }
-    </style>
-</head>
-<body>
-<div class="wrapper">
-
-    <div id="modeLive" style="display:none;">
-        <iframe id="liveEditor"
-                frameborder="0"
-                style="width:800px;height:390px;border: 0;outline: none;"
-        ></iframe>
-    </div>
-
-    <div id="modePlain" style="display:none;">
-        <div class="editor-wrap">
-            <textarea id="editor"></textarea>
-        </div>
-        <div class="input-tip">
-            基于 latex 语法,<a href="javascript:;" id="inputDemo">点击输入示例</a>。
-        </div>
-        <div class="editor-preview" id="preview">
-            <div class="title">预览</div>
-            <div class="body">
-                <img class="image" id="previewImage"/>
-            </div>
-        </div>
-    </div>
-
-</div>
-<script src="../../third-party/jquery-1.10.2.js?628072e7"></script>
-<script type="text/javascript" src="../../third-party/clipboard/clipboard.js?555edf0a"></script>
-<script type="text/javascript" src="formula.js?8fdd0a42"></script>
-<script type="text/javascript">
-    utils.domReady(function () {
-        Formula.init();
-    });
-</script>
-</body>
-</html>

+ 0 - 147
front/public/UEditorPlus/dialogs/formula/formula.js

@@ -1,147 +0,0 @@
-function preg_quote(str, delimiter) {
-    // Quote regular expression characters plus an optional character
-    //
-    // version: 1107.2516
-    // discuss at: http://phpjs.org/functions/preg_quote
-    // +   original by: booeyOH
-    // +   improved by: Ates Goral (http://magnetiq.com)
-    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
-    // +   bugfixed by: Onno Marsman
-    // +   improved by: Brett Zamir (http://brett-zamir.me)
-    // *     example 1: preg_quote("$40");
-    // *     returns 1: '\$40'
-    // *     example 2: preg_quote("*RRRING* Hello?");
-    // *     returns 2: '\*RRRING\* Hello\?'
-    // *     example 3: preg_quote("\\.+*?[^]$(){}=!<>|:");
-    // *     returns 3: '\\\.\+\*\?\[\^\]\$\(\)\{\}\=\!\<\>\|\:'
-    return (str + '').replace(new RegExp('[.\\\\+*?\\[\\^\\]$(){}=!<>|:\\' + (delimiter || '') + '-]', 'g'), '\\$&');
-}
-
-function loadScript(url, cb) {
-    var script;
-    script = document.createElement('script');
-    script.src = url;
-    script.onload = function () {
-        cb && cb({isNew: true})
-    };
-    document.getElementsByTagName('head')[0].appendChild(script);
-}
-
-var Formula = {
-    mode: 'plain',
-    latexeasy: null,
-    init: function () {
-        // console.log('Formula.init')
-        Formula.initMode();
-        Formula.initEvent();
-        Formula.initSubmit();
-    },
-    renderPlain: function () {
-        var $preview = $('#preview');
-        var value = $('#editor').val();
-        if (!value) {
-            $preview.hide();
-            return;
-        }
-        value = encodeURIComponent(value);
-        var formulaConfig = editor.getOpt('formulaConfig');
-        var src = formulaConfig.imageUrlTemplate.replace(/\{\}/, value);
-        $('#previewImage').attr('src', src);
-        $preview.show();
-    },
-    setValuePlain: function (value) {
-        $('#editor').val(value);
-        Formula.renderPlain();
-    },
-    setValueLive: function (value) {
-        if (!Formula.latexeasy) {
-            setTimeout(function () {
-                Formula.setValueLive(value);
-            }, 100);
-            return;
-        }
-        Formula.latexeasy.call('set.latex', {latex: value});
-    },
-    initMode: function () {
-        var formulaConfig = editor.getOpt('formulaConfig');
-        if ('live' === formulaConfig.editorMode) {
-            $('#liveEditor').attr('src', formulaConfig.editorLiveServer + '/editor');
-            $('#modeLive').show();
-            Formula.mode = 'live';
-        } else {
-            $('#modePlain').show();
-            Formula.mode = 'plain';
-        }
-        var img = editor.selection.getRange().getClosedNode();
-        if (img && img.getAttribute('data-formula-image') !== null) {
-            var value = img.getAttribute('data-formula-image');
-            if (value) {
-                Formula.setValue(decodeURIComponent(value));
-            }
-        }
-    },
-    setValue: function (value) {
-        switch (Formula.mode) {
-            case 'plain':
-                Formula.setValuePlain(value);
-                break;
-            case 'live':
-                Formula.setValueLive(value);
-                break;
-        }
-    },
-    getValue: function (cb) {
-        switch (Formula.mode) {
-            case 'plain':
-                cb($.trim($('#editor').val()));
-                break;
-            case 'live':
-                Formula.latexeasy.call('get.latex', {}, function (data) {
-                    cb(data.latex);
-                });
-                break;
-        }
-    },
-    initEvent: function () {
-        var changeTimer = null, le;
-        switch (Formula.mode) {
-            case 'plain':
-                // console.log('Formula.initEvent');
-                $('#editor').on('change keypress', function () {
-                    changeTimer && clearTimeout(changeTimer);
-                    changeTimer = setTimeout(function () {
-                        Formula.renderPlain();
-                    }, 1000);
-                });
-                $('#inputDemo').on('click', function () {
-                    $('#editor').val('f(a) = \\frac{1}{2\\pi i} \\oint\\frac{f(z)}{z-a}dz');
-                    Formula.renderPlain();
-                });
-                break;
-            case 'live':
-                var formulaConfig = editor.getOpt('formulaConfig');
-                loadScript(formulaConfig.editorLiveServer + '/vendor/LatexEasyEditor/editor/sdk.js', function () {
-                    le = new window.LatexEasy(document.getElementById('liveEditor'));
-                    le.on('ready', function () {
-                        Formula.latexeasy = le;
-                    });
-                    le.init();
-                });
-                break;
-        }
-    },
-    initSubmit: function () {
-        dialog.onclose = function (t, ok) {
-            if (!ok) {
-                return true;
-            }
-            // console.log('onclose', t, ok);
-            Formula.getValue(function (value) {
-                editor.execCommand('formula', value);
-                editor.fireEvent('saveScene');
-                dialog.close(false);
-            });
-            return false;
-        };
-    }
-};

+ 0 - 37
front/public/UEditorPlus/dialogs/help/help.css

@@ -1,37 +0,0 @@
-.wrapper {
-    width: 370px;
-    margin: 10px auto;
-    zoom: 1;
-}
-
-.tabbody {
-    height: 360px;
-}
-
-.tabbody .panel {
-    width: 100%;
-    height: 360px;
-    position: absolute;
-    background: #fff;
-}
-
-.tabbody .panel h1 {
-    font-size: 26px;
-    margin: 5px 0 0 5px;
-}
-
-.tabbody .panel p {
-    font-size: 12px;
-    margin: 5px 0 0 5px;
-}
-
-.tabbody table {
-    width: 90%;
-    line-height: 20px;
-    margin: 5px 0 0 5px;;
-}
-
-.tabbody table thead {
-    font-weight: bold;
-    line-height: 25px;
-}

+ 0 - 82
front/public/UEditorPlus/dialogs/help/help.html

@@ -1,82 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-    "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-    <title>帮助</title>
-    <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
-    <script type="text/javascript" src="../internal.js?aea0c61c"></script>
-    <link rel="stylesheet" type="text/css" href="help.css?81231bdb">
-</head>
-<body>
-<div class="wrapper" id="helptab">
-    <div id="tabHeads" class="tabhead">
-        <span class="focus" tabsrc="about"><var id="lang_input_about"></var></span>
-        <span tabsrc="shortcuts"><var id="lang_input_shortcuts"></var></span>
-    </div>
-    <div id="tabBodys" class="tabbody">
-        <div id="about" class="panel">
-            <h1>UEditor Plus</h1>
-            <p id="version"></p>
-            <p><var id="lang_input_introduction"></var></p>
-        </div>
-        <div id="shortcuts" class="panel">
-            <table>
-                <thead>
-                <tr>
-                    <td><var id="lang_Txt_shortcuts"></var></td>
-                    <td><var id="lang_Txt_func"></var></td>
-                </tr>
-                </thead>
-                <tbody>
-                <tr>
-                    <td>ctrl+b</td>
-                    <td><var id="lang_Txt_bold"></var></td>
-                </tr>
-                <tr>
-                    <td>ctrl+c</td>
-                    <td><var id="lang_Txt_copy"></var></td>
-                </tr>
-                <tr>
-                    <td>ctrl+x</td>
-                    <td><var id="lang_Txt_cut"></var></td>
-                </tr>
-                <tr>
-                    <td>ctrl+v</td>
-                    <td><var id="lang_Txt_Paste"></var></td>
-                </tr>
-                <tr>
-                    <td>ctrl+y</td>
-                    <td><var id="lang_Txt_undo"></var></td>
-                </tr>
-                <tr>
-                    <td>ctrl+z</td>
-                    <td><var id="lang_Txt_redo"></var></td>
-                </tr>
-                <tr>
-                    <td>ctrl+i</td>
-                    <td><var id="lang_Txt_italic"></var></td>
-                </tr>
-                <tr>
-                    <td>ctrl+u</td>
-                    <td><var id="lang_Txt_underline"></var></td>
-                </tr>
-                <tr>
-                    <td>ctrl+a</td>
-                    <td><var id="lang_Txt_selectAll"></var></td>
-                </tr>
-                <tr>
-                    <td>shift+enter</td>
-                    <td><var id="lang_Txt_visualEnter"></var></td>
-                </tr>
-                <tr>
-                    <td>alt+z</td>
-                    <td><var id="lang_Txt_fullscreen"></var></td>
-                </tr>
-                </tbody>
-            </table>
-        </div>
-    </div>
-</div>
-<script type="text/javascript" src="help.js?0a6823d2"></script>
-</body>
-</html>

+ 0 - 57
front/public/UEditorPlus/dialogs/help/help.js

@@ -1,57 +0,0 @@
-/**
- * Created with JetBrains PhpStorm.
- * User: xuheng
- * Date: 12-9-26
- * Time: 下午1:06
- * To change this template use File | Settings | File Templates.
- */
-/**
- * tab点击处理事件
- * @param tabHeads
- * @param tabBodys
- * @param obj
- */
-function clickHandler(tabHeads, tabBodys, obj) {
-    //head样式更改
-    for (var k = 0, len = tabHeads.length; k < len; k++) {
-        tabHeads[k].className = "";
-    }
-    obj.className = "focus";
-    //body显隐
-    var tabSrc = obj.getAttribute("tabSrc");
-    for (var j = 0, length = tabBodys.length; j < length; j++) {
-        var body = tabBodys[j],
-            id = body.getAttribute("id");
-        body.onclick = function () {
-            this.style.zoom = 1;
-        };
-        if (id != tabSrc) {
-            body.style.zIndex = 1;
-        } else {
-            body.style.zIndex = 200;
-        }
-    }
-
-}
-
-/**
- * TAB切换
- * @param tabParentId  tab的父节点ID或者对象本身
- */
-function switchTab(tabParentId) {
-    var tabElements = $G(tabParentId).children,
-        tabHeads = tabElements[0].children,
-        tabBodys = tabElements[1].children;
-
-    for (var i = 0, length = tabHeads.length; i < length; i++) {
-        var head = tabHeads[i];
-        if (head.className === "focus") clickHandler(tabHeads, tabBodys, head);
-        head.onclick = function () {
-            clickHandler(tabHeads, tabBodys, this);
-        }
-    }
-}
-
-switchTab("helptab");
-
-document.getElementById('version').innerHTML = parent.UE.version;

+ 0 - 752
front/public/UEditorPlus/dialogs/image/image.css

@@ -1,752 +0,0 @@
-@charset "utf-8";
-/* dialog样式 */
-.wrapper {
-    zoom: 1;
-    width: 630px;
-    *width: 626px;
-    height: 380px;
-    margin: 0 auto;
-    padding: 10px;
-    position: relative;
-    font-family: sans-serif;
-}
-
-/*tab样式框大小*/
-.tabhead {
-    float: left;
-}
-
-.tabbody {
-    width: 100%;
-    height: 346px;
-    position: relative;
-    clear: both;
-}
-
-.tabbody .panel {
-    position: absolute;
-    width: 0;
-    height: 0;
-    background: #fff;
-    overflow: hidden;
-    display: none;
-}
-
-.tabbody .panel.focus {
-    width: 100%;
-    height: 346px;
-    display: block;
-}
-
-/* 图片对齐方式 */
-.alignBar {
-    float: right;
-    margin-top: 5px;
-    position: relative;
-}
-
-.alignBar .algnLabel {
-    float: left;
-    height: 20px;
-    line-height: 20px;
-}
-
-.alignBar #alignIcon {
-    zoom: 1;
-    _display: inline;
-    display: inline-block;
-    position: relative;
-}
-
-.alignBar #alignIcon span {
-    float: left;
-    cursor: pointer;
-    display: block;
-    width: 19px;
-    height: 17px;
-    margin-right: 3px;
-    margin-left: 3px;
-    background-image: url(./images/alignicon.jpg);
-}
-
-.alignBar #alignIcon .none-align {
-    background-position: 0 -18px;
-}
-
-.alignBar #alignIcon .left-align {
-    background-position: -20px -18px;
-}
-
-.alignBar #alignIcon .right-align {
-    background-position: -40px -18px;
-}
-
-.alignBar #alignIcon .center-align {
-    background-position: -60px -18px;
-}
-
-.alignBar #alignIcon .none-align.focus {
-    background-position: 0 0;
-}
-
-.alignBar #alignIcon .left-align.focus {
-    background-position: -20px 0;
-}
-
-.alignBar #alignIcon .right-align.focus {
-    background-position: -40px 0;
-}
-
-.alignBar #alignIcon .center-align.focus {
-    background-position: -60px 0;
-}
-
-
-/* 远程图片样式 */
-#remote {
-    z-index: 200;
-}
-
-#remote .top {
-    width: 100%;
-    margin-top: 25px;
-}
-
-#remote .left {
-    display: block;
-    float: left;
-    width: 300px;
-    height: 10px;
-}
-
-#remote .right {
-    display: block;
-    float: right;
-    width: 300px;
-    height: 10px;
-}
-
-#remote .row {
-    margin-left: 20px;
-    clear: both;
-    height: 40px;
-}
-
-#remote .row label {
-    text-align: center;
-    width: 50px;
-    zoom: 1;
-    _display: inline;
-    display: inline-block;
-    vertical-align: middle;
-}
-
-#remote .row label.algnLabel {
-    float: left;
-
-}
-
-#remote input.text {
-    width: 150px;
-    padding: 3px 6px;
-    font-size: 14px;
-    line-height: 1.42857143;
-    color: #555;
-    background-color: #fff;
-    background-image: none;
-    border: 1px solid #ccc;
-    border-radius: 4px;
-    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
-    box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
-    -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
-    transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
-}
-
-#remote input.text:focus {
-    outline: 0;
-}
-
-#remote #url {
-    width: 400px;
-    margin-bottom: 2px;
-}
-
-#remote #imageSelect {
-    width: 100px;
-    display: inline-block;
-    background: #FFF;
-    border: 1px solid #EEE;
-    line-height: 26px;
-    text-align: center;
-    color: #333;
-    text-decoration: none;
-    border-radius: 3px;
-    vertical-align: top;
-}
-
-#remote #width,
-#remote #height {
-    width: 30px;
-    margin-left: 2px;
-    margin-right: 2px;
-    text-align: center;
-}
-
-#remote #border,
-#remote #vhSpace,
-#remote #title {
-    width: 180px;
-    margin-right: 5px;
-}
-
-#remote #lock {
-    display: inline-block;
-    vertical-align: middle;
-}
-
-#remote #lockicon {
-    zoom: 1;
-    _display: inline;
-    display: inline-block;
-    width: 20px;
-    height: 20px;
-    background: url("../../themes/default/images/lock.gif") -13px -13px no-repeat;
-    vertical-align: middle;
-}
-
-#remote #preview {
-    clear: both;
-    width: 260px;
-    height: 240px;
-    z-index: 9999;
-    margin-top: 10px;
-    background-color: #eee;
-    overflow: hidden;
-}
-
-/* 上传图片 */
-.tabbody #upload.panel {
-    width: 0;
-    height: 0;
-    overflow: hidden;
-    position: absolute !important;
-    clip: rect(1px, 1px, 1px, 1px);
-    background: #fff;
-    display: block;
-}
-
-.tabbody #upload.panel.focus {
-    width: 100%;
-    height: 346px;
-    display: block;
-    clip: auto;
-}
-
-#upload .queueList {
-    margin: 0;
-    width: 100%;
-    height: 100%;
-    position: absolute;
-    overflow: hidden;
-}
-
-#upload p {
-    margin: 0;
-}
-
-.element-invisible {
-    width: 0 !important;
-    height: 0 !important;
-    border: 0;
-    padding: 0;
-    margin: 0;
-    overflow: hidden;
-    position: absolute !important;
-    clip: rect(1px, 1px, 1px, 1px);
-}
-
-#upload .placeholder {
-    margin: 10px;
-    border: 2px dashed #e6e6e6;
-    *border: 0px dashed #e6e6e6;
-    height: 172px;
-    padding-top: 150px;
-    text-align: center;
-    background: url(./images/image.png) center 70px no-repeat;
-    color: #cccccc;
-    font-size: 18px;
-    position: relative;
-    top: 0;
-    *top: 10px;
-}
-
-#upload .placeholder .webuploader-pick {
-    font-size: 18px;
-    background: #00b7ee;
-    border-radius: 3px;
-    line-height: 44px;
-    padding: 0 30px;
-    *width: 120px;
-    color: #fff;
-    display: inline-block;
-    margin: 0 auto 20px auto;
-    cursor: pointer;
-    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
-}
-
-#upload .placeholder .webuploader-pick-hover {
-    background: #00a2d4;
-}
-
-
-#filePickerContainer {
-    text-align: center;
-}
-
-#upload .placeholder .flashTip {
-    color: #666666;
-    font-size: 12px;
-    position: absolute;
-    width: 100%;
-    text-align: center;
-    bottom: 20px;
-}
-
-#upload .placeholder .flashTip a {
-    color: #0785d1;
-    text-decoration: none;
-}
-
-#upload .placeholder .flashTip a:hover {
-    text-decoration: underline;
-}
-
-#upload .placeholder.webuploader-dnd-over {
-    border-color: #999999;
-}
-
-#upload .filelist {
-    list-style: none;
-    margin: 0;
-    padding: 0;
-    overflow-x: hidden;
-    overflow-y: auto;
-    position: relative;
-    height: 300px;
-}
-
-#upload .filelist:after {
-    content: '';
-    display: block;
-    width: 0;
-    height: 0;
-    overflow: hidden;
-    clear: both;
-    position: relative;
-}
-
-#upload .filelist li {
-    width: 113px;
-    height: 113px;
-    background: url(./images/bg.png);
-    text-align: center;
-    margin: 9px 0 0 9px;
-    *margin: 6px 0 0 6px;
-    position: relative;
-    display: block;
-    float: left;
-    overflow: hidden;
-    font-size: 12px;
-}
-
-#upload .filelist li p.log {
-    position: relative;
-    top: -45px;
-}
-
-#upload .filelist li p.title {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    overflow: hidden;
-    white-space: nowrap;
-    text-overflow: ellipsis;
-    top: 5px;
-    text-indent: 5px;
-    text-align: left;
-}
-
-#upload .filelist li p.progress {
-    position: absolute;
-    width: 100%;
-    bottom: 0;
-    left: 0;
-    height: 8px;
-    overflow: hidden;
-    z-index: 50;
-    margin: 0;
-    border-radius: 0;
-    background: none;
-    -webkit-box-shadow: 0 0 0;
-}
-
-#upload .filelist li p.progress span {
-    display: none;
-    overflow: hidden;
-    width: 0;
-    height: 100%;
-    background: #1483d8 url(./images/progress.png) repeat-x;
-
-    -webit-transition: width 200ms linear;
-    -moz-transition: width 200ms linear;
-    -o-transition: width 200ms linear;
-    -ms-transition: width 200ms linear;
-    transition: width 200ms linear;
-
-    -webkit-animation: progressmove 2s linear infinite;
-    -moz-animation: progressmove 2s linear infinite;
-    -o-animation: progressmove 2s linear infinite;
-    -ms-animation: progressmove 2s linear infinite;
-    animation: progressmove 2s linear infinite;
-
-    -webkit-transform: translateZ(0);
-}
-
-@-webkit-keyframes progressmove {
-    0% {
-        background-position: 0 0;
-    }
-    100% {
-        background-position: 17px 0;
-    }
-}
-
-@-moz-keyframes progressmove {
-    0% {
-        background-position: 0 0;
-    }
-    100% {
-        background-position: 17px 0;
-    }
-}
-
-@keyframes progressmove {
-    0% {
-        background-position: 0 0;
-    }
-    100% {
-        background-position: 17px 0;
-    }
-}
-
-#upload .filelist li p.imgWrap {
-    position: relative;
-    z-index: 2;
-    line-height: 113px;
-    vertical-align: middle;
-    overflow: hidden;
-    width: 113px;
-    height: 113px;
-
-    -webkit-transform-origin: 50% 50%;
-    -moz-transform-origin: 50% 50%;
-    -o-transform-origin: 50% 50%;
-    -ms-transform-origin: 50% 50%;
-    transform-origin: 50% 50%;
-
-    -webit-transition: 200ms ease-out;
-    -moz-transition: 200ms ease-out;
-    -o-transition: 200ms ease-out;
-    -ms-transition: 200ms ease-out;
-    transition: 200ms ease-out;
-}
-
-#upload .filelist li img {
-    width: 100%;
-}
-
-#upload .filelist li p.error {
-    background: #f43838;
-    color: #fff;
-    position: absolute;
-    bottom: 0;
-    left: 0;
-    height: 28px;
-    line-height: 28px;
-    width: 100%;
-    z-index: 100;
-    display: none;
-}
-
-#upload .filelist li .success {
-    display: block;
-    position: absolute;
-    left: 0;
-    bottom: 0;
-    height: 40px;
-    width: 100%;
-    z-index: 200;
-    background: url(./images/success.png) no-repeat right bottom;
-    background: url(./images/success.gif) no-repeat right bottom \9;
-}
-
-#upload .filelist li.filePickerBlock {
-    width: 113px;
-    height: 113px;
-    background: url(./images/image.png) no-repeat center 12px;
-    border: 1px solid #eeeeee;
-    border-radius: 0;
-}
-
-#upload .filelist li.filePickerBlock div.webuploader-pick {
-    width: 100%;
-    height: 100%;
-    margin: 0;
-    padding: 0;
-    opacity: 0;
-    background: none;
-    font-size: 0;
-}
-
-#upload .filelist div.file-panel {
-    position: absolute;
-    height: 0;
-    filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#80000000', endColorstr='#80000000') \0;
-    background: rgba(0, 0, 0, 0.5);
-    width: 100%;
-    top: 0;
-    left: 0;
-    overflow: hidden;
-    z-index: 300;
-}
-
-#upload .filelist div.file-panel span {
-    width: 24px;
-    height: 24px;
-    display: inline;
-    float: right;
-    text-indent: -9999px;
-    overflow: hidden;
-    background: url(./images/icons.png) no-repeat;
-    background: url(./images/icons.gif) no-repeat \9;
-    margin: 5px 1px 1px;
-    cursor: pointer;
-    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
-    -webkit-user-select: none;
-    -moz-user-select: none;
-    -ms-user-select: none;
-    user-select: none;
-}
-
-#upload .filelist div.file-panel span.rotateLeft {
-    display: none;
-    background-position: 0 -24px;
-}
-
-#upload .filelist div.file-panel span.rotateLeft:hover {
-    background-position: 0 0;
-}
-
-#upload .filelist div.file-panel span.rotateRight {
-    display: none;
-    background-position: -24px -24px;
-}
-
-#upload .filelist div.file-panel span.rotateRight:hover {
-    background-position: -24px 0;
-}
-
-#upload .filelist div.file-panel span.cancel {
-    background-position: -48px -24px;
-}
-
-#upload .filelist div.file-panel span.cancel:hover {
-    background-position: -48px 0;
-}
-
-#upload .statusBar {
-    height: 45px;
-    border-bottom: 1px solid #dadada;
-    margin: 0 10px;
-    padding: 0;
-    line-height: 45px;
-    vertical-align: middle;
-    position: relative;
-}
-
-#upload .statusBar .progress {
-    border: 1px solid #1483d8;
-    width: 198px;
-    background: #fff;
-    height: 18px;
-    position: absolute;
-    top: 12px;
-    display: none;
-    text-align: center;
-    line-height: 18px;
-    color: #6dbfff;
-    margin: 0 10px 0 0;
-}
-
-#upload .statusBar .progress span.percentage {
-    width: 0;
-    height: 100%;
-    left: 0;
-    top: 0;
-    background: #1483d8;
-    position: absolute;
-}
-
-#upload .statusBar .progress span.text {
-    position: relative;
-    z-index: 10;
-}
-
-#upload .statusBar .info {
-    display: inline-block;
-    font-size: 14px;
-    color: #666666;
-}
-
-#upload .statusBar .btns {
-    position: absolute;
-    top: 7px;
-    right: 0;
-    line-height: 30px;
-}
-
-#filePickerBtn {
-    display: inline-block;
-    float: left;
-}
-
-#upload .statusBar .btns .webuploader-pick,
-#upload .statusBar .btns .uploadBtn,
-#upload .statusBar .btns .uploadBtn.state-uploading,
-#upload .statusBar .btns .uploadBtn.state-paused {
-    background: #ffffff;
-    border: 1px solid #cfcfcf;
-    color: #565656;
-    padding: 0 18px;
-    display: inline-block;
-    border-radius: 3px;
-    margin-left: 10px;
-    cursor: pointer;
-    font-size: 14px;
-    float: left;
-    -webkit-user-select: none;
-    -moz-user-select: none;
-    -ms-user-select: none;
-    user-select: none;
-}
-
-#upload .statusBar .btns .webuploader-pick-hover,
-#upload .statusBar .btns .uploadBtn:hover,
-#upload .statusBar .btns .uploadBtn.state-uploading:hover,
-#upload .statusBar .btns .uploadBtn.state-paused:hover {
-    background: #f0f0f0;
-}
-
-#upload .statusBar .btns .uploadBtn,
-#upload .statusBar .btns .uploadBtn.state-paused {
-    background: #00b7ee;
-    color: #fff;
-    border-color: transparent;
-}
-
-#upload .statusBar .btns .uploadBtn:hover,
-#upload .statusBar .btns .uploadBtn.state-paused:hover {
-    background: #00a2d4;
-}
-
-#upload .statusBar .btns .uploadBtn.disabled {
-    pointer-events: none;
-    filter: alpha(opacity=60);
-    -moz-opacity: 0.6;
-    -khtml-opacity: 0.6;
-    opacity: 0.6;
-}
-
-
-/* 图片管理样式 */
-#online {
-    width: 100%;
-    height: 336px;
-    padding: 10px 0 0 0;
-}
-
-#online #imageList {
-    width: 100%;
-    height: 100%;
-    overflow-x: hidden;
-    overflow-y: auto;
-    position: relative;
-}
-
-#online ul {
-    display: block;
-    list-style: none;
-    margin: 0;
-    padding: 0;
-}
-
-#online li {
-    float: left;
-    display: block;
-    list-style: none;
-    padding: 0;
-    width: 113px;
-    height: 113px;
-    margin: 0 0 9px 9px;
-    *margin: 0 0 6px 6px;
-    background-color: #eee;
-    overflow: hidden;
-    cursor: pointer;
-    position: relative;
-}
-
-#online li.clearFloat {
-    float: none;
-    clear: both;
-    display: block;
-    width: 0;
-    height: 0;
-    margin: 0;
-    padding: 0;
-}
-
-#online li img {
-    cursor: pointer;
-}
-
-#online li .icon {
-    cursor: pointer;
-    width: 113px;
-    height: 113px;
-    position: absolute;
-    top: 0;
-    left: 0;
-    z-index: 2;
-    border: 0;
-    background-repeat: no-repeat;
-}
-
-#online li .icon:hover {
-    width: 107px;
-    height: 107px;
-    border: 3px solid #1094fa;
-}
-
-#online li.selected .icon {
-    background-image: url(images/success.png);
-    background-image: url(images/success.gif) \9;
-    background-position: 75px 75px;
-}
-
-#online li.selected .icon:hover {
-    width: 107px;
-    height: 107px;
-    border: 3px solid #1094fa;
-    background-position: 72px 72px;
-}

+ 0 - 125
front/public/UEditorPlus/dialogs/image/image.html

@@ -1,125 +0,0 @@
-<!doctype html>
-<html>
-<head>
-    <meta charset="UTF-8">
-    <title>ueditor图片对话框</title>
-    <script type="text/javascript" src="../internal.js?aea0c61c"></script>
-
-    <!-- jquery -->
-    <script type="text/javascript" src="../../third-party/jquery-1.10.2.js?628072e7"></script>
-
-    <!-- webuploader -->
-    <script src="../../third-party/webuploader/webuploader.js?f37088cc"></script>
-    <link rel="stylesheet" type="text/css" href="../../third-party/webuploader/webuploader.css?0057c5c7">
-
-    <!-- image dialog -->
-    <link rel="stylesheet" href="image.css?fc461d7b" type="text/css"/>
-</head>
-<body>
-
-<div class="wrapper">
-    <div id="tabhead" class="tabhead">
-        <span class="tab focus" data-content-id="remote"><var id="lang_tab_remote"></var></span>
-        <span style="display:none;" class="tab" data-content-id="upload"><var id="lang_tab_upload"></var></span>
-        <span style="display:none;" class="tab" data-content-id="online"><var id="lang_tab_online"></var></span>
-    </div>
-    <div class="alignBar">
-        <label class="algnLabel"><var id="lang_input_align"></var></label>
-        <span id="alignIcon">
-                        <span id="noneAlign" class="none-align focus" data-align="none"></span>
-                        <span id="leftAlign" class="left-align" data-align="left"></span>
-                        <span id="rightAlign" class="right-align" data-align="right"></span>
-                        <span id="centerAlign" class="center-align" data-align="center"></span>
-                    </span>
-        <input id="align" name="align" type="hidden" value="none"/>
-    </div>
-    <div id="tabbody" class="tabbody">
-
-        <!-- 远程图片 -->
-        <div id="remote" class="panel">
-            <div class="top">
-                <div class="row">
-                    <label for="url"><var id="lang_input_url"></var></label>
-                    <span><input class="text" id="url" type="text"/></span>
-                    <a href="javascript:;" id="imageSelect" style="display:none;">选择图片</a>
-                </div>
-            </div>
-            <div class="left">
-                <div class="row">
-                    <label><var id="lang_input_size"></var></label>
-                    <span><var id="lang_input_width">&nbsp;&nbsp;</var><input class="text" type="text"
-                                                                              id="width"/>px </span>
-                    <span><var id="lang_input_height">&nbsp;&nbsp;</var><input class="text" type="text" id="height"/>px </span>
-                    <span><input id="lock" type="checkbox" disabled="disabled"><span id="lockicon"></span></span>
-                </div>
-                <div class="row">
-                    <label><var id="lang_input_border"></var></label>
-                    <span><input class="text" type="text" id="border"/>px </span>
-                </div>
-                <div class="row">
-                    <label><var id="lang_input_vhspace"></var></label>
-                    <span><input class="text" type="text" id="vhSpace"/>px </span>
-                </div>
-                <div class="row">
-                    <label><var id="lang_input_title"></var></label>
-                    <span><input class="text" type="text" id="title"/></span>
-                </div>
-            </div>
-            <div class="right">
-                <div id="preview"></div>
-            </div>
-        </div>
-
-        <!-- 上传图片 -->
-        <div id="upload" class="panel focus">
-            <div id="queueList" class="queueList">
-                <div class="statusBar element-invisible">
-                    <div class="progress">
-                        <span class="text">0%</span>
-                        <span class="percentage"></span>
-                    </div>
-                    <div class="info"></div>
-                    <div class="btns">
-                        <div id="filePickerBtn"></div>
-                        <div class="uploadBtn"><var id="lang_start_upload"></var></div>
-                    </div>
-                </div>
-                <div id="dndArea" class="placeholder">
-                    <div class="filePickerContainer">
-                        <div id="filePickerReady"></div>
-                    </div>
-                </div>
-                <ul class="filelist element-invisible">
-                    <li id="filePickerBlock" class="filePickerBlock"></li>
-                </ul>
-            </div>
-        </div>
-
-        <!-- 在线图片 -->
-        <div id="online" class="panel">
-            <div id="imageList"><var id="lang_imgLoading"></var></div>
-        </div>
-
-        <!-- 搜索图片 -->
-        <div id="search" class="panel">
-            <div class="searchBar">
-                <input id="searchTxt" class="searchTxt text" type="text"/>
-                <select id="searchType" class="searchType">
-                    <option value="&s=4&z=0"></option>
-                    <option value="&s=1&z=19"></option>
-                    <option value="&s=2&z=0"></option>
-                    <option value="&s=3&z=0"></option>
-                </select>
-                <input id="searchReset" type="button"/>
-                <input id="searchBtn" type="button"/>
-            </div>
-            <div id="searchList" class="searchList">
-                <ul id="searchListUl"></ul>
-            </div>
-        </div>
-
-    </div>
-</div>
-<script type="text/javascript" src="image.js?a72fb84c"></script>
-</body>
-</html>

+ 0 - 1028
front/public/UEditorPlus/dialogs/image/image.js

@@ -1,1028 +0,0 @@
-/**
- * User: Jinqn
- * Date: 14-04-08
- * Time: 下午16:34
- * 上传图片对话框逻辑代码,包括tab: 远程图片/上传图片/在线图片/搜索图片
- */
-(function () {
-
-    var remoteImage,
-        uploadImage,
-        onlineImage;
-    var editorOpt = {};
-
-    window.onload = function () {
-        editorOpt = editor.getOpt('imageConfig');
-        initTabs();
-        initAlign();
-        initButtons();
-    };
-
-    /* 初始化tab标签 */
-    function initTabs() {
-        var tabs = $G('tabhead').children;
-        for (var i = 0; i < tabs.length; i++) {
-            domUtils.on(tabs[i], "click", function (e) {
-                var target = e.target || e.srcElement;
-                setTabFocus(target.getAttribute('data-content-id'));
-            });
-        }
-        if (!editorOpt.disableUpload) {
-            $G('tabhead').querySelector('[data-content-id="upload"]').style.display = 'inline-block';
-        }
-        if (!editorOpt.disableOnline) {
-            $G('tabhead').querySelector('[data-content-id="online"]').style.display = 'inline-block';
-        }
-        if (!!editorOpt.selectCallback) {
-            $G('imageSelect').style.display = 'inline-block';
-            domUtils.on($G('imageSelect'), "click", function (e) {
-                editorOpt.selectCallback(editor, function (info) {
-                    if (info) {
-                        $G('url').value = info.path;
-                        $G('title').value = info.name;
-                        var img = new Image();
-                        img.onload = function () {
-                            $G('width').value = img.width;
-                            $G('height').value = img.height;
-                            remoteImage.setPreview();
-                        };
-                        img.onerror = function () {
-                            remoteImage.setPreview();
-                        };
-                        img.src = info.path;
-                    }
-                });
-            });
-        }
-        var img = editor.selection.getRange().getClosedNode();
-        if (img && img.tagName && img.tagName.toLowerCase() == 'img') {
-            setTabFocus('remote');
-        } else {
-            setTabFocus('remote');
-        }
-    }
-
-    /* 初始化tabbody */
-    function setTabFocus(id) {
-        if (!id) return;
-        var i, bodyId, tabs = $G('tabhead').children;
-        for (i = 0; i < tabs.length; i++) {
-            bodyId = tabs[i].getAttribute('data-content-id');
-            if (bodyId == id) {
-                domUtils.addClass(tabs[i], 'focus');
-                domUtils.addClass($G(bodyId), 'focus');
-            } else {
-                domUtils.removeClasses(tabs[i], 'focus');
-                domUtils.removeClasses($G(bodyId), 'focus');
-            }
-        }
-        switch (id) {
-            case 'remote':
-                remoteImage = remoteImage || new RemoteImage();
-                break;
-            case 'upload':
-                setAlign(editor.getOpt('imageInsertAlign'));
-                uploadImage = uploadImage || new UploadImage('queueList');
-                break;
-            case 'online':
-                setAlign(editor.getOpt('imageManagerInsertAlign'));
-                onlineImage = onlineImage || new OnlineImage('imageList');
-                onlineImage.reset();
-                break;
-        }
-    }
-
-    /* 初始化onok事件 */
-    function initButtons() {
-
-        dialog.onok = function () {
-            var remote = false, list = [], id, tabs = $G('tabhead').children;
-            for (var i = 0; i < tabs.length; i++) {
-                if (domUtils.hasClass(tabs[i], 'focus')) {
-                    id = tabs[i].getAttribute('data-content-id');
-                    break;
-                }
-            }
-
-            switch (id) {
-                case 'remote':
-                    list = remoteImage.getInsertList();
-                    break;
-                case 'upload':
-                    list = uploadImage.getInsertList();
-                    var count = uploadImage.getQueueCount();
-                    if (count) {
-                        $('.info', '#queueList').html('<span style="color:red;">' + '还有2个未上传文件'.replace(/[\d]/, count) + '</span>');
-                        return false;
-                    }
-                    break;
-                case 'online':
-                    list = onlineImage.getInsertList();
-                    break;
-            }
-
-            if (list) {
-                editor.execCommand('insertimage', list);
-                remote && editor.fireEvent("catchRemoteImage");
-            }
-        };
-    }
-
-
-    /* 初始化对其方式的点击事件 */
-    function initAlign() {
-        /* 点击align图标 */
-        domUtils.on($G("alignIcon"), 'click', function (e) {
-            var target = e.target || e.srcElement;
-            if (target.className && target.className.indexOf('-align') != -1) {
-                setAlign(target.getAttribute('data-align'));
-            }
-        });
-    }
-
-    /* 设置对齐方式 */
-    function setAlign(align) {
-        align = align || 'none';
-        var aligns = $G("alignIcon").children;
-        for (i = 0; i < aligns.length; i++) {
-            if (aligns[i].getAttribute('data-align') == align) {
-                domUtils.addClass(aligns[i], 'focus');
-                $G("align").value = aligns[i].getAttribute('data-align');
-            } else {
-                domUtils.removeClasses(aligns[i], 'focus');
-            }
-        }
-    }
-
-    /* 获取对齐方式 */
-    function getAlign() {
-        var align = $G("align").value || 'none';
-        return align == 'none' ? '' : align;
-    }
-
-
-    /* 在线图片 */
-    function RemoteImage(target) {
-        this.container = utils.isString(target) ? document.getElementById(target) : target;
-        this.init();
-    }
-
-    RemoteImage.prototype = {
-        init: function () {
-            this.initContainer();
-            this.initEvents();
-        },
-        initContainer: function () {
-            this.dom = {
-                'url': $G('url'),
-                'width': $G('width'),
-                'height': $G('height'),
-                'border': $G('border'),
-                'vhSpace': $G('vhSpace'),
-                'title': $G('title'),
-                'align': $G('align')
-            };
-            var img = editor.selection.getRange().getClosedNode();
-            if (img) {
-                this.setImage(img);
-            }
-        },
-        initEvents: function () {
-            var _this = this,
-                locker = $G('lock');
-
-            /* 改变url */
-            domUtils.on($G("url"), 'keyup', updatePreview);
-            domUtils.on($G("border"), 'keyup', updatePreview);
-            domUtils.on($G("title"), 'keyup', updatePreview);
-
-            domUtils.on($G("width"), 'keyup', function () {
-                if (locker.checked) {
-                    var proportion = locker.getAttribute('data-proportion');
-                    $G('height').value = Math.round(this.value / proportion);
-                } else {
-                    _this.updateLocker();
-                }
-                updatePreview();
-            });
-            domUtils.on($G("height"), 'keyup', function () {
-                if (locker.checked) {
-                    var proportion = locker.getAttribute('data-proportion');
-                    $G('width').value = Math.round(this.value * proportion);
-                } else {
-                    _this.updateLocker();
-                }
-                updatePreview();
-            });
-            domUtils.on($G("lock"), 'change', function () {
-                var proportion = parseInt($G("width").value) / parseInt($G("height").value);
-                locker.setAttribute('data-proportion', proportion);
-            });
-
-            function updatePreview() {
-                _this.setPreview();
-            }
-        },
-        updateLocker: function () {
-            var width = $G('width').value,
-                height = $G('height').value,
-                locker = $G('lock');
-            if (width && height && width == parseInt(width) && height == parseInt(height)) {
-                locker.disabled = false;
-                locker.title = '';
-            } else {
-                locker.checked = false;
-                locker.disabled = 'disabled';
-                locker.title = lang.remoteLockError;
-            }
-        },
-        setImage: function (img) {
-            /* 不是正常的图片 */
-            if (!img.tagName || img.tagName.toLowerCase() != 'img' && !img.getAttribute("src") || !img.src) return;
-
-            var wordImgFlag = img.getAttribute("data-word-image"),
-                src = wordImgFlag ? wordImgFlag.replace("&amp;", "&") : (img.getAttribute('_src') || img.getAttribute("src", 2).replace("&amp;", "&")),
-                align = editor.queryCommandValue("imageFloat");
-
-            /* 防止onchange事件循环调用 */
-            if (src !== $G("url").value) $G("url").value = src;
-            if (src) {
-                /* 设置表单内容 */
-                $G("width").value = img.width || '';
-                $G("height").value = img.height || '';
-                $G("border").value = img.getAttribute("border") || '0';
-                $G("vhSpace").value = img.getAttribute("vspace") || '0';
-                $G("title").value = img.title || img.alt || '';
-                setAlign(align);
-                this.setPreview();
-                this.updateLocker();
-            }
-        },
-        getData: function () {
-            var data = {};
-            for (var k in this.dom) {
-                data[k] = this.dom[k].value;
-            }
-            return data;
-        },
-        setPreview: function () {
-            var url = $G('url').value,
-                ow = $G('width').value,
-                oh = $G('height').value,
-                border = $G('border').value,
-                title = $G('title').value,
-                preview = $G('preview'),
-                width,
-                height;
-
-            width = ((!ow || !oh) ? preview.offsetWidth : Math.min(ow, preview.offsetWidth));
-            width = width + (border * 2) > preview.offsetWidth ? width : (preview.offsetWidth - (border * 2));
-            height = (!ow || !oh) ? '' : width * oh / ow;
-
-            if (url) {
-                preview.innerHTML = '<img src="' + url + '" width="' + width + '" height="' + height + '" border="' + border + 'px solid #000" title="' + title + '" />';
-            }
-        },
-        getInsertList: function () {
-            var data = this.getData();
-            if (data['url']) {
-                var img = {
-                    src: data['url'],
-                    _src: data['url'],
-                }
-                img._propertyDelete = []
-                img.style = []
-                if (data['width']) {
-                    img.width = data['width'];
-                    img.style.push('width:' + data['width'] + 'px');
-                } else {
-                    img._propertyDelete.push('width');
-                }
-                if (data['height']) {
-                    img.height = data['height'];
-                    img.style.push('height:' + data['height'] + 'px');
-                } else {
-                    img._propertyDelete.push('height');
-                }
-                if (data['border']) {
-                    img.border = data['border'];
-                } else {
-                    img._propertyDelete.push('border');
-                }
-                if (data['align']) {
-                    img.floatStyle = data['align'];
-                } else {
-                    img._propertyDelete.push('floatStyle');
-                }
-                if (data['vhSpace']) {
-                    img.vspace = data['vhSpace'];
-                } else {
-                    img._propertyDelete.push('vspace');
-                }
-                if (data['title']) {
-                    img.alt = data['title'];
-                } else {
-                    img._propertyDelete.push('alt');
-                }
-                if (img.style.length > 0) {
-                    img.style = img.style.join(';');
-                } else {
-                    img._propertyDelete.push('style');
-                }
-                return [img];
-            } else {
-                return [];
-            }
-        }
-    };
-
-
-    /* 上传图片 */
-    function UploadImage(target) {
-        this.$wrap = target.constructor == String ? $('#' + target) : $(target);
-        this.init();
-    }
-
-    UploadImage.prototype = {
-        init: function () {
-            this.imageList = [];
-            this.initContainer();
-            this.initUploader();
-        },
-        initContainer: function () {
-            this.$queue = this.$wrap.find('.filelist');
-        },
-        /* 初始化容器 */
-        initUploader: function () {
-            var _this = this,
-                $ = jQuery,    // just in case. Make sure it's not an other libaray.
-                $wrap = _this.$wrap,
-                // 图片容器
-                $queue = $wrap.find('.filelist'),
-                // 状态栏,包括进度和控制按钮
-                $statusBar = $wrap.find('.statusBar'),
-                // 文件总体选择信息。
-                $info = $statusBar.find('.info'),
-                // 上传按钮
-                $upload = $wrap.find('.uploadBtn'),
-                // 上传按钮
-                $filePickerBtn = $wrap.find('.filePickerBtn'),
-                // 上传按钮
-                $filePickerBlock = $wrap.find('.filePickerBlock'),
-                // 没选择文件之前的内容。
-                $placeHolder = $wrap.find('.placeholder'),
-                // 总体进度条
-                $progress = $statusBar.find('.progress').hide(),
-                // 添加的文件数量
-                fileCount = 0,
-                // 添加的文件总大小
-                fileSize = 0,
-                // 优化retina, 在retina下这个值是2
-                ratio = window.devicePixelRatio || 1,
-                // 缩略图大小
-                thumbnailWidth = 113 * ratio,
-                thumbnailHeight = 113 * ratio,
-                // 可能有pedding, ready, uploading, confirm, done.
-                state = '',
-                // 所有文件的进度信息,key为file id
-                percentages = {},
-                supportTransition = (function () {
-                    var s = document.createElement('p').style,
-                        r = 'transition' in s ||
-                            'WebkitTransition' in s ||
-                            'MozTransition' in s ||
-                            'msTransition' in s ||
-                            'OTransition' in s;
-                    s = null;
-                    return r;
-                })(),
-                // WebUploader实例
-                uploader,
-                actionUrl = editor.getActionUrl(editor.getOpt('imageActionName')),
-                acceptExtensions = (editor.getOpt('imageAllowFiles') || []).join('').replace(/\./g, ',').replace(/^[,]/, ''),
-                imageMaxSize = editor.getOpt('imageMaxSize'),
-                imageCompressBorder = editor.getOpt('imageCompressBorder');
-
-            if (!WebUploader.Uploader.support()) {
-                $('#filePickerReady').after($('<div>').html(lang.errorNotSupport)).hide();
-                return;
-            } else if (!editor.getOpt('imageActionName')) {
-                $('#filePickerReady').after($('<div>').html(lang.errorLoadConfig)).hide();
-                return;
-            }
-
-            uploader = _this.uploader = WebUploader.create({
-                pick: {
-                    id: '#filePickerReady',
-                    label: lang.uploadSelectFile
-                },
-                accept: {
-                    title: 'Images',
-                    extensions: acceptExtensions,
-                    mimeTypes: 'image/*'
-                },
-                swf: '../../third-party/webuploader/Uploader.swf',
-                server: actionUrl,
-                fileVal: editor.getOpt('imageFieldName'),
-                duplicate: true,
-                fileSingleSizeLimit: imageMaxSize,    // 默认 2 M
-                threads: 1,
-                headers: editor.getOpt('serverHeaders') || {},
-                compress: editor.getOpt('imageCompressEnable') ? {
-                    enable: editor.getOpt('imageCompressEnable'),
-                    maxWidthOrHeight: imageCompressBorder,
-                    maxSize: imageMaxSize,
-                } : false
-            });
-            uploader.addButton({
-                id: '#filePickerBlock'
-            });
-            uploader.addButton({
-                id: '#filePickerBtn',
-                label: lang.uploadAddFile
-            });
-
-            setState('pedding');
-
-            // 当有文件添加进来时执行,负责view的创建
-            function addFile(file) {
-                var $li = $('<li id="' + file.id + '">' +
-                    '<p class="title">' + file.name + '</p>' +
-                    '<p class="imgWrap"></p>' +
-                    '<p class="progress"><span></span></p>' +
-                    '</li>'),
-
-                    $btns = $('<div class="file-panel">' +
-                        '<span class="cancel">' + lang.uploadDelete + '</span>' +
-                        '<span class="rotateRight">' + lang.uploadTurnRight + '</span>' +
-                        '<span class="rotateLeft">' + lang.uploadTurnLeft + '</span></div>').appendTo($li),
-                    $prgress = $li.find('p.progress span'),
-                    $wrap = $li.find('p.imgWrap'),
-                    $info = $('<p class="error"></p>').hide().appendTo($li),
-
-                    showError = function (code) {
-                        switch (code) {
-                            case 'exceed_size':
-                                text = lang.errorExceedSize;
-                                break;
-                            case 'interrupt':
-                                text = lang.errorInterrupt;
-                                break;
-                            case 'http':
-                                text = lang.errorHttp;
-                                break;
-                            case 'not_allow_type':
-                                text = lang.errorFileType;
-                                break;
-                            default:
-                                text = lang.errorUploadRetry;
-                                break;
-                        }
-                        $info.text(text).show();
-                    };
-
-                if (file.getStatus() === 'invalid') {
-                    showError(file.statusText);
-                } else {
-                    $wrap.text(lang.uploadPreview);
-                    if (browser.ie && browser.version <= 7) {
-                        $wrap.text(lang.uploadNoPreview);
-                    } else {
-                        uploader.makeThumb(file, function (error, src) {
-                            if (error || !src) {
-                                $wrap.text(lang.uploadNoPreview);
-                            } else {
-                                var $img = $('<img src="' + src + '">');
-                                $wrap.empty().append($img);
-                                $img.on('error', function () {
-                                    $wrap.text(lang.uploadNoPreview);
-                                });
-                            }
-                        }, thumbnailWidth, thumbnailHeight);
-                    }
-                    percentages[file.id] = [file.size, 0];
-                    file.rotation = 0;
-
-                    /* 检查文件格式 */
-                    if (!file.ext || acceptExtensions.indexOf(file.ext.toLowerCase()) == -1) {
-                        showError('not_allow_type');
-                        uploader.removeFile(file);
-                    }
-                }
-
-                file.on('statuschange', function (cur, prev) {
-                    if (prev === 'progress') {
-                        $prgress.hide().width(0);
-                    } else if (prev === 'queued') {
-                        $li.off('mouseenter mouseleave');
-                        $btns.remove();
-                    }
-                    // 成功
-                    if (cur === 'error' || cur === 'invalid') {
-                        showError(file.statusText);
-                        percentages[file.id][1] = 1;
-                    } else if (cur === 'interrupt') {
-                        showError('interrupt');
-                    } else if (cur === 'queued') {
-                        percentages[file.id][1] = 0;
-                    } else if (cur === 'progress') {
-                        $info.hide();
-                        $prgress.css('display', 'block');
-                    } else if (cur === 'complete') {
-                    }
-
-                    $li.removeClass('state-' + prev).addClass('state-' + cur);
-                });
-
-                $li.on('mouseenter', function () {
-                    $btns.stop().animate({height: 30});
-                });
-                $li.on('mouseleave', function () {
-                    $btns.stop().animate({height: 0});
-                });
-
-                $btns.on('click', 'span', function () {
-                    var index = $(this).index(),
-                        deg;
-
-                    switch (index) {
-                        case 0:
-                            uploader.removeFile(file);
-                            return;
-                        case 1:
-                            file.rotation += 90;
-                            break;
-                        case 2:
-                            file.rotation -= 90;
-                            break;
-                    }
-
-                    if (supportTransition) {
-                        deg = 'rotate(' + file.rotation + 'deg)';
-                        $wrap.css({
-                            '-webkit-transform': deg,
-                            '-mos-transform': deg,
-                            '-o-transform': deg,
-                            'transform': deg
-                        });
-                    } else {
-                        $wrap.css('filter', 'progid:DXImageTransform.Microsoft.BasicImage(rotation=' + (~~((file.rotation / 90) % 4 + 4) % 4) + ')');
-                    }
-
-                });
-
-                $li.insertBefore($filePickerBlock);
-            }
-
-            // 负责view的销毁
-            function removeFile(file) {
-                var $li = $('#' + file.id);
-                delete percentages[file.id];
-                updateTotalProgress();
-                $li.off().find('.file-panel').off().end().remove();
-            }
-
-            function updateTotalProgress() {
-                var loaded = 0,
-                    total = 0,
-                    spans = $progress.children(),
-                    percent;
-
-                $.each(percentages, function (k, v) {
-                    total += v[0];
-                    loaded += v[0] * v[1];
-                });
-
-                percent = total ? loaded / total : 0;
-
-                spans.eq(0).text(Math.round(percent * 100) + '%');
-                spans.eq(1).css('width', Math.round(percent * 100) + '%');
-                updateStatus();
-            }
-
-            function setState(val, files) {
-
-                if (val !== state) {
-
-                    var stats = uploader.getStats();
-
-                    $upload.removeClass('state-' + state);
-                    $upload.addClass('state-' + val);
-
-                    switch (val) {
-
-                        /* 未选择文件 */
-                        case 'pedding':
-                            $queue.addClass('element-invisible');
-                            $statusBar.addClass('element-invisible');
-                            $placeHolder.removeClass('element-invisible');
-                            $progress.hide();
-                            $info.hide();
-                            uploader.refresh();
-                            break;
-
-                        /* 可以开始上传 */
-                        case 'ready':
-                            $placeHolder.addClass('element-invisible');
-                            $queue.removeClass('element-invisible');
-                            $statusBar.removeClass('element-invisible');
-                            $progress.hide();
-                            $info.show();
-                            $upload.text(lang.uploadStart);
-                            uploader.refresh();
-                            break;
-
-                        /* 上传中 */
-                        case 'uploading':
-                            $progress.show();
-                            $info.hide();
-                            $upload.text(lang.uploadPause);
-                            break;
-
-                        /* 暂停上传 */
-                        case 'paused':
-                            $progress.show();
-                            $info.hide();
-                            $upload.text(lang.uploadContinue);
-                            break;
-
-                        case 'confirm':
-                            $progress.show();
-                            $info.hide();
-                            $upload.text(lang.uploadStart);
-
-                            stats = uploader.getStats();
-                            if (stats.successNum && !stats.uploadFailNum) {
-                                setState('finish');
-                                return;
-                            }
-                            break;
-
-                        case 'finish':
-                            $progress.hide();
-                            $info.show();
-                            if (stats.uploadFailNum) {
-                                $upload.text(lang.uploadRetry);
-                            } else {
-                                $upload.text(lang.uploadStart);
-                            }
-                            break;
-                    }
-
-                    state = val;
-                    updateStatus();
-
-                }
-
-                if (!_this.getQueueCount()) {
-                    $upload.addClass('disabled')
-                } else {
-                    $upload.removeClass('disabled')
-                }
-
-            }
-
-            function updateStatus() {
-                var text = '', stats;
-
-                if (state === 'ready') {
-                    text = lang.updateStatusReady.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize));
-                } else if (state === 'confirm') {
-                    stats = uploader.getStats();
-                    if (stats.uploadFailNum) {
-                        text = lang.updateStatusConfirm.replace('_', stats.successNum).replace('_', stats.successNum);
-                    }
-                } else {
-                    stats = uploader.getStats();
-                    text = lang.updateStatusFinish.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize)).replace('_', stats.successNum);
-
-                    if (stats.uploadFailNum) {
-                        text += lang.updateStatusError.replace('_', stats.uploadFailNum);
-                    }
-                }
-
-                $info.html(text);
-            }
-
-            uploader.on('fileQueued', function (file) {
-                fileCount++;
-                fileSize += file.size;
-
-                if (fileCount === 1) {
-                    $placeHolder.addClass('element-invisible');
-                    $statusBar.show();
-                }
-
-                addFile(file);
-            });
-
-            uploader.on('fileDequeued', function (file) {
-                if (file.ext && acceptExtensions.indexOf(file.ext.toLowerCase()) != -1 && file.size <= imageMaxSize) {
-                    fileCount--;
-                    fileSize -= file.size;
-                }
-
-                removeFile(file);
-                updateTotalProgress();
-            });
-
-            uploader.on('filesQueued', function (file) {
-                if (!uploader.isInProgress() && (state == 'pedding' || state == 'finish' || state == 'confirm' || state == 'ready')) {
-                    setState('ready');
-                }
-                updateTotalProgress();
-            });
-
-            uploader.on('all', function (type, files) {
-                switch (type) {
-                    case 'uploadFinished':
-                        setState('confirm', files);
-                        break;
-                    case 'startUpload':
-                        /* 添加额外的GET参数 */
-                        var params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '',
-                            url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?' : '&') + 'encode=utf-8&' + params);
-                        uploader.option('server', url);
-                        setState('uploading', files);
-                        break;
-                    case 'stopUpload':
-                        setState('paused', files);
-                        break;
-                }
-            });
-
-            uploader.on('uploadBeforeSend', function (file, data, header) {
-                //这里可以通过data对象添加POST参数
-                if (actionUrl.toLowerCase().indexOf('jsp') != -1) {
-                    header['X-Requested-With'] = 'XMLHttpRequest';
-                }
-            });
-
-            uploader.on('uploadProgress', function (file, percentage) {
-                var $li = $('#' + file.id),
-                    $percent = $li.find('.progress span');
-
-                $percent.css('width', percentage * 100 + '%');
-                percentages[file.id][1] = percentage;
-                updateTotalProgress();
-            });
-
-            uploader.on('uploadSuccess', function (file, ret) {
-                var $file = $('#' + file.id);
-                try {
-                    var responseText = (ret._raw || ret),
-                        json = utils.str2json(responseText);
-                    if (json.state == 'SUCCESS') {
-                        _this.imageList.push(json);
-                        $file.append('<span class="success"></span>');
-                        // 触发上传图片事件
-                        editor.fireEvent("uploadsuccess", {
-                            res: json,
-                            type: 'image'
-                        });
-                    } else {
-                        $file.find('.error').text(json.state).show();
-                    }
-                } catch (e) {
-                    $file.find('.error').text(lang.errorServerUpload).show();
-                }
-            });
-
-            uploader.on('uploadError', function (file, code) {
-            });
-            uploader.on('error', function (code, file) {
-                if (code == 'Q_TYPE_DENIED' || code == 'F_EXCEED_SIZE') {
-                    addFile(file);
-                }
-            });
-            uploader.on('uploadComplete', function (file, ret) {
-            });
-
-            $upload.on('click', function () {
-                if ($(this).hasClass('disabled')) {
-                    return false;
-                }
-
-                if (state === 'ready') {
-                    uploader.upload();
-                } else if (state === 'paused') {
-                    uploader.upload();
-                } else if (state === 'uploading') {
-                    uploader.stop();
-                }
-            });
-
-            $upload.addClass('state-' + state);
-            updateTotalProgress();
-        },
-        getQueueCount: function () {
-            var file, i, status, readyFile = 0, files = this.uploader.getFiles();
-            for (i = 0; file = files[i++];) {
-                status = file.getStatus();
-                if (status == 'queued' || status == 'uploading' || status == 'progress') readyFile++;
-            }
-            return readyFile;
-        },
-        destroy: function () {
-            this.$wrap.remove();
-        },
-        getInsertList: function () {
-            var i, data, list = [],
-                align = getAlign(),
-                prefix = editor.getOpt('imageUrlPrefix');
-            for (i = 0; i < this.imageList.length; i++) {
-                data = this.imageList[i];
-                list.push({
-                    src: prefix + data.url,
-                    _src: prefix + data.url,
-                    alt: data.original,
-                    floatStyle: align
-                });
-            }
-            return list;
-        }
-    };
-
-
-    /* 在线图片 */
-    function OnlineImage(target) {
-        this.container = utils.isString(target) ? document.getElementById(target) : target;
-        this.init();
-    }
-
-    OnlineImage.prototype = {
-        init: function () {
-            this.reset();
-            this.initEvents();
-        },
-        /* 初始化容器 */
-        initContainer: function () {
-            this.container.innerHTML = '';
-            this.list = document.createElement('ul');
-            this.clearFloat = document.createElement('li');
-
-            domUtils.addClass(this.list, 'list');
-            domUtils.addClass(this.clearFloat, 'clearFloat');
-
-            this.list.appendChild(this.clearFloat);
-            this.container.appendChild(this.list);
-        },
-        /* 初始化滚动事件,滚动到地步自动拉取数据 */
-        initEvents: function () {
-            var _this = this;
-
-            /* 滚动拉取图片 */
-            domUtils.on($G('imageList'), 'scroll', function (e) {
-                var panel = this;
-                if (panel.scrollHeight - (panel.offsetHeight + panel.scrollTop) < 10) {
-                    _this.getImageData();
-                }
-            });
-            /* 选中图片 */
-            domUtils.on(this.container, 'click', function (e) {
-                var target = e.target || e.srcElement,
-                    li = target.parentNode;
-
-                if (li.tagName.toLowerCase() == 'li') {
-                    if (domUtils.hasClass(li, 'selected')) {
-                        domUtils.removeClasses(li, 'selected');
-                    } else {
-                        domUtils.addClass(li, 'selected');
-                    }
-                }
-            });
-        },
-        /* 初始化第一次的数据 */
-        initData: function () {
-
-            /* 拉取数据需要使用的值 */
-            this.state = 0;
-            this.listSize = editor.getOpt('imageManagerListSize');
-            this.listIndex = 0;
-            this.listEnd = false;
-
-            /* 第一次拉取数据 */
-            this.getImageData();
-        },
-        /* 重置界面 */
-        reset: function () {
-            this.initContainer();
-            this.initData();
-        },
-        /* 向后台拉取图片列表数据 */
-        getImageData: function () {
-            var _this = this;
-
-            if (!_this.listEnd && !this.isLoadingData) {
-                this.isLoadingData = true;
-                var url = editor.getActionUrl(editor.getOpt('imageManagerActionName')),
-                    isJsonp = utils.isCrossDomainUrl(url);
-                ajax.request(url, {
-                    'timeout': 100000,
-                    'dataType': isJsonp ? 'jsonp' : '',
-                    'headers': editor.options.serverHeaders || {},
-                    'data': utils.extend({
-                        start: this.listIndex,
-                        size: this.listSize
-                    }, editor.queryCommandValue('serverparam')),
-                    'method': 'get',
-                    'onsuccess': function (r) {
-                        try {
-                            var json = isJsonp ? r : eval('(' + r.responseText + ')');
-                            if (json.state === 'SUCCESS') {
-                                _this.pushData(json.list);
-                                _this.listIndex = parseInt(json.start) + parseInt(json.list.length);
-                                if (_this.listIndex >= json.total) {
-                                    _this.listEnd = true;
-                                }
-                                _this.isLoadingData = false;
-                            }
-                        } catch (e) {
-                            if (r.responseText.indexOf('ue_separate_ue') != -1) {
-                                var list = r.responseText.split(r.responseText);
-                                _this.pushData(list);
-                                _this.listIndex = parseInt(list.length);
-                                _this.listEnd = true;
-                                _this.isLoadingData = false;
-                            }
-                        }
-                    },
-                    'onerror': function () {
-                        _this.isLoadingData = false;
-                    }
-                });
-            }
-        },
-        /* 添加图片到列表界面上 */
-        pushData: function (list) {
-            var i, item, img, icon, _this = this,
-                urlPrefix = editor.getOpt('imageManagerUrlPrefix');
-            for (i = 0; i < list.length; i++) {
-                if (list[i] && list[i].url) {
-                    item = document.createElement('li');
-                    img = document.createElement('img');
-                    icon = document.createElement('span');
-
-                    domUtils.on(img, 'load', (function (image) {
-                        return function () {
-                            _this.scale(image, image.parentNode.offsetWidth, image.parentNode.offsetHeight);
-                        }
-                    })(img));
-                    img.width = 113;
-                    img.setAttribute('src', urlPrefix + list[i].url + (list[i].url.indexOf('?') == -1 ? '?noCache=' : '&noCache=') + (+new Date()).toString(36));
-                    img.setAttribute('_src', urlPrefix + list[i].url);
-                    domUtils.addClass(icon, 'icon');
-
-                    item.appendChild(img);
-                    item.appendChild(icon);
-                    this.list.insertBefore(item, this.clearFloat);
-                }
-            }
-        },
-        /* 改变图片大小 */
-        scale: function (img, w, h, type) {
-            var ow = img.width,
-                oh = img.height;
-
-            if (type == 'justify') {
-                if (ow >= oh) {
-                    img.width = w;
-                    img.height = h * oh / ow;
-                    img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px';
-                } else {
-                    img.width = w * ow / oh;
-                    img.height = h;
-                    img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px';
-                }
-            } else {
-                if (ow >= oh) {
-                    img.width = w * ow / oh;
-                    img.height = h;
-                    img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px';
-                } else {
-                    img.width = w;
-                    img.height = h * oh / ow;
-                    img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px';
-                }
-            }
-        },
-        getInsertList: function () {
-            var i, lis = this.list.children, list = [], align = getAlign();
-            for (i = 0; i < lis.length; i++) {
-                if (domUtils.hasClass(lis[i], 'selected')) {
-                    var img = lis[i].firstChild,
-                        src = img.getAttribute('_src');
-                    list.push({
-                        src: src,
-                        _src: src,
-                        alt: src.substr(src.lastIndexOf('/') + 1),
-                        floatStyle: align
-                    });
-                }
-
-            }
-            return list;
-        }
-    };
-
-})();

BIN
front/public/UEditorPlus/dialogs/image/images/alignicon.jpg


BIN
front/public/UEditorPlus/dialogs/image/images/bg.png


BIN
front/public/UEditorPlus/dialogs/image/images/icons.gif


BIN
front/public/UEditorPlus/dialogs/image/images/icons.png


BIN
front/public/UEditorPlus/dialogs/image/images/image.png


BIN
front/public/UEditorPlus/dialogs/image/images/progress.png


BIN
front/public/UEditorPlus/dialogs/image/images/success.gif


BIN
front/public/UEditorPlus/dialogs/image/images/success.png


+ 0 - 135
front/public/UEditorPlus/dialogs/insertframe/insertframe.html

@@ -1,135 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
-    <title></title>
-    <script type="text/javascript" src="../internal.js?aea0c61c"></script>
-    <link rel="stylesheet" href="../../themes/default/dialog.css?963f161c">
-    <style type="text/css">
-        .warp {
-            width: 320px;
-            height: 200px;
-            margin-left: 5px;
-            padding: 20px 0 0 15px;
-            position: relative;
-        }
-
-        #url {
-            width: 290px;
-            margin-bottom: 2px;
-            margin-left: -6px;
-            margin-left: -2px \9;
-            *margin-left: 0;
-            _margin-left: 0;
-        }
-
-        .format span {
-            display: inline-block;
-            width: 58px;
-            text-align: left;
-            zoom: 1;
-        }
-
-        table td {
-            padding: 5px 0;
-        }
-
-        #align {
-            width: 65px;
-            height: 23px;
-            line-height: 22px;
-        }
-    </style>
-</head>
-<body>
-<div class="warp">
-    <table width="300" cellpadding="0" cellspacing="0">
-        <tr>
-            <td colspan="2" class="format">
-                <span><var id="lang_input_address"></var></span>
-                <input style="width:200px" id="url" type="text" value=""/>
-            </td>
-        </tr>
-        <tr>
-            <td colspan="2" class="format"><span><var id="lang_input_width"></var></span><input style="width:200px"
-                                                                                                type="text" id="width"/>
-                px
-            </td>
-
-        </tr>
-        <tr>
-            <td colspan="2" class="format"><span><var id="lang_input_height"></var></span><input style="width:200px"
-                                                                                                 type="text"
-                                                                                                 id="height"/> px
-            </td>
-        </tr>
-        <tr>
-            <td><span><var id="lang_input_isScroll"></var></span><input type="checkbox" id="scroll"/></td>
-            <td><span><var id="lang_input_frameborder"></var></span><input type="checkbox" id="frameborder"/></td>
-        </tr>
-
-        <tr>
-            <td colspan="2"><span><var id="lang_input_alignMode"></var></span>
-                <select id="align">
-                    <option value=""></option>
-                    <option value="left"></option>
-                    <option value="right"></option>
-                </select>
-            </td>
-        </tr>
-    </table>
-</div>
-<script type="text/javascript">
-    var iframe = editor._iframe;
-    if (iframe) {
-        $G("url").value = iframe.getAttribute("src") || "";
-        $G("width").value = iframe.getAttribute("width") || iframe.style.width.replace("px", "") || "";
-        $G("height").value = iframe.getAttribute("height") || iframe.style.height.replace("px", "") || "";
-        $G("scroll").checked = (iframe.getAttribute("scrolling") == "yes") ? true : false;
-        $G("frameborder").checked = (iframe.getAttribute("frameborder") == "1") ? true : false;
-        $G("align").value = iframe.align ? iframe.align : "";
-    }
-
-    function queding() {
-        var url = $G("url").value.replace(/^\s*|\s*$/ig, ""),
-            width = $G("width").value,
-            height = $G("height").value,
-            scroll = $G("scroll"),
-            frameborder = $G("frameborder"),
-            float = $G("align").value,
-            newIframe = editor.document.createElement("iframe"),
-            div;
-        if (!url) {
-            alert(lang.enterAddress);
-            return false;
-        }
-        newIframe.setAttribute("src", /http:\/\/|https:\/\//ig.test(url) ? url : "http://" + url);
-        /^[1-9]+[.]?\d*$/g.test(width) ? newIframe.setAttribute("width", width) : "";
-        /^[1-9]+[.]?\d*$/g.test(height) ? newIframe.setAttribute("height", height) : "";
-        scroll.checked ? newIframe.setAttribute("scrolling", "yes") : newIframe.setAttribute("scrolling", "no");
-        frameborder.checked ? newIframe.setAttribute("frameborder", "1", 0) : newIframe.setAttribute("frameborder", "0", 0);
-        float ? newIframe.setAttribute("align", float) : newIframe.setAttribute("align", "");
-        if (iframe) {
-            iframe.parentNode.insertBefore(newIframe, iframe);
-            domUtils.remove(iframe);
-        } else {
-            div = editor.document.createElement("div");
-            div.appendChild(newIframe);
-            editor.execCommand("inserthtml", div.innerHTML);
-        }
-        editor._iframe = null;
-        dialog.close();
-    }
-
-    dialog.onok = queding;
-    $G("url").onkeydown = function (evt) {
-        evt = evt || event;
-        if (evt.keyCode == 13) {
-            queding();
-        }
-    };
-    $focus($G("url"));
-
-</script>
-</body>
-</html>

+ 0 - 81
front/public/UEditorPlus/dialogs/internal.js

@@ -1,81 +0,0 @@
-(function () {
-    var parent = window.parent;
-    //dialog对象
-    dialog = parent.$EDITORUI[window.frameElement.id.replace(/_iframe$/, '')];
-    //当前打开dialog的编辑器实例
-    editor = dialog.editor;
-
-    UE = parent.UE;
-
-    domUtils = UE.dom.domUtils;
-
-    utils = UE.utils;
-
-    browser = UE.browser;
-
-    ajax = UE.ajax;
-
-    $G = function (id) {
-        return document.getElementById(id)
-    };
-    //focus元素
-    $focus = function (node) {
-        setTimeout(function () {
-            if (browser.ie) {
-                var r = node.createTextRange();
-                r.collapse(false);
-                r.select();
-            } else {
-                node.focus()
-            }
-        }, 0)
-    };
-    utils.loadFile(document, {
-        href: editor.options.themePath + editor.options.theme + "/dialogbase.css?cache=" + Math.random(),
-        tag: "link",
-        type: "text/css",
-        rel: "stylesheet"
-    });
-    lang = editor.getLang(dialog.className.split("-")[2]);
-    if (lang) {
-        domUtils.on(window, 'load', function () {
-
-            var langImgPath = editor.options.langPath + editor.options.lang + "/images/";
-            //针对静态资源
-            for (var i in lang["static"]) {
-                var dom = $G(i);
-                if (!dom) continue;
-                var tagName = dom.tagName,
-                    content = lang["static"][i];
-                if (content.src) {
-                    //clone
-                    content = utils.extend({}, content, false);
-                    content.src = langImgPath + content.src;
-                }
-                if (content.style) {
-                    content = utils.extend({}, content, false);
-                    content.style = content.style.replace(/url\s*\(/g, "url(" + langImgPath)
-                }
-                switch (tagName.toLowerCase()) {
-                    case "var":
-                        dom.parentNode.replaceChild(document.createTextNode(content), dom);
-                        break;
-                    case "select":
-                        var ops = dom.options;
-                        for (var j = 0, oj; oj = ops[j];) {
-                            oj.innerHTML = content.options[j++];
-                        }
-                        for (var p in content) {
-                            p != "options" && dom.setAttribute(p, content[p]);
-                        }
-                        break;
-                    default :
-                        domUtils.setAttributes(dom, content);
-                }
-            }
-        });
-    }
-
-
-})();
-

+ 0 - 155
front/public/UEditorPlus/dialogs/link/link.html

@@ -1,155 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-    "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-    <title></title>
-    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
-    <script type="text/javascript" src="../internal.js?aea0c61c"></script>
-    <style type="text/css">
-        * {
-            margin: 0;
-            padding: 0;
-            color: #838383;
-        }
-
-        table {
-            font-size: 12px;
-            margin: 10px;
-            line-height: 36px;
-            width: 100%;
-        }
-
-        .txt {
-            box-sizing: border-box;
-            width: 90%;
-            height: 30px;
-            line-height: 30px;
-            border: 1px solid #d7d7d7;
-            border-radius: 3px;
-            padding: 0 5px;
-            outline: none;
-        }
-    </style>
-</head>
-<body>
-<div style="padding:10px;">
-    <table>
-        <tr>
-            <td><label for="text"> <var id="lang_input_text"></var></label></td>
-            <td><input class="txt" id="text" type="text" disabled="true"/></td>
-        </tr>
-        <tr>
-            <td><label for="href"> <var id="lang_input_url"></var></label></td>
-            <td><input class="txt" id="href" type="text"/></td>
-        </tr>
-        <tr>
-            <td><label for="title"> <var id="lang_input_title"></var></label></td>
-            <td><input class="txt" id="title" type="text"/></td>
-        </tr>
-        <tr>
-            <td colspan="2">
-                <label for="target"><var id="lang_input_target"></var></label>
-                <input id="target" type="checkbox"/>
-            </td>
-        </tr>
-        <tr>
-            <td colspan="2" id="msg"></td>
-        </tr>
-    </table>
-</div>
-<script type="text/javascript">
-
-    editor.setOpt('allowLinkProtocols', ['http:', 'https:', '#', '/', 'ftp:', 'mailto:', 'tel:']);
-    var allowLinkProtocols = editor.getOpt('allowLinkProtocols');
-
-    var range = editor.selection.getRange(),
-        link = range.collapsed ? editor.queryCommandValue("link") : editor.selection.getStart(),
-        url,
-        text = $G('text'),
-        rangeLink = domUtils.findParentByTagName(range.getCommonAncestor(), 'a', true),
-        orgText;
-
-    link = domUtils.findParentByTagName(link, "a", true);
-
-    if (link) {
-        url = utils.html(link.getAttribute('_href') || link.getAttribute('href', 2));
-
-        if (rangeLink === link && !link.getElementsByTagName('img').length) {
-            text.removeAttribute('disabled');
-            orgText = text.value = link[browser.ie ? 'innerText' : 'textContent'];
-        } else {
-            text.setAttribute('disabled', 'true');
-            text.value = lang.validLink;
-        }
-
-    } else {
-        if (range.collapsed) {
-            text.removeAttribute('disabled');
-            text.value = '';
-        } else {
-            text.setAttribute('disabled', 'true');
-            text.value = lang.validLink;
-        }
-
-    }
-    $G("title").value = url ? link.title : "";
-    $G("href").value = url ? url : '';
-    $G("target").checked = url && link.target == "_blank" ? true : false;
-    $focus($G("href"));
-
-    function handleDialogOk() {
-        var href = $G('href').value.replace(/^\s+|\s+$/g, '');
-        if (href) {
-            if (!hrefStartWith(href, allowLinkProtocols)) {
-                href = "http://" + href;
-            }
-            var obj = {
-                'href': href,
-                'target': $G("target").checked ? "_blank" : '_self',
-                'title': $G("title").value.replace(/^\s+|\s+$/g, ''),
-                '_href': href
-            };
-            //修改链接内容的情况太特殊了,所以先做到这里了
-            //todo:情况多的时候,做到command里
-            if (orgText && text.value != orgText) {
-                link[browser.ie ? 'innerText' : 'textContent'] = obj.textValue = text.value;
-                range.selectNode(link).select()
-            }
-            if (range.collapsed) {
-                obj.textValue = text.value;
-            }
-            editor.execCommand('link', utils.clearEmptyAttrs(obj));
-            dialog.close();
-        }
-    }
-
-    dialog.onok = handleDialogOk;
-    $G('href').onkeydown = $G('title').onkeydown = function (evt) {
-        evt = evt || window.event;
-        if (evt.keyCode == 13) {
-            handleDialogOk();
-            return false;
-        }
-    };
-    $G('href').onblur = function () {
-        if (!hrefStartWith(this.value, allowLinkProtocols)) {
-            $G("msg").innerHTML = "<span style='color: red'>" + lang.httpPrompt + "</span>";
-        } else {
-            $G("msg").innerHTML = "";
-        }
-    };
-
-    function hrefStartWith(href, arr) {
-        href = href.replace(/^\s+|\s+$/g, '');
-        for (var i = 0, ai; ai = arr[i++];) {
-            if (href.indexOf(ai) == 0) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-
-</script>
-</body>
-</html>

+ 0 - 45
front/public/UEditorPlus/dialogs/preview/preview.html

@@ -1,45 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-    "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
-    <style>
-        html, body {
-            height: 100%;
-            width: 100%;
-            padding: 0;
-            margin: 0;
-        }
-
-        #preview {
-            width: 100%;
-            height: 100%;
-            padding: 0;
-            margin: 0;
-        }
-
-        #preview * {
-            font-family: sans-serif;
-            font-size: 16px;
-        }
-    </style>
-    <script type="text/javascript" src="../internal.js?aea0c61c"></script>
-    <script src="../../ueditor.parse.js?8e3d12c6"></script>
-    <title></title>
-</head>
-<body class="view">
-<div id="preview" style="margin:8px">
-
-</div>
-</body>
-<script>
-    document.getElementById('preview').innerHTML = editor.getContent();
-    uParse('#preview', {
-        rootPath: '../../',
-        chartContainerHeight: 500
-    })
-    dialog.oncancel = function () {
-        document.getElementById('preview').innerHTML = '';
-    }
-</script>
-</html>

BIN
front/public/UEditorPlus/dialogs/scrawl/images/addimg.png


BIN
front/public/UEditorPlus/dialogs/scrawl/images/brush.png


BIN
front/public/UEditorPlus/dialogs/scrawl/images/delimg.png


BIN
front/public/UEditorPlus/dialogs/scrawl/images/delimgH.png


BIN
front/public/UEditorPlus/dialogs/scrawl/images/empty.png


BIN
front/public/UEditorPlus/dialogs/scrawl/images/emptyH.png


BIN
front/public/UEditorPlus/dialogs/scrawl/images/eraser.png


BIN
front/public/UEditorPlus/dialogs/scrawl/images/redo.png


BIN
front/public/UEditorPlus/dialogs/scrawl/images/redoH.png


BIN
front/public/UEditorPlus/dialogs/scrawl/images/scale.png


BIN
front/public/UEditorPlus/dialogs/scrawl/images/scaleH.png


BIN
front/public/UEditorPlus/dialogs/scrawl/images/size.png


BIN
front/public/UEditorPlus/dialogs/scrawl/images/undo.png


BIN
front/public/UEditorPlus/dialogs/scrawl/images/undoH.png


+ 0 - 324
front/public/UEditorPlus/dialogs/scrawl/scrawl.css

@@ -1,324 +0,0 @@
-/*common
-*/
-body {
-    margin: 0;
-}
-
-table {
-    width: 100%;
-}
-
-table td {
-    padding: 2px 4px;
-    vertical-align: middle;
-}
-
-a {
-    text-decoration: none;
-}
-
-em {
-    font-style: normal;
-}
-
-.border_style1 {
-    border: 1px solid #ccc;
-    border-radius: 5px;
-    box-shadow: 2px 2px 5px #d3d6da;
-}
-
-/*module
-*/
-.main {
-    margin: 8px;
-    overflow: hidden;
-}
-
-.hot {
-    float: left;
-    height: 335px;
-}
-
-.drawBoard {
-    position: relative;
-    cursor: crosshair;
-}
-
-.brushBorad {
-    position: absolute;
-    left: 0;
-    top: 0;
-    z-index: 998;
-}
-
-.picBoard {
-    border: none;
-    text-align: center;
-    line-height: 300px;
-    cursor: default;
-}
-
-.operateBar {
-    margin-top: 10px;
-    font-size: 12px;
-    text-align: center;
-}
-
-.operateBar span {
-    margin-left: 10px;
-}
-
-.drawToolbar {
-    float: right;
-    width: 110px;
-    height: 300px;
-    overflow: hidden;
-}
-
-.colorBar {
-    margin-top: 10px;
-    font-size: 12px;
-    text-align: center;
-}
-
-.colorBar a {
-    display: block;
-    width: 10px;
-    height: 10px;
-    border: 1px solid #1006F1;
-    border-radius: 3px;
-    box-shadow: 2px 2px 5px #d3d6da;
-    opacity: 0.3
-}
-
-.sectionBar {
-    margin-top: 15px;
-    font-size: 12px;
-    text-align: center;
-}
-
-.sectionBar a {
-    display: inline-block;
-    width: 10px;
-    height: 12px;
-    color: #888;
-    text-indent: -999px;
-    opacity: 0.3
-}
-
-.size1 {
-    background: url('images/size.png') 1px center no-repeat;
-}
-
-.size2 {
-    background: url('images/size.png') -10px center no-repeat;
-}
-
-.size3 {
-    background: url('images/size.png') -22px center no-repeat;
-}
-
-.size4 {
-    background: url('images/size.png') -35px center no-repeat;
-}
-
-.addImgH {
-    position: relative;
-}
-
-.addImgH_form {
-    position: absolute;
-    left: 18px;
-    top: -1px;
-    width: 75px;
-    height: 21px;
-    opacity: 0;
-    cursor: pointer;
-}
-
-.addImgH_form input {
-    width: 100%;
-}
-
-/*scrawl遮罩层
-*/
-.maskLayerNull {
-    display: none;
-}
-
-.maskLayer {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 100%;
-    opacity: 0.7;
-    background-color: #fff;
-    text-align: center;
-    font-weight: bold;
-    line-height: 300px;
-    z-index: 1000;
-}
-
-/*btn state
-*/
-.previousStepH .icon {
-    display: inline-block;
-    width: 16px;
-    height: 16px;
-    background-image: url('images/undoH.png');
-    cursor: pointer;
-}
-
-.previousStepH .text {
-    color: #888;
-    cursor: pointer;
-}
-
-.previousStep .icon {
-    display: inline-block;
-    width: 16px;
-    height: 16px;
-    background-image: url('images/undo.png');
-    cursor: default;
-}
-
-.previousStep .text {
-    color: #ccc;
-    cursor: default;
-}
-
-.nextStepH .icon {
-    display: inline-block;
-    width: 16px;
-    height: 16px;
-    background-image: url('images/redoH.png');
-    cursor: pointer;
-}
-
-.nextStepH .text {
-    color: #888;
-    cursor: pointer;
-}
-
-.nextStep .icon {
-    display: inline-block;
-    width: 16px;
-    height: 16px;
-    background-image: url('images/redo.png');
-    cursor: default;
-}
-
-.nextStep .text {
-    color: #ccc;
-    cursor: default;
-}
-
-.clearBoardH .icon {
-    display: inline-block;
-    width: 16px;
-    height: 16px;
-    background-image: url('images/emptyH.png');
-    cursor: pointer;
-}
-
-.clearBoardH .text {
-    color: #888;
-    cursor: pointer;
-}
-
-.clearBoard .icon {
-    display: inline-block;
-    width: 16px;
-    height: 16px;
-    background-image: url('images/empty.png');
-    cursor: default;
-}
-
-.clearBoard .text {
-    color: #ccc;
-    cursor: default;
-}
-
-.scaleBoardH .icon {
-    display: inline-block;
-    width: 16px;
-    height: 16px;
-    background-image: url('images/scaleH.png');
-    cursor: pointer;
-}
-
-.scaleBoardH .text {
-    color: #888;
-    cursor: pointer;
-}
-
-.scaleBoard .icon {
-    display: inline-block;
-    width: 16px;
-    height: 16px;
-    background-image: url('images/scale.png');
-    cursor: default;
-}
-
-.scaleBoard .text {
-    color: #ccc;
-    cursor: default;
-}
-
-.removeImgH .icon {
-    display: inline-block;
-    width: 16px;
-    height: 16px;
-    background-image: url('images/delimgH.png');
-    cursor: pointer;
-}
-
-.removeImgH .text {
-    color: #888;
-    cursor: pointer;
-}
-
-.removeImg .icon {
-    display: inline-block;
-    width: 16px;
-    height: 16px;
-    background-image: url('images/delimg.png');
-    cursor: default;
-}
-
-.removeImg .text {
-    color: #ccc;
-    cursor: default;
-}
-
-.addImgH .icon {
-    vertical-align: top;
-    display: inline-block;
-    width: 16px;
-    height: 16px;
-    background-image: url('images/addimg.png')
-}
-
-.addImgH .text {
-    color: #888;
-    cursor: pointer;
-}
-
-/*icon
-*/
-.brushIcon {
-    display: inline-block;
-    width: 16px;
-    height: 16px;
-    background-image: url('images/brush.png')
-}
-
-.eraserIcon {
-    display: inline-block;
-    width: 16px;
-    height: 16px;
-    background-image: url('images/eraser.png')
-}
-
-

+ 0 - 95
front/public/UEditorPlus/dialogs/scrawl/scrawl.html

@@ -1,95 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title></title>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
-    <meta name="robots" content="noindex, nofollow"/>
-    <script type="text/javascript" src="../internal.js?aea0c61c"></script>
-    <link rel="stylesheet" type="text/css" href="scrawl.css?5bdd07f3">
-</head>
-<body>
-<div class="main" id="J_wrap">
-    <div class="hot">
-        <div class="drawBoard border_style1">
-            <canvas id="J_brushBoard" class="brushBorad" width="360" height="300"></canvas>
-            <div id="J_picBoard" class="picBoard" style="width: 360px;height: 300px"></div>
-        </div>
-        <div id="J_operateBar" class="operateBar">
-            <span id="J_previousStep" class="previousStep">
-                <em class="icon"></em>
-                <em class="text"><var id="lang_input_previousStep"></var></em>
-            </span>
-            <span id="J_nextStep" class="nextStep">
-                <em class="icon"></em>
-                <em class="text"><var id="lang_input_nextsStep"></var></em>
-            </span>
-            <span id="J_clearBoard" class="clearBoard">
-                <em class="icon"></em>
-                <em class="text"><var id="lang_input_clear"></var></em>
-            </span>
-            <span id="J_sacleBoard" class="scaleBoard">
-                <em class="icon"></em>
-                <em class="text"><var id="lang_input_ScalePic"></var></em>
-            </span>
-        </div>
-    </div>
-    <div class="drawToolbar border_style1">
-        <div id="J_colorBar" class="colorBar"></div>
-        <div id="J_brushBar" class="sectionBar">
-            <em class="brushIcon"></em>
-            <a href="javascript:void(0)" class="size1">1</a>
-            <a href="javascript:void(0)" class="size2">3</a>
-            <a href="javascript:void(0)" class="size3">5</a>
-            <a href="javascript:void(0)" class="size4">7</a>
-        </div>
-        <div id="J_eraserBar" class="sectionBar">
-            <em class="eraserIcon"></em>
-            <a href="javascript:void(0)" class="size1">1</a>
-            <a href="javascript:void(0)" class="size2">3</a>
-            <a href="javascript:void(0)" class="size3">5</a>
-            <a href="javascript:void(0)" class="size4">7</a>
-        </div>
-        <div class="sectionBar">
-            <div id="J_addImg" class="addImgH">
-                <em class="icon"></em>
-                <em class="text"><var id="lang_input_addPic"></var></em>
-                <form method="post" id="fileForm" enctype="multipart/form-data" class="addImgH_form" target="up">
-                    <input type="file" name="upfile" id="J_imgTxt"
-                           accept="image/gif,image/jpeg,image/png,image/jpg,image/bmp"/>
-                </form>
-                <iframe name="up" style="display: none"></iframe>
-            </div>
-        </div>
-        <div class="sectionBar">
-            <span id="J_removeImg" class="removeImg">
-                <em class="icon"></em>
-                <em class="text"><var id="lang_input_removePic"></var></em>
-            </span>
-        </div>
-    </div>
-</div>
-<div id="J_maskLayer" class="maskLayerNull"></div>
-
-<script type="text/javascript" src="scrawl.js?ee947940"></script>
-<script type="text/javascript">
-    var settings = {
-        drawBrushSize: 3, //画笔初始大小
-        drawBrushColor: "#4bacc6", //画笔初始颜色
-        colorList: ['c00000', 'ff0000', 'ffc000', 'ffff00', '92d050', '00b050', '00b0f0', '0070c0', '002060', '7030a0', 'ffffff',
-            '000000', 'eeece1', '1f497d', '4f81bd', 'c0504d', '9bbb59', '8064a2', '4bacc6', 'f79646'], //画笔选择颜色
-        saveNum: 10  //撤销次数
-    };
-
-    var scrawlObj = new scrawl(settings);
-    scrawlObj.isCancelScrawl = false;
-
-    dialog.onok = function () {
-        exec(scrawlObj);
-        return false;
-    };
-    dialog.oncancel = function () {
-        scrawlObj.isCancelScrawl = true;
-    };
-</script>
-</body>
-</html>

+ 0 - 682
front/public/UEditorPlus/dialogs/scrawl/scrawl.js

@@ -1,682 +0,0 @@
-/**
- * Created with JetBrains PhpStorm.
- * User: xuheng
- * Date: 12-5-22
- * Time: 上午11:38
- * To change this template use File | Settings | File Templates.
- */
-var scrawl = function (options) {
-    options && this.initOptions(options);
-};
-(function () {
-    var canvas = $G("J_brushBoard"),
-        context = canvas.getContext('2d'),
-        drawStep = [], //undo redo存储
-        drawStepIndex = 0; //undo redo指针
-
-    scrawl.prototype = {
-        isScrawl: false, //是否涂鸦
-        brushWidth: -1, //画笔粗细
-        brushColor: "", //画笔颜色
-
-        initOptions: function (options) {
-            var me = this;
-            me.originalState(options);//初始页面状态
-            me._buildToolbarColor(options.colorList);//动态生成颜色选择集合
-
-            me._addBoardListener(options.saveNum);//添加画板处理
-            me._addOPerateListener(options.saveNum);//添加undo redo clearBoard处理
-            me._addColorBarListener();//添加颜色选择处理
-            me._addBrushBarListener();//添加画笔大小处理
-            me._addEraserBarListener();//添加橡皮大小处理
-            me._addAddImgListener();//添加增添背景图片处理
-            me._addRemoveImgListenter();//删除背景图片处理
-            me._addScalePicListenter();//添加缩放处理
-            me._addClearSelectionListenter();//添加清楚选中状态处理
-
-            me._originalColorSelect(options.drawBrushColor);//初始化颜色选中
-            me._originalBrushSelect(options.drawBrushSize);//初始化画笔选中
-            me._clearSelection();//清楚选中状态
-        },
-
-        originalState: function (options) {
-            var me = this;
-
-            me.brushWidth = options.drawBrushSize;//同步画笔粗细
-            me.brushColor = options.drawBrushColor;//同步画笔颜色
-
-            context.lineWidth = me.brushWidth;//初始画笔大小
-            context.strokeStyle = me.brushColor;//初始画笔颜色
-            context.fillStyle = "transparent";//初始画布背景颜色
-            context.lineCap = "round";//去除锯齿
-            context.fill();
-        },
-        _buildToolbarColor: function (colorList) {
-            var tmp = null, arr = [];
-            arr.push("<table id='J_colorList'>");
-            for (var i = 0, color; color = colorList[i++];) {
-                if ((i - 1) % 5 == 0) {
-                    if (i != 1) {
-                        arr.push("</tr>");
-                    }
-                    arr.push("<tr>");
-                }
-                tmp = '#' + color;
-                arr.push("<td><a title='" + tmp + "' href='javascript:void(0)' style='background-color:" + tmp + "'></a></td>");
-            }
-            arr.push("</tr></table>");
-            $G("J_colorBar").innerHTML = arr.join("");
-        },
-
-        _addBoardListener: function (saveNum) {
-            var me = this,
-                margin = 0,
-                startX = -1,
-                startY = -1,
-                isMouseDown = false,
-                isMouseMove = false,
-                isMouseUp = false,
-                buttonPress = 0, button, flag = '';
-
-            margin = parseInt(domUtils.getComputedStyle($G("J_wrap"), "margin-left"));
-            drawStep.push(context.getImageData(0, 0, context.canvas.width, context.canvas.height));
-            drawStepIndex += 1;
-
-            domUtils.on(canvas, ["mousedown", "mousemove", "mouseup", "mouseout"], function (e) {
-                button = browser.webkit ? e.which : buttonPress;
-                switch (e.type) {
-                    case 'mousedown':
-                        buttonPress = 1;
-                        flag = 1;
-                        isMouseDown = true;
-                        isMouseUp = false;
-                        isMouseMove = false;
-                        me.isScrawl = true;
-                        startX = e.clientX - margin;//10为外边距总和
-                        startY = e.clientY - margin;
-                        context.beginPath();
-                        break;
-                    case 'mousemove' :
-                        if (!flag && button == 0) {
-                            return;
-                        }
-                        if (!flag && button) {
-                            startX = e.clientX - margin;//10为外边距总和
-                            startY = e.clientY - margin;
-                            context.beginPath();
-                            flag = 1;
-                        }
-                        if (isMouseUp || !isMouseDown) {
-                            return;
-                        }
-                        var endX = e.clientX - margin,
-                            endY = e.clientY - margin;
-
-                        context.moveTo(startX, startY);
-                        context.lineTo(endX, endY);
-                        context.stroke();
-                        startX = endX;
-                        startY = endY;
-                        isMouseMove = true;
-                        break;
-                    case 'mouseup':
-                        buttonPress = 0;
-                        if (!isMouseDown) return;
-                        if (!isMouseMove) {
-                            context.arc(startX, startY, context.lineWidth, 0, Math.PI * 2, false);
-                            context.fillStyle = context.strokeStyle;
-                            context.fill();
-                        }
-                        context.closePath();
-                        me._saveOPerate(saveNum);
-                        isMouseDown = false;
-                        isMouseMove = false;
-                        isMouseUp = true;
-                        startX = -1;
-                        startY = -1;
-                        break;
-                    case 'mouseout':
-                        flag = '';
-                        buttonPress = 0;
-                        if (button == 1) return;
-                        context.closePath();
-                        break;
-                }
-            });
-        },
-        _addOPerateListener: function (saveNum) {
-            var me = this;
-            domUtils.on($G("J_previousStep"), "click", function () {
-                if (drawStepIndex > 1) {
-                    drawStepIndex -= 1;
-                    context.clearRect(0, 0, context.canvas.width, context.canvas.height);
-                    context.putImageData(drawStep[drawStepIndex - 1], 0, 0);
-                    me.btn2Highlight("J_nextStep");
-                    drawStepIndex == 1 && me.btn2disable("J_previousStep");
-                }
-            });
-            domUtils.on($G("J_nextStep"), "click", function () {
-                if (drawStepIndex > 0 && drawStepIndex < drawStep.length) {
-                    context.clearRect(0, 0, context.canvas.width, context.canvas.height);
-                    context.putImageData(drawStep[drawStepIndex], 0, 0);
-                    drawStepIndex += 1;
-                    me.btn2Highlight("J_previousStep");
-                    drawStepIndex == drawStep.length && me.btn2disable("J_nextStep");
-                }
-            });
-            domUtils.on($G("J_clearBoard"), "click", function () {
-                context.clearRect(0, 0, context.canvas.width, context.canvas.height);
-                drawStep = [];
-                me._saveOPerate(saveNum);
-                drawStepIndex = 1;
-                me.isScrawl = false;
-                me.btn2disable("J_previousStep");
-                me.btn2disable("J_nextStep");
-                me.btn2disable("J_clearBoard");
-            });
-        },
-        _addColorBarListener: function () {
-            var me = this;
-            domUtils.on($G("J_colorBar"), "click", function (e) {
-                var target = me.getTarget(e),
-                    color = target.title;
-                if (!!color) {
-                    me._addColorSelect(target);
-
-                    me.brushColor = color;
-                    context.globalCompositeOperation = "source-over";
-                    context.lineWidth = me.brushWidth;
-                    context.strokeStyle = color;
-                }
-            });
-        },
-        _addBrushBarListener: function () {
-            var me = this;
-            domUtils.on($G("J_brushBar"), "click", function (e) {
-                var target = me.getTarget(e),
-                    size = browser.ie ? target.innerText : target.text;
-                if (!!size) {
-                    me._addBESelect(target);
-
-                    context.globalCompositeOperation = "source-over";
-                    context.lineWidth = parseInt(size);
-                    context.strokeStyle = me.brushColor;
-                    me.brushWidth = context.lineWidth;
-                }
-            });
-        },
-        _addEraserBarListener: function () {
-            var me = this;
-            domUtils.on($G("J_eraserBar"), "click", function (e) {
-                var target = me.getTarget(e),
-                    size = browser.ie ? target.innerText : target.text;
-                if (!!size) {
-                    me._addBESelect(target);
-
-                    context.lineWidth = parseInt(size);
-                    context.globalCompositeOperation = "destination-out";
-                    context.strokeStyle = "#FFF";
-                }
-            });
-        },
-        _addAddImgListener: function () {
-            var file = $G("J_imgTxt");
-            if (!window.FileReader) {
-                $G("J_addImg").style.display = 'none';
-                $G("J_removeImg").style.display = 'none';
-                $G("J_sacleBoard").style.display = 'none';
-            }
-            domUtils.on(file, "change", function (e) {
-                var frm = file.parentNode;
-                addMaskLayer(lang.backgroundUploading);
-
-                var target = e.target || e.srcElement,
-                    reader = new FileReader();
-                reader.onload = function (evt) {
-                    var target = evt.target || evt.srcElement;
-                    ue_callback(target.result, 'SUCCESS');
-                };
-                reader.readAsDataURL(target.files[0]);
-                frm.reset();
-            });
-        },
-        _addRemoveImgListenter: function () {
-            var me = this;
-            domUtils.on($G("J_removeImg"), "click", function () {
-                $G("J_picBoard").innerHTML = "";
-                me.btn2disable("J_removeImg");
-                me.btn2disable("J_sacleBoard");
-            });
-        },
-        _addScalePicListenter: function () {
-            domUtils.on($G("J_sacleBoard"), "click", function () {
-                var picBoard = $G("J_picBoard"),
-                    scaleCon = $G("J_scaleCon"),
-                    img = picBoard.children[0];
-
-                if (img) {
-                    if (!scaleCon) {
-                        picBoard.style.cssText = "position:relative;z-index:999;" + picBoard.style.cssText;
-                        img.style.cssText = "position: absolute;top:" + (canvas.height - img.height) / 2 + "px;left:" + (canvas.width - img.width) / 2 + "px;";
-                        var scale = new ScaleBoy();
-                        picBoard.appendChild(scale.init());
-                        scale.startScale(img);
-                    } else {
-                        if (scaleCon.style.visibility == "visible") {
-                            scaleCon.style.visibility = "hidden";
-                            picBoard.style.position = "";
-                            picBoard.style.zIndex = "";
-                        } else {
-                            scaleCon.style.visibility = "visible";
-                            picBoard.style.cssText += "position:relative;z-index:999";
-                        }
-                    }
-                }
-            });
-        },
-        _addClearSelectionListenter: function () {
-            var doc = document;
-            domUtils.on(doc, 'mousemove', function (e) {
-                if (browser.ie && browser.version < 11)
-                    doc.selection.clear();
-                else
-                    window.getSelection().removeAllRanges();
-            });
-        },
-        _clearSelection: function () {
-            var list = ["J_operateBar", "J_colorBar", "J_brushBar", "J_eraserBar", "J_picBoard"];
-            for (var i = 0, group; group = list[i++];) {
-                domUtils.unSelectable($G(group));
-            }
-        },
-
-        _saveOPerate: function (saveNum) {
-            var me = this;
-            if (drawStep.length <= saveNum) {
-                if (drawStepIndex < drawStep.length) {
-                    me.btn2disable("J_nextStep");
-                    drawStep.splice(drawStepIndex);
-                }
-                drawStep.push(context.getImageData(0, 0, context.canvas.width, context.canvas.height));
-                drawStepIndex = drawStep.length;
-            } else {
-                drawStep.shift();
-                drawStep.push(context.getImageData(0, 0, context.canvas.width, context.canvas.height));
-                drawStepIndex = drawStep.length;
-            }
-            me.btn2Highlight("J_previousStep");
-            me.btn2Highlight("J_clearBoard");
-        },
-
-        _originalColorSelect: function (title) {
-            var colorList = $G("J_colorList").getElementsByTagName("td");
-            for (var j = 0, cell; cell = colorList[j++];) {
-                if (cell.children[0].title.toLowerCase() == title) {
-                    cell.children[0].style.opacity = 1;
-                }
-            }
-        },
-        _originalBrushSelect: function (text) {
-            var brushList = $G("J_brushBar").children;
-            for (var i = 0, ele; ele = brushList[i++];) {
-                if (ele.tagName.toLowerCase() == "a") {
-                    var size = browser.ie ? ele.innerText : ele.text;
-                    if (size.toLowerCase() == text) {
-                        ele.style.opacity = 1;
-                    }
-                }
-            }
-        },
-        _addColorSelect: function (target) {
-            var me = this,
-                colorList = $G("J_colorList").getElementsByTagName("td"),
-                eraserList = $G("J_eraserBar").children,
-                brushList = $G("J_brushBar").children;
-
-            for (var i = 0, cell; cell = colorList[i++];) {
-                cell.children[0].style.opacity = 0.3;
-            }
-            for (var k = 0, ele; ele = brushList[k++];) {
-                if (ele.tagName.toLowerCase() == "a") {
-                    ele.style.opacity = 0.3;
-                    var size = browser.ie ? ele.innerText : ele.text;
-                    if (size.toLowerCase() == this.brushWidth) {
-                        ele.style.opacity = 1;
-                    }
-                }
-            }
-            for (var j = 0, node; node = eraserList[j++];) {
-                if (node.tagName.toLowerCase() == "a") {
-                    node.style.opacity = 0.3;
-                }
-            }
-
-            target.style.opacity = 1;
-            target.blur();
-        },
-        _addBESelect: function (target) {
-            var brushList = $G("J_brushBar").children;
-            var eraserList = $G("J_eraserBar").children;
-
-            for (var i = 0, ele; ele = brushList[i++];) {
-                if (ele.tagName.toLowerCase() == "a") {
-                    ele.style.opacity = 0.3;
-                }
-            }
-            for (var j = 0, node; node = eraserList[j++];) {
-                if (node.tagName.toLowerCase() == "a") {
-                    node.style.opacity = 0.3;
-                }
-            }
-
-            target.style.opacity = 1;
-            target.blur();
-        },
-        getCanvasData: function () {
-            var picContainer = $G("J_picBoard"),
-                img = picContainer.children[0];
-            if (img) {
-                var x, y;
-                if (img.style.position == "absolute") {
-                    x = parseInt(img.style.left);
-                    y = parseInt(img.style.top);
-                } else {
-                    x = (picContainer.offsetWidth - img.width) / 2;
-                    y = (picContainer.offsetHeight - img.height) / 2;
-                }
-                context.globalCompositeOperation = "destination-over";
-                context.drawImage(img, x, y, img.width, img.height);
-            } else {
-                context.globalCompositeOperation = "destination-atop";
-                context.fillStyle = "#fff";//重置画布背景白色
-                context.fillRect(0, 0, canvas.width, canvas.height);
-            }
-            try {
-                return canvas.toDataURL("image/png").substring(22);
-            } catch (e) {
-                return "";
-            }
-        },
-        btn2Highlight: function (id) {
-            var cur = $G(id);
-            cur.className.indexOf("H") == -1 && (cur.className += "H");
-        },
-        btn2disable: function (id) {
-            var cur = $G(id);
-            cur.className.indexOf("H") != -1 && (cur.className = cur.className.replace("H", ""));
-        },
-        getTarget: function (evt) {
-            return evt.target || evt.srcElement;
-        }
-    };
-})();
-
-var ScaleBoy = function () {
-    this.dom = null;
-    this.scalingElement = null;
-};
-(function () {
-    function _appendStyle() {
-        var doc = document,
-            head = doc.getElementsByTagName('head')[0],
-            style = doc.createElement('style'),
-            cssText = '.scale{visibility:hidden;cursor:move;position:absolute;left:0;top:0;width:100px;height:50px;background-color:#fff;font-size:0;line-height:0;opacity:.4;filter:Alpha(opacity=40);}'
-                + '.scale span{position:absolute;left:0;top:0;width:6px;height:6px;background-color:#006DAE;}'
-                + '.scale .hand0, .scale .hand7{cursor:nw-resize;}'
-                + '.scale .hand1, .scale .hand6{left:50%;margin-left:-3px;cursor:n-resize;}'
-                + '.scale .hand2, .scale .hand4, .scale .hand7{left:100%;margin-left:-6px;}'
-                + '.scale .hand3, .scale .hand4{top:50%;margin-top:-3px;cursor:w-resize;}'
-                + '.scale .hand5, .scale .hand6, .scale .hand7{margin-top:-6px;top:100%;}'
-                + '.scale .hand2, .scale .hand5{cursor:ne-resize;}';
-        style.type = 'text/css';
-
-        try {
-            style.appendChild(doc.createTextNode(cssText));
-        } catch (e) {
-            style.styleSheet.cssText = cssText;
-        }
-        head.appendChild(style);
-    }
-
-    function _getDom() {
-        var doc = document,
-            hand,
-            arr = [],
-            scale = doc.createElement('div');
-
-        scale.id = 'J_scaleCon';
-        scale.className = 'scale';
-        for (var i = 0; i < 8; i++) {
-            arr.push("<span class='hand" + i + "'></span>");
-        }
-        scale.innerHTML = arr.join("");
-        return scale;
-    }
-
-    var rect = [
-        //[left, top, width, height]
-        [1, 1, -1, -1],
-        [0, 1, 0, -1],
-        [0, 1, 1, -1],
-        [1, 0, -1, 0],
-        [0, 0, 1, 0],
-        [1, 0, -1, 1],
-        [0, 0, 0, 1],
-        [0, 0, 1, 1]
-    ];
-    ScaleBoy.prototype = {
-        init: function () {
-            _appendStyle();
-            var me = this,
-                scale = me.dom = _getDom();
-
-            me.scaleMousemove.fp = me;
-            domUtils.on(scale, 'mousedown', function (e) {
-                var target = e.target || e.srcElement;
-                me.start = {x: e.clientX, y: e.clientY};
-                if (target.className.indexOf('hand') != -1) {
-                    me.dir = target.className.replace('hand', '');
-                }
-                domUtils.on(document.body, 'mousemove', me.scaleMousemove);
-                e.stopPropagation ? e.stopPropagation() : e.cancelBubble = true;
-            });
-            domUtils.on(document.body, 'mouseup', function (e) {
-                if (me.start) {
-                    domUtils.un(document.body, 'mousemove', me.scaleMousemove);
-                    if (me.moved) {
-                        me.updateScaledElement({
-                            position: {x: scale.style.left, y: scale.style.top},
-                            size: {w: scale.style.width, h: scale.style.height}
-                        });
-                    }
-                    delete me.start;
-                    delete me.moved;
-                    delete me.dir;
-                }
-            });
-            return scale;
-        },
-        startScale: function (objElement) {
-            var me = this, Idom = me.dom;
-
-            Idom.style.cssText = 'visibility:visible;top:' + objElement.style.top + ';left:' + objElement.style.left + ';width:' + objElement.offsetWidth + 'px;height:' + objElement.offsetHeight + 'px;';
-            me.scalingElement = objElement;
-        },
-        updateScaledElement: function (objStyle) {
-            var cur = this.scalingElement,
-                pos = objStyle.position,
-                size = objStyle.size;
-            if (pos) {
-                typeof pos.x != 'undefined' && (cur.style.left = pos.x);
-                typeof pos.y != 'undefined' && (cur.style.top = pos.y);
-            }
-            if (size) {
-                size.w && (cur.style.width = size.w);
-                size.h && (cur.style.height = size.h);
-            }
-        },
-        updateStyleByDir: function (dir, offset) {
-            var me = this,
-                dom = me.dom, tmp;
-
-            rect['def'] = [1, 1, 0, 0];
-            if (rect[dir][0] != 0) {
-                tmp = parseInt(dom.style.left) + offset.x;
-                dom.style.left = me._validScaledProp('left', tmp) + 'px';
-            }
-            if (rect[dir][1] != 0) {
-                tmp = parseInt(dom.style.top) + offset.y;
-                dom.style.top = me._validScaledProp('top', tmp) + 'px';
-            }
-            if (rect[dir][2] != 0) {
-                tmp = dom.clientWidth + rect[dir][2] * offset.x;
-                dom.style.width = me._validScaledProp('width', tmp) + 'px';
-            }
-            if (rect[dir][3] != 0) {
-                tmp = dom.clientHeight + rect[dir][3] * offset.y;
-                dom.style.height = me._validScaledProp('height', tmp) + 'px';
-            }
-            if (dir === 'def') {
-                me.updateScaledElement({position: {x: dom.style.left, y: dom.style.top}});
-            }
-        },
-        scaleMousemove: function (e) {
-            var me = arguments.callee.fp,
-                start = me.start,
-                dir = me.dir || 'def',
-                offset = {x: e.clientX - start.x, y: e.clientY - start.y};
-
-            me.updateStyleByDir(dir, offset);
-            arguments.callee.fp.start = {x: e.clientX, y: e.clientY};
-            arguments.callee.fp.moved = 1;
-        },
-        _validScaledProp: function (prop, value) {
-            var ele = this.dom,
-                wrap = $G("J_picBoard");
-
-            value = isNaN(value) ? 0 : value;
-            switch (prop) {
-                case 'left':
-                    return value < 0 ? 0 : (value + ele.clientWidth) > wrap.clientWidth ? wrap.clientWidth - ele.clientWidth : value;
-                case 'top':
-                    return value < 0 ? 0 : (value + ele.clientHeight) > wrap.clientHeight ? wrap.clientHeight - ele.clientHeight : value;
-                case 'width':
-                    return value <= 0 ? 1 : (value + ele.offsetLeft) > wrap.clientWidth ? wrap.clientWidth - ele.offsetLeft : value;
-                case 'height':
-                    return value <= 0 ? 1 : (value + ele.offsetTop) > wrap.clientHeight ? wrap.clientHeight - ele.offsetTop : value;
-            }
-        }
-    };
-})();
-
-//后台回调
-function ue_callback(url, state) {
-    var doc = document,
-        picBorard = $G("J_picBoard"),
-        img = doc.createElement("img");
-
-    //图片缩放
-    function scale(img, max, oWidth, oHeight) {
-        var width = 0, height = 0, percent, ow = img.width || oWidth, oh = img.height || oHeight;
-        if (ow > max || oh > max) {
-            if (ow >= oh) {
-                if (width = ow - max) {
-                    percent = (width / ow).toFixed(2);
-                    img.height = oh - oh * percent;
-                    img.width = max;
-                }
-            } else {
-                if (height = oh - max) {
-                    percent = (height / oh).toFixed(2);
-                    img.width = ow - ow * percent;
-                    img.height = max;
-                }
-            }
-        }
-    }
-
-    //移除遮罩层
-    removeMaskLayer();
-    //状态响应
-    if (state == "SUCCESS") {
-        picBorard.innerHTML = "";
-        img.onload = function () {
-            scale(this, 300);
-            picBorard.appendChild(img);
-
-            var obj = new scrawl();
-            obj.btn2Highlight("J_removeImg");
-            //trace 2457
-            obj.btn2Highlight("J_sacleBoard");
-        };
-        img.src = url;
-    } else {
-        alert(state);
-    }
-}
-
-//去掉遮罩层
-function removeMaskLayer() {
-    var maskLayer = $G("J_maskLayer");
-    maskLayer.className = "maskLayerNull";
-    maskLayer.innerHTML = "";
-    dialog.buttons[0].setDisabled(false);
-}
-
-//添加遮罩层
-function addMaskLayer(html) {
-    var maskLayer = $G("J_maskLayer");
-    dialog.buttons[0].setDisabled(true);
-    maskLayer.className = "maskLayer";
-    maskLayer.innerHTML = html;
-}
-
-//执行确认按钮方法
-function exec(scrawlObj) {
-    if (scrawlObj.isScrawl) {
-        addMaskLayer(lang.scrawlUpLoading);
-        var base64 = scrawlObj.getCanvasData();
-        if (!!base64) {
-            var options = {
-                timeout: 100000,
-                headers: editor.options.serverHeaders || {},
-                onsuccess: function (xhr) {
-                    if (!scrawlObj.isCancelScrawl) {
-                        var responseObj;
-                        responseObj = eval("(" + xhr.responseText + ")");
-                        if (responseObj.state === "SUCCESS") {
-                            var imgObj = {},
-                                url = editor.options.scrawlUrlPrefix + responseObj.url;
-                            imgObj.src = url;
-                            imgObj._src = url;
-                            imgObj.alt = responseObj.original || '';
-                            editor.execCommand("insertImage", imgObj);
-                            dialog.close();
-                            // 触发上传涂鸦事件
-                            editor.fireEvent("uploadsuccess", {
-                                res: responseObj,
-                                type: 'scrawl'
-                            });
-                        } else {
-                            alert(responseObj.state);
-                        }
-
-                    }
-                },
-                onerror: function () {
-                    alert(lang.imageError);
-                    dialog.close();
-                }
-            };
-            options[editor.getOpt('scrawlFieldName')] = base64;
-
-            var actionUrl = editor.getActionUrl(editor.getOpt('scrawlActionName')),
-                params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '',
-                url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?' : '&') + params);
-            ajax.request(url, options);
-        }
-    } else {
-        addMaskLayer(lang.noScarwl + "&nbsp;&nbsp;&nbsp;<input type='button' value='" + lang.continueBtn + "'  onclick='removeMaskLayer()'/>");
-    }
-}
-

+ 0 - 144
front/public/UEditorPlus/dialogs/searchreplace/searchreplace.html

@@ -1,144 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-    "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-    <title></title>
-    <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
-    <script type="text/javascript" src="../internal.js?aea0c61c"></script>
-    <style type="text/css">
-        .warpper {
-            position: relative;
-            width: 380px;
-            height: 100%;
-            margin: 10px auto;
-        }
-
-        .tabbody {
-            height: 160px;
-        }
-
-        .tabbody table {
-            width: 100%;
-            border-collapse: separate;
-            border-spacing: 3px;
-            line-height: 36px;
-        }
-
-        .tabbody .panel {
-            width: 373px;
-            height: 100%;
-            padding-left: 5px;
-            position: absolute;
-            background-color: #fff;
-        }
-
-        .tabbody input.int {
-            width: 190px;
-            height: 30px;
-            border: 1px solid #d7d7d7;
-            line-height: 21px;
-            border-radius: 3px;
-            outline: none;
-            padding: 0 5px;
-        }
-
-        .tabbody input.btn {
-            text-align: center;
-            line-height: 28px;
-            text-decoration: none;
-            height: 30px;
-            border: 1px solid #ccc;
-            background: #FFF;
-            border-radius: 3px;
-            padding: 0 5px;
-            font-size: 12px;
-            cursor: pointer;
-        }
-    </style>
-</head>
-<body>
-<div class="warpper" id="searchtab">
-    <div id="head" class="tabhead">
-        <span tabsrc="find" class="focus"><var id="lang_tab_search"></var></span>
-        <span tabsrc="replace"><var id="lang_tab_replace"></var></span>
-    </div>
-    <div class="tabbody">
-        <div class="panel" id="find">
-            <table>
-                <tr>
-                    <td width="80"><var id="lang_search1"></var>:</td>
-                    <td><input id="findtxt" type="text" class="int"/></td>
-                </tr>
-                <!--<tr>-->
-
-                <!--<td colspan="2"><span style="color:red"><var id="lang_searchReg"></var></span></td>-->
-                <!--</tr>-->
-                <tr>
-                    <td><var id="lang_case_sensitive1"></var></td>
-                    <td>
-                        <input id="matchCase" type="checkbox"/>
-                    </td>
-                </tr>
-                <tr>
-                    <td colspan="2">
-                        <input id="nextFindBtn" type="button" class="btn"/>
-                        <input id="preFindBtn" type="button" class="btn"/>
-                    </td>
-                </tr>
-                <tr>
-                    <td colspan="2">
-                        &nbsp;
-                    </td>
-                </tr>
-                <tr>
-                    <td colspan="2">
-                        <span id="search-msg" style="color:red"></span>
-                    </td>
-                </tr>
-            </table>
-        </div>
-        <div class="panel" id="replace">
-            <table>
-                <tr>
-                    <td width="80"><var id="lang_search2"></var>:</td>
-                    <td><input id="findtxt1" type="text" class="int"/></td>
-                </tr>
-                <!--<tr>-->
-
-                <!--<td colspan="2"><span style="color:red"><var id="lang_searchReg1"></var></span></td>-->
-                <!--</tr>-->
-                <tr>
-                    <td><var id="lang_replace"></var>:</td>
-                    <td><input id="replacetxt" type="text" class="int"/></td>
-                </tr>
-                <tr>
-                    <td><var id="lang_case_sensitive2"></var></td>
-                    <td>
-                        <input id="matchCase1" type="checkbox"/>
-                    </td>
-                </tr>
-                <tr>
-                    <td colspan="2">
-                        <input id="nextReplaceBtn" type="button" class="btn"/>
-                        <input id="preReplaceBtn" type="button" class="btn"/>
-                        <input id="repalceBtn" type="button" class="btn"/>
-                        <input id="repalceAllBtn" type="button" class="btn"/>
-                    </td>
-                </tr>
-                <tr>
-                    <td colspan="2">
-                        &nbsp;
-                    </td>
-                </tr>
-                <tr>
-                    <td colspan="2">
-                        <span id="replace-msg" style="color:red"></span>
-                    </td>
-                </tr>
-            </table>
-        </div>
-    </div>
-</div>
-<script type="text/javascript" src="searchreplace.js?2c3cf2d3"></script>
-</body>
-</html>

+ 0 - 174
front/public/UEditorPlus/dialogs/searchreplace/searchreplace.js

@@ -1,174 +0,0 @@
-/**
- * Created with JetBrains PhpStorm.
- * User: xuheng
- * Date: 12-9-26
- * Time: 下午12:29
- * To change this template use File | Settings | File Templates.
- */
-
-//清空上次查选的痕迹
-editor.firstForSR = 0;
-editor.currentRangeForSR = null;
-
-//给tab注册切换事件
-/**
- * tab点击处理事件
- * @param tabHeads
- * @param tabBodys
- * @param obj
- */
-function clickHandler(tabHeads, tabBodys, obj) {
-    //head样式更改
-    for (var k = 0, len = tabHeads.length; k < len; k++) {
-        tabHeads[k].className = "";
-    }
-    obj.className = "focus";
-    //body显隐
-    var tabSrc = obj.getAttribute("tabSrc");
-    for (var j = 0, length = tabBodys.length; j < length; j++) {
-        var body = tabBodys[j],
-            id = body.getAttribute("id");
-        if (id != tabSrc) {
-            body.style.zIndex = 1;
-        } else {
-            body.style.zIndex = 200;
-        }
-    }
-
-}
-
-/**
- * TAB切换
- * @param tabParentId  tab的父节点ID或者对象本身
- */
-function switchTab(tabParentId) {
-    var tabElements = $G(tabParentId).children,
-        tabHeads = tabElements[0].children,
-        tabBodys = tabElements[1].children;
-
-    for (var i = 0, length = tabHeads.length; i < length; i++) {
-        var head = tabHeads[i];
-        if (head.className === "focus") clickHandler(tabHeads, tabBodys, head);
-        head.onclick = function () {
-            clickHandler(tabHeads, tabBodys, this);
-        }
-    }
-}
-
-$G('searchtab').onmousedown = function () {
-    $G('search-msg').innerHTML = '';
-    $G('replace-msg').innerHTML = ''
-}
-
-//是否区分大小写
-function getMatchCase(id) {
-    return $G(id).checked ? true : false;
-}
-
-//查找
-$G("nextFindBtn").onclick = function (txt, dir, mcase) {
-    var findtxt = $G("findtxt").value, obj;
-    if (!findtxt) {
-        return false;
-    }
-    obj = {
-        searchStr: findtxt,
-        dir: 1,
-        casesensitive: getMatchCase("matchCase")
-    };
-    if (!frCommond(obj)) {
-        var bk = editor.selection.getRange().createBookmark();
-        $G('search-msg').innerHTML = lang.getEnd;
-        editor.selection.getRange().moveToBookmark(bk).select();
-
-
-    }
-};
-$G("nextReplaceBtn").onclick = function (txt, dir, mcase) {
-    var findtxt = $G("findtxt1").value, obj;
-    if (!findtxt) {
-        return false;
-    }
-    obj = {
-        searchStr: findtxt,
-        dir: 1,
-        casesensitive: getMatchCase("matchCase1")
-    };
-    frCommond(obj);
-};
-$G("preFindBtn").onclick = function (txt, dir, mcase) {
-    var findtxt = $G("findtxt").value, obj;
-    if (!findtxt) {
-        return false;
-    }
-    obj = {
-        searchStr: findtxt,
-        dir: -1,
-        casesensitive: getMatchCase("matchCase")
-    };
-    if (!frCommond(obj)) {
-        $G('search-msg').innerHTML = lang.getStart;
-    }
-};
-$G("preReplaceBtn").onclick = function (txt, dir, mcase) {
-    var findtxt = $G("findtxt1").value, obj;
-    if (!findtxt) {
-        return false;
-    }
-    obj = {
-        searchStr: findtxt,
-        dir: -1,
-        casesensitive: getMatchCase("matchCase1")
-    };
-    frCommond(obj);
-};
-//替换
-$G("repalceBtn").onclick = function () {
-    editor.trigger('clearLastSearchResult');
-    var findtxt = $G("findtxt1").value.replace(/^\s|\s$/g, ""), obj,
-        replacetxt = $G("replacetxt").value.replace(/^\s|\s$/g, "");
-    if (!findtxt) {
-        return false;
-    }
-    if (findtxt == replacetxt || (!getMatchCase("matchCase1") && findtxt.toLowerCase() == replacetxt.toLowerCase())) {
-        return false;
-    }
-    obj = {
-        searchStr: findtxt,
-        dir: 1,
-        casesensitive: getMatchCase("matchCase1"),
-        replaceStr: replacetxt
-    };
-    frCommond(obj);
-};
-//全部替换
-$G("repalceAllBtn").onclick = function () {
-    var findtxt = $G("findtxt1").value.replace(/^\s|\s$/g, ""), obj,
-        replacetxt = $G("replacetxt").value.replace(/^\s|\s$/g, "");
-    if (!findtxt) {
-        return false;
-    }
-    if (findtxt == replacetxt || (!getMatchCase("matchCase1") && findtxt.toLowerCase() == replacetxt.toLowerCase())) {
-        return false;
-    }
-    obj = {
-        searchStr: findtxt,
-        casesensitive: getMatchCase("matchCase1"),
-        replaceStr: replacetxt,
-        all: true
-    };
-    var num = frCommond(obj);
-    if (num) {
-        $G('replace-msg').innerHTML = lang.countMsg.replace("{#count}", num);
-    }
-};
-//执行
-var frCommond = function (obj) {
-    return editor.execCommand("searchreplace", obj);
-};
-switchTab("searchtab");
-
-
-dialog.onclose = function () {
-    editor.trigger('clearLastSearchResult')
-};

+ 0 - 42
front/public/UEditorPlus/dialogs/spechars/spechars.html

@@ -1,42 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-    "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-    <title></title>
-    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
-    <script type="text/javascript" src="../internal.js?aea0c61c"></script>
-    <style type="text/css">
-        html, body {
-            overflow: hidden;
-        }
-
-        #specharsTab {
-            width: 97%;
-            margin: 10px auto;
-            zoom: 1;
-            position: relative
-        }
-
-        .tabbody {
-            height: 447px;
-        }
-
-        .tabbody span {
-            margin: 5px 3px;
-            text-align: center;
-            display: inline-block;
-            width: 40px;
-            height: 16px;
-            line-height: 16px;
-            cursor: pointer;
-        }
-    </style>
-</head>
-<body>
-<div id="specharsTab">
-    <div id="tabHeads" class="tabhead"></div>
-    <div id="tabBodys" class="tabbody"></div>
-</div>
-<script type="text/javascript" src="spechars.js?f474d0a8"></script>
-</body>
-</html>

+ 0 - 86
front/public/UEditorPlus/dialogs/spechars/spechars.js

@@ -1,86 +0,0 @@
-/**
- * Created with JetBrains PhpStorm.
- * User: xuheng
- * Date: 12-9-26
- * Time: 下午1:09
- * To change this template use File | Settings | File Templates.
- */
-var charsContent = [
-    {
-        name: "tsfh",
-        title: lang.tsfh,
-        content: toArray("、,。,·,ˉ,ˇ,¨,〃,々,—,~,‖,…,‘,’,“,”,〔,〕,〈,〉,《,》,「,」,『,』,〖,〗,【,】,±,×,÷,∶,∧,∨,∑,∏,∪,∩,∈,∷,√,⊥,∥,∠,⌒,⊙,∫,∮,≡,≌,≈,∽,∝,≠,≮,≯,≤,≥,∞,∵,∴,♂,♀,°,′,″,℃,$,¤,¢,£,‰,§,№,☆,★,○,●,◎,◇,◆,□,■,△,▲,※,→,←,↑,↓,〓,〡,〢,〣,〤,〥,〦,〧,〨,〩,㊣,㎎,㎏,㎜,㎝,㎞,㎡,㏄,㏎,㏑,㏒,㏕,︰,¬,¦,℡,ˊ,ˋ,˙,–,―,‥,‵,℅,℉,↖,↗,↘,↙,∕,∟,∣,≒,≦,≧,⊿,═,║,╒,╓,╔,╕,╖,╗,╘,╙,╚,╛,╜,╝,╞,╟,╠,╡,╢,╣,╤,╥,╦,╧,╨,╩,╪,╫,╬,╭,╮,╯,╰,╱,╲,╳,▁,▂,▃,▄,▅,▆,▇,�,█,▉,▊,▋,▌,▍,▎,▏,▓,▔,▕,▼,▽,◢,◣,◤,◥,☉,⊕,〒,〝,〞")
-    },
-    {name: "lmsz", title: lang.lmsz, content: toArray("ⅰ,ⅱ,ⅲ,ⅳ,ⅴ,ⅵ,ⅶ,ⅷ,ⅸ,ⅹ,Ⅰ,Ⅱ,Ⅲ,Ⅳ,Ⅴ,Ⅵ,Ⅶ,Ⅷ,Ⅸ,Ⅹ,Ⅺ,Ⅻ")},
-    {
-        name: "szfh",
-        title: lang.szfh,
-        content: toArray("⒈,⒉,⒊,⒋,⒌,⒍,⒎,⒏,⒐,⒑,⒒,⒓,⒔,⒕,⒖,⒗,⒘,⒙,⒚,⒛,⑴,⑵,⑶,⑷,⑸,⑹,⑺,⑻,⑼,⑽,⑾,⑿,⒀,⒁,⒂,⒃,⒄,⒅,⒆,⒇,①,②,③,④,⑤,⑥,⑦,⑧,⑨,⑩,㈠,㈡,㈢,㈣,㈤,㈥,㈦,㈧,㈨,㈩")
-    },
-    {
-        name: "rwfh",
-        title: lang.rwfh,
-        content: toArray("ぁ,あ,ぃ,い,ぅ,う,ぇ,え,ぉ,お,か,が,き,ぎ,く,ぐ,け,げ,こ,ご,さ,ざ,し,じ,す,ず,せ,ぜ,そ,ぞ,た,だ,ち,ぢ,っ,つ,づ,て,で,と,ど,な,に,ぬ,ね,の,は,ば,ぱ,ひ,び,ぴ,ふ,ぶ,ぷ,へ,べ,ぺ,ほ,ぼ,ぽ,ま,み,む,め,も,ゃ,や,ゅ,ゆ,ょ,よ,ら,り,る,れ,ろ,ゎ,わ,ゐ,ゑ,を,ん,ァ,ア,ィ,イ,ゥ,ウ,ェ,エ,ォ,オ,カ,ガ,キ,ギ,ク,グ,ケ,ゲ,コ,ゴ,サ,ザ,シ,ジ,ス,ズ,セ,ゼ,ソ,ゾ,タ,ダ,チ,ヂ,ッ,ツ,ヅ,テ,デ,ト,ド,ナ,ニ,ヌ,ネ,ノ,ハ,バ,パ,ヒ,ビ,ピ,フ,ブ,プ,ヘ,ベ,ペ,ホ,ボ,ポ,マ,ミ,ム,メ,モ,ャ,ヤ,ュ,ユ,ョ,ヨ,ラ,リ,ル,レ,ロ,ヮ,ワ,ヰ,ヱ,ヲ,ン,ヴ,ヵ,ヶ")
-    },
-    {
-        name: "xlzm",
-        title: lang.xlzm,
-        content: toArray("Α,Β,Γ,Δ,Ε,Ζ,Η,Θ,Ι,Κ,Λ,Μ,Ν,Ξ,Ο,Π,Ρ,Σ,Τ,Υ,Φ,Χ,Ψ,Ω,α,β,γ,δ,ε,ζ,η,θ,ι,κ,λ,μ,ν,ξ,ο,π,ρ,σ,τ,υ,φ,χ,ψ,ω")
-    },
-    {
-        name: "ewzm",
-        title: lang.ewzm,
-        content: toArray("А,Б,В,Г,Д,Е,Ё,Ж,З,И,Й,К,Л,М,Н,О,П,Р,С,Т,У,Ф,Х,Ц,Ч,Ш,Щ,Ъ,Ы,Ь,Э,Ю,Я,а,б,в,г,д,е,ё,ж,з,и,й,к,л,м,н,о,п,р,с,т,у,ф,х,ц,ч,ш,щ,ъ,ы,ь,э,ю,я")
-    },
-    {name: "pyzm", title: lang.pyzm, content: toArray("ā,á,ǎ,à,ē,é,ě,è,ī,í,ǐ,ì,ō,ó,ǒ,ò,ū,ú,ǔ,ù,ǖ,ǘ,ǚ,ǜ,ü")},
-    {
-        name: "yyyb",
-        title: lang.yyyb,
-        content: toArray("i:,i,e,æ,ʌ,ə:,ə,u:,u,ɔ:,ɔ,a:,ei,ai,ɔi,əu,au,iə,εə,uə,p,t,k,b,d,g,f,s,ʃ,θ,h,v,z,ʒ,ð,tʃ,tr,ts,dʒ,dr,dz,m,n,ŋ,l,r,w,j,")
-    },
-    {
-        name: "zyzf",
-        title: lang.zyzf,
-        content: toArray("ㄅ,ㄆ,ㄇ,ㄈ,ㄉ,ㄊ,ㄋ,ㄌ,ㄍ,ㄎ,ㄏ,ㄐ,ㄑ,ㄒ,ㄓ,ㄔ,ㄕ,ㄖ,ㄗ,ㄘ,ㄙ,ㄚ,ㄛ,ㄜ,ㄝ,ㄞ,ㄟ,ㄠ,ㄡ,ㄢ,ㄣ,ㄤ,ㄥ,ㄦ,ㄧ,ㄨ")
-    }
-];
-(function createTab(content) {
-    for (var i = 0, ci; ci = content[i++];) {
-        var span = document.createElement("span");
-        span.setAttribute("tabSrc", ci.name);
-        span.innerHTML = ci.title;
-        if (i == 1) span.className = "focus";
-        domUtils.on(span, "click", function () {
-            var tmps = $G("tabHeads").children;
-            for (var k = 0, sk; sk = tmps[k++];) {
-                sk.className = "";
-            }
-            tmps = $G("tabBodys").children;
-            for (var k = 0, sk; sk = tmps[k++];) {
-                sk.style.display = "none";
-            }
-            this.className = "focus";
-            $G(this.getAttribute("tabSrc")).style.display = "";
-        });
-        $G("tabHeads").appendChild(span);
-        domUtils.insertAfter(span, document.createTextNode("\n"));
-        var div = document.createElement("div");
-        div.id = ci.name;
-        div.style.display = (i == 1) ? "" : "none";
-        var cons = ci.content;
-        for (var j = 0, con; con = cons[j++];) {
-            var charSpan = document.createElement("span");
-            charSpan.innerHTML = con;
-            domUtils.on(charSpan, "click", function () {
-                editor.execCommand("insertHTML", this.innerHTML);
-                dialog.close();
-            });
-            div.appendChild(charSpan);
-        }
-        $G("tabBodys").appendChild(div);
-    }
-})(charsContent);
-
-function toArray(str) {
-    return str.split(",");
-}

BIN
front/public/UEditorPlus/dialogs/table/dragicon.png


+ 0 - 85
front/public/UEditorPlus/dialogs/table/edittable.css

@@ -1,85 +0,0 @@
-body {
-    overflow: hidden;
-    width: 540px;
-}
-
-.wrapper {
-    margin: 10px auto 0;
-    font-size: 12px;
-    overflow: hidden;
-    width: 520px;
-    height: 315px;
-}
-
-.clear {
-    clear: both;
-}
-
-.wrapper .left {
-    float: left;
-    margin-left: 10px;;
-}
-
-.wrapper .right {
-    float: right;
-    border-left: 2px dotted #EDEDED;
-    padding-left: 15px;
-}
-
-.section {
-    margin-bottom: 15px;
-    width: 240px;
-    overflow: hidden;
-}
-
-.section h3 {
-    font-weight: bold;
-    padding: 5px 0;
-    margin-bottom: 10px;
-    border-bottom: 1px solid #EDEDED;
-    font-size: 12px;
-}
-
-.section ul {
-    list-style: none;
-    overflow: hidden;
-    clear: both;
-
-}
-
-.section li {
-    float: left;
-    width: 120px;;
-}
-
-.section .tone {
-    width: 80px;;
-}
-
-.section .preview {
-    width: 220px;
-}
-
-.section .preview table {
-    text-align: center;
-    vertical-align: middle;
-    color: #666;
-}
-
-.section .preview caption {
-    font-weight: bold;
-}
-
-.section .preview td {
-    border-width: 1px;
-    border-style: solid;
-    height: 22px;
-}
-
-.section .preview th {
-    border-style: solid;
-    border-color: #DDD;
-    border-width: 2px 1px 1px 1px;
-    height: 22px;
-    background-color: #F7F7F7;
-}

+ 0 - 69
front/public/UEditorPlus/dialogs/table/edittable.html

@@ -1,69 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title></title>
-    <script type="text/javascript" src="../internal.js?aea0c61c"></script>
-    <link rel="stylesheet" type="text/css" href="edittable.css?effbbe30">
-</head>
-<body>
-<div class="wrapper">
-    <div class="left">
-        <div class="section">
-            <h3><var id="lang_tableStyle"></var></h3>
-            <ul>
-                <li>
-                    <label onselectstart="return false"><input type="checkbox" id="J_title" name="style"/><var
-                        id="lang_insertTitle"></var></label>
-                </li>
-                <li>
-                    <label onselectstart="return false"><input type="checkbox" id="J_titleCol" name="style"/><var
-                        id="lang_insertTitleCol"></var></label>
-                </li>
-            </ul>
-            <ul>
-                <li>
-                    <label onselectstart="return false"><input type="checkbox" id="J_caption" name="style"/><var
-                        id="lang_insertCaption"></var></label>
-                </li>
-                <li>
-                    <label onselectstart="return false"><input type="checkbox" id="J_sorttable" name="style"/><var
-                        id="lang_orderbycontent"></var></label>
-                </li>
-            </ul>
-            <div class="clear"></div>
-        </div>
-        <div class="section">
-            <h3><var id="lang_tableSize"></var></h3>
-            <ul>
-                <li>
-                    <label><input type="radio" id="J_autoSizeContent" name="size"/><var id="lang_autoSizeContent"></var></label>
-                </li>
-                <li>
-                    <label><input type="radio" id="J_autoSizePage" name="size"/><var
-                        id="lang_autoSizePage"></var></label>
-                </li>
-            </ul>
-            <div class="clear"></div>
-        </div>
-        <div class="section">
-            <h3><var id="lang_borderStyle"></var></h3>
-            <ul>
-                <li>
-                    <span><var id="lang_color"></var></span>
-                    <input type="text" class="tone" id="J_tone" readonly='readonly'/>
-                </li>
-            </ul>
-            <div class="clear"></div>
-        </div>
-    </div>
-    <div class="right">
-        <div class="section">
-            <h3><var id="lang_example"></var></h3>
-            <div class="preview" id="J_preview">
-            </div>
-        </div>
-    </div>
-</div>
-<script type="text/javascript" src="edittable.js?6b7a0dd4"></script>
-</body>
-</html>

+ 0 - 241
front/public/UEditorPlus/dialogs/table/edittable.js

@@ -1,241 +0,0 @@
-/**
- * Created with JetBrains PhpStorm.
- * User: xuheng
- * Date: 12-12-19
- * Time: 下午4:55
- * To change this template use File | Settings | File Templates.
- */
-(function () {
-    var title = $G("J_title"),
-        titleCol = $G("J_titleCol"),
-        caption = $G("J_caption"),
-        sorttable = $G("J_sorttable"),
-        autoSizeContent = $G("J_autoSizeContent"),
-        autoSizePage = $G("J_autoSizePage"),
-        tone = $G("J_tone"),
-        me,
-        preview = $G("J_preview");
-
-    var editTable = function () {
-        me = this;
-        me.init();
-    };
-    editTable.prototype = {
-        init: function () {
-            var colorPiker = new UE.ui.ColorPicker({
-                    editor: editor
-                }),
-                colorPop = new UE.ui.Popup({
-                    editor: editor,
-                    content: colorPiker
-                });
-
-            title.checked = editor.queryCommandState("inserttitle") == -1;
-            titleCol.checked = editor.queryCommandState("inserttitlecol") == -1;
-            caption.checked = editor.queryCommandState("insertcaption") == -1;
-            sorttable.checked = editor.queryCommandState("enablesort") == 1;
-
-            var enablesortState = editor.queryCommandState("enablesort"),
-                disablesortState = editor.queryCommandState("disablesort");
-
-            sorttable.checked = !!(enablesortState < 0 && disablesortState >= 0);
-            sorttable.disabled = !!(enablesortState < 0 && disablesortState < 0);
-            sorttable.title = enablesortState < 0 && disablesortState < 0 ? lang.errorMsg : '';
-
-            me.createTable(title.checked, titleCol.checked, caption.checked);
-            me.setAutoSize();
-            me.setColor(me.getColor());
-
-            domUtils.on(title, "click", me.titleHanler);
-            domUtils.on(titleCol, "click", me.titleColHanler);
-            domUtils.on(caption, "click", me.captionHanler);
-            domUtils.on(sorttable, "click", me.sorttableHanler);
-            domUtils.on(autoSizeContent, "click", me.autoSizeContentHanler);
-            domUtils.on(autoSizePage, "click", me.autoSizePageHanler);
-
-            domUtils.on(tone, "click", function () {
-                colorPop.showAnchor(tone);
-            });
-            domUtils.on(document, 'mousedown', function () {
-                colorPop.hide();
-            });
-            colorPiker.addListener("pickcolor", function () {
-                me.setColor(arguments[1]);
-                colorPop.hide();
-            });
-            colorPiker.addListener("picknocolor", function () {
-                me.setColor("");
-                colorPop.hide();
-            });
-        },
-
-        createTable: function (hasTitle, hasTitleCol, hasCaption) {
-            var arr = [],
-                sortSpan = '<span>^</span>';
-            arr.push("<table id='J_example'>");
-            if (hasCaption) {
-                arr.push("<caption>" + lang.captionName + "</caption>")
-            }
-            if (hasTitle) {
-                arr.push("<tr>");
-                if (hasTitleCol) {
-                    arr.push("<th>" + lang.titleName + "</th>");
-                }
-                for (var j = 0; j < 5; j++) {
-                    arr.push("<th>" + lang.titleName + "</th>");
-                }
-                arr.push("</tr>");
-            }
-            for (var i = 0; i < 6; i++) {
-                arr.push("<tr>");
-                if (hasTitleCol) {
-                    arr.push("<th>" + lang.titleName + "</th>")
-                }
-                for (var k = 0; k < 5; k++) {
-                    arr.push("<td>" + lang.cellsName + "</td>")
-                }
-                arr.push("</tr>");
-            }
-            arr.push("</table>");
-            preview.innerHTML = arr.join("");
-            this.updateSortSpan();
-        },
-        titleHanler: function () {
-            var example = $G("J_example"),
-                frg = document.createDocumentFragment(),
-                color = domUtils.getComputedStyle(domUtils.getElementsByTagName(example, "td")[0], "border-color"),
-                colCount = example.rows[0].children.length;
-
-            if (title.checked) {
-                example.insertRow(0);
-                for (var i = 0, node; i < colCount; i++) {
-                    node = document.createElement("th");
-                    node.innerHTML = lang.titleName;
-                    frg.appendChild(node);
-                }
-                example.rows[0].appendChild(frg);
-
-            } else {
-                domUtils.remove(example.rows[0]);
-            }
-            me.setColor(color);
-            me.updateSortSpan();
-        },
-        titleColHanler: function () {
-            var example = $G("J_example"),
-                color = domUtils.getComputedStyle(domUtils.getElementsByTagName(example, "td")[0], "border-color"),
-                colArr = example.rows,
-                colCount = colArr.length;
-
-            if (titleCol.checked) {
-                for (var i = 0, node; i < colCount; i++) {
-                    node = document.createElement("th");
-                    node.innerHTML = lang.titleName;
-                    colArr[i].insertBefore(node, colArr[i].children[0]);
-                }
-            } else {
-                for (var i = 0; i < colCount; i++) {
-                    domUtils.remove(colArr[i].children[0]);
-                }
-            }
-            me.setColor(color);
-            me.updateSortSpan();
-        },
-        captionHanler: function () {
-            var example = $G("J_example");
-            if (caption.checked) {
-                var row = document.createElement('caption');
-                row.innerHTML = lang.captionName;
-                example.insertBefore(row, example.firstChild);
-            } else {
-                domUtils.remove(domUtils.getElementsByTagName(example, 'caption')[0]);
-            }
-        },
-        sorttableHanler: function () {
-            me.updateSortSpan();
-        },
-        autoSizeContentHanler: function () {
-            var example = $G("J_example");
-            example.removeAttribute("width");
-        },
-        autoSizePageHanler: function () {
-            var example = $G("J_example");
-            var tds = example.getElementsByTagName(example, "td");
-            utils.each(tds, function (td) {
-                td.removeAttribute("width");
-            });
-            example.setAttribute('width', '100%');
-        },
-        updateSortSpan: function () {
-            var example = $G("J_example"),
-                row = example.rows[0];
-
-            var spans = domUtils.getElementsByTagName(example, "span");
-            utils.each(spans, function (span) {
-                span.parentNode.removeChild(span);
-            });
-            if (sorttable.checked) {
-                utils.each(row.cells, function (cell, i) {
-                    var span = document.createElement("span");
-                    span.innerHTML = "^";
-                    cell.appendChild(span);
-                });
-            }
-        },
-        getColor: function () {
-            var start = editor.selection.getStart(), color,
-                cell = domUtils.findParentByTagName(start, ["td", "th", "caption"], true);
-            color = cell && domUtils.getComputedStyle(cell, "border-color");
-            if (!color) color = "#DDDDDD";
-            return color;
-        },
-        setColor: function (color) {
-            var example = $G("J_example"),
-                arr = domUtils.getElementsByTagName(example, "td").concat(
-                    domUtils.getElementsByTagName(example, "th"),
-                    domUtils.getElementsByTagName(example, "caption")
-                );
-
-            tone.value = color;
-            utils.each(arr, function (node) {
-                node.style.borderColor = color;
-            });
-
-        },
-        setAutoSize: function () {
-            var me = this;
-            autoSizePage.checked = true;
-            me.autoSizePageHanler();
-        }
-    };
-
-    new editTable;
-
-    dialog.onok = function () {
-        editor.__hasEnterExecCommand = true;
-
-        var checks = {
-            title: "inserttitle deletetitle",
-            titleCol: "inserttitlecol deletetitlecol",
-            caption: "insertcaption deletecaption",
-            sorttable: "enablesort disablesort"
-        };
-        editor.fireEvent('saveScene');
-        for (var i in checks) {
-            var cmds = checks[i].split(" "),
-                input = $G("J_" + i);
-            if (input["checked"]) {
-                editor.queryCommandState(cmds[0]) != -1 && editor.execCommand(cmds[0]);
-            } else {
-                editor.queryCommandState(cmds[1]) != -1 && editor.execCommand(cmds[1]);
-            }
-        }
-
-        editor.execCommand("edittable", tone.value);
-        autoSizeContent.checked ? editor.execCommand('adaptbytext') : "";
-        autoSizePage.checked ? editor.execCommand("adaptbywindow") : "";
-        editor.fireEvent('saveScene');
-
-        editor.__hasEnterExecCommand = false;
-    };
-})();

+ 0 - 62
front/public/UEditorPlus/dialogs/table/edittd.html

@@ -1,62 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title></title>
-    <script type="text/javascript" src="../internal.js?aea0c61c"></script>
-    <style type="text/css">
-        .section {
-            text-align: center;
-            margin-top: 10px;
-        }
-
-        .section input {
-            margin-left: 5px;
-            width: 70px;
-        }
-    </style>
-</head>
-<body>
-<div class="section">
-    <span><var id="lang_tdBkColor"></var></span>
-    <input type="text" id="J_tone"/>
-</div>
-<script type="text/javascript">
-    var tone = $G("J_tone"),
-        colorPiker = new UE.ui.ColorPicker({
-            editor: editor
-        }),
-        colorPop = new UE.ui.Popup({
-            editor: editor,
-            content: colorPiker
-        });
-    domUtils.on(tone, "click", function () {
-        colorPop.showAnchor(tone);
-    });
-    domUtils.on(document, 'mousedown', function () {
-        colorPop.hide();
-    });
-    colorPiker.addListener("pickcolor", function () {
-        tone.value = arguments[1];
-        colorPop.hide();
-    });
-    colorPiker.addListener("picknocolor", function () {
-        tone.value = "";
-        colorPop.hide();
-    });
-    dialog.onok = function () {
-        editor.execCommand("edittd", tone.value);
-    };
-
-    var start = editor.selection.getStart(),
-        cell = start && domUtils.findParentByTagName(start, ["td", "th"], true);
-    if (cell) {
-        var color = domUtils.getComputedStyle(cell, 'background-color');
-        if (/^#/.test(color)) {
-            tone.value = color
-        }
-
-    }
-
-</script>
-</body>
-</html>

+ 0 - 33
front/public/UEditorPlus/dialogs/table/edittip.html

@@ -1,33 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title>表格删除提示</title>
-    <script type="text/javascript" src="../internal.js?aea0c61c"></script>
-    <style type="text/css">
-        .section {
-            width: 200px;
-            margin: 10px auto 0;
-            font-size: 14px;
-        }
-
-        .item {
-            text-align: center;
-        }
-    </style>
-</head>
-<body>
-<div class="section">
-    <div class="item">
-        <label><input type="radio" id="J_delRow" name="cmd" checked/><var id="lang_delRow"></var></label>
-    </div>
-    <div class="item">
-        <label><input type="radio" id="J_delCol" name="cmd"/><var id="lang_delCol"></var></label>
-    </div>
-</div>
-<script type="text/javascript">
-    dialog.onok = function () {
-        $G("J_delRow").checked ? editor.execCommand("deleterow") : editor.execCommand("deletecol");
-    };
-</script>
-</body>
-</html>

Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor