diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/FileController.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/FileController.php index 43773ba4..7db90415 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/FileController.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Controller/FileController.php @@ -48,6 +48,7 @@ class FileController extends Controller // Récupérer en session le mode de visualisation $sessionviewdirectory = $this->get('session')->get('sessionviewdirectory'); if(!is_array($sessionviewdirectory)) $sessionviewdirectory=[$directory=>$defaultview]; + if(!array_key_exists($directory,$sessionviewdirectory)) $sessionviewdirectory[$directory]=$defaultview; if($view) $sessionviewdirectory[$directory] = $view; $this->get('session')->set('sessionviewdirectory',$sessionviewdirectory); diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Command/InitDataCommand.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Command/InitDataCommand.php index 4e3df55f..e4c1e26f 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Command/InitDataCommand.php +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Command/InitDataCommand.php @@ -1350,7 +1350,7 @@ class InitDataCommand extends ContainerAwareCommand $entityWidget->setBorder(true); $entityWidget->setOpened(true); $entityWidget->setAccess(["config","group"]); - $parameter = json_decode('{"fields": [{"id": "apponly", "loc": "col1", "type": "apponly", "label": "Afficher", "value": "0", "mandatory": "true"}]}'); + $parameter = json_decode('{"fields": [{"id": "apponly", "loc": "col1", "type": "apponly", "label": "Afficher", "value": "0", "mandatory": "true"},{"id": "modelist", "loc": "col1", "type": "modelist", "label": "Mode Affichage", "value": "0", "mandatory": "true"}]}'); $entityWidget->setParameter($parameter); $em->persist($entityWidget); } diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/FrameController.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/FrameController.php new file mode 100644 index 00000000..3ecb370c --- /dev/null +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/FrameController.php @@ -0,0 +1,114 @@ +getPermission($access,$directory,$widget,$grp); + $subdirectory=$request->get("subdirectory"); + $clear=$request->get("clear"); + $view=$request->get("view"); + $defaultview=$request->get("defaultview"); + + // Récupérer en session le dernier subdirectory visité + $sessionsubdirectory = $this->get('session')->get('sessionsubdirectory'); + if(!is_array($sessionsubdirectory)) $sessionsubdirectory=[]; + + if($clear) { + if(array_key_exists($directory,$sessionsubdirectory)) unset($sessionsubdirectory[$directory]); + $this->get('session')->set('sessionsubdirectory',$sessionsubdirectory); + } + else { + if(!$subdirectory) { + if(array_key_exists($directory,$sessionsubdirectory)) $subdirectory=$sessionsubdirectory[$directory]; + } + else { + $sessionsubdirectory[$directory] = $subdirectory; + $this->get('session')->set('sessionsubdirectory',$sessionsubdirectory); + } + } + + // Récupérer en session le mode de visualisation + $sessionviewdirectory = $this->get('session')->get('sessionviewdirectory'); + if(!is_array($sessionviewdirectory)) $sessionviewdirectory=[$directory=>$defaultview]; + if(!array_key_exists($directory,$sessionviewdirectory)) $sessionviewdirectory[$directory]=$defaultview; + if($view) + $sessionviewdirectory[$directory] = $view; + $this->get('session')->set('sessionviewdirectory',$sessionviewdirectory); + + // Initialiser le service only + $onlyservice = $this->container->get('cadoles.portal.service.only'); + $firstfolder=($subdirectory?$subdirectory:null); + $files=$onlyservice->getDocument($grp->getId(), $firstfolder, $parents, $tasks); + + // Récupération du numéro de groupe oo + if($grp) $idonly= $grp->getIdOnlyoffice(); + else $idonly=0; + + // Récupération des paramétres du widget + $apponly=0; + foreach($widget->getParameter()["fields"] as $parameter) { + switch($parameter["id"]) { + case "apponly": + $apponly=$parameter["value"]; + break; + } + } + + return $this->render('CadolesPortalBundle:Frame:only.html.twig',[ + 'useheader' => false, + 'usemenu' => false, + 'usesidebar' => false, + 'access' => $access, + 'urlonly' => $this->getParameter("widonlyoffice_url")."/products/projects/tmdocs.aspx?prjID=".$idonly."#".$firstfolder, + 'directory' => $directory, + 'parents' => $parents, + 'subdirectory' => $subdirectory, + 'files' => $files, + 'canupdate' => $canupdate, + 'view' => $sessionviewdirectory[$directory], + 'tasks' => $tasks, + 'apponly' => $apponly + ]); + } + + + public function getPermission($access, $id, &$widget, &$group) { + $em = $this->getDoctrine()->getManager(); + + // Récupération du widget & de la page + $widget=$em->getRepository("CadolesPortalBundle:Pagewidget")->find($id); + if (!$widget) throw $this->createNotFoundException('Unable to find entity.'); + $page=$widget->getPage(); + + $groups=$page->getGroups(); + $group=$groups[0]; + + if($access=="user") { + // On s'assure que l'utilisateur à la permission de voir + $em->getRepository("CadolesPortalBundle:Page")->getPermission($this->getUser(),$page,$cansee,$canupdate); + if(!$cansee) throw $this->createNotFoundException('Permission denied'); + } + else $canupdate=true; + + return $canupdate; + } +} diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/PagewidgetController.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/PagewidgetController.php index 49c28fc1..5878dcbd 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/PagewidgetController.php +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/PagewidgetController.php @@ -2388,22 +2388,32 @@ class PagewidgetController extends Controller } + /* $onlyservice = $this->container->get('cadoles.portal.service.only'); - $files=$onlyservice->getDocument($group, $folders, $firstfolder, $tasks); + $firstfolder=null; + $files=$onlyservice->getDocument($group, $firstfolder, $tasks); + $grp=null; if($group) $grp=$em->getRepository("CadolesCoreBundle:Group")->find($group); if($grp) $idonly= $grp->getIdOnlyoffice(); else $idonly=0; + */ // Récupération des paramétres du widget $apponly=0; + $view="small"; foreach($entity->getParameter()["fields"] as $parameter) { switch($parameter["id"]) { case "apponly": $apponly=$parameter["value"]; - break; + break; + case "modelist": + $view=($parameter["value"]==0?"small":"list"); + break; } } + + /* // Render return $this->render($this->labelentity.':viewonlydoc.html.twig', [ @@ -2411,13 +2421,22 @@ class PagewidgetController extends Controller 'canadd' => $cansee, 'canupdate' => $cansee, 'firstfolder' => $firstfolder, - 'folders' => $folders, 'tasks' => $tasks, 'urlonly' => $this->getParameter("widonlyoffice_url")."/products/projects/projects.aspx?prjID=".$idonly, 'apponly' => $apponly, 'files' => $files, 'access' => $access, ]); + */ + + return $this->render($this->labelentity.':viewonlydoc.html.twig', [ + 'entity' => $entity, + 'canadd' => $canupdate, + 'canupdate' => $canupdate, + 'access' => $access, + 'directory' => $id, + 'view' => $view, + ]); } } diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Resources/config/routing.yml b/src/ninegate-1.0/src/Cadoles/PortalBundle/Resources/config/routing.yml index c98eacc8..eafa3dc3 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Resources/config/routing.yml +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Resources/config/routing.yml @@ -1152,3 +1152,13 @@ cadoles_portal_user_panelwidget_view_onlydoc: path: /pagewidget/view/onlydoc/{id} defaults: { _controller: CadolesPortalBundle:Pagewidget:viewonlydoc, access: user } + +#== FRAME ========================================================================================================================================== + +cadoles_portal_config_frame_only: + path: /config/frame/only/{directory} + defaults: { _controller: CadolesPortalBundle:Frame:only, access: config } + +cadoles_portal_user_frame_only: + path: /pagewidget/frame/only/{directory} + defaults: { _controller: CadolesPortalBundle:Frame:only, access: user } diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Resources/views/Frame/only.html.twig b/src/ninegate-1.0/src/Cadoles/PortalBundle/Resources/views/Frame/only.html.twig new file mode 100644 index 00000000..788b249c --- /dev/null +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Resources/views/Frame/only.html.twig @@ -0,0 +1,179 @@ +{% extends '@CadolesCore/base.html.twig' %} + +{% block localstyle %} + #page-wrapper { + min-height:0px !important; + } + + .grid .grid-list .grid-item-logo { + margin:0px; + } + + .grid .grid-list .grid-item-title h2 { + font-size: 14px; + line-height: 22px; + height: 22px; + } + + .grid-item-title h2 { + text-transform: initial !important; + } + +{% endblock %} + +{% block pagewrapper %} + +