jquery.js 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. $(document).ready(function(){
  2. jQuery(function($) {
  3. $('.easy-pie-chart.percentage').each(function(){
  4. var $box = $(this).closest('.infobox');
  5. var barColor = $(this).data('color') || (!$box.hasClass('infobox-dark') ? $box.css('color') : 'rgba(255,255,255,0.95)');
  6. var trackColor = barColor == 'rgba(255,255,255,0.95)' ? 'rgba(255,255,255,0.25)' : '#E2E2E2';
  7. var size = parseInt($(this).data('size')) || 50;
  8. $(this).easyPieChart({
  9. barColor: barColor,
  10. trackColor: trackColor,
  11. scaleColor: false,
  12. lineCap: 'butt',
  13. lineWidth: parseInt(size/10),
  14. animate: /msie\s*(8|7|6)/.test(navigator.userAgent.toLowerCase()) ? false : 1000,
  15. size: size
  16. });
  17. })
  18. $('.sparkline').each(function(){
  19. var $box = $(this).closest('.infobox');
  20. var barColor = !$box.hasClass('infobox-dark') ? $box.css('color') : '#FFF';
  21. $(this).sparkline('html', {tagValuesAttribute:'data-values', type: 'bar', barColor: barColor , chartRangeMin:$(this).data('min') || 0} );
  22. });
  23. var placeholder = $('#piechart-placeholder').css({'width':'90%' , 'min-height':'150px'});
  24. var data = [
  25. { label: "social networks", data: 38.7, color: "#68BC31"},
  26. { label: "search engines", data: 24.5, color: "#2091CF"},
  27. { label: "ad campaigns", data: 8.2, color: "#AF4E96"},
  28. { label: "direct traffic", data: 18.6, color: "#DA5430"},
  29. { label: "other", data: 10, color: "#FEE074"}
  30. ]
  31. function drawPieChart(placeholder, data, position) {
  32. $.plot(placeholder, data, {
  33. series: {
  34. pie: {
  35. show: true,
  36. tilt:0.8,
  37. highlight: {
  38. opacity: 0.25
  39. },
  40. stroke: {
  41. color: '#fff',
  42. width: 2
  43. },
  44. startAngle: 2
  45. }
  46. },
  47. legend: {
  48. show: true,
  49. position: position || "ne",
  50. labelBoxBorderColor: null,
  51. margin:[-30,15]
  52. }
  53. ,
  54. grid: {
  55. hoverable: true,
  56. clickable: true
  57. }
  58. })
  59. }
  60. drawPieChart(placeholder, data);
  61. placeholder.data('chart', data);
  62. placeholder.data('draw', drawPieChart);
  63. var $tooltip = $("<div class='tooltip top in'><div class='tooltip-inner'></div></div>").hide().appendTo('body');
  64. var previousPoint = null;
  65. placeholder.on('plothover', function (event, pos, item) {
  66. if(item) {
  67. if (previousPoint != item.seriesIndex) {
  68. previousPoint = item.seriesIndex;
  69. var tip = item.series['label'] + " : " + item.series['percent']+'%';
  70. $tooltip.show().children(0).text(tip);
  71. }
  72. $tooltip.css({top:pos.pageY + 10, left:pos.pageX + 10});
  73. } else {
  74. $tooltip.hide();
  75. previousPoint = null;
  76. }
  77. });
  78. var d1 = [];
  79. for (var i = 0; i < Math.PI * 2; i += 0.5) {
  80. d1.push([i, Math.sin(i)]);
  81. }
  82. var d2 = [];
  83. for (var i = 0; i < Math.PI * 2; i += 0.5) {
  84. d2.push([i, Math.cos(i)]);
  85. }
  86. var d3 = [];
  87. for (var i = 0; i < Math.PI * 2; i += 0.2) {
  88. d3.push([i, Math.tan(i)]);
  89. }
  90. var sales_charts = $('#sales-charts').css({'width':'100%' , 'height':'220px'});
  91. $.plot("#sales-charts", [
  92. { label: "Domains", data: d1 },
  93. { label: "Hosting", data: d2 },
  94. { label: "Services", data: d3 }
  95. ], {
  96. hoverable: true,
  97. shadowSize: 0,
  98. series: {
  99. lines: { show: true },
  100. points: { show: true }
  101. },
  102. xaxis: {
  103. tickLength: 0
  104. },
  105. yaxis: {
  106. ticks: 10,
  107. min: -2,
  108. max: 2,
  109. tickDecimals: 3
  110. },
  111. grid: {
  112. backgroundColor: { colors: [ "#fff", "#fff" ] },
  113. borderWidth: 1,
  114. borderColor:'#555'
  115. }
  116. });
  117. $('#recent-box [data-rel="tooltip"]').tooltip({placement: tooltip_placement});
  118. function tooltip_placement(context, source) {
  119. var $source = $(source);
  120. var $parent = $source.closest('.tab-content')
  121. var off1 = $parent.offset();
  122. var w1 = $parent.width();
  123. var off2 = $source.offset();
  124. var w2 = $source.width();
  125. if( parseInt(off2.left) < parseInt(off1.left) + parseInt(w1 / 2) ) return 'right';
  126. return 'left';
  127. }
  128. $('.dialogs,.comments').slimScroll({
  129. height: '300px'
  130. });
  131. //Android's default browser somehow is confused when tapping on label which will lead to dragging the task
  132. //so disable dragging when clicking on label
  133. var agent = navigator.userAgent.toLowerCase();
  134. if("ontouchstart" in document && /applewebkit/.test(agent) && /android/.test(agent))
  135. $('#tasks').on('touchstart', function(e){
  136. var li = $(e.target).closest('#tasks li');
  137. if(li.length == 0)return;
  138. var label = li.find('label.inline').get(0);
  139. if(label == e.target || $.contains(label, e.target)) e.stopImmediatePropagation() ;
  140. });
  141. $('#tasks').sortable({
  142. opacity:0.8,
  143. revert:true,
  144. forceHelperSize:true,
  145. placeholder: 'draggable-placeholder',
  146. forcePlaceholderSize:true,
  147. tolerance:'pointer',
  148. stop: function( event, ui ) {//just for Chrome!!!! so that dropdowns on items don't appear below other items after being moved
  149. $(ui.item).css('z-index', 'auto');
  150. }
  151. }
  152. );
  153. $('#tasks').disableSelection();
  154. $('#tasks input:checkbox').removeAttr('checked').on('click', function(){
  155. if(this.checked) $(this).closest('li').addClass('selected');
  156. else $(this).closest('li').removeClass('selected');
  157. });
  158. });
  159. //设置样式
  160. function addTab(subtitle, url) {
  161. if (!$('#tt').tabs('exists', subtitle)) {
  162. $('#tt').tabs('add', {
  163. title: subtitle,
  164. content: createFrame(url),
  165. closable: true
  166. });
  167. $('#tt').tabs('getSelected').css('width', 'auto');
  168. $('#tt').tabs('getSelected').height($(window).height());
  169. }
  170. tabClose();
  171. $('#tt').tabs('getSelected').css('width', 'auto');
  172. }
  173. function createFrame(url) {
  174. var heights=$(window).height()-85;
  175. var s = '<iframe id="frame_con" scrolling="auto" frameborder="0" src="' + url + '" style="width:100%; height:'+ heights+'px"></iframe>';
  176. return s;
  177. }
  178. function tabClose() {
  179. /*双击关闭TAB选项卡*/
  180. $(".tabs-inner").dblclick(function() {
  181. var subtitle = $(this).children("span").text();
  182. $('#tt').tabs('close', subtitle);
  183. });
  184. }
  185. });