inputs[] = array($key, $value); return $this; } public function setSubmitURI($uri) { $this->uri = $uri; return $this; } public function setTitle($title) { $this->title = $title; return $this; } public function setOnRight($on_right) { $this->onRight = $on_right; $this->addHiddenInput('on_right', $on_right); return $this; } public function setNumber($number) { $this->number = $number; return $this; } public function setLength($length) { $this->length = $length; return $this; } public function render() { if (!$this->uri) { throw new Exception("Call setSubmitURI() before render()!"); } if (!$this->user) { throw new Exception("Call setUser() before render()!"); } $content = phabricator_form( $this->user, array( 'action' => $this->uri, 'method' => 'POST', 'sigil' => 'inline-edit-form', ), $this->renderSingleView( array( $this->renderInputs(), $this->renderBody(), ))); return hsprintf( ''. ''. ''. ''. ''. ''. ''. '
%s%s
', $this->onRight ? null : $content, $this->onRight ? $content : null); } private function renderInputs() { $out = array(); foreach ($this->inputs as $input) { list($name, $value) = $input; $out[] = phutil_tag( 'input', array( 'type' => 'hidden', 'name' => $name, 'value' => $value, )); } return $out; } private function renderBody() { $buttons = array(); $buttons[] = phutil_tag('button', array(), 'Ready'); $buttons[] = javelin_tag( 'button', array( 'sigil' => 'inline-edit-cancel', 'class' => 'grey', ), pht('Cancel')); $formatting = phutil_tag( 'a', array( 'href' => PhabricatorEnv::getDoclink( 'article/Remarkup_Reference.html'), 'tabindex' => '-1', 'target' => '_blank', ), pht('Formatting Reference')); $title = phutil_tag( 'div', array( 'class' => 'differential-inline-comment-edit-title', ), $this->title); $body = phutil_tag( 'div', array( 'class' => 'differential-inline-comment-edit-body', ), $this->renderChildren()); $edit = phutil_tag( 'edit', array( 'class' => 'differential-inline-comment-edit-buttons', ), $this->renderSingleView( array( $formatting, $buttons, phutil_tag('div', array('style' => 'clear: both'), ''), ))); return javelin_tag( 'div', array( 'class' => 'differential-inline-comment-edit', 'sigil' => 'differential-inline-comment', 'meta' => array( 'on_right' => $this->onRight, 'number' => $this->number, 'length' => $this->length, ), ), $this->renderSingleView( array( $title, $body, $edit, ))); } }