mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-16 06:23:18 +00:00
Merge branch '3.8'
Conflicts: composer.lock lib/Alchemy/Phrasea/Core/Version.php
This commit is contained in:
97
lib/classes/patch/383alpha4a.php
Normal file
97
lib/classes/patch/383alpha4a.php
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of Phraseanet
|
||||||
|
*
|
||||||
|
* (c) 2005-2014 Alchemy
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
use Alchemy\Phrasea\Application;
|
||||||
|
use Doctrine\ORM\Query\ResultSetMapping;
|
||||||
|
|
||||||
|
class patch_383alpha4a implements patchInterface
|
||||||
|
{
|
||||||
|
/** @var string */
|
||||||
|
private $release = '3.8.3-alpha.4';
|
||||||
|
|
||||||
|
/** @var array */
|
||||||
|
private $concern = array(base::APPLICATION_BOX);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function get_release()
|
||||||
|
{
|
||||||
|
return $this->release;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function require_all_upgrades()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function concern()
|
||||||
|
{
|
||||||
|
return $this->concern;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function apply(base $appbox, Application $app)
|
||||||
|
{
|
||||||
|
$em = $app['EM'];
|
||||||
|
$mappingFieldType = $mappingFieldResult = new ResultSetMapping();
|
||||||
|
|
||||||
|
$rs = $em->createNativeQuery(
|
||||||
|
"SHOW FIELDS FROM usr WHERE Field = 'usr_login';",
|
||||||
|
$mappingFieldType->addScalarResult('Type', 'Type')
|
||||||
|
)->getSingleResult();
|
||||||
|
|
||||||
|
if (0 !== strpos(strtolower($rs['Type']), 'varbinary')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// As 'usr_login' field type is varbinary it can contain any charset (utf8 or latin1).
|
||||||
|
// Compare usr_login to usr_login converted to utf8>utf32>utf8
|
||||||
|
// will detect broken char for latin1 encoded string.
|
||||||
|
// Then detected 'usr_login' fields must be converted from latin1 to utf8.
|
||||||
|
$rs = $em->createNativeQuery(
|
||||||
|
'SELECT t.usr_id, t.login_utf8 FROM (
|
||||||
|
SELECT usr_id,
|
||||||
|
usr_login AS login_unknown_charset,
|
||||||
|
CONVERT(CAST(usr_login AS CHAR CHARACTER SET latin1) USING utf8) AS login_utf8,
|
||||||
|
CONVERT(CONVERT(CAST(usr_login AS CHAR CHARACTER SET utf8) USING utf32) USING utf8) AS login_utf8_utf32_utf8
|
||||||
|
FROM usr
|
||||||
|
) AS t
|
||||||
|
WHERE t.login_utf8_utf32_utf8 != t.login_unknown_charset',
|
||||||
|
$mappingFieldResult->addScalarResult('usr_id', 'usr_id')->addScalarResult('login_utf8', 'login_utf8')
|
||||||
|
)->getResult();
|
||||||
|
|
||||||
|
foreach ($rs as $row) {
|
||||||
|
$em->getConnection()->executeQuery(sprintf('UPDATE usr SET usr_login="%s" WHERE usr_id=%d', $row['login_utf8'], $row['usr_id']));
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (array(
|
||||||
|
// drop index
|
||||||
|
"ALTER TABLE usr DROP INDEX usr_login;",
|
||||||
|
// change field type
|
||||||
|
"ALTER TABLE usr MODIFY usr_login VARCHAR(128) CHARACTER SET utf8 COLLATE utf8_bin;",
|
||||||
|
// recreate index
|
||||||
|
"CREATE UNIQUE INDEX usr_login ON usr (usr_login);"
|
||||||
|
) as $sql) {
|
||||||
|
$em->getConnection()->executeQuery($sql);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
@@ -354,18 +354,6 @@ function returnElement(unId)
|
|||||||
var pref = new Array(0);
|
var pref = new Array(0);
|
||||||
var lastpref=null;
|
var lastpref=null;
|
||||||
|
|
||||||
function loaded()
|
|
||||||
{
|
|
||||||
self.focus();
|
|
||||||
write_valsug();
|
|
||||||
makeRestrict();
|
|
||||||
maketextaffich();
|
|
||||||
makeEmpty();
|
|
||||||
redrawme();
|
|
||||||
scan();
|
|
||||||
$("#iddivloading").hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
function Roll(im, x)
|
function Roll(im, x)
|
||||||
{
|
{
|
||||||
var s=document[im].src;
|
var s=document[im].src;
|
||||||
@@ -809,7 +797,18 @@ pref["{{ value['key']|escapeDoubleQuote|raw }}"].valsug["{{ value['value']|escap
|
|||||||
|
|
||||||
function getSruct()
|
function getSruct()
|
||||||
{
|
{
|
||||||
var dom = document.implementation.createDocument(null, 'baseprefs', null);
|
var parser = new DOMParser();
|
||||||
|
var dom = parser.parseFromString($('#txtareaxml').val(), 'text/xml');
|
||||||
|
var existing = dom.getElementsByTagName('sugestedValues');
|
||||||
|
|
||||||
|
if (existing.length !== 0) {
|
||||||
|
for (i in existing) {
|
||||||
|
if (existing[i].parentNode) {
|
||||||
|
existing[i].parentNode.removeChild(existing[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var values = dom.createElement('sugestedValues');
|
var values = dom.createElement('sugestedValues');
|
||||||
|
|
||||||
for (a in pref ) {
|
for (a in pref ) {
|
||||||
@@ -830,7 +829,11 @@ function getSruct()
|
|||||||
dom.getElementsByTagName('baseprefs')[0].appendChild(values);
|
dom.getElementsByTagName('baseprefs')[0].appendChild(values);
|
||||||
|
|
||||||
var serializer = new XMLSerializer();
|
var serializer = new XMLSerializer();
|
||||||
var xml = '<?xml version="1.0" encoding="UTF-8"?>' + serializer.serializeToString(dom);
|
var xml = serializer.serializeToString(dom);
|
||||||
|
|
||||||
|
if (xml.substring(0, 8) !== '<?xml ve') {
|
||||||
|
xml = '<?xml version="1.0" encoding="UTF-8"?>' + xml;
|
||||||
|
}
|
||||||
|
|
||||||
xml.replace('<sugestedValues>', statuscoll + otherFields + '<sugestedValues>');
|
xml.replace('<sugestedValues>', statuscoll + otherFields + '<sugestedValues>');
|
||||||
|
|
||||||
@@ -888,7 +891,6 @@ function view(type)
|
|||||||
|
|
||||||
newStr=getSruct();
|
newStr=getSruct();
|
||||||
|
|
||||||
console.log(newStr);
|
|
||||||
if($('#txtareaxml').length > 0 && newStr!=null )
|
if($('#txtareaxml').length > 0 && newStr!=null )
|
||||||
{
|
{
|
||||||
avantModif = newStr;
|
avantModif = newStr;
|
||||||
@@ -916,6 +918,11 @@ function view(type)
|
|||||||
}
|
}
|
||||||
|
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
|
write_valsug();
|
||||||
|
makeRestrict();
|
||||||
|
maketextaffich();
|
||||||
|
makeEmpty();
|
||||||
|
redrawme();
|
||||||
scan();
|
scan();
|
||||||
$("#iddivloading").hide();
|
$("#iddivloading").hide();
|
||||||
});
|
});
|
||||||
|
@@ -1,21 +1,4 @@
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var bodySize = {x:100,y:100};
|
|
||||||
|
|
||||||
function resize(){
|
|
||||||
|
|
||||||
bodySize.y = $(window).height();
|
|
||||||
bodySize.x = $(window).width();
|
|
||||||
|
|
||||||
var $heightd = $('#tab_demandes').outerHeight(true);
|
|
||||||
var maxSize = (bodySize.y - 120);
|
|
||||||
|
|
||||||
if($heightd > maxSize)
|
|
||||||
{
|
|
||||||
$('#tab_demandes').height(maxSize);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
|
|
||||||
resize();
|
resize();
|
||||||
@@ -216,7 +199,7 @@
|
|||||||
</thead>
|
</thead>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<div id="tab_demandes" style="overflow-y:scroll; overflow-x:hidden;">
|
<div id="tab_demandes">
|
||||||
{% set tableColls = table['coll'] %}
|
{% set tableColls = table['coll'] %}
|
||||||
{% for row in table['user'] %}
|
{% for row in table['user'] %}
|
||||||
<div class="well well-small">
|
<div class="well well-small">
|
||||||
@@ -253,9 +236,9 @@
|
|||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
{% for basId in colls %}
|
{% for basId in colls %}
|
||||||
<h1 style="word-wrap: break-word;">
|
<span style="font-weight:bold;font-size:14px;word-wrap: break-word;">
|
||||||
{{ basId| bas_labels(app) }}
|
{{ basId| bas_labels(app) }}
|
||||||
</h1>
|
</span>
|
||||||
{% set btn_value = row['usr_id'] ~ "_" ~ basId %}
|
{% set btn_value = row['usr_id'] ~ "_" ~ basId %}
|
||||||
<div class="btn-group btn-single-action" style="margin:auto auto 5px 0;">
|
<div class="btn-group btn-single-action" style="margin:auto auto 5px 0;">
|
||||||
<button data-event="deny" value="{{ btn_value }}" type="button" name="deny[]" class="btn deny-checker" title="{{ 'admin:: refuser l\'acces' | trans }}">
|
<button data-event="deny" value="{{ btn_value }}" type="button" name="deny[]" class="btn deny-checker" title="{{ 'admin:: refuser l\'acces' | trans }}">
|
||||||
|
Reference in New Issue
Block a user