Author: ornicar2
Date: 2010-01-26 17:53:32 +0100 (Tue, 26 Jan 2010)
New Revision: 27197

Removed:
   plugins/diemPlugin/trunk/dmCorePlugin/data/sprites/
Modified:
   
plugins/diemPlugin/trunk/dmAdminPlugin/modules/dmInterface/actions/actions.class.php
   plugins/diemPlugin/trunk/dmCorePlugin/config/dm/widget_types.yml
   plugins/diemPlugin/trunk/dmCorePlugin/data/dm/i18n/en_fr.yml
   plugins/diemPlugin/trunk/dmCorePlugin/web/css/sprite16.css
   plugins/diemPlugin/trunk/dmCorePlugin/web/js/dmCorePageBar.js
   
plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/menu/dmWidgetNavigationMenuForm.php
   
plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/menu/dmWidgetNavigationMenuView.php
   
plugins/diemPlugin/trunk/dmFrontPlugin/modules/dmInterface/actions/actions.class.php
   
plugins/diemPlugin/trunk/dmFrontPlugin/modules/dmWidget/templates/forms/dmWidgetNavigationMenu.php
   plugins/diemPlugin/trunk/dmFrontPlugin/web/css/widgetForm/menu.css
   
plugins/diemPlugin/trunk/dmFrontPlugin/web/js/widgetForm/dmWidgetNavigationMenuForm.js
Log:
[Diem]
- added the navigation menu widget
- removed deprecated sprite config
- made pages panel use new async asset loading
- added french translations

Modified: 
plugins/diemPlugin/trunk/dmAdminPlugin/modules/dmInterface/actions/actions.class.php
===================================================================
--- 
plugins/diemPlugin/trunk/dmAdminPlugin/modules/dmInterface/actions/actions.class.php
        2010-01-26 15:56:46 UTC (rev 27196)
+++ 
plugins/diemPlugin/trunk/dmAdminPlugin/modules/dmInterface/actions/actions.class.php
        2010-01-26 16:53:32 UTC (rev 27197)
@@ -12,7 +12,7 @@
     return $this->renderAsync(array(
       'html'  => $tree->render(),
       'js'    => array('lib.tree-component', 'lib.tree-css')
-    ), false);
+    ), true);
   }
 
 }
\ No newline at end of file

Modified: plugins/diemPlugin/trunk/dmCorePlugin/config/dm/widget_types.yml
===================================================================
--- plugins/diemPlugin/trunk/dmCorePlugin/config/dm/widget_types.yml    
2010-01-26 15:56:46 UTC (rev 27196)
+++ plugins/diemPlugin/trunk/dmCorePlugin/config/dm/widget_types.yml    
2010-01-26 16:53:32 UTC (rev 27197)
@@ -26,8 +26,8 @@
   breadCrumb:
     cache:              true
 
-#  menu:
-#    cache:              true
+  menu:
+    cache:              true
     
 dmWidgetSearch:
     

Modified: plugins/diemPlugin/trunk/dmCorePlugin/data/dm/i18n/en_fr.yml
===================================================================
--- plugins/diemPlugin/trunk/dmCorePlugin/data/dm/i18n/en_fr.yml        
2010-01-26 15:56:46 UTC (rev 27196)
+++ plugins/diemPlugin/trunk/dmCorePlugin/data/dm/i18n/en_fr.yml        
2010-01-26 16:53:32 UTC (rev 27197)
@@ -397,4 +397,6 @@
 "Open %1% and add the line:": "Ouvrez %1% et ajoutez la ligne :"
 "Cut": "Couper"
 "Copy": "Copier"
-"Paste": "Coller"
\ No newline at end of file
+"Paste": "Coller"
+"Drag & drop links here from the left PAGE panel": "Glisser-déposer une page 
ici depuis le panneau PAGES"
+"Click to edit": "Cliquer pour modifier"
\ No newline at end of file

Modified: plugins/diemPlugin/trunk/dmCorePlugin/web/css/sprite16.css
===================================================================
--- plugins/diemPlugin/trunk/dmCorePlugin/web/css/sprite16.css  2010-01-26 
15:56:46 UTC (rev 27196)
+++ plugins/diemPlugin/trunk/dmCorePlugin/web/css/sprite16.css  2010-01-26 
16:53:32 UTC (rev 27197)
@@ -4,7 +4,7 @@
 .s16_clear{background-position:0 -48px;}
 .s16_layer{background-position:0 -64px;}
 .s16_alert{background-position:0 -80px;}
