Merge branch '3.8'

This commit is contained in:
Romain Neutron
2013-09-18 12:09:20 +02:00
26 changed files with 224 additions and 115 deletions

View File

@@ -606,6 +606,14 @@ class Application extends SilexApplication
$twig->addFilter('formatOctets', new \Twig_Filter_Function('p4string::format_octets')); $twig->addFilter('formatOctets', new \Twig_Filter_Function('p4string::format_octets'));
$twig->addFilter('base_from_coll', new \Twig_Filter_Function('phrasea::baseFromColl')); $twig->addFilter('base_from_coll', new \Twig_Filter_Function('phrasea::baseFromColl'));
$twig->addFilter('AppName', new \Twig_Filter_Function('Alchemy\Phrasea\Controller\Admin\ConnectedUsers::appName')); $twig->addFilter('AppName', new \Twig_Filter_Function('Alchemy\Phrasea\Controller\Admin\ConnectedUsers::appName'));
$twig->addFilter(new \Twig_SimpleFilter('escapeSimpleQuote', function ($value) {
$ret = str_replace("'", "\'", $value);
return $ret;
}));
$twig->addFilter(new \Twig_SimpleFilter('escapeDoubleQuote', function ($value) {
return str_replace('"', '\"', $value);
}));
return $twig; return $twig;
}) })

View File

@@ -31,7 +31,13 @@ return call_user_func(function($environment = PhraseaApplication::ENV_PROD) {
$app->before(function (Request $request) use ($app) { $app->before(function (Request $request) use ($app) {
if (0 === strpos($request->getPathInfo(), '/setup')) { if (0 === strpos($request->getPathInfo(), '/setup')) {
if (!$app['phraseanet.configuration-tester']->isBlank()) { if (!$app['phraseanet.configuration-tester']->isInstalled()) {
if (!$app['phraseanet.configuration-tester']->isBlank()) {
if ('setup_upgrade_instructions' !== $app['request']->attributes->get('_route')) {
return $app->redirectPath('setup_upgrade_instructions');
}
}
} elseif (!$app['phraseanet.configuration-tester']->isBlank()) {
return $app->redirectPath('homepage'); return $app->redirectPath('homepage');
} }
} else { } else {

View File

@@ -38,7 +38,7 @@ class ComposerInstall extends Command
$composer->command('self-update'); $composer->command('self-update');
$output->writeln("<comment>OK</comment>"); $output->writeln("<comment>OK</comment>");
$commands = array('install', '--optimize-autoloader'); $commands = array('install', '--optimize-autoloader', '--quiet', '--no-interaction');
if ($input->getOption('prefer-source')) { if ($input->getOption('prefer-source')) {
$commands[] = '--prefer-source'; $commands[] = '--prefer-source';
} }

View File

@@ -1163,7 +1163,7 @@ class Collection implements ControllerProviderInterface
if ($vi && isset($structFields[$ki])) { if ($vi && isset($structFields[$ki])) {
foreach ($vi->value as $oneValue) { foreach ($vi->value as $oneValue) {
$suggestedValues[] = array( $suggestedValues[] = array(
'key' => $ki, 'value' => $f, 'name' => $oneValue 'key' => $ki, 'value' => $f, 'name' => (string) $oneValue
); );
$f++; $f++;
} }

View File

@@ -37,6 +37,9 @@ class Setup implements ControllerProviderInterface
$controllers->get('/installer/', 'controller.setup:rootInstaller') $controllers->get('/installer/', 'controller.setup:rootInstaller')
->bind('install_root'); ->bind('install_root');
$controllers->get('/upgrade-instructions/', 'controller.setup:displayUpgradeInstructions')
->bind('setup_upgrade_instructions');
$controllers->get('/installer/step2/', 'controller.setup:getInstallForm') $controllers->get('/installer/step2/', 'controller.setup:getInstallForm')
->bind('install_step2'); ->bind('install_step2');
@@ -70,6 +73,14 @@ class Setup implements ControllerProviderInterface
); );
} }
public function displayUpgradeInstructions(Application $app, Request $request)
{
return $app['twig']->render('/setup/upgrade-instructions.html.twig', array(
'locale' => $app['locale'],
'available_locales' => Application::getAvailableLanguages(),
));
}
public function getInstallForm(Application $app, Request $request) public function getInstallForm(Application $app, Request $request)
{ {
$warnings = array(); $warnings = array();

View File

@@ -44,7 +44,6 @@ class ConfigurationPanel extends AbstractConfigurationPanel
$params = array( $params = array(
'configuration' => $configuration, 'configuration' => $configuration,
'date_fields' => $this->getAvailableDateFields($app['phraseanet.appbox']->get_databoxes()),
'available_sort'=> $this->searchEngine->getAvailableSort(), 'available_sort'=> $this->searchEngine->getAvailableSort(),
); );
@@ -64,6 +63,7 @@ class ConfigurationPanel extends AbstractConfigurationPanel
} }
$configuration['default_sort'] = $request->request->get('default_sort'); $configuration['default_sort'] = $request->request->get('default_sort');
$configuration['stemming_enabled'] = (int) (Boolean) $request->request->get('stemming_enabled');
$this->saveConfiguration($configuration); $this->saveConfiguration($configuration);
@@ -89,6 +89,10 @@ class ConfigurationPanel extends AbstractConfigurationPanel
$configuration['default_sort'] = null; $configuration['default_sort'] = null;
} }
if (!isset($configuration['stemming_enabled'])) {
$configuration['stemming_enabled'] = false;
}
return $configuration; return $configuration;
} }
} }

