464647c0fa47c211eee0792d358307af8fb0832b
Jeremy D Completed Info Maker secti...

Jeremy D authored 12 years ago

assets/script_mod.js   1) /*
assets/script_mod.js   2)  * SMF Package Manager Generator
assets/script_mod.js   3)  * Author: SleePy (JeremyD)
assets/script_mod.js   4)  * Repository: https://github.com/jdarwood007/smf_package_maker
assets/script_mod.js   5)  * License: BSD 3 Clause; See license.txt
assets/script_mod.js   6) */
assets/script_mod.js   7) 
assets/script_mod.js   8) /* This gets things going once the document has loaded, also makes sure JQuery is here. */
Jeremy D Initial SMF Package Maker S...

Jeremy D authored 12 years ago

assets/script.js       9) $(document).ready(function(){
Jeremy D Completed Info Maker secti...

Jeremy D authored 12 years ago

assets/script_mod.js  10) 	/* Start off some counting */
Jeremy D Initial SMF Package Maker S...

Jeremy D authored 12 years ago

assets/script.js      11) 	file_count = 1;
assets/script.js      12) 	edit_count =new Array();
assets/script.js      13) 	edit_count[file_count] = 1;
assets/script.js      14) 
Jeremy D Completed Info Maker secti...

Jeremy D authored 12 years ago

assets/script_mod.js  15) 	/* Kick things off by creating a file. */
Jeremy D Initial SMF Package Maker S...

Jeremy D authored 12 years ago

assets/script.js      16) 	create_new_file();
assets/script.js      17) 
assets/script.js      18) 	$('#add_file').click(create_new_file);
assets/script.js      19) 
Jeremy D Completed Info Maker secti...

Jeremy D authored 12 years ago

assets/script_mod.js  20) 	/* Give our buttons some actions. */
Jeremy D Initial SMF Package Maker S...

Jeremy D authored 12 years ago

assets/script.js      21) 	$('#show_preview').click(show_edit_preview);
Jeremy D Completed Info Maker secti...

Jeremy D authored 12 years ago

assets/script_mod.js  22) 
assets/script_mod.js  23) 	/* The details and basic buttons. */
assets/script_mod.js  24) 	$('#collapse_basic').click(function(){$('#basic_info .info').hide(); $('#collapse_basic').hide(); $('#restore_basic').show();});
assets/script_mod.js  25) 	$('#restore_basic').click(function(){$('#basic_info .info').show(); $('#restore_basic').hide(); $('#collapse_basic').show();});
assets/script_mod.js  26) 	$('#collapse_details').click(function(){$('#details_info .info').hide(); $('#collapse_details').hide(); $('#restore_details').show();});
assets/script_mod.js  27) 	$('#restore_details').click(function(){$('#details_info .info').show(); $('#restore_details').hide(); $('#collapse_details').show();});
Jeremy D Initial SMF Package Maker S...

Jeremy D authored 12 years ago

assets/script.js      28) });
assets/script.js      29) 
assets/script.js      30) /* Handles adding files */
assets/script.js      31) function create_new_file()
assets/script.js      32) {
assets/script.js      33) 	/* We have been through this before */
assets/script.js      34) 	$('#file_container').append($('#file_template').html().replace(/#FILEINDEX#/g, file_count));
assets/script.js      35) 
assets/script.js      36) 	/* We need to bind the new create edit button */
assets/script.js      37) 	$('.add_edit').click(create_new_edit);
assets/script.js      38) 
assets/script.js      39) 	/* Now we pretend to click said element */
assets/script.js      40) 	$('#file-' + file_count).find('.add_edit').click();
assets/script.js      41) 
Jeremy D Added Package Info stuff a...

Jeremy D authored 12 years ago

assets/script_mod.js  42) 	$('#file-' + file_count + ' .collapse_file').click(collapse_file);
assets/script_mod.js  43) 	$('#file-' + file_count + ' .expand_file').click(expand_file);
assets/script_mod.js  44) 	$('#file-' + file_count + ' .delete_file').click(delete_file);
assets/script_mod.js  45) 	$('#file-' + file_count + ' .restore_file').click(restore_file);
assets/script_mod.js  46) 
Jeremy D Initial SMF Package Maker S...

