xuwei 3 éve
szülő
commit
fe312f85b2
100 módosított fájl, 1714 hozzáadás és 3 törlés
  1. 1 0
      .gitignore
  2. 0 3
      README.md
  3. 41 0
      SANHOPE.mes.web.sln
  4. 17 0
      wwwroot/App_Data/PublishProfiles/192.168.0.101.pubxml
  5. 52 0
      wwwroot/Global.asax
  6. BIN
      wwwroot/Img/accept.png
  7. BIN
      wwwroot/Img/bullet_tick.png
  8. BIN
      wwwroot/Img/chart.png
  9. BIN
      wwwroot/Img/clock.png
  10. BIN
      wwwroot/Img/detail.png
  11. BIN
      wwwroot/Img/dongke.png
  12. BIN
      wwwroot/Img/dongke_logo.jpg
  13. BIN
      wwwroot/Img/email.png
  14. BIN
      wwwroot/Img/email_delete.png
  15. BIN
      wwwroot/Img/email_error.png
  16. BIN
      wwwroot/Img/email_open.png
  17. BIN
      wwwroot/Img/email_stop.png
  18. BIN
      wwwroot/Img/excel.png
  19. BIN
      wwwroot/Img/exclamation.png
  20. BIN
      wwwroot/Img/file_blank.png
  21. BIN
      wwwroot/Img/file_line.png
  22. BIN
      wwwroot/Img/folder_close.png
  23. BIN
      wwwroot/Img/folder_open.png
  24. BIN
      wwwroot/Img/grid.png
  25. BIN
      wwwroot/Img/hegii.png
  26. BIN
      wwwroot/Img/hegii_logo.png
  27. BIN
      wwwroot/Img/lightbulb.png
  28. BIN
      wwwroot/Img/lightbulb_off.png
  29. BIN
      wwwroot/Img/logo.png
  30. BIN
      wwwroot/Img/logo16.png
  31. BIN
      wwwroot/Img/logo2.png
  32. BIN
      wwwroot/Img/logo3.png
  33. BIN
      wwwroot/Img/mail.png
  34. BIN
      wwwroot/Img/mailbox.png
  35. BIN
      wwwroot/Img/mailbox_close.png
  36. BIN
      wwwroot/Img/mailbox_open.png
  37. BIN
      wwwroot/Img/new.png
  38. BIN
      wwwroot/Img/new_blue.png
  39. BIN
      wwwroot/Img/new_red.png
  40. BIN
      wwwroot/Img/package_stop.png
  41. BIN
      wwwroot/Img/page.png
  42. BIN
      wwwroot/Img/page_delete.png
  43. BIN
      wwwroot/Img/page_green.png
  44. BIN
      wwwroot/Img/page_red.png
  45. BIN
      wwwroot/Img/plan.png
  46. BIN
      wwwroot/Img/stop_blue.png
  47. BIN
      wwwroot/Img/stop_green.png
  48. BIN
      wwwroot/Img/stop_red.png
  49. BIN
      wwwroot/Img/tab_blue.png
  50. BIN
      wwwroot/Img/tab_green.png
  51. BIN
      wwwroot/Img/tab_red.png
  52. BIN
      wwwroot/Img/table.png
  53. BIN
      wwwroot/Img/tag_blue.png
  54. BIN
      wwwroot/Img/tag_green.png
  55. BIN
      wwwroot/Img/tag_orange.png
  56. BIN
      wwwroot/Img/tag_pink.png
  57. BIN
      wwwroot/Img/tag_purple.png
  58. BIN
      wwwroot/Img/tag_red.png
  59. BIN
      wwwroot/Img/tag_yellow.png
  60. BIN
      wwwroot/Img/tick.png
  61. BIN
      wwwroot/Img/time.png
  62. BIN
      wwwroot/Img/time_green.png
  63. BIN
      wwwroot/Img/time_red.png
  64. BIN
      wwwroot/Img/top_bg.png
  65. BIN
      wwwroot/Img/vcard.png
  66. BIN
      wwwroot/Img/vcard_delete.png
  67. BIN
      wwwroot/Img/word.png
  68. 6 0
      wwwroot/Plugins/animate/animate.min.css
  69. 51 0
      wwwroot/Plugins/animate/xanimate.js
  70. 172 0
      wwwroot/Plugins/animation/001/JavaScript.js
  71. 2 0
      wwwroot/Plugins/animation/001/animation.js
  72. 73 0
      wwwroot/Plugins/animation/001/style.css
  73. 191 0
      wwwroot/Plugins/animation/002/JavaScript.js
  74. 56 0
      wwwroot/Plugins/animation/002/Style.css
  75. 6 0
      wwwroot/Plugins/animation/002/animation.js
  76. 12 0
      wwwroot/Plugins/animation/003/JavaScript.js
  77. 11 0
      wwwroot/Plugins/animation/003/Style.css
  78. 2 0
      wwwroot/Plugins/animation/003/animation.js
  79. 125 0
      wwwroot/Plugins/animation/004/JavaScript.js
  80. 20 0
      wwwroot/Plugins/animation/004/Style.css
  81. 4 0
      wwwroot/Plugins/animation/004/animation.js
  82. 6 0
      wwwroot/Plugins/chartjs/chart.min.js
  83. 6 0
      wwwroot/Plugins/chartjs/chartjs-plugin-datalabels.js
  84. 147 0
      wwwroot/Plugins/chartjs/utils.js
  85. 683 0
      wwwroot/Plugins/easyui/changelog.txt
  86. 18 0
      wwwroot/Plugins/easyui/demo-mobile/accordion/_content.html
  87. 1 0
      wwwroot/Plugins/easyui/demo-mobile/accordion/basic.html
  88. 1 0
      wwwroot/Plugins/easyui/demo-mobile/accordion/header.html
  89. 1 0
      wwwroot/Plugins/easyui/demo-mobile/animation/basic.html
  90. 1 0
      wwwroot/Plugins/easyui/demo-mobile/animation/fade.html
  91. 1 0
      wwwroot/Plugins/easyui/demo-mobile/animation/pop.html
  92. 1 0
      wwwroot/Plugins/easyui/demo-mobile/animation/slide.html
  93. 1 0
      wwwroot/Plugins/easyui/demo-mobile/badge/basic.html
  94. 1 0
      wwwroot/Plugins/easyui/demo-mobile/badge/button.html
  95. 1 0
      wwwroot/Plugins/easyui/demo-mobile/badge/list.html
  96. 0 0
      wwwroot/Plugins/easyui/demo-mobile/badge/tabs.html
  97. 1 0
      wwwroot/Plugins/easyui/demo-mobile/button/basic.html
  98. 0 0
      wwwroot/Plugins/easyui/demo-mobile/button/group.html
  99. 1 0
      wwwroot/Plugins/easyui/demo-mobile/button/style.html
  100. 1 0
      wwwroot/Plugins/easyui/demo-mobile/button/switch.html

+ 1 - 0
.gitignore

@@ -108,3 +108,4 @@ _UpgradeReport_Files/
 Backup*/
 UpgradeLog*.XML
 
+/.vs

+ 0 - 3
README.md

@@ -1,3 +0,0 @@
-# SANHOPE.mes.web
-
-晟昊WEB报表

+ 41 - 0
SANHOPE.mes.web.sln

@@ -0,0 +1,41 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.32929.386
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "wwwroot", "wwwroot\", "{DB74DD9E-F84B-4372-A298-41376272D607}"
+	ProjectSection(WebsiteProperties) = preProject
+		TargetFrameworkMoniker = ".NETFramework,Version%3Dv4.0"
+		Debug.AspNetCompiler.VirtualPath = "/localhost_62172"
+		Debug.AspNetCompiler.PhysicalPath = "wwwroot\"
+		Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\localhost_62172\"
+		Debug.AspNetCompiler.Updateable = "true"
+		Debug.AspNetCompiler.ForceOverwrite = "true"
+		Debug.AspNetCompiler.FixedNames = "false"
+		Debug.AspNetCompiler.Debug = "True"
+		Release.AspNetCompiler.VirtualPath = "/localhost_62172"
+		Release.AspNetCompiler.PhysicalPath = "wwwroot\"
+		Release.AspNetCompiler.TargetPath = "PrecompiledWeb\localhost_62172\"
+		Release.AspNetCompiler.Updateable = "true"
+		Release.AspNetCompiler.ForceOverwrite = "true"
+		Release.AspNetCompiler.FixedNames = "false"
+		Release.AspNetCompiler.Debug = "False"
+		VWDPort = "62172"
+		SlnRelativePath = "wwwroot\"
+	EndProjectSection
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{DB74DD9E-F84B-4372-A298-41376272D607}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{DB74DD9E-F84B-4372-A298-41376272D607}.Debug|Any CPU.Build.0 = Debug|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {9CA3E13F-6ECD-4AFF-BB80-B7C099FAE7B3}
+	EndGlobalSection
+EndGlobal

+ 17 - 0
wwwroot/App_Data/PublishProfiles/192.168.0.101.pubxml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+https://go.microsoft.com/fwlink/?LinkID=208121. 
+-->
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <DeleteExistingFiles>False</DeleteExistingFiles>
+    <ExcludeApp_Data>False</ExcludeApp_Data>
+    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
+    <LastUsedPlatform>Any CPU</LastUsedPlatform>
+    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
+    <PublishProvider>FileSystem</PublishProvider>
+    <PublishUrl>\\192.168.0.101\d$\dongke\mes\dk.mes.web</PublishUrl>
+    <WebPublishMethod>FileSystem</WebPublishMethod>
+    <SiteUrlToLaunchAfterPublish />
+  </PropertyGroup>
+</Project>

+ 52 - 0
wwwroot/Global.asax

@@ -0,0 +1,52 @@
+<%@ Application Language="C#" %>
+<%@ Import Namespace="Curtain.DataAccess" %>
+<%@ Import Namespace="Curtain.Log" %>
+<%@ Import Namespace="DK.XuWei.WebMes" %>
+
+<script runat="server">
+
+    void Application_Start(object sender, EventArgs e)
+    {
+        // 在应用程序启动时运行的代码
+        string connStr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
+        DataAccess.DefaultParameterType = SQLParameterType.CDA;
+        DataAccess.DefaultDataBaseType = Curtain.DataAccess.DataBaseType.Oracle;
+        DataAccess.DefaultConnectionString = connStr;
+    }
+
+    void Application_End(object sender, EventArgs e)
+    {
+        //  在应用程序关闭时运行的代码
+
+    }
+
+    void Application_Error(object sender, EventArgs e)
+    {
+        // 在出现未处理的错误时运行的代码
+        Exception error = Server.GetLastError().GetBaseException();
+        if (error != null)
+        {
+            //记录日志
+            Logger.Error(error);
+            //输出错误信息
+            HttpContext.Current.Response.Write(new JsonResult(JsonStatus.otherError).ToJson());
+        }
+        Server.ClearError();
+    }
+
+    void Session_Start(object sender, EventArgs e)
+    {
+        // 在新会话启动时运行的代码
+
+    }
+
+    void Session_End(object sender, EventArgs e)
+    {
+        // 在会话结束时运行的代码。 
+        // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
+        // InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer
+        // 或 SQLServer,则不引发该事件。
+
+    }
+
+</script>

BIN
wwwroot/Img/accept.png


BIN
wwwroot/Img/bullet_tick.png


BIN
wwwroot/Img/chart.png


BIN
wwwroot/Img/clock.png


BIN
wwwroot/Img/detail.png


BIN
wwwroot/Img/dongke.png


BIN
wwwroot/Img/dongke_logo.jpg


BIN
wwwroot/Img/email.png


BIN
wwwroot/Img/email_delete.png


BIN
wwwroot/Img/email_error.png


BIN
wwwroot/Img/email_open.png


BIN
wwwroot/Img/email_stop.png


BIN
wwwroot/Img/excel.png


BIN
wwwroot/Img/exclamation.png


BIN
wwwroot/Img/file_blank.png


BIN
wwwroot/Img/file_line.png


BIN
wwwroot/Img/folder_close.png


BIN
wwwroot/Img/folder_open.png


BIN
wwwroot/Img/grid.png


BIN
wwwroot/Img/hegii.png


BIN
wwwroot/Img/hegii_logo.png


BIN
wwwroot/Img/lightbulb.png


BIN
wwwroot/Img/lightbulb_off.png


BIN
wwwroot/Img/logo.png


BIN
wwwroot/Img/logo16.png


BIN
wwwroot/Img/logo2.png


BIN
wwwroot/Img/logo3.png


BIN
wwwroot/Img/mail.png


BIN
wwwroot/Img/mailbox.png


BIN
wwwroot/Img/mailbox_close.png


BIN
wwwroot/Img/mailbox_open.png


BIN
wwwroot/Img/new.png


BIN
wwwroot/Img/new_blue.png


BIN
wwwroot/Img/new_red.png


BIN
wwwroot/Img/package_stop.png


BIN
wwwroot/Img/page.png


BIN
wwwroot/Img/page_delete.png


BIN
wwwroot/Img/page_green.png


