Bladeren bron

图片下载优化完成、文章精选等功能完成

xjc 2 jaren geleden
bovenliggende
commit
3a583f554a
100 gewijzigde bestanden met toevoegingen van 2662 en 8988 verwijderingen
  1. 2 0
      src/common/models.py
  2. 5 3
      src/manage/controls.py
  3. 13 10
      src/manage/views.py
  4. 4 1
      src/settings/settings_online.py
  5. 2508 2506
      src/tools/code.csv
  6. 55 25
      src/utils/plottool.py
  7. 54 3
      src/weixin/controls.py
  8. 1 0
      src/weixin/urls_backstage.py
  9. 20 3
      src/weixin/views.py
  10. 0 1
      templates/index.html
  11. 0 40
      templates/static/UEditor/dialogs/anchor/anchor.html
  12. 0 681
      templates/static/UEditor/dialogs/attachment/attachment.css
  13. 0 60
      templates/static/UEditor/dialogs/attachment/attachment.html
  14. 0 760
      templates/static/UEditor/dialogs/attachment/attachment.js
  15. BIN
      templates/static/UEditor/dialogs/attachment/fileTypeImages/icon_chm.gif
  16. BIN
      templates/static/UEditor/dialogs/attachment/fileTypeImages/icon_default.png
  17. BIN
      templates/static/UEditor/dialogs/attachment/fileTypeImages/icon_doc.gif
  18. BIN
      templates/static/UEditor/dialogs/attachment/fileTypeImages/icon_exe.gif
  19. BIN
      templates/static/UEditor/dialogs/attachment/fileTypeImages/icon_jpg.gif
  20. BIN
      templates/static/UEditor/dialogs/attachment/fileTypeImages/icon_mp3.gif
  21. BIN
      templates/static/UEditor/dialogs/attachment/fileTypeImages/icon_mv.gif
  22. BIN
      templates/static/UEditor/dialogs/attachment/fileTypeImages/icon_pdf.gif
  23. BIN
      templates/static/UEditor/dialogs/attachment/fileTypeImages/icon_ppt.gif
  24. BIN
      templates/static/UEditor/dialogs/attachment/fileTypeImages/icon_psd.gif
  25. BIN
      templates/static/UEditor/dialogs/attachment/fileTypeImages/icon_rar.gif
  26. BIN
      templates/static/UEditor/dialogs/attachment/fileTypeImages/icon_txt.gif
  27. BIN
      templates/static/UEditor/dialogs/attachment/fileTypeImages/icon_xls.gif
  28. BIN
      templates/static/UEditor/dialogs/attachment/images/alignicon.gif
  29. BIN
      templates/static/UEditor/dialogs/attachment/images/alignicon.png
  30. BIN
      templates/static/UEditor/dialogs/attachment/images/bg.png
  31. BIN
      templates/static/UEditor/dialogs/attachment/images/file-icons.gif
  32. BIN
      templates/static/UEditor/dialogs/attachment/images/file-icons.png
  33. BIN
      templates/static/UEditor/dialogs/attachment/images/icons.gif
  34. BIN
      templates/static/UEditor/dialogs/attachment/images/icons.png
  35. BIN
      templates/static/UEditor/dialogs/attachment/images/image.png
  36. BIN
      templates/static/UEditor/dialogs/attachment/images/progress.png
  37. BIN
      templates/static/UEditor/dialogs/attachment/images/success.gif
  38. BIN
      templates/static/UEditor/dialogs/attachment/images/success.png
  39. 0 94
      templates/static/UEditor/dialogs/background/background.css
  40. 0 56
      templates/static/UEditor/dialogs/background/background.html
  41. 0 376
      templates/static/UEditor/dialogs/background/background.js
  42. BIN
      templates/static/UEditor/dialogs/background/images/bg.png
  43. BIN
      templates/static/UEditor/dialogs/background/images/success.png
  44. 0 65
      templates/static/UEditor/dialogs/charts/chart.config.js
  45. 0 165
      templates/static/UEditor/dialogs/charts/charts.css
  46. 0 89
      templates/static/UEditor/dialogs/charts/charts.html
  47. 0 519
      templates/static/UEditor/dialogs/charts/charts.js
  48. BIN
      templates/static/UEditor/dialogs/charts/images/charts0.png
  49. BIN
      templates/static/UEditor/dialogs/charts/images/charts1.png
  50. BIN
      templates/static/UEditor/dialogs/charts/images/charts2.png
  51. BIN
      templates/static/UEditor/dialogs/charts/images/charts3.png
  52. BIN
      templates/static/UEditor/dialogs/charts/images/charts4.png
  53. BIN
      templates/static/UEditor/dialogs/charts/images/charts5.png
  54. 0 43
      templates/static/UEditor/dialogs/emotion/emotion.css
  55. 0 54
      templates/static/UEditor/dialogs/emotion/emotion.html
  56. 0 186
      templates/static/UEditor/dialogs/emotion/emotion.js
  57. BIN
      templates/static/UEditor/dialogs/emotion/images/0.gif
  58. BIN
      templates/static/UEditor/dialogs/emotion/images/bface.gif
  59. BIN
      templates/static/UEditor/dialogs/emotion/images/cface.gif
  60. BIN
      templates/static/UEditor/dialogs/emotion/images/fface.gif
  61. BIN
      templates/static/UEditor/dialogs/emotion/images/jxface2.gif
  62. BIN
      templates/static/UEditor/dialogs/emotion/images/neweditor-tab-bg.png
  63. BIN
      templates/static/UEditor/dialogs/emotion/images/tface.gif
  64. BIN
      templates/static/UEditor/dialogs/emotion/images/wface.gif
  65. BIN
      templates/static/UEditor/dialogs/emotion/images/yface.gif
  66. 0 89
      templates/static/UEditor/dialogs/gmap/gmap.html
  67. 0 7
      templates/static/UEditor/dialogs/help/help.css
  68. 0 82
      templates/static/UEditor/dialogs/help/help.html
  69. 0 56
      templates/static/UEditor/dialogs/help/help.js
  70. 0 894
      templates/static/UEditor/dialogs/image/image.css
  71. 0 120
      templates/static/UEditor/dialogs/image/image.html
  72. 0 1148
      templates/static/UEditor/dialogs/image/image.js
  73. BIN
      templates/static/UEditor/dialogs/image/images/alignicon.jpg
  74. BIN
      templates/static/UEditor/dialogs/image/images/bg.png
  75. BIN
      templates/static/UEditor/dialogs/image/images/icons.gif
  76. BIN
      templates/static/UEditor/dialogs/image/images/icons.png
  77. BIN
      templates/static/UEditor/dialogs/image/images/image.png
  78. BIN
      templates/static/UEditor/dialogs/image/images/progress.png
  79. BIN
      templates/static/UEditor/dialogs/image/images/success.gif
  80. BIN
      templates/static/UEditor/dialogs/image/images/success.png
  81. 0 98
      templates/static/UEditor/dialogs/insertframe/insertframe.html
  82. 0 81
      templates/static/UEditor/dialogs/internal.js
  83. 0 126
      templates/static/UEditor/dialogs/link/link.html
  84. 0 135
      templates/static/UEditor/dialogs/map/map.html
  85. 0 118
      templates/static/UEditor/dialogs/map/show.html
  86. 0 30
      templates/static/UEditor/dialogs/music/music.css
  87. 0 32
      templates/static/UEditor/dialogs/music/music.html
  88. 0 192
      templates/static/UEditor/dialogs/music/music.js
  89. 0 40
      templates/static/UEditor/dialogs/preview/preview.html
  90. BIN
      templates/static/UEditor/dialogs/scrawl/images/addimg.png
  91. BIN
      templates/static/UEditor/dialogs/scrawl/images/brush.png
  92. BIN
      templates/static/UEditor/dialogs/scrawl/images/delimg.png
  93. BIN
      templates/static/UEditor/dialogs/scrawl/images/delimgH.png
  94. BIN
      templates/static/UEditor/dialogs/scrawl/images/empty.png
  95. BIN
      templates/static/UEditor/dialogs/scrawl/images/emptyH.png
  96. BIN
      templates/static/UEditor/dialogs/scrawl/images/eraser.png
  97. BIN
      templates/static/UEditor/dialogs/scrawl/images/redo.png
  98. BIN
      templates/static/UEditor/dialogs/scrawl/images/redoH.png
  99. BIN
      templates/static/UEditor/dialogs/scrawl/images/scale.png
  100. 0 0
      templates/static/UEditor/dialogs/scrawl/images/scaleH.png

+ 2 - 0
src/common/models.py

@@ -160,6 +160,7 @@ class Match(models.Model):
     signup_start_time = models.CharField(u"报名开始时间", max_length=255, blank=True,null=True)
     signup_end_time = models.CharField(u"报名结束时间", max_length=255, blank=True,null=True)
     post_start_time = models.CharField(u"交作业开始时间", max_length=255, blank=True,null=True)
+    awards_content = models.TextField(u"奖项内容", max_length=255, blank=True,null=True)
 
     ctime = models.DateTimeField(u"创建时间", auto_now_add=True)
 
@@ -286,6 +287,7 @@ class Article(models.Model):
     status = models.SmallIntegerField(u"下线/上线/编辑中-1/2/1",default=1)
     isbanner = models.SmallIntegerField(u"是否banner",default=0)
     category = models.CharField(u"类型", max_length=255, blank=True,null=True)         
+    ishot = models.SmallIntegerField(u"是否精选",default=0)
                                                                                    
     ctime = models.DateTimeField(u"创建时间",auto_now_add=True)                    
     class Meta:                                                                    

+ 5 - 3
src/manage/controls.py

@@ -471,6 +471,8 @@ def get_list_info(cls,**kwargs):
             qset = qset.filter(category=kwargs.get("category"))
         if kwargs.get("isbanner"):
             qset = qset.filter(isbanner=kwargs.get("isbanner"))
+        if kwargs.get("ishot"):
+            qset = qset.filter(ishot=kwargs.get("ishot"))
     if model_name == "Stock":
         if kwargs.get("username"):
             qset = qset.filter(name__icontains=kwargs.get("username"))
@@ -710,12 +712,12 @@ def download_records_image(request):
     if kwargs.get("stock_date"):
         qset = qset.filter(stock_date=kwargs.get("stock_date"))
         if match_group_name:
-            title = u'{}-{}-{}'.format(match_name, match_group_name, kwargs.get("stock_date")[5:])
+            title = u'{}-{}-{}'.format(match_name[:7], match_group_name, kwargs.get("stock_date")[5:])
         else:
-            title = u'{}-{}'.format(match_name, kwargs.get("stock_date")[5:])
+            title = u'{}-{}'.format(match_name[:7], kwargs.get("stock_date")[5:])
     else:
         if match_group_name:
-            title = u'{}-{}'.format(match_name, match_group_name)
+            title = u'{}-{}'.format(match_name[:7], match_group_name)
         else:
             title = match_name
 

+ 13 - 10
src/manage/views.py