Jeremy D authored 12 years ago

assets/script.js      47) 	/* Move the index and add defaults */
assets/script.js      48) 	file_count++;
assets/script.js      49) 	edit_count[file_count] = 1;
assets/script.js      50) 
assets/script.js      51) 	update_counter();
assets/script.js      52) }
assets/script.js      53) 
assets/script.js      54) /* Handles adding of edits */
assets/script.js      55) function create_new_edit()
assets/script.js      56) {
assets/script.js      57) 	file_index = $(this).attr('data-file');
assets/script.js      58) 
assets/script.js      59) 	$('#file-' + file_index + '-edit_container').append($('#edit_template').html().replace(/#FILEINDEX#/g, file_index).replace(/#EDITINDEX#/g, edit_count[file_index]));
assets/script.js      60) 	edit_count[file_index]++;
assets/script.js      61) 
assets/script.js      62) 	$('#file-' + file_index + '-edit_container .collapse_change').click(collapse_edit);
assets/script.js      63) 	$('#file-' + file_index + '-edit_container .expand_change').click(expand_edit);
assets/script.js      64) 	$('#file-' + file_index + '-edit_container .delete_change').click(delete_edit);
assets/script.js      65) 	$('#file-' + file_index + '-edit_container .restore_change').click(restore_edit);
assets/script.js      66) 
assets/script.js      67) 	update_counter();
assets/script.js      68) }
assets/script.js      69) 
assets/script.js      70) /* Handles collapsing of the edit */
assets/script.js      71) function collapse_edit()
assets/script.js      72) {
assets/script.js      73) 	file_index = $(this).attr('data-file');
assets/script.js      74) 	edit_index = $(this).attr('data-edit');
assets/script.js      75) 
assets/script.js      76) 	/* Simply hide the edit, and give a expand button */
assets/script.js      77) 	$('#file-' + file_index + '-edit-' + edit_index + ' .edits').hide();
assets/script.js      78) 	$('#file-' + file_index + '-edit-' + edit_index + ' .expand_change').show();
assets/script.js      79) 	$(this).hide();
assets/script.js      80) }
assets/script.js      81) 
assets/script.js      82) /* Handles expanding of the edit */
assets/script.js      83) function expand_edit()
assets/script.js      84) {
assets/script.js      85) 	file_index = $(this).attr('data-file');
assets/script.js      86) 	edit_index = $(this).attr('data-edit');
assets/script.js      87) 
assets/script.js      88) 	/* Simply show the edit, and return to the original collapse button */
assets/script.js      89) 	$('#file-' + file_index + '-edit-' + edit_index + ' .edits').show();
assets/script.js      90) 	$('#file-' + file_index + '-edit-' + edit_index + ' .collapse_change').show();
assets/script.js      91) 	$(this).hide();
assets/script.js      92) }
assets/script.js      93) 
assets/script.js      94) /* Handles deleting a edit */
assets/script.js      95) function delete_edit()
assets/script.js      96) {
assets/script.js      97) 	file_index = $(this).attr('data-file');
assets/script.js      98) 	edit_index = $(this).attr('data-edit');
assets/script.js      99) 
assets/script.js     100) 	/* First we let the data know its deleted. */
assets/script.js     101) 	$('#file-' + file_index + '-edit-' + edit_index + '-delete').val('1');
assets/script.js     102) 
assets/script.js     103) 	/* Then we hide this header, collapse the edit and show the restore button */
assets/script.js     104) 	$('#file-' + file_index + '-edit-' + edit_index + ' .edits').hide();
assets/script.js     105) 	$('#file-' + file_index + '-edit-' + edit_index + ' .restore_change').show();
assets/script.js     106) 	$(this).hide();
assets/script.js     107) 
assets/script.js     108) 	update_counter();
assets/script.js     109) }
assets/script.js     110) 
assets/script.js     111) /* Handles restoring a edit */
assets/script.js     112) function restore_edit()
assets/script.js     113) {
assets/script.js     114) 	file_index = $(this).attr('data-file');
assets/script.js     115) 	edit_index = $(this).attr('data-edit');
assets/script.js     116) 
assets/script.js     117) 	/* First we let the data know its deleted. */
assets/script.js     118) 	$('#file-' + file_index + '-edit-' + edit_index + '-delete').val('0');
assets/script.js     119) 
assets/script.js     120) 	/* Then we hide this header, collapse the edit and show the restore button */
assets/script.js     121) 	$('#file-' + file_index + '-edit-' + edit_index + ' .edits').show();
assets/script.js     122) 	$('#file-' + file_index + '-edit-' + edit_index + ' .delete_change').show();
assets/script.js     123) 	$(this).hide();
assets/script.js     124) 
assets/script.js     125) 	update_counter();
assets/script.js     126) }
assets/script.js     127) 
assets/script.js     128) /* Handles collapsing of the file */
assets/script.js     129) function collapse_file()
assets/script.js     130) {
assets/script.js     131) 	file_index = $(this).attr('data-file');
assets/script.js     132) 
assets/script.js     133) 	/* Simply hide the file, and give a expand button */
assets/script.js     134) 	$('#file-' + file_index + '-edit_container').hide();
assets/script.js     135) 	$('#file-' + file_index + ' .expand_file').show();
assets/script.js     136) 	$(this).hide();
assets/script.js     137) }
assets/script.js     138) 
assets/script.js     139) /* Handles expanding of the file */
assets/script.js     140) function expand_file()
assets/script.js     141) {
assets/script.js     142) 	file_index = $(this).attr('data-file');
assets/script.js     143) 
assets/script.js     144) 	/* Simply show the file, and return to the original collapse button */
assets/script.js     145) 	$('#file-' + file_index + '-edit_container').show();
assets/script.js     146) 	$('#file-' + file_index + ' .collapse_file').show();
assets/script.js     147) 	$(this).hide();
assets/script.js     148) }
assets/script.js     149) 
assets/script.js     150) /* Handles deleting a file */
assets/script.js     151) function delete_file()
assets/script.js     152) {
assets/script.js     153) 	file_index = $(this).attr('data-file');
assets/script.js     154) 
assets/script.js     155) 	/* First we let the data know its deleted. */
assets/script.js     156) 	$('#file-' + file_index + '-delete').val('1');
assets/script.js     157) 
assets/script.js     158) 	/* Then we hide this header, collapse the edit and show the restore button */
assets/script.js     159) 	$('#file-' + file_index + '-edit_container').hide();
assets/script.js     160) 	$('#file-' + file_index + ' .restore_file').show();
assets/script.js     161) 	$(this).hide();
assets/script.js     162) 
assets/script.js     163) 	update_counter();
assets/script.js     164) }
assets/script.js     165) 
assets/script.js     166) /* Handles restoring a file */
assets/script.js     167) function restore_file()
assets/script.js     168) {
assets/script.js     169) 	file_index = $(this).attr('data-file');
assets/script.js     170) 
assets/script.js     171) 	/* First we let the data know its deleted. */
assets/script.js     172) 	$('#file-' + file_index + '-delete').val('0');
assets/script.js     173) 
assets/script.js     174) 	/* Then we hide this header, collapse the edit and show the restore button */
Jeremy D Couldn't restore a file/ac...