-.s16_error{background-position:0 -96px;}
+.s16_error{background-position:0 -96px !important;}
 .s16_first{background-position:0 -112px;}
 .s16_previous{background-position:0 -128px;}
 .s16_next{background-position:0 -144px;}

Modified: plugins/diemPlugin/trunk/dmCorePlugin/web/js/dmCorePageBar.js
===================================================================
--- plugins/diemPlugin/trunk/dmCorePlugin/web/js/dmCorePageBar.js       
2010-01-26 15:56:46 UTC (rev 27196)
+++ plugins/diemPlugin/trunk/dmCorePlugin/web/js/dmCorePageBar.js       
2010-01-26 16:53:32 UTC (rev 27197)
@@ -39,7 +39,7 @@
         url:      $.dm.ctrl.getHref('+/dmInterface/loadPageTree'),
         success:  function(html)
         {
-          $('#dm_page_tree').hide().html(html);
+          $('#dm_page_tree').hide().html(html).dmExtractEncodedAssets();
           pageBar.refresh();
           pageBar.element.unblock();
           setTimeout(function()

Modified: 
plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/menu/dmWidgetNavigationMenuForm.php
===================================================================
--- 
plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/menu/dmWidgetNavigationMenuForm.php
     2010-01-26 15:56:46 UTC (rev 27196)
+++ 
plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/menu/dmWidgetNavigationMenuForm.php
     2010-01-26 16:53:32 UTC (rev 27197)
@@ -5,12 +5,25 @@
 
   public function configure()
   {
+    $this->validatorSchema['link'] = new sfValidatorPass();
+    $this->validatorSchema['text'] = new sfValidatorPass();
+
     if (!$this->getDefault('items'))
     {
       $this->setDefault('items', array());
     }
     
     parent::configure();
+
+    $this->widgetSchema['ulClass']      = new sfWidgetFormInputText();
+    $this->validatorSchema['ulClass']   = new 
dmValidatorCssClasses(array('required' => false));
+
+    $this->widgetSchema['ulClass']->setLabel('UL CSS class');
+
+    $this->widgetSchema['liClass']      = new sfWidgetFormInputText();
+    $this->validatorSchema['liClass']   = new 
dmValidatorCssClasses(array('required' => false));
+
+    $this->widgetSchema['liClass']->setLabel('LI CSS class');
   }
 
   public function getStylesheets()
@@ -39,4 +52,22 @@
     ));
   }
 
+  public function getWidgetValues()
+  {
+    $values = parent::getWidgetValues();
+
+    $values['items'] = array();
+
+    foreach($values['link'] as $index => $link)
+    {
+      $values['items'][] = array(
+        'link'  => $values['link'][$index],
+        'text'  => $values['text'][$index]
+      );
+    }
+
+    unset($values['link'], $values['text']);
+
+    return $values;
+  }
 }
\ No newline at end of file

Modified: 
plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/menu/dmWidgetNavigationMenuView.php
===================================================================
--- 
plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/menu/dmWidgetNavigationMenuView.php
     2010-01-26 15:56:46 UTC (rev 27196)
+++ 
plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/menu/dmWidgetNavigationMenuView.php
     2010-01-26 16:53:32 UTC (rev 27197)
@@ -9,14 +9,34 @@
   {
     parent::configure();
     
-    $this->addRequiredVar('elements');
+    $this->addRequiredVar(array('items', 'ulClass', 'liClass'));
   }
+
+  protected function filterViewVars(array $vars = array())
+  {
+    $vars = parent::filterViewVars($vars);
+
+    $vars['menu'] = $this->getService('menu')
+    ->ulClass($vars['ulClass']);
+
+    foreach($vars['items'] as $index => $item)
+    {
+      $vars['menu']
+      ->addChild($index.'-'.dmString::slugify($item['text']), $item['link'])
+      ->label($item['text'])
+      ->liClass($vars['liClass']);
+    }
+
+    unset($vars['items'], $vars['liClass']);
+
+    return $vars;
+  }
   
   protected function doRender()
   {
     $vars = $this->getViewVars();
     
-    return '[menu]';
+    return $vars['menu']->render();
   }
 
 }
\ No newline at end of file

