public function actionSaveLayout()
 {
     if (craft()->dashCols->isCpSectionDisabled()) {
         throw new HttpException(404);
     }
     $this->requirePostRequest();
     $request = craft()->request;
     $layout = new DashCols_LayoutModel();
     $layout->id = ($layoutId = $request->getPost('layoutId')) ? $layoutId : null;
     $layout->sectionId = $request->getPost('sectionId');
     $layout->categoryGroupId = $request->getPost('categoryGroupId');
     $layout->listingHandle = $request->getPost('listingHandle');
     if ($layout->sectionId) {
         $section = craft()->dashCols->getSectionById($layout->sectionId);
     } else {
         if ($layout->categoryGroupId) {
             $section = craft()->dashCols->getCategoryGroupById($layout->categoryGroupId);
         } else {
             if ($layout->listingHandle) {
                 $section = craft()->dashCols->getListingByHandle($layout->listingHandle);
             } else {
                 throw new HttpException(404);
             }
         }
     }
     $fieldLayout = craft()->fields->assembleLayoutFromPost();
     $fieldLayout->type = ElementType::Asset;
     $layout->setFieldLayout($fieldLayout);
     // Get hidden fields
     $hiddenFields = array();
     foreach ($request->getPost('hiddenFields') as $key => $value) {
         if ($value !== '1') {
             $hiddenFields[] = $key;
         }
     }
     $layout->hiddenFields = !empty($hiddenFields) ? $hiddenFields : false;
     // Get meta fields
     $metaFields = array();
     foreach ($request->getPost('metaFields') as $key => $value) {
         if ($value === '1') {
             $metaFields[] = $key;
         }
     }
     $layout->metaFields = !empty($metaFields) ? $metaFields : false;
     if (craft()->dashCols_layouts->saveLayout($layout)) {
         craft()->userSession->setNotice(Craft::t('Layout for ' . $section->name . ' saved!'));
         $this->redirectToPostedUrl($layout);
     } else {
         craft()->userSession->setError(Craft::t('Something went wrong. Layout not saved.'));
     }
     craft()->urlManager->setRouteVariables(array('layout' => $layout));
 }