فهرست منبع

Fixed #28295 -- Made admin's URLify.js trim trailing hyphens.

monotonee 7 سال پیش
والد
کامیت
7c4f05fae2
2فایلهای تغییر یافته به همراه7 افزوده شده و 2 حذف شده
  1. 3 2
      django/contrib/admin/static/admin/js/urlify.js
  2. 4 0
      js_tests/admin/URLify.test.js

+ 3 - 2
django/contrib/admin/static/admin/js/urlify.js

@@ -172,8 +172,9 @@
         }
         s = s.replace(/^\s+|\s+$/g, '');   // trim leading/trailing spaces
         s = s.replace(/[-\s]+/g, '-');     // convert spaces to hyphens
-        s = s.toLowerCase();               // convert to lowercase
-        return s.substring(0, num_chars);  // trim to first num_chars chars
+        s = s.substring(0, num_chars);     // trim to first num_chars chars
+        s = s.replace(/-+$/g, '');         // trim any trailing hyphens
+        return s.toLowerCase();            // convert to lowercase
     }
     window.URLify = URLify;
 })();

+ 4 - 0
js_tests/admin/URLify.test.js

@@ -19,3 +19,7 @@ QUnit.test('strip non-URL characters', function(assert) {
 QUnit.test('merge adjacent whitespace', function(assert) {
     assert.strictEqual(URLify('D   silent', 8, true), 'd-silent');
 });
+
+QUnit.test('trim trailing hyphens', function(assert) {
+    assert.strictEqual(URLify('D silent always', 9, true), 'd-silent');
+});