[dev] [commit] r946 - patches phplib templates/admin wwwbase/admin wwwbase/ajax wwwbase/img/icons wwwbase/js wwwbase/styles

automailer at dexonline.ro automailer at dexonline.ro
Tue Aug 20 17:15:28 EEST 2013


Author: cata
Date: Tue Aug 20 17:15:28 2013
New Revision: 946

Log:
Add a "structured" bit on definitions, allowing moderators to mark
definitions as structured to get them out of the way.
Add ajax links on the lexemEdit page to toggle that bit.
Add filters to show only structured / unstructured definitions.

Added:
   patches/00097.sql
   wwwbase/ajax/setDefinitionStructured.php
   wwwbase/img/icons/bullet_green.png   (contents, props changed)
   wwwbase/img/icons/bullet_red.png   (contents, props changed)
Modified:
   phplib/SmartyWrap.php
   templates/admin/lexemEdit.ihtml
   wwwbase/admin/lexemEdit.php
   wwwbase/js/lexemEdit.js
   wwwbase/styles/lexemEdit.css

Added: patches/00097.sql
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ patches/00097.sql	Tue Aug 20 17:15:28 2013	(r946)
@@ -0,0 +1 @@
+alter table Definition add structured bool not null after abbrevReview;

Modified: phplib/SmartyWrap.php
==============================================================================
--- phplib/SmartyWrap.php	Tue Aug 20 15:24:42 2013	(r945)
+++ phplib/SmartyWrap.php	Tue Aug 20 17:15:28 2013	(r946)
@@ -160,7 +160,7 @@
       case 'paradigm':           self::$cssFiles[9] = 'paradigm.css?v=1'; break;
       case 'hangman':            self::$cssFiles[10] = 'hangman.css?v=3'; break;
       case 'mill':               self::$cssFiles[11] = 'mill.css?v=1'; break;
-      case 'lexemEdit':          self::$cssFiles[12] = 'lexemEdit.css?v=2'; break;
+      case 'lexemEdit':          self::$cssFiles[12] = 'lexemEdit.css?v=3'; break;
       case 'jcrop':              self::$cssFiles[13] = 'jquery.Jcrop.min.css?v=2'; break;
       case 'easyui':
         self::$cssFiles[14] = 'easyui/default/easyui.css?v=1';
@@ -195,9 +195,8 @@
       case 'hangman':          self::$jsFiles[13] = 'hangman.js?v=5'; break;
       case 'mill':             self::$jsFiles[14] = 'mill.js?v=2'; break;
       case 'wotd':             self::$jsFiles[15] = 'wotd.js?v=1';
-      case 'lexemEdit':        self::$jsFiles[16] = 'lexemEdit.js?v=3'; break;
+      case 'lexemEdit':        self::$jsFiles[16] = 'lexemEdit.js?v=4'; break;
       case 'jcrop':            self::$jsFiles[17] = 'jquery.Jcrop.min.js?v=2'; break;
-        
       case 'easyui':           self::$jsFiles[18] = 'jquery.easyui.min.js?v=1'; break;
       case 'select2':          self::$jsFiles[19] = 'select2.min.js?v=2'; break;
       case 'select2Dev':       self::$jsFiles[20] = 'select2Dev.js?v=1'; break;

Modified: templates/admin/lexemEdit.ihtml
==============================================================================
--- templates/admin/lexemEdit.ihtml	Tue Aug 20 15:24:42 2013	(r945)
+++ templates/admin/lexemEdit.ihtml	Tue Aug 20 17:15:28 2013	(r946)
@@ -288,10 +288,15 @@
 {/if}
 
 <div class="box">
-  <div class="boxTitle">Definiții asociate ({$searchResults|@count})</div>
+  <div class="boxTitle">
+    Definiții asociate ({$searchResults|@count})
+    <a href="#" class="defFilterLink">toate</a>
+    <a href="#" class="defFilterLink structured">structurate</a>
+    <a href="#" class="defFilterLink unstructured">nestructurate</a>
+  </div>
   <div class="boxContents">
     {foreach from=$searchResults item=row}
-      <div>
+      <div class="defWrapper {if $row->definition->structured}structured{else}unstructured{/if}" id="def_{$row->definition->id}">
         <div class="defInternalRep">{$row->definition->internalRep|escape}</div>
         <div class="defHtmlRep">{$row->definition->htmlRep}</div>
         <span class="defDetails">
@@ -306,6 +311,9 @@
                  onclick="return confirmDissociateDefinition({$row->definition->id})">disociază</a>
           {/if}
           | <a href="#" class="toggleInternalHtmlLink">arată html</a>
