summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/wikis.js
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/wikis.js')
-rw-r--r--app/assets/javascripts/wikis.js37
1 files changed, 37 insertions, 0 deletions
diff --git a/app/assets/javascripts/wikis.js b/app/assets/javascripts/wikis.js
new file mode 100644
index 00000000000..35401231fbf
--- /dev/null
+++ b/app/assets/javascripts/wikis.js
@@ -0,0 +1,37 @@
+
+/*= require latinise */
+
+(function() {
+ var bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
+
+ this.Wikis = (function() {
+ function Wikis() {
+ this.slugify = bind(this.slugify, this);
+ $('.new-wiki-page').on('submit', (function(_this) {
+ return function(e) {
+ var field, path, slug;
+ $('[data-error~=slug]').addClass('hidden');
+ field = $('#new_wiki_path');
+ slug = _this.slugify(field.val());
+ if (slug.length > 0) {
+ path = field.attr('data-wikis-path');
+ location.href = path + '/' + slug;
+ return e.preventDefault();
+ }
+ };
+ })(this));
+ }
+
+ Wikis.prototype.dasherize = function(value) {
+ return value.replace(/[_\s]+/g, '-');
+ };
+
+ Wikis.prototype.slugify = function(value) {
+ return this.dasherize(value.trim().toLowerCase().latinise());
+ };
+
+ return Wikis;
+
+ })();
+
+}).call(this);