]> git.0d.be Git - chloro.git/commitdiff
add wiki links
authorFrédéric Péters <fpeters@0d.be>
Sat, 16 Jul 2022 21:17:49 +0000 (23:17 +0200)
committerFrédéric Péters <fpeters@0d.be>
Sat, 16 Jul 2022 21:17:49 +0000 (23:17 +0200)
chloro/phyll/static/js/chloro.js
chloro/phyll/urls.py
chloro/phyll/views.py

index 48f53a9cf431c4fc080167614ae8a782e28f3e04..7bf32a919fc5de6afd856854bdbaae28bc88f4d4 100644 (file)
       var params = {};
       params.title = text;
       params.request_id = request_id;
-      $.post('/wiki/ajax/newpage/', params).done(function(data) {
+      $.post('/ajax/newpage/', params).done(function(data) {
         $('a[data-request-id=' + data.request_id + ']').attr('href', data.url).removeAttr('data-request-id');
       });
       param = $new_link[0].outerHTML;
                       '<button data-action="bold" data-accel="b"><b>b</b></button>' +
                       '<button data-action="code" data-accel="<">&lt;&gt;</button>' +
                       '<button data-action="removeFormat" data-accel="m">×</button>' +
+                      '<button data-action="wiki">W</button>' +
                       '<button data-action="createLink">a</button>' +
                       '<input name="link-target"/>' +
                       '</div>');
index 34db0b493c33f427f9c4121103c0bf3e5df35365..6de4516ce7b50e2948e75dca048367360496e789 100644 (file)
@@ -40,6 +40,7 @@ urlpatterns = [
     ),
     url(r'^(?P<slug>[\w:-]+)/api-save/$', staff_member_required(views.NoteApiSaveView.as_view())),
     url(r'^ajax/upload/$', staff_member_required(views.ajax_upload)),
+    url(r'^ajax/newpage/$', staff_member_required(views.ajax_new_page)),
     url(r'^new-note/$', staff_member_required(views.NoteAddView.as_view(), login_url='login')),
     url(r'^feeds/(?P<sub>[\w:-]+)/atom$', views.AtomFeed()),
     url(r'^feed/atom$', views.AtomFeed()),
index 2e77fc926842270e743d37c323eb62ef2d470b12..6ad8015f2ff43b2de6a3fb9c2a74988c20e7d336 100644 (file)
@@ -23,6 +23,7 @@ from django.core.exceptions import PermissionDenied
 from django.core.files.storage import default_storage
 from django.http import HttpResponse, Http404, JsonResponse
 from django.utils.feedgenerator import Atom1Feed
+from django.utils.text import slugify
 from django.views import View
 from django.views.decorators.csrf import csrf_exempt
 from django.views.generic import CreateView, DeleteView, DetailView, ListView, UpdateView, TemplateView
@@ -168,3 +169,20 @@ def ajax_upload(request, *args, **kwargs):
             except OSError:
                 pass
     return JsonResponse(response)
+
+
+@csrf_exempt
+def ajax_new_page(request, *args, **kwargs):
+    title = request.POST['title']
+    slug = slugify(title)
+    note, created = Note.objects.get_or_create(slug=slug)
+    if created:
+        note.title = title
+        note.text = '<p>...</p>'
+        note.save()
+    return JsonResponse(
+        {
+            'url': '/%s/' % note.slug,
+            'request_id': request.POST['request_id'],
+        }
+    )