+          {if $canEdit.defStructured}
+            | <a href="#" class="toggleStructuredLink">{if $row->definition->structured}structurată{else}nestructurată{/if}</a>
+          {/if}
         </span>
         {if $row->comment}
           <div class="commentInternalRep">

Modified: wwwbase/admin/lexemEdit.php
==============================================================================
--- wwwbase/admin/lexemEdit.php	Tue Aug 20 15:24:42 2013	(r945)
+++ wwwbase/admin/lexemEdit.php	Tue Aug 20 17:15:28 2013	(r946)
@@ -103,6 +103,7 @@
 
 $canEdit = array(
   'general' => util_isModerator(PRIV_EDIT),
+  'defStructured' => util_isModerator(PRIV_EDIT),
   'description' => !$lexem->isLoc || util_isModerator(PRIV_LOC),
   'form' => !$lexem->isLoc || util_isModerator(PRIV_LOC),
   'hyphenations' => !$lexem->structSealed || util_isModerator(PRIV_EDIT),

Added: wwwbase/ajax/setDefinitionStructured.php
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ wwwbase/ajax/setDefinitionStructured.php	Tue Aug 20 17:15:28 2013	(r946)
@@ -0,0 +1,13 @@
+<?php
+
+require_once("../../phplib/util.php");
+util_assertModerator(PRIV_EDIT);
+
+$id = util_getRequestParameter('id');
+$value = util_getBoolean('value');
+
+$def = Definition::get_by_id($id);
+$def->structured = $value;
+$def->save();
+
+?>

Added: wwwbase/img/icons/bullet_green.png
==============================================================================
Binary file. No diff available.

Added: wwwbase/img/icons/bullet_red.png
==============================================================================
Binary file. No diff available.

Modified: wwwbase/js/lexemEdit.js
==============================================================================
--- wwwbase/js/lexemEdit.js	Tue Aug 20 15:24:42 2013	(r945)
+++ wwwbase/js/lexemEdit.js	Tue Aug 20 17:15:28 2013	(r946)
@@ -77,6 +77,8 @@
   $('#editMeaningCancelButton').click(endMeaningEdit);
   $('.lexemEditSaveButton').click(saveEverything);
   $('.toggleInternalHtmlLink').click(toggleInternalHtmlClick);
+  $('.toggleStructuredLink').click(toggleStructuredClick);
+  $('.defFilterLink').click(defFilterClick);
   $('.boxTitle').click(boxTitleClick);
 
   $('#lexemSourceIds').select2({
@@ -288,6 +290,38 @@
   return false;
 }
 
+function toggleStructuredClick() {
+  var parent = $(this).closest('.defWrapper');
+  var id = parent.attr('id').split('_')[1];
+  if (parent.hasClass('structured')) {
+    $(this).text('nestructurată');
+    parent.removeClass('structured');
+    parent.addClass('unstructured');
+    var value = 0;
+  } else {
+    $(this).text('structurată');
+    parent.removeClass('unstructured');
+    parent.addClass('structured');
+    var value = 1;
+  }
+  $.get(wwwRoot + 'ajax/setDefinitionStructured.php?id=' + id + '&value=' + value);
+  return false;
+}
+
+function defFilterClick() {
+  if ($(this).hasClass('structured')) {
+    $('.defWrapper.unstructured').hide('slow');
+  } else {
+    $('.defWrapper.unstructured').show('slow');
+  }
+  if ($(this).hasClass('unstructured')) {
+    $('.defWrapper.structured').hide('slow');
+  } else {
+    $('.defWrapper.structured').show('slow');
+  }
+  return false;
+}
+
 function boxTitleClick() {
   $(this).next('.boxContents').slideToggle();
 }

Modified: wwwbase/styles/lexemEdit.css
==============================================================================
--- wwwbase/styles/lexemEdit.css	Tue Aug 20 15:24:42 2013	(r945)
+++ wwwbase/styles/lexemEdit.css	Tue Aug 20 17:15:28 2013	(r946)
@@ -19,6 +19,12 @@
   padding: 5px 5px 5px 25px;
 }
 
+.boxTitle a {
+  color: white;
+  margin-left: 20px;
+  font-weight: normal;
+}
+
 .boxContents {
   padding: 5px;
 }
@@ -139,6 +145,16 @@
   color: #555555;
 }
 
+div.structured a.toggleStructuredLink {
+  background: url("../img/icons/bullet_green.png") 0px 1px no-repeat;
+  padding-left: 14px;
+}
+
+div.unstructured a.toggleStructuredLink {
+  background: url("../img/icons/bullet_red.png") 0px 1px no-repeat;
+  padding-left: 14px;
+}
+
 div.addDefinition {
   margin-top: 10px;
 }


More information about the Dev mailing list