BIN
wwwroot/Img/page_red.png


BIN
wwwroot/Img/plan.png


BIN
wwwroot/Img/stop_blue.png


BIN
wwwroot/Img/stop_green.png


BIN
wwwroot/Img/stop_red.png


BIN
wwwroot/Img/tab_blue.png


BIN
wwwroot/Img/tab_green.png


BIN
wwwroot/Img/tab_red.png


BIN
wwwroot/Img/table.png


BIN
wwwroot/Img/tag_blue.png


BIN
wwwroot/Img/tag_green.png


BIN
wwwroot/Img/tag_orange.png


BIN
wwwroot/Img/tag_pink.png


BIN
wwwroot/Img/tag_purple.png


BIN
wwwroot/Img/tag_red.png


BIN
wwwroot/Img/tag_yellow.png


BIN
wwwroot/Img/tick.png


BIN
wwwroot/Img/time.png


BIN
wwwroot/Img/time_green.png


BIN
wwwroot/Img/time_red.png


BIN
wwwroot/Img/top_bg.png


BIN
wwwroot/Img/vcard.png


BIN
wwwroot/Img/vcard_delete.png


BIN
wwwroot/Img/word.png


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 6 - 0
wwwroot/Plugins/animate/animate.min.css


+ 51 - 0
wwwroot/Plugins/animate/xanimate.js

@@ -0,0 +1,51 @@
+/*
+ * xuwei 2021-11-26 v0.1
+ * 应用于大屏看板动画
+ * 
+ */
+const animateCSS = (element, animation, prefix = 'animate__') =>
+    new Promise((resolve, reject) => {
+        const animationName = `${prefix}${animation}`;
+        const node = document.querySelector(element);
+        node.classList.add(`${prefix}animated`, animationName);
+        function handleAnimationEnd(event) {
+            event.stopPropagation();
+            node.classList.remove(`${prefix}animated`, animationName);
+            resolve('Animation ended');
+        }
+        node.addEventListener('animationend', handleAnimationEnd, { once: true });
+    });
+
+//显示数量动画
+function animateAddNum(id) {
+    var num = Math.round(Math.random() * 10000);
+    $(id).after("<div id='" + id.replace('#', '') + num + "' style='color:orange;position: absolute;left:" + ($(id).offset().left + 30) + "px;top:" + ($(id).offset().top - 20) + "px;'>+1</div>");
+    animateCSS(id + num, 'fadeInUp').then((message) => {
+        $(id).text(parseInt($(id).text()) + 1);
+        animateCSS(id + num, 'fadeOutUp').then((message) => {
+            $(id + num).remove();
+        });
+    });
+}
+
+//条码正常移动动画
+function animateInLeftOutRight(id, title) {
+    var num = Math.round(Math.random() * 10000);
+    $(id).append("<div id='" + id.replace('#', '') + num + "' style='position: absolute;left:" + ($(id).offset().left + 20) + "px;top:" + ($(id).offset().top + 5) + "px;'>" + title + "</div>");
+    animateCSS(id + num, 'fadeInLeft').then((message) => {
+        animateCSS(id + num, 'fadeOutRight').then((message) => {
+            $(id + num).remove();
+        });
+    });
+}
+
+//条码异常动画
+function animateInLeftHinge(id, title) {
+    var num = Math.round(Math.random() * 10000);
+    $(id).append("<div id='" + id.replace('#', '') + num + "' style='position: absolute;left:" + ($(id).offset().left + 20) + "px;top:" + ($(id).offset().top + 5) + "px;'>" + title + "</div>");
+    animateCSS(id + num, 'fadeInLeft').then((message) => {
+        animateCSS(id + num, 'hinge').then((message) => {
+            $(id + num).remove();
+        });
+    });
+}

+ 172 - 0
wwwroot/Plugins/animation/001/JavaScript.js

@@ -0,0 +1,172 @@
+
+let max_particles = 100;
+let particles = [];
+let frequency = 100;
+let init_num = max_particles;
+let max_time = frequency * max_particles;
+let time_to_recreate = false;
+
+// Enable repopolate
+setTimeout(function () {
+    time_to_recreate = true;
+}.bind(this), max_time)
+
+// Popolate particles
+popolate(max_particles);
+
+var tela = document.createElement('canvas');
+tela.width = $(window).width();
+tela.height = $(window).height();
+$("body").append(tela);
+
+var canvas = tela.getContext('2d');
+
+class Particle {
+    constructor(canvas, options) {
+        let colors = ["#feea00", "#a9df85", "#5dc0ad", "#ff9a00", "#fa3f20"]
+        let types = ["full", "fill", "empty"]
+        this.random = Math.random()
+        this.canvas = canvas;
+        this.progress = 0;
+
+        this.x = ($(window).width() / 2) + (Math.random() * 200 - Math.random() * 200)
+        this.y = ($(window).height() / 2) + (Math.random() * 200 - Math.random() * 200)
+        this.w = $(window).width()
+        this.h = $(window).height()
+        this.radius = 1 + (8 * this.random)
+        this.type = types[this.randomIntFromInterval(0, types.length - 1)];
+        this.color = colors[this.randomIntFromInterval(0, colors.length - 1)];
+        this.a = 0
+        this.s = (this.radius + (Math.random() * 1)) / 10;
+        //this.s = 12 //Math.random() * 1;
+    }
+
+    getCoordinates() {
+        return {
+            x: this.x,
+            y: this.y
+        }
+    }
+
+    randomIntFromInterval(min, max) {
+        return Math.floor(Math.random() * (max - min + 1) + min);
+    }
+
+    render() {
+        // Create arc
+        let lineWidth = 0.2 + (2.8 * this.random);
+        let color = this.color;
+        switch (this.type) {
+            case "full":
+                this.createArcFill(this.radius, color)
+                this.createArcEmpty(this.radius + lineWidth, lineWidth / 2, color)
+                break;
+            case "fill":
+                this.createArcFill(this.radius, color)
+                break;
+            case "empty":
+                this.createArcEmpty(this.radius, lineWidth, color)
+                break;
+        }
+    }
+
+    createArcFill(radius, color) {
+        this.canvas.beginPath();
+        this.canvas.arc(this.x, this.y, radius, 0, 2 * Math.PI);
+        this.canvas.fillStyle = color;
+        this.canvas.fill();
+        this.canvas.closePath();
+    }
+
+    createArcEmpty(radius, lineWidth, color) {
+        this.canvas.beginPath();
+        this.canvas.arc(this.x, this.y, radius, 0, 2 * Math.PI);
+        this.canvas.lineWidth = lineWidth;
+        this.canvas.strokeStyle = color;
+        this.canvas.stroke();
+        this.canvas.closePath();
+    }
+
+    move() {
+
+        this.x += Math.cos(this.a) * this.s;
+        this.y += Math.sin(this.a) * this.s;
+        this.a += Math.random() * 0.4 - 0.2;
+
+        if (this.x < 0 || this.x > this.w - this.radius) {
+            return false
+        }
+
+        if (this.y < 0 || this.y > this.h - this.radius) {
+            return false
+        }
+        this.render()
+        return true
+    }
+
+    calculateDistance(v1, v2) {
+        let x = Math.abs(v1.x - v2.x);
+        let y = Math.abs(v1.y - v2.y);
+        return Math.sqrt((x * x) + (y * y));
+    }
+}
+
+/*
+ * Function to clear layer canvas
+ * @num:number number of particles
+ */
+function popolate(num) {
+    for (var i = 0; i < num; i++) {
+        setTimeout(
+            function (x) {
+                return function () {
+                    // Add particle
+                    particles.push(new Particle(canvas))
+                };
+            }(i)
+            , frequency * i);
+    }
+    return particles.length
+}
+
+function clear() {
+    // canvas.globalAlpha=0.04;
+    canvas.fillStyle = '#111111';
+    canvas.fillRect(0, 0, tela.width, tela.height);
+    // canvas.globalAlpha=1;
+}
+
+function connection() {
+    let old_element = null
+    $.each(particles, function (i, element) {
+        if (i > 0) {
+            let box1 = old_element.getCoordinates()
+            let box2 = element.getCoordinates()
+            canvas.beginPath();
+            canvas.moveTo(box1.x, box1.y);
+            canvas.lineTo(box2.x, box2.y);
+            canvas.lineWidth = 0.45;
+            canvas.strokeStyle = "#3f47ff";
+            canvas.stroke();
+            canvas.closePath();
+        }
+
+        old_element = element
+    })
+}
+
+/*
+ * Function to update particles in canvas
+ */
+function update() {
+    clear();
+    connection()
+    particles = particles.filter(function (p) { return p.move() })
+    // Recreate particles
+    if (time_to_recreate) {
+        if (particles.length < init_num) { popolate(1); }
+    }
+    requestAnimationFrame(update.bind(this))
+}
+
+update();

+ 2 - 0
wwwroot/Plugins/animation/001/animation.js

@@ -0,0 +1,2 @@
+document.write('<link href="/plugins/animation/001/style.css" rel="stylesheet" />');
+document.write('<script src="/plugins/animation/001/JavaScript.js"></script>');

+ 73 - 0
wwwroot/Plugins/animation/001/style.css

@@ -0,0 +1,73 @@
+
+.more-pens {
+    position: fixed;
+    left: 20px;
+    bottom: 20px;
+    z-index: 10;
+    font-family: "Montserrat";
+    font-size: 12px;
+}
+
+a.white-mode, a.white-mode:link, a.white-mode:visited, a.white-mode:active {
+    font-family: "Montserrat";
+    font-size: 12px;
+    text-decoration: none;
+    background: #212121;
+    padding: 4px 8px;
+    color: #f7f7f7;
+}
+
+    a.white-mode:hover, a.white-mode:link:hover, a.white-mode:visited:hover, a.white-mode:active:hover {
+        background: #edf3f8;
+        color: #212121;
+    }
+
+body {
+    margin: 0;
+    padding: 0;
+    overflow: hidden;
+    width: 100%;
+    height: 100%;
+    background: #000000;
+}
+
+.title {
+    z-index: 10;
+    position: absolute;
+    left: 50%;
+    top: 50%;
+    transform: translateX(-50%) translateY(-50%);
+    font-family: "Montserrat";
+    text-align: center;
+    width: 100%;
+}
+
+    .title h1 {
+        position: relative;
+        color: #EEEEEE;
+        font-weight: 600;
+        font-size: 60px;
+        padding: 0;
+        margin: 0;
+        line-height: 1;
+        text-shadow: 0 0 30px #000155;
+    }
+
+        .title h1 span {
+            font-weight: 600;
+            padding: 0;
+            margin: 0;
+            color: #BBB;
+        }
+
+    .title h3 {
+        font-weight: 200;
+        font-size: 20px;
+        padding: 0;
+        margin: 0;
+        line-height: 1;
+        color: #EEEEEE;
+        letter-spacing: 2px;
+        text-shadow: 0 0 30px #000155;
+    }
+

+ 191 - 0
wwwroot/Plugins/animation/002/JavaScript.js

