jquery.yana.js 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240
  1. (function($){
  2. $.callBack = function(options) {
  3. if(options!=null){
  4. if(options.message!=null)alert(options.message);
  5. if(options.fonction!=null && options.redirection==null)eval(options.fonction);
  6. if(options.redirection!=null){
  7. $.ajax({
  8. url: options.redirection,
  9. type:"GET",
  10. success: function(response) {
  11. $((options.section==null?'#content':options.section)).html(response);
  12. if(options.fonction!=null)eval(options.fonction);
  13. }
  14. });
  15. }
  16. }
  17. }
  18. $.action = function(data,success,error) {
  19. $.ajax({
  20. dataType : 'json',
  21. method : 'POST',
  22. url : 'action.php',
  23. data : data,
  24. async:(data.async!=null?data.async:true),
  25. success: function(response){
  26. if(response.errors == null ) response.errors.push('Erreur indefinie, merci de contacter un administrateur');
  27. if(response.errors.length ==0 ){
  28. if(success!=null)success(response);
  29. }else{
  30. alert('ERREUR : '+"\n"+response.errors.join("\n"));
  31. if(error!=null) error(response);
  32. }
  33. },
  34. error : function(){
  35. alert('Erreur indefinie, merci de contacter un administrateur');
  36. }
  37. });
  38. }
  39. $.urlParam = function(name){
  40. var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href);
  41. if (results==null){
  42. return null;
  43. }else{
  44. return results[1] || 0;
  45. }
  46. }
  47. $.method = function(options) {
  48. var defaults = {
  49. url: function(){},
  50. success: $.callBack
  51. }
  52. var options = $.extend(defaults, options);
  53. var o = options;
  54. $.ajax({
  55. url: o.url,
  56. type:"POST",
  57. contentType: 'application/json',
  58. dataType: 'json',
  59. data:$.toJSON(o),
  60. success: function(response) {
  61. o.success(eval(response.d));
  62. }
  63. });
  64. }
  65. $.fn.extend({
  66. chart: function(options) {
  67. var defaults = {
  68. type: 'bar',
  69. success: $.callBack,
  70. label : ["January","February","March","April","May","June","July"],
  71. data: [0,1,2,3,4,5,6],
  72. options : {responsive : true},
  73. backgroundColor : ["rgba(220,220,220,0.5)"],
  74. borderColor : ["rgba(220,220,220,0.8)"],
  75. backgroundColorHover: ["rgba(220,220,220,0.75)"],
  76. borderColorHover: ["rgba(220,220,220,1)"],
  77. segmentShowStroke:false
  78. }
  79. var options = $.extend(defaults, options);
  80. return this.each(function() {
  81. var o = options;
  82. var obj = $(this);
  83. var graphic = new Chart(obj[0].getContext("2d"));
  84. var conf = {
  85. labels : o.label,
  86. datasets:[{
  87. fillColor : o.backgroundColor[0],
  88. strokeColor : o.borderColor[0],
  89. highlightFill: o.backgroundColorHover[0],
  90. highlightStroke: o.borderColorHover[0],
  91. data : o.data
  92. }]
  93. };
  94. switch(o.type){
  95. case 'line':
  96. graphic.Line(conf,o.options);
  97. break;
  98. case 'pie':
  99. var conf = [];
  100. for(var key in o.data){
  101. var backgroundColor = o.backgroundColor[key] == null ? '#cecece': o.backgroundColor[key];
  102. var backgroundColorHover = o.backgroundColorHover[key] == null ? '#dedede': o.backgroundColorHover[key];
  103. conf.push({ value : o.data[key],highlight : backgroundColorHover,color : backgroundColor,label : o.label[key] });
  104. }
  105. graphic.Pie(conf,o.options);
  106. break;
  107. case 'doughnut':
  108. var conf = [];
  109. for(var key in o.data){
  110. var backgroundColor = o.backgroundColor[key] == null ? '#cecece': o.backgroundColor[key];
  111. var backgroundColorHover = o.backgroundColorHover[key] == null ? '#dedede': o.backgroundColorHover[key];
  112. conf.push({ value : o.data[key],highlight : backgroundColorHover,color : backgroundColor,label : o.label[key] });
  113. }
  114. o.options.segmentShowStroke = false;
  115. o.options.percentageInnerCutout = 60;
  116. var myGraphic = graphic.Doughnut(conf,o.options);
  117. break;
  118. case 'bar':
  119. default :
  120. graphic.Bar(conf,o.options);
  121. break;
  122. }
  123. });
  124. },
  125. toData: function() {
  126. var data = {};
  127. $('input,select,textarea',this).each(function(i,element){
  128. if(element.id!=null && element.id!=""){
  129. if($(element).attr("type")=='checkbox' || $(element).attr("type")=='radio'){
  130. data[element.id] = $(element).is(':checked')?1:0;
  131. }else{
  132. data[element.id] = $(element).val();
  133. }
  134. }
  135. });
  136. return data;
  137. },
  138. send: function(options) {
  139. console.warn('Function $(form).send is deprecated, please replace by $(form).toData + ajax request');
  140. var defaults = {
  141. url: function(){},
  142. success: $.callBack,
  143. data: {}
  144. }
  145. var options = $.extend(defaults, options);
  146. return this.each(function() {
  147. var o = $.extend( $(this).toData(), o );
  148. $.method(o);
  149. });
  150. },
  151. enter: function (option){
  152. return this.each(function() {
  153. var obj = $(this);
  154. obj.keydown(function(event){
  155. if(event.keyCode == 13){
  156. option();
  157. return false;
  158. }
  159. });
  160. });
  161. },
  162. date: function (){
  163. return this.each(function() {
  164. var obj = $(this);
  165. obj.datepicker({
  166. dateFormat: "dd/mm/yy",
  167. dayNames: ["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"],
  168. dayNamesMin: ["Di", "Lu", "Ma", "Me", "Je", "Ve", "Sa"],
  169. dayNamesShort: ["Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam"],
  170. monthNames: ["Janvier","Février","Mars","Avril","Mai","Juin","Jullet","Aout","Septembre","Octobre","Novembre","Décembre"],
  171. firstDay: 1
  172. });
  173. });
  174. },
  175. autocomplete: function (options){
  176. var defaults = {
  177. source: []
  178. }
  179. var options = $.extend(defaults, options);
  180. return this.each(function() {
  181. var o = options;
  182. var obj = $(this);
  183. obj.typeahead(o);
  184. });
  185. },
  186. });
  187. })(jQuery);