1
0
mirror of https://github.com/e107inc/e107.git synced 2025-07-31 03:40:37 +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 target = window.parent.$('#e-save-form').attr('action');
var data = window.parent.$('#e-save-form').serialize(); var data = window.parent.$('#e-save-form').serialize();
// alert(data); // alert(data);
// alert(target); // alert(target);
$.post(target, data ,function(ret) $.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) if(is_string($triggers) && 'auto' === $triggers)
{ {
$triggers = array(); $triggers = array();
@@ -6238,42 +6238,45 @@ class e_form
$triggers['cancel'] = array(LAN_CANCEL, 'cancel'); $triggers['cancel'] = array(LAN_CANCEL, 'cancel');
} }
foreach ($triggers as $trigger => $tdata) if(!empty($triggers))
{ {
$text .= ($trigger == 'submit') ? "<div class=' btn-group'>" : ""; foreach ($triggers as $trigger => $tdata)
$text .= $this->admin_button('etrigger_'.$trigger, $tdata[1], $tdata[1], $tdata[0]);
if($trigger == 'submit' && $submitopt)
{ {
$text .= ($trigger == 'submit') ? "<div class=' btn-group'>" : "";
$text .= $text .= $this->admin_button('etrigger_'.$trigger, $tdata[1], $tdata[1], $tdata[0]);
'<button class="btn btn-success dropdown-toggle left" data-toggle="dropdown">
<span class="caret"></span> if($trigger == 'submit' && $submitopt)
</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 .=
'<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; 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 * 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) * 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)) if(!$sql->select("menus", "*", "menu_id=".$id))
{ {
$this->menuAddMessage("Couldn't Load Menu",E_MESSAGE_ERROR); $this->menuAddMessage("Couldn't Load Menu",E_MESSAGE_ERROR);
return; return null;
}; };
$row = $sql->fetch(); $row = $sql->fetch();
$text = "<div style='text-align:center;'> $text = "<div style='text-align:center;'>
<form id='e-save-form' method='post' action='".e_SELF."?lay=".$this->curLayout."'> <form id='e-save-form' method='post' action='".e_SELF."?lay=".$this->curLayout."'>
<fieldset id='core-menus-parametersform'> <fieldset id='core-menus-parametersform'>
@@ -617,6 +656,9 @@ class e_menuManager {
$plug = rtrim($row['menu_path'],'/'); $plug = rtrim($row['menu_path'],'/');
$obj = e107::getAddon($plug,'e_menu'); $obj = e107::getAddon($plug,'e_menu');
if(!is_object($obj)) if(!is_object($obj))
{ {
$text .= "<tr><td colspan='2' class='alert alert-danger'>".e107::getParser()->lanVars(MENLAN_46, $plug)."</td></tr>"; $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); $menuName = varset($menuName);
$fields = e107::callMethod($obj,'config',$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")) if(!$form = e107::getAddon($plug,'e_menu',$plug."_menu_form"))
{ {
$form = $frm; $form = $frm;
} }
$value = e107::unserialize($row['menu_parms']); $value = e107::unserialize($row['menu_parms']);
if(!empty($fields)) if(!empty($fields))
{ {
return $this->menuParamForm($id, $fields,$tabs,$form,$value);
/*
foreach($fields as $k=>$v) foreach($fields as $k=>$v)
{ {
$text .= "<tr><td class='text-left'>".$v['title']."</td>"; $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); $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>"; $text .= "</td></tr>";
} }*/
} }
else else
{ {