@@ -0,0 +1,191 @@
+
+// min and max radius, radius threshold and percentage of filled circles
+var radMin = 5,
+    radMax = 125,
+    filledCircle = 60, //percentage of filled circles
+    concentricCircle = 30, //percentage of concentric circles
+    radThreshold = 25; //IFF special, over this radius concentric, otherwise filled
+
+//min and max speed to move
+var speedMin = 0.3,
+    speedMax = 2.5;
+
+//max reachable opacity for every circle and blur effect
+var maxOpacity = 0.6;
+
+//default palette choice
+var colors = ['52,168,83', '117,95,147', '199,108,23', '194,62,55', '0,172,212', '120,120,120'],
+    bgColors = ['52,168,83', '117,95,147', '199,108,23', '194,62,55', '0,172,212', '120,120,120'],
+    circleBorder = 10,
+    backgroundLine = bgColors[0];
+var backgroundMlt = 0.85;
+
+//min distance for links
+var linkDist = Math.min(canvas.width, canvas.height) / 2.4,
+    lineBorder = 2.5;
+
+//most importantly: number of overall circles and arrays containing them
+var maxCircles = 12,
+    points = [],
+    pointsBack = [];
+
+//populating the screen
+for (var i = 0; i < maxCircles * 2; i++) points.push(new Circle());
+for (var i = 0; i < maxCircles; i++) pointsBack.push(new Circle(true));
+
+//experimental vars
+var circleExp = 1,
+    circleExpMax = 1.003,
+    circleExpMin = 0.997,
+    circleExpSp = 0.00004,
+    circlePulse = false;
+
+//circle class
+function Circle(background) {
+    //if background, it has different rules
+    this.background = (background || false);
+    this.x = randRange(-canvas.width / 2, canvas.width / 2);
+    this.y = randRange(-canvas.height / 2, canvas.height / 2);
+    this.radius = background ? hyperRange(radMin, radMax) * backgroundMlt : hyperRange(radMin, radMax);
+    this.filled = this.radius < radThreshold ? (randint(0, 100) > filledCircle ? false : 'full') : (randint(0, 100) > concentricCircle ? false : 'concentric');
+    this.color = background ? bgColors[randint(0, bgColors.length - 1)] : colors[randint(0, colors.length - 1)];
+    this.borderColor = background ? bgColors[randint(0, bgColors.length - 1)] : colors[randint(0, colors.length - 1)];
+    this.opacity = 0.05;
+    this.speed = (background ? randRange(speedMin, speedMax) / backgroundMlt : randRange(speedMin, speedMax)); // * (radMin / this.radius);
+    this.speedAngle = Math.random() * 2 * Math.PI;
+    this.speedx = Math.cos(this.speedAngle) * this.speed;
+    this.speedy = Math.sin(this.speedAngle) * this.speed;
+    var spacex = Math.abs((this.x - (this.speedx < 0 ? -1 : 1) * (canvas.width / 2 + this.radius)) / this.speedx),
+        spacey = Math.abs((this.y - (this.speedy < 0 ? -1 : 1) * (canvas.height / 2 + this.radius)) / this.speedy);
+    this.ttl = Math.min(spacex, spacey);
+};
+
+Circle.prototype.init = function () {
+    Circle.call(this, this.background);
+}
+
+//support functions
+//generate random int a<=x<=b
+function randint(a, b) {
+    return Math.floor(Math.random() * (b - a + 1) + a);
+}
+//generate random float
+function randRange(a, b) {
+    return Math.random() * (b - a) + a;
+}
+//generate random float more likely to be close to a
+function hyperRange(a, b) {
+    return Math.random() * Math.random() * Math.random() * (b - a) + a;
+}
+
+//rendering function
+function drawCircle(ctx, circle) {
+    //circle.radius *= circleExp;
+    var radius = circle.background ? circle.radius *= circleExp : circle.radius /= circleExp;
+    ctx.beginPath();
+    ctx.arc(circle.x, circle.y, radius * circleExp, 0, 2 * Math.PI, false);
+    ctx.lineWidth = Math.max(1, circleBorder * (radMin - circle.radius) / (radMin - radMax));
+    ctx.strokeStyle = ['rgba(', circle.borderColor, ',', circle.opacity, ')'].join('');
+    if (circle.filled == 'full') {
+        ctx.fillStyle = ['rgba(', circle.borderColor, ',', circle.background ? circle.opacity * 0.8 : circle.opacity, ')'].join('');
+        ctx.fill();
+        ctx.lineWidth = 0;
+        ctx.strokeStyle = ['rgba(', circle.borderColor, ',', 0, ')'].join('');
+    }
+    ctx.stroke();
+    if (circle.filled == 'concentric') {
+        ctx.beginPath();
+        ctx.arc(circle.x, circle.y, radius / 2, 0, 2 * Math.PI, false);
+        ctx.lineWidth = Math.max(1, circleBorder * (radMin - circle.radius) / (radMin - radMax));
+        ctx.strokeStyle = ['rgba(', circle.color, ',', circle.opacity, ')'].join('');
+        ctx.stroke();
+    }
+    circle.x += circle.speedx;
+    circle.y += circle.speedy;
+    if (circle.opacity < (circle.background ? maxOpacity : 1)) circle.opacity += 0.01;
+    circle.ttl--;
+}
+
+//initializing function
+function init() {
+    window.requestAnimationFrame(draw);
+}
+
+//rendering function
+function draw() {
+
+    if (circlePulse) {
+        if (circleExp < circleExpMin || circleExp > circleExpMax) circleExpSp *= -1;
+        circleExp += circleExpSp;
+    }
+    var ctxfr = document.getElementById('canvas').getContext('2d');
+    var ctxbg = document.getElementById('canvasbg').getContext('2d');
+
+    ctxfr.globalCompositeOperation = 'destination-over';
+    ctxfr.clearRect(0, 0, canvas.width, canvas.height); // clear canvas
+    ctxbg.globalCompositeOperation = 'destination-over';
+    ctxbg.clearRect(0, 0, canvas.width, canvas.height); // clear canvas
+
+    ctxfr.save();
+    ctxfr.translate(canvas.width / 2, canvas.height / 2);
+    ctxbg.save();
+    ctxbg.translate(canvas.width / 2, canvas.height / 2);
+
+    //function to render each single circle, its connections and to manage its out of boundaries replacement
+    function renderPoints(ctx, arr) {
+        for (var i = 0; i < arr.length; i++) {
+            var circle = arr[i];
+            //checking if out of boundaries
+            if (circle.ttl < 0) { }
+            var xEscape = canvas.width / 2 + circle.radius,
+                yEscape = canvas.height / 2 + circle.radius;
+            if (circle.ttl < -20) arr[i].init(arr[i].background);
+            //if (Math.abs(circle.y) > yEscape || Math.abs(circle.x) > xEscape) arr[i].init(arr[i].background);
+            drawCircle(ctx, circle);
+        }
+        for (var i = 0; i < arr.length - 1; i++) {
+            for (var j = i + 1; j < arr.length; j++) {
+                var deltax = arr[i].x - arr[j].x;
+                var deltay = arr[i].y - arr[j].y;
+                var dist = Math.pow(Math.pow(deltax, 2) + Math.pow(deltay, 2), 0.5);
+                //if the circles are overlapping, no laser connecting them
+                if (dist <= arr[i].radius + arr[j].radius) continue;
+                //otherwise we connect them only if the dist is < linkDist
+                if (dist < linkDist) {
+                    var xi = (arr[i].x < arr[j].x ? 1 : -1) * Math.abs(arr[i].radius * deltax / dist);
+                    var yi = (arr[i].y < arr[j].y ? 1 : -1) * Math.abs(arr[i].radius * deltay / dist);
+                    var xj = (arr[i].x < arr[j].x ? -1 : 1) * Math.abs(arr[j].radius * deltax / dist);
+                    var yj = (arr[i].y < arr[j].y ? -1 : 1) * Math.abs(arr[j].radius * deltay / dist);
+                    ctx.beginPath();
+                    ctx.moveTo(arr[i].x + xi, arr[i].y + yi);
+                    ctx.lineTo(arr[j].x + xj, arr[j].y + yj);
+                    var samecolor = arr[i].color == arr[j].color;
+                    ctx.strokeStyle = ["rgba(", arr[i].borderColor, ",", Math.min(arr[i].opacity, arr[j].opacity) * ((linkDist - dist) / linkDist), ")"].join("");
+                    ctx.lineWidth = (arr[i].background ? lineBorder * backgroundMlt : lineBorder) * ((linkDist - dist) / linkDist); //*((linkDist-dist)/linkDist);
+                    ctx.stroke();
+                }
+            }
+        }
+    }
+
+    var startTime = Date.now();
+    renderPoints(ctxfr, points);
+    renderPoints(ctxbg, pointsBack);
+    deltaT = Date.now() - startTime;
+
+    ctxfr.restore();
+    ctxbg.restore();
+
+    window.requestAnimationFrame(draw);
+}
+
+$(function () {
+    init();
+});
+
+
+/*Credits and aknowledgements:
+Original Idea and Design by Luca Luzzatti
+
+Optimizing tips from Benjamin K?stner
+General tips from Salvatore Previti*/

+ 56 - 0
wwwroot/Plugins/animation/002/Style.css

@@ -0,0 +1,56 @@
+html,
+body {
+    overflow: hidden;
+    height: 100%;
+    width: 100%;
+    background: #262b2e
+}
+
+#wrapper {
+    height: 100%;
+    width: 100%;
+    text-align: center;
+    display: table;
+    position: absolute;
+}
+
+#title {
+    display: table-cell;
+    vertical-align: middle;
+    z-index: 999;
+}
+
+    #title h2 {
+        color: #fff;
+        font-size: 45px;
+        font-family: "museo-slab";
+    }
+
+    #title h3 {
+        color: #fff;
+        font-size: 25px;
+        font-family: "museo-sans";
+        font-weight: 300
+    }
+
+
+#wrapper canvas {
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 100%;
+}
+
+#canvas {
+    z-index: 1;
+}
+
+#canvasbg {
+    z-index: -10;
+    -webkit-filter: blur(3px);
+    -moz-filter: blur(3px);
+    -o-filter: blur(3px);
+    filter: blur(3px);
+    opacity: 0.6;
+}
+

+ 6 - 0
wwwroot/Plugins/animation/002/animation.js

@@ -0,0 +1,6 @@
+document.write('<link href="/plugins/animation/002/style.css" rel="stylesheet" />');
+document.write('<div id="wrapper">');
+document.write('<canvas id="canvas" width="1950" height="1024"></canvas>');
+document.write('<canvas id="canvasbg" width="1950" height="1024"></canvas>');
+document.write('</div>');
+document.write('<script src="/plugins/animation/002/JavaScript.js"></script>');

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 12 - 0
wwwroot/Plugins/animation/003/JavaScript.js


+ 11 - 0
wwwroot/Plugins/animation/003/Style.css

@@ -0,0 +1,11 @@
+html {
+    background: #000;
+}
+
+canvas {
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+}

+ 2 - 0
wwwroot/Plugins/animation/003/animation.js

@@ -0,0 +1,2 @@
+document.write('<link href="/plugins/animation/003/style.css" rel="stylesheet" />');
+document.write('<script src="/plugins/animation/003/JavaScript.js"></script>');

+ 125 - 0
wwwroot/Plugins/animation/004/JavaScript.js

@@ -0,0 +1,125 @@
+
+var c1 = document.getElementById('c1'),
+    ctx1 = c1.getContext('2d'),
+    c2 = document.getElementById('c2'),
+    ctx2 = c2.getContext('2d'),
+    twopi = Math.PI * 2,
+    parts = [],
+    sizeBase,
+    cw,
+    opt,
+    hue,
+    count;
+
+function rand(min, max) {
+    return Math.random() * (max - min) + min;
+}
+
+function hsla(h, s, l, a) {
+    return 'hsla(' + h + ',' + s + '%,' + l + '%,' + a + ')';
+}
+
+function create() {
+    sizeBase = cw + ch;
+    count = Math.floor(sizeBase * 0.3),
+        hue = rand(0, 360),
+        opt = {
+            radiusMin: 1,
+            radiusMax: sizeBase * 0.04,
+            blurMin: 10,
+            blurMax: sizeBase * 0.04,
+            hueMin: hue,
+            hueMax: hue + 100,
+            saturationMin: 10,
+            saturationMax: 70,
+            lightnessMin: 20,
+            lightnessMax: 50,
+            alphaMin: 0.1,
+            alphaMax: 0.5
+        }
+    ctx1.clearRect(0, 0, cw, ch);
+    ctx1.globalCompositeOperation = 'lighter';
+    while (count--) {
+        var radius = rand(opt.radiusMin, opt.radiusMax),
+            blur = rand(opt.blurMin, opt.blurMax),
+            x = rand(0, cw),
+            y = rand(0, ch),
+            hue = rand(opt.hueMin, opt.hueMax),
+            saturation = rand(opt.saturationMin, opt.saturationMax),
+            lightness = rand(opt.lightnessMin, opt.lightnessMax),
+            alpha = rand(opt.alphaMin, opt.alphaMax);
+
+        ctx1.shadowColor = hsla(hue, saturation, lightness, alpha);
+        ctx1.shadowBlur = blur;
+        ctx1.beginPath();
+        ctx1.arc(x, y, radius, 0, twopi);
+        ctx1.closePath();
+        ctx1.fill();
+    }
+
+    parts.length = 0;
+    for (var i = 0; i < Math.floor((cw + ch) * 0.03); i++) {
+        parts.push({
+            radius: rand(1, sizeBase * 0.03),
+            x: rand(0, cw),
+            y: rand(0, ch),
+            angle: rand(0, twopi),
+            vel: rand(0.1, 0.5),
+            tick: rand(0, 10000)
+        });
+    }
+}
+
+function init() {
+    resize();
+    create();
+    loop();
+}
+
+function loop() {
+    requestAnimationFrame(loop);
+
+    ctx2.clearRect(0, 0, cw, ch);
+    ctx2.globalCompositeOperation = 'source-over';
+    ctx2.shadowBlur = 0;
+    ctx2.drawImage(c1, 0, 0);
+    ctx2.globalCompositeOperation = 'lighter';
+
+    var i = parts.length;
+    ctx2.shadowBlur = 15;
+    ctx2.shadowColor = '#fff';
+    while (i--) {
+        var part = parts[i];
+
+        part.x += Math.cos(part.angle) * part.vel;
+        part.y += Math.sin(part.angle) * part.vel;
+        part.angle += rand(-0.05, 0.05);
+
+        ctx2.beginPath();
+        ctx2.arc(part.x, part.y, part.radius, 0, twopi);
+        ctx2.fillStyle = hsla(0, 0, 100, 0.075 + Math.cos(part.tick * 0.02) * 0.05);
+        ctx2.fill();
+
+        if (part.x - part.radius > cw) { part.x = -part.radius }
+        if (part.x + part.radius < 0) { part.x = cw + part.radius }
+        if (part.y - part.radius > ch) { part.y = -part.radius }
+        if (part.y + part.radius < 0) { part.y = ch + part.radius }
+
+        part.tick++;
+    }
+}
+
+function resize() {
+    cw = c1.width = c2.width = window.innerWidth,
+        ch = c1.height = c2.height = window.innerHeight;
+    create();
+}
+
+function click() {
+    create()
+}
+
+window.addEventListener('resize', resize);
+window.addEventListener('click', click);
+
+init();

