forked from extern/egroupware
More Home progress (favorites):
- Put show header button into header - Fix mixing columns between multiple favorites on home - Fix changing column spacing when hiding header - Fix add favorite from context menu didn't load properly
This commit is contained in:
parent
baa7cbe38e
commit
dd0e95d232
@ -338,8 +338,13 @@ var et2_portlet = et2_valueWidget.extend(
|
||||
*/
|
||||
set_title: function(value)
|
||||
{
|
||||
this.header.contents()
|
||||
.filter(function() {
|
||||
return this.nodeType === 3;
|
||||
})
|
||||
.remove();
|
||||
this.options.title = value;
|
||||
this.header.html(value);
|
||||
this.header.append(value);
|
||||
},
|
||||
|
||||
/**
|
||||
|
@ -81,7 +81,7 @@ class home_favorite_portlet extends home_portlet
|
||||
if($this->favorite)
|
||||
{
|
||||
$this->nm_settings['favorite'] = $this->context['favorite'];
|
||||
$this->nm_settings['columnselection_pref'] = 'nextmatch-home';
|
||||
$this->nm_settings['columnselection_pref'] = "nextmatch-home.{$this->context['id']}";
|
||||
if(is_array($this->favorite['state']))
|
||||
{
|
||||
$this->nm_settings += $this->favorite['state'];
|
||||
@ -99,6 +99,7 @@ class home_favorite_portlet extends home_portlet
|
||||
$etemplate->set_dom_id($id);
|
||||
|
||||
$content = $this->context + array('nm' => $this->nm_settings);
|
||||
$content['header_node'] = "home-index_{$id}_header";
|
||||
$sel_options = $content['sel_options'] ? $content['sel_options'] : array();
|
||||
unset($content['sel_options']);
|
||||
$etemplate->setElementAttribute('nm', 'template',$this->nm_settings['template']);
|
||||
|
@ -85,18 +85,22 @@ class home_ui
|
||||
{
|
||||
$portlets = $this->get_portlet_list();
|
||||
$add_portlets = $portlets;
|
||||
foreach($add_portlets as $id => &$add)
|
||||
$change_for_add = function(&$add_portlets) use (&$change_for_add)
|
||||
{
|
||||
if(!$add['id'] && is_array($add['children']))
|
||||
foreach($add_portlets as $id => &$add)
|
||||
{
|
||||
foreach($add['children'] as $sub_id => &$sub_add)
|
||||
if(is_array($add['children']))
|
||||
{
|
||||
$sub_add['id'] = 'add_'.$sub_id;
|
||||
$change_for_add($add['children']);
|
||||
}
|
||||
if($id && !$add['children'])
|
||||
{
|
||||
$add['id'] = 'add_' . $id;
|
||||
$add['class'] = 'add_'.$id;
|
||||
}
|
||||
}
|
||||
$add['id'] = 'add_' . $id;
|
||||
$add['class'] = $id;
|
||||
}
|
||||
};
|
||||
$change_for_add($add_portlets);
|
||||
$actions = array(
|
||||
'add' => array(
|
||||
'type' => 'popup',
|
||||
|
@ -188,10 +188,10 @@ app.classes.home = AppJS.extend(
|
||||
}
|
||||
|
||||
var portlet = et2_createWidget('portlet',attrs, this.portlet_container);
|
||||
// Override content ID so etemplate loads
|
||||
portlet.content.attr('id', attrs.id);
|
||||
portlet.loadingFinished();
|
||||
|
||||
// Immediately add content ID so etemplate loads into the right place
|
||||
portlet.content.append('<div id="'+ attrs.id+'" class="et2_container"/>');
|
||||
// Get actual attributes & settings, since they're not available client side yet
|
||||
portlet._process_edit(et2_dialog.OK_BUTTON, attrs);
|
||||
|
||||
@ -233,8 +233,8 @@ app.classes.home = AppJS.extend(
|
||||
}
|
||||
|
||||
var portlet = et2_createWidget('portlet',attrs, this.portlet_container);
|
||||
// Override content ID so etemplate loads
|
||||
portlet.content.attr('id', attrs.id);
|
||||
// Immediately add content ID so etemplate loads into the right place
|
||||
portlet.content.append('<div id="'+ attrs.id+'" class="et2_container"/>');
|
||||
portlet.loadingFinished();
|
||||
|
||||
// Get actual attributes & settings, since they're not available client side yet
|
||||
@ -563,11 +563,10 @@ app.classes.home = AppJS.extend(
|
||||
// We operate on the DOM here, nm should be unaware of our fiddling
|
||||
var nm = widget.getParent().getWidgetById('nm');
|
||||
if(!nm) return;
|
||||
var header = nm.header;
|
||||
var header_height = header.div.innerHeight();
|
||||
|
||||
// Hide header
|
||||
nm.div.toggleClass('header_hidden');
|
||||
nm.set_hide_header(nm.div.hasClass('header_hidden'));
|
||||
nm.resize();
|
||||
}
|
||||
});
|
||||
|
@ -91,28 +91,37 @@
|
||||
}
|
||||
|
||||
/* Favorite / nextmatch
|
||||
* NB: No favorite sub-class added here, as they have an app-specific prefix
|
||||
* NB: using class attribute contains as favorites have an app-specific prefix
|
||||
*/
|
||||
.et2_portlet .et2_container > div > .et2_button {
|
||||
position:absolute;
|
||||
top: 0px;
|
||||
left: 100%;
|
||||
margin-left: -16px;
|
||||
margin-bottom: -16px;
|
||||
[class*="favorite_portlet"].et2_portlet .ui-widget-header > .et2_button {
|
||||
float: left;
|
||||
padding: 0px !important;
|
||||
margin-top: 3px;
|
||||
height: 12px;
|
||||
width: 12px;
|
||||
z-index: 50;
|
||||
}
|
||||
.et2_portlet .et2_container > div > button.et2_button_with_image.closed {
|
||||
[class*="favorite_portlet"].et2_portlet .ui-widget-header > button.et2_button_with_image.closed {
|
||||
background-position: 0 0 !important;
|
||||
}
|
||||
.et2_portlet .et2_container > div > button.et2_button_with_image.opened {
|
||||
[class*="favorite_portlet"].et2_portlet .ui-widget-header > button.et2_button_with_image.opened {
|
||||
background-position: -10px 0 !important;
|
||||
}
|
||||
.et2_portlet .et2_nextmatch.header_hidden {
|
||||
padding-top: 16px;
|
||||
|
||||
/* We can't just set display:none for the header as that changes the column spacing */
|
||||
[class*="favorite_portlet"].et2_portlet .et2_nextmatch.header_hidden {
|
||||
padding-top: 0px;
|
||||
}
|
||||
.et2_portlet .et2_nextmatch.header_hidden .egwGridView_outer thead:first-of-type {
|
||||
display: none;
|
||||
[class*="favorite_portlet"].et2_portlet .et2_nextmatch.header_hidden .egwGridView_outer thead:first-of-type th,
|
||||
[class*="favorite_portlet"].et2_portlet .et2_nextmatch.header_hidden .egwGridView_outer thead:first-of-type div.innerContainer,
|
||||
[class*="favorite_portlet"].et2_portlet .et2_nextmatch.header_hidden .egwGridView_outer thead:first-of-type th.optcol span.selectcols {
|
||||
height: 0px;
|
||||
padding-top: 0px;
|
||||
padding-bottom: 0px;
|
||||
margin-top: 0px;
|
||||
margin-bottom: 0px;
|
||||
line-height: 0px;
|
||||
}
|
||||
[class*="favorite_portlet"].et2_portlet .et2_nextmatch.header_hidden .egwGridView_outer thead:first-of-type th {
|
||||
visibility:hidden;
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
<!-- $Id$ -->
|
||||
<overlay>
|
||||
<template id="home.favorite" template="" lang="" group="0" version="1.9.001">
|
||||
<button id="header_toggle" background_image="true" image="egw_action/arrows" class="closed" onclick="app.home.nextmatch_toggle_header"/>
|
||||
<button id="header_toggle" background_image="true" image="egw_action/arrows" class="closed" onclick="app.home.nextmatch_toggle_header" parent_node="@header_node"/>
|
||||
<nextmatch id="nm" class="header_hidden" hide_header="true"/>
|
||||
</template>
|
||||
</overlay>
|
||||
|
Loading…
Reference in New Issue
Block a user