Path: blob/master/src/applications/files/controller/PhabricatorFileIconSetSelectController.php
12242 views
<?php12final class PhabricatorFileIconSetSelectController3extends PhabricatorFileController {45public function handleRequest(AphrontRequest $request) {6$key = $request->getURIData('key');78$set = PhabricatorIconSet::getIconSetByKey($key);9if (!$set) {10return new Aphront404Response();11}1213$v_icon = $request->getStr('icon');14if ($request->isFormPost()) {15$icon = $set->getIcon($v_icon);1617if ($icon) {18$payload = array(19'value' => $icon->getKey(),20'display' => $set->renderIconForControl($icon),21);2223return id(new AphrontAjaxResponse())24->setContent($payload);25}26}2728require_celerity_resource('phui-icon-set-selector-css');29Javelin::initBehavior('phabricator-tooltips');3031$ii = 0;32$buttons = array();33$breakpoint = ceil(sqrt(count($set->getIcons())));34foreach ($set->getIcons() as $icon) {35$label = $icon->getLabel();3637$view = id(new PHUIIconView())38->setIcon($icon->getIcon());3940$classes = array();41$classes[] = 'icon-button';4243$is_selected = ($icon->getKey() == $v_icon);4445if ($is_selected) {46$classes[] = 'selected';47}4849$is_disabled = $icon->getIsDisabled();50if ($is_disabled && !$is_selected) {51continue;52}5354$aural = javelin_tag(55'span',56array(57'aural' => true,58),59pht('Choose "%s" Icon', $label));6061$buttons[] = javelin_tag(62'button',63array(64'class' => implode(' ', $classes),65'name' => 'icon',66'value' => $icon->getKey(),67'type' => 'submit',68'sigil' => 'has-tooltip',69'meta' => array(70'tip' => $label,71),72),73array(74$aural,75$view,76));7778if ((++$ii % $breakpoint) == 0) {79$buttons[] = phutil_tag('br');80}81}8283$buttons = phutil_tag(84'div',85array(86'class' => 'icon-grid',87),88$buttons);8990$dialog_title = $set->getSelectIconTitleText();9192return $this->newDialog()93->setTitle($dialog_title)94->appendChild($buttons)95->addCancelButton('/');96}9798}99100101