+ 20 - 0
wwwroot/Plugins/animation/004/Style.css

@@ -0,0 +1,20 @@
+body {
+    background: #000;
+    overflow: hidden;
+}
+
+canvas {
+    bottom: 0;
+    left: 0;
+    position: absolute;
+    right: 0;
+    top: 0;
+}
+
+#c1 {
+    opacity: 0;
+}
+
+#c2 {
+    background: #000;
+}

+ 4 - 0
wwwroot/Plugins/animation/004/animation.js

@@ -0,0 +1,4 @@
+document.write('<link href="/plugins/animation/004/style.css" rel="stylesheet" />');
+document.write('<canvas id="c1"></canvas>');
+document.write('<canvas id="c2"></canvas>');
+document.write('<script src="/plugins/animation/004/JavaScript.js"></script>');

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 6 - 0
wwwroot/Plugins/chartjs/chart.min.js


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 6 - 0
wwwroot/Plugins/chartjs/chartjs-plugin-datalabels.js


+ 147 - 0
wwwroot/Plugins/chartjs/utils.js

@@ -0,0 +1,147 @@
+'use strict';
+
+window.chartColors = {
+	red: 'rgb(255, 99, 132)',
+	orange: 'rgb(255, 159, 64)',
+	yellow: 'rgb(255, 205, 86)',
+	green: 'rgb(75, 192, 192)',
+	blue: 'rgb(54, 162, 235)',
+	purple: 'rgb(153, 102, 255)',
+	grey: 'rgb(201, 203, 207)'
+};
+
+(function(global) {
+	var MONTHS = [
+		'January',
+		'February',
+		'March',
+		'April',
+		'May',
+		'June',
+		'July',
+		'August',
+		'September',
+		'October',
+		'November',
+		'December'
+	];
+
+	var COLORS = [
+		'#4dc9f6',
+		'#f67019',
+		'#f53794',
+		'#537bc4',
+		'#acc236',
+		'#166a8f',
+		'#00a950',
+		'#58595b',
+		'#8549ba'
+	];
+
+	var Samples = global.Samples || (global.Samples = {});
+	var Color = global.Color;
+
+	Samples.utils = {
+		// Adapted from http://indiegamr.com/generate-repeatable-random-numbers-in-js/
+		srand: function(seed) {
+			this._seed = seed;
+		},
+
+		rand: function(min, max) {
+			var seed = this._seed;
+			min = min === undefined ? 0 : min;
+			max = max === undefined ? 1 : max;
+			this._seed = (seed * 9301 + 49297) % 233280;
+			return min + (this._seed / 233280) * (max - min);
+		},
+
+		numbers: function(config) {
+			var cfg = config || {};
+			var min = cfg.min || 0;
+			var max = cfg.max || 1;
+			var from = cfg.from || [];
+			var count = cfg.count || 8;
+			var decimals = cfg.decimals || 8;
+			var continuity = cfg.continuity || 1;
+			var dfactor = Math.pow(10, decimals) || 0;
+			var data = [];
+			var i, value;
+
+			for (i = 0; i < count; ++i) {
+				value = (from[i] || 0) + this.rand(min, max);
+				if (this.rand() <= continuity) {
+					data.push(Math.round(dfactor * value) / dfactor);
+				} else {
+					data.push(null);
+				}
+			}
+
+			return data;
+		},
+
+		labels: function(config) {
+			var cfg = config || {};
+			var min = cfg.min || 0;
+			var max = cfg.max || 100;
+			var count = cfg.count || 8;
+			var step = (max - min) / count;
+			var decimals = cfg.decimals || 8;
+			var dfactor = Math.pow(10, decimals) || 0;
+			var prefix = cfg.prefix || '';
+			var values = [];
+			var i;
+
+			for (i = min; i < max; i += step) {
+				values.push(prefix + Math.round(dfactor * i) / dfactor);
+			}
+
+			return values;
+		},
+
+		months: function(config) {
+			var cfg = config || {};
+			var count = cfg.count || 12;
+			var section = cfg.section;
+			var values = [];
+			var i, value;
+
+			for (i = 0; i < count; ++i) {
+				value = MONTHS[Math.ceil(i) % 12];
+				values.push(value.substring(0, section));
+			}
+
+			return values;
+		},
+
+		color: function(index) {
+			return COLORS[index % COLORS.length];
+		},
+
+		transparentize: function(color, opacity) {
+			var alpha = opacity === undefined ? 0.5 : 1 - opacity;
+			return Color(color).alpha(alpha).rgbString();
+		}
+	};
+
+	// DEPRECATED
+	window.randomScalingFactor = function() {
+		return Math.round(Samples.utils.rand(-100, 100));
+	};
+
+	// INITIALIZATION
+
+	Samples.utils.srand(Date.now());
+
+	// Google Analytics
+	/* eslint-disable */
+	if (document.location.hostname.match(/^(www\.)?chartjs\.org$/)) {
+		(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+		(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+		m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+		})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+		ga('create', 'UA-28909194-3', 'auto');
+		ga('send', 'pageview');
+	}
+	/* eslint-enable */
+
+}(this));

+ 683 - 0
wwwroot/Plugins/easyui/changelog.txt

