Use garlic.js to autosave proposal content locally.
diff --git a/app/soc/content/js/melange.js b/app/soc/content/js/melange.js
index ccb3456..0339678 100644
--- a/app/soc/content/js/melange.js
+++ b/app/soc/content/js/melange.js
@@ -140,7 +140,14 @@
return jQuery.extend (
returned_tinymce_settings,
{
- elements: textareaids
+ elements: textareaids,
+ setup: function(editor) {
+ editor.on("change keyup", function() {
+ jQuery(tinyMCE.get()).each(function(index, element) {
+ jQuery("#" + element.id).val(element.getContent()).trigger("change.garlic");
+ });
+ });
+ }
}
);
};
diff --git a/app/soc/content/js/templates/modules/gsoc/proposal/base.js b/app/soc/content/js/templates/modules/gsoc/proposal/base.js
index 27a8eaa..a67091b 100644
--- a/app/soc/content/js/templates/modules/gsoc/proposal/base.js
+++ b/app/soc/content/js/templates/modules/gsoc/proposal/base.js
@@ -14,11 +14,17 @@
*/
melange.templates.inherit(
function (_self, context) {
+ var tinyMCEfields = ["melange-full_content-textarea"];
jQuery("select, input:radio, input:file, input:checkbox").uniform();
jQuery("#abstract").counter({
goal: 500
});
- tinyMCE.init(melange.tinyMceConfig(["melange-content-textarea"], "advanced"));
- tinyMCE.init(melange.tinyMceConfig(["melange-full_content-textarea"], "advanced"));
+ jQuery("form.form-register").garlic({
+ onRetrieve: function(element, retrievedValue) {
+ if (jQuery.inArray(element[0].id, tinyMCEfields) >= 0) {
+ tinyMCE.init(melange.tinyMceConfig(tinyMCEfields, "advanced"));
+ }
+ }
+ });
}
);
diff --git a/app/summerofcode/content/html/summerofcode/proposal/proposal_edit.html b/app/summerofcode/content/html/summerofcode/proposal/proposal_edit.html
index 10945a2..0bc82a6 100644
--- a/app/summerofcode/content/html/summerofcode/proposal/proposal_edit.html
+++ b/app/summerofcode/content/html/summerofcode/proposal/proposal_edit.html
@@ -21,6 +21,7 @@
[
dep.uniform,
dep.counter,
+ dep.garlic,
null,
tc("/soc/content/{{ app_version }}/js/templates/modules/gsoc/proposal/base.js")
]