APIv4 Explorer - Update pluralize fn to match CRM_Utils_String
authorColeman Watts <coleman@civicrm.org>
Tue, 23 Jun 2020 14:54:18 +0000 (10:54 -0400)
committerColeman Watts <coleman@civicrm.org>
Tue, 23 Jun 2020 14:54:18 +0000 (10:54 -0400)
ang/api4Explorer/Explorer.js

index d9d8d425e9f44b4968f1d1bb7038cc29cf10f7f7..953bdba0ab8b8efb40f2479607d2c10bc333649a 100644 (file)
     }
 
     function pluralize(str) {
-      switch (str[str.length-1]) {
-        case 's':
-          return str + 'es';
-        case 'y':
-          return str.slice(0, -1) + 'ies';
-        default:
-          return str + 's';
+      var lastLetter = str[str.length - 1],
+        lastTwo = str[str.length - 2] + lastLetter;
+      if (lastLetter === 's' || lastTwo === 'ch') {
+        return str + 'es';
       }
+      if (lastLetter === 'y' && lastTwo !== 'ey') {
+        return str.slice(0, -1) + 'ies';
+      }
+      return str + 's';
     }
 
     // Reformat an existing array of objects for compatibility with select2