@@ -0,0 +1,683 @@
+Version 1.9.x
+-------------
+* Improvement
+ * datagrid: The 'sorter' function on the column accepts the entire row as the sorting parameters.
+ * datebox: Add 'getDate' and 'setDate' methods.
+ * pagination: Add 'onBeforeSelectPage' event.
+
+Version 1.9.0
+-------------
+* Bug
+ * datagrid: Slow scrolling with mousewheel on frozen columns. fixed.
+ * datagrid: The 'rowStyler' function is called on empty row. fixed.
+ * linkbutton: Calling 'disable' method still can submit the form. fixed.
+ * combotree: The 'onBeforeSelect' event fires twice while selecting a node. fixed.
+ * combotreegrid: The 'onSelect' event fires twice while selecting a row. fixed.
+* Improvement
+ * checkbox: Add 'readonly' property.
+ * radiobutton: Add 'readonly' property.
+ * Compatible with jQuery 3.x.
+* New Plugins
+ * timepicker: Allow the user to choose time on a clock.
+
+Version 1.8.0
+-------------
+* Bug
+ * treegrid: The 'pageNumber' can't be initialized with the specified value. fixed.
+ * checkbox: The disabled checkbox has no disabled label. fixed.
+* Improvement
+ * switchbutton: Add the 'label','labelAlign','labelPosition','labelWidth' properties.
+ * switchbutton: Accept 'tabindex' attribute to get focus when the user press TAB key.
+ * form: The 'onChange' event is available for all the form component.
+ * calendar: The 'Date' property is available to support the hijri date.
+ * textbox: The floating label is available.
+
+Version 1.7.0
+-------------
+* Bug
+ * sidemenu: The tooltip has a wrong position when the 'floatMenuPosition' is set to 'left'. fixed.
+ * datagrid: The horizontal scrollbar has a wrong state when the 'showHeader' is set to true. fixed.
+ * combo: The initialized value will trigger the form's 'onChange' event when the 'multiple' is set to true. fixed.
+ * panel: The horizontal panel doesn't work normally when 'noheader' property is set to true. fixed.
+ * pagination: The extended buttons may lose in IE when rebuild the component. fixed.
+* Improvement
+ * tree: Add 'findBy' method to find a node by any fields.
+ * tree: The 'find' method is enhanced to find a node easily.
+ * combo: Add 'panelValign' property.
+ * datagrid: The sorting parameters will be ignored when the 'remoteSort' is set to false.
+ * timespinner: Add 'hour12' property to display in 12 hour format.
+
+Version 1.6.0
+-------------
+* Bug
+ * maskedbox: The component does not accept numeric keypad. fixed.
+ * combogrid: When selecting multiple records, the datagrid will scroll to the last checked record. fixed.
+* Improvement
+ * Compatible with jQuery 3.x.
+ * tabs: The 'toolPosition' property can accept 'top' and 'bottom' values.
+ * textbox: The textbox label has the animating feature when focus or blur on it.
+ * tooltip: Add 'valign' property.
+ * tree: The node class can be initialized by setting the 'nodeCls' in the data.
+* New Plugins
+ * sidemenu: The sidemenu is created from accordion and tree plugins. It builds a collapsible menu with some categories.
+ * radiobutton: This plugin provides a round interface to select one option from a number of options.
+ * checkbox: This plugin allows a user to select a value from a small set of options.
+
+Version 1.5.5
+-------------
+* Bug
+ * tabs: The selecting history has wrong order when the title contains complex elements. fixed.
+ * combo: The drop-down panel may not be hidden if a bigger 'delay' value is set. fixed.
+ * layout: The expanding panel does not collapse when move mouse quickly away from it. fixed.
+ * tagbox: The tagbox and the label don't stay in the same line. fixed.
+* Improvement
+ * combo: The 'blur' event handler is attached to the 'inputEvents' property.
+ * numberbox: The 'cloneFrom' method is available.
+ * slider: The 'step' property can be set with a floating number.
+ * menu: The 'findItem' method allows the user to find menu item by any parameters.
+ * menubutton: Add 'showEvent' and 'hideEvent' properties.
+* New Plugins
+ * maskedbox: The maskedbox enforces its structure as the user types.
+
+Version 1.5.4
+-------------
+* Bug
+ * combotreegrid: The 'onChange' event does not fire when entering values on the inputing box. fixed.
+ * combobox: Clicking on the drop-down panel will jump to the bottom of body on win10 IE11. fixed.
+ * datebox: Clicking on the 'Today' button doesn't trigger the 'onSelect' event. fixed.
+ * propertygrid: The 'getChanges' method doesn't work after editing the only one row. fixed.
+* Improvement
+ * combo: Add the 'panelEvents' property.
+ * combo: Attach the default 'mousedown' event handler.
+ * combobox: The 'setValues' method can be called to initialize the displaying text.
+ * combotreegrid: Press ENTER key to select the highlighted rows.
+ * panel: Improve the resizing performance.
+ * filebox: The 'files' method allows the user to get the selected file list.
+ * searchbox: Improvent the 'selectName' method.
+
+Version 1.5.3
+-------------
+* Bug
+ * combobox: The 'iconCls' property can not be parsed from the <option> markup. fixed.
+ * combobox: Clicking scrollbar will cause the drop-down panel to be hidden in IE. fixed.
+ * pagination: The pagination height will shrink when the 'displayMsg' property is set to false. fixed.
+ * tabs: The tab panel takes a wrong 'data' parameter in the 'onLoad' event. fixed.
+* Improvement
+ * draggable: Add 'onEndDrag' event.
+ * resizable: Retrieve more than one resizing directions with different edges.
+ * datagrid: Add 'resizeEdge' property.
+ * datagrid: Avoid the memory leaks.
+ * combo: The 'originalValue' property value is corrected in multiple mode.
+ * form: Add the tagbox to the form fields.
+ * tagbox: Add the 'reset' method.
+ * progress: Increase the response time to open and close the progress message window.
+ 
+Version 1.5.2
+-------------
+* Bug
+ * form: The initialized value of the inputing box will disappear after calling the 'reset' method. fixed.
+ * textbox: Calling the 'destroy' method does not clean the field label. fixed.
+ * datagrid: Calling the 'selectRow' method on an unexisting row causes undesired record set. fixed.
+* Improvement
+ * datagrid: The ctrl selection is supported on Mac keyboards.
+ * datagrid: The 'scrollOnSelect' property is available for the user to determine whether to scroll to the specified row when selecting it.
+ * combotree: Add the 'textField' property.
+ * combotreegrid: Add the 'textField' property.
+ * pagination: Add 'showPageInfo' property.
+ * panel: Add 'halign' and 'titleDirection' properties to allow the user to align the panel header to left or right side.
+ * accordion: Add 'halign' property to build the horizontal accordion.
+ * tagbox: The 'required' propery can be applied to validate whether the value is empty.
+
+Version 1.5.1
+-------------
+* Bug
+ * datagrid: The selecting and checking flags will lose after calling 'updateRow' method. fixed.
+ * tabs: The trip tools have a wrong position when calling 'update' method. fixed.
+ * window: When the height is set to 'auto', it will disappear after moving the window. fixed.
+ * messager: When display the progress message window and then close it immediately, an exception occurs. fixed.
+ * form: The 'clear' method does not clear the selected drop-down items of the combobox. fixed.
+* Improvement
+ * textbox: The 'cls' property is available to add a custom style to textbox.
+ * numberbox: Allow the user to format currency in Italian.
+ * combo: Add 'multivalue' property that allows the user to determine how to submit the multiple values.
+ * combobox: Add 'reversed' property.
+ * combobox: Add 'onClick' event.
+ * combogrid: Add 'reversed' property.
+ * treegrid: Enable multiple selection with the shift key.
+* New Plugins
+ * tagbox: Allows the user to add tags to a form field.
+
+Version 1.5
+-------------
+* Bug
+ * combobox: The 'onSelect' event does not fire when load data that contains the selected item. fixed.
+ * datagrid: The 'updateRow' method sometimes does not work properly when the field is set to a blank value. fixed.
+* Improvement
+ * A label can be associated to any form fields.
+ * combobox: Enhance the 'select' and 'unselect' rules on the drop-down items.
+ * combobox: Add 'limitToList' property to limit the inputed values to the listed items.
+ * combogrid: Allow the user to clone the component quickly.
+ * form: Add the 'dirty' property that allows the user to submit the only changed fields.
+ * form: Add 'resetDirty' method.
+ * datagrid: Allow the user to display a message when there are no records to be shown.
+ * textbox: Add 'label','labelWidth','labelPosition' and 'labelAlign' properties.
+ * spinner: Add 'spinAlign' property.
+ * calendar: Allow the user to display week number of the year.
+ * window: Add 'constrain' property.
+* New Plugins
+ * passwordbox: The plugin that allows the user to input passwords with nice feedback.
+ * combotreegrid: Combines combobox with drop-down treegrid component.
+
+Version 1.4.5
+-------------
+* Bug
+ * datagrid: The 'getChanges' method does not return the updated rows after calling 'updateRow' method. fixed.
+ * treegrid: The 'onLoadSuccess' event fires when append or insert a row. fixed.
+ * tree: The 'onLoadSuccess' event fires when append or insert a node. fixed.
+* Improvement
+ * window: The displaying style can be customized.
+ * window: The 'border' property allows the user to set different border style.
+ * navpanel: The 'href' property is enabled to load content from remote server.
+ * combotree: The 'setValue' and 'setValues' methods accept the paremter values in 'id' and 'text' pairs
+ * combobox: Add 'showItemIcon' property.
+ * combobox: Set 'groupPosition' property to 'sticky' to stick the item group to the top of drop-down panel.
+ * messager: Pressing ENTER key on input box will trigger click event of the first button.
+ * validatebox: Add 'editable',disabled' and 'readonly' properties.
+ * validatebox: Add 'enable','disable','readonly' methods.
+ * validatebox: Allow the user to determine how to display the error message.
+ * filebox: Add 'accept' and 'multiple' properties.
+ * form: Add 'iframe' property and 'onProgress' event.
+ * treegrid: Add cascade checkbox selection.
+ * treegrid: Add 'getCheckedNodes','checkNode' and 'uncheckNode' methods.
+
+Version 1.4.4
+-------------
+* Bug
+ * filebox: The 'clear' and 'reset' methods do not work properly in IE9. fixed.
+ * messager: After calling $.messager.progress() with no arguments, the $.messager.progress('close') does not work properly. fixed.
+ * timespinner: The value does not display properly in IE8 while clicking the spin buttons. fixed.
+ * window: The window does not display when calling 'options' method in 'onMove' event. fixed.
+ * treegrid: The 'getLevel' method does not accept the parameter value of 0. fixed.
+* Improvement
+ * layout: The 'collapsedContent','expandMode' and 'hideExpandTool' properties are supported in region panel.
+ * layout: The 'hideCollapsedContent' property can be set to display the vertical title bar on collapsed panel.
+ * layout: Add 'onCollapse','onExpand','onAdd','onRemove' events.
+ * datagrid: Display the 'up-down' icon on the sortable columns.
+ * datagrid: Add 'gotoPage' method.
+ * propertygrid: Add 'groups' method that allows to get all the data groups.
+ * messager: Auto scroll feature is supported when displaying long messages.
+ * tabs: The 'disabled' property is supported when defining a disabled tab panel.
+ * tabs: The percentange size is supported now.
+
+Version 1.4.3
+-------------
+* Bug
+ * textbox: The 'setText' method does not accept value 0. fixed.
+ * timespinner: When running in IE11, the error occurs when clicking on the empty textbox. fixed.
+ * tabs: The 'update' method can not update only the panel body. fixed.
+* Improvement
+ * combobox: Improve the performance of displaying the drop-down panel.
+ * combogrid: Remember the displaying text when the drop-down datagrid go to other pages.
+ * combogrid: The 'setValue' and 'setValues' methods accept a key-value object.
+ * window: The inline window's mask can auto-stretch its size to fill parent container.
+ * tabs: The 'showTool' and 'hideTool' methods are available for users to show or hide the tools.
+ * layout: Allow the user to override the 'cls','headerCls' and 'bodyCls' property values.
+* New Plugins
+ * switchbutton: The switch button with two states:'on' and 'off'.
+
+Version 1.4.2
+-------------
+* Bug
+ * treegrid: The column will restore its size to original size after recreating the treegrid. fixed.
+* Improvement
+ * draggable: Add 'delay' property that allows the user to delay the drag operation.
+ * tree: Add 'filter' property and 'doFilter' method.
+ * tabs: The 'add' method allows the user to insert a tab panel at a specified index.
+ * tabs: The user can determine what tab panel can be selected.
+ * tabs: Add 'justified' and 'narrow' properties.
+ * layout: Add 'unsplit' and 'split' methods.
+ * messager: Keyboard navigation features are supported now.
+ * form: Add 'onChange' event.
+ * combobox: Add 'queryParams' property.
+ * slider: Add 'range' property.
+ * menu: Add 'itemHeight','inline','noline' properties.
+ * panel: The 'header' property allows the user to customize the panel header.
+ * menubutton: Add 'hasDownArrow' property.
+* New Plugins
+ * datalist: The plugin to render items in a list.
+ * navpanel: The root component for the mobile page.
+ * mobile: The plugin to provide the mobile page stack management and navigation.
+
+Version 1.4.1
+-------------
+* Bug
+ * combogrid: The combogrid has different height than other combo components. fixed.
+ * datagrid: The row element loses some class style value after calling 'updateRow' method. fixed.
+ * menubutton: Calling 'enable' method on a disabled button can not work well. fixed.
+ * form: The filebox components in the form do not work correctly after calling 'clear' method. fixed.
+* Improvement
+ * tabs: The 'update' method accepts 'type' option that allows the user to update the header,body,or both.
+ * panel: Add 'openAnimation','openDuration','closeAnimation' and 'closeDuration' properties to set the animation for opening or closing a panel.
+ * panel: Add 'footer' property that allows the user to add a footer bar to the bottom of panel.
+ * datagrid: Calling 'endEdit' method will accept the editing value correctly.
+ * datagrid: Add 'onBeforeSelect','onBeforeCheck','onBeforeUnselect','onBeforeUncheck' events.
+ * propertygrid: The user can edit a row by calling 'beginEdit' method.
+ * datebox: Add 'cloneFrom' method to create the datebox component quickly.
+ * datetimebox: Add 'cloneFrom' method to create the datetimebox component quickly.
+
+Version 1.4
+-------------
+* Bug
+ * menu: The menu should not has a correct height when removed a menu item. fixed.
+ * datagrid: The 'fitColumns' method does not work normally when the datarid width is too small. fixed.
+* Improvement
+ * The fluid/percentange size is supported now for all easyui components.
+ * menu: Add 'showItem', 'hideItem' and 'resize' methods.
+ * menu: Auto resize the height upon the window size.
+ * menu: Add 'duration' property that allows the user to define duration time in milliseconds to hide menu.
+ * validatebox: Add 'onBeforeValidate' and 'onValidate' events.
+ * combo: Extended from textbox now.
+ * combo: Add 'panelMinWidth','panelMaxWidth','panelMinHeight' and 'panelMaxHeight' properties.
+ * searchbox: Extended from textbox now.
+ * tree: The 'getRoot' method will return the top parent node of a specified node if pass a 'nodeEl' parameter.
+ * tree: Add 'queryParams' property.
+ * datetimebox: Add 'spinnerWidth' property.
+ * panel: Add 'doLayout' method to cause the panel to lay out its components.
+ * panel: Add 'clear' method to clear the panel's content.
+ * datagrid: The user is allowed to assign percent width to columns.
+ * form: Add 'ajax','novalidate' and 'queryParams' properties.
+ * linkbutton: Add 'resize' method.
+* New Plugins
+ * textbox: A enhanced input field that allows users build their form easily.
+ * datetimespinner: A date and time spinner that allows to pick a specific day.
+ * filebox: The filebox component represents a file field of the forms.
+
+Version 1.3.6
+-------------
+* Bug
+ * treegrid: The 'getChecked' method can not return correct checked rows. fixed.
+ * tree: The checkbox does not display properly on async tree when 'onlyLeafCheck' property is true. fixed.
+* Improvement
+ * treegrid: All the selecting and checking methods are extended from datagrid component.
+ * linkbutton: The icon alignment is fully supported, possible values are: 'top','bottom','left','right'.
+ * linkbutton: Add 'size' property, possible values are: 'small','large'.
+ * linkbutton: Add 'onClick' event.
+ * menubutton: Add 'menuAlign' property that allows the user set top level menu alignment.
+ * combo: Add 'panelAlign' property, possible values are: 'left','right'.
+ * calendar: The 'formatter','styler' and 'validator' options are available to custom the calendar dates.
+ * calendar: Add 'onChange' event.
+ * panel: Add 'method','queryParams' and 'loader' options.
+ * panel: Add 'onLoadError' event.
+ * datagrid: Add 'onBeginEdit' event that fires when a row goes into edit mode.
+ * datagrid: Add 'onEndEdit' event that fires when finishing editing but before destroying editors.
+ * datagrid: Add 'sort' method and 'onBeforeSortColumn' event.
+ * datagrid: The 'combogrid' editor has been integrated into datagrid.
+ * datagrid: Add 'ctrlSelect' property that only allows multi-selection when ctrl+click is used.
+ * slider: Add 'converter' option that allows users determine how to convert a value to the slider position or the slider position to the value.
+ * searchbox: Add 'disabled' property.
+ * searchbox: Add 'disable','enable','clear','reset' methods.
+ * spinner: Add 'readonly' property, 'readonly' method and 'onChange' event.
+
+Version 1.3.5
+-------------
+* Bug
+ * searchbox: The 'searcher' function can not offer 'name' parameter value correctly. fixed.
+ * combo: The 'isValid' method can not return boolean value. fixed.
+ * combo: Clicking combo will trigger the 'onHidePanel' event of other combo components that have hidden drop-down panels. fixed.
+ * combogrid: Some methods can not inherit from combo. fixed.
+* Improvement
+ * datagrid: Improve performance on checking rows.
+ * menu: Allows to append a menu separator.
+ * menu: Add 'hideOnUnhover' property to indicate if the menu should be hidden when mouse exits it.
+ * slider: Add 'clear' and 'reset' methods.
+ * tabs: Add 'unselect' method that will trigger 'onUnselect' event.
+ * tabs: Add 'selected' property to specify what tab panel will be opened.
+ * tabs: The 'collapsible' property of tab panel is supported to determine if the tab panel can be collapsed.
+ * tabs: Add 'showHeader' property, 'showHeader' and 'hideHeader' methods.
+ * combobox: The 'disabled' property can be used to disable some items.
+ * tree: Improve loading performance.
+ * pagination: The 'layout' property can be used to customize the pagination layout.
+ * accordion: Add 'unselect' method that will trigger 'onUnselect' event.
+ * accordion: Add 'selected' and 'multiple' properties.
+ * accordion: Add 'getSelections' method.
+ * datebox: Add 'sharedCalendar' property that allows multiple datebox components share one calendar component.
+
+Version 1.3.4
+-------------
+* Bug
+ * combobox: The onLoadSuccess event fires when parsing empty local data. fixed.
+ * form: Calling 'reset' method can not reset datebox field. fixed.
+* Improvement
+ * mobile: The context menu and double click features are supported on mobile devices.
+ * combobox: The 'groupField' and 'groupFormatter' options are available to display items in groups.
+ * tree: When append or insert nodes, the 'data' parameter accepts one or more nodes data.
+ * tree: The 'getChecked' method accepts a single 'state' or an array of 'state'.
+ * tree: Add 'scrollTo' method.
+ * datagrid: The 'multiSort' property is added to support multiple column sorting.
+ * datagrid: The 'rowStyler' and column 'styler' can return CSS class name or inline styles.
+ * treegrid: Add 'load' method to load data and navigate to the first page.
+ * tabs: Add 'tabWidth' and 'tabHeight' properties.
+ * validatebox: The 'novalidate' property is available to indicate whether to perform the validation.
+ * validatebox: Add 'enableValidation' and 'disableValidation' methods.
+ * form: Add 'enableValidation' and 'disableValidation' methods.
+ * slider: Add 'onComplete' event.
+ * pagination: The 'buttons' property accepts the existing element.
+
+Version 1.3.3
+-------------
+* Bug
+ * datagrid: Some style features are not supported by column styler function. fixed.
+ * datagrid: IE 31 stylesheet limit. fixed.
+ * treegrid: Some style features are not supported by column styler function. fixed.
+ * menu: The auto width of menu item displays incorrect in ie6. fixed.
+ * combo: The 'onHidePanel' event can not fire when clicked outside the combo area. fixed. 
+* Improvement
+ * datagrid: Add 'scrollTo' and 'highlightRow' methods.
+ * treegrid: Enable treegrid to parse data from <tbody> element.
+ * combo: Add 'selectOnNavigation' and 'readonly' options.
+ * combobox: Add 'loadFilter' option to allow users to change data format before loading into combobox.
+ * tree: Add 'onBeforeDrop' callback event.
+ * validatebox: Dependent on tooltip plugin now, add 'deltaX' property.
+ * numberbox: The 'filter' options can be used to determine if the key pressed was accepted.
+ * linkbutton: The group button is available.
+ * layout: The 'minWidth','maxWidth','minHeight','maxHeight' and 'collapsible' properties are available for region panel.
+* New Plugins
+ * tooltip: Display a popup message when moving mouse over an element.
+ 
+Version 1.3.2
+-------------
+* Bug
+ * datagrid: The loading message window can not be centered when changing the width of datagrid. fixed.
+ * treegrid: The 'mergeCells' method can not work normally. fixed.
+ * propertygrid: Calling 'endEdit' method to stop editing a row will cause errors. fixed.
+ * tree: Can not load empty data when 'lines' property set to true. fixed.
+* Improvement
+ * RTL feature is supported now.
+ * tabs: Add 'scrollBy' method to scroll the tab header by the specified amount of pixels
+ * tabs: Add 'toolPosition' property to set tab tools to left or right.
+ * tabs: Add 'tabPosition' property to define the tab position, possible values are: 'top','bottom','left','right'.
+ * datagrid: Add a column level property 'order' that allows users to define different default sort order per column.
+ * datagrid: Add a column level property 'halign' that allows users to define how to align the column header.
+ * datagrid: Add 'resizeHandle' property to define the resizing column position, by grabbing the left or right edge of the column.
+ * datagrid: Add 'freezeRow' method to freeze some rows that will always be displayed at the top when the datagrid is scrolled down.
+ * datagrid: Add 'clearChecked' method to clear all checked records.
+ * datagrid: Add 'data' property to initialize the datagrid data.
+ * linkbutton: Add 'iconAlgin' property to define the icon position, supported values are: 'left','right'.
+ * menu: Add 'minWidth' property.
+ * menu: The menu width can be automatically calculated.
+ * tree: New events are available including 'onBeforeDrag','onStartDrag','onDragEnter','onDragOver','onDragLeave',etc.
+ * combo: Add 'height' property to allow users to define the height of combo.
+ * combo: Add 'reset' method.
+ * numberbox: Add 'reset' method.
+ * spinner: Add 'reset' method.
+ * spinner: Add 'height' property to allow users to define the height of spinner.
+ * searchbox: Add 'height' property to allow users to define the height of searchbox.
+ * form: Add 'reset' method.
+ * validatebox: Add 'delay' property to delay validating from the last inputting value.
+ * validatebox: Add 'tipPosition' property to define the tip position, supported values are: 'left','right'.
+ * validatebox: Multiple validate rules on a field is supported now.
+ * slider: Add 'reversed' property to determine if the min value and max value will switch their positions.
+ * progressbar: Add 'height' property to allow users to define the height of progressbar.
+
+Version 1.3.1
+-------------
+* Bug
+ * datagrid: Setting the 'pageNumber' property is not valid. fixed.
+ * datagrid: The id attribute of rows isn't adjusted properly while calling 'insertRow' or 'deleteRow' method.
+ * dialog: When load content from 'href', the script will run twice. fixed.
+ * propertygrid: The editors that extended from combo can not accept its changed value. fixed.
+* Improvement
+ * droppable: Add 'disabled' property.
+ * droppable: Add 'options','enable' and 'disable' methods.
+ * tabs: The tab panel tools can be changed by calling 'update' method.
+ * messager: When show a message window, the user can define the window position by applying 'style' property.
+ * window: Prevent script on window body from running twice.
+ * window: Add 'hcenter','vcenter' and 'center' methods.
+ * tree: Add 'onBeforeCheck' callback event.
+ * tree: Extend the 'getChecked' method to allow users to get 'checked','unchecked' or 'indeterminate' nodes.
+ * treegrid: Add 'update' method to update a specified node.
+ * treegrid: Add 'insert' method to insert a new node.
+ * treegrid: Add 'pop' method to remove a node and get the removed node data.
+
+Version 1.3
+-----------
+* Bug
+ * combogrid: When set to 'remote' query mode, the 'queryParams' parameters can't be sent to server. fixed.
+ * combotree: The tree nodes on drop-down panel can not be unchecked while calling 'clear' method. fixed.
+ * datetimebox: Setting 'showSeconds' property to false cannot hide seconds info. fixed.
+ * datagrid: Calling 'mergeCells' method can't auto resize the merged cell while header is hidden. fixed.
+ * dialog: Set cache to false and load data via ajax, the content cannot be refreshed. fixed.
+* Improvement
+ * The HTML5 'data-options' attribute is available for components to declare all custom options, including properties and events.
+ * More detailed documentation is available.
+ * panel: Prevent script on panel body from running twice.
+ * accordion: Add 'getPanelIndex' method.
+ * accordion: The tools can be added on panel header.
+ * datetimebox: Add 'timeSeparator' option that allows users to define the time separator.
+ * pagination: Add 'refresh' and 'select' methods.
+ * datagrid: Auto resize the column width to fit the contents when the column width is not defined.
+ * datagrid: Double click on the right border of columns to auto resize the columns to the contents in the columns.
+ * datagrid: Add 'autoSizeColumn' method that allows users to adjust the column width to fit the contents.
+ * datagrid: Add 'getChecked' method to get all rows where the checkbox has been checked.
+ * datagrid: Add 'selectOnCheck' and 'checkOnSelect' properties and some checking methods to enhance the row selections.
+ * datagrid: Add 'pagePosition' property to allow users to display pager bar at either top,bottom or both places of the grid.
+ * datagrid: The buffer view and virtual scroll view are supported to display large amounts of records without pagination.
+ * tabs: Add 'disableTab' and 'enableTab' methods to allow users to disable or enable a tab panel.
+
+Version 1.2.6
+-------------
+* Bug
+ * tabs: Call 'add' method with 'selected:false' option, the added tab panel is always selected. fixed.
+ * treegrid: The 'onSelect' and 'onUnselect' events can't be triggered. fixed.
+ * treegrid: Cannot display zero value field. fixed. 
+* Improvement
+ * propertygrid: Add 'expandGroup' and 'collapseGroup' methods.
+ * layout: Allow users to create collapsed layout panels by assigning 'collapsed' property to true.
+ * layout: Add 'add' and 'remove' methods that allow users to dynamically add or remove region panel.
+ * layout: Additional tool icons can be added on region panel header.
+ * calendar: Add 'firstDay' option that allow users to set first day of week. Sunday is 0, Monday is 1, ...
+ * tree: Add 'lines' option, true to display tree lines. 
+ * tree: Add 'loadFilter' option that allow users to change data format before loading into the tree.
+ * tree: Add 'loader' option that allow users to define how to load data from remote server.
+ * treegrid: Add 'onClickCell' and 'onDblClickCell' callback function options.
+ * datagrid: Add 'autoRowHeight' property that allow users to determine if set the row height based on the contents of that row.
+ * datagrid: Improve performance to load large data set.
+ * datagrid: Add 'loader' option that allow users to define how to load data from remote server.
+ * treegrid: Add 'loader' option that allow users to define how to load data from remote server.
+ * combobox: Add 'onBeforeLoad' callback event function.
+ * combobox: Add 'loader' option that allow users to define how to load data from remote server.
+ * Add support for other loading mode such as dwr,xml,etc.
+* New Plugins
+ * slider: Allows the user to choose a numeric value from a finite range.
+
+Version 1.2.5
+-------------
+* Bug
+ * tabs: When add a new tab panel with href property, the content page is loaded twice. fixed.
+ * form: Failed to call 'load' method to load form input with complex name. fixed.
+ * draggable: End drag in ie9, the cursor cannot be restored. fixed.
+* Improvement
+ * panel: The tools can be defined via html markup.
+ * tabs: Call 'close' method to close specified tab panel, users can pass tab title or index of tab panel. Other methods such 'select','getTab' and 'exists' are similar to 'close' method.
+ * tabs: Add 'getTabIndex' method.
+ * tabs: Users can define mini tools on tabs.
+ * tree: The mouse must move a specified distance to begin drag and drop operation.
+ * resizable: Add 'options','enable' and 'disable' methods.
+ * numberbox: Allow users to change number format.
+ * datagrid: The subgrid is supported now.
+ * searchbox: Add 'selectName' method to select searching type name.
+
+Version 1.2.4
+-------------
+* Bug
+ * menu: The menu position is wrong when scroll bar appears. fixed.
+ * accordion: Cannot display the default selected panel in jQuery 1.6.2. fixed.
+ * tabs: Cannot display the default selected tab panel in jQuery 1.6.2. fixed.
+* Improvement
+ * menu: Allow users to disable or enable menu item.
+ * combo: Add 'delay' property to set the delay time to do searching from the last key input event.
+ * treegrid: The 'getEditors' and 'getEditor' methods are supported now.
+ * treegrid: The 'loadFilter' option is supported now.
+ * messager: Add 'progress' method to display a message box with a progress bar.
+ * panel: Add 'extractor' option to allow users to extract panel content from ajax response.
+* New Plugins
+ * searchbox: Allow users to type words into box and do searching operation.
+ * progressbar: To display the progress of a task.
+ 
+Version 1.2.3
+-------------
+* Bug
+ * window: Cannot resize the window with iframe content. fixed.
+ * tree: The node will be removed when dragging to its child. fixed.
+ * combogrid: The onChange event fires multiple times. fixed.
+ * accordion: Cannot add batch new panels when animate property is set to true. fixed.
+* Improvement
+ * treegrid: The footer row and row styler features are supported now.
+ * treegrid: Add 'getLevel','reloadFooter','getFooterRows' methods.
+ * treegrid: Support root nodes pagination and editable features.
+ * datagrid: Add 'getFooterRows','reloadFooter','insertRow' methods and improve editing performance.
+ * datagrid: Add 'loadFilter' option that allow users to change original source data to standard data format.
+ * draggable: Add 'onBeforeDrag' callback event function.
+ * validatebox: Add 'remote' validation type.
+ * combobox: Add 'method' option.
+* New Plugins
+ * propertygrid: Allow users to edit property value in datagrid. 
+
+Version 1.2.2
+-------------
+* Bug
+ * datagrid: Apply fitColumns cannot work fine while set checkbox column. fixed.
+ * datagrid: The validateRow method cannot return boolean type value. fixed.
+ * numberbox: Cannot fix value in chrome when min or max property isn't defined. fixed.
+* Improvement
+ * menu: Add some crud methods.
+ * combo: Add hasDownArrow property to determine whether to display the down arrow button.
+ * tree: Supports inline editing.
+ * calendar: Add some useful methods such as 'resize', 'moveTo' etc.
+ * timespinner: Add some useful methods.
+ * datebox: Refactoring based on combo and calendar plugin now.
+ * datagrid: Allow users to change row style in some conditions.
+ * datagrid: Users can use the footer row to display summary information.
+* New Plugins
+ * datetimebox: Combines datebox with timespinner component.
+  
+Version 1.2.1
+-------------
+* Bug
+ * easyloader: Some dependencies cannot be loaded by their order. fixed.
+ * tree: The checkbox is setted incorrectly when removing a node. fixed.
+ * dialog: The dialog layout incorrectly when 'closed' property is setted to true. fixed.
+* Improvement
+ * parser: Add onComplete callback function that can indicate whether the parse action is complete.
+ * menu: Add onClick callback function and some other methods.
+ * tree: Add some useful methods.
+ * tree: Drag and Drop feature is supported now.
+ * tree: Add onContextMenu callback function.
+ * tabs: Add onContextMenu callback function.
+ * tabs: Add 'tools' property that can create buttons on right bar.
+ * datagrid: Add onHeaderContextMenu and onRowContextMenu callback functions.
+ * datagrid: Custom view is supported.
+ * treegrid: Add onContextMenu callback function and append,remove methods.
+  
+Version 1.2
+-------------
+* Improvement
+ * tree: Add cascadeCheck,onlyLeafCheck properties and select event.
+ * combobox: Enable multiple selection.
+ * combotree: Enable multiple selection.
+ * tabs: Remember the trace of selection, when current tab panel is closed, the previous selected tab will be selected.
+ * datagrid: Extend from panel, so many properties defined in panel can be used for datagrid.
+* New Plugins
+ * treegrid: Represent tabular data in hierarchical view, combines tree view and datagrid.
+ * combo: The basic component that allow user to extend their combo component such as combobox,combotree,etc.
+ * combogrid: Combines combobox with drop-down datagrid component.
+ * spinner: The basic plugin to create numberspinner,timespinner,etc.
+ * numberspinner: The numberbox that allow user to change value by clicking up and down spin buttons.
+ * timespinner: The time selector that allow user to quickly inc/dec a time.
+ 
+Version 1.1.2
+-------------
+* Bug
+ * messager: When call show method in layout, the message window will be blocked. fixed.
+* Improvement
+ * datagrid: Add validateRow method, remember the current editing row status when do editing action.
+ * datagrid: Add the ability to create merged cells.
+ * form: Add callback functions when loading data.
+ * panel,window,dialog: Add maximize,minimize,restore,collapse,expand methods.
+ * panel,tabs,accordion: The lazy loading feature is supported.
+ * tabs: Add getSelected,update,getTab methods.
+ * accordion: Add crud methods.
+ * linkbutton: Accept an id option to set the id attribute.
+ * tree: Enhance tree node operation.
+ 
+Version 1.1.1
+-------------
+* Bug
+ * form: Cannot clear the value of combobox and combotree component. fixed.
+* Improvement
+ * tree: Add some useful methods such as 'getRoot','getChildren','update',etc.
+ * datagrid: Add editable feature, improve performance while loading data.
+ * datebox: Add destroy method.
+ * combobox: Add destroy and clear method.
+ * combotree: Add destroy and clear method.
+ 
+Version 1.1
+-------------
+* Bug
+ * messager: When call show method with timeout property setted, an error occurs while clicking the close button. fixed.
+ * combobox: The editable property of combobox plugin is invalid. fixed.
+ * window: The proxy box will not be removed when dragging or resizing exceed browser border in ie. fixed.
+* Improvement
+ * menu: The menu item can use <a> markup to display a different page.
+ * tree: The tree node can use <a> markup to act as a tree menu.
+ * pagination: Add some event on refresh button and page list.
+ * datagrid: Add a 'param' parameter for reload method, with which users can pass query parameter when reload data.
+ * numberbox: Add required validation support, the usage is same as validatebox plugin.
+ * combobox: Add required validation support.
+ * combotree: Add required validation support.
+ * layout: Add some method that can get a region panel and attach event handlers.
+* New Plugins
+ * droppable: A droppable plugin that supports drag drop operation.
+ * calendar: A calendar plugin that can either be embedded within a page or popup.
+ * datebox: Combines a textbox with a calendar that let users to select date.
+ * easyloader: A JavaScript loader that allows you to load plugin and their dependencies into your page.
+ 
+Version 1.0.5
+* Bug
+ * panel: The fit property of panel performs incorrectly. fixed.
+* Improvement
+ * menu: Add a href attribute for menu item, with which user can display a different page in the current browser window.
+ * form: Add a validate method to do validation for validatebox component.
+ * dialog: The dialog can read collapsible,minimizable,maximizable and resizable attribute from markup.
+* New Plugins
+ * validatebox: A validation plugin that checks to make sure the user's input value is valid. 
+ 
+Version 1.0.4
+-------------
+* Bug
+ * panel: When panel is invisible, it is abnormal when resized. fixed.
+ * panel: Memory leak in method 'destroy'. fixed.
+ * messager: Memory leak when messager box is closed. fixed.
+ * dialog: No onLoad event occurs when loading remote data. fixed.
+* Improvement
+ * panel: Add method 'setTitle'.
+ * window: Add method 'setTitle'.
+ * dialog: Add method 'setTitle'.
+ * combotree: Add method 'getValue'.
+ * combobox: Add method 'getValue'.
+ * form: The 'load' method can load data and fill combobox and combotree field correctly.
+ 
+Version 1.0.3
+-------------
+* Bug
+ * menu: When menu is show in a DIV container, it will be cropped. fixed.
+ * layout: If you collpase a region panel and then expand it immediately, the region panel will not show normally. fixed.
+ * accordion: If no panel selected then the first one will become selected and the first panel's body height will not set correctly. fixed.
+* Improvement
+ * tree: Add some methods to support CRUD operation.
+ * datagrid: Toolbar can accept a new property named 'disabled' to disable the specified tool button.
+* New Plugins
+ * combobox: Combines a textbox with a list of options that users are able to choose from.
+ * combotree: Combines combobox with drop-down tree component.
+ * numberbox: Make input element can only enter number char.
+ * dialog: rewrite the dialog plugin, dialog can contains toolbar and buttons.