@@ -286,7 +286,8 @@ class MatchView(cv.AdminView):
         if mse:
             raise ce.TipException(mse)
         try:
-            need_params.extend(["calendar","valid_dates","player_price","viewer_price","match_status","signup_start_time","signup_end_time","post_start_time"])
+            need_params.extend(["calendar","valid_dates","player_price","viewer_price",
+                "match_status","signup_start_time","signup_end_time","post_start_time","awards_content"])
             vals = ccf.get_need_params(*need_params,**qdata)
             vals["valid_dates"] = json.dumps(vals["valid_dates"])
             rst = ctl.add_model(self,**vals)
@@ -308,7 +309,8 @@ class MatchView(cv.AdminView):
         if mse:
             raise ce.TipException(mse)
         try:
-            need_params.extend(["calendar","valid_dates","signup_start_time","signup_end_time","match_status","post_start_time"])
+            need_params.extend(["calendar","valid_dates","signup_start_time","signup_end_time",
+                "match_status","post_start_time","awards_content"])
             vals = ccf.get_need_params(*need_params,**qdata)
             vals["valid_dates"] = json.dumps(vals["valid_dates"])
             rst = ctl.update_model(self,**vals)
@@ -611,20 +613,21 @@ class PlayerRecordDownloadView(cv.AdminView):
             return cv.to_fail(e)
 
 
-class PlayerRecordDownloadImageView(cv.AdminView):
+class PlayerRecordDownloadImageView(cv.BaseView):
     def get(self, request):
         """download player record as image
         """
         try:
-            r = ctl.download_records_image(request)
-            if r is None:
-                return cv.to_fail('ret is None')
-            return cv.to_suc(r)
+            zipfile = ctl.download_records_image(request)
+            wrapper = FileWrapper(zipfile)
+            response = HttpResponse(wrapper, content_type='application/zip')    
+            response['Content-Disposition'] = 'attachment;filename={}'\
+                 .format(ccf.datetime_to_str(datetime.datetime.now(),"%Y%m%d%H%M%S")+".zip")
+            return response                                                     
         except Exception as e:
             cv.tracefail()
             return cv.to_fail(e)
 
-
 class PlayerFastSaveView(cv.AdminView):
 
     def gen_code(self):
@@ -708,7 +711,7 @@ class ArticleView(cv.AdminView):
         if mse:
             raise ce.TipException(mse)
         try:
-            need_params.extend(["type","img","category","isbanner"])
+            need_params.extend(["type","img","category","isbanner","ishot"])
             vals = ccf.get_need_params(*need_params,**qdata)
             rst = ctl.add_model(self,**vals)
             return cv.to_suc(rst)
@@ -728,7 +731,7 @@ class ArticleView(cv.AdminView):
         if mse:
             raise ce.TipException(mse)
         try:
-            need_params.extend(["type","img","category","isbanner"])
+            need_params.extend(["type","img","category","isbanner","ishot"])
             vals = ccf.get_need_params(*need_params,**qdata)
             rst = ctl.update_model(self,**vals)
             return cv.to_suc(rst)

+ 4 - 1
src/settings/settings_online.py

@@ -30,7 +30,10 @@ DATABASES = {
         'PASSWORD': 'wanzb890*()',
         'HOST': '172.29.110.52',
         'PORT': '3306',
-        'OPTIONS':{'charset':'utf8mb4'},
+        'OPTIONS':{
+            'charset':'utf8mb4',
+            "connect_timeout":120
+        },
         'CONN_MAX_AGE': 9
     }
 }

File diff suppressed because it is too large
+ 2508 - 2506
src/tools/code.csv


+ 55 - 25
src/utils/plottool.py

@@ -3,6 +3,8 @@ import re
 import StringIO
 import uuid
 import logging
+import zipfile,os
+import tempfile
 
 import matplotlib as mpl
 mpl.use('Agg')
@@ -10,24 +12,38 @@ mpl.rcParams['font.family'] = ['SimHei', 'sans-serif']
 
 import matplotlib.pyplot as plt
 import matplotlib.table as tb
-
-from utils.upload_to_oss import hnoss
+#from utils.upload_to_oss import hnoss
+
+def get_zipfile(files):                                                             
+    """                                                                            
+    """                                                                             
+    path = os.path.split(files[0])[0]                                               
+    temp = tempfile.TemporaryFile()                                                 
+    archive = zipfile.ZipFile(temp, 'w', zipfile.ZIP_DEFLATED)
+    for f in files:
+        fname = os.path.split(f)[-1]
+        archive.write(f,fname)
+        os.remove(f)
+    archive.close()
+    temp.seek(0)
+    return temp
 
 
 def plot_records_as_table_and_convert_to_png(
     (nrows, ncols),
     data,
     col_headers=None,
-    title=None):
+    title=None,localfile=None):
     """
     visual records
     """
     fig_width = ncols
-    offset = 0
+    h_offset = t_offset = 0
     if col_headers:
-        offset += 1
+        h_offset = 1
     if title:
-        offset += 1
+        t_offset = 1
+    offset = h_offset + t_offset
     fig_height = offset * 2
 
     table_data = []
@@ -52,27 +68,34 @@ def plot_records_as_table_and_convert_to_png(
 
     if title:
         for i in range(ncols):
-            table.add_cell(0, i, width=widths[i], height=height * 2, edgecolor='red', facecolor='red', loc='right')
+            table.add_cell(0, i, width=widths[i], height=height * 4, edgecolor='red', facecolor='red', loc='right')
         table[0, 6].get_text().set_text(title)
-        table[0, 6].set_fontsize(14)
+        table[0, 6].set_fontsize(25)
+        table[0, 6].set_text_props(weight='bold')
         table[0, 6].get_text().set_color('yellow')
 
     if col_headers:
         for i in range(ncols):
-            table.add_cell(1, i, width=widths[i], height=height * 2, facecolor='yellow', text=col_headers[i], loc='center')
-            # table[1, i].set_fontsize(10)
+            table.add_cell(t_offset, i, width=widths[i], height=height * 2, facecolor='yellow', text=col_headers[i], loc='center')
+            table[t_offset, i].set_fontsize(12)
+            table[t_offset, i].set_edgecolor('grey')
 
     for i in range(nrows):
         for j in range(ncols):
             table.add_cell(i + offset, j, width=widths[j], height=height*row_heights_mul[i], text=table_data[i][j], loc='center')
-            # table[i + offset, j].set_fontsize(10)
+            table[i + offset, j].set_fontsize(14)
+            table[i + offset, j].set_edgecolor('grey')
             if not table_data[i][5].startswith('-'):
                 table[i + offset, j].get_text().set_color('red')
 
     ax.add_table(table)
-    buf = StringIO.StringIO()
-    plt.savefig(buf, format='png')
-    return buf.getvalue()
+    if localfile:
+        plt.savefig(localfile, format='png')
+        return localfile
+    else:
+        buf = StringIO.StringIO()
+        plt.savefig(buf, format='png')
+        return buf.getvalue()
 
 
 def plot_records(data, col_headers, title, prefix):
@@ -82,33 +105,40 @@ def plot_records(data, col_headers, title, prefix):
     ncols = len(col_headers) if col_headers else len(data[0])
 
     ret = []
+    files = []
     start = 0
-    step = 100
+    step = 120
     while True:
+    	if start==0 and ('百万组' in title or '十万组' in title or '菜鸟组' in title ):
+    		step = 10
+    	else:
+    		step = 120
+    		
         part = data[start: start + step]
         part_nrows = len(part)
+        filename = u'/tmp/{}-{}.png'.format(title.split('-')[1], start)
 
         if start == 0:
             png_bytes = plot_records_as_table_and_convert_to_png(
                 (part_nrows, ncols),
                 part,
                 col_headers,
-                title)
+                title,filename)
         else:
             png_bytes = plot_records_as_table_and_convert_to_png(
                 (part_nrows, ncols),
-                part)
-        filename = u'{}-第{}-{}名.png'.format(title, start + 1, start + part_nrows)
+                part,None,None,filename)
         logging.error(filename)
-        image_url = hnoss.upload_from_str(
-            png_bytes,
-            '{}_{}.png'.format(prefix, uuid.uuid4().hex),
-            False)
-        ret.append({'filename': filename, 'image_url': image_url})
+        files.append(filename)
+        #image_url = hnoss.upload_from_str(
+        #    png_bytes,
+        #    '{}_{}.png'.format(prefix, uuid.uuid4().hex),
+        #    False)
+        #ret.append({'filename': filename, 'image_url': image_url})
 
         start += step
         if start >= nrows:
             break
-
-    return ret
+    zpfile = get_zipfile(files)
+    return zpfile
 

+ 54 - 3
src/weixin/controls.py

@@ -1647,7 +1647,7 @@ def get_champion_articles_list(request):
     _type = kwargs.get("type")
     isbanner = kwargs.get("isbanner")
     category = kwargs.get("category")
-    qset = cm.Article.objects.filter(status=2).exclude(type="notice").order_by("-id")
+    qset = cm.Article.objects.filter(status=2).exclude(type="notice").order_by("-isbanner","-ishot","-id")
     if _type:
         qset = qset.filter(type=_type)
     if isbanner:
@@ -3432,8 +3432,8 @@ def get_match_group_winlose_statistic(**qdata):
     """
     """
     match_id = qdata.get("match_id")
-
     today = qdata.get("stock_date")
+
     if not today:
         today = get_today_date()
 
