filters in global list

This commit is contained in:
lutranf
2014-08-20 17:42:52 +02:00
parent 8e0d25842d
commit 5a4465403b
5 changed files with 52 additions and 18 deletions

View File

@@ -7,8 +7,8 @@
class Databap extends PhpObject
{
//Common Constants
const VERSION = '1.0.0-RC4'; //Versioning: <Main_Version>.<Enhancement_Package>.<Patch>-<Release_Candidate>
const VERSION_DATE = '31/07/2014';
const VERSION = '1.0.0-RC5'; //Versioning: <Main_Version>.<Enhancement_Package>.<Patch>-<Release_Candidate>
const VERSION_DATE = '20/08/2014';
const EXPECTED_PAGE_COOKIE = 'exp_page';
const MAIN_SEPARATOR = ' ';
const DATE_FORMAT = 'd/m/Y';
@@ -126,6 +126,11 @@ class Databap extends PhpObject
const ART_TYPE = 'a';
const DOC_TYPE = 'd';
const TABLE_TYPE = 't';
public static $TYPES = array( self::CODE_TYPE =>array('table' => self::CODE_TABLE, 'title' => 'Code'),
self::PROC_TYPE =>array('table' => self::PROC_TABLE, 'title' => 'Procédure'),
self::ART_TYPE =>array('table' => self::ART_TABLE, 'title' => 'Article'),
self::DOC_TYPE =>array('table' => self::DOC_TABLE, 'title' => 'Documentation'),
self::TABLE_TYPE=>array('table' => self::TABL_TABLE, 'title' => 'Table'));
public static $HASH_TO_PAGE = array(self::CODE_TYPE=>'code', 'code'=>'code',
self::PROC_TYPE=>'proc', 'proc'=>'proc', 'procedure'=>'proc',
self::TABLE_TYPE=>'table', 'table'=>'table',
@@ -265,16 +270,25 @@ class Databap extends PhpObject
return $asOptions;
}
//TODO @idea make getParam($sType, $sKey='')
private function getItemTables($sType='')
private function getTypeInfo($sInfo='', $sType='')
{
$asItemTables = array( self::CODE_TYPE=>self::CODE_TABLE,
self::PROC_TYPE=>self::PROC_TABLE,
self::ART_TYPE=>self::ART_TABLE,
self::DOC_TYPE=>self::DOC_TABLE,
self::TABLE_TYPE=>self::TABL_TABLE);
if($sType!='' && !array_key_exists($sType, $asItemTables)) $this->addError('Type "'.$sType.'" inconnu');
return $sType==''?$asItemTables:$asItemTables[$sType];
if($sType!='')
{
if($sType!='' && !array_key_exists($sType, self::$TYPES)) $this->addError('Type "'.$sType.'" inconnu');
else $asTypeInfo = array($sType=>self::$TYPES[$sType]);
}
else $asTypeInfo = self::$TYPES;
if($sInfo!='')
{
foreach($asTypeInfo as $sType => $asInfo)
{
if(!array_key_exists($sInfo, $asInfo)) $this->addError('Info "'.$sInfo.'" inconnue');
else $asTypeInfo[$sType] = $asInfo[$sInfo];
}
}
return $asTypeInfo;
}
private function getPageTitles($sPage='')
@@ -373,7 +387,8 @@ class Databap extends PhpObject
'pm_separator'=>self::PM_SEP,
'reboot_delay'=>self::REBOOT_DELAY,
'versionHtml'=>$this->getItemBlock(),
'opt_console_no'=>self::OPT_CONSOLE_NO);
'opt_console_no'=>self::OPT_CONSOLE_NO,
'types'=>$this->getTypeInfo('title'));
$oPage->setTag('constants', $this->jsonConvert($asConstants));
//Variables
@@ -700,7 +715,7 @@ class Databap extends PhpObject
public function buildCompleteIndex()
{
$this->oMySql->emptyTable(self::SEARCH_TABLE);
foreach($this->getItemTables() as $sSearchType=>$sSearchTable)
foreach($this->getTypeInfo('table') as $sSearchType=>$sSearchTable)
{
$asItemIds = $this->oMySql->selectRows(array('select'=>MySqlManager::getId($sSearchTable), 'from'=>$sSearchTable));
foreach($asItemIds as $iItemId) $this->oSearchEngine->buildIndex($iItemId, $sSearchType);
@@ -1333,7 +1348,7 @@ class Databap extends PhpObject
unset($asProfile['user']['clearance']);
//History Info
$asTables = $this->getItemTables();
$asTables = $this->getTypeInfo('table');
foreach($asTables as $sType=>$sTableName)
{
//Skip articles

2
jquery/common.js vendored
View File

@@ -36,7 +36,7 @@ $.prototype.addButton = function(sType, sTitle, oClickLink, sId, sButtonClass, s
.appendTo($This);
//Function
if(!bLink) $Button.click(function(e){e.preventDefault();oClickLink();});
if(!bLink) $Button.click(function(e){e.preventDefault(); oClickLink($(this));});
//TODO delete use of tmp out of databap class context
if(typeof sTmpVar != 'undefined') databap.tmp(sTmpVar, $Button);

View File

@@ -1,12 +1,26 @@
<div id="list">
<div id="list_container" class="standalone"></div>
<div id="filters_container" class=""></div>
<div id="list_box"><div id="list_container" class="standalone"></div></div>
</div>
<script type="text/javascript">
databap.pageInit = function()
{
self.initScrollBar('#main', '#list', '#list_container');
self.initScrollBar('#list', '#list_box', '#list_container');
var $FilterBox = $('#filters_container');
var $ListBox = self.getMainElem('#list_container');
//Filters
for(var i in self.consts.types)
{
var sTitle = self.consts.types[i];
$FilterBox.addButton(i, sTitle, function($This)
{
$ListBox.children().hide();
$ListBox.find('div[id^='+$This.attr('id')+']').show();
}, i);
}
//Liste
self.getInfo
(
'list',

View File

@@ -16,6 +16,7 @@
<li><i class="fa-li fa fa-c-checked"></i>Commande /invite X : invite X à rejoindre le chan ouvert (Cf. Clippy)</li>
<li><i class="fa-li fa fa-c-checked"></i>Commande /news X : Vous annoncez le message X (votre message est ajouté à la liste des news automatiquement)</li>
<li><i class="fa-li fa fa-c-checked"></i>Le blog <a href="http://scn.sap.com/community/bw-hana/blog" target="_blank">SAP BW on HANA</a> a été ajouté à la liste des blogs parsés</li>
<li><i class="fa-li fa fa-c-checked"></i>Des filtres peuvent être appliqués à la liste complète des documents</li>
</ul>
</li>
<li><i class="fa-li fa fa-30 fa-c-wip"></i>In progress

View File

@@ -2404,6 +2404,10 @@ vertical-align 0% -5% -10% -15% -20% -25% -30%
/* List */
#filters_container {
margin-bottom:10px;
}
#list_container div:FIRST-CHILD {
margin-top:0;
}