/**
  * @Route("/edit")
  * @Route("/edit/")
  * @Template()
  */
 public function indexAction(Request $request)
 {
     $action = '';
     $secret = $request->get('identifier');
     $em = $this->getDoctrine()->getManager();
     $doc = $em->getRepository('AppShedExtensionsSpreadsheetBundle:Doc')->findOneBy(['itemsecret' => $secret]);
     if (is_null($doc)) {
         $doc = new Doc();
         $doc->setKey('');
         $doc->setUrl('');
         $doc->setTitles([]);
         $doc->setFilters([]);
         $doc->setItemsecret($secret);
         $doc->setDate(new \DateTime());
     }
     if ($request->isMethod('post')) {
         $url = $request->get('url');
         $key = $this->getKey($url);
         $action = $request->get('action', false);
         try {
             $worksheet = $this->getDocument($key);
             $lines = $worksheet->getContentsAsRows();
             if (is_array($lines) && isset($lines['0']) && is_array($lines['0'])) {
                 $titles = array_keys($lines['0']);
             }
             if (!is_array($titles)) {
                 $titles = [];
             }
             $doc->setUrl($url);
             $doc->setKey($key);
             $doc->setTitles(array_unique($titles));
             $em->persist($doc);
             $em->flush();
         } catch (SpreadsheetNotFoundException $e) {
             $this->logger->error('Spreadsheet not found', ['exception' => $e]);
             return ['doc' => $doc, 'action' => $action, 'error' => 'Could not access the document'];
         }
     }
     return ['doc' => $doc, 'action' => $action];
 }
 /**
  * @Route("/edit")
  * @Route("/edit/")
  * @Template()
  */
 public function indexAction(Request $request)
 {
     $action = '';
     $secret = $request->get('identifier');
     $em = $this->getDoctrine()->getManager();
     $doc = $em->getRepository('AppShedExtensionsSpreadsheetBundle:Doc')->findOneBy(['itemsecret' => $secret]);
     $errors = '';
     if (is_null($doc)) {
         $doc = new Doc();
         $doc->setKey('');
         $doc->setUrl('');
         $doc->setTitles([]);
         $doc->setFilters([]);
         $doc->setItemsecret($secret);
         $doc->setDate(new \DateTime());
     }
     if ($request->isMethod('post')) {
         $url = $request->get('url', false);
         $address = $request->get('address');
         $action = $request->get('action', false);
         $key = $this->getKey($url);
         if ($url && $key) {
             $filters = $request->get('filters', []);
             $doc->setAddress($address);
             $doc->setUrl($url);
             $doc->setKey($key);
             $doc->setTitles($this->getRowTitles($key));
             $doc->setFilters(array_values($filters));
             $em->persist($doc);
             $em->flush();
         } else {
             if (!$url) {
                 $errors = 'Spreadsheet url is empty';
             } else {
                 $errors = 'Spreadsheet url is not supported or broken';
             }
         }
     }
     return ['doc' => $doc, 'action' => $action, 'error' => $errors];
 }