[dev] [commit] r971 - in wwwbase: admin js

automailer at dexonline.ro automailer at dexonline.ro
Fri Aug 30 17:22:26 EEST 2013


Author: cata
Date: Fri Aug 30 17:22:25 2013
New Revision: 971

Log:
Allow admins to add new lexems straight from definitionEdit.php.

Modified:
   wwwbase/admin/definitionEdit.php
   wwwbase/js/select2Dev.js

Modified: wwwbase/admin/definitionEdit.php
==============================================================================
--- wwwbase/admin/definitionEdit.php	Fri Aug 30 14:24:39 2013	(r970)
+++ wwwbase/admin/definitionEdit.php	Fri Aug 30 17:22:25 2013	(r971)
@@ -92,9 +92,16 @@
   $lexems = array();
   $ldms = array();
   foreach ($lexemIds as $lexemId) {
-    $l = Lexem::get_by_id($lexemId);
+    if (StringUtil::startsWith($lexemId, '@')) {
+      // create a new lexem
+      $l = Lexem::create(substr($lexemId, 1), 'T', '1', '');
+      $l->save();
+      $l->regenerateParadigm();
+    } else {
+      $l = Lexem::get_by_id($lexemId);
+    }
     $lexems[] = $l;
-    $ldms[] = LexemDefinitionMap::create($lexemId, $definitionId);
+    $ldms[] = LexemDefinitionMap::create($l->id, $definitionId);
   }
 } else {
   $lexems = Model::factory('Lexem')->select('Lexem.*')->join('LexemDefinitionMap', 'Lexem.id = lexemId', 'ldm')

Modified: wwwbase/js/select2Dev.js
==============================================================================
--- wwwbase/js/select2Dev.js	Fri Aug 30 14:24:39 2013	(r970)
+++ wwwbase/js/select2Dev.js	Fri Aug 30 17:22:25 2013	(r971)
@@ -50,6 +50,7 @@
 function definitionEditInit() {
   $('#lexemIds').select2({
     ajax: struct_lexemAjax,
+    createSearchChoice: allowNewLexems,
     escapeMarkup: function(m) { return m; },
     initSelection: select2InitSelectionAjax,
     formatSelection: formatLexemWithEditLink,
@@ -60,7 +61,12 @@
 }
 
 function formatLexemWithEditLink(lexem) {
-  return lexem.text + ' <a class="select2Edit" href="lexemEdit.php?lexemId=' + lexem.id + '"> </a>';
+  if (startsWith(lexem.id, '@')) {
+    // don't show an edit link for soon-to-be created lexems
+    return lexem.text;
+  } else {
+    return lexem.text + ' <a class="select2Edit" href="lexemEdit.php?lexemId=' + lexem.id + '"> </a>';
+  }
 }
 
 function allowNewLexems(term, data) {


More information about the Dev mailing list