View File

@@ -118,6 +118,16 @@ class PhraseaEngine implements SearchEngineInterface
return $sort; return $sort;
} }
/**
* {@inheritdoc}
*/
public function isStemmingEnabled()
{
$configuration = $this->getConfiguration();
return (Boolean) $configuration['stemming_enabled'];
}
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */

View File

@@ -59,6 +59,11 @@ interface SearchEngineInterface
*/ */
public function getDefaultSort(); public function getDefaultSort();
/**
* @return string The default sort
*/
public function isStemmingEnabled();
/** /**
* @return array an array containing sort order values as key and sort order names as value * @return array an array containing sort order values as key and sort order names as value
*/ */

View File

@@ -110,6 +110,14 @@ class SphinxSearchEngine implements SearchEngineInterface
return 'relevance'; return 'relevance';
} }
/**
* {@inheritdoc}
*/
public function isStemmingEnabled()
{
return true;
}
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */

View File

@@ -400,7 +400,7 @@ class API_V1_adapter extends API_V1_Abstract
'active' => $app['phraseanet.registry']->get('GV_client_navigator'), 'active' => $app['phraseanet.registry']->get('GV_client_navigator'),
), ),
'office-plugin' => array( 'office-plugin' => array(
'active' => $registry->get('GV_client_navigator'), 'active' => $app['phraseanet.registry']->get('GV_client_navigator'),
), ),
'homepage' => array( 'homepage' => array(
'viewType' => $app['phraseanet.registry']->get('GV_home_publi'), 'viewType' => $app['phraseanet.registry']->get('GV_home_publi'),

View File

@@ -54,7 +54,7 @@ class module_report_dashboard implements module_report_dashboard_componentInterf
* @desc la periode par defaut d'affichage du dashboard * @desc la periode par defaut d'affichage du dashboard
* @var <string> * @var <string>
*/ */
public $periode = '-1 month'; public $periode = '-5 days';
/** /**
* @desc le sbasid de la base ou on effectue le report * @desc le sbasid de la base ou on effectue le report
@@ -168,7 +168,7 @@ class module_report_dashboard implements module_report_dashboard_componentInterf
{ {
return $this->dashboard; return $this->dashboard;
} }
/** /**
* @desc construct the legend for charts * @desc construct the legend for charts
* if dmax === false dmax = now(); * if dmax === false dmax = now();
@@ -276,7 +276,7 @@ class module_report_dashboard implements module_report_dashboard_componentInterf
$listeColl[] = (int) $value['coll_id']; $listeColl[] = (int) $value['coll_id'];
} }
$this->authorizedCollection[] = array( $this->authorizedCollection[(int) $sbas] = array(
'sbas_id' => (int) $sbas, 'sbas_id' => (int) $sbas,
'coll' => implode(',', $listeColl), 'coll' => implode(',', $listeColl),
'name' => phrasea::sbas_labels($sbas, $this->app) 'name' => phrasea::sbas_labels($sbas, $this->app)

View File

@@ -1163,11 +1163,7 @@ class record_adapter implements record_Interface, cache_cacheableInterface
*/ */
public function reindex() public function reindex()
{ {
$connbas = connection::getPDOConnection($this->app, $this->get_sbas_id()); $this->app['phraseanet.SE']->updateRecord($this);
$sql = 'UPDATE record SET status=(status & ~7 | 4)
WHERE record_id= :record_id';
$stmt = $connbas->prepare($sql);
$stmt->execute(array(':record_id' => $this->record_id));
$this->delete_data_from_cache(self::CACHE_STATUS); $this->delete_data_from_cache(self::CACHE_STATUS);
return $this; return $this;

View File

@@ -117,7 +117,7 @@
</div> </div>
<div id="divXml" style="display:none"> <div id="divXml" style="display:none">
<textarea nowrap id="txtareaxml" onchange="chgXml();" style=" width:99%;height:380px;white-space:pre" >{{ collection.get_prefs() }}</textarea> <textarea nowrap id="txtareaxml" onchange="chgXml();" style=" width:99%;height:380px;white-space:pre" >{{ collection.get_prefs() | raw }}</textarea>
</div> </div>
</td> </td>
</tr> </tr>
@@ -135,7 +135,7 @@
</table> </table>
<form method="post" name="chgStructure" action="{{ path('admin_collection_display_suggested_values', { 'bas_id' : app['request'].attributes.get('bas_id') }) }}" onsubmit="return(false);" target="right" style="visibility:hidden;"> <form method="post" name="chgStructure" action="{{ path('admin_collection_display_suggested_values', { 'bas_id' : app['request'].attributes.get('bas_id') }) }}" onsubmit="return(false);" target="right" style="visibility:hidden;">
<textarea nowrap style="visibility:hidden;white-space:pre" name="str" id="idstr">{{ collection.get_prefs() }}</textarea> <textarea nowrap style="visibility:hidden;white-space:pre" name="str" id="idstr">{{ collection.get_prefs() | raw }}</textarea>
</form> </form>
<script type="text/javascript"> <script type="text/javascript">
@@ -174,26 +174,6 @@
tableLeft.scrollTop(theTable.scrollTop()); tableLeft.scrollTop(theTable.scrollTop());
} }
/*function addEvent(obj, evType, fn, useCapture)
{
if (obj.addEventListener)
{
obj.addEventListener(evType, fn, useCapture);
return true;
}
else
{
if (obj.attachEvent) {
var r = obj.attachEvent("on"+evType, fn);
return r;
} else {
alert("Handler could not be attached");
}
}
}*/
/* Chargement de tt les elements dans un tableau pour un acces plus rapide */ /* Chargement de tt les elements dans un tableau pour un acces plus rapide */
function scandom(node, depth) function scandom(node, depth)
{ {
@@ -432,7 +412,7 @@ function write_valsug()
for (i=0; i<pref[o.val()].valsug.length; i++) for (i=0; i<pref[o.val()].valsug.length; i++)
{ {
if (pref[o.val()].valsug[i]) { if (pref[o.val()].valsug[i]) {
x = p.options[p.options.length] = new Option(unescape(pref[o.val()].valsug[i]), pref[o.val()].valsug[i]); x = p.options[p.options.length] = new Option((pref[o.val()].valsug[i]), pref[o.val()].valsug[i]);
} }
} }
} }
@@ -576,7 +556,7 @@ function ajouter()
o = $("#nomchamPH"); o = $("#nomchamPH");
// pref[o.value].valsug.push( UtEncode(o2.value) ); // pref[o.value].valsug.push( UtEncode(o2.value) );
// pref[o.value].valsug[pref[o.value].valsug.length]= UtEncode(o2.value); // pref[o.value].valsug[pref[o.value].valsug.length]= UtEncode(o2.value);
pref[o.val()].valsug[pref[o.val()].valsug.length]= escape(o2.val()); pref[o.val()].valsug[pref[o.val()].valsug.length]= (o2.val());
o2.val(""); o2.val("");
} }
@@ -815,7 +795,7 @@ pref["{{ name }}"].empty = true;
{% for value in suggestedValues %} {% for value in suggestedValues %}
pref["{{ value['key'] }}"].valsug["{{ value['value'] }}"] = unescape('{{ value['name'] }}'); pref["{{ value['key']|escapeDoubleQuote|raw }}"].valsug["{{ value['value']|escapeDoubleQuote|raw }}"] = ('{{ value['name']|escapeSimpleQuote|raw }}');
{% endfor %} {% endfor %}
@@ -829,44 +809,64 @@ pref["{{ value['key'] }}"].valsug["{{ value['value'] }}"] = unescape('{{ value['
function getSruct() function getSruct()
{ {
var lexmlstruct = '<'+ '?xml version="1.0" encoding="UTF-8"?'+'>\n<baseprefs>\n'; var dom = document.implementation.createDocument(null, 'baseprefs');
lexmlstruct += "\t" + statuscoll+"\n"; var values = dom.createElement('sugestedValues');
if(otherFields!="") {
lexmlstruct += "\t" + otherFields+"\n";
}
lexmlstruct +='\t<sugestedValues>\n';
for (a in pref ) { for (a in pref ) {
lexmlstruct2 = ""; var section = dom.createElement(a);
var go = false;
for (b in pref[a].valsug ) { for (b in pref[a].valsug ) {
// rempl
var reg=new RegExp("&", "g");
var reg2=new RegExp("<", "g");
var reg3=new RegExp(">", "g");
pref[a].valsug[b] = unescape(pref[a].valsug[b]).replace(reg,"&amp;");
pref[a].valsug[b] = pref[a].valsug[b].replace(reg2,"&lt;");
pref[a].valsug[b] = pref[a].valsug[b].replace(reg3,"&gt;");
if(pref[a].valsug[b]!="") { if(pref[a].valsug[b]!="") {
lexmlstruct2 += '\t\t\t<value>'+ unescape(pref[a].valsug[b]).replace(reg,"&amp;") + '</value>\n'; go = true;
var value = dom.createElement('value');
value.appendChild(dom.createTextNode(pref[a].valsug[b]));
section.appendChild(value);
} }
} }
if (go) {
if(lexmlstruct2 != "") { values.appendChild(section);
lexmlstruct += '\t\t<' + a + '>\n';
lexmlstruct += lexmlstruct2;
lexmlstruct += '\t\t</' + a + '>\n';
} }
} }
dom.getElementsByTagName('baseprefs')[0].appendChild(values);
lexmlstruct += '\t</sugestedValues>\n'; var serializer = new XMLSerializer();
lexmlstruct += '</baseprefs>'; var xml = '<?xml version="1.0" encoding="UTF-8"?>' + serializer.serializeToString(dom);
return(lexmlstruct); xml.replace('<sugestedValues>', statuscoll + otherFields + '<sugestedValues>');
return formatXml(xml);
}
function formatXml(xml) {
var formatted = '';
var reg = /(>)(<)(\/*)/g;
xml = xml.replace(reg, '$1\r\n$2$3');
var pad = 0;
jQuery.each(xml.split('\r\n'), function(index, node) {
var indent = 0;
if (node.match( /.+<\/\w[^>]*>$/ )) {
indent = 0;
} else if (node.match( /^<\/\w/ )) {
if (pad != 0) {
pad -= 1;
}
} else if (node.match( /^<\w[^>]*[^\/]>.*$/ )) {
indent = 1;
} else {
indent = 0;
}
var padding = '';
for (var i = 0; i < pad; i++) {
padding += ' ';
}
formatted += padding + node + '\r\n';
pad += indent;
});
return formatted;
} }
function view(type) function view(type)

View File

@@ -286,6 +286,7 @@
} }
} }
}); });
setTimeout("refreshDatabaseInformations();", 10000);
} }
$(document).ready(function(){ $(document).ready(function(){
@@ -365,8 +366,6 @@
}); });
} }
setTimeout("refreshDatabaseInformations();", 6000);
$('#fileupload').fileupload({ $('#fileupload').fileupload({
dataType: 'html', dataType: 'html',
add: function(e, data) { add: function(e, data) {

View File

@@ -4,13 +4,8 @@
<form method="post" action="{{ path('admin_searchengine_post') }}"> <form method="post" action="{{ path('admin_searchengine_post') }}">
<fieldset> <fieldset>
<legend>{% trans 'Date fields available for search' %}</legend> <legend>{% trans 'Stemming' %}</legend>
{% for field in date_fields %} {% trans 'Enable stemming' %} <input type="checkbox" name="stemming_enabled" value="1" {% if configuration['stemming_enabled'] %}checked="checked"{% endif %} />
<label class="checkbox">
<input type="checkbox" name="date_fields[]" value="{{ field }}" {% if field in configuration['date_fields'] %}checked="checked"{% endif %} >
{{ field }}
</label>
{% endfor %}
</fieldset> </fieldset>
<fieldset> <fieldset>
<legend>{% trans 'Default sort' %}</legend> <legend>{% trans 'Default sort' %}</legend>

View File

@@ -339,7 +339,7 @@
<span>{% trans 'Trier par ' %}</span> <span>{% trans 'Trier par ' %}</span>
<select name="sort" class="input-small"> <select name="sort" class="input-small">
{% for sort, sort_name in app['phraseanet.SE'].getAvailableSort() %} {% for sort, sort_name in app['phraseanet.SE'].getAvailableSort() %}
<option value="{{ sort }}" {% if sort == app['phraseanet.SE'].getDefaultSort() %}selected="selected"{% endif %}>{{ sort_name }}</option> <option value="{{ sort }}" {% if sort == app['phraseanet.SE'].getDefaultSort() %}selected="selected" class="default-selection"{% endif %}>{{ sort_name }}</option>
{% endfor %} {% endfor %}
</select> </select>
<select name="ord" class="input-medium"> <select name="ord" class="input-medium">
@@ -350,7 +350,7 @@
{% if app['phraseanet.SE'].hasStemming() %} {% if app['phraseanet.SE'].hasStemming() %}
<div> <div>
<label class="checkbox"> <label class="checkbox">
<input type="checkbox" checked="checked" name="stemme" /> {% trans 'rechercher par stemme' %} <input type="checkbox" {% if app['phraseanet.SE'].isStemmingEnabled() %} checked="checked" {% endif %} name="stemme" /> {% trans 'rechercher par stemme' %}
</label> </label>
</div> </div>
{% endif %} {% endif %}

View File

@@ -2,12 +2,9 @@
<div id="title_dash" class="center" style="clear:left;">{% trans "report:: Dashboard" %}</div> <div id="title_dash" class="center" style="clear:left;">{% trans "report:: Dashboard" %}</div>
<div id="periode_dash" class="center" >{{ dashboard.getTitleDate('dmin') }} - {{ dashboard.getTitleDate('dmax') }}</div> <div id="periode_dash" class="center" >{{ dashboard.getTitleDate('dmin') }} - {{ dashboard.getTitleDate('dmax') }}</div>
<div id="liste_dash" class="center"> <div id="liste_dash" class="center">
<em id="em_all" class="selected_em" >Toutes les bases</em>
{% for key in dashboard.authorizedCollection|keys %} {% for key in dashboard.authorizedCollection|keys %}
{% if not loop.first %} <em id="em_{{ key }}" >{{ key|sbas_labels(app) }}</em>
<em id="em_{{ key }}" >{{ key|sbas_labels(app) }}</em>
{% else %}
<em id="em_all" class="selected_em" >Toutes les bases</em>
{% endif %}
{% endfor %} {% endfor %}
</div> </div>
<div id="dashboard-table" > <div id="dashboard-table" >

View File

@@ -0,0 +1,38 @@
{% extends '/setup/wrapper.html.twig' %}
{% block content %}
<div class="steps" style="min-height:450px;">
<table style="width:100%;">
<tr>
<td>
<div style="height:400px;overflow:auto;">
<h2>
Upgrade Instructions
</h2>
<p>
This Phraseanet install requires an upgrade.
</p>
<table style="width:100%;margin-top:60px;">
<tr>
<td colspan="2">
Please run the following command at your application install root.
<code>
bin/setup system:upgrade
</code>
</td>
</tr>
</table>
</div>
<div>
<table style="width:100%;">
<tr>
<td style="text-align:right;">
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</div>
{% endblock %}

View File

@@ -21,7 +21,7 @@ class ComposerInstallTest extends \PhraseanetPHPUnitAbstract
self::$DI['cli']['driver.composer']->expects($this->at(1)) self::$DI['cli']['driver.composer']->expects($this->at(1))
->method('command') ->method('command')
->with(array('install', '--optimize-autoloader', '--dev')); ->with(array('install', '--optimize-autoloader', '--quiet', '--no-interaction', '--dev'));
$command = new ComposerInstall(); $command = new ComposerInstall();
$command->setContainer(self::$DI['cli']); $command->setContainer(self::$DI['cli']);

View File

@@ -39,6 +39,9 @@ class SetupTest extends \Silex\WebTestCase
public function testRouteSlashWhenInstalled() public function testRouteSlashWhenInstalled()
{ {
$this->app['phraseanet.configuration-tester']->expects($this->once())
->method('isInstalled')
->will($this->returnValue(true));
$this->app['phraseanet.configuration-tester']->expects($this->once()) $this->app['phraseanet.configuration-tester']->expects($this->once())
->method('isBlank') ->method('isBlank')
->will($this->returnValue(false)); ->will($this->returnValue(false));
@@ -50,6 +53,22 @@ class SetupTest extends \Silex\WebTestCase
$this->assertEquals('/login/', $response->headers->get('location')); $this->assertEquals('/login/', $response->headers->get('location'));
} }
public function testRouteInstructionsWhenUpgradeRequired()
{
$this->app['phraseanet.configuration-tester']->expects($this->once())
->method('isInstalled')
->will($this->returnValue(false));
$this->app['phraseanet.configuration-tester']->expects($this->once())
->method('isBlank')
->will($this->returnValue(false));
$client = $this->createClient();
$crawler = $client->request('GET', '/setup/');
$response = $client->getResponse();
$this->assertEquals(302, $response->getStatusCode());
$this->assertEquals('/setup/upgrade-instructions/', $response->headers->get('location'));
}
public function testRouteSetupInstaller() public function testRouteSetupInstaller()
{ {
$client = $this->createClient(); $client = $this->createClient();

View File

@@ -529,4 +529,14 @@ class record_adapterTest extends PhraseanetPHPUnitAuthenticatedAbstract
if ( ! $found) if ( ! $found)
$this->fail(); $this->fail();
} }
public function testReindex()
{
$record = new \record_adapter(self::$DI['app'], self::$DI['record_1']->get_sbas_id(), self::$DI['record_1']->get_record_id());
self::$DI['app']['phraseanet.SE'] = $this->getMock('Alchemy\Phrasea\SearchEngine\SearchEngineInterface');
self::$DI['app']['phraseanet.SE']->expects($this->once())
->method('updateRecord')
->with($record);
$record->reindex();
}
} }

View File

@@ -7,7 +7,7 @@
*{ *{
margin:0; margin:0;
padding:0; padding:0;
} }
img{ img{
border:none; border:none;
@@ -28,7 +28,7 @@ img{
.ui-tabs .ui-tabs-nav li a .ui-tabs .ui-tabs-nav li a
{ {
padding:3px 5px 0; padding:3px 5px 0;
} }
@@ -90,7 +90,7 @@ img{
} }
.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a .ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a
{ {
cursor: pointer; cursor: pointer;
} }
.ui-tabs .ui-tabs-panel .ui-tabs .ui-tabs-panel
{ {
@@ -99,14 +99,14 @@ img{
display: block; display: block;
border-width:0; border-width:0;
padding:0px; padding:0px;
background-color:#404040; background-color:#404040;
} }
.ui-tabs .ui-tabs-panel.tabBox{ .ui-tabs .ui-tabs-panel.tabBox{
height:310px; height:310px;
overflow:auto; overflow:auto;
position:relative; position:relative;
padding:10px; padding:10px;
} }
.ui-tabs .ui-tabs-hide .ui-tabs .ui-tabs-hide
{ {
@@ -114,9 +114,9 @@ img{
} }
.ui-state-default, .ui-widget-content .ui-state-default .ui-state-default, .ui-widget-content .ui-state-default
{ {
background:none; background:none;
} }
.ui-tabs li.ui-state-active a, .ui-state-active a:link, .ui-state-active a .ui-tabs li.ui-state-active a, .ui-state-active a:link, .ui-state-active a
{ {
color:#b2b2b2; color:#b2b2b2;
font-weight:bold; font-weight:bold;
@@ -124,21 +124,21 @@ img{
} }
.ui-state-active, .ui-widget-content .ui-state-active .ui-state-active, .ui-widget-content .ui-state-active
{ {
background:none; background:none;
} }
.ui-widget-content .ui-widget-content
{ {
background-image:none; background-image:none;
background-color:transparent; background-color:transparent;
} }
.ui-dialog.ui-widget-content .ui-dialog.ui-widget-content
{ {
background-color:#111111; background-color:#111111;
} }
.ui-accordion .ui-accordion-content .ui-accordion .ui-accordion-content
{ {
padding:0; padding:0;
} }
.ui-accordion .ui-accordion-header, .ui-accordion .ui-accordion-content .ui-accordion .ui-accordion-header, .ui-accordion .ui-accordion-content
{ {
@@ -148,7 +148,7 @@ img{
{ {
border:none; border:none;
background-image:url(../../icons/bask_back.png); background-image:url(../../icons/bask_back.png);
background-repeat:repeat-x; background-repeat:repeat-x;
margin-bottom:0; margin-bottom:0;
height:20px; height:20px;
} }
@@ -228,7 +228,7 @@ DIV.onglets SPAN
padding:4px 2px; padding:4px 2px;
MARGIN-RIGHT: 2px; MARGIN-RIGHT: 2px;
BACKGROUND-COLOR: #C9C9C9; BACKGROUND-COLOR: #C9C9C9;
FONT-WEIGHT: normal; FONT-WEIGHT: normal;
COLOR: #FFFFFF; COLOR: #FFFFFF;
TEXT-DECORATION: none; TEXT-DECORATION: none;
@@ -240,7 +240,7 @@ DIV.onglets SPAN.hover{
} }
DIV.onglets SPAN.actif DIV.onglets SPAN.actif
{ {
Z-INDEX: 3; Z-INDEX: 3;
BACKGROUND-COLOR: #FFFFFF; BACKGROUND-COLOR: #FFFFFF;
-moz-border-radius-topleft:3px; -moz-border-radius-topleft:3px;
@@ -344,12 +344,12 @@ DIV.onglets SPAN.inactif A
#idongTopic LI A.opened #idongTopic LI A.opened
{ {
display:inline-block; display:inline-block;
background-image: url(../icons/tri_minus.gif); background-image: url(../icons/tri_minus.gif);
} }
#idongTopic LI A.closed #idongTopic LI A.closed
{ {
display:inline-block; display:inline-block;
background-image: url(../icons/tri_plus.gif); background-image: url(../icons/tri_plus.gif);
} }
#idongTopic LI SPAN #idongTopic LI SPAN
{ {
@@ -361,16 +361,16 @@ DIV.onglets SPAN.inactif A
#idongTopic LI SPAN.static #idongTopic LI SPAN.static
{ {
display:inline-block; display:inline-block;
background-image: url(../icons/tri_static.gif); background-image: url(../icons/tri_static.gif);
} }
#idongTopic LI SPAN.none #idongTopic LI SPAN.none
{ {
display:inline-block; display:inline-block;
background-image: none; background-image: none;
} }
#idongTopic div.searchZonePop{ #idongTopic div.searchZonePop{
background-color:#E9E9E9; background-color:#E9E9E9;
} }
#idongTopic div.searchZone #idongTopic div.searchZone
@@ -420,7 +420,7 @@ DIV.onglets SPAN.inactif A
.basTitle{ .basTitle{
font-weight:bold; font-weight:bold;
text-align:center; text-align:center;
cursor:pointer; cursor:pointer;
} }
.basContTitle{ .basContTitle{
background-color:#C9C9C9; background-color:#C9C9C9;
@@ -431,7 +431,7 @@ input.datepicker{
} }
img.ui-datepicker-trigger{ img.ui-datepicker-trigger{
margin:2px 0; margin:2px 0;
vertical-align:bottom; vertical-align:bottom;
cursor:pointer; cursor:pointer;
} }
.base_filter{ .base_filter{
@@ -470,7 +470,7 @@ img.ui-datepicker-trigger{
} }
.basesGrp input{ .basesGrp input{
border:none; border:none;
} }
.basGrp div{ .basGrp div{
padding:2px; padding:2px;
@@ -493,7 +493,7 @@ img.ui-datepicker-trigger{
.bodynochu .bodynochu
{ {
BACKGROUND-COLOR: #E9E9E9; BACKGROUND-COLOR: #E9E9E9;
OVERFLOW : hidden; OVERFLOW : hidden;
} }
.txtPushClient .txtPushClient
{ {
@@ -520,7 +520,7 @@ img.ui-datepicker-trigger{
.diapochu .tools .diapochu .tools
{ {
FONT-SIZE:8px; FONT-SIZE:8px;
TEXT-ALIGN: right; TEXT-ALIGN: right;
height:16px; height:16px;
} }
.flechenochu /*** page ***/ .flechenochu /*** page ***/
@@ -534,7 +534,7 @@ img.ui-datepicker-trigger{
width:19px; width:19px;
height:14px; height:14px;
float:left; float:left;
} }
#flechechu{ #flechechu{
background-image:url(../icons/light_haut.gif); background-image:url(../icons/light_haut.gif);
@@ -607,6 +607,7 @@ img.ui-datepicker-trigger{
#grid,#grid tr, #grid td{ #grid,#grid tr, #grid td{
z-index:50; z-index:50;
text-align:center;
} }
.diapo .diapo
{ {
@@ -932,7 +933,7 @@ span.sel
#PREVIEWBOX A.bounce #PREVIEWBOX A.bounce
{ {
BORDER-BOTTOM:#ffe000 1px dashed; BORDER-BOTTOM:#ffe000 1px dashed;
} }
.PREVIEW_PIC,.PREVIEW_HD{ .PREVIEW_PIC,.PREVIEW_HD{

View File

@@ -223,16 +223,16 @@ function pquit(){
function resize(){ function resize(){
var h = bodySize.y = $(window).height() - $('#mainMenu').outerHeight(); var h = bodySize.y = $(document).height() - $('#mainMenu').outerHeight();
var w = bodySize.x = $(window).width(); var w = bodySize.x = $(document).width();
controlPubliSize(); controlPubliSize();
var rightw = w - 265; var rightw = w - 265;
rightw = ((rightw) > 0) ? rightw : 0; rightw = ((rightw) > 0) ? rightw : 0;
$('#container').height($(window).height()); $('#container').height($(document).height());
$('#container').width($(window).width()); $('#container').width($(document).width());
$('#right').width(rightw); $('#right').width(rightw);
$('#answers').height(h - $('#nb_answersEXT').outerHeight() - $('#navigation').outerHeight() - 20); $('#answers').height(h - $('#nb_answersEXT').outerHeight() - $('#navigation').outerHeight() - 20);

View File

@@ -2146,6 +2146,7 @@ DIV.thesaurus DIV.c {
BACKGROUND-COLOR: #F0F0F0; BACKGROUND-COLOR: #F0F0F0;
cursor: pointer; cursor: pointer;
color: black; color: black;
line-height:10px;
} }
#idFrameE DIV.thesaurus B { #idFrameE DIV.thesaurus B {

View File

@@ -2190,6 +2190,7 @@ DIV.thesaurus DIV.c {
BACKGROUND-COLOR: #F0F0F0; BACKGROUND-COLOR: #F0F0F0;
cursor: pointer; cursor: pointer;
color: black; color: black;
line-height:10px;
} }
#idFrameE DIV.thesaurus B { #idFrameE DIV.thesaurus B {

View File

@@ -197,7 +197,7 @@ function checkFilters(save)
switches.filter('option:selected, input:checked').addClass('was'); switches.filter('option:selected, input:checked').addClass('was');
$('#sbasfiltercont select option:selected').removeAttr('selected').selected(false); $('#sbasfiltercont select option:selected:not(".default-selection")').removeAttr('selected').selected(false);
$('#sbasfiltercont select option.field_switch').hide(); $('#sbasfiltercont select option.field_switch').hide();