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

automailer at dexonline.ro automailer at dexonline.ro
Sun Dec 8 03:52:39 EET 2013


Author: radu
Date: Sun Dec  8 03:52:39 2013
New Revision: 1043

Log:
add similar sources checkbox and support for multiple OCR editors

Added:
   patches/00105.sql
   phplib/models/SimilarSource.php
Modified:
   templates/admin/definitionEdit.ihtml
   templates/admin/index.ihtml
   wwwbase/admin/definitionEdit.php
   wwwbase/ajax/reportCounter.php
   wwwbase/js/dex.js

Added: patches/00105.sql
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ patches/00105.sql	Sun Dec  8 03:52:39 2013	(r1043)
@@ -0,0 +1,12 @@
+alter table Definition add column similarSource tinyint(1) NOT NULL default 0 after sourceId;
+
+CREATE TABLE `SimilarSource` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `sourceId` int(11) NOT NULL,
+  `similarSource` int(11) NOT NULL,
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `sourceId` (`sourceId`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf;
+
+insert into SimilarSource(sourceId, similarSource) values (1,2), (2,3), (3,4), (8,18), (19,18), (27,1), (40,27), (21,17);
+

Added: phplib/models/SimilarSource.php
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ phplib/models/SimilarSource.php	Sun Dec  8 03:52:39 2013	(r1043)
@@ -0,0 +1,12 @@
+<?php
+
+class SimilarSource extends BaseObject {
+  public static $_table = 'SimilarSource';
+
+  public static function getSimilarSource($sourceId) {
+    $ss = Model::factory('SimilarSource')->select('similarSource')->where('sourceId', $sourceId)->find_one();
+    return $ss ? $ss->similarSource : null;
+  }
+
+}
+?>

Modified: templates/admin/definitionEdit.ihtml
==============================================================================
--- templates/admin/definitionEdit.ihtml	Mon Dec  2 14:56:38 2013	(r1042)
+++ templates/admin/definitionEdit.ihtml	Sun Dec  8 03:52:39 2013	(r1043)
@@ -92,9 +92,14 @@
         {/if}
       </td>
     </tr>
+    <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}
+      </td>
+    </tr>
     <tr>
       <td colspan="3" class="buttonRow">
-        <!-- input type="submit" name="but_refresh" value="Reafișează"/ -->
         <input type="button" name="but_refresh" value="Reafișează" onclick="defRefresh()"/>
         <span class="tooltip" title="Tipărește definiția și comentariul cu modificările făcute. Modificările nu sunt încă salvate."> </span>
           
@@ -142,4 +147,5 @@
 
 <script>
   $(definitionEditInit);
+  $(similarSourceHideonChange);
 </script>

Modified: templates/admin/index.ihtml
==============================================================================
--- templates/admin/index.ihtml	Mon Dec  2 14:56:38 2013	(r1042)
+++ templates/admin/index.ihtml	Sun Dec  8 03:52:39 2013	(r1043)
@@ -41,7 +41,9 @@
 <span id="span_visualTag"><img src="{$imgRoot}/icons/hourglass.png" alt="hourglass"/></span><br/>
 
 <a href="/admin/definitionEdit.php">Definiții OCR neverificate:</a>
-<span id="span_ocrDefs"><img src="{$imgRoot}/icons/hourglass.png" alt="hourglass"/></span><br/>
+<span id="span_ocrDefs"><img src="{$imgRoot}/icons/hourglass.png" alt="hourglass"/></span> 
+(indisponibile: <span id="span_ocrAvailDefs"><img src="{$imgRoot}/icons/hourglass.png" alt="hourglass"/></span>)
+<br/>
 
 {if $sUser->moderator & $smarty.const.PRIV_ADMIN}
 Adaugă noi definiții OCR (una pe linie): <a href="/admin/ocrInput.php">click aici</a>.

