1
0
mirror of https://github.com/e107inc/e107.git synced 2025-04-21 21:21:54 +02:00

Issue: #2398 e_menu now supports tabs.

This commit is contained in:
Cameron 2017-02-13 18:05:55 -08:00
parent 53574a61e1
commit 4fa8e47247
3 changed files with 100 additions and 40 deletions

View File

@ -192,7 +192,7 @@ TEMPL;
var target = window.parent.$('#e-save-form').attr('action');
var data = window.parent.$('#e-save-form').serialize();
// alert(data);
// alert(data);
// alert(target);
$.post(target, data ,function(ret)
{

View File

@ -6223,7 +6223,7 @@ class e_form
}
$triggers = vartrue($fdata['triggers'], 'auto');
$triggers = (empty($fdata['triggers']) && $fdata['triggers'] !== false) ? 'auto' : $fdata['triggers']; // vartrue($fdata['triggers'], 'auto');
if(is_string($triggers) && 'auto' === $triggers)
{
$triggers = array();
@ -6238,42 +6238,45 @@ class e_form
$triggers['cancel'] = array(LAN_CANCEL, 'cancel');
}
foreach ($triggers as $trigger => $tdata)
if(!empty($triggers))
{
$text .= ($trigger == 'submit') ? "<div class=' btn-group'>" : "";
$text .= $this->admin_button('etrigger_'.$trigger, $tdata[1], $tdata[1], $tdata[0]);
if($trigger == 'submit' && $submitopt)
foreach ($triggers as $trigger => $tdata)
{
$text .=
'<button class="btn btn-success dropdown-toggle left" data-toggle="dropdown">
<span class="caret"></span>
</button>
<ul class="dropdown-menu col-selection">
<li class="dropdown-header nav-header">'.LAN_EFORM_016.'</li>
';
foreach($submitopt as $k=>$v)
$text .= ($trigger == 'submit') ? "<div class=' btn-group'>" : "";
$text .= $this->admin_button('etrigger_'.$trigger, $tdata[1], $tdata[1], $tdata[0]);
if($trigger == 'submit' && $submitopt)
{
$text .= "<li class='after-submit'>".$this->radio('__after_submit_action', $k, $selected == $k, "label=".$v)."</li>";
$text .=
'<button class="btn btn-success dropdown-toggle left" data-toggle="dropdown">
<span class="caret"></span>
</button>
<ul class="dropdown-menu col-selection">
<li class="dropdown-header nav-header">'.LAN_EFORM_016.'</li>
';
foreach($submitopt as $k=>$v)
{
$text .= "<li class='after-submit'>".$this->radio('__after_submit_action', $k, $selected == $k, "label=".$v)."</li>";
}
//$text .= '
// <li role="menuitem">
// <div class="options left" style="padding:5px">
// '.$this->radio_multi('__after_submit_action', $submitopt, $selected, true).'
// </div></li>';
$text .= '</ul>';
}
$text .= ($trigger == 'submit') ?"</div>" : "";
if(isset($tdata[2]))
{
$text .= $this->hidden($trigger.'_value', $tdata[2]);
}
//$text .= '
// <li role="menuitem">
// <div class="options left" style="padding:5px">
// '.$this->radio_multi('__after_submit_action', $submitopt, $selected, true).'
// </div></li>';
$text .= '</ul>';
}
$text .= ($trigger == 'submit') ?"</div>" : "";
if(isset($tdata[2]))
{
$text .= $this->hidden($trigger.'_value', $tdata[2]);
}
}

View File

@ -582,6 +582,43 @@ class e_menuManager {
return $link_class;
}
private function menuParamForm($id, $fields,$tabs, e_form $ui, $values=array())
{
$fields['menu_id'] = array('type'=>'hidden', 'writeParms'=>array('value'=>$id));
$fields['mode'] = array('type'=>'hidden', 'writeParms'=>array('value'=>'parms'));
$forms = $models = array();
$forms[] = array(
'id' => 'e-save',
'header' => '',
'footer' => '',
'url' => e_SELF,
'query' => "lay=".$this->curLayout,
'fieldsets' => array(
'create' => array(
'tabs' => $tabs, //used within a single form.
'legend' => '',
'fields' => $fields, //see e_admin_ui::$fields
'header' => '', //XXX Unused?
'footer' => '',
'after_submit_options' => '', // or true for default redirect options
'after_submit_default' => '', // or true for default redirect options
'triggers' => false, // standard create/update-cancel triggers
)
)
);
// $models[] = $controller->getModel();
$models[] = e107::getModel()->setData($values);
return $ui->renderCreateForm($forms, $models, e_AJAX_REQUEST);
}
/**
* This one will be greatly extended, allowing menus to offer UI and us
* settings per instance later ($parm variable available for menus - same as shortcode's $parm)
@ -596,10 +633,12 @@ class e_menuManager {
if(!$sql->select("menus", "*", "menu_id=".$id))
{
$this->menuAddMessage("Couldn't Load Menu",E_MESSAGE_ERROR);
return;
return null;
};
$row = $sql->fetch();
$text = "<div style='text-align:center;'>
<form id='e-save-form' method='post' action='".e_SELF."?lay=".$this->curLayout."'>
<fieldset id='core-menus-parametersform'>
@ -617,6 +656,9 @@ class e_menuManager {
$plug = rtrim($row['menu_path'],'/');
$obj = e107::getAddon($plug,'e_menu');
if(!is_object($obj))
{
$text .= "<tr><td colspan='2' class='alert alert-danger'>".e107::getParser()->lanVars(MENLAN_46, $plug)."</td></tr>";
@ -628,16 +670,27 @@ class e_menuManager {
$menuName = varset($menuName);
$fields = e107::callMethod($obj,'config',$menuName);
$tabs = isset($obj->tabs) ? $obj->tabs : array(LAN_CONFIGURE);
if(!$form = e107::getAddon($plug,'e_menu',$plug."_menu_form"))
{
$form = $frm;
}
$value = e107::unserialize($row['menu_parms']);
if(!empty($fields))
{
return $this->menuParamForm($id, $fields,$tabs,$form,$value);
/*
foreach($fields as $k=>$v)
{
$text .= "<tr><td class='text-left'>".$v['title']."</td>";
@ -654,16 +707,20 @@ class e_menuManager {
}
if(!empty($v['help']))
{
$v['writeParms']['title'] = e107::getParser()->toAttribute($v['help']);
}
$text .= "<td class='text-left'>".$form->renderElement($i, $value[$k], $v);
if(!empty($v['help']))
{
//$v['writeParms']['title'] = e107::getParser()->toAttribute($v['help']);
$text .= "<div class='field-help'>".$v['help']."</div>";
}
$text .= "</td></tr>";
}
}*/
}
else
{