Author: ornicar2
Date: 2010-02-03 00:30:45 +0100 (Wed, 03 Feb 2010)
New Revision: 27460

Modified:
   
plugins/diemPlugin/trunk/dmAdminPlugin/data/generator/dmAdminDoctrineModule/dmAdmin/template/templates/_list.php
   
plugins/diemPlugin/trunk/dmAdminPlugin/lib/action/base/dmAdminBaseGeneratedModuleActions.php
   
plugins/diemPlugin/trunk/dmAdminPlugin/lib/generator/dmAdminDoctrineGenerator.php
   plugins/diemPlugin/trunk/dmAdminPlugin/web/css/list.css
   plugins/diemPlugin/trunk/dmAdminPlugin/web/js/dmAdminCtrl.js
Log:
[Diem]
- booleans can be toggled in one click on admin lists

Modified: 
plugins/diemPlugin/trunk/dmAdminPlugin/data/generator/dmAdminDoctrineModule/dmAdmin/template/templates/_list.php
===================================================================
--- 
plugins/diemPlugin/trunk/dmAdminPlugin/data/generator/dmAdminDoctrineModule/dmAdmin/template/templates/_list.php
    2010-02-02 23:30:14 UTC (rev 27459)
+++ 
plugins/diemPlugin/trunk/dmAdminPlugin/data/generator/dmAdminDoctrineModule/dmAdmin/template/templates/_list.php
    2010-02-02 23:30:45 UTC (rev 27460)
@@ -19,9 +19,9 @@
           [?php include_partial('<?php echo $this->getModuleName() 
?>/list_th_<?php echo $this->configuration->getValue('list.layout') ?>', 
array('sort' => $sort)) ?]
         </tr>
       </tfoot>
-      <tbody>
+      <tbody class='{toggle_url: "[?php echo 
£link('@'.$helper->getUrlForAction('toggleBoolean'))->getHref() ?]"}'>
         [?php foreach ($pager->getResults() as $i => $<?php echo 
$this->getSingularName() ?>): $odd = fmod(++$i, 2) ? 'odd' : 'even' ?]
-          <tr class="sf_admin_row [?php echo $odd ?]">
+          <tr class="sf_admin_row [?php echo $odd ?] {pk: [?php echo $<?php 
echo $this->getSingularName() ?>->getPrimaryKey() ?]}">
 <?php if ($this->configuration->getValue('list.batch_actions')): ?>
             <td>
               <input type="checkbox" name="ids[]" value="[?php echo $<?php 
echo $this->getSingularName() ?>->getPrimaryKey() ?]" 
class="sf_admin_batch_checkbox" />

Modified: 
plugins/diemPlugin/trunk/dmAdminPlugin/lib/action/base/dmAdminBaseGeneratedModuleActions.php
===================================================================
--- 
plugins/diemPlugin/trunk/dmAdminPlugin/lib/action/base/dmAdminBaseGeneratedModuleActions.php
        2010-02-02 23:30:14 UTC (rev 27459)
+++ 
plugins/diemPlugin/trunk/dmAdminPlugin/lib/action/base/dmAdminBaseGeneratedModuleActions.php
        2010-02-02 23:30:45 UTC (rev 27460)
@@ -516,4 +516,17 @@
       
     $this->redirect('@'.$this->getDmModule()->getUnderscore());
   }
+
+  public function executeToggleBoolean(dmWebRequest $request)
+  {
+    $this->forward404Unless(
+      $this->getDmModule()->getTable()->hasField($field = 
$request->getParameter('field'))
+      && ($record = 
$this->getDmModule()->getTable()->find($request->getParameter('pk')))
+    );
+
+    $record->set($field, !$record->get($field));
+    $record->save();
+
+    return $this->renderText($record->$field ? '1' : '0');
+  }
 }
\ No newline at end of file

Modified: 
plugins/diemPlugin/trunk/dmAdminPlugin/lib/generator/dmAdminDoctrineGenerator.php
===================================================================
--- 
plugins/diemPlugin/trunk/dmAdminPlugin/lib/generator/dmAdminDoctrineGenerator.php
   2010-02-02 23:30:14 UTC (rev 27459)
+++ 
plugins/diemPlugin/trunk/dmAdminPlugin/lib/generator/dmAdminDoctrineGenerator.php
   2010-02-02 23:30:45 UTC (rev 27460)
