user_games.js 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236
  1. // EDIT HOME
  2. function GetURLParameter(sParam)
  3. {
  4. var sPageURL = window.location.search.substring(1);
  5. var sURLVariables = sPageURL.split('&');
  6. for (var i = 0; i < sURLVariables.length; i++)
  7. {
  8. var sParameterName = sURLVariables[i].split('=');
  9. if (sParameterName[0] == sParam)
  10. {
  11. return sParameterName[1];
  12. }
  13. }
  14. }
  15. function loadMods() {
  16. if( $('#mods').get(0) )
  17. {
  18. var addpost = {};
  19. addpost[ 'm' ] = 'user_games';
  20. addpost[ 'p' ] = 'mods';
  21. addpost[ 'type' ] = 'cleared';
  22. addpost[ 'home_id' ] = GetURLParameter('home_id');
  23. $.ajax({
  24. type: "GET",
  25. url: "home.php",
  26. data: addpost,
  27. success: function(data){
  28. $( "#mods" ).html(data);
  29. }
  30. });
  31. }
  32. }
  33. $(document).ready(function() {
  34. loadMods();
  35. var select_home_path = $('#dialog').attr('data-select_home_path');
  36. var set_this_path = $('#dialog').attr('data-set_this_path');
  37. var cancel = $('#dialog').attr('data-cancel');
  38. // Open folder browser
  39. $('#browse').unbind().click(function(event){
  40. var addpost = {};
  41. addpost[ 'm' ] = 'user_games';
  42. addpost[ 'p' ] = 'browser';
  43. addpost[ 'home_id' ] = $(this).attr('data-home-id');
  44. addpost[ 'folder' ] = $(this).attr('data-path');
  45. addpost[ 'type' ] = 'cleared';
  46. addpost[ 'all_fs' ] = 'yes';
  47. $.ajax({
  48. type: "GET",
  49. url: "home.php",
  50. data: addpost,
  51. success: function(data){
  52. $( "#dialog" ).attr('title', select_home_path).html(data);
  53. $( "#dialog" ).dialog({
  54. resizable: true,
  55. width: 460,
  56. modal: true,
  57. buttons:
  58. [{ text: set_this_path, click: function(){
  59. var selected_path = $('#selected_path').text();
  60. $('input[name="home_path"]').val(selected_path);
  61. $( "#change_home_path" ).click();
  62. $( this ).dialog( "close" );
  63. }
  64. },{ text: cancel, click: function(){
  65. $( this ).dialog( "close" );
  66. }
  67. }]
  68. });
  69. }
  70. });
  71. event.preventDefault();
  72. });
  73. // Enter folder
  74. $('.folder').each(function(){
  75. $(this).click(function(){
  76. var addpost = {};
  77. addpost[ 'm' ] = 'user_games';
  78. addpost[ 'p' ] = 'browser';
  79. addpost[ 'home_id' ] = $('.levelup').attr('data-home-id');
  80. addpost[ 'item' ] = $(this).attr('data-item');
  81. addpost[ 'type' ] = 'cleared';
  82. addpost[ 'all_fs' ] = 'yes';
  83. $.ajax({
  84. type: "GET",
  85. url: "home.php",
  86. data: addpost,
  87. success: function(data){
  88. $( "#dialog" ).html(data);
  89. }
  90. });
  91. });
  92. });
  93. // Back to previous folder
  94. $('.levelup').click(function(){
  95. var addpost = {};
  96. addpost[ 'm' ] = 'user_games';
  97. addpost[ 'p' ] = 'browser';
  98. addpost[ 'home_id' ] = $(this).attr('data-home-id');
  99. addpost[ 'back' ] = 'back';
  100. addpost[ 'type' ] = 'cleared';
  101. addpost[ 'all_fs' ] = 'yes';
  102. $.ajax({
  103. type: "GET",
  104. url: "home.php",
  105. data: addpost,
  106. success: function(data){
  107. $( "#dialog" ).html(data);
  108. }
  109. });
  110. });
  111. // Create new folder
  112. $('#addfolder').click(function(){
  113. var addpost = {};
  114. addpost[ 'm' ] = 'user_games';
  115. addpost[ 'p' ] = 'browser';
  116. addpost[ 'home_id' ] = $('.levelup').attr('data-home-id');
  117. addpost[ 'create_folder' ] = 'create_folder';
  118. addpost[ 'folder_name' ] = $('input[name=dirname]').val();
  119. addpost[ 'type' ] = 'cleared';
  120. addpost[ 'all_fs' ] = 'yes';
  121. $.ajax({
  122. type: "GET",
  123. url: "home.php",
  124. data: addpost,
  125. success: function(data){
  126. $( "#dialog" ).html(data);
  127. }
  128. });
  129. });
  130. $("#main_settings select, #main_settings input").change(function(){
  131. $(this).css("background", "#fe9cb1");
  132. });
  133. $('#main_settings input:submit').unbind().click(function(e){
  134. var submitName = $(this).attr('name');
  135. if(submitName != 'delete_ftp' && submitName != 'create_ftp' && submitName != 'master_server')
  136. {
  137. e.preventDefault();
  138. var thisForm = $(this).closest('form');
  139. var formData = thisForm.serializeArray();
  140. formData.push({ name: submitName });
  141. if(submitName == 'change_home')
  142. {
  143. $.each( formData, function( i, field ) {
  144. if( field.name == "home_path" )
  145. {
  146. formData[i]['value'] = formData[i]['value'].replace(/\\/g,'');
  147. thisForm.find('input[name="home_path"]').val(formData[i]['value']);
  148. }
  149. });
  150. }
  151. $.post(window.location + "&type=cleared", formData, function(data) {
  152. if(data.result == 'success')
  153. {
  154. thisForm.find("select, input[type='text']").css("background", "#bdf2a2");
  155. if(submitName == 'change_home_cfg_id')
  156. {
  157. loadMods();
  158. }
  159. }
  160. $("#result").html('<p class="'+data.result+'">'+data.info+'</p>');
  161. if(data.result == "success"){
  162. $("p.warning").remove();
  163. }
  164. if(data.hasOwnProperty("warning_info") && data.warning_info){
  165. $("#result").html($("#result").html() + '<p class="warning">'+data.warning_info+'</p>');
  166. }
  167. }, "json");
  168. }
  169. });
  170. var datePickerInput = $("input[name=expiration_date]");
  171. if(datePickerInput.length)
  172. {
  173. var now_str = datePickerInput.attr('data-today').split(' '),
  174. date = now_str[0].split('/'),
  175. time = now_str[1].split(':'),
  176. now = new Date(date[2], date[1]-1, date[0], time[0], time[1], time[2], 0);
  177. $('#datetimepicker').datetimepicker({
  178. format: 'd/m/Y H:i:s',
  179. startDate: now,
  180. onChangeDateTime: function(e, obj) {
  181. if(e == null)
  182. {
  183. datePickerInput.val("X");
  184. }
  185. else
  186. {
  187. var now_str = $( "input[name=expiration_date]" ).attr('data-today').split(' '),
  188. date = now_str[0].split('/'),
  189. time = now_str[1].split(':'),
  190. now = new Date(date[2], date[1]-1, date[0], time[0], time[1], time[2], 0);
  191. var selected = new Date(e);
  192. if( selected <= now )
  193. {
  194. alert('The selected date has already passed.');
  195. datePickerInput.val("X");
  196. }
  197. else
  198. {
  199. datePickerInput.val(obj.val());
  200. }
  201. }
  202. if("edit" == GetURLParameter('p'))
  203. {
  204. datePickerInput.css("background", "#fe9cb1");
  205. }
  206. }
  207. });
  208. datePickerInput.on('change', function() {
  209. if(this.value.match(/^\d{1,2}\/\d{1,2}\/\d{4}\s\d{1,2}:\d{1,2}:\d{1,2}$/g) == null || this.value == "X")
  210. {
  211. this.value = "X";
  212. }
  213. else
  214. {
  215. var sel_str = this.value.split(' '),
  216. date = sel_str[0].split('/'),
  217. time = sel_str[1].split(':'),
  218. selected = new Date(date[2], date[1]-1, date[0], time[0], time[1], time[2], 0);
  219. if( selected <= now )
  220. {
  221. alert('The selected date has already passed.');
  222. this.value = "X";
  223. }
  224. }
  225. });
  226. }
  227. });