+ 18 - 0
wwwroot/Plugins/easyui/demo-mobile/accordion/_content.html

@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+	<meta charset="UTF-8">
+	<title>AJAX Content</title>
+</head>
+<body>
+	<p style="font-size:14px">Here is the content loaded via AJAX.</p>
+	<ul>
+		<li>easyui is a collection of user-interface plugin based on jQuery.</li>
+		<li>easyui provides essential functionality for building modern, interactive, javascript applications.</li>
+		<li>using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.</li>
+		<li>complete framework for HTML5 web page.</li>
+		<li>easyui save your time and scales while developing your products.</li>
+		<li>easyui is very easy but powerful.</li>
+	</ul>
+</body>
+</html>

+ 1 - 0
wwwroot/Plugins/easyui/demo-mobile/accordion/basic.html

@@ -0,0 +1 @@
+<!doctype html>
<html>
<head>
    <meta charset="UTF-8">  
	<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <title>Basic Accordion - jQuery EasyUI Mobile Demo</title>  
    <link rel="stylesheet" type="text/css" href="../../themes/metro/easyui.css">  
    <link rel="stylesheet" type="text/css" href="../../themes/mobile.css">  
    <link rel="stylesheet" type="text/css" href="../../themes/icon.css">  
    <script type="text/javascript" src="../../jquery.min.js"></script>  
    <script type="text/javascript" src="../../jquery.easyui.min.js"></script> 
    <script type="text/javascript" src="../../jquery.easyui.mobile.js"></script> 
