mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-18 15:33:15 +00:00
PHRAS-3838 support expose v2 (#4307)
* add phrasea compose project name for traefik, fix exception on client_credentials grant type from expose * WIP * remove expose_version --------- authored-by: Arthur de Moulins <arthurdemoulins@gmail.com>
This commit is contained in:
2
.env
2
.env
@@ -148,6 +148,7 @@ PHRASEA_NETWORK_NAME=ps_internal
|
|||||||
|
|
||||||
PHRASEA_DOMAIN=phrasea.local
|
PHRASEA_DOMAIN=phrasea.local
|
||||||
PHRASEA_GATEWAY_IP=172.30.0.1
|
PHRASEA_GATEWAY_IP=172.30.0.1
|
||||||
|
PHRASEA_COMPOSE_PROJECT_NAME=ps
|
||||||
|
|
||||||
|
|
||||||
# --- Phraseanet container entrypoint settings -------------------------------------------------------------------------
|
# --- Phraseanet container entrypoint settings -------------------------------------------------------------------------
|
||||||
@@ -341,6 +342,7 @@ DB_BACKUP_INIT_RESTORE_LATEST=0
|
|||||||
# Every day at 03:00
|
# Every day at 03:00
|
||||||
# @run
|
# @run
|
||||||
#DB_BACKUP_CRON_TIME=0 3 * *
|
#DB_BACKUP_CRON_TIME=0 3 * *
|
||||||
|
DB_BACKUP_CRON_TIME=
|
||||||
|
|
||||||
# Make it small
|
# Make it small
|
||||||
# @run
|
# @run
|
||||||
|
@@ -23,11 +23,11 @@ Node `^5.0.0`.
|
|||||||
- Go to Phraseanet-production-client folder ```cd Phraseanet-production-client```
|
- Go to Phraseanet-production-client folder ```cd Phraseanet-production-client```
|
||||||
- Generate dist ```npm run dist```
|
- Generate dist ```npm run dist```
|
||||||
- Go back to Phraseanet folder : ```cd ..```
|
- Go back to Phraseanet folder : ```cd ..```
|
||||||
- Copy assets in www/assets folder ```make install_asset```
|
- Copy assets in www/assets folder ```make install_assets```
|
||||||
- ... or simply one cmd : ```cd Phraseanet-production-client && npm run dist && cd .. && make install_assets && rm -rf cache/*```
|
- ... or simply one cmd : ```cd Phraseanet-production-client && npm run dist && cd .. && make install_assets && rm -rf cache/*```
|
||||||
|
|
||||||
### Push
|
### Push
|
||||||
- If features is finished ```dist``` folder is to be commited with sources.
|
- If features is finished ```dist``` folder is to be committed with sources.
|
||||||
|
|
||||||
## Available commands
|
## Available commands
|
||||||
|
|
||||||
|
@@ -13,5 +13,5 @@ module.exports = {
|
|||||||
setupDir: _root + 'tests/setup/node.js',
|
setupDir: _root + 'tests/setup/node.js',
|
||||||
karmaConf: _root + 'config/karma.conf.js',
|
karmaConf: _root + 'config/karma.conf.js',
|
||||||
// change this version when you change JS file for lazy loading
|
// change this version when you change JS file for lazy loading
|
||||||
assetFileVersion: 85
|
assetFileVersion: 86
|
||||||
};
|
};
|
||||||
|
@@ -96,7 +96,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||||||
/******/ if (__webpack_require__.nc) {
|
/******/ if (__webpack_require__.nc) {
|
||||||
/******/ script.setAttribute("nonce", __webpack_require__.nc);
|
/******/ script.setAttribute("nonce", __webpack_require__.nc);
|
||||||
/******/ }
|
/******/ }
|
||||||
/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".js?v=85";
|
/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".js?v=86";
|
||||||
/******/ var timeout = setTimeout(onScriptComplete, 120000);
|
/******/ var timeout = setTimeout(onScriptComplete, 120000);
|
||||||
/******/ script.onerror = script.onload = onScriptComplete;
|
/******/ script.onerror = script.onload = onScriptComplete;
|
||||||
/******/ function onScriptComplete() {
|
/******/ function onScriptComplete() {
|
||||||
|
@@ -96,7 +96,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||||||
/******/ if (__webpack_require__.nc) {
|
/******/ if (__webpack_require__.nc) {
|
||||||
/******/ script.setAttribute("nonce", __webpack_require__.nc);
|
/******/ script.setAttribute("nonce", __webpack_require__.nc);
|
||||||
/******/ }
|
/******/ }
|
||||||
/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".min.js?v=85";
|
/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".min.js?v=86";
|
||||||
/******/ var timeout = setTimeout(onScriptComplete, 120000);
|
/******/ var timeout = setTimeout(onScriptComplete, 120000);
|
||||||
/******/ script.onerror = script.onload = onScriptComplete;
|
/******/ script.onerror = script.onload = onScriptComplete;
|
||||||
/******/ function onScriptComplete() {
|
/******/ function onScriptComplete() {
|
||||||
|
2
Phraseanet-production-client/dist/commons.js
vendored
2
Phraseanet-production-client/dist/commons.js
vendored
@@ -91,7 +91,7 @@
|
|||||||
/******/ if (__webpack_require__.nc) {
|
/******/ if (__webpack_require__.nc) {
|
||||||
/******/ script.setAttribute("nonce", __webpack_require__.nc);
|
/******/ script.setAttribute("nonce", __webpack_require__.nc);
|
||||||
/******/ }
|
/******/ }
|
||||||
/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".js?v=85";
|
/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".js?v=86";
|
||||||
/******/ var timeout = setTimeout(onScriptComplete, 120000);
|
/******/ var timeout = setTimeout(onScriptComplete, 120000);
|
||||||
/******/ script.onerror = script.onload = onScriptComplete;
|
/******/ script.onerror = script.onload = onScriptComplete;
|
||||||
/******/ function onScriptComplete() {
|
/******/ function onScriptComplete() {
|
||||||
|
@@ -91,7 +91,7 @@
|
|||||||
/******/ if (__webpack_require__.nc) {
|
/******/ if (__webpack_require__.nc) {
|
||||||
/******/ script.setAttribute("nonce", __webpack_require__.nc);
|
/******/ script.setAttribute("nonce", __webpack_require__.nc);
|
||||||
/******/ }
|
/******/ }
|
||||||
/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".min.js?v=85";
|
/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".min.js?v=86";
|
||||||
/******/ var timeout = setTimeout(onScriptComplete, 120000);
|
/******/ var timeout = setTimeout(onScriptComplete, 120000);
|
||||||
/******/ script.onerror = script.onload = onScriptComplete;
|
/******/ script.onerror = script.onload = onScriptComplete;
|
||||||
/******/ function onScriptComplete() {
|
/******/ function onScriptComplete() {
|
||||||
|
@@ -9901,8 +9901,6 @@ Object.defineProperty(exports, "__esModule", {
|
|||||||
value: true
|
value: true
|
||||||
});
|
});
|
||||||
|
|
||||||
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
|
|
||||||
|
|
||||||
var _jquery = __webpack_require__(0);
|
var _jquery = __webpack_require__(0);
|
||||||
|
|
||||||
var _jquery2 = _interopRequireDefault(_jquery);
|
var _jquery2 = _interopRequireDefault(_jquery);
|
||||||
@@ -10936,17 +10934,18 @@ var workzone = function workzone(services) {
|
|||||||
var publicationId = (0, _jquery2.default)(this).attr('data-publication-id');
|
var publicationId = (0, _jquery2.default)(this).attr('data-publication-id');
|
||||||
var exposeName = (0, _jquery2.default)('#expose_list').val();
|
var exposeName = (0, _jquery2.default)('#expose_list').val();
|
||||||
var assetsContainer = (0, _jquery2.default)(this).parents('.expose_item_deployed');
|
var assetsContainer = (0, _jquery2.default)(this).parents('.expose_item_deployed');
|
||||||
var positions = [];
|
var order = [];
|
||||||
|
|
||||||
(0, _jquery2.default)('.assets_list .chim-wrapper').each(function (i, el) {
|
(0, _jquery2.default)('.assets_list .chim-wrapper').each(function (i, el) {
|
||||||
positions[(0, _jquery2.default)(this).attr('data-pub-asset-id')] = i + 1;
|
order.push((0, _jquery2.default)(this).attr('data-pub-asset-id'));
|
||||||
});
|
});
|
||||||
|
|
||||||
_jquery2.default.ajax({
|
_jquery2.default.ajax({
|
||||||
type: 'POST',
|
type: 'POST',
|
||||||
url: '/prod/expose/publication/update-assets-order/?exposeName=' + exposeName,
|
url: '/prod/expose/publication/update-assets-order/?exposeName=' + exposeName,
|
||||||
data: {
|
data: {
|
||||||
listPositions: JSON.stringify(_extends({}, positions))
|
order: order,
|
||||||
|
publicationId: publicationId
|
||||||
},
|
},
|
||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
success: function success(data) {
|
success: function success(data) {
|
||||||
|
@@ -9901,8 +9901,6 @@ Object.defineProperty(exports, "__esModule", {
|
|||||||
value: true
|
value: true
|
||||||
});
|
});
|
||||||
|
|
||||||
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
|
|
||||||
|
|
||||||
var _jquery = __webpack_require__(0);
|
var _jquery = __webpack_require__(0);
|
||||||
|
|
||||||
var _jquery2 = _interopRequireDefault(_jquery);
|
var _jquery2 = _interopRequireDefault(_jquery);
|
||||||
@@ -10936,17 +10934,18 @@ var workzone = function workzone(services) {
|
|||||||
var publicationId = (0, _jquery2.default)(this).attr('data-publication-id');
|
var publicationId = (0, _jquery2.default)(this).attr('data-publication-id');
|
||||||
var exposeName = (0, _jquery2.default)('#expose_list').val();
|
var exposeName = (0, _jquery2.default)('#expose_list').val();
|
||||||
var assetsContainer = (0, _jquery2.default)(this).parents('.expose_item_deployed');
|
var assetsContainer = (0, _jquery2.default)(this).parents('.expose_item_deployed');
|
||||||
var positions = [];
|
var order = [];
|
||||||
|
|
||||||
(0, _jquery2.default)('.assets_list .chim-wrapper').each(function (i, el) {
|
(0, _jquery2.default)('.assets_list .chim-wrapper').each(function (i, el) {
|
||||||
positions[(0, _jquery2.default)(this).attr('data-pub-asset-id')] = i + 1;
|
order.push((0, _jquery2.default)(this).attr('data-pub-asset-id'));
|
||||||
});
|
});
|
||||||
|
|
||||||
_jquery2.default.ajax({
|
_jquery2.default.ajax({
|
||||||
type: 'POST',
|
type: 'POST',
|
||||||
url: '/prod/expose/publication/update-assets-order/?exposeName=' + exposeName,
|
url: '/prod/expose/publication/update-assets-order/?exposeName=' + exposeName,
|
||||||
data: {
|
data: {
|
||||||
listPositions: JSON.stringify(_extends({}, positions))
|
order: order,
|
||||||
|
publicationId: publicationId
|
||||||
},
|
},
|
||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
success: function success(data) {
|
success: function success(data) {
|
||||||
|
@@ -1014,17 +1014,18 @@ const workzone = (services) => {
|
|||||||
let publicationId = $(this).attr('data-publication-id');
|
let publicationId = $(this).attr('data-publication-id');
|
||||||
let exposeName = $('#expose_list').val();
|
let exposeName = $('#expose_list').val();
|
||||||
let assetsContainer = $(this).parents('.expose_item_deployed');
|
let assetsContainer = $(this).parents('.expose_item_deployed');
|
||||||
let positions = [];
|
const order = [];
|
||||||
|
|
||||||
$('.assets_list .chim-wrapper').each(function(i, el){
|
$('.assets_list .chim-wrapper').each(function(i, el){
|
||||||
positions[$(this).attr('data-pub-asset-id')] = i + 1;
|
order.push($(this).attr('data-pub-asset-id'));
|
||||||
});
|
});
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: 'POST',
|
type: 'POST',
|
||||||
url: `/prod/expose/publication/update-assets-order/?exposeName=${exposeName}`,
|
url: `/prod/expose/publication/update-assets-order/?exposeName=${exposeName}`,
|
||||||
data: {
|
data: {
|
||||||
listPositions: JSON.stringify({ ...positions })
|
order,
|
||||||
|
publicationId,
|
||||||
},
|
},
|
||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
success: function (data) {
|
success: function (data) {
|
||||||
|
@@ -5,8 +5,11 @@ services:
|
|||||||
- ../:/var/alchemy
|
- ../:/var/alchemy
|
||||||
- .:/var/alchemy/Phraseanet
|
- .:/var/alchemy/Phraseanet
|
||||||
- ./docker/nginx/root/entrypoint.sh:/entrypoint.sh
|
- ./docker/nginx/root/entrypoint.sh:/entrypoint.sh
|
||||||
networks:
|
gateway-traefik:
|
||||||
- internal
|
volumes:
|
||||||
|
- ../:/var/alchemy
|
||||||
|
- .:/var/alchemy/Phraseanet
|
||||||
|
- ./docker/nginx/root/entrypoint.sh:/entrypoint.sh
|
||||||
builder:
|
builder:
|
||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
|
@@ -2,8 +2,8 @@ version: "3.9"
|
|||||||
|
|
||||||
networks:
|
networks:
|
||||||
phrasea:
|
phrasea:
|
||||||
external:
|
|
||||||
name: ${PHRASEA_NETWORK_NAME}
|
name: ${PHRASEA_NETWORK_NAME}
|
||||||
|
external: true
|
||||||
|
|
||||||
services:
|
services:
|
||||||
gateway-traefik:
|
gateway-traefik:
|
||||||
@@ -15,6 +15,7 @@ services:
|
|||||||
- "traefik.docker.network=${PHRASEA_NETWORK_NAME}"
|
- "traefik.docker.network=${PHRASEA_NETWORK_NAME}"
|
||||||
- "traefik.http.routers.phraseanet.rule=Host(`${PHRASEANET_HOSTNAME}`)"
|
- "traefik.http.routers.phraseanet.rule=Host(`${PHRASEANET_HOSTNAME}`)"
|
||||||
- "traefik.http.routers.phraseanet.tls=true"
|
- "traefik.http.routers.phraseanet.tls=true"
|
||||||
|
- "traefik.project_name=${PHRASEA_COMPOSE_PROJECT_NAME}"
|
||||||
|
|
||||||
phraseanet:
|
phraseanet:
|
||||||
extra_hosts:
|
extra_hosts:
|
||||||
|
@@ -173,7 +173,8 @@ class PSExposeController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function listPublicationAction(PhraseaApplication $app, Request $request)
|
public function listPublicationAction(PhraseaApplication $app, Request $request)
|
||||||
{
|
{
|
||||||
if ($request->get('exposeName') == null) {
|
$exposeName = $request->get('exposeName');
|
||||||
|
if ($exposeName == null) {
|
||||||
return $app->json([
|
return $app->json([
|
||||||
'twig' => $this->render("prod/WorkZone/ExposeList.html.twig", [
|
'twig' => $this->render("prod/WorkZone/ExposeList.html.twig", [
|
||||||
'publications' => [],
|
'publications' => [],
|
||||||
@@ -182,10 +183,10 @@ class PSExposeController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
$exposeConfiguration = $app['conf']->get(['phraseanet-service', 'expose-service', 'exposes'], []);
|
$exposeConfiguration = $app['conf']->get(['phraseanet-service', 'expose-service', 'exposes'], []);
|
||||||
$exposeConfiguration = $exposeConfiguration[$request->get('exposeName')];
|
$exposeConfiguration = $exposeConfiguration[$exposeName];
|
||||||
|
|
||||||
$session = $this->getSession();
|
$session = $this->getSession();
|
||||||
$passSessionName = $this->getPassSessionName($request->get('exposeName'));
|
$passSessionName = $this->getPassSessionName($exposeName);
|
||||||
$providerId = $session->get('auth_provider.id');
|
$providerId = $session->get('auth_provider.id');
|
||||||
|
|
||||||
if (!$session->has($passSessionName) && $providerId != null) {
|
if (!$session->has($passSessionName) && $providerId != null) {
|
||||||
@@ -193,7 +194,7 @@ class PSExposeController extends Controller
|
|||||||
$provider = $this->getAuthenticationProviders()->get($providerId);
|
$provider = $this->getAuthenticationProviders()->get($providerId);
|
||||||
if ($provider->getType() == 'PsAuth') {
|
if ($provider->getType() == 'PsAuth') {
|
||||||
$session->set($passSessionName, $provider->getAccessToken());
|
$session->set($passSessionName, $provider->getAccessToken());
|
||||||
$session->set($this->getLoginSessionName($request->get('exposeName')), $provider->getUserName());
|
$session->set($this->getLoginSessionName($exposeName), $provider->getUserName());
|
||||||
}
|
}
|
||||||
} catch(\Exception $e) {
|
} catch(\Exception $e) {
|
||||||
}
|
}
|
||||||
@@ -202,12 +203,12 @@ class PSExposeController extends Controller
|
|||||||
if (!$session->has($passSessionName) && $exposeConfiguration['connection_kind'] == 'password' && $request->get('format') != 'json') {
|
if (!$session->has($passSessionName) && $exposeConfiguration['connection_kind'] == 'password' && $request->get('format') != 'json') {
|
||||||
return $app->json([
|
return $app->json([
|
||||||
'twig' => $this->render("prod/WorkZone/ExposeOauthLogin.html.twig", [
|
'twig' => $this->render("prod/WorkZone/ExposeOauthLogin.html.twig", [
|
||||||
'exposeName' => $request->get('exposeName')
|
'exposeName' => $exposeName
|
||||||
])
|
])
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
$accessToken = $this->getAndSaveToken($request->get('exposeName'));
|
$accessToken = $this->getAndSaveToken($exposeName);
|
||||||
|
|
||||||
if ($exposeConfiguration == null ) {
|
if ($exposeConfiguration == null ) {
|
||||||
return $app->json([
|
return $app->json([
|
||||||
@@ -228,7 +229,7 @@ class PSExposeController extends Controller
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
$uri = '/publications?flatten=true&order[createdAt]=desc';
|
$uri = '/publications?flatten=true&order[createdAt]=desc';
|
||||||
if ($request->get('mine')) {
|
if ($request->get('mine') && $exposeConfiguration['connection_kind'] === 'password') {
|
||||||
$uri .= '&mine=true';
|
$uri .= '&mine=true';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -285,8 +286,8 @@ class PSExposeController extends Controller
|
|||||||
|
|
||||||
return $app->json([
|
return $app->json([
|
||||||
'twig' => $exposeListTwig,
|
'twig' => $exposeListTwig,
|
||||||
'exposeName' => $request->get('exposeName'),
|
'exposeName' => $exposeName,
|
||||||
'exposeLogin' => $session->get($this->getLoginSessionName($request->get('exposeName'))),
|
'exposeLogin' => $session->get($this->getLoginSessionName($exposeName)),
|
||||||
'basePath' => $basePath
|
'basePath' => $basePath
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
@@ -449,9 +450,11 @@ class PSExposeController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function getPublicationAssetsAction(PhraseaApplication $app, Request $request)
|
public function getPublicationAssetsAction(PhraseaApplication $app, Request $request)
|
||||||
{
|
{
|
||||||
|
$exposeName = $request->get('exposeName');
|
||||||
|
$config = $this->getExposeConfiguration($exposeName);
|
||||||
$page = $request->get('page')?:1;
|
$page = $request->get('page')?:1;
|
||||||
|
|
||||||
$exposeClient = $this->getExposeClient($request->get('exposeName'));
|
$exposeClient = $this->getExposeClient($exposeName);
|
||||||
|
|
||||||
if ($exposeClient == null) {
|
if ($exposeClient == null) {
|
||||||
return $app->json([
|
return $app->json([
|
||||||
@@ -460,7 +463,7 @@ class PSExposeController extends Controller
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
$accessToken = $this->getAndSaveToken($request->get('exposeName'));
|
$accessToken = $this->getAndSaveToken($exposeName);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$resPublication = $exposeClient->get('/publications/' . $request->get('publicationId') . '/assets?page=' . $page , [
|
$resPublication = $exposeClient->get('/publications/' . $request->get('publicationId') . '/assets?page=' . $page , [
|
||||||
@@ -483,16 +486,24 @@ class PSExposeController extends Controller
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
$pubAssets = [];
|
$assets = [];
|
||||||
$totalItems = 0;
|
$totalItems = 0;
|
||||||
if ($resPublication->getStatusCode() == 200) {
|
if ($resPublication->getStatusCode() == 200) {
|
||||||
$body = json_decode($resPublication->getBody()->getContents(),true);
|
$body = json_decode($resPublication->getBody()->getContents(),true);
|
||||||
$pubAssets = $body['hydra:member'];
|
$assets = $body['hydra:member'];
|
||||||
|
|
||||||
|
if (!empty($assets) && isset($assets[0]['asset'])) {
|
||||||
|
// expose v1 BC: flatten assets
|
||||||
|
$assets = array_map(function (array $pubAsset): array {
|
||||||
|
return $pubAsset['asset'];
|
||||||
|
}, $assets);
|
||||||
|
}
|
||||||
|
|
||||||
$totalItems = $body['hydra:totalItems'];
|
$totalItems = $body['hydra:totalItems'];
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->render("prod/WorkZone/ExposePublicationAssets.html.twig", [
|
return $this->render('prod/WorkZone/ExposePublicationAssets.html.twig', [
|
||||||
'pubAssets' => $pubAssets,
|
'assets' => $assets,
|
||||||
'publicationId' => $request->get('publicationId'),
|
'publicationId' => $request->get('publicationId'),
|
||||||
'capabilitiesDelete' => $request->get('capabilitiesDelete'),
|
'capabilitiesDelete' => $request->get('capabilitiesDelete'),
|
||||||
'capabilitiesEdit' => $request->get('capabilitiesEdit'),
|
'capabilitiesEdit' => $request->get('capabilitiesEdit'),
|
||||||
@@ -684,7 +695,7 @@ class PSExposeController extends Controller
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Update assets positions
|
* Update assets positions
|
||||||
* Require params "exposeName" and "listPositions" of the assets
|
* Require params "exposeName", "publicationId" and "order" of the assets
|
||||||
*
|
*
|
||||||
* @param PhraseaApplication $app
|
* @param PhraseaApplication $app
|
||||||
* @param Request $request
|
* @param Request $request
|
||||||
@@ -705,10 +716,15 @@ class PSExposeController extends Controller
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
$accessToken = $this->getAndSaveToken($exposeName);
|
$accessToken = $this->getAndSaveToken($exposeName);
|
||||||
$listPositions = json_decode($request->get('listPositions'), true);
|
$exposeClient->post(sprintf('/publications/%s/sort-assets', $request->get('publicationId', [])), [
|
||||||
foreach ($listPositions as $pubAssetId => $pos) {
|
'headers' => [
|
||||||
$this->putPublicationAsset($exposeClient, $pubAssetId, $accessToken, ['position' => $pos]);
|
'Authorization' => 'Bearer '. $accessToken,
|
||||||
}
|
'Content-Type' => 'application/json'
|
||||||
|
],
|
||||||
|
'json' => [
|
||||||
|
'order' => $request->get('order', []),
|
||||||
|
],
|
||||||
|
]);
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
return $app->json([
|
return $app->json([
|
||||||
'success' => false,
|
'success' => false,
|
||||||
@@ -1253,9 +1269,10 @@ class PSExposeController extends Controller
|
|||||||
} else {
|
} else {
|
||||||
$proxyConfig = new NetworkProxiesConfiguration($this->app['conf']);
|
$proxyConfig = new NetworkProxiesConfiguration($this->app['conf']);
|
||||||
|
|
||||||
$oauthClient = $proxyConfig->getClientWithOptions([]);
|
$oauthClient = $proxyConfig->getClientWithOptions([
|
||||||
|
'verify' => $config['verify_ssl'],
|
||||||
|
]);
|
||||||
|
|
||||||
try {
|
|
||||||
$response = $oauthClient->post($config['expose_base_uri'] . '/oauth/v2/token', [
|
$response = $oauthClient->post($config['expose_base_uri'] . '/oauth/v2/token', [
|
||||||
'json' => [
|
'json' => [
|
||||||
'client_id' => $config['expose_client_id'],
|
'client_id' => $config['expose_client_id'],
|
||||||
@@ -1264,9 +1281,6 @@ class PSExposeController extends Controller
|
|||||||
'scope' => 'publish'
|
'scope' => 'publish'
|
||||||
]
|
]
|
||||||
]);
|
]);
|
||||||
} catch(\Exception $e) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($response->getStatusCode() !== 200) {
|
if ($response->getStatusCode() !== 200) {
|
||||||
return null;
|
return null;
|
||||||
@@ -1307,17 +1321,6 @@ class PSExposeController extends Controller
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function putPublicationAsset(Client $exposeClient, $publicationAssetId, $token, $publicationAssetData)
|
|
||||||
{
|
|
||||||
return $exposeClient->put('/publication-assets/' . $publicationAssetId, [
|
|
||||||
'headers' => [
|
|
||||||
'Authorization' => 'Bearer '. $token,
|
|
||||||
'Content-Type' => 'application/json'
|
|
||||||
],
|
|
||||||
'json' => $publicationAssetData
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
private function removePublication(Client $exposeClient, $publicationId, $token)
|
private function removePublication(Client $exposeClient, $publicationId, $token)
|
||||||
{
|
{
|
||||||
return $exposeClient->delete('/publications/' . $publicationId, [
|
return $exposeClient->delete('/publications/' . $publicationId, [
|
||||||
|
@@ -67,7 +67,7 @@ class PSExposeConfigurationType extends AbstractType implements DataMapperInterf
|
|||||||
* exposes:
|
* exposes:
|
||||||
* expose_test:
|
* expose_test:
|
||||||
* activate_expose: true
|
* activate_expose: true
|
||||||
* connection_kind: account
|
* connection_kind: password
|
||||||
* expose_front_uri: 'localhost:8080'
|
* expose_front_uri: 'localhost:8080'
|
||||||
* expose_base_uri: 'localhost:8082'
|
* expose_base_uri: 'localhost:8082'
|
||||||
* client_secret: secret
|
* client_secret: secret
|
||||||
|
@@ -60,7 +60,7 @@ class PhraseanetExtension extends \Twig_Extension
|
|||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
// change this version when you change JS file to force the navigation to reload js file
|
// change this version when you change JS file to force the navigation to reload js file
|
||||||
'assetFileVersion' => 85
|
'assetFileVersion' => 86
|
||||||
];
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -64,10 +64,10 @@ class User extends \Alchemy\Phrasea\Model\Entities\User implements \Doctrine\ORM
|
|||||||
public function __sleep()
|
public function __sleep()
|
||||||
{
|
{
|
||||||
if ($this->__isInitialized__) {
|
if ($this->__isInitialized__) {
|
||||||
return ['__isInitialized__', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'id', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'login', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'email', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'password', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'nonce', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'saltedPassword', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'firstName', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'lastName', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'gender', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'address', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'city', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'country', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'zipCode', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'geonameId', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'locale', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'timezone', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'job', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'activity', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'company', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'phone', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'fax', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'admin', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'guest', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'mailNotificationsActivated', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'requestNotificationsActivated', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'ldapCreated', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'lastAppliedTemplate', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'pushList', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'canChangeProfil', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'canChangeFtpProfil', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'lastConnection', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'mailLocked', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'deleted', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'created', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'updated', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'templateOwner', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'ftpCredential', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'queries', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'settings', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'notificationSettings', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'grantedApi'];
|
return ['__isInitialized__', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'id', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'login', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'email', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'password', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'nonce', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'saltedPassword', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'firstName', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'lastName', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'gender', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'address', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'city', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'country', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'zipCode', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'geonameId', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'locale', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'timezone', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'job', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'activity', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'company', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'phone', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'fax', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'admin', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'guest', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'mailNotificationsActivated', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'requestNotificationsActivated', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'ldapCreated', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'lastAppliedTemplate', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'pushList', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'canChangeProfil', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'canChangeFtpProfil', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'lastConnection', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'mailLocked', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'deleted', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'created', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'updated', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'templateOwner', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'ftpCredential', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'queries', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'settings', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'notificationSettings', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'grantedApi', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'nbInactivityEmail', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'lastInactivityEmail'];
|
||||||
}
|
}
|
||||||
|
|
||||||
return ['__isInitialized__', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'id', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'login', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'email', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'password', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'nonce', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'saltedPassword', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'firstName', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'lastName', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'gender', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'address', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'city', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'country', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'zipCode', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'geonameId', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'locale', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'timezone', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'job', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'activity', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'company', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'phone', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'fax', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'admin', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'guest', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'mailNotificationsActivated', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'requestNotificationsActivated', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'ldapCreated', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'lastAppliedTemplate', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'pushList', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'canChangeProfil', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'canChangeFtpProfil', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'lastConnection', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'mailLocked', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'deleted', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'created', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'updated', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'templateOwner', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'ftpCredential', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'queries', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'settings', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'notificationSettings', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'grantedApi'];
|
return ['__isInitialized__', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'id', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'login', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'email', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'password', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'nonce', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'saltedPassword', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'firstName', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'lastName', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'gender', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'address', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'city', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'country', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'zipCode', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'geonameId', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'locale', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'timezone', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'job', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'activity', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'company', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'phone', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'fax', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'admin', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'guest', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'mailNotificationsActivated', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'requestNotificationsActivated', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'ldapCreated', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'lastAppliedTemplate', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'pushList', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'canChangeProfil', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'canChangeFtpProfil', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'lastConnection', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'mailLocked', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'deleted', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'created', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'updated', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'templateOwner', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'ftpCredential', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'queries', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'settings', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'notificationSettings', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'grantedApi', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'nbInactivityEmail', '' . "\0" . 'Alchemy\\Phrasea\\Model\\Entities\\User' . "\0" . 'lastInactivityEmail'];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1068,6 +1068,50 @@ class User extends \Alchemy\Phrasea\Model\Entities\User implements \Doctrine\ORM
|
|||||||
return parent::setGrantedApi($grantedApi);
|
return parent::setGrantedApi($grantedApi);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritDoc}
|
||||||
|
*/
|
||||||
|
public function setNbInactivityEmail($nbEnactivityEmail)
|
||||||
|
{
|
||||||
|
|
||||||
|
$this->__initializer__ && $this->__initializer__->__invoke($this, 'setNbInactivityEmail', [$nbEnactivityEmail]);
|
||||||
|
|
||||||
|
return parent::setNbInactivityEmail($nbEnactivityEmail);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritDoc}
|
||||||
|
*/
|
||||||
|
public function getNbInactivityEmail()
|
||||||
|
{
|
||||||
|
|
||||||
|
$this->__initializer__ && $this->__initializer__->__invoke($this, 'getNbInactivityEmail', []);
|
||||||
|
|
||||||
|
return parent::getNbInactivityEmail();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritDoc}
|
||||||
|
*/
|
||||||
|
public function setLastInactivityEmail($lastInactivityEmail)
|
||||||
|
{
|
||||||
|
|
||||||
|
$this->__initializer__ && $this->__initializer__->__invoke($this, 'setLastInactivityEmail', [$lastInactivityEmail]);
|
||||||
|
|
||||||
|
return parent::setLastInactivityEmail($lastInactivityEmail);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritDoc}
|
||||||
|
*/
|
||||||
|
public function getLastInactivityEmail()
|
||||||
|
{
|
||||||
|
|
||||||
|
$this->__initializer__ && $this->__initializer__->__invoke($this, 'getLastInactivityEmail', []);
|
||||||
|
|
||||||
|
return parent::getLastInactivityEmail();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
|
@@ -55,19 +55,19 @@
|
|||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% for pubAsset in pubAssets %}
|
{% for asset in assets %}
|
||||||
<div class="chim-wrapper" data-pub-asset-id="{{ pubAsset.id }}">
|
<div class="chim-wrapper" data-pub-asset-id="{{ asset.id }}">
|
||||||
<div class="chim-content">
|
<div class="chim-content">
|
||||||
<div class="CHIM diapo">
|
<div class="CHIM diapo">
|
||||||
<div class="thumb_wrapper">
|
<div class="thumb_wrapper">
|
||||||
<img
|
<img
|
||||||
data-kind="image" oncontextMenu="return(false);"
|
data-kind="image" oncontextMenu="return(false);"
|
||||||
src="{{ pubAsset.asset.thumbUrl|trim }}" data-original="{{ pubAsset.asset.thumbUrl|trim }}" ondragstart="return false;">
|
src="{{ asset.thumbUrl|trim }}" data-original="{{ asset.thumbUrl|trim }}" ondragstart="return false;">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% if capabilitiesEdit %}
|
{% if capabilitiesEdit %}
|
||||||
<div class="set-cover" style="position: absolute;bottom: 0;cursor: pointer;" title="Set as Cover"
|
<div class="set-cover" style="position: absolute;bottom: 0;cursor: pointer;" title="Set as Cover"
|
||||||
data-publication-id="{{ pubAsset.publication.id }}" data-asset-id="{{ pubAsset.asset.id }}">
|
data-publication-id="{{ publicationId }}" data-asset-id="{{ asset.id }}">
|
||||||
|
|
||||||
<img src="/assets/common/images/icons/icon_story.gif" title="Set as Cover">
|
<img src="/assets/common/images/icons/icon_story.gif" title="Set as Cover">
|
||||||
</div>
|
</div>
|
||||||
@@ -75,7 +75,7 @@
|
|||||||
|
|
||||||
{% if capabilitiesDelete %}
|
{% if capabilitiesDelete %}
|
||||||
<div class="bottom">
|
<div class="bottom">
|
||||||
<a class="WorkZoneElementRemover removeAsset" data-asset-id="{{ pubAsset.asset.id }}" data-publication-id="{{ pubAsset.publication.id }}">
|
<a class="WorkZoneElementRemover removeAsset" data-asset-id="{{ asset.id }}" data-publication-id="{{ publicationId }}">
|
||||||
<i class="icomoon icon-circle fa-stack-2x" aria-hidden="true"></i>
|
<i class="icomoon icon-circle fa-stack-2x" aria-hidden="true"></i>
|
||||||
<i class="icomoon icon-round-close-24px fa-stack-1x " aria-hidden="true"></i>
|
<i class="icomoon icon-round-close-24px fa-stack-1x " aria-hidden="true"></i>
|
||||||
</a>
|
</a>
|
||||||
|
Reference in New Issue
Block a user