Merge pull request #441 from nlegoff/some_bootstrap

[3.8] Fix and tweak admin CSS using twitter bootstrap
This commit is contained in:
Romain Neutron
2013-06-28 11:17:04 -07:00
24 changed files with 431 additions and 420 deletions

View File

@@ -357,10 +357,6 @@ class API_V1_adapter extends API_V1_Abstract
'authTokenDirectory' => $app['phraseanet.registry']->get('GV_mod_auth_token_directory'),
'authTokenDirectoryPath' => $app['phraseanet.registry']->get('GV_mod_auth_token_directory_path'),
'authTokenPassphrase' => $app['phraseanet.registry']->get('GV_mod_auth_token_passphrase'),
),
'files' => array(
'owner' => $app['phraseanet.registry']->get('GV_filesOwner'),
'group' => $app['phraseanet.registry']->get('GV_filesOwner'),
)
),
'maintenance' => array(

View File

@@ -9,18 +9,21 @@ return call_user_func_array(function(Application $app) {
$youtube_console_url = '<a href="https://code.google.com/apis/console/" target="_blank">https://code.google.com/apis/console/</a>';
$dashboard_youtube = '<a href="https://code.google.com/apis/youtube/dashboard/" target="_blank">https://code.google.com/apis/youtube/dashboard/</a>';
$create_api_flickr = '<a href="https://secure.flickr.com/services/apps/create/" target="_blank">https://secure.flickr.com/services/apps/create/</a>';
$flickr_callback = '/prod/bridge/callback/flickr/';
$dailymotion_callback = '/prod/bridge/callback/dailymotion/';
$youtube_callback = $app->url('prod_bridge_callback', array('api_name' => 'youtube'));
$flickr_callback = $app->url('prod_bridge_callback', array('api_name' => 'flickr'));
$dailymotion_callback = $app->url('prod_bridge_callback', array('api_name' => 'dailymotion'));
$create_api_dailymotion = '<a href="http://www.dailymotion.com/profile/developer" target="_blank">http://www.dailymotion.com/profile/developer</a>';
$recaptchaDoc = '<a href="http://www.google.com/recaptcha">http://www.google.com/recaptcha</a>';
$imagineDoc = '<a href="http://imagine.readthedocs.org/en/latest/usage/introduction.html">http://imagine.readthedocs.org/en/latest/usage/introduction.html</a>';
return array(
array(
'section' => _('GV::section:: Serveur HTTP'),
'section' => _('HTTP Server'),
'vars' => array(
array(
'type' => \registry::TYPE_ENUM,
'name' => 'GV_default_lng',
'comment' => _('reglages:: Langue par defaut'),
'comment' => _('Default language'),
'default' => 'fr_FR',
'available' => $avLanguages,
'required' => true
@@ -29,48 +32,48 @@ return call_user_func_array(function(Application $app) {
'type' => \registry::TYPE_STRING,
'name' => 'GV_STATIC_URL',
'end_slash' => false,
'comment' => _('reglages:: URL statique (optionnel)'),
'comment' => _('Static URL'),
'help' => _('optional'),
'default' => '',
'required' => false
)
)
), array(
'section' => _('GV::section:: Etat de maintenance'),
'section' => _('Maintenance state'),
'rolled' => true,
'vars' => array(
array(
'type' => \registry::TYPE_TEXT,
'name' => 'GV_message',
'comment' => _('reglages:: Message a diffuser aux utilisateurs'),
'comment' => _('Maintenance message'),
'default' => "May the force be with you"
),
array(
'type' => \registry::TYPE_BOOLEAN,
'name' => 'GV_message_on',
'comment' => _('reglages:: activation du message a diffuser aux utilistaeurs'),
'comment' => _('Enable maintenance message broadcast'),
'default' => false
),
array(
'type' => \registry::TYPE_BOOLEAN,
'name' => 'GV_log_errors',
'comment' => _('reglages:: logguer les erreurs'),
'comment' => _('Log errors'),
'default' => false
)
)
), array(
'section' => _('GV::section:: Connectivite aux webservices'),
'section' => _('Webservices connectivity'),
'vars' => array(
array(
'type' => \registry::TYPE_BOOLEAN,
'name' => 'GV_google_api',
'comment' => _('reglages:: Utiliser els google apis'),
'comment' => _('Use Google API'),
'default' => true,
'required' => true
),
array(
'type' => \registry::TYPE_STRING,
'name' => 'GV_i18n_service',
'comment' => _('reglages:: Service phrasea de localisation'),
'comment' => _('Geonames server address'),
'default' => 'http://localization.webservice.alchemyasp.com/',
'end_slash' => true,
'required' => true
@@ -78,111 +81,117 @@ return call_user_func_array(function(Application $app) {
array(
'type' => \registry::TYPE_BOOLEAN,
'name' => 'GV_captchas',
'comment' => _('reglages:: Utilisation de l\'api recpatcha'),
'comment' => _('Use recaptcha API'),
'help' => _(sprintf('See documentation at %s', $recaptchaDoc)),
'default' => false,
'required' => true
),
array(
'type' => \registry::TYPE_STRING,
'name' => 'GV_captcha_public_key',
'comment' => _('reglages:: clef publique recaptcha'),
'comment' => _('Recaptcha public key'),
'default' => ''
),
array(
'type' => \registry::TYPE_STRING,
'name' => 'GV_captcha_private_key',
'comment' => _('reglages:: clef privee recaptcha'),
'comment' => _('Recaptcha private key'),
'default' => ''
)
)
), array(
'section' => _('GV::section:: Connectivite a Youtube'),
'section' => _('Youtube connectivity'),
'vars' => array(
array(
'type' => \registry::TYPE_BOOLEAN,
'name' => 'GV_youtube_api',
'comment' => sprintf(_('reglages:: Utiliser l\'api youtube, voir %s, <br/> mettre la callback a WEBSITE_URL/prod/bridge/callback/youtube'), $youtube_console_url),
'comment' => _('Use youtube API'),
'help' => sprintf(_('Create API account at %s, then use %s as callback URL value'), $youtube_console_url, $youtube_callback),
'default' => false,
'required' => true
),
array(
'type' => \registry::TYPE_STRING,
'name' => 'GV_youtube_client_id',
'comment' => _('reglages:: Youtube client id'),
'comment' => _('Youtube public key'),
'default' => ''
),
array(
'type' => \registry::TYPE_STRING,
'name' => 'GV_youtube_client_secret',
'comment' => _('reglages:: Youtube clientsecret'),
'comment' => _('Youtube secret key'),
'default' => ''
),
array(
'type' => \registry::TYPE_STRING,
'name' => 'GV_youtube_dev_key',
'comment' => sprintf(_('reglages:: Youtube cle developpeur, voir %s'), $dashboard_youtube),
'comment' => _('Youtube developer key'),
'help' => sprintf(_('See %s'), $dashboard_youtube),
'default' => ''
)
)
), array(
'section' => _('GV::section:: Connectivite a FlickR'),
'section' => _('FlickR connectivity'),
'vars' => array(
array(
'type' => \registry::TYPE_BOOLEAN,
'name' => 'GV_flickr_api',
'comment' => sprintf(_('reglages:: Utiliser l api flickr, voir %s, puis set la callback a %s'), $create_api_flickr, $flickr_callback),
'comment' => _('Use Flickr API'),
'help' => sprintf(_('Create API account at %s, then use %s as callback URL value'), $create_api_flickr, $flickr_callback),
'default' => false,
'required' => true
),
array(
'type' => \registry::TYPE_STRING,
'name' => 'GV_flickr_client_id',
'comment' => _('reglages:: FlickR client id'),
'comment' => _('Flickr public key'),
'default' => ''
),
array(
'type' => \registry::TYPE_STRING,
'name' => 'GV_flickr_client_secret',
'comment' => _('reglages:: FlickR client secret'),
'comment' => _('Flickr secret key'),
'default' => ''
)
)
), array(
'section' => _('GV::section:: Connectivite a Dailymotion'),
'section' => _('Dailymotion connectivity'),
'vars' => array(
array(
'type' => \registry::TYPE_BOOLEAN,
'name' => 'GV_dailymotion_api',
'comment' => sprintf(_('reglages:: Utiliser l api dailymotion, voir %s, puis set la callback a %s'), $create_api_dailymotion, $dailymotion_callback),
'comment' => _('Use Dailymotion API'),
'help' => sprintf(_('Create API account at %s, then use %s as callback URL value'), $create_api_dailymotion, $dailymotion_callback),
'default' => false,
'required' => true
),
array(
'type' => \registry::TYPE_STRING,
'name' => 'GV_dailymotion_client_id',
'comment' => _('reglages:: dailymotion client id'),
'comment' => _('Dailymotion public key'),
'default' => ''
),
array(
'type' => \registry::TYPE_STRING,
'name' => 'GV_dailymotion_client_secret',
'comment' => _('reglages:: dailymotion client secret'),
'comment' => _('Dailymotion secret key'),
'default' => ''
)
)
), array(
'section' => _('GV::section:: Client Phraseanet API'),
'section' => _('Phraseanet client API'),
'vars' => array(
array(
'type' => \registry::TYPE_BOOLEAN,
'name' => 'GV_client_navigator',
'comment' => _('reglages:: Authoriser l\'application smartphone *Phraseanet Navigator* a se connecter sur cette instance'),
'comment' => _('Authorize *Phraseanet Navigator*'),
'help' => _('*Phraseanet Navigator* is a smartphone application that allow user to connect on this instance'),
'default' => false,
'required' => true
)
)
), array(
'section' => _('GV::section:: Stockage des documents'),
'section' => _('Documents storage'),
'vars' => array(
array(
'type' => \registry::TYPE_STRING,
@@ -194,38 +203,41 @@ return call_user_func_array(function(Application $app) {
)
)
), array(
'section' => _('GV::section:: Executables externes'),
'section' => _('Executables settings'),
'vars' => array(
array(
'type' => \registry::TYPE_BOOLEAN,
'name' => 'GV_h264_streaming',
'comment' => _('reglages:: activation du stream h264 via mod_token - attention, necessite les modules apache mod_h264_streaming et mod_auth_token'),
'comment' => _('Enable H264 stream mode'),
'help' => _('Use with mod_token. Attention requires the apache modules and mod_h264_streaming mod_auth_token'),
'default' => false
),
array(
'type' => \registry::TYPE_STRING,
'name' => 'GV_mod_auth_token_directory',
'end_slash' => true,
'comment' => _('reglages:: point de montage du dossier protege via auth_token'),
'comment' => _('Auth_token mount point'),
'default' => false
),
array(
'type' => \registry::TYPE_STRING,
'name' => 'GV_mod_auth_token_directory_path',
'end_slash' => false,
'comment' => _('reglages:: path complet du dossier protege via auth_token'),
'comment' => _('Auth_token directory path'),
'default' => false
),
array(
'type' => \registry::TYPE_STRING,
'name' => 'GV_mod_auth_token_passphrase',
'comment' => _('reglages:: passphrase du mod_auth_token (definie dans le fichier de configuration apache)'),
'comment' => _('Auth_token passphrase'),
'help' => _('Defined in Apache configuration'),
'default' => false
),
array(
'type' => \registry::TYPE_STRING,
'name' => 'GV_PHP_INI',
'comment' => _('reglages:: path du php.ini specifique (vide si non utilise)'),
'comment' => _('php.ini path'),
'help' => _('Empty if not used'),
'default' => ''
),
array(
@@ -233,6 +245,7 @@ return call_user_func_array(function(Application $app) {
'name' => 'GV_imagine_driver',
'default' => '',
'comment' => _('Imagine driver'),
'help' => _(sprintf('See documentation at %s', $imagineDoc)),
'available' => array(
'' => 'Auto',
'gmagick' => 'GraphicsMagick',
@@ -243,154 +256,155 @@ return call_user_func_array(function(Application $app) {
array(
'type' => \registry::TYPE_INTEGER,
'name' => 'GV_ffmpeg_threads',
'comment' => _('Number of threads allowed for FFmpeg'),
'comment' => _('Number of threads to use for FFMpeg'),
'default' => 2
),
array(
'type' => \registry::TYPE_INTEGER,
'name' => 'GV_pdfmaxpages',
'comment' => _('reglages:: nombre maximum de page a extraire (PDF)'),
'comment' => _('Maximum number of pages to be extracted from PDF'),
'default' => 5
)
)
), array(
'section' => _('GV::section:: Repertoires utilitaires'),
'vars' => array(
array(
'type' => \registry::TYPE_STRING,
'name' => 'GV_filesOwner',
'comment' => _('reglages:: proprietaire des fichiers'),
'default' => ''
),
array(
'type' => \registry::TYPE_STRING,
'name' => 'GV_filesGroup',
'comment' => _('reglages:: groupes des fichiers'),
'default' => ''
)
)
), array(
'section' => _('GV::section:: Configuration principale'),
'section' => _('Main configuration'),
'vars' => array(
array(
'type' => \registry::TYPE_STRING,
'name' => 'GV_adminMail',
'comment' => _('reglages:: email de l\'administrateur'),
'comment' => _('Admin email'),
'default' => 'support@alchemy.fr'
),
array(
'type' => \registry::TYPE_BOOLEAN,
'name' => 'GV_view_bas_and_coll',
'comment' => _('reglages:: Afficher le nom des bases et des collections'),
'comment' => _('Display the name of databases and collections'),
'default' => true,
'required' => true
),
array(
'type' => \registry::TYPE_BOOLEAN,
'name' => 'GV_choose_export_title',
'comment' => _('reglages:: activer le choix du nom de fichier a l\'export'),
'comment' => _('Choose the title of the document to export'),
'default' => false,
'required' => true
),
array(
'type' => \registry::TYPE_ENUM,
'name' => 'GV_default_export_title',
'comment' => _('reglages:: choix par defaut des noms de fichier a l\'export'),
'default' => 'support@alchemy.fr',
'available' => array('title' => 'Titre du document', 'original' => 'Nom original')
'comment' => _('Default export title'),
'default' => 'title',
'available' => array(
'title' => _('Document title'),
'original' => _('Original name'),
)
),
array(
'type' => \registry::TYPE_ENUM,
'name' => 'GV_social_tools',
'comment' => _('reglages:: Active les partages Facebook et Twitter'),
'available' => array('none' => 'Disabled', 'publishers' => 'Publishers', 'all' => 'Activated'),
'comment' => _('Enable this setting to share on Facebook and Twitter'),
'available' => array(
'none' => _('Disabled'),
'publishers' => _('Publishers'),
'all' => _('Enabled'),
),
'default' => 'none',
'required' => false
)
)
), array(
'section' => _('GV::section:: Page d\'accueil'),
'section' => _('Homepage'),
'rolled' => true,
'vars' => array(
array(
'type' => \registry::TYPE_ENUM,
'name' => 'GV_home_publi',
'comment' => _('reglages:: presentation sur la home'),
'comment' => _('Homepage slideshow'),
'default' => 'COOLIRIS',
'available' => array('DISPLAYx1' => 'slideshow', 'SCROLL' => 'Bandeau defilant', 'COOLIRIS' => 'Cooliris'),
'available' => array(
'DISPLAYx1' => _('Single image'),
'SCROLL' => _('Slide show'),
'COOLIRIS' => 'Cooliris'
),
'required' => true
)
)
), array(
'section' => _('GV::section:: Moteur de recherche'),
'section' => _('Search engine'),
'rolled' => true,
'vars' => array(
array(
'type' => \registry::TYPE_INTEGER,
'name' => 'GV_min_letters_truncation',
'comment' => _('reglages:: Nombre minimal de lettre avec la troncature (Recherche)'),
'comment' => _('Minimum number of letters before truncation'),
'help' => _('Used in search engine'),
'default' => 1
),
array(
'type' => \registry::TYPE_STRING,
'name' => 'GV_defaultQuery',
'comment' => _('reglages:: Question par defaut'),
'comment' => _('Default query'),
'default' => 'all'
),
array(
'type' => \registry::TYPE_ENUM,
'name' => 'GV_defaultQuery_type',
'comment' => _('reglages:: type de document cherches par defaut e l\'ouverture du site'),
'available' => array('0' => 'Documents', '1' => 'Regroupements'),
'comment' => _('Default searched type'),
'help' => _('Used when opening the application'),
'available' => array(
'0' => _('Documents'),
'1' => _('Stories'),
),
'default' => '0'
)
)
), array(
'section' => _('GV::section:: Report'),
'section' => _('Report'),
'rolled' => true,
'vars' => array(
array(
'type' => \registry::TYPE_BOOLEAN,
'name' => 'GV_anonymousReport',
'comment' => _('reglages:: report anonyme (masque les infos concernant les utilisateurs)'),
'comment' => _('Anonymous report'),
'help' => _('Hide information about users'),
'default' => false,
'required' => true
)
)
), array(
'section' => _('GV::section:: Modules supplementaires'),
'section' => _('Additionnal modules'),
'rolled' => true,
'vars' => array(
array(
'type' => \registry::TYPE_BOOLEAN,
'name' => 'GV_thesaurus',
'comment' => _('reglages:: Activation de l\'outil thesaurus'),
'comment' => _('Enable thesaurus'),
'default' => true
), array(
'type' => \registry::TYPE_BOOLEAN,
'name' => 'GV_multiAndReport',
'comment' => _('reglages:: Activation du Mode MultiDOC'),
'comment' => _('Enable multi-doc mode'),
'default' => true
), array(
'type' => \registry::TYPE_BOOLEAN,
'name' => 'GV_seeOngChgDoc',
'comment' => _('reglages:: Substitution de HD d\'un record '),
'comment' => _('Enable HD substitution'),
'default' => false
), array(
'type' => \registry::TYPE_BOOLEAN,
'name' => 'GV_seeNewThumb',
'comment' => _('reglages:: Substitution de thumbnail d\'un record'),
'comment' => _('Enable thumbnail substitution'),
'default' => false
)
)
)
, array(
'section' => _('GV::section:: Envois de mails'),
'section' => _('Emails'),
'vars' => array(
array(
'type' => \registry::TYPE_STRING,
'name' => 'GV_defaulmailsenderaddr',
'comment' => _('reglages:: Expediteur mail par defaut'),
'comment' => _('Default mail sender address'),
'default' => 'phraseanet@example.com'
),
array(
@@ -402,25 +416,25 @@ return call_user_func_array(function(Application $app) {
array(
'type' => \registry::TYPE_BOOLEAN,
'name' => 'GV_smtp',
'comment' => _('reglages:: Utilisation d\'un serveur SMTP'),
'comment' => _('Use a SMTP server'),
'default' => false
),
array(
'type' => \registry::TYPE_BOOLEAN,
'name' => 'GV_smtp_auth',
'comment' => _('reglages:: Activation de l\'authentification smtp'),
'comment' => _('Enable SMTP authentication'),
'default' => false
),
array(
'type' => \registry::TYPE_STRING,
'name' => 'GV_smtp_host',
'comment' => _('reglages:: Hote SMTP'),
'comment' => _('SMTP host'),
'default' => ''
),
array(
'type' => \registry::TYPE_STRING,
'name' => 'GV_smtp_port',
'comment' => _('reglages:: Port SMTP'),
'comment' => _('SMTP port'),
'default' => ''
),
array(
@@ -428,112 +442,126 @@ return call_user_func_array(function(Application $app) {
'name' => 'GV_smtp_secure',
'comment' => _('SMTP encryption'),
'default' => 'tls',
'available' => array('none' => _('None'), 'ssl' => 'SSL', 'tls' => 'TLS'),
'available' => array(
'none' => _('None'),
'ssl' => 'SSL',
'tls' => 'TLS'
),
),
array(
'type' => \registry::TYPE_STRING,
'name' => 'GV_smtp_user',
'comment' => _('reglages:: User SMTP'),
'comment' => _('SMTP user'),
'default' => ''
),
array(
'type' => \registry::TYPE_STRING,
'name' => 'GV_smtp_password',
'comment' => _('reglages:: Mot de passe SMTP'),
'comment' => _('SMTP password'),
'default' => ''
)
)
), array(
'section' => _('GV::section:: Exports FTP'),
'section' => _('FTP Export'),
'vars' => array(
array(
'type' => \registry::TYPE_BOOLEAN,
'name' => 'GV_activeFTP',
'comment' => _('reglages:: active la possibilite d\'exports FTP ou non (onglet dans multiexports)'),
'comment' => _('Enable FTP export'),
'help' => _('Available in multi-export tab'),
'default' => false
),
array(
'type' => \registry::TYPE_BOOLEAN,
'name' => 'GV_ftp_for_user',
'comment' => _('reglages:: Donne ou non export FTP aux utilisateurs ou e l\'admin uniquement'),
'comment' => _('Enable FTP for users'),
'help' => _('By default it is available for admins'),
'default' => false
)
)
), array(
'section' => _('GV::section:: Configuration du client'),
'section' => _('Client'),
'vars' => array(
array(
'type' => \registry::TYPE_INTEGER,
'name' => 'GV_download_max',
'comment' => _('Maximum megabytes allowed in download (if request is bigger, then mail is still available)'),
'comment' => _('Maximum megabytes allowed for download'),
'help' => _('If request is bigger, then mail is still available'),
'default' => 120
),
array(
'type' => \registry::TYPE_INTEGER,
'name' => 'GV_ong_search',
'comment' => _('reglages:: position de l\'onglet de recherche'),
'comment' => _('Search tab position'),
'default' => 1
),
array(
'type' => \registry::TYPE_INTEGER,
'name' => 'GV_ong_advsearch',
'comment' => _('reglages:: position de l\'onglet de recherche avancee'),
'comment' => _('Advanced search tab position'),
'default' => 2
),
array(
'type' => \registry::TYPE_INTEGER,
'name' => 'GV_ong_topics',
'comment' => _('reglages:: position de l\'onglet des topics'),
'comment' => _('Topics tab position'),
'default' => 0
),
array(
'type' => \registry::TYPE_INTEGER,
'name' => 'GV_ong_actif',
'comment' => _('reglages:: numero de l\'onglet actif'),
'comment' => _('Active tab position'),
'default' => 1
),
array(
'type' => \registry::TYPE_ENUM,
'name' => 'GV_client_render_topics',
'comment' => _('reglages:: rendu des topics'),
'available' => array('tree' => 'Arbres', 'popups' => 'Menus deroulants'),
'comment' => _('Topics display mode'),
'available' => array(
'tree' => _('Trees'),
'popups' => _('Drop-down'),
),
'default' => 'tree'
),
array(
'type' => \registry::TYPE_BOOLEAN,
'name' => 'GV_rollover_reg_preview',
'comment' => _('reglages:: Voir le rollover sur les regroupements (fenetre de preview)'),
'comment' => _('Enable roll-over on stories'),
'default' => true
),
array(
'type' => \registry::TYPE_BOOLEAN,
'name' => 'GV_rollover_chu',
'comment' => _('reglages:: Voir le rollover sur les elements du chutier'),
'comment' => _('Enable roll-over on basket elements'),
'default' => true
),
array(
'type' => \registry::TYPE_ENUM,
'name' => 'GV_client_coll_ckbox',
'comment' => _('reglages:: Presentation des collections'),
'comment' => _('Collections display mode'),
'default' => 'checkbox',
'available' => array('popup' => 'Menu deroulant', 'checkbox' => 'case a cocher')
'available' => array(
'popup' => _('Drop-down'),
'checkbox' => _('Check-box'),
)
),
array(
'type' => \registry::TYPE_BOOLEAN,
'name' => 'GV_viewSizeBaket',
'comment' => _('reglages:: Voir taille HD total des doc d\'un chutiers'),
'comment' => _('Display the total size of the document basket'),
'default' => true
),
array(
'type' => \registry::TYPE_BOOLEAN,
'name' => 'GV_clientAutoShowProposals',
'comment' => _('reglages:: Afficher automatiquement l\'onglet des propositions s\'il y\'en a'),
'comment' => _('Display proposals tab'),
'default' => true
),
array(
'type' => \registry::TYPE_BOOLEAN,
'name' => 'GV_needAuth2DL',
'comment' => _('reglages:: Il est necessaire d\'etre connecte pour pouvoir telecharger en compte invite'),
'comment' => _('Require authentication to download documents'),
'help' => _('Used for guest account'),
'default' => true
),
array(
@@ -544,62 +572,64 @@ return call_user_func_array(function(Application $app) {
)
)
), array(
'section' => _('GV::section:: Parametrage de l\'inscription'),
'section' => _('Registration'),
'vars' => array(
array(
'type' => \registry::TYPE_BOOLEAN,
'name' => 'GV_autoselectDB',
'comment' => _('reglages:: A true, cette option descative le choix de selection des bases sur lesquelles on s\'inscrit, et l\'inscription se fait sur toutes les bases ou jai le droit de m\'inscrire'),
'comment' => _('Auto select databases'),
'help' => _('This option disables the selecting of the databases on which a user can register himself, and registration is made on all granted databases.'),
'default' => true
),
array(
'type' => \registry::TYPE_BOOLEAN,
'name' => 'GV_autoregister',
'comment' => _('reglages:: Activation de l\'autoinscription'),
'comment' => _('Enable auto registration'),
'default' => false
)
)
), array(
'section' => _('GV::section:: Configuration du push'),
'section' => _('Push configuration'),
'vars' => array(
array(
'type' => \registry::TYPE_INTEGER,
'name' => 'GV_validation_reminder',
'comment' => _('reglages:: Nombre de jour avant la fin de la validation pour envoie de mail de rappel'),
'comment' => _('Number of days before the end of the validation to send a reminder email'),
'default' => 2
),
array(
'type' => \registry::TYPE_INTEGER,
'name' => 'GV_val_expiration',
'comment' => _('reglages:: dure de validite des liens genere pour les validations, si 0 => validite permanente'),
'comment' => _('Default validation links duration'),
'help' => _('If set to 0, duration is permanent'),
'default' => 10
)
)
), array(
'section' => _('GV::section:: Indexation par les robots'),
'section' => _('Robot indexing'),
'vars' => array(
array(
'type' => \registry::TYPE_STRING,
'name' => 'GV_homeTitle',
'comment' => _('reglages :: Titre de l\'installation'),
'comment' => _('Application title'),
'default' => 'Phraseanet'
),
array(
'type' => \registry::TYPE_STRING,
'name' => 'GV_metaKeywords',
'comment' => _('reglages:: Mots clefs pour l\'indexation des robots de moteurs de recherche'),
'comment' => _('Keywords used for indexing purposes by search engines robots'),
'default' => ''
),
array(
'type' => \registry::TYPE_TEXT,
'name' => 'GV_metaDescription',
'comment' => _('reglages :: Description de l\'installation'),
'comment' => _('Application description'),
'default' => ''
),
array(
'type' => \registry::TYPE_STRING,
'name' => 'GV_googleAnalytics',
'comment' => _('reglages:: identifiant google analytics'),
'comment' => _('Google Analytics identifier'),
'default' => ''
),
array(
@@ -611,7 +641,7 @@ return call_user_func_array(function(Application $app) {
array(
'type' => \registry::TYPE_BOOLEAN,
'name' => 'GV_display_gcf',
'comment' => _('reglages:: Afficher le bandeau Google Chrome Frame'),
'comment' => _('Enable Google Chrome frame'),
'default' => true
)
)

View File

@@ -27,11 +27,11 @@
</div>
{% endif %}
<ul>
<ul class="unstyled">
<li>{% trans 'phraseanet:: adresse' %} : {{ collection.get_databox().get_serialized_server_info() }}</li>
<li>{% trans 'admin::base:collection: numero de collection distante' %} : {{ collection.get_coll_id() }}</li>
<li>{% trans 'admin::base:collection: etat de la collection' %} : {{ collection.is_active() ? "admin::base:collection: activer la collection"| trans : "admin::base:collection: descativer la collection"|trans }}</li>
<li>{{ collection.get_record_amount() }} records <a target="_self" href="{{ path('admin_collection_display_document_details', { 'bas_id' : collection.get_base_id() }) }}">{% trans 'phraseanet:: details' %}</a></li>
<li>{{ collection.get_record_amount() }} records <a class="ajax" target="rights" href="{{ path('admin_collection_display_document_details', { 'bas_id' : collection.get_base_id() }) }}">{% trans 'phraseanet:: details' %}</a></li>
</ul>
{% if app['authentication'].getUser().ACL.has_right_on_base(bas_id, 'manage') %}
@@ -39,7 +39,7 @@
<h5>{% trans 'admin::collection:: Gestionnaires des commandes' %}</h5>
<form id="admin_adder" action="{{ path('admin_collection_submit_order_admins', { 'bas_id' : bas_id }) }}" method="post" style="margin:0;">
{% if admins | length > 0 %}
<ul>
<ul class="unstyled">
{% for user in admins %}
<li>
<label for="adm_{{ user.get_id() }}" class="checkbox">
@@ -51,12 +51,10 @@
</ul>
{% endif %}
<h6>{% trans 'setup:: ajouter un administrateur des commandes' %}</h6>
<div>
<input class="admin_adder"/>
<div class="input-append">
<input class="admin_adder" placeholder="{% trans 'setup:: ajouter un administrateur des commandes' %}"/>
<input type="hidden" name="admins[]"/>
<input type="submit" value="{% trans 'boutton::valider' %}" />
<input type="submit" class="btn btn-warning" value="{% trans 'boutton::valider' %}" />
</div>
</form>
</div>
@@ -79,18 +77,6 @@
</form>
</div>
<div class="well well-small action-block">
<form class="form-inline" method="post" action="{{ path('admin_collection_rename', { 'bas_id' : bas_id }) }}" style="margin:0;">
<div class="input-append">
<input name="name" class="span2" type="text" size="16">
<button class="btn reload-tree" type="submit">
<img src="/skins/icons/edit_0.gif" />
{% trans 'admin::base:collection: renommer la collection' %}
</button>
</div>
</form>
</div>
<div class="well well-small action-block">
<form class="form-inline" method="post" action="{{ path('admin_collection_labels', { 'bas_id' : bas_id }) }}" style="margin:0;">
<div class="input-append">
@@ -118,7 +104,17 @@
</form>
</div>
<div class="well well-small btn-group">
<div class="well well-small">
<form style="display:inline; margin:0 2px 0 0;" method="post" action="{{ path('admin_collection_rename', { 'bas_id' : bas_id }) }}" style="margin:0;">
<div class="input-append" style="display:inline; margin:0;">
<input name="name" class="span3" type="text" size="16">
<button class="btn reload-tree" type="submit">
<img src="/skins/icons/edit_0.gif" />
{% trans 'admin::base:collection: renommer la collection' %}
</button>
</div>
</form>
<form style="display:inline; margin:0;" method="post" action="{% if collection.is_active() %}{{ path('admin_collection_disable', { 'bas_id' : bas_id }) }}{% else %}{{ path('admin_collection_enable', { 'bas_id' : bas_id }) }}{% endif %}">
<button class="btn confirm" data-confirm-msg="{{ collection.is_active() ? 'admin::base:collection: etes vous sur darreter la publication de cette collection'|trans : 'admin::base:collection: etes vous sur de publier cette collection ?'|trans }}">
<img src="/skins/icons/db-remove.png"/>

View File

@@ -1,4 +1,4 @@
<div class="header">
<div class="page-header">
<h1>{% trans 'admin::base:collection: Creer une collection' %}</h1>
</div>

View File

@@ -1,5 +1,5 @@
<div class="header">
<h1>{{ collection.get_label(app['locale.I18n']) }} <small>{% trans "Details" %}</small></h1>
<h1>{{ collection.get_label(app['locale.I18n']) }} <small style="font-size:16px">{% trans "Details" %}</small></h1>
</div>
<table class="table table-bordered">
@@ -13,7 +13,7 @@
</thead>
<tbody>
{% for row in table['result'] %}
<tr style='backgound-color:{{ loop.index is even ? '#ccc' : '#fff' }}'>
<tr style="background-color:{{ loop.index is even ? '#ccc' : '#fff' }}">
<td>{{ row['name'] }}</td>
<td>{{ row['amount'] }}</td>
<td>{{ row['mega'] }}</td>
@@ -35,13 +35,11 @@
<th>
{{ totals['giga'] }}
</th>
</tr>
</tfoot>
</tbody>
</table>
<div>
<a class="btn btn-mini" href="{{ path('admin_display_collection', { 'bas_id' : collection.get_base_id() }) }}">{% trans 'boutton::retour' %}</a>
<a style="text-decoration:none" class="btn" href="{{ path('admin_display_collection', { 'bas_id' : collection.get_base_id() }) }}">{% trans 'boutton::retour' %}</a>
</div>

View File

@@ -9,7 +9,7 @@
<input type="submit">
</form>
<div class="header">
<div class="page-header">
<h1>{% trans 'Suggested values' %}</h1>
</div>
@@ -655,7 +655,7 @@ function valid()
if(data.success) {
$('#tree li.selected a').trigger('click');
} else {
$(".header").insertAfter(
$(".page-header").insertAfter(
'<div class="alert alert-error">'
+'<button class="close" data-dismiss="alert">×</button>'
+ data.msg

View File

@@ -1,6 +1,6 @@
{% macro board_sub_section(requirements) %}
<h2>{{ requirements.getName() }}</h2>
<ul class="setup">
<ul class="setup unstyled">
{% if requirements.getRequirements() is not empty %}
<li><strong>{% trans 'Requirements' %}</strong></li>
{% for requirement in requirements.getRequirements() %}
@@ -60,9 +60,7 @@
<script type="text/javascript">
$(document).ready(function(){
var container = $('#right-ajax');
$( ".admin_adder", container ).autocomplete({
source: "/admin/users/typeahead/search/",
@@ -74,7 +72,7 @@
}
}).data( "ui-autocomplete" )._renderItem = function( ul, item ) {
var email = item.email ? '<br/>'+item.email : '';
var login = item.login != item.name ? " ("+ item.login +")" : '';
var login = item.login !== item.name ? " ("+ item.login +")" : '';
return $( "<li></li>" )
.data( "ui-autocomplete-item", item )
@@ -85,59 +83,75 @@
});
</script>
<div class="page-header">
<h1>{% trans %}General settings{% endtrans %}<small style="font-size:18px; margin-left: 15px;">{% trans %}your configuration{% endtrans %}</small></h1>
</div>
{% if cache_flushed %}
<div>
<div class="well well-small">
{% trans 'all caches services have been flushed' %}
</div>
{% endif %}
<div class="board_section">
<h1>{% trans 'setup:: administrateurs de l\'application' %}</h1>
<form id="admin_adder" action="{{ path('admin_dashboard_add_admins') }}" method="post">
<ul>
{% for usr_id, usr_login in admins %}
<li>
<label class="checkbox" for="adm_{{ usr_id }}">
<input type="checkbox" id="adm_{{ usr_id }}" name="admins[]" value="{{ usr_id }}" checked />
{{ usr_login }}
</label>
</li>
{% endfor %}
</ul>
<label>{% trans 'setup:: ajouter un administrateur de l\'application' %} :</label>
<input class="admin_adder input-large" />
<input type="hidden" class="new" name="admins[]" />
<input type="submit" class="btn btn-warning" value="{% trans 'boutton::valider' %}" />
<form id="admin_adder" action="{{ path('admin_dashboard_add_admins') }}" method="post" class="form-inline">
<fieldset>
<legend>{% trans 'setup:: administrateurs de l\'application' %}</legend>
<ul class="unstyled">
{% for usr_id, usr_login in admins %}
<li>
<label class="checkbox" for="adm_{{ usr_id }}">
<input type="checkbox" id="adm_{{ usr_id }}" name="admins[]" value="{{ usr_id }}" checked />
{{ usr_login }}
</label>
</li>
{% endfor %}
</ul>
<div class="input-append" style="margin-left:20px">
<input class="admin_adder input-large" placeholder="{% trans 'Add an admin' %}"/>
<input type="submit" class="btn btn-warning" value="{% trans 'boutton::valider' %}" />
</div>
<input type="hidden" class="new" name="admins[]" />
</fieldset>
</form>
<h2>{% trans 'setup:: Reinitialisation des droits admins' %}</h2>
<form id="admin_reset" action="{{ path('admin_dashboard_reset_admin_rights') }}" method="post">
<input type="submit" class="btn btn-warning" value="{% trans 'boutton::reinitialiser' %}" />
<form id="admin_reset" action="{{ path('admin_dashboard_reset_admin_rights') }}" method="post" class="form-inline" style="display:inline">
<fieldset>
<legend>{% trans 'setup:: Reinitialisation des droits admins' %}</legend>
<input type="submit" class="btn btn-warning" value="{% trans 'boutton::reinitialiser' %}" />
</fieldset>
</form>
</div>
<div class="board_section">
<h1 style="margin-bottom: 0;">{% trans 'setup:: Reglages generaux' %}</h1>
<h2 style="margin-top: 0; font-style: italic;">{% trans 'setup::Votre configuration' %}</h2>
<div class="section">
<h2>{% trans 'setup::Tests d\'envois d\'emails' %}</h2>
<form id="mail_checker" method="post" action="{{ path('admin_dashboard_test_mail') }}" target="_self">
<label>Email : </label><input name="email" type="text" />
<input type="submit" class="btn btn-warning" value="{% trans 'boutton::valider' %}"/>
{% if email_status %}
<p>{% trans %}Email test result : {{ email_status }}{% endtrans %}</p>
{% endif %}
<form id="mail_checker" method="post" action="{{ path('admin_dashboard_test_mail') }}" target="_self" class="form-inline">
<fieldset>
<legend>{% trans 'setup::Tests d\'envois d\'emails' %}</legend>
<div class="input-append">
<input class="span3" id="appendedInputButton" type="text" placeholder="{% trans %}Email{% endtrans %}">
<input type="submit" class="btn btn-warning" value="{% trans 'Send' %}"/>
</div>
<div>
{% if email_status %}
<p>{% trans %}Email test result : {{ email_status }}{% endtrans %}</p>
{% endif %}
</div>
</fieldset>
</form>
</div>
{% if app['cache'].isServer() %}
<form id="cache_flusher" method="post" action="{{ path('admin_dashboard_flush_cache') }}">
<input type="submit" id="flush_button" class="btn btn-warning" value="Flush All Caches" />
{% if app['cache'].isServer() %}
<div class="section">
<form id="cache_flusher" method="post" action="{{ path('admin_dashboard_flush_cache') }}" class="form-inline">
<fieldset>
<legend>{% trans %}Reset cache{% endtrans %}</legend>
<input type="submit" id="flush_button" class="btn btn-warning span4" value="Flush All Caches" />
</fieldset>
</form>
{% endif %}
</div>
{% endif %}
<div class="section">
{% for requirements in app['phraseanet.configuration-tester'].getRequirements() %}
{{ _self.board_sub_section(requirements) }}
{% endfor %}

View File

@@ -1,12 +1,14 @@
<h1>{% trans'Terms Of Use' %}</h1>
<div class="page-header">
<h1>{% trans'Terms Of Use' %}</h1>
</div>
<form target="_self" method="post" action="{{ path('admin_database_submit_cgus', {'databox_id': app['request'].attributes.get('databox_id')}) }}">
<form target="_self" method="post" action="{{ path('admin_database_submit_cgus', {'databox_id': app['request'].attributes.get('databox_id')}) }}" class="form-inline">
<div class='well'>
<input class='btn btn-primary' type="submit" value="{% trans'Mettre a jour' %}" id="valid"/>
<label for="valid" class='checkbox'>
{% trans'admin::CGU Les utilisateurs doivent imperativement revalider ces conditions' %}
<input type="checkbox" value="1" name="valid"/>
{% trans'admin::CGU Les utilisateurs doivent imperativement revalider ces conditions' %}
</label>
<input class='btn btn-warning' type="submit" value="{% trans'Mettre a jour' %}" id="valid"/>
</div>
<div id="tabs">
<ul>

View File

@@ -4,7 +4,7 @@
</script>
{% endif %}
<div class="header">
<div class="page-header">
<h1>{{ databox.get_serialized_server_info() }}</h1>
</div>
@@ -23,24 +23,24 @@
</div>
{% endif %}
<ul>
<ul class="unstyled">
<li>
ID : {{ databox.get_sbas_id() }}
</li>
<li>
{% trans 'admin::base: Alias' %} : <span id="viewname">{{ databox.get_label(app['locale.I18n']) }}</span>
{% if app['authentication'].getUser().ACL().has_right_on_sbas(databox.get_sbas_id(), "bas_manage") %}
<img src="/skins/icons/edit_0.gif" id="show-view-name" />
<div class="well well-small" id="change-view-name" style="display:none;">
<form method="post" action="{{ path('admin_database_rename', {'databox_id': databox.get_sbas_id()}) }}">
<div class="input-append">
<input id="db-view-name" name="viewname" class="span2" type="text" size="16">
<button class="btn" type="submit">{% trans 'Rename' %}</button>
</div>
</form>
</div>
{% endif %}
{% trans 'admin::base: Alias' %} : <span id="viewname">{{ databox.get_label(app['locale.I18n']) }}</span>
{% if app['authentication'].getUser().ACL().has_right_on_sbas(databox.get_sbas_id(), "bas_manage") %}
<img src="/skins/icons/edit_0.gif" id="show-view-name" />
<div class="well well-small" id="change-view-name" style="display:none;">
<form method="post" action="{{ path('admin_database_rename', {'databox_id': databox.get_sbas_id()}) }}">
<div class="input-append">
<input id="db-view-name" name="viewname" class="span2" type="text" size="16">
<button class="btn" type="submit">{% trans 'Rename' %}</button>
</div>
</form>
</div>
{% endif %}
</li>
<li>
@@ -88,7 +88,7 @@
</div>
{% if app['authentication'].getUser().ACL().has_right_on_sbas(databox.get_sbas_id(), "bas_manage") %}
<div class="well well-small">
<div>
<form method="post" action="{{ path('admin_database_set_indexable', {'databox_id': databox.get_sbas_id()}) }}" style="margin:0;">
<label class="checkbox" for="is_indexable">
<input type="checkbox" id="is_indexable" name="indexable" {{ app['phraseanet.appbox'].is_databox_indexable(databox) ? 'checked' : ''}} />
@@ -124,15 +124,8 @@
</form>
</div>
<div class="btn-group well well-small">
<form method="post" action="{{ path('admin_database_reindex', {'databox_id': databox.get_sbas_id()}) }}">
<button type="button" class="btn submiter confirm" data-confirm-msg="{% trans 'Confirmez-vous la re-indexation de la base ?' %}">
{% trans "base:: re-indexer" %}
</button>
</form>
<a style="display:inline-block; margin-right:3px;" target="right" class="ajax btn" href="{{ path('admin_database_display_new_collection_form', {'databox_id': databox.get_sbas_id()}) }}">
<div class="well well-small">
<a style="display:inline-block; margin-right:3px; text-decoration: none;" target="right" class="ajax btn" href="{{ path('admin_database_display_new_collection_form', {'databox_id': databox.get_sbas_id()}) }}">
<img src="/skins/icons/create_coll.png" />
{% trans "admin::base:collection: Creer une collection" %}
</a>
@@ -167,6 +160,12 @@
</form>
</div>
<form method="post" action="{{ path('admin_database_reindex', {'databox_id': databox.get_sbas_id()}) }}">
<button type="button" class="btn submiter confirm" data-confirm-msg="{% trans 'Confirmez-vous la re-indexation de la base ?' %}">
{% trans "base:: re-indexer" %}
</button>
</form>
{% if databox.get_mountable_colls()| length > 0 %}
<div class="well well-small">
<a href="#" class="btn" id="show-mount-coll">
@@ -236,10 +235,10 @@
</div>
<div id="printLogoDIV_NONE">
{% trans "admin::base:collection: aucun fichier (minilogo, watermark ...)" %}
{% if app['authentication'].getUser().ACL().has_right_on_sbas(databox.get_sbas_id(), "bas_manage") %}
<input id="fileupload" class="no-ajax" type="file" name="newLogoPdf" data-url="{{ path('admin_database_submit_logo', {'databox_id': databox.get_sbas_id()}) }}" accept="image/jpg, image/jpeg">
<i>{% trans "admin::base: envoyer un logo (jpeg 35px de hauteur max)" %}</i>
{% endif %}
{% if app['authentication'].getUser().ACL().has_right_on_sbas(databox.get_sbas_id(), "bas_manage") %}
<input id="fileupload" class="no-ajax" type="file" name="newLogoPdf" data-url="{{ path('admin_database_submit_logo', {'databox_id': databox.get_sbas_id()}) }}" accept="image/jpg, image/jpeg">
<i>{% trans "admin::base: envoyer un logo (jpeg 35px de hauteur max)" %}</i>
{% endif %}
</div>
</div>
@@ -252,7 +251,7 @@
dataType: 'json',
data: {},
success: function(data){
if(data.viewname == '') {
if(data.viewname === '') {
$("#viewname").html("{% trans 'admin::base: aucun alias' %}");
} else {
$("#viewname").html(data.viewname);

View File

@@ -1,5 +1,5 @@
<div class="header">
<h1>{{ databox.get_serialized_server_info() }}<small>{% trans "Details" %}</small></h1>
<div class="page-header">
<h1>{{ databox.get_serialized_server_info() }}<small style="font-size:16px;">{% trans "Details" %}</small></h1>
</div>
<table class="table table-bordered">
@@ -58,5 +58,5 @@
</table>
<div>
<a class="btn btn-mini" href="{{ path('admin_database', { 'databox_id' : databox.get_sbas_id() }) }}">{% trans 'boutton::retour' %}</a>
<a style="text-decoration:none" class="btn" href="{{ path('admin_database', { 'databox_id' : databox.get_sbas_id() }) }}">{% trans 'boutton::retour' %}</a>
</div>

View File

@@ -1,17 +1,14 @@
{% macro format_checkbox(admin, right, name, users, type) %}
{% set id = right['base_id'] %}
{% set class = 'base_id' %}
{% if type == 'sbas' %}
{% set id = right['sbas_id'] %}
{% set class = 'sbas_id' %}
{% set sbas_class = "" %}
{% else %}
{% set sbas_class = "inside_sbas_" ~ right['sbas_id'] %}
{% endif %}
{% set id = right['base_id'] %}
{% set class = 'base_id' %}
{% if type == 'sbas' %}
{% set id = right['sbas_id'] %}
{% set class = 'sbas_id' %}
{% set sbas_class = "" %}
{% else %}
{% set sbas_class = "inside_sbas_" ~ right['sbas_id'] %}
{% endif %}
{% set display = 'block' %}
@@ -50,12 +47,8 @@
</div>
{% endif %}
{% endif %}
{% endmacro %}
<style>
div.no_switch,
div.switch_quota,
div.switch_masks,

View File

@@ -2,44 +2,49 @@
{% block content %}
<form class="no-ajax form_publication form-vertical" method="post" action="{{ path('admin_feeds_create') }}">
<h2>{% trans 'Ajouter une publication' %}</h2>
<div class="control-group">
<label class="control-label" for="add_pub_titre">{% trans 'Titre' %} :</label>
<div class="controls">
<input type="text" id="add_pub_titre" class="required_text input-large" placeholder="{% trans 'Feed name' %}" maxlength="128" name="title" />
<form style="max-width:500px" class="no-ajax form_publication form-horizontal" method="post" action="{{ path('admin_feeds_create') }}">
<fieldset>
<legend>{% trans 'Ajouter une publication' %}</legend>
<div class="control-group">
<label class="control-label" for="add_pub_titre">{% trans 'Titre' %}</label>
<div class="controls">
<input type="text" id="add_pub_titre" class="required_text input-large" placeholder="{% trans 'Feed name' %}" maxlength="128" name="title" />
</div>
</div>
</div>
<div class="control-group">
<label class="control-label" for="add_pub_subtitre">{% trans 'Sous-titre' %} :</label>
<div class="controls">
<input type="text" id="add_pub_subtitre" class="input-large" placeholder="{% trans 'Short description' %}" maxlength="512" name="subtitle" />
<div class="control-group">
<label class="control-label" for="add_pub_subtitre">{% trans 'Sous-titre' %}</label>
<div class="controls">
<input type="text" id="add_pub_subtitre" class="input-large" placeholder="{% trans 'Short description' %}" maxlength="512" name="subtitle" />
</div>
</div>
</div>
<div class="control-group">
<label class="control-label" for="add_pub_base_id">{% trans 'Etendue de la publication' %} :</label>
<div class="controls">
<select id="add_pub_base_id" class="input-large" name="base_id">
<option value="">{% trans 'Non-Restreinte (publique)' %}</option>
{% for databox in app['authentication'].getUser().ACL().get_granted_sbas('bas_chupub') %}
<optgroup label="{{ databox.get_label(app['locale.I18n']) }}">
{% for collection in databox.get_collections() %}
<option value="{{ collection.get_base_id() }}">{{ collection.get_name() }}</option>
{% endfor %}
</optgroup>
{% endfor %}
</select>
<div class="control-group">
<label class="control-label" for="add_pub_base_id">{% trans 'Etendue de la publication' %}</label>
<div class="controls">
<select id="add_pub_base_id" class="input-large" name="base_id">
<option value="">{% trans 'Non-Restreinte (publique)' %}</option>
{% for databox in app['authentication'].getUser().ACL().get_granted_sbas('bas_chupub') %}
<optgroup label="{{ databox.get_label(app['locale.I18n']) }}">
{% for collection in databox.get_collections() %}
<option value="{{ collection.get_base_id() }}">{{ collection.get_name() }}</option>
{% endfor %}
</optgroup>
{% endfor %}
</select>
</div>
</div>
</div>
<div class="control-group">
<div class="controls">
<label class="checkbox" for="add_pub_public">
<input type="checkbox" id="add_pub_public" name="public" value="1" />
{% trans 'Publique' %}
</label>
<div class="control-group">
<div class="controls">
<label class="checkbox" for="add_pub_public">
<input type="checkbox" id="add_pub_public" name="public" value="1" />
{% trans 'Publique' %}
</label>
</div>
</div>
</div>
<button type="submit" class="btn btn-warning">{% trans 'boutton::valider' %}</button>
<div class="form-actions">
<button type="submit" class="btn btn-warning">{% trans 'boutton::valider' %}</button>
</div>
</fieldset>
</form>
<table class="admintable" cellspacing="0" cellpadding="0">

View File

@@ -1,7 +1,9 @@
<h1>{% trans 'Publications' %}</h1>
<div class="page-header">
<h1>{% trans 'Publications' %}</h1>
</div>
<div>
{% block content %}{% endblock %}
{% block content %}{% endblock %}
</div>

View File

@@ -1,16 +1,26 @@
<h1>{% trans 'Phrasea search-engine configuration' %}</h1>
<div class="page-header">
<h1>{% trans 'Phrasea search-engine configuration' %}</h1>
</div>
<form method="post" action="{{ path('admin_searchengine_post') }}">
<div>{% trans 'Date fields available for search' %}</div>
{% for field in date_fields %}
<input type="checkbox" name="date_fields[]" value="{{ field }}" {% if field in configuration['date_fields'] %}checked="checked"{% endif %} > {{ field }}
{% endfor %}
<div>{% trans 'Default sort' %}</div>
<select name="default_sort">
{% for sort, sort_name in available_sort %}
<option value="{{ sort }}" {%if configuration['default_sort'] == sort %}selected="selected"{% endif %}>{{ sort_name }}</option>
<fieldset>
<legend>{% trans 'Date fields available for search' %}</legend>
{% for field in date_fields %}
<label class="checkbox">
<input type="checkbox" name="date_fields[]" value="{{ field }}" {% if field in configuration['date_fields'] %}checked="checked"{% endif %} >
{{ field }}
</label>
{% endfor %}
</select>
<button type="submit">{% trans 'boutton::valider' %}</button>
</fieldset>
<fieldset>
<legend>{% trans 'Default sort' %}</legend>
<select name="default_sort">
{% for sort, sort_name in available_sort %}
<option value="{{ sort }}" {%if configuration['default_sort'] == sort %}selected="selected"{% endif %}>{{ sort_name }}</option>
{% endfor %}
</select>
</fieldset>
<div class="form-actions">
<button type="submit" class="btn btn-warning">{% trans 'boutton::valider' %}</button>
</div>
</form>

View File

@@ -1,3 +1,7 @@
<div class="page-header">
<h1>{% trans 'Setup' %}</h1>
</div>
{% if update_post_datas is not none %}
<div class='alert'>
{{ update_post_datas }}
@@ -8,13 +12,13 @@
<div class="control-group">
<label class="control-label">Adresse : </label>
<div class="controls">
<input type="text" class="input-xlarge" readonly="readonly" value="{{ app['phraseanet.registry'].get('GV_ServerName') }}" />
<input type="text" class="input-xxlarge" readonly="readonly" value="{{ app['phraseanet.registry'].get('GV_ServerName') }}" />
</div>
</div>
<div class="control-group">
<label class="control-label">Installation : </label>
<div class="controls">
<input type="text" class="input-xlarge" readonly="readonly" value="{{ app['root.path'] }}" />
<input type="text" class="input-xxlarge" readonly="readonly" value="{{ app['root.path'] }}" />
</div>
</div>
<div class="control-group">
@@ -33,9 +37,8 @@
<form id="GV_form" class="form-horizontal" method="post" action = "{{ path('setup_submit_globals') }}">
{% for section in GV %}
<div class="section">
<h1> {{ section['section'] }} </h1>
<fieldset>
<legend> {{ section['section'] }} </legend>
{% for value in section['vars'] %}
{% set readonly = false %}
{% if value['readonly'] is defined and value['readonly'] == true %}
@@ -52,17 +55,17 @@
{% endif %}
<div class="control-group">
<div class="controls">
<label class="control-label" for="id_{{ value['name'] }}"><span class="NEW">{{ is_new == false ? 'NEW' : '' }} </span>{{ value['comment'] | raw }}</label>
<label class="control-label" for="id_{{ value['name'] }}" style="color:#666;word-wrap: break-word;text-align: right;" ><span class="NEW">{{ is_new == false ? 'NEW' : '' }} </span>{{ value['comment'] | raw }}</label>
{% if value['type'] == 'boolean' %}
<div class="controls">
<label class="radio inline" for="id_{{ value['name'] }}_no"><input {{ value['required'] is defined ? 'required="required"' : '' }} {{ readonly ? 'readonly="readonly"' : '' }} {{ currentValue == '0' ? 'checked="selected"' : '' }} type="radio" name="{{ value['name'] }}" value="False" id="id_{{ value['name'] }}_no" />False</label>
<label class="radio inline" for="id_{{ value['name'] }}_yes"><input {{ value['required'] is defined ? 'required="required"' : '' }} {{ readonly ? 'readonly="readonly"' : '' }} {{ currentValue == '1' ? 'checked="checked"' : '' }} type="radio" name="{{ value['name'] }}" value="True" id="id_{{ value['name'] }}_tes" />True</label>
{% elseif value['type'] == 'string' %}
<input {{ value['required'] is defined ? 'required="required"' : '' }} {{ readonly ? 'readonly="readonly"' : '' }} name="{{ value['name'] }}" id="id_{{ value['name'] }}" type="text" value="{{ currentValue }}"/>
<div class="controls"><input {{ value['required'] is defined ? 'required="required"' : '' }} {{ readonly ? 'readonly="readonly"' : '' }} name="{{ value['name'] }}" id="id_{{ value['name'] }}" type="text" value="{{ currentValue }}" class="input-xxlarge"/>
{% elseif value['type'] == 'text' %}
<textarea {{ readonly ? 'readonly="readonly"' : '' }} name="{{ value['name'] }}" id="id_{{ value['name'] }}">{{ currentValue }}</textarea>
<div class="controls"><textarea {{ readonly ? 'readonly="readonly"' : '' }} name="{{ value['name'] }}" id="id_{{ value['name'] }}" class="input-xxlarge">{{ currentValue }}</textarea>
{% elseif value['type'] == 'enum' %}
<select {{ value['required'] is defined ? 'required="required"' : '' }} {{ readonly ? 'readonly="readonly"' : '' }} name="{{ value['name'] }}" id="id_{{ value['name'] }}">
<div class="controls"><select {{ value['required'] is defined ? 'required="required"' : '' }} {{ readonly ? 'readonly="readonly"' : '' }} name="{{ value['name'] }}" id="id_{{ value['name'] }}" class="input-xlarge">
{% if value['available'] is defined and value['available'] is iterable %}
{% for key, val in value['available'] %}
<option value="{{ key }}" {{ currentValue == key ? 'selected="selected"' : '' }} >{{ val }}</option>
@@ -78,11 +81,13 @@
</select>
{% elseif value['type'] == 'enum_multi' %}
{% if value['available'] is defined and value['available'] is iterable %}
<div class="controls">
{% for key, availableValue in value['available'] %}
<label class="checkbox">
<input type="checkbox" name="{{ value['name'] ~ '[]' }}" {{ value['required'] is defined ? 'required="required"' : '' }} {{ readonly ? 'readonly="readonly"' : ''}} value="{{ key }}" {{ currentValue is iterable and key in currentValue| keys ? 'checked="checked"' : '' }} /> {{ availableValue }}</label>
{% endfor %}
{% else %}
<div class="controls">
<p class='alert'>
{% set name = value['name'] %}
{% trans %}
@@ -91,15 +96,18 @@
</p>
{% endif %}
{% elseif value['type'] == 'integer' %}
<input {{ value['required'] is defined ? 'required="required"' : '' }} {{ readonly ? 'readonly="readonly"' : '' }} name="{{ value['name'] }}" id="id_{{ value['name'] }}" type="text" value="{{ currentValue }}"/>
<div class="controls">
<input {{ value['required'] is defined ? 'required="required"' : '' }} {{ readonly ? 'readonly="readonly"' : '' }} name="{{ value['name'] }}" id="id_{{ value['name'] }}" type="text" value="{{ currentValue }}" class="input-xxlarge"/>
{% elseif value['type'] == 'password' %}
<input {{ value['required'] is defined ? 'required="required"' : '' }} {{ readonly ? 'readonly="readonly"' : '' }} name="{{ value['name'] }}" id="id_{{ value['name'] }}" type="password" value="{{ currentValue }}"/>
<div class="controls">
<input {{ value['required'] is defined ? 'required="required"' : '' }} {{ readonly ? 'readonly="readonly"' : '' }} name="{{ value['name'] }}" id="id_{{ value['name'] }}" type="password" value="{{ currentValue }}" class="input-xxlarge"/>
{% elseif value['type'] == 'timezone' %}
{% if currentValue is not empty %}
{% set date = date() %}
{% set currentValue = date.getTimezone().getName() %}
{% endif %}
<select {{ value['required'] is defined ? 'required="required"' : '' }} name="{{ value['name'] }}" id="id_{{ value['name'] }}">
<div class="controls">
<select {{ value['required'] is defined ? 'required="required"' : '' }} name="{{ value['name'] }}" id="id_{{ value['name'] }}" class="input-xlarge">
{% set times = [] %}
{% for k, v in listTimeZone %}
{% for val in v %}
@@ -115,15 +123,20 @@
</select>
{% endif %}
</div>
<span class="help-block" style="margin-left:260px;">{{ value['help'] is defined ? value['help']|raw : '' }}</span>
</div>
{% endfor %}
{% if section['javascript'] is defined %}
<div><input type='button' onclick='{{ section['javascript'] ~ '(this);' }}' value='Tester' /></div>
{% endif %}
</div>
</fieldset>
{% endfor %}
<input type="submit" class="btn btn-warning" style="margin-bottom: 10px;" value="{% trans 'boutton::valider' %}"/>
<div class="well well-large">
<div style="max-width: 400px;margin: 0 auto 10px;">
<input type="submit" class="btn btn-warning btn-block btn-large" value="{% trans 'boutton::valider' %}"/>
</div>
</div>
</form>
<script type='text/javascript'>

View File

@@ -24,8 +24,9 @@
</div>
{% endif %}
<h2>{% trans 'admin::base: structure' %}</h2>
<div class="page-header">
<h1>{% trans 'admin::base: structure' %}</h1>
</div>
<form method="POST" action="{{ path('database_submit_stucture', { 'databox_id' : databox.get_sbas_id() }) }}">
<TEXTAREA nowrap style="width:99%; height:450px; white-space:pre" name="structure">{{ structure }}</TEXTAREA>

View File

@@ -1,14 +1,14 @@
<h1>{% trans 'admin::tasks: planificateur de taches' %}
<span style="font-size:12px;">
<div class="page-header">
<h1>{% trans 'admin::tasks: planificateur de taches' %}
<small style="font-size:16px;">
{% trans 'Last update at' %} <span id="pingTime"></span>
</span>
</small>
</h1>
</div>
<form id="taskManagerForm" method="get" name="taskManager" action="{{ path('admin_tasks_list') }}" >
</form>
<form id="taskManagerForm" method="get" name="taskManager" action="{{ path('admin_tasks_list') }}"></form>
<form id="createTask" method="post" name="createTask" action="{{ path('admin_tasks_task_create') }}" >
<form id="createTask" method="post" name="createTask" action="{{ path('admin_tasks_task_create') }}">
<input type="hidden" name="tcl" value="" />
<input type="hidden" name="view" value="GRAPHIC" />
</form>
@@ -81,12 +81,12 @@
<tfoot>
<tr>
<td colspan="7">
<select id="newTaskMenu">
<option value="">{% trans 'admin::tasks: Nouvelle tache' %}...</option>
{% for t in task_manager.getAvailableTasks() %}
<select id="newTaskMenu" style="margin:20px 0;">
<option value="">{% trans 'admin::tasks: Nouvelle tache' %}...</option>
{% for t in task_manager.getAvailableTasks() %}
<option value="{{ t.class }}" {% if t.err %}disabled="disabled"{% endif %}>{{ t.name }}</option>
{% endfor %}
</select>
{% endfor %}
</select>
</td>
</tr>
</tfoot>

View File

@@ -19,7 +19,7 @@
<li>
<a target="right" href="{{ path('setup_display_globals') }}" class="ajax">
<img src="/skins/admin/Setup.png" />
<span>Setup</span>
<span>{% trans %}Setup{% endtrans %}</span>
</a>
</li>
<li>

View File

@@ -65,7 +65,7 @@
var val = $('#model_'+usr)[0].value;
var bool = false;
if(!isNaN(val) && val!='')
if(!isNaN(val) && val!== '')
bool = true;
if(bool)
@@ -89,28 +89,26 @@
// {
if(first && !$(this).hasClass('active'))
bool = false;
if (bool = false)
if (bool === false)
$(this).removeClass('active');
else
$(this).addClass('active');
first = false;
if(that == 'deny')
if(that === 'deny')
checkDeny($(this));
if(that == 'accept_hd')
checkAdd(this)
if(that == 'watermark')
checkAdd(this)
if(that == 'accept')
checkRemove(this)
if(that === 'accept_hd')
checkAdd(this);
if(that === 'watermark')
checkAdd(this);
if(that === 'accept')
checkRemove(this);
// }
});
}
</script>
<div class="header">
<h1>{% trans 'admin:: demandes en cours' %}</h1>
<div class="page-header">
<h1>{% trans 'admin:: demandes en cours' %}</h1>
</div>
{% if app['request'].query.get('success') == '1' %}

View File

@@ -1,4 +1,4 @@
<div class="header">
<div class="page-header">
<h1>{% trans 'Upload a csv file for users creation' %}</h1>
</div>

View File

@@ -1,4 +1,4 @@
<div class="header">
<div class="page-header">
<h1>{% trans 'Apply a model' %} <small>({{ nb_user_to_add }} {% trans 'Users' %})</small></h1>
</div>

View File

@@ -15,8 +15,11 @@
</div>
{% endif %}
<div id="users_page">
<div class="page-header">
<h1>{% trans 'Users' %}</h1>
</div>
<div id="users_page">
<p class="admin_head_opts">
<a class="user_adder" href="#">{% trans 'admin::user: nouvel utilisateur' %}</a>
<a class="template_adder" href="#">{% trans 'admin::user: nouveau template' %}</a>
@@ -28,8 +31,8 @@
<input type="hidden" value="{{autoregister_user.get_id()}}" name="autoregister_user_id"/>
</p>
<form id="users_page_search" method="post" action="{{ path('admin_users_search') }}" target="_self">
<p class="admin_head_opts">
<form id="users_page_search" method="post" action="{{ path('admin_users_search') }}" target="_self" class="form-inline">
<fieldset class="admin_head_opts">
<span>{% trans 'Filter' %}</span>
<select name="like_field" class="input-medium">
<option {% if parm['like_field'] == "usr_login" %}selected="selected"{% endif %} value="usr_login">{% trans 'Push::filter on login' %}</option>
@@ -48,11 +51,11 @@
{% endfor %}
</select>
<button type="submit" class="btn">{% trans 'boutton::chercher' %}</button>
</p>
</fieldset>
</form>
<form id="users_apply_template" method="post" action="{{ path('admin_users_apply_template') }}" target="_self" style="float:left">
<p class="admin_head_opts">
<form id="users_apply_template" method="post" action="{{ path('admin_users_apply_template') }}" target="_self" class="form-inline pull-left" style="margin:0">
<fieldset class="admin_head_opts">
<span>{% trans 'Apply a template' %}</span>
<select name="template_chooser" class="input-medium">
<option value="">{% trans 'boutton::choisir' %}</option>
@@ -61,12 +64,14 @@
{% endfor %}
</select>
<button type="submit" class="btn">{% trans 'boutton::appliquer' %}</button>
</p>
</fieldset>
</form>
<form id="users_reset_rights" method="post" action="{{ path('admin_users_rights_reset') }}" target="_self" style="float:right">
<input type="hidden" value="" name="users">
<button type='button' class="btn btn-warning">{% trans 'Delete all users rights' %}</button>
<form id="users_reset_rights" method="post" action="{{ path('admin_users_rights_reset') }}" target="_self" class="form-inline pull-right" style="margin:0">
<fieldset class="admin_head_opts">
<input type="hidden" value="" name="users">
<button type='button' class="btn btn-warning">{% trans 'Delete all users rights' %}</button>
</fieldset>
</form>
<table id="users" cellspacing="0" cellpadding="0" border="0" class="admintable">
@@ -153,7 +158,7 @@
</tbody>
</table>
<form id="export_form" method="post" target="_blank" class="no-ajax" action="{{ path('admin_users_search_export') }}">
<form id="export_form" method="post" target="_blank" class="no-ajax" action="{{ path('admin_users_search_export') }}" class="inline-form">
<input name="srt" value="{{parm['srt']}}" type="hidden" />
<input name="ord" value="{{parm.ord}}" type="hidden" />
{% for sbas_id in parm.sbas_id %}
@@ -171,15 +176,13 @@
<input name="inactives" value="{{parm.inactives}}" type="hidden" />
</form>
<form id="users_page_form" method="post" target="_self" action="{{ path('admin_users_search') }}">
<p>
<span>{{users.get_total}} resultats,</span>
<form id="users_page_form" method="post" target="_self" action="{{ path('admin_users_search') }}" class="inline-form pull-left">
<fieldset>
{% set pages = users.get_total() / parm['per_page'] %}
{% set modulo = users.get_total() % parm['per_page'] %}
{% if modulo > 0 %}{% set pages = pages + 1 %}{% endif %}
<span>{{pages|floor}} pages</span>
<span>{{users.get_total}} resultats, {{pages|floor}} pages</span>
{% if users.get_page > 2 %}
<button class="pager first btn"><<</button>
@@ -187,7 +190,7 @@
{% if users.get_page > 1 %}
<button class="pager prev btn"><</button>
{% endif %}
<input type="text" value="{{users.get_page}}" class="input-mini"/>
<input type="text" value="{{users.get_page}}" class="input-mini" style="margin:0"/>
{% if users.get_page < pages -1 %}
<button class="pager next btn">></button>
{% endif %}
@@ -225,10 +228,10 @@
<input name="like_field" value="{{parm.like_field}}" type="hidden" />
<input name="inactives" value="{{parm.inactives}}" type="hidden" />
<input name="offset_start" value="{{parm.offset_start}}" type="hidden" />
</p>
</fieldset>
</form>
<form class="no-ajax" method="post" action="{{ path('admin_users_export_csv') }}">
<form method="post" action="{{ path('admin_users_export_csv') }}" class="inline-form pull-right no-ajax">
{% if parm.base_id is not empty %}
{% for base_id in parm.base_id %}
<input name="base_id[]" value="{{base_id}}" type="hidden" />

View File

@@ -208,8 +208,7 @@ div.switch_right.unchecked {
.board_section {
margin: 0 0 30px;
}
.board_section ul,
.board_section #mail_checker {
.board_section ul {
margin: 0 0 20px 15px;
}
.board_section div[class="section"] {
@@ -239,17 +238,7 @@ div.switch_right.unchecked {
.board_section div[class="section"] ul.setup li:hover {
background-color: #fffbcd;
}
.board_section div[class="section"] #cache_flusher {
margin: -10px 0 20px 0;
}
.board_section #flush_button {
width: 362px;
margin-left: 15px;
}
/******* PUBLICATIONS *********************************************************/
.form_publication .controls {
margin-left: 10px;
}
#pub_icon {
width: 42px;
height: 42px;
@@ -270,16 +259,6 @@ div.switch_right.unchecked {
margin-left: 47px;
}
/******* GLOBAL VALUES FORM ***************************************************/
#GV_form_head .control-label {
width: 100px;
text-align: left;
}
#GV_form_head .controls {
margin-left: 110px;
}
#GV_form_head .controls input[type="checkbox"] {
margin-top: 8px;
}
#GV_form .error,
#GV_form .NEW {
color: #ff0000;
@@ -288,6 +267,15 @@ div.switch_right.unchecked {
#GV_form .section {
padding-bottom: 10px;
}
#GV_form .controls {
margin-left: 260px;
}
#GV_form .control-label {
width: 240px;
}
#GV_form .section h1 {
font-weight: bold;
font-size: 16px;
@@ -295,13 +283,3 @@ div.switch_right.unchecked {
margin: 10px 0;
line-height: 22px;
}
#GV_form .section .control-label {
width: auto;
margin-left: 230px;
float: none;
text-align: left;
}
#GV_form .section .controls {
margin-left: 0;
float: left;
}

View File

@@ -251,7 +251,7 @@ div.switch_right {
.board_section {
margin: 0 0 30px;
ul, #mail_checker {
ul {
margin: 0 0 20px 15px;
}
div[class="section"] {
@@ -280,13 +280,6 @@ div.switch_right {
}
}
}
#cache_flusher {
margin: -10px 0 20px 0;
}
}
#flush_button {
width: 362px;
margin-left: 15px;
}
}
@@ -323,20 +316,11 @@ div.switch_right {
/******* GLOBAL VALUES FORM ***************************************************/
#GV_form_head {
.control-label {
width: 100px;
text-align: left;
}
.controls {
margin-left: 110px;
input[type="checkbox"] {
margin-top: 8px;
}
}
}
#GV_form {
.controls {
margin-left: 260px;
}
.error, .NEW {
.color(@red);
font-weight: bold;
@@ -347,17 +331,6 @@ div.switch_right {
.title(16px, 10px, 0);
line-height: 22px;
}
.control-label {
width: auto;
margin-left: 230px;
float: none;
text-align: left;
}
.controls {
margin-left: 0;
float: left;
}
}
}