Modified: 
plugins/diemPlugin/trunk/dmFrontPlugin/modules/dmInterface/actions/actions.class.php
===================================================================
--- 
plugins/diemPlugin/trunk/dmFrontPlugin/modules/dmInterface/actions/actions.class.php
        2010-01-26 15:56:46 UTC (rev 27196)
+++ 
plugins/diemPlugin/trunk/dmFrontPlugin/modules/dmInterface/actions/actions.class.php
        2010-01-26 16:53:32 UTC (rev 27197)
@@ -12,7 +12,7 @@
     return $this->renderAsync(array(
       'html'  => $tree->render(),
       'js'    => array('lib.tree-component', 'lib.tree-css')
-    ));
+    ), true);
   }
 
   public function executeReloadAddMenu(dmWebRequest $request)

Modified: 
plugins/diemPlugin/trunk/dmFrontPlugin/modules/dmWidget/templates/forms/dmWidgetNavigationMenu.php
===================================================================
--- 
plugins/diemPlugin/trunk/dmFrontPlugin/modules/dmWidget/templates/forms/dmWidgetNavigationMenu.php
  2010-01-26 15:56:46 UTC (rev 27196)
+++ 
plugins/diemPlugin/trunk/dmFrontPlugin/modules/dmWidget/templates/forms/dmWidgetNavigationMenu.php
  2010-01-26 16:53:32 UTC (rev 27197)