@@ -3455,6 +3455,7 @@ def get_match_group_winlose_statistic(**qdata):
         group_id = int(item["match_group"])
         if match_group_status_dct.get(group_id)>0:
             group_win_lose_list.append({
+	            "match_id":match_id,
                 "match_group":group_id,
                 "match_group_name":match_group_dct.get(group_id),
                 "today_fund":"{}".format(round(item["today_fund"],2)),
@@ -3502,11 +3503,16 @@ def get_user_markscore_list(**kwargs):
     """
     """
     today = kwargs.get("stock_date")
+    user_id = kwargs.get("user_id")
     if not today:
         today = get_today_date()
     qset = cm.UserMarkScore.objects.filter(stock_date=today)
     qdata = list(qset.values("score").annotate(cnt=Count("score")))
-
+    for item in qdata:
+        if item["user_id"] == user_id:
+            item["mark_status"] = 1
+        else:
+            item["mark_status"] = 0
     rst = {"total":qset.count(),"list":qdata}
     return rst
 
@@ -3519,3 +3525,48 @@ def check_user_markscore(**kwargs):
         return 1
     else:
         return 0
+
+
+def get_match_group_winlose_allday(**qdata):
+    """
+    """
+    match_id = qdata.get("match_id")
+    group_id = qdata.get("group_id")
+    today = qdata.get("stock_date")
+
+    if not today:
+        today = get_today_date()
+
+    match_group_dct = {}
+    matchGroup = cm.MatchGroup.objects.filter(match_id=match_id).order_by("-order")
+    for item in matchGroup:
+        match_group_dct[item.id] = item.name
+
+    prset = cm.PlayerRecord.get_db_model(match_id).objects.filter(match_id=match_id,match_group=group_id)
+
+    all_day = list(set(prset.values_list("stock_date",flat=True)))
+    for stock_date in all_day: 
+        group_win_lose_list = []
+        #今日总资产,总收益,平均收益
+        prdata = prset.values("match_group","stock_date").annotate(today_fund=Sum("today_fund"),
+            today_income=Sum("today_income"),cnt=Count("today_income")).order_by("match_group")
+
+        for item in prdata:
+            group_id = int(item["match_group"])
+            group_win_lose_list.append({
+                "stock_date":stock_date,
+                "match_group":group_id,
+                "match_group_name":match_group_dct.get(group_id),
+                "today_fund":"{}".format(round(item["today_fund"],2)),
+                "today_income":"{}%".format(round(item["today_income"]*100,2)),
+                "today_income_avg":"{}%".format(round(item["today_income"]/item["cnt"]*100,2)) if item["cnt"] else 0.0
+            })
+    #group_win_lose_list = sorted(group_win_lose_list,key=lambda x:x["match_group"],reverse=True)
+
+    prset = cm.PlayerRecord.get_db_model(match_id).objects.filter(match_id=match_id,stock_date=today)
+    #今日全部人均收益率
+    total = prset.aggregate(total=Sum("today_income")).get("total")
+    today_win_lose_avg = "{}%".format(round(total/prset.count()*100,2)) if prset.count()>0 else 0.0
+
+    rst = {"today_win_lose_avg":today_win_lose_avg,"group_win_lose_list":group_win_lose_list}
+    return rst

+ 1 - 0
src/weixin/urls_backstage.py

@@ -112,6 +112,7 @@ urlpatterns = [
     url(r'^v3/user/markscore$', views.UserMarkScoreView.as_view()),
     url(r'^v3/user/markscore/list$', views.UserMarkScoreListView.as_view()),
     url(r'^v3/user/markscore/check$', views.UserMarkScoreCheckView.as_view()),
+    url(r'^v3/match/group/winlose/allday$', views.MatchGroupWinloseAllDayView.as_view()),
     
 ]
 

+ 20 - 3
src/weixin/views.py

@@ -546,7 +546,7 @@ class DefendRankView(cv.AuthView):
             return cv.to_fail(e)
 
 
-class ChampionArticleListView(cv.AuthView):                                                    
+class ChampionArticleListView(cv.BaseView):                                                    
     def get(self, request):                                                        
         """#冠军心得(2.0小程序)                                                       
         """                                                                        
@@ -1636,11 +1636,14 @@ class UserMarkScoreView(cv.AuthView):
         """
         qdata = request.json
         now = datetime.datetime.now()
-        need_params = ["stock_date","score"]
+        need_params = ["score"]
         mse = ccf.check_params(*need_params,**qdata)
         if mse:
             raise ce.TipException(mse)
         try:
+            today = qdata.get("stock_date")
+            if not today:
+                today = get_today_date()
             vals["user_id"] = request.user.get("id")
             vals = ccf.get_need_params(*need_params,**qdata)
             rst = ctl.user_mark_score(**vals)
@@ -1650,12 +1653,13 @@ class UserMarkScoreView(cv.AuthView):
             return cv.to_fail(e)
 
 
-class UserMarkScoreListView(cv.BaseView):
+class UserMarkScoreListView(cv.AuthView):
     def get(self, request):
         """#获取分组盈亏统计量
         """
         qdata = request.json
         try:
+            qdata["user_id"] = request.user.get("id")
             rst = ctl.get_user_markscore_list(**qdata)
             return cv.to_suc(rst)
         except Exception as e:
@@ -1675,3 +1679,16 @@ class UserMarkScoreCheckView(cv.AuthView):
         except Exception as e:
             cv.tracefail()
             return cv.to_fail(e)
+
+
+class MatchGroupWinloseAllDayView(cv.BaseView):
+    def get(self, request):
+        """#获取分组盈亏统计量
+        """
+        qdata = request.json
+        try:
+            rst = ctl.get_match_group_winlose_allday(**qdata)
+            return cv.to_suc(rst)
+        except Exception as e:
+            cv.tracefail()
+            return cv.to_fail(e)

File diff suppressed because it is too large
+ 0 - 1
templates/index.html


+ 0 - 40
templates/static/UEditor/dialogs/anchor/anchor.html

@@ -1,40 +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{width:210px;height:21px;line-height:21px;margin-left: 4px;}
-        </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"></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 - 681
templates/static/UEditor/dialogs/attachment/attachment.css

@@ -1,681 +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: 13px;
-    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 - 60
templates/static/UEditor/dialogs/attachment/attachment.html

@@ -1,60 +0,0 @@
-<!doctype html>
-<html>
-<head>
-    <meta charset="UTF-8">
-    <title>ueditor图片对话框</title>
-    <script type="text/javascript" src="../internal.js"></script>
-
-    <!-- jquery -->
-    <script type="text/javascript" src="../../third-party/jquery-1.10.2.min.js"></script>
-
-    <!-- webuploader -->
-    <script src="../../third-party/webuploader/webuploader.min.js"></script>
-    <link rel="stylesheet" type="text/css" href="../../third-party/webuploader/webuploader.css">
-
-    <!-- attachment dialog -->
-    <link rel="stylesheet" href="attachment.css" 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"></script>
-
-</body>
-</html>

+ 0 - 760
templates/static/UEditor/dialogs/attachment/attachment.js

@@ -1,760 +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,
-                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) {
-                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参数
-                header['X_Requested_With'] = 'XMLHttpRequest';
-                // HaoChuan9421
-                if(editor.options.headers && Object.prototype.toString.apply(editor.options.headers) === "[object Object]"){
-                    for(var key in editor.options.headers){
-                        header[key] = editor.options.headers[key]
-                    }
-                }
-            });
-
-            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>');
-                    } 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')),
-                    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].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
templates/static/UEditor/dialogs/attachment/fileTypeImages/icon_chm.gif


BIN
templates/static/UEditor/dialogs/attachment/fileTypeImages/icon_default.png


BIN
templates/static/UEditor/dialogs/attachment/fileTypeImages/icon_doc.gif


BIN
templates/static/UEditor/dialogs/attachment/fileTypeImages/icon_exe.gif


BIN
templates/static/UEditor/dialogs/attachment/fileTypeImages/icon_jpg.gif


BIN
templates/static/UEditor/dialogs/attachment/fileTypeImages/icon_mp3.gif


BIN
templates/static/UEditor/dialogs/attachment/fileTypeImages/icon_mv.gif


BIN
templates/static/UEditor/dialogs/attachment/fileTypeImages/icon_pdf.gif


BIN
templates/static/UEditor/dialogs/attachment/fileTypeImages/icon_ppt.gif


BIN
templates/static/UEditor/dialogs/attachment/fileTypeImages/icon_psd.gif


BIN
templates/static/UEditor/dialogs/attachment/fileTypeImages/icon_rar.gif


BIN
templates/static/UEditor/dialogs/attachment/fileTypeImages/icon_txt.gif


BIN
templates/static/UEditor/dialogs/attachment/fileTypeImages/icon_xls.gif


BIN
templates/static/UEditor/dialogs/attachment/images/alignicon.gif


BIN
templates/static/UEditor/dialogs/attachment/images/alignicon.png


BIN
templates/static/UEditor/dialogs/attachment/images/bg.png


BIN
templates/static/UEditor/dialogs/attachment/images/file-icons.gif


BIN
templates/static/UEditor/dialogs/attachment/images/file-icons.png


BIN
templates/static/UEditor/dialogs/attachment/images/icons.gif


BIN
templates/static/UEditor/dialogs/attachment/images/icons.png


BIN
templates/static/UEditor/dialogs/attachment/images/image.png


BIN
templates/static/UEditor/dialogs/attachment/images/progress.png


BIN
templates/static/UEditor/dialogs/attachment/images/success.gif


BIN
templates/static/UEditor/dialogs/attachment/images/success.png


+ 0 - 94
templates/static/UEditor/dialogs/background/background.css

@@ -1,94 +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 - 56
templates/static/UEditor/dialogs/background/background.html

@@ -1,56 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
-    <script type="text/javascript" src="../internal.js"></script>
-    <link rel="stylesheet" type="text/css" href="background.css">
-</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>
-            <span class="" data-content-id="imgManager"><var id="lang_background_local"></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 id="imgManager" class="panel">
-                <div id="imageList" style=""></div>
-            </div>
-        </div>
-    </div>
-    <script type="text/javascript" src="background.js"></script>
-</body>
-</html>

+ 0 - 376
templates/static/UEditor/dialogs/background/background.js

@@ -1,376 +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";
-                        if(contentId == 'imgManager') {
-                            initImagePanel();
-                        }
-                    }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 initImagePanel() {
-        onlineImage = onlineImage || new OnlineImage('imageList');
-    }
-
-    /* 更新背景色设置面板 */
-    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')),
-                    '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
templates/static/UEditor/dialogs/background/images/bg.png


BIN
templates/static/UEditor/dialogs/background/images/success.png


+ 0 - 65
templates/static/UEditor/dialogs/charts/chart.config.js

@@ -1,65 +0,0 @@
-/*
- * 图表配置文件
- * */
-
-
-//不同类型的配置
-var typeConfig = [
-    {
-        chart: {
-            type: 'line'
-        },
-        plotOptions: {
-            line: {
-                dataLabels: {
-                    enabled: false
-                },
-                enableMouseTracking: true
-            }
-        }
-    }, {
-        chart: {
-            type: 'line'
-        },
-        plotOptions: {
-            line: {
-                dataLabels: {
-                    enabled: true
-                },
-                enableMouseTracking: false
-            }
-        }
-    }, {
-        chart: {
-            type: 'area'
-        }
-    }, {
-        chart: {
-            type: 'bar'
-        }
-    }, {
-        chart: {
-            type: 'column'
-        }
-    }, {
-        chart: {
-            plotBackgroundColor: null,
-            plotBorderWidth: null,
-            plotShadow: false
-        },
-        plotOptions: {
-            pie: {
-                allowPointSelect: true,
-                cursor: 'pointer',
-                dataLabels: {
-                    enabled: true,
-                    color: '#000000',
-                    connectorColor: '#000000',
-                    formatter: function() {
-                        return '<b>'+ this.point.name +'</b>: '+ ( Math.round( this.point.percentage*100 ) / 100 ) +' %';
-                    }
-                }
-            }
-        }
-    }
-];

+ 0 - 165
templates/static/UEditor/dialogs/charts/charts.css

@@ -1,165 +0,0 @@
-html, body {
-    width: 100%;
-    height: 100%;
-    margin: 0;
-    padding: 0;
-    overflow-x: hidden;
-}
-
-.main {
-    width: 100%;
-    overflow: hidden;
-}
-
-.table-view {
-    height: 100%;
-    float: left;
-    margin: 20px;
-    width: 40%;
-}
-
-.table-view .table-container {
-    width: 100%;
-    margin-bottom: 50px;
-    overflow: scroll;
-}
-
-.table-view th {
-    padding: 5px 10px;
-    background-color: #F7F7F7;
-}
-
-.table-view td {
-    width: 50px;
-    text-align: center;
-    padding:0;
-}
-
-.table-container input {
-    width: 40px;
-    padding: 5px;
-    border: none;
-    outline: none;
-}
-
-.table-view caption {
-    font-size: 18px;
-    text-align: left;
-}
-
-.charts-view {
-    /*margin-left: 49%!important;*/
-    width: 50%;
-    margin-left: 49%;
-    height: 400px;
-}
-
-.charts-container {
-    border-left: 1px solid #c3c3c3;
-}
-
-.charts-format fieldset {
-    padding-left: 20px;
-    margin-bottom: 50px;
-}
-
-.charts-format legend {
-    padding-left: 10px;
-    padding-right: 10px;
-}
-
-.format-item-container {
-    padding: 20px;
-}
-
-.format-item-container label {
-    display: block;
-    margin: 10px 0;
-}
-
-.charts-format .data-item {
-    border: 1px solid black;
-    outline: none;
-    padding: 2px 3px;
-}
-
-/* 图表类型 */
-
-.charts-type {
-    margin-top: 50px;
-    height: 300px;
-}
-
-.scroll-view {
-    border: 1px solid #c3c3c3;
-    border-left: none;
-    border-right: none;
-    overflow: hidden;
-}
-
-.scroll-container {
-    margin: 20px;
-    width: 100%;
-    overflow: hidden;
-}
-
-.scroll-bed {
-    width: 10000px;
-    _margin-top: 20px;
-    -webkit-transition: margin-left .5s ease;
-    -moz-transition: margin-left .5s ease;
-    transition: margin-left .5s ease;
-}
-
-.view-box {
-    display: inline-block;
-    *display: inline;
-    *zoom: 1;
-    margin-right: 20px;
-    border: 2px solid white;
-    line-height: 0;
-    overflow: hidden;
-    cursor: pointer;
-}
-
-.view-box img {
-    border: 1px solid #cecece;
-}
-
-.view-box.selected {
-    border-color: #7274A7;
-}
-
-.button-container {
-    margin-bottom: 20px;
-    text-align: center;
-}
-
-.button-container a {
-    display: inline-block;
-    width: 100px;
-    height: 25px;
-    line-height: 25px;
-    border: 1px solid #c2ccd1;
-    margin-right: 30px;
-    text-decoration: none;
-    color: black;
-    -webkit-border-radius: 2px;
-    -moz-border-radius: 2px;
-    border-radius: 2px;
-}
-
-.button-container a:HOVER {
-    background: #fcfcfc;
-}
-
-.button-container a:ACTIVE {
-    border-top-color: #c2ccd1;
-    box-shadow:inset 0 5px 4px -4px rgba(49, 49, 64, 0.1);
-}
-
-.edui-charts-not-data {
-    height: 100px;
-    line-height: 100px;
-    text-align: center;
-}

+ 0 - 89
templates/static/UEditor/dialogs/charts/charts.html

@@ -1,89 +0,0 @@
-<!DOCTYPE html>
-<html>
-    <head>
-        <title>chart</title>
-        <meta chartset="utf-8">
-        <link rel="stylesheet" type="text/css" href="charts.css">
-        <script type="text/javascript" src="../internal.js"></script>
-    </head>
-    <body>
-        <div class="main">
-            <div class="table-view">
-                <h3><var id="lang_data_source"></var></h3>
-                <div id="tableContainer" class="table-container"></div>
-                <h3><var id="lang_chart_format"></var></h3>
-                <form name="data-form">
-                    <div class="charts-format">
-                        <fieldset>
-                            <legend><var id="lang_data_align"></var></legend>
-                            <div class="format-item-container">
-                                <label>
-                                    <input type="radio" class="format-ctrl not-pie-item" name="charts-format" value="1" checked="checked">
-                                    <var id="lang_chart_align_same"></var>
-                                </label>
-                                <label>
-                                    <input type="radio" class="format-ctrl not-pie-item" name="charts-format" value="-1">
-                                    <var id="lang_chart_align_reverse"></var>
-                                </label>
-                                <br>
-                            </div>
-                        </fieldset>
-                        <fieldset>
-                            <legend><var id="lang_chart_title"></var></legend>
-                            <div class="format-item-container">
-                                <label>
-                                    <var id="lang_chart_main_title"></var><input type="text" name="title" class="data-item">
-                                </label>
-                                <label>
-                                    <var id="lang_chart_sub_title"></var><input type="text" name="sub-title" class="data-item not-pie-item">
-                                </label>
-                                <label>
-                                    <var id="lang_chart_x_title"></var><input type="text" name="x-title" class="data-item not-pie-item">
-                                </label>
-                                <label>
-                                    <var id="lang_chart_y_title"></var><input type="text" name="y-title" class="data-item not-pie-item">
-                                </label>
-                            </div>
-                        </fieldset>
-                        <fieldset>
-                            <legend><var id="lang_chart_tip"></var></legend>
-                            <div class="format-item-container">
-                                <label>
-                                    <var id="lang_cahrt_tip_prefix"></var>
-                                    <input type="text" id="tipInput" name="tip" class="data-item" disabled="disabled">
-                                </label>
-                                <p><var id="lang_cahrt_tip_description"></var></p>
-                            </div>
-                        </fieldset>
-                        <fieldset>
-                            <legend><var id="lang_chart_data_unit"></var></legend>
-                            <div class="format-item-container">
-                                <label><var id="lang_chart_data_unit_title"></var><input type="text" name="unit" class="data-item"></label>
-                                <p><var id="lang_chart_data_unit_description"></var></p>
-                            </div>
-                        </fieldset>
-                    </div>
-                </form>
-            </div>
-            <div class="charts-view">
-                <div id="chartsContainer" class="charts-container"></div>
-                <div id="chartsType" class="charts-type">
-                    <h3><var id="lang_chart_type"></var></h3>
-                    <div class="scroll-view">
-                        <div class="scroll-container">
-                            <div id="scrollBed" class="scroll-bed"></div>
-                        </div>
-                        <div id="buttonContainer" class="button-container">
-                            <a href="#" data-title="prev"><var id="lang_prev_btn"></var></a>
-                            <a href="#" data-title="next"><var id="lang_next_btn"></var></a>
-                        </div>
-                    </div>
-                </div>
-            </div>
-        </div>
-        <script src="../../third-party/jquery-1.10.2.min.js"></script>
-        <script src="../../third-party/highcharts/highcharts.js"></script>
-        <script src="chart.config.js"></script>
-        <script src="charts.js"></script>
-    </body>
-</html>

+ 0 - 519
templates/static/UEditor/dialogs/charts/charts.js

@@ -1,519 +0,0 @@
-/*
- * 图片转换对话框脚本
- **/
-
-var tableData = [],
-    //编辑器页面table
-    editorTable = null,
-    chartsConfig = window.typeConfig,
-    resizeTimer = null,
-    //初始默认图表类型
-    currentChartType = 0;
-
-window.onload = function () {
-
-    editorTable = domUtils.findParentByTagName( editor.selection.getRange().startContainer, 'table', true);
-
-    //未找到表格, 显示错误页面
-    if ( !editorTable ) {
-        document.body.innerHTML = "<div class='edui-charts-not-data'>未找到数据</div>";
-        return;
-    }
-
-    //初始化图表类型选择
-    initChartsTypeView();
-    renderTable( editorTable );
-    initEvent();
-    initUserConfig( editorTable.getAttribute( "data-chart" ) );
-    $( "#scrollBed .view-box:eq("+ currentChartType +")" ).trigger( "click" );
-    updateViewType( currentChartType );
-
-    dialog.addListener( "resize", function () {
-
-        if ( resizeTimer != null ) {
-            window.clearTimeout( resizeTimer );
-        }
-
-        resizeTimer = window.setTimeout( function () {
-
-            resizeTimer = null;
-
-            renderCharts();
-
-        }, 500 );
-
-    } );
-
-};
-
-function initChartsTypeView () {
-
-    var contents = [];
-
-    for ( var i = 0, len = chartsConfig.length; i<len; i++ ) {
-
-        contents.push( '<div class="view-box" data-chart-type="'+ i +'"><img width="300" src="images/charts'+ i +'.png"></div>' );
-
-    }
-
-    $( "#scrollBed" ).html( contents.join( "" ) );
-
-}
-
-//渲染table, 以便用户修改数据
-function renderTable ( table ) {
-
-    var tableHtml = [];
-
-    //构造数据
-    for ( var i = 0, row; row = table.rows[ i ]; i++ ) {
-
-        tableData[ i ] = [];
-        tableHtml[ i ] = [];
-
-        for ( var j = 0, cell; cell = row.cells[ j ]; j++ ) {
-
-            var value = getCellValue( cell );
-
-            if ( i > 0 && j > 0 ) {
-                value = +value;
-            }
-
-            if ( i === 0 || j === 0 ) {
-                tableHtml[ i ].push( '<th>'+ value +'</th>' );
-            } else {
-                tableHtml[ i ].push( '<td><input type="text" class="data-item" value="'+ value +'"></td>' );
-            }
-
-            tableData[ i ][ j ] = value;
-
-        }
-
-        tableHtml[ i ] = tableHtml[ i ].join( "" );
-
-    }
-
-    //draw 表格
-    $( "#tableContainer" ).html( '<table id="showTable" border="1"><tbody><tr>'+ tableHtml.join( "</tr><tr>" ) +'</tr></tbody></table>' );
-
-}
-
-/*
- * 根据表格已有的图表属性初始化当前图表属性
- */
-function initUserConfig ( config ) {
-
-    var parsedConfig = {};
-
-    if ( !config ) {
-        return;
-    }
-
-    config = config.split( ";" );
-
-    $.each( config, function ( index, item ) {
-
-        item = item.split( ":" );
-        parsedConfig[ item[ 0 ] ] = item[ 1 ];
-
-    } );
-
-    setUserConfig( parsedConfig );
-
-}
-
-function initEvent () {
-
-    var cacheValue = null,
-        //图表类型数
-        typeViewCount = chartsConfig.length- 1,
-        $chartsTypeViewBox = $( '#scrollBed .view-box' );
-
-    $( ".charts-format" ).delegate( ".format-ctrl", "change", function () {
-
-        renderCharts();
-
-    } )
-
-    $( ".table-view" ).delegate( ".data-item", "focus", function () {
-
-        cacheValue = this.value;
-
-    } ).delegate( ".data-item", "blur", function () {
-
-        if ( this.value !== cacheValue ) {
-            renderCharts();
-        }
-
-        cacheValue = null;
-
-    } );
-
-    $( "#buttonContainer" ).delegate( "a", "click", function (e) {
-
-        e.preventDefault();
-
-        if ( this.getAttribute( "data-title" ) === 'prev' ) {
-
-            if ( currentChartType > 0 ) {
-                currentChartType--;
-                updateViewType( currentChartType );
-            }
-
-        } else {
-
-            if ( currentChartType < typeViewCount ) {
-                currentChartType++;
-                updateViewType( currentChartType );
-            }
-
-        }
-
-    } );
-
-    //图表类型变化
-    $( '#scrollBed' ).delegate( ".view-box", "click", function (e) {
-
-        var index = $( this ).attr( "data-chart-type" );
-        $chartsTypeViewBox.removeClass( "selected" );
-        $( $chartsTypeViewBox[ index ] ).addClass( "selected" );
-
-        currentChartType = index | 0;
-
-        //饼图, 禁用部分配置
-        if ( currentChartType === chartsConfig.length - 1 ) {
-
-            disableNotPieConfig();
-
-        //启用完整配置
-        } else {
-
-            enableNotPieConfig();
-
-        }
-
-        renderCharts();
-
-    } );
-
-}
-
-function renderCharts () {
-
-    var data = collectData();
-
-    $('#chartsContainer').highcharts( $.extend( {}, chartsConfig[ currentChartType ], {
-
-        credits: {
-            enabled: false
-        },
-        exporting: {
-            enabled: false
-        },
-        title: {
-            text: data.title,
-            x: -20 //center
-        },
-        subtitle: {
-            text: data.subTitle,
-            x: -20
-        },
-        xAxis: {
-            title: {
-                text: data.xTitle
-            },
-            categories: data.categories
-        },
-        yAxis: {
-            title: {
-                text: data.yTitle
-            },
-            plotLines: [{
-                value: 0,
-                width: 1,
-                color: '#808080'
-            }]
-        },
-        tooltip: {
-            enabled: true,
-            valueSuffix: data.suffix
-        },
-        legend: {
-            layout: 'vertical',
-            align: 'right',
-            verticalAlign: 'middle',
-            borderWidth: 1
-        },
-        series: data.series
-
-    } ));
-
-}
-
-function updateViewType ( index ) {
-
-    $( "#scrollBed" ).css( 'marginLeft', -index*324+'px' );
-
-}
-
-function collectData () {
-
-    var form = document.forms[ 'data-form' ],
-        data = null;
-
-    if ( currentChartType !== chartsConfig.length - 1 ) {
-
-        data = getSeriesAndCategories();
-        $.extend( data, getUserConfig() );
-
-    //饼图数据格式
-    } else {
-        data = getSeriesForPieChart();
-        data.title = form[ 'title' ].value;
-        data.suffix = form[ 'unit' ].value;
-    }
-
-    return data;
-
-}
-
-/**
- * 获取用户配置信息
- */
-function getUserConfig () {
-
-    var form = document.forms[ 'data-form' ],
-        info = {
-            title: form[ 'title' ].value,
-            subTitle: form[ 'sub-title' ].value,
-            xTitle: form[ 'x-title' ].value,
-            yTitle: form[ 'y-title' ].value,
-            suffix: form[ 'unit' ].value,
-            //数据对齐方式
-            tableDataFormat: getTableDataFormat (),
-            //饼图提示文字
-            tip: $( "#tipInput" ).val()
-        };
-
-    return info;
-
-}
-
-function setUserConfig ( config ) {
-
-    var form = document.forms[ 'data-form' ];
-
-    config.title && ( form[ 'title' ].value = config.title );
-    config.subTitle && ( form[ 'sub-title' ].value = config.subTitle );
-    config.xTitle && ( form[ 'x-title' ].value = config.xTitle );
-    config.yTitle && ( form[ 'y-title' ].value = config.yTitle );
-    config.suffix && ( form[ 'unit' ].value = config.suffix );
-    config.dataFormat == "-1" && ( form[ 'charts-format' ][ 1 ].checked = true );
-    config.tip && ( form[ 'tip' ].value = config.tip );
-    currentChartType = config.chartType || 0;
-
-}
-
-function getSeriesAndCategories () {
-
-    var form = document.forms[ 'data-form' ],
-        series = [],
-        categories = [],
-        tmp = [],
-        tableData = getTableData();
-
-    //反转数据
-    if ( getTableDataFormat() === "-1" ) {
-
-        for ( var i = 0, len = tableData.length; i < len; i++ ) {
-
-            for ( var j = 0, jlen = tableData[ i ].length; j < jlen; j++ ) {
-
-                if ( !tmp[ j ] ) {
-                    tmp[ j ] = [];
-                }
-
-                tmp[ j ][ i ] = tableData[ i ][ j ];
-
-            }
-
-        }
-
-        tableData = tmp;
-
-    }
-
-    categories = tableData[0].slice( 1 );
-
-    for ( var i = 1, data; data = tableData[ i ]; i++ ) {
-
-        series.push( {
-            name: data[ 0 ],
-            data: data.slice( 1 )
-        } );
-
-    }
-
-    return {
-        series: series,
-        categories: categories
-    };
-
-}
-
-/*
- * 获取数据源数据对齐方式
- */
-function getTableDataFormat () {
-
-    var form = document.forms[ 'data-form' ],
-        items = form['charts-format'];
-
-    return items[ 0 ].checked ? items[ 0 ].value : items[ 1 ].value;
-
-}
-
-/*
- * 禁用非饼图类型的配置项
- */
-function disableNotPieConfig() {
-
-    updateConfigItem( 'disable' );
-
-}
-
-/*
- * 启用非饼图类型的配置项
- */
-function enableNotPieConfig() {
-
-    updateConfigItem( 'enable' );
-
-}
-
-function updateConfigItem ( value ) {
-
-    var table = $( "#showTable" )[ 0 ],
-        isDisable = value === 'disable' ? true : false;
-
-    //table中的input处理
-    for ( var i = 2 , row; row = table.rows[ i ]; i++ ) {
-
-        for ( var j = 1, cell; cell = row.cells[ j ]; j++ ) {
-
-            $( "input", cell ).attr( "disabled", isDisable );
-
-        }
-
-    }
-
-    //其他项处理
-    $( "input.not-pie-item" ).attr( "disabled", isDisable );
-    $( "#tipInput" ).attr( "disabled", !isDisable )
-
-}
-
-/*
- * 获取饼图数据
- * 饼图的数据只取第一行的
- **/
-function getSeriesForPieChart () {
-
-    var series = {
-            type: 'pie',
-            name: $("#tipInput").val(),
-            data: []
-        },
-        tableData = getTableData();
-
-
-    for ( var j = 1, jlen = tableData[ 0 ].length; j < jlen; j++ ) {
-
-        var title = tableData[ 0 ][ j ],
-            val = tableData[ 1 ][ j ];
-
-        series.data.push( [ title, val ] );
-
-    }
-
-    return {
-        series: [ series ]
-    };
-
-}
-
-function getTableData () {
-
-    var table = document.getElementById( "showTable" ),
-        xCount = table.rows[0].cells.length - 1,
-        values = getTableInputValue();
-
-    for ( var i = 0, value; value = values[ i ]; i++ ) {
-
-        tableData[ Math.floor( i / xCount ) + 1 ][ i % xCount + 1 ] = values[ i ];
-
-    }
-
-    return tableData;
-
-}
-
-function getTableInputValue () {
-
-    var table = document.getElementById( "showTable" ),
-        inputs = table.getElementsByTagName( "input" ),
-        values = [];
-
-    for ( var i = 0, input; input = inputs[ i ]; i++ ) {
-        values.push( input.value | 0 );
-    }
-
-    return values;
-
-}
-
-function getCellValue ( cell ) {
-
-    var value = utils.trim( ( cell.innerText || cell.textContent || '' ) );
-
-    return value.replace( new RegExp( UE.dom.domUtils.fillChar, 'g' ), '' ).replace( /^\s+|\s+$/g, '' );
-
-}
-
-
-//dialog确认事件
-dialog.onok = function () {
-
-    //收集信息
-    var form = document.forms[ 'data-form' ],
-        info = getUserConfig();
-
-    //添加图表类型
-    info.chartType = currentChartType;
-
-    //同步表格数据到编辑器
-    syncTableData();
-
-    //执行图表命令
-    editor.execCommand( 'charts', info );
-
-};
-
-/*
- * 同步图表编辑视图的表格数据到编辑器里的原始表格
- */
-function syncTableData () {
-
-    var tableData = getTableData();
-
-    for ( var i = 1, row; row = editorTable.rows[ i ]; i++ ) {
-
-        for ( var j = 1, cell; cell = row.cells[ j ]; j++ ) {
-
-            cell.innerHTML = tableData[ i ] [ j ];
-
-        }
-
-    }
-
-}

BIN
templates/static/UEditor/dialogs/charts/images/charts0.png


BIN
templates/static/UEditor/dialogs/charts/images/charts1.png


BIN
templates/static/UEditor/dialogs/charts/images/charts2.png


BIN
templates/static/UEditor/dialogs/charts/images/charts3.png


BIN
templates/static/UEditor/dialogs/charts/images/charts4.png


BIN
templates/static/UEditor/dialogs/charts/images/charts5.png


+ 0 - 43
templates/static/UEditor/dialogs/emotion/emotion.css

@@ -1,43 +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;}

File diff suppressed because it is too large
+ 0 - 54
templates/static/UEditor/dialogs/emotion/emotion.html


+ 0 - 186
templates/static/UEditor/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
templates/static/UEditor/dialogs/emotion/images/0.gif


BIN
templates/static/UEditor/dialogs/emotion/images/bface.gif


BIN
templates/static/UEditor/dialogs/emotion/images/cface.gif


BIN
templates/static/UEditor/dialogs/emotion/images/fface.gif


BIN
templates/static/UEditor/dialogs/emotion/images/jxface2.gif


BIN
templates/static/UEditor/dialogs/emotion/images/neweditor-tab-bg.png


BIN
templates/static/UEditor/dialogs/emotion/images/tface.gif


BIN
templates/static/UEditor/dialogs/emotion/images/wface.gif


BIN
templates/static/UEditor/dialogs/emotion/images/yface.gif


+ 0 - 89
templates/static/UEditor/dialogs/gmap/gmap.html

@@ -1,89 +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>
-    <script type="text/javascript" src="../internal.js"></script>
-    <style type="text/css">
-        .content{width:530px; height: 350px;margin: 10px auto;}
-        .content table{width: 100%}
-        .content table td{vertical-align: middle;}
-        #address{width:220px;height:21px;background: #FFF;border:1px solid #d7d7d7; line-height: 21px;}
-    </style>
-    <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
-</head>
-<body>
-<div class="content">
-    <table>
-        <tr>
-            <td><label for="address"><var id="lang_input_address"></var></label></td>
-            <td><input id="address" type="text" /></td>
-            <td><a id="doSearch" href="javascript:void(0)" class="button"><var id="lang_input_search"></var></a></td>
-        </tr>
-    </table>
-    <div id="container" style="width: 100%; height: 340px;margin: 5px auto; border: 1px solid gray;"></div>
-</div>
-<script type="text/javascript">
-    domUtils.on(window,"load",function(){
-        var map = new google.maps.Map(document.getElementById('container'), {
-                zoom: 3,
-                streetViewControl: false,
-                scaleControl: true,
-                mapTypeId: google.maps.MapTypeId.ROADMAP
-            });
-            var imgcss;
-            var marker = new google.maps.Marker({
-                map: map,
-                draggable: true
-            });
-            function doSearch(){
-                var address = document.getElementById('address').value;
-                var geocoder = new google.maps.Geocoder();
-                geocoder.geocode( { 'address': address}, function (results, status) {
-                    if (status == google.maps.GeocoderStatus.OK) {
-                        var bounds = results[0].geometry.viewport;
-                        map.fitBounds(bounds);
-                        marker.setPosition(results[0].geometry.location);
-                        marker.setTitle(address);
-                    } else alert(lang.searchError);
-                });
-            }
-            $G('address').onkeydown = function (evt){
-                evt = evt || event;
-                if (evt.keyCode == 13) {
-                    doSearch();
-                }
-            };
-            $G("doSearch").onclick = doSearch;
-            dialog.onok = function (){
-                var center = map.getCenter();
-                var point = marker.getPosition();
-                var url = "http://maps.googleapis.com/maps/api/staticmap?center=" + center.lat() + ',' + center.lng() + "&zoom=" + map.zoom + "&size=520x340&maptype=" + map.getMapTypeId() + "&markers=" + point.lat() + ',' + point.lng() + "&sensor=false";
-                editor.execCommand('inserthtml', '<img width="520" height="340" src="' + url + '"' + (imgcss ? ' style="' + imgcss + '"' :'') + '/>');
-            };
-
-            function getPars(str,par){
-                var reg = new RegExp(par+"=((\\d+|[.,])*)","g");
-                return reg.exec(str)[1];
-            }
-            var img = editor.selection.getRange().getClosedNode();
-            if(img && img.src.indexOf("http://maps.googleapis.com/maps/api/staticmap")!=-1){
-                var url = img.getAttribute("src");
-                var centers = getPars(url,"center").split(",");
-                point = new google.maps.LatLng(Number(centers[0]),Number(centers[1]));
-                map.setCenter(point);
-                map.setZoom(Number(getPars(url,"zoom")));
-                centers = getPars(url,"markers").split(",");
-                marker.setPosition(new google.maps.LatLng(Number(centers[0]),Number(centers[1])));
-                imgcss = img.style.cssText;
-            }else{
-                setTimeout(function(){
-                    doSearch();
-                },30)
-            }
-    });
-
-</script>
-</body>
-</html>

+ 0 - 7
templates/static/UEditor/dialogs/help/help.css

@@ -1,7 +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
templates/static/UEditor/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"></script>
-    <link rel="stylesheet" type="text/css" href="help.css">
-</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</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"></script>
-</body>
-</html>

+ 0 - 56
templates/static/UEditor/dialogs/help/help.js

@@ -1,56 +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 - 894
templates/static/UEditor/dialogs/image/image.css

@@ -1,894 +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 {
-    border-color: #66afe9;
-    outline: 0;
-    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6);
-    box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6);
-}
-#remote #url{
-    width: 500px;
-    margin-bottom: 2px;
-}
-#remote #width,
-#remote #height{
-    width: 20px;
-    margin-left: 2px;
-    margin-right: 2px;
-}
-#remote #border,
-#remote #vhSpace,
-#remote #title{
-    width: 180px;
-    margin-right: 5px;
-}
-#remote #lock{
-}
-#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;
-}
-
-
-/* 图片搜索样式 */
-#search .searchBar {
-    width: 100%;
-    height: 30px;
-    margin: 10px 0 5px 0;
-    padding: 0;
-}
-
-#search 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;
-}
-#search input.text:focus {
-    border-color: #66afe9;
-    outline: 0;
-    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6);
-    box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6);
-}
-#search input.searchTxt {
-    margin-left:5px;
-    padding-left: 5px;
-    background: #FFF;
-    width: 300px;
-    *width: 260px;
-    height: 21px;
-    line-height: 21px;
-    float: left;
-    dislay: block;
-}
-
-#search .searchType {
-    width: 65px;
-    height: 28px;
-    padding:0;
-    line-height: 28px;
-    border: 1px solid #d7d7d7;
-    border-radius: 0;
-    vertical-align: top;
-    margin-left: 5px;
-    float: left;
-    dislay: block;
-}
-
-#search #searchBtn,
-#search #searchReset {
-    display: inline-block;
-    margin-bottom: 0;
-    margin-right: 5px;
-    padding: 4px 10px;
-    font-weight: 400;
-    text-align: center;
-    vertical-align: middle;
-    cursor: pointer;
-    background-image: none;
-    border: 1px solid transparent;
-    white-space: nowrap;
-    font-size: 14px;
-    border-radius: 4px;
-    -webkit-user-select: none;
-    -moz-user-select: none;
-    -ms-user-select: none;
-    user-select: none;
-    vertical-align: top;
-    float: right;
-}
-
-#search #searchBtn {
-    color: white;
-    border-color: #285e8e;
-    background-color: #3b97d7;
-}
-#search #searchReset {
-    color: #333;
-    border-color: #ccc;
-    background-color: #fff;
-}
-#search #searchBtn:hover {
-    background-color: #3276b1;
-}
-#search #searchReset:hover {
-    background-color: #eee;
-}
-
-#search .msg {
-    margin-left: 5px;
-}
-
-#search .searchList{
-    width: 100%;
-    height: 300px;
-    overflow: hidden;
-    clear: both;
-}
-#search .searchList ul{
-    margin:0;
-    padding:0;
-    list-style:none;
-    clear: both;
-    width: 100%;
-    height: 100%;
-    overflow-x: hidden;
-    overflow-y: auto;
-    zoom: 1;
-    position: relative;
-}
-
-#search .searchList li {
-    list-style:none;
-    float: left;
-    display: block;
-    width: 115px;
-    margin: 5px 10px 5px 20px;
-    *margin: 5px 10px 5px 15px;
-    padding:0;
-    font-size: 12px;
-    box-shadow: 0 1px 3px rgba(0, 0, 0, .3);
-    -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, .3);
-    -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, .3);
-    position: relative;
-    vertical-align: top;
-    text-align: center;
-    overflow: hidden;
-    cursor: pointer;
-    filter: alpha(Opacity=100);
-    -moz-opacity: 1;
-    opacity: 1;
-    border: 2px solid #eee;
-}
-
-#search .searchList li.selected {
-    filter: alpha(Opacity=40);
-    -moz-opacity: 0.4;
-    opacity: 0.4;
-    border: 2px solid #00a0e9;
-}
-
-#search .searchList li p {
-    background-color: #eee;
-    margin: 0;
-    padding: 0;
-    position: relative;
-    width:100%;
-    height:115px;
-    overflow: hidden;
-}
-
-#search .searchList li p img {
-    cursor: pointer;
-    border: 0;
-}
-
-#search .searchList li a {
-    color: #999;
-    border-top: 1px solid #F2F2F2;
-    background: #FAFAFA;
-    text-align: center;
-    display: block;
-    padding: 0 5px;
-    width: 105px;
-    height:32px;
-    line-height:32px;
-    white-space:nowrap;
-    text-overflow:ellipsis;
-    text-decoration: none;
-    overflow: hidden;
-    word-break: break-all;
-}
-
-#search .searchList a:hover {
-    text-decoration: underline;
-    color: #333;
-}
-#search .searchList .clearFloat{
-    clear: both;
-}

+ 0 - 120
templates/static/UEditor/dialogs/image/image.html

@@ -1,120 +0,0 @@
-<!doctype html>
-<html>
-<head>
-    <meta charset="UTF-8">
-    <title>ueditor图片对话框</title>
-    <script type="text/javascript" src="../internal.js"></script>
-
-    <!-- jquery -->
-    <script type="text/javascript" src="../../third-party/jquery-1.10.2.min.js"></script>
-
-    <!-- webuploader -->
-    <script src="../../third-party/webuploader/webuploader.min.js"></script>
-    <link rel="stylesheet" type="text/css" href="../../third-party/webuploader/webuploader.css">
-
-    <!-- image dialog -->
-    <link rel="stylesheet" href="image.css" type="text/css" />
-</head>
-<body>
-
-    <div class="wrapper">
-        <div id="tabhead" class="tabhead">
-            <span class="tab" data-content-id="remote"><var id="lang_tab_remote"></var></span>
-            <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>
-            <span class="tab" data-content-id="search"><var id="lang_tab_search"></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>
-                    </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"></script>
-
-</body>
-</html>

File diff suppressed because it is too large
+ 0 - 1148
templates/static/UEditor/dialogs/image/image.js


BIN
templates/static/UEditor/dialogs/image/images/alignicon.jpg


BIN
templates/static/UEditor/dialogs/image/images/bg.png


BIN
templates/static/UEditor/dialogs/image/images/icons.gif


BIN
templates/static/UEditor/dialogs/image/images/icons.png


BIN
templates/static/UEditor/dialogs/image/images/image.png


BIN
templates/static/UEditor/dialogs/image/images/progress.png


BIN
templates/static/UEditor/dialogs/image/images/success.gif


BIN
templates/static/UEditor/dialogs/image/images/success.png


+ 0 - 98
templates/static/UEditor/dialogs/insertframe/insertframe.html

@@ -1,98 +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"></script>
-    <style type="text/css">
-        .warp {width: 320px;height: 153px;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: center; 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
templates/static/UEditor/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 - 126
templates/static/UEditor/dialogs/link/link.html

@@ -1,126 +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"></script>
-    <style type="text/css">
-        *{margin:0;padding:0;color: #838383;}
-        table{font-size: 12px;margin: 10px;line-height: 30px}
-        .txt{width:300px;height:21px;line-height:21px;border:1px solid #d7d7d7;}
-    </style>
-</head>
-<body>
-    <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>
-<script type="text/javascript">
-    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,["http","/","ftp://",'#'])) {
-                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,["http","/","ftp://",'#'])){
-            $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 - 135
templates/static/UEditor/dialogs/map/map.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"></script>
-    <script type="text/javascript" src="http://api.map.baidu.com/api?v=1.1&services=true"></script>
-    <style type="text/css">
-        .content{width:530px; height: 350px;margin: 10px auto;}
-        .content table{width: 100%}
-        .content table td{vertical-align: middle;}
-        #city,#address{height:21px;background: #FFF;border:1px solid #d7d7d7; line-height: 21px;}
-        #city{width:60px}
-        #address{width:130px}
-        #is_dynamic_label span{vertical-align:middle;margin: 3px 0px 3px 3px;}
-        #is_dynamic_label input{vertical-align:middle;margin: 3px 3px 3px 50px;}
-    </style>
-</head>
-<body>
-<div class="content">
-    <table>
-        <tr>
-            <td><var id="lang_city"></var>:</td>
-            <td><input id="city" type="text" /></td>
-            <td><var id="lang_address"></var>:</td>
-            <td><input id="address" type="text" value="" /></td>
-            <td><a href="javascript:doSearch()" class="button"><var id="lang_search"></var></a></td>
-            <td><label id="is_dynamic_label" for="is_dynamic"><input id="is_dynamic" type="checkbox" name="is_dynamic" /><span><var id="lang_dynamicmap"></var></span></label></td>
-        </tr>
-    </table>
-    <div style="width:100%;height:340px;margin:5px auto;border:1px solid gray" id="container"></div>
-
-</div>
-<script type="text/javascript">
-    var map = new BMap.Map("container"),marker,point,styleStr;
-    map.enableScrollWheelZoom();
-    map.enableContinuousZoom();
-    function doSearch(){
-        if (!document.getElementById('city').value) {
-            alert(lang.cityMsg);
-            return;
-        }
-        var search = new BMap.LocalSearch(document.getElementById('city').value, {
-            onSearchComplete: function (results){
-                if (results && results.getNumPois()) {
-                    var points = [];
-                    for (var i=0; i<results.getCurrentNumPois(); i++) {
-                        points.push(results.getPoi(i).point);
-                    }
-                    if (points.length > 1) {
-                        map.setViewport(points);
-                    } else {
-                        map.centerAndZoom(points[0], 13);
-                    }
-                    point = map.getCenter();
-                    marker.setPoint(point);
-                } else {
-                    alert(lang.errorMsg);
-                }
-            }
-        });
-        search.search(document.getElementById('address').value || document.getElementById('city').value);
-    }
-    //获得参数
-    function getPars(str,par){
-        var reg = new RegExp(par+"=((\\d+|[.,])*)","g");
-        return reg.exec(str)[1];
-    }
-    function init(){
-        var mapNode = editor.selection.getRange().getClosedNode(),
-            isMapImg = mapNode && /api[.]map[.]baidu[.]com/ig.test(mapNode.getAttribute("src")),
-            isMapIframe = mapNode && domUtils.hasClass(mapNode, 'ueditor_baidumap');
-        if(isMapImg || isMapIframe){
-            var url, centerPos, markerPos;
-            if(isMapIframe) {
-                url = decodeURIComponent(mapNode.getAttribute("src"));
-                $G('is_dynamic').checked = true;
-                styleStr = mapNode.style.cssText;
-            } else {
-                url = mapNode.getAttribute("src");
-                styleStr = mapNode.style.cssText;
-            }
-
-            centerPos = getPars(url,"center").split(",");
-            markerPos = getPars(url, "markers").split(",");
-            point = new BMap.Point(Number(centerPos[0]),Number(centerPos[1]));
-            marker = new BMap.Marker(new BMap.Point(Number(markerPos[0]), Number(markerPos[1])));
-            map.addControl(new BMap.NavigationControl());
-            map.centerAndZoom(point, Number(getPars(url,"zoom")));
-        }else{
-            point = new BMap.Point(116.404, 39.915);    // 创建点坐标
-            marker = new BMap.Marker(point);
-            map.addControl(new BMap.NavigationControl());
-            map.centerAndZoom(point, 10);                     // 初始化地图,设置中心点坐标和地图级别。
-        }
-        marker.enableDragging();
-        map.addOverlay(marker);
-    }
-    init();
-    document.getElementById('address').onkeydown = function (evt){
-        evt = evt || event;
-        if (evt.keyCode == 13) {
-            doSearch();
-        }
-    };
-    dialog.onok = function (){
-        var center = map.getCenter();
-        var zoom = map.zoomLevel;
-        var size = map.getSize();
-        var mapWidth = size.width;
-        var mapHeight = size.height;
-        var point = marker.getPoint();
-
-        if($G('is_dynamic').checked) {
-            var URL = editor.options.UEDITOR_HOME_URL,
-                url = [URL + (/\/$/.test(URL) ? '':'/') + "dialogs/map/show.html" +
-                    '#center=' + center.lng + ',' + center.lat,
-                    '&zoom=' + zoom,
-                    '&width=' + mapWidth,
-                    '&height=' + mapHeight,
-                    '&markers=' + point.lng + ',' + point.lat,
-                    '&markerStyles=' + 'l,A'].join('');
-            editor.execCommand('inserthtml', '<iframe class="ueditor_baidumap" src="' + url + '"' + (styleStr ? ' style="' + styleStr + '"' :'') + ' frameborder="0" width="' + (mapWidth+4) + '" height="' + (mapHeight+4) + '"></iframe>');
-        } else {
-            var url = "http://api.map.baidu.com/staticimage?center=" + center.lng + ',' + center.lat +
-                    "&zoom=" + zoom + "&width=" + size.width + '&height=' + size.height + "&markers=" + point.lng + ',' + point.lat;
-            editor.execCommand('inserthtml', '<img width="'+ size.width +'"height="'+ size.height +'" src="' + url + '"' + (styleStr ? ' style="' + styleStr + '"' :'') + '/>');
-        }
-    };
-    document.getElementById("address").focus();
-</script>
-
-
-</body>
-</html>

+ 0 - 118
templates/static/UEditor/dialogs/map/show.html

@@ -1,118 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-    <meta charset="utf-8"/>
-    <meta name="keywords" content="百度地图,百度地图API,百度地图自定义工具,百度地图所见即所得工具"/>
-    <meta name="description" content="百度地图API自定义地图,帮助用户在可视化操作下生成百度地图"/>
-    <title>百度地图API自定义地图</title>
-    <!--引用百度地图API-->
-    <style type="text/css">
-        html, body {
-            margin: 0;
-            padding: 0;
-            overflow: hidden;
-        }
-    </style>
-    <script type="text/javascript" src="http://api.map.baidu.com/api?key=&v=1.1&services=true"></script>
-</head>
-
-<body onload="initMap();">
-<!--百度地图容器-->
-<div style="width:697px;height:550px;border:#ccc solid 1px;" id="dituContent"></div>
-</body>
-<script type="text/javascript">
-    function getParam(name) {
-        return location.href.match(new RegExp('[?#&]' + name + '=([^?#&]+)', 'i')) ? RegExp.$1 : '';
-    }
-    var map, marker;
-    var centerParam = getParam('center');
-    var zoomParam = getParam('zoom');
-    var widthParam = getParam('width');
-    var heightParam = getParam('height');
-    var markersParam = getParam('markers');
-    var markerStylesParam = getParam('markerStyles');
-
-    //创建和初始化地图函数:
-    function initMap() {
-        // [FF]切换模式后报错
-        if (!window.BMap) {
-            return;
-        }
-        var dituContent = document.getElementById('dituContent');
-        dituContent.style.width = widthParam + 'px';
-        dituContent.style.height = heightParam + 'px';
-
-        createMap();//创建地图
-        setMapEvent();//设置地图事件
-        addMapControl();//向地图添加控件
-
-        // 创建标注
-        var markersArr = markersParam.split(',');
-        var point = new BMap.Point(markersArr[0], markersArr[1]);
-        marker = new BMap.Marker(point);
-        marker.enableDragging();
-        map.addOverlay(marker); // 将标注添加到地图中
-
-        if(parent.editor && parent.document.body.contentEditable=="true") { //在编辑状态下
-            setMapListener();//地图改变修改外层的iframe标签src属性
-        }
-    }
-
-    //创建地图函数:
-    function createMap() {
-        map = new BMap.Map("dituContent");//在百度地图容器中创建一个地图
-        var centerArr = centerParam.split(',');
-        var point = new BMap.Point(parseFloat(centerArr[0]), parseFloat(centerArr[1]));//定义一个中心点坐标
-        map.centerAndZoom(point, parseInt(zoomParam));//设定地图的中心点和坐标并将地图显示在地图容器中
-    }
-
-    //地图事件设置函数:
-    function setMapEvent() {
-        map.enableDragging();//启用地图拖拽事件,默认启用(可不写)
-        map.enableScrollWheelZoom();//启用地图滚轮放大缩小
-        map.enableDoubleClickZoom();//启用鼠标双击放大,默认启用(可不写)
-        map.enableKeyboard();//启用键盘上下左右键移动地图
-    }
-
-    //地图控件添加函数:
-    function addMapControl() {
-        //向地图中添加缩放控件
-        var ctrl_nav = new BMap.NavigationControl({anchor: BMAP_ANCHOR_TOP_LEFT, type: BMAP_NAVIGATION_CONTROL_LARGE});
-        map.addControl(ctrl_nav);
-        //向地图中添加缩略图控件
-        var ctrl_ove = new BMap.OverviewMapControl({anchor: BMAP_ANCHOR_BOTTOM_RIGHT, isOpen: 1});
-        map.addControl(ctrl_ove);
-        //向地图中添加比例尺控件
-        var ctrl_sca = new BMap.ScaleControl({anchor: BMAP_ANCHOR_BOTTOM_LEFT});
-        map.addControl(ctrl_sca);
-    }
-
-    function setMapListener() {
-        var editor = parent.editor, containerIframe,
-            iframes = parent.document.getElementsByTagName('iframe');
-        for (var key in iframes) {
-            if (iframes[key].contentWindow == window) {
-                containerIframe = iframes[key];
-                break;
-            }
-        }
-        if (containerIframe) {
-            map.addEventListener('moveend', mapListenerHandler);
-            map.addEventListener('zoomend', mapListenerHandler);
-            marker.addEventListener('dragend', mapListenerHandler);
-        }
-
-        function mapListenerHandler() {
-            var zoom = map.getZoom(),
-                center = map.getCenter(),
-                marker = window.marker.getPoint();
-            containerIframe.src = containerIframe.src.
-                replace(new RegExp('([?#&])center=([^?#&]+)', 'i'), '$1center=' + center.lng + ',' + center.lat).
-                replace(new RegExp('([?#&])markers=([^?#&]+)', 'i'), '$1markers=' + marker.lng + ',' + marker.lat).
-                replace(new RegExp('([?#&])zoom=([^?#&]+)', 'i'), '$1zoom=' + zoom);
-            editor.fireEvent('saveScene');
-        }
-    }
-</script>
-</html>

+ 0 - 30
templates/static/UEditor/dialogs/music/music.css

@@ -1,30 +0,0 @@
-.wrapper{margin: 5px 10px;}
-
-.searchBar{height:30px;padding:7px 0 3px;text-align:center;}
-.searchBtn{font-size:13px;height:24px;}
-
-.resultBar{width:460px;margin:5px auto;border: 1px solid #CCC;border-radius: 5px;box-shadow: 2px 2px 5px #D3D6DA;overflow: hidden;}
-
-.listPanel{overflow: hidden;}
-.panelon{display:block;}
-.paneloff{display:none}
-
-.page{width:220px;margin:20px auto;overflow: hidden;}
-.pageon{float:right;width:24px;line-height:24px;height:24px;margin-right: 5px;background: none;border: none;color: #000;font-weight: bold;text-align:center}
-.pageoff{float:right;width:24px;line-height:24px;height:24px;cursor:pointer;background-color: #fff;
-   border: 1px solid #E7ECF0;color: #2D64B3;margin-right: 5px;text-decoration: none;text-align:center;}
-
-.m-box{width:460px;}
-.m-m{float: left;line-height: 20px;height: 20px;}
-.m-h{height:24px;line-height:24px;padding-left: 46px;background-color:#FAFAFA;border-bottom: 1px solid #DAD8D8;font-weight: bold;font-size: 12px;color: #333;}
-.m-l{float:left;width:40px; }
-.m-t{float:left;width:140px;}
-.m-s{float:left;width:110px;}
-.m-z{float:left;width:100px;}
-.m-try-t{float: left;width: 60px;;}
-
-.m-try{float:left;width:20px;height:20px;background:url('http://static.tieba.baidu.com/tb/editor/images/try_music.gif') no-repeat ;}
-.m-trying{float:left;width:20px;height:20px;background:url('http://static.tieba.baidu.com/tb/editor/images/stop_music.gif') no-repeat ;}
-
-.loading{width:95px;height:7px;font-size:7px;margin:60px auto;background:url(http://static.tieba.baidu.com/tb/editor/images/loading.gif) no-repeat}
-.empty{width:300px;height:40px;padding:2px;margin:50px auto;line-height:40px; color:#006699;text-align:center;}

+ 0 - 32
templates/static/UEditor/dialogs/music/music.html

@@ -1,32 +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"></script>
-    <link rel="stylesheet" type="text/css" href="music.css">
-</head>
-<body>
-<div class="wrapper">
-    <div class="searchBar">
-        <input id="J_searchName" type="text"/>
-        <input type="button" class="searchBtn" id="J_searchBtn">
-    </div>
-    <div class="resultBar" id="J_resultBar">
-        <div class="loading" style="display:none"></div>
-        <div class="empty"><var id="lang_input_tips"></var></div>
-    </div>
-    <div id="J_preview"></div>
-</div>
-<script type="text/javascript" src="music.js"></script>
-<script type="text/javascript">
-    var music = new Music;
-    dialog.onok = function () {
-        music.exec();
-    };
-    dialog.oncancel = function () {
-        $G('J_preview').innerHTML = "";
-    };
-</script>
-</body>
-</html>

+ 0 - 192
templates/static/UEditor/dialogs/music/music.js

@@ -1,192 +0,0 @@
-function Music() {
-    this.init();
-}
-(function () {
-    var pages = [],
-        panels = [],
-        selectedItem = null;
-    Music.prototype = {
-        total:70,
-        pageSize:10,
-        dataUrl:"http://tingapi.ting.baidu.com/v1/restserver/ting?method=baidu.ting.search.common",
-        playerUrl:"http://box.baidu.com/widget/flash/bdspacesong.swf",
-
-        init:function () {
-            var me = this;
-            domUtils.on($G("J_searchName"), "keyup", function (event) {
-                var e = window.event || event;
-                if (e.keyCode == 13) {
-                    me.dosearch();
-                }
-            });
-            domUtils.on($G("J_searchBtn"), "click", function () {
-                me.dosearch();
-            });
-        },
-        callback:function (data) {
-            var me = this;
-            me.data = data.song_list;
-            setTimeout(function () {
-                $G('J_resultBar').innerHTML = me._renderTemplate(data.song_list);
-            }, 300);
-        },
-        dosearch:function () {
-            var me = this;
-            selectedItem = null;
-            var key = $G('J_searchName').value;
-            if (utils.trim(key) == "")return false;
-            key = encodeURIComponent(key);
-            me._sent(key);
-        },
-        doselect:function (i) {
-            var me = this;
-            if (typeof i == 'object') {
-                selectedItem = i;
-            } else if (typeof i == 'number') {
-                selectedItem = me.data[i];
-            }
-        },
-        onpageclick:function (id) {
-            var me = this;
-            for (var i = 0; i < pages.length; i++) {
-                $G(pages[i]).className = 'pageoff';
-                $G(panels[i]).className = 'paneloff';
-            }
-            $G('page' + id).className = 'pageon';
-            $G('panel' + id).className = 'panelon';
-        },
-        listenTest:function (elem) {
-            var me = this,
-                view = $G('J_preview'),
-                is_play_action = (elem.className == 'm-try'),
-                old_trying = me._getTryingElem();
-
-            if (old_trying) {
-                old_trying.className = 'm-try';
-                view.innerHTML = '';
-            }
-            if (is_play_action) {
-                elem.className = 'm-trying';
-                view.innerHTML = me._buildMusicHtml(me._getUrl(true));
-            }
-        },
-        _sent:function (param) {
-            var me = this;
-            $G('J_resultBar').innerHTML = '<div class="loading"></div>';
-
-            utils.loadFile(document, {
-                src:me.dataUrl + '&query=' + param + '&page_size=' + me.total + '&callback=music.callback&.r=' + Math.random(),
-                tag:"script",
-                type:"text/javascript",
-                defer:"defer"
-            });
-        },
-        _removeHtml:function (str) {
-            var reg = /<\s*\/?\s*[^>]*\s*>/gi;
-            return str.replace(reg, "");
-        },
-        _getUrl:function (isTryListen) {
-            var me = this;
-            var param = 'from=tiebasongwidget&url=&name=' + encodeURIComponent(me._removeHtml(selectedItem.title)) + '&artist='
-                + encodeURIComponent(me._removeHtml(selectedItem.author)) + '&extra='
-                + encodeURIComponent(me._removeHtml(selectedItem.album_title))
-                + '&autoPlay='+isTryListen+'' + '&loop=true';
-            return  me.playerUrl + "?" + param;
-        },
-        _getTryingElem:function () {
-            var s = $G('J_listPanel').getElementsByTagName('span');
-
-            for (var i = 0; i < s.length; i++) {
-                if (s[i].className == 'm-trying')
-                    return s[i];
-            }
-            return null;
-        },
-        _buildMusicHtml:function (playerUrl) {
-            var html = '<embed class="BDE_try_Music" allowfullscreen="false" pluginspage="http://www.macromedia.com/go/getflashplayer"';
-            html += ' src="' + playerUrl + '"';
-            html += ' width="1" height="1" style="position:absolute;left:-2000px;"';
-            html += ' type="application/x-shockwave-flash" wmode="transparent" play="true" loop="false"';
-            html += ' menu="false" allowscriptaccess="never" scale="noborder">';
-            return html;
-        },
-        _byteLength:function (str) {
-            return str.replace(/[^\u0000-\u007f]/g, "\u0061\u0061").length;
-        },
-        _getMaxText:function (s) {
-            var me = this;
-            s = me._removeHtml(s);
-            if (me._byteLength(s) > 12)
-                return s.substring(0, 5) + '...';
-            if (!s) s = "&nbsp;";
-            return s;
-        },
-        _rebuildData:function (data) {
-            var me = this,
-                newData = [],
-                d = me.pageSize,
-                itembox;
-            for (var i = 0; i < data.length; i++) {
-                if ((i + d) % d == 0) {
-                    itembox = [];
-                    newData.push(itembox)
-                }
-                itembox.push(data[i]);
-            }
-            return newData;
-        },
-        _renderTemplate:function (data) {
-            var me = this;
-            if (data.length == 0)return '<div class="empty">' + lang.emptyTxt + '</div>';
-            data = me._rebuildData(data);
-            var s = [], p = [], t = [];
-            s.push('<div id="J_listPanel" class="listPanel">');
-            p.push('<div class="page">');
-            for (var i = 0, tmpList; tmpList = data[i++];) {
-                panels.push('panel' + i);
-                pages.push('page' + i);
-                if (i == 1) {
-                    s.push('<div id="panel' + i + '" class="panelon">');
-                    if (data.length != 1) {
-                        t.push('<div id="page' + i + '" onclick="music.onpageclick(' + i + ')" class="pageon">' + (i ) + '</div>');
-                    }
-                } else {
-                    s.push('<div id="panel' + i + '" class="paneloff">');
-                    t.push('<div id="page' + i + '" onclick="music.onpageclick(' + i + ')" class="pageoff">' + (i ) + '</div>');
-                }
-                s.push('<div class="m-box">');
-                s.push('<div class="m-h"><span class="m-t">' + lang.chapter + '</span><span class="m-s">' + lang.singer
-                    + '</span><span class="m-z">' + lang.special + '</span><span class="m-try-t">' + lang.listenTest + '</span></div>');
-                for (var j = 0, tmpObj; tmpObj = tmpList[j++];) {
-                    s.push('<label for="radio-' + i + '-' + j + '" class="m-m">');
-                    s.push('<input type="radio" id="radio-' + i + '-' + j + '" name="musicId" class="m-l" onclick="music.doselect(' + (me.pageSize * (i-1) + (j-1)) + ')"/>');
-                    s.push('<span class="m-t">' + me._getMaxText(tmpObj.title) + '</span>');
-                    s.push('<span class="m-s">' + me._getMaxText(tmpObj.author) + '</span>');
-                    s.push('<span class="m-z">' + me._getMaxText(tmpObj.album_title) + '</span>');
-                    s.push('<span class="m-try" onclick="music.doselect(' + (me.pageSize * (i-1) + (j-1)) + ');music.listenTest(this)"></span>');
-                    s.push('</label>');
-                }
-                s.push('</div>');
-                s.push('</div>');
-            }
-            t.reverse();
-            p.push(t.join(''));
-            s.push('</div>');
-            p.push('</div>');
-            return s.join('') + p.join('');
-        },
-        exec:function () {
-            var me = this;
-            if (selectedItem == null)   return;
-            $G('J_preview').innerHTML = "";
-            editor.execCommand('music', {
-                url:me._getUrl(false),
-                width:400,
-                height:95
-            });
-        }
-    };
-})();
-
-
-

+ 0 - 40
templates/static/UEditor/dialogs/preview/preview.html

@@ -1,40 +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"></script>
-        <script src="../../ueditor.parse.js"></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
templates/static/UEditor/dialogs/scrawl/images/addimg.png


BIN
templates/static/UEditor/dialogs/scrawl/images/brush.png


BIN
templates/static/UEditor/dialogs/scrawl/images/delimg.png


BIN
templates/static/UEditor/dialogs/scrawl/images/delimgH.png


BIN
templates/static/UEditor/dialogs/scrawl/images/empty.png


BIN
templates/static/UEditor/dialogs/scrawl/images/emptyH.png


BIN
templates/static/UEditor/dialogs/scrawl/images/eraser.png


BIN
templates/static/UEditor/dialogs/scrawl/images/redo.png


BIN
templates/static/UEditor/dialogs/scrawl/images/redoH.png


BIN
templates/static/UEditor/dialogs/scrawl/images/scale.png


+ 0 - 0
templates/static/UEditor/dialogs/scrawl/images/scaleH.png


Some files were not shown because too many files changed in this diff