</head>
<body>
	<div class="easyui-navpanel">
		<header>
			<div class="m-toolbar">
				<span class="m-title">Basic Accordion</span>
			</div>
		</header>
		<div class="easyui-accordion" fit="true" border="false">
			<div title="List">
				<ul class="m-list">
					<li>WLAN</li>
					<li>Memory</li>
					<li>Screen</li>
					<li>More...</li>
				</ul>
			</div>
			<div title="Ajax" href="_content.html" style="padding:10px"></div>
		</div>
	</div>
</body>	
</html>

+ 1 - 0
wwwroot/Plugins/easyui/demo-mobile/accordion/header.html

@@ -0,0 +1 @@
+<!doctype html>
<html>
<head>
    <meta charset="UTF-8">  
	<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <title>Custom Accordion Header - jQuery EasyUI Mobile Demo</title>  
    <link rel="stylesheet" type="text/css" href="../../themes/metro/easyui.css">  
    <link rel="stylesheet" type="text/css" href="../../themes/mobile.css">  
    <link rel="stylesheet" type="text/css" href="../../themes/icon.css">  
    <script type="text/javascript" src="../../jquery.min.js"></script>  
    <script type="text/javascript" src="../../jquery.easyui.min.js"></script> 
    <script type="text/javascript" src="../../jquery.easyui.mobile.js"></script> 
</head>
<body>
	<div class="easyui-navpanel">
		<header>
			<div class="m-toolbar">
				<span class="m-title">Custom Accordion Header</span>
			</div>
		</header>
		<div class="easyui-accordion" data-options="fit:true,border:false,selected:-1">
			<div>
				<header>
					<div class="hh-inner">
						<span>List</span>
						<span class="m-badge" style="float:right">26/51</span>
					</div>
				</header>
				<ul class="m-list">
					<li>WLAN</li>
					<li>Memory</li>
					<li>Screen</li>
					<li>More...</li>
				</ul>
			</div>
			<div href="_content.html" style="padding:10px">
				<header>
					<div class="hh-inner">
						<span>Ajax</span>
						<span style="float:right">
							<span style="color:#999;margin-right:5px">Loading via ajax</span>
							<span class="m-badge">23</span>
						</span>
					</div>
				</header>
			</div>
		</div>
	</div>
	<style scoped>
		.hh-inner{
			position: relative;
			line-height: 20px;
			background: #fff;
			font-weight: bold;
			margin: -5px;
			padding: 5px;
		}
	</style>
</body>	
</html>

+ 1 - 0
wwwroot/Plugins/easyui/demo-mobile/animation/basic.html

@@ -0,0 +1 @@
+<!doctype html>
<html>
<head>
    <meta charset="UTF-8">  
	<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <title>Basic Animation - jQuery EasyUI Mobile Demo</title>  
    <link rel="stylesheet" type="text/css" href="../../themes/metro/easyui.css">  
    <link rel="stylesheet" type="text/css" href="../../themes/mobile.css">  
    <link rel="stylesheet" type="text/css" href="../../themes/icon.css">  
    <script type="text/javascript" src="../../jquery.min.js"></script>  
    <script type="text/javascript" src="../../jquery.easyui.min.js"></script> 
    <script type="text/javascript" src="../../jquery.easyui.mobile.js"></script> 
</head>
<body>
	<div class="easyui-navpanel">
		<header>
			<div class="m-toolbar">
				<span class="m-title">Basic Animation</span>
			</div>
		</header>
		<ul class="m-list">
			<li><a href="#p2">Goto Panel2</a></li>
		</ul>
	</div>
	<div id="p2" class="easyui-navpanel">
		<header>
			<div class="m-toolbar">
				<div class="m-left">
					<a href="#" class="easyui-linkbutton m-back" data-options="plain:true,outline:true,back:true">Back</a>
				</div>
				<div class="m-title">Panel2</div>
			</div>
		</header>
		<ul class="m-list">
			<li><a href="#p3">Goto Panel3</a></li>
		</ul>
	</div>
	<div id="p3" class="easyui-navpanel">
		<header>
			<div class="m-toolbar">
				<div class="m-left">
					<a href="#" class="easyui-linkbutton m-back" data-options="plain:true,outline:true,back:true">Back</a>
				</div>
				<div class="m-title">Panel3</div>
			</div>
		</header>
		<div style="padding:20px 10px">
			<p>Panel3 Content.</p>
		</div>
	</div>
</body>	
</html>

+ 1 - 0
wwwroot/Plugins/easyui/demo-mobile/animation/fade.html

@@ -0,0 +1 @@
+<!doctype html>
<html>
<head>
    <meta charset="UTF-8">  
	<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <title>Fade Animation - jQuery EasyUI Mobile Demo</title>  
    <link rel="stylesheet" type="text/css" href="../../themes/metro/easyui.css">  
    <link rel="stylesheet" type="text/css" href="../../themes/mobile.css">  
    <link rel="stylesheet" type="text/css" href="../../themes/icon.css">  
    <script type="text/javascript" src="../../jquery.min.js"></script>  
    <script type="text/javascript" src="../../jquery.easyui.min.js"></script> 
    <script type="text/javascript" src="../../jquery.easyui.mobile.js"></script> 
</head>
<body>
	<div class="easyui-navpanel">
		<header>
			<div class="m-toolbar">
				<span class="m-title">Fade Animation</span>
			</div>
		</header>
		<ul class="m-list">
			<li><a href="#p2" data-options="animation:'fade',direction:''">Fade</a></li>
		</ul>
	</div>
	<div id="p2" class="easyui-navpanel">
		<header>
			<div class="m-toolbar">
				<div class="m-left">
					<a href="#" class="easyui-linkbutton m-back" data-options="plain:true,outline:true,back:true">Back</a>
				</div>
				<div class="m-title">Panel2</div>
			</div>
		</header>
		<div style="padding:10px">
			<p>Panel2 Content.</p>
		</div>
	</div>
</body>	
</html>

+ 1 - 0
wwwroot/Plugins/easyui/demo-mobile/animation/pop.html

@@ -0,0 +1 @@
+<!doctype html>
<html>
<head>
    <meta charset="UTF-8">  
	<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <title>Pop Animation - jQuery EasyUI Mobile Demo</title>  
    <link rel="stylesheet" type="text/css" href="../../themes/metro/easyui.css">  
    <link rel="stylesheet" type="text/css" href="../../themes/mobile.css">  
    <link rel="stylesheet" type="text/css" href="../../themes/icon.css">  
    <script type="text/javascript" src="../../jquery.min.js"></script>  
    <script type="text/javascript" src="../../jquery.easyui.min.js"></script> 
    <script type="text/javascript" src="../../jquery.easyui.mobile.js"></script> 
</head>
<body>
	<div class="easyui-navpanel">
		<header>
			<div class="m-toolbar">
				<span class="m-title">Pop Animation</span>
			</div>
		</header>
		<ul class="m-list">
			<li><a href="#p2" data-options="animation:'pop',direction:''">Pop</a></li>
		</ul>
	</div>
	<div id="p2" class="easyui-navpanel">
		<header>
			<div class="m-toolbar">
				<div class="m-left">
					<a href="#" class="easyui-linkbutton m-back" data-options="plain:true,outline:true,back:true">Back</a>
				</div>
				<div class="m-title">Panel2</div>
			</div>
		</header>
		<div style="padding:10px">
			<p>Panel2 Content.</p>
		</div>
	</div>