@@ -14,14 +14,19 @@
 £('div#'.$baseTabId.'_items.drop_zone',
   £('ol.items_list', array('json' => array(
     'items' => $items,
-    'delete_message' => __('Remove this item')
+    'delete_message' => __('Remove'),
+    'text_message' => __('Text'),
+    'link_message' => __('Link'),
+    'click_message' => __('Click to edit')
   )), '').
   £('div.dm_help.no_margin', __('Drag & drop links here from the left PAGE 
panel'))
 ),
 
 £('div#'.$baseTabId.'_advanced',
   £('ul.dm_form_elements',
-    $form['cssClass']->renderRow()
+    $form['cssClass']->renderRow().
+    $form['ulClass']->renderRow().
+    $form['liClass']->renderRow()
   )
 ),
 

Modified: plugins/diemPlugin/trunk/dmFrontPlugin/web/css/widgetForm/menu.css
===================================================================
--- plugins/diemPlugin/trunk/dmFrontPlugin/web/css/widgetForm/menu.css  
2010-01-26 15:56:46 UTC (rev 27196)
+++ plugins/diemPlugin/trunk/dmFrontPlugin/web/css/widgetForm/menu.css  
2010-01-26 16:53:32 UTC (rev 27197)
@@ -9,56 +9,42 @@
 }
 
 div.dm_widget_navigation_menu_form li.item_element {
-  padding: 3px;
+  padding: 5px;
   border-bottom: 1px solid #D3D3D3;
-  height: 40px;
   position: relative;
+  cursor: move;
 }
 
-div.dm_widget_navigation_menu_form li.item_element .delete_item_element {
-       width: 9px;
-       height: 8px;
-       position: absolute;
-       top: 3px;
-       cursor: pointer;
-}
-
 div.dm_widget_navigation_menu_form li.item_element:hover {
   background: #F0F4FC;
 }
 
-div.dm_widget_navigation_menu_form li.item_element img {
-  position: absolute;
-  top: 3px;
-  left: 0;
-  cursor: move;
+div.dm_widget_navigation_menu_form a.item_text {
+  font-weight: bold;
+  cursor: pointer;
 }
 
-div.dm_widget_navigation_menu_form li.item_element .wrap {
-  margin: 2px 0 2px 110px;
+div.dm_widget_navigation_menu_form ul.item_form {
+  display: none;
 }
 
-div.dm_widget_navigation_menu_form li.item_element label {
+div.dm_widget_navigation_menu_form ul.item_form li {
+  margin: 2px 0;
+}
+
+div.dm_widget_navigation_menu_form ul.item_form li label {
   float: left;
-  width: 15%;
+  width: 25%;
+  margin-top: 1px;
 }
 
-div.dm_widget_navigation_menu_form li.item_element input {
+div.dm_widget_navigation_menu_form ul.item_form li input {
   border: 1px solid #FFF;
   background: none;
-  width: 78%
+  width: 70%
 }
 
-div.dm_widget_navigation_menu_form li.item_element input:hover,
-div.dm_widget_navigation_menu_form li.item_element input:active {
+div.dm_widget_navigation_menu_form ul.item_form li input:hover,
+div.dm_widget_navigation_menu_form ul.item_form li input:active {
   background: #FFF;
-}
-
-
-div.dm_widget_navigation_menu_form li.item_element input.droppable_active {
-  background: url(../../../dm/core/images/default_bg_yellow.png) repeat-x 
scroll 50% 50%;
-}
-
-div.dm_widget_navigation_menu_form li.item_element input.droppable_hover {
-  background: url(../../../dm/core/images/default_bg_green.png) repeat-x 
scroll 50% 50%;
 }
\ No newline at end of file

Modified: 
plugins/diemPlugin/trunk/dmFrontPlugin/web/js/widgetForm/dmWidgetNavigationMenuForm.js
===================================================================
--- 
plugins/diemPlugin/trunk/dmFrontPlugin/web/js/widgetForm/dmWidgetNavigationMenuForm.js
      2010-01-26 15:56:46 UTC (rev 27196)
+++ 
plugins/diemPlugin/trunk/dmFrontPlugin/web/js/widgetForm/dmWidgetNavigationMenuForm.js
      2010-01-26 16:53:32 UTC (rev 27197)
@@ -12,7 +12,7 @@
 
                $items = $form.find('.items_list'),
 
-         deleteMessage = $items.metadata().delete_message,
+    metadata = $items.metadata(),
 
     createItemElement = function(item)
     {
@@ -23,26 +23,42 @@
                        }, item);
 
                        var $li = $('<li class="item_element">')
-      .html(' \
-<input class="id" type="hidden" name="'+formName+'[link][]" 
value="'+item.link+'" /> \
-<input class="position" type="hidden" name="'+formName+'[item_position][]" 
value="'+item.position+'" /> \
-<div class="item_text">'+item.text+'</div> \
-<img src="'+$.dm.ctrl.options.dm_core_asset_root+'images/cross-small.png" 
class="delete_item_element" title="'+deleteMessage+'" />'
-      )
-      .block();
+      .html('\
+<a class="item_text" title="'+metadata.click_message+'">'+item.text+'</a> \
+<ul class="item_form"> \
+<li class="clearfix"><label>'+metadata.text_message+':</label><input 
class="text" type="text" name="'+formName+'[text][]" value="'+item.text+'" 
/></li> \
+<li class="clearfix"><label>'+metadata.link_message+':</label><input 
class="link" type="text" name="'+formName+'[link][]" value="'+item.link+'" 
/></li> \
+<li class="clearfix"><a class="remove">'+metadata.delete_message+' 
'+item.text+'</li> \
+</ul>'
+      );
 
       $items.append($li);
 
+      $li.find('a.item_text').click(function()
+      {
+        if (!$li.hasClass('dm_dragging'))
+        {
+          $li.find('ul.item_form').toggle(200);
+        }
+      })
+      .end()
+      .find('a.remove').click(function() {
+        if (confirm($(this).text()+' ?'))
+        {
+          $li.remove();
+        }
+      });
+
       self.dmFrontForm('linkDroppable');
       
       if ($items.hasClass('ui-sortable'))
       {
-        $items.sortable('refresh').trigger('resort');
+        $items.sortable('refresh');
       }
     };
 
                $.each($items.metadata().items, function() {
-                       createMediaElement(this);
+                       createItemElement(this);
                });
 
                $items.droppable({
@@ -52,7 +68,10 @@
       tolerance:    'touch',
       drop:         function(event, ui)
                        {
-                               createItemElement({link: 
'page:'+ui.draggable.attr('id').replace(/dmp/, '')});
+        createItemElement({
+          link: 'page:'+ui.draggable.attr('id').replace(/dmp/, ''),
+          text: ui.draggable.find('>a').text()
+        });
 
                                $items.attr('scrollTop', 999999);
       }
@@ -64,11 +83,13 @@
       tolerance:              'pointer',
       stop:                   function(e, ui) {
                                $(this).trigger('resort');
+      },
+      start:                  function(e, ui) {
+        ui.item.addClass('dm_dragging');
+      },
+      stop:                   function(e, ui) {
+        setTimeout(function() { ui.item.removeClass('dm_dragging'); }, 200);
       }
-               }).bind('resort', function() {
-      $('li.item_element', $items).each(function(index) {
-        $('input.position', $(this)).val(index);
-      });
                });
   }
 });
\ No newline at end of file

-- 
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