Jeremy D authored 12 years ago

assets/script_mod.js 175) 	$('#file-' + file_index + '-edit_container').show();
Jeremy D Initial SMF Package Maker S...

Jeremy D authored 12 years ago

assets/script.js     176) 	$('#file-' + file_index + ' .delete_file').show();
assets/script.js     177) 	$(this).hide();
assets/script.js     178) 
assets/script.js     179) 	update_counter();
assets/script.js     180) }
assets/script.js     181) 
assets/script.js     182) /* This is the nasty guy */
assets/script.js     183) function show_edit_preview()
assets/script.js     184) {
assets/script.js     185) 	$('#preview_container').show();
assets/script.js     186) 
assets/script.js     187) 	author = $('#basic_info_name').val().replace(/ /g,'_');
assets/script.js     188) 	name = $('#basic_info_mod').val().replace(/ /g,'_');
assets/script.js     189) 	version = $('#basic_info_version').val().replace(/ /g,'_');
assets/script.js     190) 
assets/script.js     191) 	preview = '<' + '?xml version="1.0"?' + '>' + "\n" + '\
assets/script.js     192) <!DOCTYPE modification SYSTEM "http://www.simplemachines.org/xml/modification">' + "\n" + '\
assets/script.js     193) <!-- This package was generated by SleePys Modification Maker at http://sleepycode.com -->' + "\n" + '\
assets/script.js     194) <modification xmlns="http://www.simplemachines.org/xml/modification" xmlns:smf="http://www.simplemachines.org/">' + "\n" + '\
assets/script.js     195) 	<id>' + author + ':' + name + '</id>' + "\n" + '\
assets/script.js     196) 	<version>' + version + '</version>' + "\n";
assets/script.js     197) 
assets/script.js     198) 	i = 1;
assets/script.js     199) 	for (i = 1; i < file_count; i++)
assets/script.js     200) 	{
assets/script.js     201) 		/* Skip this edit if we deleted it. */
assets/script.js     202) 		if ($('#file-' + i + '-delete').val() == '1')
assets/script.js     203) 		{
assets/script.js     204) 			continue;
assets/script.js     205) 		}
assets/script.js     206) 
assets/script.js     207) 		/* Find our edit count */
assets/script.js     208) 		ecount = edit_count[i];
assets/script.js     209) 
assets/script.js     210) 		/* Get the file info */
assets/script.js     211) 		file_type = $('#file-' + i + '-file_type').val();
assets/script.js     212) 		file_name = $('#file-' + i + '-file_name').val();
assets/script.js     213) 		file_fail = $('#file-' + i + '-file_fail').val();
assets/script.js     214) 
assets/script.js     215) 		/* Start off with the file attribute */
assets/script.js     216) 		preview += "\n" + '\
assets/script.js     217) 	<file name="' + file_type + '/' + file_name + '"';
assets/script.js     218) 
assets/script.js     219) 		/* We don't need to define the default error type. */
assets/script.js     220) 		if ($.inArray(file_fail, ["ignore", "skip"]) > -1)
assets/script.js     221) 		{
assets/script.js     222) 			preview += ' error="' + file_fail + '"';
assets/script.js     223) 		}
assets/script.js     224) 		preview += '>';
assets/script.js     225) 
assets/script.js     226) 		/* Now onto the individual edits we made! */
assets/script.js     227) 		for (j = 1; j < ecount; j++)
assets/script.js     228) 		{
assets/script.js     229) 			/* Skip this edit if we deleted it. */
assets/script.js     230) 			if ($('#file-' + i + '-edit-' + j + '-delete').val() == '1')
assets/script.js     231) 			{
assets/script.js     232) 				continue;
assets/script.js     233) 			}
assets/script.js     234) 
assets/script.js     235) 			/* Get our edit info */
assets/script.js     236) 			edit_action		=	$('#file-' + i + '-edit-' + j + '-action').val();
assets/script.js     237) 			edit_error		=	$('#file-' + i + '-edit-' + j + '-error').val();
assets/script.js     238) 			edit_whitespace	=	$('#file-' + i + '-edit-' + j + '-action').is(':checked');
assets/script.js     239) 			edit_search		=	$('#file-' + i + '-edit-' + j + '-search').val();
assets/script.js     240) 			edit_replace	=	$('#file-' + i + '-edit-' + j + '-replace').val();
assets/script.js     241) 
assets/script.js     242) 			/* Start off our editing */
assets/script.js     243) 			preview += "\n\
assets/script.js     244) 		<operation";
assets/script.js     245) 
assets/script.js     246) 			/* We only need to add error handling for non default */
assets/script.js     247) 			if ($.inArray(edit_error, ["ignore", "required"]) > -1)
assets/script.js     248) 			{
assets/script.js     249) 				preview += ' error="' + file_fail + '"';
assets/script.js     250) 			}
assets/script.js     251) 			preview += '>';
assets/script.js     252) 
assets/script.js     253) 			/* Handle our search action */
assets/script.js     254) 			if (edit_action == 'end')
assets/script.js     255) 			{
assets/script.js     256) 				preview += "\n" + '\
assets/script.js     257) 			<search position="end"/>';
assets/script.js     258) 			}
assets/script.js     259) 			else
assets/script.js     260) 			{
assets/script.js     261) 				preview += "\n" + '\
assets/script.js     262) 			<search position="' + edit_action + '"';
assets/script.js     263) 
assets/script.js     264) 				/* Ignore whitespace issues */
assets/script.js     265) 				if (edit_whitespace)
assets/script.js     266) 				{
assets/script.js     267) 					preview += ' whitespace="loose"';
assets/script.js     268) 				}
assets/script.js     269) 
assets/script.js     270) 				/* Finally our code. */
assets/script.js     271) 				preview += '><![CDATA[' + edit_search + ']]></search>';
assets/script.js     272) 			}
assets/script.js     273) 
assets/script.js     274) 			/* Now our replace/add operation */
assets/script.js     275) 			preview += "\n" + '\
assets/script.js     276) 			<add><![CDATA[' + edit_replace + ']]></add>' + "\n" + '\
assets/script.js     277) 		</operation>';
assets/script.js     278) 
assets/script.js     279) 		}
assets/script.js     280) 
assets/script.js     281) 		/* Close up the file edit */
assets/script.js     282) 		preview += "\n\
assets/script.js     283) 	</file>";
assets/script.js     284) 
assets/script.js     285) 	}
assets/script.js     286) 
assets/script.js     287) 	$('#preview').text(preview);
assets/script.js     288) }
assets/script.js     289) 
assets/script.js     290) function download_file_generate()
assets/script.js     291) {
assets/script.js     292) 	show_edit_preview();
assets/script.js     293) 
assets/script.js     294) 	$.generateFile({
Jeremy D Made it so we can change t...

Jeremy D authored 12 years ago

assets/script_mod.js 295) 		filename	: 'install.xml',
Jeremy D Initial SMF Package Maker S...

Jeremy D authored 12 years ago

assets/script.js     296) 		content		: $('#preview').text(),
Jeremy D Made it so we can change t...