</body>	
</html>

+ 1 - 0
wwwroot/Plugins/easyui/demo-mobile/animation/slide.html

@@ -0,0 +1 @@
+<!doctype html>
<html>
<head>
    <meta charset="UTF-8">  
	<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <title>Slide Animation - jQuery EasyUI Mobile Demo</title>  
    <link rel="stylesheet" type="text/css" href="../../themes/metro/easyui.css">  
    <link rel="stylesheet" type="text/css" href="../../themes/mobile.css">  
    <link rel="stylesheet" type="text/css" href="../../themes/icon.css">  
    <script type="text/javascript" src="../../jquery.min.js"></script>  
    <script type="text/javascript" src="../../jquery.easyui.min.js"></script> 
    <script type="text/javascript" src="../../jquery.easyui.mobile.js"></script> 
</head>
<body>
	<div class="easyui-navpanel">
		<header>
			<div class="m-toolbar">
				<span class="m-title">Slide Animation</span>
			</div>
		</header>
		<ul class="m-list">
			<li><a href="#p2" data-options="animation:'slide',direction:'left'">Slide Left</a></li>
			<li><a href="#p2" data-options="animation:'slide',direction:'right'">Slide Right</a></li>
			<li><a href="#p2" data-options="animation:'slide',direction:'up'">Slide Up</a></li>
			<li><a href="#p2" data-options="animation:'slide',direction:'down'">Slide Down</a></li>
		</ul>
	</div>
	<div id="p2" class="easyui-navpanel">
		<header>
			<div class="m-toolbar">
				<div class="m-left">
					<a href="#" class="easyui-linkbutton m-back" data-options="plain:true,outline:true,back:true">Back</a>
				</div>
				<div class="m-title">Panel2</div>
			</div>
		</header>
		<div style="padding:10px">
			<p>Panel2 Content.</p>
		</div>
	</div>
</body>	
</html>

+ 1 - 0
wwwroot/Plugins/easyui/demo-mobile/badge/basic.html

@@ -0,0 +1 @@
+<!doctype html>
<html>
<head>
    <meta charset="UTF-8">  
	<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <title>Basic Badge - jQuery EasyUI Mobile Demo</title>  
    <link rel="stylesheet" type="text/css" href="../../themes/metro/easyui.css">  
    <link rel="stylesheet" type="text/css" href="../../themes/mobile.css">  
    <link rel="stylesheet" type="text/css" href="../../themes/icon.css">  
    <script type="text/javascript" src="../../jquery.min.js"></script>  
    <script type="text/javascript" src="../../jquery.easyui.min.js"></script> 
    <script type="text/javascript" src="../../jquery.easyui.mobile.js"></script> 
</head>
<body>
	<div class="easyui-navpanel">
		<header>
			<div class="m-toolbar">
				<span class="m-title">Basic Badge</span>
			</div>
		</header>
		<div style="padding:20px 40px">
			<a href="#" class="easyui-linkbutton">
				Button<span class="m-badge">2</span>
			</a>
		</div>
		<div style="padding:20px 40px">
			<a href="#" class="easyui-linkbutton" iconCls="icon-ok">
				Button<span class="m-badge">3</span>
			</a>
		</div>
		<div style="padding:20px 40px">
			<a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-large-picture',iconAlign:'top',size:'large'">
				LargeButton<span class="m-badge">4</span>
			</a>
			<a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-large-shapes',iconAlign:'top',size:'large'" style="margin-left:20px">
				LargeButton<span class="m-badge">5</span>
			</a>
		</div>
		<div style="padding:20px 40px">
			<a href="#" class="easyui-linkbutton m-badge" data-badge="22" style="width:100px;height:40px">Badge Attr</a>
			<a href="#" class="easyui-linkbutton m-badge" data-badge="23" style="width:100px;height:40px;margin-left:20px">Badge Attr</a>
		</div>
	</div>
</body>	
</html>

+ 1 - 0
wwwroot/Plugins/easyui/demo-mobile/badge/button.html

@@ -0,0 +1 @@
+<!doctype html>
<html>
<head>
    <meta charset="UTF-8">  
	<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <title>Button Badge - jQuery EasyUI Mobile Demo</title>  
    <link rel="stylesheet" type="text/css" href="../../themes/metro/easyui.css">  
    <link rel="stylesheet" type="text/css" href="../../themes/mobile.css">  
    <link rel="stylesheet" type="text/css" href="../../themes/icon.css">  
    <script type="text/javascript" src="../../jquery.min.js"></script>  
    <script type="text/javascript" src="../../jquery.easyui.min.js"></script> 
    <script type="text/javascript" src="../../jquery.easyui.mobile.js"></script> 
</head>
<body>
	<div class="easyui-navpanel">
		<header>
			<div class="m-toolbar">
				<span class="m-title">Button Badge</span>
			</div>
		</header>
		<footer>
            <div class="m-buttongroup m-buttongroup-justified" style="width:100%">
                <a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-large-picture',size:'large',iconAlign:'top',plain:true">Picture</a>
                <a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-large-clipart',size:'large',iconAlign:'top',plain:true">Clip Art</a>
                <a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-large-shapes',size:'large',iconAlign:'top',plain:true">Shapes<span class="m-badge">23</span></a>
                <a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-large-smartart',size:'large',iconAlign:'top',plain:true">SmartArt</a>
            </div>
		</footer>
	</div>
</body>	
</html>

+ 1 - 0
wwwroot/Plugins/easyui/demo-mobile/badge/list.html

@@ -0,0 +1 @@
+<!doctype html>
<html>
<head>
    <meta charset="UTF-8">  
	<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <title>List Badge - jQuery EasyUI Mobile Demo</title>  
    <link rel="stylesheet" type="text/css" href="../../themes/metro/easyui.css">  
    <link rel="stylesheet" type="text/css" href="../../themes/mobile.css">  
    <link rel="stylesheet" type="text/css" href="../../themes/color.css">  
    <link rel="stylesheet" type="text/css" href="../../themes/icon.css">  
    <script type="text/javascript" src="../../jquery.min.js"></script>  
    <script type="text/javascript" src="../../jquery.easyui.min.js"></script> 
    <script type="text/javascript" src="../../jquery.easyui.mobile.js"></script> 
</head>
<body>
	<div class="easyui-navpanel">
		<header>
			<div class="m-toolbar">
				<span class="m-title">List Badge</span>
			</div>
		</header>
		<ul class="m-list">
			<li>Large
				<div class="m-right"><span class="m-badge" style="margin-top:10px">234</span></div>
			</li>
			<li>Spotted Adult Female
				<div class="m-right"><span class="m-badge" style="margin-top:10px">215</span></div>
			</li>
			<li>Venomless
				<div class="m-right"><span class="m-badge c1" style="margin-top:10px">12</span></div>
			</li>
			<li>Rattleless
				<div class="m-right"><span class="m-badge c2" style="margin-top:10px">6</span></div>
			</li>
			<li>Green Adult</li>
			<li>Tailless</li>
			<li>With tail</li>
			<li>Adult Female</li>
		</ul>
	</div>
</body>	
</html>

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 0 - 0
wwwroot/Plugins/easyui/demo-mobile/badge/tabs.html


+ 1 - 0
wwwroot/Plugins/easyui/demo-mobile/button/basic.html

@@ -0,0 +1 @@
+<!doctype html>
<html>
<head>
    <meta charset="UTF-8">  
	<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <title>Basic LinkButton - jQuery EasyUI Mobile Demo</title>  
    <link rel="stylesheet" type="text/css" href="../../themes/metro/easyui.css">  
    <link rel="stylesheet" type="text/css" href="../../themes/mobile.css">  
    <link rel="stylesheet" type="text/css" href="../../themes/icon.css">  
    <script type="text/javascript" src="../../jquery.min.js"></script>  
    <script type="text/javascript" src="../../jquery.easyui.min.js"></script> 
    <script type="text/javascript" src="../../jquery.easyui.mobile.js"></script> 
</head>
<body>
	<div class="easyui-navpanel">
		<header>
			<div class="m-toolbar">
				<span class="m-title">Login to System</span>
			</div>
		</header>
		<div style="margin:20px auto;width:100px;height:100px;border-radius:100px;overflow:hidden">
			<img src="../images/login1.jpg" style="margin:0;width:100%;height:100%;">
		</div>
		<div style="padding:0 20px">
			<div style="margin-bottom:10px">
				<input class="easyui-textbox" data-options="prompt:'Type username',iconCls:'icon-man'" style="width:100%;height:38px">
			</div>
			<div>
				<input class="easyui-passwordbox" data-options="prompt:'Type password'" style="width:100%;height:38px">
			</div>
			<div style="text-align:center;margin-top:30px">
				<a href="#" class="easyui-linkbutton" style="width:100%;height:40px"><span style="font-size:16px">Login</span></a>
			</div>
			<div style="text-align:center;margin-top:30px">
				<a href="#" class="easyui-linkbutton" plain="true" outline="true" style="width:100px;height:35px"><span style="font-size:16px">Register</span></a> 
			</div>
		</div>
	</div>
</body>	
</html>

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 0 - 0
wwwroot/Plugins/easyui/demo-mobile/button/group.html


+ 1 - 0
wwwroot/Plugins/easyui/demo-mobile/button/style.html

@@ -0,0 +1 @@
+<!doctype html>
<html>
<head>
    <meta charset="UTF-8">  
	<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <title>Button Style - jQuery EasyUI Mobile Demo</title>  
    <link rel="stylesheet" type="text/css" href="../../themes/metro/easyui.css">  
    <link rel="stylesheet" type="text/css" href="../../themes/mobile.css">  
    <link rel="stylesheet" type="text/css" href="../../themes/color.css">  
    <link rel="stylesheet" type="text/css" href="../../themes/icon.css">  
    <script type="text/javascript" src="../../jquery.min.js"></script>  
    <script type="text/javascript" src="../../jquery.easyui.min.js"></script>
    <script type="text/javascript" src="../../jquery.easyui.mobile.js"></script>
</head>
<body>
	<div class="easyui-navpanel">
		<header>
			<div class="m-toolbar">
				<span class="m-title">Button Style</span>
			</div>
		</header>
		<div style="padding:20px">
			<p>Style</p>
			<a href="#" class="easyui-linkbutton" style="width:80px">Normal</a>
			<a href="#" class="easyui-linkbutton" plain="true" outline="true" style="width:80px">Outline</a>
			<a href="#" class="easyui-linkbutton" disabled style="width:80px">Disabled</a>

			<p>Colors<p>
			<p><a href="#" class="easyui-linkbutton c1" style="width:100%">Button1</a></p>
			<p><a href="#" class="easyui-linkbutton c2" style="width:100%">Button2</a></p>
			<p><a href="#" class="easyui-linkbutton c3" style="width:100%">Button3</a></p>
			<p><a href="#" class="easyui-linkbutton c4" style="width:100%">Button4</a></p>
			<p><a href="#" class="easyui-linkbutton c5" style="width:100%">Button5</a></p>
			<p><a href="#" class="easyui-linkbutton c6" style="width:100%">Button6</a></p>
		</div>
	</div>
</body>	
</html>

+ 1 - 0
wwwroot/Plugins/easyui/demo-mobile/button/switch.html

@@ -0,0 +1 @@
+<!doctype html>
<html>
<head>
    <meta charset="UTF-8">  
	<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <title>Switch Button - jQuery EasyUI Mobile Demo</title>  
    <link rel="stylesheet" type="text/css" href="../../themes/metro/easyui.css">  
    <link rel="stylesheet" type="text/css" href="../../themes/mobile.css">  
    <link rel="stylesheet" type="text/css" href="../../themes/color.css">  
    <link rel="stylesheet" type="text/css" href="../../themes/icon.css">  
    <script type="text/javascript" src="../../jquery.min.js"></script>  
    <script type="text/javascript" src="../../jquery.easyui.min.js"></script>
    <script type="text/javascript" src="../../jquery.easyui.mobile.js"></script>
</head>
<body>
	<div class="easyui-navpanel">
		<header>
			<div class="m-toolbar">
				<span class="m-title">Switch Button</span>
			</div>
		</header>
		<ul class="m-list">
			<li>
				<span>Network</span>
				<div class="m-right"><input class="easyui-switchbutton" checked></div>
			</li>
			<li>
				<span>Bluetooth</span>
				<div class="m-right"><input class="easyui-switchbutton" checked></div>
			</li>
			<li>
				<span>Sent mail</span>
				<div class="m-right"><input class="easyui-switchbutton" data-options="checked:false"></div>
			</li>
			<li>
				<a href="javascript:void(0)">Storage...</a>
			</li>
			<li>
				<a href="javascript:void(0)">More...</a>
			</li>
		</ul>
	</div>
</body>	
</html>

Nem az összes módosított fájl került megjelenítésre, mert túl sok fájl változott