[dev] [commit] r1052 - phplib/models templates/admin wwwbase/admin wwwbase/ajax wwwbase/js

automailer at dexonline.ro automailer at dexonline.ro
Sat Jan 11 02:43:11 EET 2014


Author: radu
Date: Sat Jan 11 02:43:11 2014
New Revision: 1052

Log:
show similar definitions

Added:
   wwwbase/ajax/getSimilarDefinition.php
Modified:
   phplib/models/Definition.php
   templates/admin/definitionEdit.ihtml
   wwwbase/admin/definitionEdit.php
   wwwbase/js/select2Dev.js

Modified: phplib/models/Definition.php
==============================================================================
--- phplib/models/Definition.php	Mon Jan  6 18:47:23 2014	(r1051)
+++ phplib/models/Definition.php	Sat Jan 11 02:43:11 2014	(r1052)
@@ -27,6 +27,18 @@
     return $r->c;
   }
 
+  public static function loadBySourceAndLexemId($sourceId, $lexemId) {
+    return Model::factory('Definition')
+      ->select('Definition.*')
+      ->join('LexemDefinitionMap', array('Definition.id', '=', 'definitionId'))
+      ->where('LexemDefinitionMap.lexemId', $lexemId)
+      ->where('Definition.sourceId', $sourceId)
+      ->where_not_equal('status', ST_DELETED)
+      ->order_by_asc('sourceId')
+      ->find_one();
+      //->find_many();
+  }
+
   public static function getListOfWordsFromSources($wordStart, $wordEnd, $sources) {
     return Model::factory('Definition')
       ->select('Definition.*')

Modified: templates/admin/definitionEdit.ihtml
==============================================================================
--- templates/admin/definitionEdit.ihtml	Mon Jan  6 18:47:23 2014	(r1051)
+++ templates/admin/definitionEdit.ihtml	Sat Jan 11 02:43:11 2014	(r1052)
@@ -95,7 +95,7 @@
     <tr id='similarSourceRow' {if $similarSource->shortName}{else}style="display:none"{/if}>
       <td>Similarități</td>
       <td>
-        <input type="checkbox" id="similarSource" name="similarSource" value="1" {if $def->similarSource}checked="checked"{/if}/> Definiție similară cu cea din {$similarSource->shortName}
+        <input type="checkbox" id="similarSource" name="similarSource" value="1" {if $def->similarSource}checked="checked"{/if}/> Definiție identică cu cea din {$similarSource->shortName}
       </td>
     </tr>
     <tr>
@@ -145,6 +145,16 @@
   Comentariu: {$comment->htmlContents}
 {/if}
 
+{if $similarSource->shortName}
+<input type="hidden" id="similarSourceId" value="{$similarSource->id}"/>
+<div style="display:hidden">
+  <font color="red">Definiția din {$similarSource->shortName} corespunzătoare lexemului:</font>
+</div>
+<div id="similarPreview">
+{$similarDef->htmlRep|default:'<font color="#888">Nu există nicio definiție similară sau nu e niciun lexem definit</font>'}
+</div>
+{/if}
+
 <script>
   $(definitionEditInit);
   $(similarSourceHideonChange);

Modified: wwwbase/admin/definitionEdit.php
==============================================================================
--- wwwbase/admin/definitionEdit.php	Mon Jan  6 18:47:23 2014	(r1051)
+++ wwwbase/admin/definitionEdit.php	Sat Jan 11 02:43:11 2014	(r1052)
@@ -197,15 +197,21 @@
 }
 
 $similarSourceName = null;
+$similarDefObj = null;
 if ($definition->sourceId) {
   $similarSourceId = SimilarSource::getSimilarSource($definition->sourceId);
   $similarSourceObj = Source::get_by_id($similarSourceId);
+  if ($similarSourceObj && $lexemIds) {
+    //TODO add suport for multiple lexems
+    $similarDefObj = Definition::loadBySourceAndLexemId($similarSourceId, $lexemIds[0]);
+  }
 }
 
 SmartyWrap::assign('isOCR', $isOCR);
 SmartyWrap::assign('def', $definition);
 SmartyWrap::assign('source', $source);
 SmartyWrap::assign('similarSource', $similarSourceObj);
+SmartyWrap::assign('similarDef', $similarDefObj);
 SmartyWrap::assign('user', User::get_by_id($definition->userId));
 SmartyWrap::assign('comment', $comment);
 SmartyWrap::assign('commentUser', $commentUser);

Added: wwwbase/ajax/getSimilarDefinition.php
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ wwwbase/ajax/getSimilarDefinition.php	Sat Jan 11 02:43:11 2014	(r1052)
@@ -0,0 +1,13 @@
+<?php
+require_once("../../phplib/util.php");
+util_assertModerator(PRIV_WOTD);
+util_assertNotMirror();
+
+$sourceId = util_getRequestParameter('s');
+$lexemId = util_getRequestParameter('l');
+
+$definition = Definition::loadBySourceAndLexemId($sourceId, $lexemId);
+
+print $definition ? $definition->htmlRep : '';
+
+?>

Modified: wwwbase/js/select2Dev.js
==============================================================================
--- wwwbase/js/select2Dev.js	Mon Jan  6 18:47:23 2014	(r1051)
+++ wwwbase/js/select2Dev.js	Sat Jan 11 02:43:11 2014	(r1052)
@@ -58,6 +58,16 @@
     multiple: true,
     width: '600px',
   });
+
+
+  $('#lexemIds')
+    .on("change", function(e){
+      $.ajax(wwwRoot + 'ajax/getSimilarDefinition.php?s=' + $('#similarSourceId').val() + '&l=' + e.val)
+        .done(function(data) {
+          if (!data) data = '<font color="#888">Nu există nicio definiție similară sau nu e niciun lexem definit</font>';
+          $('#similarPreview').html(data);
+        })
+    })
 }
 
 function formatLexemWithEditLink(lexem) {


More information about the Dev mailing list