public function editAction()
 {
     $this->authorize('admin.config');
     $serviceManager = $this->getServiceLocator();
     $squareManager = $serviceManager->get('Square\\Manager\\SquareManager');
     $formElementManager = $serviceManager->get('FormElementManager');
     $locale = $this->config('i18n.locale');
     $sid = $this->params()->fromRoute('sid');
     if ($sid) {
         $square = $squareManager->get($sid);
     } else {
         $square = null;
     }
     $editForm = $formElementManager->get('Backend\\Form\\ConfigSquare\\EditForm');
     if ($this->getRequest()->isPost()) {
         $editForm->setData($this->params()->fromPost());
         if ($editForm->isValid()) {
             $editData = $editForm->getData();
             if (!$square) {
                 $square = new Square();
             }
             $square->set('name', $editData['cf-name']);
             $square->set('status', $editData['cf-status']);
             $square->setMeta('readonly.message', $editData['cf-readonly-message']);
             $square->set('priority', $editData['cf-priority']);
             $square->set('capacity', $editData['cf-capacity']);
             $square->set('capacity_heterogenic', $editData['cf-capacity-heterogenic']);
             $square->setMeta('public_names', $editData['cf-public-names'] ? 'true' : 'false');
             $square->set('time_start', $editData['cf-time-start']);
             $square->set('time_end', $editData['cf-time-end']);
             $square->set('time_block', max($editData['cf-time-block'], 10) * 60);
             $square->set('time_block_bookable', max($editData['cf-time-block-bookable'], 10) * 60);
             $square->set('time_block_bookable_max', max($editData['cf-time-block-bookable-max'], 10) * 60);
             $square->set('range_book', $editData['cf-range-book'] * 60 * 60 * 24);
             $square->set('range_cancel', $editData['cf-range-cancel'] * 60 * 60);
             $square->setMeta('label.free', $editData['cf-label-free'], $locale);
             $squareManager->save($square);
             $this->flashMessenger()->addSuccessMessage('Square has been saved');
             return $this->redirect()->toRoute('backend/config/square');
         }
     } else {
         if ($square) {
             $editForm->setData(array('cf-name' => $square->get('name'), 'cf-status' => $square->get('status'), 'cf-readonly-message' => $square->getMeta('readonly.message'), 'cf-priority' => $square->get('priority'), 'cf-capacity' => $square->get('capacity'), 'cf-capacity-heterogenic' => $square->get('capacity_heterogenic'), 'cf-public-names' => $square->getMeta('public_names', 'false') == 'false' ? false : true, 'cf-time-start' => substr($square->get('time_start'), 0, 5), 'cf-time-end' => substr($square->get('time_end'), 0, 5), 'cf-time-block' => round($square->get('time_block') / 60), 'cf-time-block-bookable' => round($square->get('time_block_bookable') / 60), 'cf-time-block-bookable-max' => round($square->get('time_block_bookable_max') / 60), 'cf-range-book' => round($square->get('range_book') / 60 / 60 / 24), 'cf-range-cancel' => round($square->get('range_cancel') / 60 / 60), 'cf-label-free' => $square->getMeta('label.free')));
         } else {
             $editForm->setData(array('cf-status' => 'enabled', 'cf-priority' => 1, 'cf-capacity' => 1, 'cf-capacity-heterogenic' => false, 'cf-public-names' => false, 'cf-time-start' => '08:00', 'cf-time-end' => '23:00', 'cf-time-block' => 60, 'cf-time-block-bookable' => 30, 'cf-time-block-bookable-max' => 180, 'cf-range-book' => 56, 'cf-range-cancel' => 24));
         }
     }
     return array('square' => $square, 'editForm' => $editForm);
 }