Modified: wwwbase/admin/definitionEdit.php
==============================================================================
--- wwwbase/admin/definitionEdit.php	Mon Dec  2 14:56:38 2013	(r1042)
+++ wwwbase/admin/definitionEdit.php	Sun Dec  8 03:52:39 2013	(r1043)
@@ -9,6 +9,7 @@
 if($definitionId && !$nextOcrBut) {
     $lexemIds = util_getRequestCsv('lexemIds');
     $sourceId = util_getRequestIntParameter('source');
+    $similarSource = util_getRequestParameter('similarSource');
     $internalRep = util_getRequestParameter('internalRep');
     $status = util_getRequestIntParameterWithDefault('status', null);
     $commentContents = util_getRequestParameter('commentContents');
@@ -18,6 +19,7 @@
     $definitionId = null;
     $lexemIds = null;
     $sourceId = null;
+    $similarSource = 0;
     $internalRep = null;
     $status = null;
     $commentContents = null;
@@ -31,7 +33,12 @@
 
 if (!$definitionId) {
   if ($isOCR) {
-    $ocr = Model::factory('OCR')->where('status', 'raw')->order_by_asc('dateModified')->find_one();
+    //find definitions assigned to user
+    $ocr = Model::factory('OCR')->where('status', 'raw')->where('editorId', session_getUserId())->order_by_asc('dateModified')->find_one();
+    // find definitions assigned to noone
+    if (!$ocr || !$ocr->id) {
+      $ocr = Model::factory('OCR')->where('status', 'raw')->where_null('editorId')->order_by_asc('dateModified')->find_one();
+    }
     if (!$ocr || !$ocr->id) {
       echo("Lista cu definiții OCR este goală.");
       return;
@@ -45,6 +52,7 @@
     $definition->status = ST_PENDING;
     $definition->userId = session_getUserId();
     $definition->sourceId = $sourceId;
+    $definition->similarSource = $similarSource;
     $definition->internalRep = $def;
     $definition->htmlRep = AdminStringUtil::htmlize($def, $sourceId);
     $definition->lexicon = AdminStringUtil::extractLexicon($definition);
@@ -64,6 +72,7 @@
 if (!($definition = Definition::get_by_id($definitionId))) {
   return;
 }
+
 $comment = Model::factory('Comment')->where('definitionId', $definitionId)->where('status', ST_ACTIVE)->find_one();
 $commentUser = $comment ? User::get_by_id($comment->userId) : null;
 $oldInternalRep = $definition->internalRep;
@@ -85,6 +94,13 @@
 if ($sourceId) {
   $definition->sourceId = (int)$sourceId;
 }
+if ($similarSource) {
+  $definition->similarSource = 1;
+}
+else {
+  $definition->similarSource = 0;
+}
+
 if ($internalRep || $sourceId) {
   $definition->lexicon = AdminStringUtil::extractLexicon($definition);
 }
@@ -163,13 +179,13 @@
   }
     
   log_userLog("Edited definition {$definition->id} ({$definition->lexicon})");
-  util_redirect('definitionEdit.php?definitionId=' . $definitionId);
+  //util_redirect('definitionEdit.php?definitionId=' . $definitionId);
 }
 else if ($nextOcrBut && !$hasErrors) {
   //TODO: check if definition has lexems
   $definition->save();
   log_userLog("Edited OCR definition {$definition->id} ({$definition->lexicon}), ocr ({$ocr->id})");
-  util_redirect('definitionEdit.php?definitionId=' . $definitionId . "&ocr=1");
+  //util_redirect('definitionEdit.php?definitionId=' . $definitionId . "&ocr=1");
 }
 
 $source = Source::get_by_id($definition->sourceId);
@@ -180,9 +196,16 @@
   RecentLink::createOrUpdate(sprintf("Definiție: %s (%s)", $definition->lexicon, $source->shortName));
 }
 
+$similarSourceName = null;
+if ($definition->sourceId) {
+  $similarSourceId = SimilarSource::getSimilarSource($definition->sourceId);
+  $similarSourceObj = Source::get_by_id($similarSourceId);
+}
+
 SmartyWrap::assign('isOCR', $isOCR);
 SmartyWrap::assign('def', $definition);
 SmartyWrap::assign('source', $source);
+SmartyWrap::assign('similarSource', $similarSourceObj);
 SmartyWrap::assign('user', User::get_by_id($definition->userId));
 SmartyWrap::assign('comment', $comment);
 SmartyWrap::assign('commentUser', $commentUser);

Modified: wwwbase/ajax/reportCounter.php
==============================================================================
--- wwwbase/ajax/reportCounter.php	Mon Dec  2 14:56:38 2013	(r1042)
+++ wwwbase/ajax/reportCounter.php	Sun Dec  8 03:52:39 2013	(r1043)
@@ -23,6 +23,7 @@
   break;
 case 'visualTag': echo Model::factory('Visual')->where('revised', 0)->count(); break;
 case 'ocrDefs': echo Model::factory('OCR')->where('status', 'raw')->count(); break;
+case 'ocrAvailDefs': echo Model::factory('OCR')->where('status', 'raw')->where_not_null('editorId')->where_not_equal('editorId', session_getUserId())->count(); break;
 default: echo 'Necunoscut';
 }
 

Modified: wwwbase/js/dex.js
==============================================================================
--- wwwbase/js/dex.js	Mon Dec  2 14:56:38 2013	(r1042)
+++ wwwbase/js/dex.js	Sun Dec  8 03:52:39 2013	(r1043)
@@ -349,7 +349,7 @@
 
 function startReportCounters() {
   reports = ['unassociatedLexems', 'unassociatedDefinitions', 'definitionsWithTypos', 'temporaryDefinitions', 'temporaryLexems', 'lexemsWithComments',
-             'lexemsWithoutAccents', 'definitionsWithAmbiguousAbbrev', 'wotd', 'visualTag', 'ocrDefs'];
+             'lexemsWithoutAccents', 'definitionsWithAmbiguousAbbrev', 'wotd', 'visualTag', 'ocrDefs', 'ocrAvailDefs'];
   for (var i = 0; i < reports.length; i++) {
     $.ajax({
       url: wwwRoot + 'ajax/reportCounter.php',
@@ -488,3 +488,7 @@
     });
   });
 }
+
+function similarSourceHideonChange() {
+  $('#sourceDropDown').change(function(){$('#similarSourceRow').hide()});
+}


More information about the Dev mailing list