Просмотр исходного кода

Merge pull request #464 from weseek/fix/463-double-newline-character-posted

Fix/463 double newline character posted
Yuki Takei 7 лет назад
Родитель
Сommit
07e1736f8b
4 измененных файлов с 23 добавлено и 4 удалено
  1. 4 1
      lib/form/revision.js
  2. 5 1
      lib/models/revision.js
  3. 7 2
      lib/routes/page.js
  4. 7 0
      lib/views/widget/page_alerts.html

+ 4 - 1
lib/form/revision.js

@@ -5,7 +5,10 @@ var form = require('express-form')
 
 module.exports = form(
   field('pageForm.path').required(),
-  field('pageForm.body').required().custom(function(value) { return value.replace(/\r/g, '\n') }),
+  field('pageForm.body').required().custom(function(value) {
+    // see https://github.com/weseek/growi/issues/463
+    return value.replace(/\r\n?/g, '\n');
+  }),
   field('pageForm.currentRevision'),
   field('pageForm.grant').toInt().required(),
   field('pageForm.grantUserGroupId'),

+ 5 - 1
lib/models/revision.js

@@ -10,7 +10,11 @@ module.exports = function(crowi) {
 
   revisionSchema = new mongoose.Schema({
     path: { type: String, required: true },
-    body: { type: String, required: true },
+    body: { type: String, required: true, get: (data) => {
+      // replace CR/CRLF to LF above v3.1.5
+      // see https://github.com/weseek/growi/issues/463
+      return data.replace(/\r\n?/g, '\n');
+    }},
     format: { type: String, default: 'markdown' },
     author: { type: ObjectId, ref: 'User' },
     createdAt: { type: Date, default: Date.now }

+ 7 - 2
lib/routes/page.js

@@ -607,11 +607,16 @@ module.exports = function(crowi, app) {
 
   actions.pageEdit = function(req, res) {
 
-    var pageForm = req.body.pageForm;
+    if (!req.form.isValid) {
+      req.flash('dangerMessage', 'Request is invalid.');
+      return res.redirect(req.headers.referer);
+    }
+
+    var pageForm = req.form.pageForm;
+    var path = pageForm.path;
     var body = pageForm.body;
     var currentRevision = pageForm.currentRevision;
     var grant = pageForm.grant;
-    var path = pageForm.path;
     var grantUserGroupId = pageForm.grantUserGroupId;
 
     // TODO: make it pluggable

+ 7 - 0
lib/views/widget/page_alerts.html

@@ -79,5 +79,12 @@
       <a href="{{ page.path }}"><i class="icon-fw icon-arrow-right-circle"></i>{{ t('Show latest') }}</a>
     </div>
     {% endif %}
+
+    {% set dmessage = req.flash('dangerMessage') %}
+    {% if dmessage.length %}
+    <div class="alert alert-danger m-b-15">
+      {{ dmessage }}
+    </div>
+    {% endif %}
   </div>
 </div>