Jeremy D authored 12 years ago

assets/script_mod.js 297) 		script		: $('#downloadername').val() + '?download'
Jeremy D Initial SMF Package Maker S...

Jeremy D authored 12 years ago

assets/script.js     298) 	});
assets/script.js     299) }
assets/script.js     300) 
assets/script.js     301) function download_file_data()
assets/script.js     302) {
assets/script.js     303) 	show_edit_preview();
assets/script.js     304) 
assets/script.js     305) 	data = $.base64.encode($('#preview').text());
assets/script.js     306) 
assets/script.js     307) 	/* No filename can be specified by a data URI */
Jeremy D Made it so we can change t...

Jeremy D authored 12 years ago

assets/script_mod.js 308) 	window.location = 'data:application/octet-stream;charset=utf-8;base64,' + data;
Jeremy D Initial SMF Package Maker S...

Jeremy D authored 12 years ago

assets/script.js     309) }
assets/script.js     310) 
assets/script.js     311) /* Updates our details counters */
assets/script.js     312) function update_counter()
assets/script.js     313) {
assets/script.js     314) 	temp_file_count = 0;
assets/script.js     315) 	temp_edit_count = 0;
assets/script.js     316) 	temp_line_count = 0;
assets/script.js     317) 
Jeremy D Added Package Info stuff a...

Jeremy D authored 12 years ago

assets/script_mod.js 318) 	/* Because of deleted actions, we can't simply use length */