示例#1
0
 protected function initInternal()
 {
     parent::initInternal();
     $this->ui->loadFromXML($this->ui_xml);
     $instance_id = $this->app->getInstanceId();
     // setup tag entry control
     $this->ui->getWidget('search_tags')->setApplication($this->app);
     $this->ui->getWidget('search_tags')->setAllTags();
     // setup status list
     $search_status_flydown = $this->ui->getWidget('search_status');
     $search_status_flydown->addOptionsByArray(array('published' => PinholePhoto::getStatusTitle(PinholePhoto::STATUS_PUBLISHED), 'hidden' => PinholePhoto::getStatusTitle(PinholePhoto::STATUS_UNPUBLISHED), 'private' => Pinhole::_('Private'), 'public' => Pinhole::_('Public'), 'for_sale' => Pinhole::_('For-Sale'), 'not_for_sale' => Pinhole::_('Not For-Sale')));
 }
示例#2
0
 protected function initInternal()
 {
     parent::initInternal();
     $this->ui->loadFromXML($this->ui_xml);
     $instance_id = $this->app->getInstanceId();
     // setup tag entry controls
     $this->ui->getWidget('tags')->setApplication($this->app);
     $this->ui->getWidget('tags')->setAllTags();
     $this->ui->getWidget('search_tags')->setApplication($this->app);
     $this->ui->getWidget('search_tags')->setAllTags();
     // setup status list
     $status_flydown = $this->ui->getWidget('status_flydown');
     $status_flydown->addOptionsByArray(PinholePhoto::getStatuses());
     $search_status_flydown = $this->ui->getWidget('search_status');
     $search_status_flydown->addOptionsByArray(array('published' => PinholePhoto::getStatusTitle(PinholePhoto::STATUS_PUBLISHED), 'hidden' => PinholePhoto::getStatusTitle(PinholePhoto::STATUS_UNPUBLISHED), 'private' => Pinhole::_('Private'), 'public' => Pinhole::_('Public'), 'for_sale' => Pinhole::_('For-Sale'), 'not_for_sale' => Pinhole::_('Not For-Sale')));
     $this->ui->getWidget('passphrase_field')->visible = $this->app->config->pinhole->passphrase === null;
     $this->ui->getWidget('for_sale')->visible = $this->ui->getWidget('not_for_sale')->visible = $this->ui->getWidget('for_sale_divider')->visible = $this->app->config->clustershot->username !== null;
 }
 /**
  * Processes actions on photos
  *
  * @param SwatTableView $view the view to process.
  * @param SwatActions $actions the list of actions.
  */
 public function process($view, $actions, $ui)
 {
     switch ($actions->selected->id) {
         case 'delete':
             $this->page->app->replacePage('Photo/Delete');
             $this->page->app->getPage()->setItems($view->getSelection(), $view->isExtendedCheckAllSelected());
             break;
         case 'time':
             $this->page->app->replacePage('Photo/Time');
             $this->page->app->getPage()->setItems($view->getSelection(), $view->isExtendedCheckAllSelected());
             break;
         case 'private':
             if ($ui->getWidget('passphrase')->value !== null) {
                 $this->page->app->config->pinhole->passphrase = md5($ui->getWidget('passphrase')->value);
                 $this->page->app->config->save(array('pinhole.passphrase'));
             }
             if ($this->page->app->config->pinhole->passphrase !== null) {
                 $photos = $this->getPhotos($view);
                 $num = count($photos);
                 foreach ($photos as $photo) {
                     $photo->private = true;
                     $photo->save();
                 }
                 if (isset($this->page->app->memcache)) {
                     $this->page->app->memcache->flushNs('photos');
                 }
                 $message = new SwatMessage(sprintf(Pinhole::ngettext('One photo has been set as private.', '%s photos have been set as private.', $num), SwatString::numberFormat($num)));
                 $this->page->app->messages->add($message);
             }
             break;
         case 'public':
             $photos = $this->getPhotos($view);
             $num = count($photos);
             foreach ($photos as $photo) {
                 $photo->private = true;
                 $photo->save();
             }
             if (isset($this->page->app->memcache)) {
                 $this->page->app->memcache->flushNs('photos');
             }
             $message = new SwatMessage(sprintf(Pinhole::ngettext('One photo has been set as public.', '%s photos have been set as public.', $num), SwatString::numberFormat($num)));
             $this->page->app->messages->add($message);
             break;
         case 'for_sale':
         case 'not_for_sale':
             $photos = $this->getPhotos($view);
             $num = count($photos);
             foreach ($photos as $photo) {
                 $photo->for_sale = $actions->selected->id == 'for_sale';
                 $photo->save();
             }
             if (isset($this->page->app->memcache)) {
                 $this->page->app->memcache->flushNs('photos');
             }
             if ($actions->selected->id == 'for_sale') {
                 $message = new SwatMessage(sprintf(Pinhole::ngettext('One photo has been set as for-sale.', '%s photos have been set as for-sale.', $num), SwatString::numberFormat($num)));
             } else {
                 $message = new SwatMessage(sprintf(Pinhole::ngettext('One photo has been set as not for-sale.', '%s photos have been set as not for-sale.', $num), SwatString::numberFormat($num)));
             }
             $this->page->app->messages->add($message);
             break;
         case 'publish':
         case 'status_action':
             $photos = $this->getPhotos($view);
             $num = count($photos);
             if ($ui->hasWidget('status_flydown')) {
                 $status = $ui->getWidget('status_flydown')->value;
             } else {
                 $status = PinholePhoto::STATUS_PUBLISHED;
             }
             foreach ($photos as $photo) {
                 $photo->setStatus($status);
                 $photo->save();
             }
             if (isset($this->page->app->memcache)) {
                 $this->page->app->memcache->flushNs('photos');
             }
             $message = new SwatMessage(sprintf(Pinhole::ngettext('One photo has been updated to “%2$s”.', '%1$s photos have been updated to “%2$s”.', $num), SwatString::numberFormat($num), PinholePhoto::getStatusTitle($status)));
             $this->page->app->messages->add($message);
             break;
         case 'tags_action':
             $tag_array = $ui->getWidget('tags')->getSelectedTagArray();
             if (count($tag_array) > 0) {
                 $photos = $this->getPhotos($view);
                 $num = count($photos);
                 foreach ($photos as $photo) {
                     $photo->addTagsByName($tag_array);
                 }
                 if (isset($this->page->app->memcache)) {
                     $this->page->app->memcache->flushNs('photos');
                 }
                 if (count($tag_array) > 1) {
                     $message = new SwatMessage(sprintf(Pinhole::ngettext('%s tags have been added to one photo.', '%s tags have been added to %s photos.', $num), SwatString::numberFormat(count($tag_array)), SwatString::numberFormat($num)));
                 } else {
                     $message = new SwatMessage(sprintf(Pinhole::ngettext('A tag has been added to one photo.', 'A tag has been added to %s photos.', $num), SwatString::numberFormat($num)));
                 }
                 $this->page->app->messages->add($message);
             }
             // reset tag list
             $ui->getWidget('tags')->setSelectedTagArray(array());
             break;
     }
 }
示例#4
0
 protected function initStatuses()
 {
     $status = $this->ui->getWidget('status');
     if ($this->photo->status == PinholePhoto::STATUS_PENDING) {
         $status->addOption(PinholePhoto::STATUS_PENDING, sprintf(Pinhole::_('Leave as %s'), PinholePhoto::getStatusTitle(PinholePhoto::STATUS_PENDING)));
     }
     $status->addOption(PinholePhoto::STATUS_PUBLISHED, PinholePhoto::getStatusTitle(PinholePhoto::STATUS_PUBLISHED));
     $status->addOption(PinholePhoto::STATUS_UNPUBLISHED, PinholePhoto::getStatusTitle(PinholePhoto::STATUS_UNPUBLISHED));
 }