@@ -37,14 +37,6 @@
 
       if ($localRelation = 
$this->table->getRelationHolder()->getLocalByColumnName($name))
       {
-//        if ($module = 
$this->moduleManager->getModuleByModel($localRelation->getClass()))
-//        {
-//          $label = $module->getName();
-//        }
-//        else
-//        {
-//          $label = dmString::humanize($localRelation->getAlias());
-//        }
         $label = dmString::humanize($localRelation->getAlias());
       }
       else
@@ -149,7 +141,7 @@
     }
     else if ('Boolean' == $field->getType())
     {
-      $html = "sprintf('<span class=\"s16block s16_%s\"></span>', ".$html." ? 
'tick' : 'cross');";
+      $html = "sprintf('<span class=\"s16block s16_%s {field: 
\'%s\'}\"></span>', ".$html." ? 'tick' : 'cross', '".$fieldName."')";
     }
     /*
      * Local Relation

Modified: plugins/diemPlugin/trunk/dmAdminPlugin/web/css/list.css
===================================================================
--- plugins/diemPlugin/trunk/dmAdminPlugin/web/css/list.css     2010-02-02 
23:30:14 UTC (rev 27459)
+++ plugins/diemPlugin/trunk/dmAdminPlugin/web/css/list.css     2010-02-02 
23:30:45 UTC (rev 27460)
@@ -124,6 +124,10 @@
   color: #222;
 }
 
+div.sf_admin_list td.sf_admin_boolean span {
+  cursor: pointer;
+}
+
 .dm_list_action_bar .sf_admin_actions {
 }
 

Modified: plugins/diemPlugin/trunk/dmAdminPlugin/web/js/dmAdminCtrl.js
===================================================================
--- plugins/diemPlugin/trunk/dmAdminPlugin/web/js/dmAdminCtrl.js        
2010-02-02 23:30:14 UTC (rev 27459)
+++ plugins/diemPlugin/trunk/dmAdminPlugin/web/js/dmAdminCtrl.js        
2010-02-02 23:30:45 UTC (rev 27460)
@@ -97,31 +97,46 @@
     {
       var self = this;
       
-      if ($searchInput = $('#dm_module_search_input').orNot()) 
+      if ($searchInput = $('#dm_module_search_input').orNot())
       {
         $searchInput.focus();
       }
       
-      $('input.sf_admin_list_batch_checkbox', self.$).each(function()
+      self.$.find('input.sf_admin_list_batch_checkbox').each(function()
       {
         $(this).click(function()
         {
-          $('input.sf_admin_batch_checkbox, 
input.sf_admin_list_batch_checkbox', self.$).attr('checked', 
$(this).attr('checked'));
+          self.$.find('input.sf_admin_batch_checkbox, 
input.sf_admin_list_batch_checkbox').attr('checked', $(this).attr('checked'));
         });
       });
       
-      $('input.sf_admin_batch_checkbox, input.sf_admin_list_batch_checkbox', 
self.$).change(function()
+      self.$.find('input.sf_admin_batch_checkbox, 
input.sf_admin_list_batch_checkbox').change(function()
       {
-        $('div.sf_admin_actions > input', self.$).attr('disabled', 
!$('input.sf_admin_batch_checkbox:checked', self.$).length);
+        self.$.find('div.sf_admin_actions > input').attr('disabled', 
!self.$.find('input.sf_admin_batch_checkbox:checked').length);
       });
       
-      $('select.dm_max_per_page', self.$).each(function()
+      self.$.find('select.dm_max_per_page').each(function()
       {
         $(this).change(function()
         {
           location.href = self.getHref('+/dmAdminGenerator/changeMaxPerPage') 
+ "?dm_module=" + self.options.module + "&max_per_page=" + $(this).val()
         });
       });
+
+      // toggle booleans
+      self.$.find('td.sf_admin_boolean span').click(function() {
+        $(this).toggleClass('s16_tick s16_cross');
+        $.ajax({
+          url:      self.$.find('tbody').metadata().toggle_url,
+          data:     {
+            field:  $(this).metadata().field,
+            pk:     $(this).parent().parent().metadata().pk
+          },
+          success:  function(data) {
+            $(this).toggleClass('s16_tick', '1' == 
data).toggleClass('s16_cross', '0' == data);
+          }
+        });
+      });
     },
     
     datePickers: function()

-- 
You received this message because you are subscribed to the Google Groups 
"symfony SVN" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/symfony-svn?hl=en.

Reply via email to