Development

Changeset 27197

You must first sign up to be able to contribute.

Changeset 27197

Show
Ignore:
Timestamp:
01/26/10 17:53:32 (3 years ago)
Author:
ornicar2
Message:

[Diem]
- added the navigation menu widget
- removed deprecated sprite config
- made pages panel use new async asset loading
- added french translations

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • plugins/diemPlugin/trunk/dmAdminPlugin/modules/dmInterface/actions/actions.class.php

    r27036 r27197  
    1313      'html'  => $tree->render(), 
    1414      'js'    => array('lib.tree-component', 'lib.tree-css') 
    15     ), false); 
     15    ), true); 
    1616  } 
    1717 
  • plugins/diemPlugin/trunk/dmCorePlugin/config/dm/widget_types.yml

    r27194 r27197  
    2727    cache:              true 
    2828 
    29 #  menu: 
    30 #    cache:              true 
     29  menu: 
     30    cache:              true 
    3131     
    3232dmWidgetSearch: 
  • plugins/diemPlugin/trunk/dmCorePlugin/data/dm/i18n/en_fr.yml

    r26386 r27197  
    399399"Copy": "Copier" 
    400400"Paste": "Coller" 
     401"Drag & drop links here from the left PAGE panel": "Glisser-déposer une page ici depuis le panneau PAGES" 
     402"Click to edit": "Cliquer pour modifier" 
  • plugins/diemPlugin/trunk/dmCorePlugin/web/css/sprite16.css

    r26386 r27197  
    55.s16_layer{background-position:0 -64px;} 
    66.s16_alert{background-position:0 -80px;} 
    7 .s16_error{background-position:0 -96px;} 
     7.s16_error{background-position:0 -96px !important;} 
    88.s16_first{background-position:0 -112px;} 
    99.s16_previous{background-position:0 -128px;} 
  • plugins/diemPlugin/trunk/dmCorePlugin/web/js/dmCorePageBar.js

    r26816 r27197  
    4040        success:  function(html) 
    4141        { 
    42           $('#dm_page_tree').hide().html(html)
     42          $('#dm_page_tree').hide().html(html).dmExtractEncodedAssets()
    4343          pageBar.refresh(); 
    4444          pageBar.element.unblock(); 
  • plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/menu/dmWidgetNavigationMenuForm.php

    r27194 r27197  
    66  public function configure() 
    77  { 
     8    $this->validatorSchema['link'] = new sfValidatorPass(); 
     9    $this->validatorSchema['text'] = new sfValidatorPass(); 
     10 
    811    if (!$this->getDefault('items')) 
    912    { 
     
    1215     
    1316    parent::configure(); 
     17 
     18    $this->widgetSchema['ulClass']      = new sfWidgetFormInputText(); 
     19    $this->validatorSchema['ulClass']   = new dmValidatorCssClasses(array('required' => false)); 
     20 
     21    $this->widgetSchema['ulClass']->setLabel('UL CSS class'); 
     22 
     23    $this->widgetSchema['liClass']      = new sfWidgetFormInputText(); 
     24    $this->validatorSchema['liClass']   = new dmValidatorCssClasses(array('required' => false)); 
     25 
     26    $this->widgetSchema['liClass']->setLabel('LI CSS class'); 
    1427  } 
    1528 
     
    4053  } 
    4154 
     55  public function getWidgetValues() 
     56  { 
     57    $values = parent::getWidgetValues(); 
     58 
     59    $values['items'] = array(); 
     60 
     61    foreach($values['link'] as $index => $link) 
     62    { 
     63      $values['items'][] = array( 
     64        'link'  => $values['link'][$index], 
     65        'text'  => $values['text'][$index] 
     66      ); 
     67    } 
     68 
     69    unset($values['link'], $values['text']); 
     70 
     71    return $values; 
     72  } 
    4273} 
  • plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/menu/dmWidgetNavigationMenuView.php

    r27079 r27197  
    1010    parent::configure(); 
    1111     
    12     $this->addRequiredVar('elements'); 
     12    $this->addRequiredVar(array('items', 'ulClass', 'liClass')); 
     13  } 
     14 
     15  protected function filterViewVars(array $vars = array()) 
     16  { 
     17    $vars = parent::filterViewVars($vars); 
     18 
     19    $vars['menu'] = $this->getService('menu') 
     20    ->ulClass($vars['ulClass']); 
     21 
     22    foreach($vars['items'] as $index => $item) 
     23    { 
     24      $vars['menu'] 
     25      ->addChild($index.'-'.dmString::slugify($item['text']), $item['link']) 
     26      ->label($item['text']) 
     27      ->liClass($vars['liClass']); 
     28    } 
     29 
     30    unset($vars['items'], $vars['liClass']); 
     31 
     32    return $vars; 
    1333  } 
    1434   
     
    1737    $vars = $this->getViewVars(); 
    1838     
    19     return '[menu]'
     39    return $vars['menu']->render()
    2040  } 
    2141 
  • plugins/diemPlugin/trunk/dmFrontPlugin/modules/dmInterface/actions/actions.class.php

    r26729 r27197  
    1313      'html'  => $tree->render(), 
    1414      'js'    => array('lib.tree-component', 'lib.tree-css') 
    15     )); 
     15    ), true); 
    1616  } 
    1717 
  • plugins/diemPlugin/trunk/dmFrontPlugin/modules/dmWidget/templates/forms/dmWidgetNavigationMenu.php

    r27194 r27197  
    1515  £('ol.items_list', array('json' => array( 
    1616    'items' => $items, 
    17     'delete_message' => __('Remove this item') 
     17    'delete_message' => __('Remove'), 
     18    'text_message' => __('Text'), 
     19    'link_message' => __('Link'), 
     20    'click_message' => __('Click to edit') 
    1821  )), ''). 
    1922  £('div.dm_help.no_margin', __('Drag & drop links here from the left PAGE panel')) 
     
    2225£('div#'.$baseTabId.'_advanced', 
    2326  £('ul.dm_form_elements', 
    24     $form['cssClass']->renderRow() 
     27    $form['cssClass']->renderRow(). 
     28    $form['ulClass']->renderRow(). 
     29    $form['liClass']->renderRow() 
    2530  ) 
    2631), 
  • plugins/diemPlugin/trunk/dmFrontPlugin/web/css/widgetForm/menu.css

    r27194 r27197  
    1010 
    1111div.dm_widget_navigation_menu_form li.item_element { 
    12   padding: 3px; 
     12  padding: 5px; 
    1313  border-bottom: 1px solid #D3D3D3; 
    14   height: 40px; 
    1514  position: relative; 
    16 
    17  
    18 div.dm_widget_navigation_menu_form li.item_element .delete_item_element { 
    19   width: 9px; 
    20   height: 8px; 
    21   position: absolute; 
    22   top: 3px; 
    23   cursor: pointer; 
     15  cursor: move; 
    2416} 
    2517 
     
    2820} 
    2921 
    30 div.dm_widget_navigation_menu_form li.item_element img { 
    31   position: absolute; 
    32   top: 3px; 
    33   left: 0; 
    34   cursor: move; 
     22div.dm_widget_navigation_menu_form a.item_text { 
     23  font-weight: bold; 
     24  cursor: pointer; 
    3525} 
    3626 
    37 div.dm_widget_navigation_menu_form li.item_element .wrap
    38   margin: 2px 0 2px 110px
     27div.dm_widget_navigation_menu_form ul.item_form
     28  display: none
    3929} 
    4030 
    41 div.dm_widget_navigation_menu_form li.item_element label { 
    42   float: left; 
    43   width: 15%; 
     31div.dm_widget_navigation_menu_form ul.item_form li { 
     32  margin: 2px 0; 
    4433} 
    4534 
    46 div.dm_widget_navigation_menu_form li.item_element input { 
     35div.dm_widget_navigation_menu_form ul.item_form li label { 
     36  float: left; 
     37  width: 25%; 
     38  margin-top: 1px; 
     39
     40 
     41div.dm_widget_navigation_menu_form ul.item_form li input { 
    4742  border: 1px solid #FFF; 
    4843  background: none; 
    49   width: 78
     44  width: 70
    5045} 
    5146 
    52 div.dm_widget_navigation_menu_form li.item_element input:hover, 
    53 div.dm_widget_navigation_menu_form li.item_element input:active { 
     47div.dm_widget_navigation_menu_form ul.item_form li input:hover, 
     48div.dm_widget_navigation_menu_form ul.item_form li input:active { 
    5449  background: #FFF; 
    5550} 
    56  
    57  
    58 div.dm_widget_navigation_menu_form li.item_element input.droppable_active { 
    59   background: url(../../../dm/core/images/default_bg_yellow.png) repeat-x scroll 50% 50%; 
    60 } 
    61  
    62 div.dm_widget_navigation_menu_form li.item_element input.droppable_hover { 
    63   background: url(../../../dm/core/images/default_bg_green.png) repeat-x scroll 50% 50%; 
    64 } 
  • plugins/diemPlugin/trunk/dmFrontPlugin/web/js/widgetForm/dmWidgetNavigationMenuForm.js

    r27194 r27197  
    1313    $items = $form.find('.items_list'), 
    1414 
    15    deleteMessage = $items.metadata().delete_message
     15    metadata = $items.metadata()
    1616 
    1717    createItemElement = function(item) 
     
    2424 
    2525      var $li = $('<li class="item_element">') 
    26       .html(' \ 
    27 <input class="id" type="hidden" name="'+formName+'[link][]" value="'+item.link+'" /> \ 
    28 <input class="position" type="hidden" name="'+formName+'[item_position][]" value="'+item.position+'" /> \ 
    29 <div class="item_text">'+item.text+'</div> \ 
    30 <img src="'+$.dm.ctrl.options.dm_core_asset_root+'images/cross-small.png" class="delete_item_element" title="'+deleteMessage+'" />' 
    31       ) 
    32       .block(); 
     26      .html('\ 
     27<a class="item_text" title="'+metadata.click_message+'">'+item.text+'</a> \ 
     28<ul class="item_form"> \ 
     29<li class="clearfix"><label>'+metadata.text_message+':</label><input class="text" type="text" name="'+formName+'[text][]" value="'+item.text+'" /></li> \ 
     30<li class="clearfix"><label>'+metadata.link_message+':</label><input class="link" type="text" name="'+formName+'[link][]" value="'+item.link+'" /></li> \ 
     31<li class="clearfix"><a class="remove">'+metadata.delete_message+' '+item.text+'</li> \ 
     32</ul>' 
     33      ); 
    3334 
    3435      $items.append($li); 
     36 
     37      $li.find('a.item_text').click(function() 
     38      { 
     39        if (!$li.hasClass('dm_dragging')) 
     40        { 
     41          $li.find('ul.item_form').toggle(200); 
     42        } 
     43      }) 
     44      .end() 
     45      .find('a.remove').click(function() { 
     46        if (confirm($(this).text()+' ?')) 
     47        { 
     48          $li.remove(); 
     49        } 
     50      }); 
    3551 
    3652      self.dmFrontForm('linkDroppable'); 
     
    3854      if ($items.hasClass('ui-sortable')) 
    3955      { 
    40         $items.sortable('refresh').trigger('resort')
     56        $items.sortable('refresh')
    4157      } 
    4258    }; 
    4359 
    4460    $.each($items.metadata().items, function() { 
    45       createMediaElement(this); 
     61      createItemElement(this); 
    4662    }); 
    4763 
     
    5369      drop:         function(event, ui) 
    5470      { 
    55         createItemElement({link: 'page:'+ui.draggable.attr('id').replace(/dmp/, '')}); 
     71        createItemElement({ 
     72          link: 'page:'+ui.draggable.attr('id').replace(/dmp/, ''), 
     73          text: ui.draggable.find('>a').text() 
     74        }); 
    5675 
    5776        $items.attr('scrollTop', 999999); 
     
    6584      stop:                   function(e, ui) { 
    6685        $(this).trigger('resort'); 
     86      }, 
     87      start:                  function(e, ui) { 
     88        ui.item.addClass('dm_dragging'); 
     89      }, 
     90      stop:                   function(e, ui) { 
     91        setTimeout(function() { ui.item.removeClass('dm_dragging'); }, 200); 
    6792      } 
    68     }).bind('resort', function() { 
    69       $('li.item_element', $items).each(function(index) { 
    70         $('input.position', $(this)).val(index); 
    71       }); 
    7293    }); 
    7394  }