diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 0000000..69fa449 --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1 @@ +_build/ diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 0000000..e33bd52 --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,137 @@ +# Makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +PAPER = +BUILDDIR = _build +PHPDOC = phpdoc +APIDIR = $(CURDIR)/api/phpdoc/ + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . + +.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest phpdoc + +help: + @echo "Please use \`make ' where is one of" + @echo " html to make standalone HTML files" + @echo " dirhtml to make HTML files named index.html in directories" + @echo " singlehtml to make a single large HTML file" + @echo " pickle to make pickle files" + @echo " json to make JSON files" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " qthelp to make HTML files and a qthelp project" + @echo " devhelp to make HTML files and a Devhelp project" + @echo " epub to make an epub" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " latexpdf to make LaTeX files and run them through pdflatex" + @echo " text to make text files" + @echo " man to make manual pages" + @echo " changes to make an overview of all changed/added/deprecated items" + @echo " linkcheck to check all external links for integrity" + @echo " doctest to run all doctests embedded in the documentation (if enabled)" + @echo " phpdoc to make API docs using phpdoc" + +clean: + -rm -rf $(BUILDDIR)/* + -rm -rf $(APIDIR)/* + +html: + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." + +dirhtml: + $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." + +singlehtml: + $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml + @echo + @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." + +pickle: + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle + @echo + @echo "Build finished; now you can process the pickle files." + +json: + $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json + @echo + @echo "Build finished; now you can process the JSON files." + +htmlhelp: + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in $(BUILDDIR)/htmlhelp." + +qthelp: + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp + @echo + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ + ".qhcp project file in $(BUILDDIR)/qthelp, like this:" + @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/MustacheImplementationinPHP53.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/MustacheImplementationinPHP53.qhc" + +devhelp: + $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp + @echo + @echo "Build finished." + @echo "To view the help file:" + @echo "# mkdir -p $$HOME/.local/share/devhelp/MustacheImplementationinPHP53" + @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/MustacheImplementationinPHP53" + @echo "# devhelp" + +epub: + $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub + @echo + @echo "Build finished. The epub file is in $(BUILDDIR)/epub." + +latex: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo + @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." + @echo "Run \`make' in that directory to run these through (pdf)latex" \ + "(use \`make latexpdf' here to do that automatically)." + +latexpdf: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through pdflatex..." + make -C $(BUILDDIR)/latex all-pdf + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +text: + $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text + @echo + @echo "Build finished. The text files are in $(BUILDDIR)/text." + +man: + $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man + @echo + @echo "Build finished. The manual pages are in $(BUILDDIR)/man." + +changes: + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes + @echo + @echo "The overview file is in $(BUILDDIR)/changes." + +linkcheck: + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in $(BUILDDIR)/linkcheck/output.txt." + +doctest: + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest + @echo "Testing of doctests in the sources finished, look at the " \ + "results in $(BUILDDIR)/doctest/output.txt." + +phpdoc: + $(PHPDOC) project:run --verbose --target=$(APIDIR) --directory=$(CURDIR)/../src --title=PhlyRestfully --visibility=public --progressbar --template=responsive diff --git a/docs/_static/.placeholder b/docs/_static/.placeholder new file mode 100644 index 0000000..e69de29 diff --git a/docs/api/phpdoc/classes.svg b/docs/api/phpdoc/classes.svg new file mode 100644 index 0000000..cbc692e --- /dev/null +++ b/docs/api/phpdoc/classes.svg @@ -0,0 +1,512 @@ + + + + + + +G + +cluster_PhlyRestfully + + + + + + + + +PhlyRestfully + +cluster_PhlyRestfully\Exception + + + + + + + + +Exception + +cluster_PhlyRestfully\Factory + + + + + + + + +Factory + +cluster_PhlyRestfully\Listener + + + + + + + + +Listener + +cluster_PhlyRestfully\Plugin + + + + + + + + +Plugin + +cluster_PhlyRestfully\View + + + + + + + + +View + + +\\PhlyRestfully\\Exception\\UpdateException + + +UpdateException + + + +\\PhlyRestfully\\Exception\\DomainException + + +DomainException + + + +\\PhlyRestfully\\Exception\\UpdateException->\\PhlyRestfully\\Exception\\DomainException + + + + +\\PhlyRestfully\\Exception\\PatchException + + +PatchException + + + +\\PhlyRestfully\\Exception\\PatchException->\\PhlyRestfully\\Exception\\DomainException + + + + +\\PhlyRestfully\\Exception\\ProblemExceptionInterface + + +ProblemExceptionInterface + + + +\\PhlyRestfully\\Exception\\DomainException->\\PhlyRestfully\\Exception\\ProblemExceptionInterface + + + + +\\PhlyRestfully\\Exception\\ExceptionInterface + + +ExceptionInterface + + + +\\PhlyRestfully\\Exception\\DomainException->\\PhlyRestfully\\Exception\\ExceptionInterface + + + + +\\DomainException + +\DomainException + + +\\PhlyRestfully\\Exception\\DomainException->\\DomainException + + + + +\\PhlyRestfully\\Exception\\InvalidResourceException + + +InvalidResourceException + + + +\\PhlyRestfully\\Exception\\InvalidArgumentException + + +InvalidArgumentException + + + +\\PhlyRestfully\\Exception\\InvalidResourceException->\\PhlyRestfully\\Exception\\InvalidArgumentException + + + + +\\PhlyRestfully\\Exception\\InvalidArgumentException->\\PhlyRestfully\\Exception\\ExceptionInterface + + + + +\\InvalidArgumentException + +\InvalidArgumentException + + +\\PhlyRestfully\\Exception\\InvalidArgumentException->\\InvalidArgumentException + + + + +\\PhlyRestfully\\Exception\\RuntimeException + + +RuntimeException + + + +\\PhlyRestfully\\Exception\\RuntimeException->\\PhlyRestfully\\Exception\\ExceptionInterface + + + + +\\RuntimeException + +\RuntimeException + + +\\PhlyRestfully\\Exception\\RuntimeException->\\RuntimeException + + + + +\\PhlyRestfully\\Exception\\CreationException + + +CreationException + + + +\\PhlyRestfully\\Exception\\CreationException->\\PhlyRestfully\\Exception\\DomainException + + + + +\\PhlyRestfully\\Exception\\InvalidCollectionException + + +InvalidCollectionException + + + +\\PhlyRestfully\\Exception\\InvalidCollectionException->\\PhlyRestfully\\Exception\\InvalidArgumentException + + + + +\\PhlyRestfully\\Factory\\ResourceControllerFactory + + +ResourceControllerFactory + + + +\\Zend\\ServiceManager\\AbstractFactoryInterface + +\\Zend\\ServiceManager\\AbstractFactoryInterface + + +\\PhlyRestfully\\Factory\\ResourceControllerFactory->\\Zend\\ServiceManager\\AbstractFactoryInterface + + + + +\\PhlyRestfully\\Listener\\ApiProblemListener + + +ApiProblemListener + + + +\\Zend\\EventManager\\ListenerAggregateInterface + +\\Zend\\EventManager\\ListenerAggregateInterface + + +\\PhlyRestfully\\Listener\\ApiProblemListener->\\Zend\\EventManager\\ListenerAggregateInterface + + + + +\\PhlyRestfully\\Listener\\ResourceParametersListener + + +ResourceParametersListener + + + +\\PhlyRestfully\\Listener\\ResourceParametersListener->\\Zend\\EventManager\\ListenerAggregateInterface + + + + +\\Zend\\EventManager\\SharedListenerAggregateInterface + +\\Zend\\EventManager\\SharedListenerAggregateInterface + + +\\PhlyRestfully\\Listener\\ResourceParametersListener->\\Zend\\EventManager\\SharedListenerAggregateInterface + + + + +\\PhlyRestfully\\Plugin\\HalLinks + + +HalLinks + + + +\\Zend\\EventManager\\EventManagerAwareInterface + +\Zend\EventManager\EventManagerAwareInterface + + +\\PhlyRestfully\\Plugin\\HalLinks->\\Zend\\EventManager\\EventManagerAwareInterface + + + + +\\Zend\\View\\Helper\\AbstractHelper + +\Zend\View\Helper\AbstractHelper + + +\\PhlyRestfully\\Plugin\\HalLinks->\\Zend\\View\\Helper\\AbstractHelper + + + + +\\Zend\\Mvc\\Controller\\Plugin\\PluginInterface + +\\Zend\\Mvc\\Controller\\Plugin\\PluginInterface + + +\\PhlyRestfully\\Plugin\\HalLinks->\\Zend\\Mvc\\Controller\\Plugin\\PluginInterface + + + + +\\PhlyRestfully\\View\\RestfulJsonModel + + +RestfulJsonModel + + + +\\Zend\\View\\Model\\JsonModel + +\Zend\View\Model\JsonModel + + +\\PhlyRestfully\\View\\RestfulJsonModel->\\Zend\\View\\Model\\JsonModel + + + + +\\PhlyRestfully\\View\\RestfulJsonStrategy + + +RestfulJsonStrategy + + + +\\Zend\\View\\Strategy\\JsonStrategy + +\Zend\View\Strategy\JsonStrategy + + +\\PhlyRestfully\\View\\RestfulJsonStrategy->\\Zend\\View\\Strategy\\JsonStrategy + + + + +\\PhlyRestfully\\View\\RestfulJsonRenderer + + +RestfulJsonRenderer + + + +\\Zend\\View\\Renderer\\JsonRenderer + +\Zend\View\Renderer\JsonRenderer + + +\\PhlyRestfully\\View\\RestfulJsonRenderer->\\Zend\\View\\Renderer\\JsonRenderer + + + + +\\PhlyRestfully\\ResourceInterface + + +ResourceInterface + + + +\\PhlyRestfully\\ResourceInterface->\\Zend\\EventManager\\EventManagerAwareInterface + + + + +\\PhlyRestfully\\ApiProblem + + +ApiProblem + + + +\\PhlyRestfully\\MetadataMap + + +MetadataMap + + + +\\PhlyRestfully\\Resource + + +Resource + + + +\\PhlyRestfully\\Resource->\\PhlyRestfully\\ResourceInterface + + + + +\\PhlyRestfully\\Metadata + + +Metadata + + + +\\PhlyRestfully\\LinkCollection + + +LinkCollection + + + +\\Countable + +\\Countable + + +\\PhlyRestfully\\LinkCollection->\\Countable + + + + +\\IteratorAggregate + +\\IteratorAggregate + + +\\PhlyRestfully\\LinkCollection->\\IteratorAggregate + + + + +\\PhlyRestfully\\HalCollection + + +HalCollection + + + +\\PhlyRestfully\\LinkCollectionAwareInterface + + +LinkCollectionAwareInterface + + + +\\PhlyRestfully\\HalCollection->\\PhlyRestfully\\LinkCollectionAwareInterface + + + + +\\PhlyRestfully\\ResourceController + + +ResourceController + + + +\\Zend\\Mvc\\Controller\\AbstractRestfulController + +\Zend\Mvc\Controller\AbstractRestfulController + + +\\PhlyRestfully\\ResourceController->\\Zend\\Mvc\\Controller\\AbstractRestfulController + + + + +\\PhlyRestfully\\Link + + +Link + + + +\\PhlyRestfully\\ResourceEvent + + +ResourceEvent + + + +\\Zend\\EventManager\\Event + +\Zend\EventManager\Event + + +\\PhlyRestfully\\ResourceEvent->\\Zend\\EventManager\\Event + + + + +\\PhlyRestfully\\HalResource + + +HalResource + + + +\\PhlyRestfully\\HalResource->\\PhlyRestfully\\LinkCollectionAwareInterface + + + + + diff --git a/docs/api/phpdoc/classes/PhlyRestfully.ApiProblem.html b/docs/api/phpdoc/classes/PhlyRestfully.ApiProblem.html new file mode 100644 index 0000000..8cf048a --- /dev/null +++ b/docs/api/phpdoc/classes/PhlyRestfully.ApiProblem.html @@ -0,0 +1,168 @@ + + + + + +PhlyRestfully » \PhlyRestfully\ApiProblem + + + + + + + + + + +
+ +
+ +
+ +
+

Object describing an API-Problem payload

+
+
+

+ Methods

+
+

Constructor

+
__construct(int $httpStatus, string $detail, string $describedBy, string $title, array $additional) 
+
+
+

Create an instance using the provided information. If nothing is +provided for the describedBy field, the class default will be used; +if the httpStatus matches any known, the title field will be selected +from $problemStatusTitles as a result.

+

Parameters

+
+

$httpStatus

+int +
+
+

$detail

+string +
+
+

$describedBy

+string +
+
+

$title

+string +
+

$additional

+
+
+
+

Retrieve properties

+
__get(string $name) : mixed
+
+
+
+

Parameters

+
+

$name

+string +
+

Returns

+
mixed
+
+
+
+

Set the flag indicating whether an exception detail should include a +stack trace and previous exception information.

+
setDetailIncludesStackTrace(bool $flag) : \PhlyRestfully\ApiProblem
+
+
+
+

Parameters

+
+

$flag

+bool +
+

Returns

+ +
+
+
+

Cast to an array

+
toArray() : array
+
+
+
+

Returns

+
array
+
+
+
+
+
+
+
+
+ + diff --git a/docs/api/phpdoc/classes/PhlyRestfully.Exception.CreationException.html b/docs/api/phpdoc/classes/PhlyRestfully.Exception.CreationException.html new file mode 100644 index 0000000..57559ea --- /dev/null +++ b/docs/api/phpdoc/classes/PhlyRestfully.Exception.CreationException.html @@ -0,0 +1,231 @@ + + + + + +PhlyRestfully » \PhlyRestfully\Exception\CreationException + + + + + + + + + + +
+ +
+ +
+ +
+

Throw this exception from a "create" resource listener in order to indicate +an inability to create an item and automatically report it.

+
+
+

+ Methods

+
+

getAdditionalDetails() +

+
getAdditionalDetails() : array
+
Inherited
+
+
+ + + +
inherited_from\PhlyRestfully\Exception\DomainException::getAdditionalDetails()
+

Returns

+
array
+
+
+
+

getDescribedBy() +

+
getDescribedBy() : string
+
Inherited
+
+
+ + + +
inherited_from\PhlyRestfully\Exception\DomainException::getDescribedBy()
+

Returns

+
string
+
+
+
+

getTitle() +

+
getTitle() : string
+
Inherited
+
+
+ + + +
inherited_from\PhlyRestfully\Exception\DomainException::getTitle()
+

Returns

+
string
+
+
+
+

setAdditionalDetails() +

+
setAdditionalDetails(array $details) : \PhlyRestfully\Exception\CreationException
+
Inherited
+
+
+ + + + + + + + + +
inherited_from\PhlyRestfully\Exception\DomainException::setAdditionalDetails()
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$details

+array +
+

Returns

+ +
+
+
+

setDescribedBy() +

+
setDescribedBy(string $uri) : \PhlyRestfully\Exception\CreationException
+
Inherited
+
+
+ + + + + + + + + +
inherited_from\PhlyRestfully\Exception\DomainException::setDescribedBy()
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$uri

+string +
+

Returns

+ +
+
+
+

setTitle() +

+
setTitle(string $title) : \PhlyRestfully\Exception\CreationException
+
Inherited
+
+
+ + + + + + + + + +
inherited_from\PhlyRestfully\Exception\DomainException::setTitle()
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$title

+string +
+

Returns

+ +
+
+
+
+
+
+
+
+ + diff --git a/docs/api/phpdoc/classes/PhlyRestfully.Exception.DomainException.html b/docs/api/phpdoc/classes/PhlyRestfully.Exception.DomainException.html new file mode 100644 index 0000000..c01e4c4 --- /dev/null +++ b/docs/api/phpdoc/classes/PhlyRestfully.Exception.DomainException.html @@ -0,0 +1,196 @@ + + + + + +PhlyRestfully » \PhlyRestfully\Exception\DomainException + + + + + + + + + + +
+ +
+ +
+ +
+

+ Methods

+
+

getAdditionalDetails() +

+
getAdditionalDetails() : array
+
+
+
+

Returns

+
array
+
+
+
+

getDescribedBy() +

+
getDescribedBy() : string
+
+
+
+

Returns

+
string
+
+
+
+

getTitle() +

+
getTitle() : string
+
+
+
+

Returns

+
string
+
+
+
+

setAdditionalDetails() +

+
setAdditionalDetails(array $details) : \PhlyRestfully\Exception\DomainException
+
+
+
+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$details

+array +
+

Returns

+ +
+
+
+

setDescribedBy() +

+
setDescribedBy(string $uri) : \PhlyRestfully\Exception\DomainException
+
+
+
+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$uri

+string +
+

Returns

+ +
+
+
+

setTitle() +

+
setTitle(string $title) : \PhlyRestfully\Exception\DomainException
+
+
+
+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$title

+string +
+

Returns

+ +
+
+
+
+
+
+
+ + diff --git a/docs/api/phpdoc/classes/PhlyRestfully.Exception.ExceptionInterface.html b/docs/api/phpdoc/classes/PhlyRestfully.Exception.ExceptionInterface.html new file mode 100644 index 0000000..33e175a --- /dev/null +++ b/docs/api/phpdoc/classes/PhlyRestfully.Exception.ExceptionInterface.html @@ -0,0 +1,87 @@ + + + + + +PhlyRestfully » \PhlyRestfully\Exception\ExceptionInterface + + + + + + + + + + +
+ +
+
+
+ +
+ +
+
+ +
+

Marker interface; catch this to catch any module-specific exception.

+
+
+
+
+
+
+ + diff --git a/docs/api/phpdoc/classes/PhlyRestfully.Exception.InvalidArgumentException.html b/docs/api/phpdoc/classes/PhlyRestfully.Exception.InvalidArgumentException.html new file mode 100644 index 0000000..111e747 --- /dev/null +++ b/docs/api/phpdoc/classes/PhlyRestfully.Exception.InvalidArgumentException.html @@ -0,0 +1,84 @@ + + + + + +PhlyRestfully » \PhlyRestfully\Exception\InvalidArgumentException + + + + + + + + + + +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+
+ + diff --git a/docs/api/phpdoc/classes/PhlyRestfully.Exception.InvalidCollectionException.html b/docs/api/phpdoc/classes/PhlyRestfully.Exception.InvalidCollectionException.html new file mode 100644 index 0000000..4bf71d1 --- /dev/null +++ b/docs/api/phpdoc/classes/PhlyRestfully.Exception.InvalidCollectionException.html @@ -0,0 +1,84 @@ + + + + + +PhlyRestfully » \PhlyRestfully\Exception\InvalidCollectionException + + + + + + + + + + +
+ +
+
+
+ +
+ +
+ +
+
+
+ + diff --git a/docs/api/phpdoc/classes/PhlyRestfully.Exception.InvalidResourceException.html b/docs/api/phpdoc/classes/PhlyRestfully.Exception.InvalidResourceException.html new file mode 100644 index 0000000..3c2dbf8 --- /dev/null +++ b/docs/api/phpdoc/classes/PhlyRestfully.Exception.InvalidResourceException.html @@ -0,0 +1,84 @@ + + + + + +PhlyRestfully » \PhlyRestfully\Exception\InvalidResourceException + + + + + + + + + + +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+
+ + diff --git a/docs/api/phpdoc/classes/PhlyRestfully.Exception.PatchException.html b/docs/api/phpdoc/classes/PhlyRestfully.Exception.PatchException.html new file mode 100644 index 0000000..7d6d053 --- /dev/null +++ b/docs/api/phpdoc/classes/PhlyRestfully.Exception.PatchException.html @@ -0,0 +1,231 @@ + + + + + +PhlyRestfully » \PhlyRestfully\Exception\PatchException + + + + + + + + + + +
+ +
+ +
+ +
+

Throw this exception from a "patch" resource listener in order to indicate +an inability to patch an item and automatically report it.

+
+
+

+ Methods

+
+

getAdditionalDetails() +

+
getAdditionalDetails() : array
+
Inherited
+
+
+ + + +
inherited_from\PhlyRestfully\Exception\DomainException::getAdditionalDetails()
+

Returns

+
array
+
+
+
+

getDescribedBy() +

+
getDescribedBy() : string
+
Inherited
+
+
+ + + +
inherited_from\PhlyRestfully\Exception\DomainException::getDescribedBy()
+

Returns

+
string
+
+
+
+

getTitle() +

+
getTitle() : string
+
Inherited
+
+
+ + + +
inherited_from\PhlyRestfully\Exception\DomainException::getTitle()
+

Returns

+
string
+
+
+
+

setAdditionalDetails() +

+
setAdditionalDetails(array $details) : \PhlyRestfully\Exception\PatchException
+
Inherited
+
+
+ + + + + + + + + +
inherited_from\PhlyRestfully\Exception\DomainException::setAdditionalDetails()
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$details

+array +
+

Returns

+ +
+
+
+

setDescribedBy() +

+
setDescribedBy(string $uri) : \PhlyRestfully\Exception\PatchException
+
Inherited
+
+
+ + + + + + + + + +
inherited_from\PhlyRestfully\Exception\DomainException::setDescribedBy()
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$uri

+string +
+

Returns

+ +
+
+
+

setTitle() +

+
setTitle(string $title) : \PhlyRestfully\Exception\PatchException
+
Inherited
+
+
+ + + + + + + + + +
inherited_from\PhlyRestfully\Exception\DomainException::setTitle()
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$title

+string +
+

Returns

+ +
+
+
+
+
+
+
+
+ + diff --git a/docs/api/phpdoc/classes/PhlyRestfully.Exception.ProblemExceptionInterface.html b/docs/api/phpdoc/classes/PhlyRestfully.Exception.ProblemExceptionInterface.html new file mode 100644 index 0000000..9053866 --- /dev/null +++ b/docs/api/phpdoc/classes/PhlyRestfully.Exception.ProblemExceptionInterface.html @@ -0,0 +1,122 @@ + + + + + +PhlyRestfully » \PhlyRestfully\Exception\ProblemExceptionInterface + + + + + + + + + + +
+ +
+ +
+ +
+

Interface for exceptions that can provide additional API Problem details

+
+
+

+ Methods

+
+

getAdditionalDetails() +

+
getAdditionalDetails() 
+
+
+
+
+

getDescribedBy() +

+
getDescribedBy() 
+
+
+
+
+

getTitle() +

+
getTitle() 
+
+
+
+
+
+
+
+
+
+ + diff --git a/docs/api/phpdoc/classes/PhlyRestfully.Exception.RuntimeException.html b/docs/api/phpdoc/classes/PhlyRestfully.Exception.RuntimeException.html new file mode 100644 index 0000000..5e1b3b0 --- /dev/null +++ b/docs/api/phpdoc/classes/PhlyRestfully.Exception.RuntimeException.html @@ -0,0 +1,84 @@ + + + + + +PhlyRestfully » \PhlyRestfully\Exception\RuntimeException + + + + + + + + + + +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+
+ + diff --git a/docs/api/phpdoc/classes/PhlyRestfully.Exception.UpdateException.html b/docs/api/phpdoc/classes/PhlyRestfully.Exception.UpdateException.html new file mode 100644 index 0000000..62840fd --- /dev/null +++ b/docs/api/phpdoc/classes/PhlyRestfully.Exception.UpdateException.html @@ -0,0 +1,231 @@ + + + + + +PhlyRestfully » \PhlyRestfully\Exception\UpdateException + + + + + + + + + + +
+ +
+ +
+ +
+

Throw this exception from a "update" resource listener in order to indicate +an inability to update an item and automatically report it.

+
+
+

+ Methods

+
+

getAdditionalDetails() +

+
getAdditionalDetails() : array
+
Inherited
+
+
+ + + +
inherited_from\PhlyRestfully\Exception\DomainException::getAdditionalDetails()
+

Returns

+
array
+
+
+
+

getDescribedBy() +

+
getDescribedBy() : string
+
Inherited
+
+
+ + + +
inherited_from\PhlyRestfully\Exception\DomainException::getDescribedBy()
+

Returns

+
string
+
+
+
+

getTitle() +

+
getTitle() : string
+
Inherited
+
+
+ + + +
inherited_from\PhlyRestfully\Exception\DomainException::getTitle()
+

Returns

+
string
+
+
+
+

setAdditionalDetails() +

+
setAdditionalDetails(array $details) : \PhlyRestfully\Exception\UpdateException
+
Inherited
+
+
+ + + + + + + + + +
inherited_from\PhlyRestfully\Exception\DomainException::setAdditionalDetails()
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$details

+array +
+

Returns

+ +
+
+
+

setDescribedBy() +

+
setDescribedBy(string $uri) : \PhlyRestfully\Exception\UpdateException
+
Inherited
+
+
+ + + + + + + + + +
inherited_from\PhlyRestfully\Exception\DomainException::setDescribedBy()
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$uri

+string +
+

Returns

+ +
+
+
+

setTitle() +

+
setTitle(string $title) : \PhlyRestfully\Exception\UpdateException
+
Inherited
+
+
+ + + + + + + + + +
inherited_from\PhlyRestfully\Exception\DomainException::setTitle()
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$title

+string +
+

Returns

+ +
+
+
+
+
+
+
+
+ + diff --git a/docs/api/phpdoc/classes/PhlyRestfully.Factory.ResourceControllerFactory.html b/docs/api/phpdoc/classes/PhlyRestfully.Factory.ResourceControllerFactory.html new file mode 100644 index 0000000..4a97dbf --- /dev/null +++ b/docs/api/phpdoc/classes/PhlyRestfully.Factory.ResourceControllerFactory.html @@ -0,0 +1,152 @@ + + + + + +PhlyRestfully » \PhlyRestfully\Factory\ResourceControllerFactory + + + + + + + + + + +
+ +
+ +
+ +
+

Class ResourceControllerFactory

+
+
+ + + +
packagePhlyRestfully\Factory
+

+ Methods

+
+

Determine if we can create a service with name

+
canCreateServiceWithName(\Zend\ServiceManager\ServiceLocatorInterface $controllers, string $name, string $requestedName) : bool
+
+
+
+

Parameters

+
+

$controllers

+\Zend\ServiceManager\ServiceLocatorInterface +
+
+

$name

+string +
+
+

$requestedName

+string +
+

Returns

+
bool
+
+
+
+

Create service with name

+
createServiceWithName(\Zend\ServiceManager\ServiceLocatorInterface $controllers, string $name, string $requestedName) : \PhlyRestfully\ResourceController
+
+
+
+

Parameters

+
+

$controllers

+\Zend\ServiceManager\ServiceLocatorInterface +
+
+

$name

+string +
+
+

$requestedName

+string +
+

Exceptions

+ + + +
\Zend\ServiceManager\Exception\ServiceNotCreatedExceptionif listener specified is not a ListenerAggregate
+

Returns

+ +
+
+
+
+
+
+
+
+ + diff --git a/docs/api/phpdoc/classes/PhlyRestfully.HalCollection.html b/docs/api/phpdoc/classes/PhlyRestfully.HalCollection.html new file mode 100644 index 0000000..f7bbc58 --- /dev/null +++ b/docs/api/phpdoc/classes/PhlyRestfully.HalCollection.html @@ -0,0 +1,409 @@ + + + + + +PhlyRestfully » \PhlyRestfully\HalCollection + + + + + + + + + + +
+ +
+ +
+ +
+

Model a collection for use with HAL payloads

+
+
+

+ Methods

+
+

__construct() +

+
__construct(array | \Traversable | \Zend\Paginator\Paginator $collection, string $resourceRoute, $resourceRouteParams, $resourceRouteOptions) 
+
+
+
+

Parameters

+
+

$collection

+array\Traversable\Zend\Paginator\Paginator +
+
+

$resourceRoute

+string +
+

$resourceRouteParams

+

$resourceRouteOptions

+

Exceptions

+ + + +
\PhlyRestfully\Exception\InvalidCollectionException
+
+
+
+

Proxy to properties to allow read access

+
__get(string $name) : mixed
+
+
+
+

Parameters

+
+

$name

+string +
+

Returns

+
mixed
+
+
+ + +
+

Set additional attributes to render as part of resource

+
setAttributes(array $attributes) : \PhlyRestfully\HalCollection
+
+
+
+

Parameters

+
+

$attributes

+array +
+

Returns

+ +
+
+
+

Set the collection name (for use within the _embedded object)

+
setCollectionName(string $name) : \PhlyRestfully\HalCollection
+
+
+
+

Parameters

+
+

$name

+string +
+

Returns

+ +
+
+
+

Set the collection route; used for generating pagination links

+
setCollectionRoute(string $route) : \PhlyRestfully\HalCollection
+
+
+
+

Parameters

+
+

$route

+string +
+

Returns

+ +
+
+
+

Set options to use with the collection route; used for generating pagination links

+
setCollectionRouteOptions(array | \Traversable $options) : \PhlyRestfully\HalCollection
+
+
+
+

Parameters

+
+

$options

+array\Traversable +
+

Exceptions

+ + + +
\PhlyRestfully\Exception\InvalidArgumentException
+

Returns

+ +
+
+
+

Set parameters/substitutions to use with the collection route; used for generating pagination links

+
setCollectionRouteParams(array | \Traversable $params) : \PhlyRestfully\HalCollection
+
+
+
+

Parameters

+
+

$params

+array\Traversable +
+

Exceptions

+ + + +
\PhlyRestfully\Exception\InvalidArgumentException
+

Returns

+ +
+
+
+

Set the resource key that represents the identifier name

+
setIdentifierName(string $name) : \PhlyRestfully\HalCollection
+
+
+
+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$name

+string +
+

Returns

+ +
+
+ +
+

Set current page

+
setPage(int $page) : \PhlyRestfully\HalCollection
+
+
+
+

Parameters

+
+

$page

+int +
+

Exceptions

+ + + +
\PhlyRestfully\Exception\InvalidArgumentExceptionfor non-positive and/or non-integer values
+

Returns

+ +
+
+
+

Set page size

+
setPageSize(int $size) : \PhlyRestfully\HalCollection
+
+
+
+

Parameters

+
+

$size

+int +
+

Exceptions

+ + + +
\PhlyRestfully\Exception\InvalidArgumentExceptionfor non-positive and/or non-integer values
+

Returns

+ +
+
+ +
+

Set the resource route

+
setResourceRoute(string $route) : \PhlyRestfully\HalCollection
+
+
+
+

Parameters

+
+

$route

+string +
+

Returns

+ +
+
+
+

Set options to use with the resource route

+
setResourceRouteOptions(array | \Traversable $options) : \PhlyRestfully\HalCollection
+
+
+
+

Parameters

+
+

$options

+array\Traversable +
+

Exceptions

+ + + +
\PhlyRestfully\Exception\InvalidArgumentException
+

Returns

+ +
+
+
+

Set parameters/substitutions to use with the resource route

+
setResourceRouteParams(array | \Traversable $params) : \PhlyRestfully\HalCollection
+
+
+
+

Parameters

+
+

$params

+array\Traversable +
+

Exceptions

+ + + +
\PhlyRestfully\Exception\InvalidArgumentException
+

Returns

+ +
+
+
+
+
+
+
+
+ + diff --git a/docs/api/phpdoc/classes/PhlyRestfully.HalResource.html b/docs/api/phpdoc/classes/PhlyRestfully.HalResource.html new file mode 100644 index 0000000..4022b3f --- /dev/null +++ b/docs/api/phpdoc/classes/PhlyRestfully.HalResource.html @@ -0,0 +1,160 @@ + + + + + +PhlyRestfully » \PhlyRestfully\HalResource + + + + + + + + + + +
+ +
+ +
+ +
+

+ Methods

+
+

__construct() +

+
__construct(object | array $resource, mixed $id) 
+
+
+
+

Parameters

+
+

$resource

+objectarray +
+
+

$id

+mixed +
+

Exceptions

+ + + +
\PhlyRestfully\Exception\InvalidResourceExceptionif resource is not an object or array
+
+
+
+

Retrieve properties

+
__get(string $name) : mixed
+
+
+
+

Parameters

+
+

$name

+string +
+

Returns

+
mixed
+
+
+ + +
+
+
+
+
+ + diff --git a/docs/api/phpdoc/classes/PhlyRestfully.Link.html b/docs/api/phpdoc/classes/PhlyRestfully.Link.html new file mode 100644 index 0000000..65153c7 --- /dev/null +++ b/docs/api/phpdoc/classes/PhlyRestfully.Link.html @@ -0,0 +1,290 @@ + + + + + +PhlyRestfully » \PhlyRestfully\Link + + + + + + + + + + +
+ +
+ +
+ +
+

Object describing a link relation

+
+
+

+ Methods

+
+

Create a link relation

+
__construct(string $relation) 
+
+
+
+ + + +
todofiltering and/or validation of relation string
+

Parameters

+
+

$relation

+string +
+
+
+
+

Retrieve the link relation

+
getRelation() : string
+
+
+
+

Returns

+
string
+
+
+
+

Return the route to be used to generate the link URL, if any

+
getRoute() : null | string
+
+
+
+

Returns

+
+nullstring +
+
+
+
+

Retrieve route assembly options, if any

+
getRouteOptions() : array
+
+
+
+

Returns

+
array
+
+
+
+

Retrieve route assembly parameters/substitutions, if any

+
getRouteParams() : array
+
+
+
+

Returns

+
array
+
+
+
+

Retrieve the link URL, if set

+
getUrl() : null | string
+
+
+
+

Returns

+
+nullstring +
+
+
+
+

Does the link have a route set?

+
hasRoute() : bool
+
+
+
+

Returns

+
bool
+
+
+
+

Does the link have a URL set?

+
hasUrl() : bool
+
+
+
+

Returns

+
bool
+
+
+
+

Is the link relation complete -- do we have either a URL or a route set?

+
isComplete() : bool
+
+
+
+

Returns

+
bool
+
+
+
+

Set the route to use when generating the relation URI

+
setRoute(string $route, null | array | \Traversable $params, null | array | \Traversable $options) : \PhlyRestfully\Link
+
+
+

If any params or options are passed, those will be passed to route assembly.

+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$route

+string +
+
+

$params

+nullarray\Traversable +
+
+

$options

+nullarray\Traversable +
+

Returns

+ +
+
+
+

Set route assembly options

+
setRouteOptions(array | \Traversable $options) : \PhlyRestfully\Link
+
+
+
+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$options

+array\Traversable +
+

Returns

+ +
+
+
+

Set route assembly parameters/substitutions

+
setRouteParams(array | \Traversable $params) : \PhlyRestfully\Link
+
+
+
+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$params

+array\Traversable +
+

Returns

+ +
+
+
+

Set an explicit URL for the link relation

+
setUrl(string $url) : \PhlyRestfully\Link
+
+
+
+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$url

+string +
+

Returns

+ +
+
+
+
+
+
+
+
+ + diff --git a/docs/api/phpdoc/classes/PhlyRestfully.LinkCollection.html b/docs/api/phpdoc/classes/PhlyRestfully.LinkCollection.html new file mode 100644 index 0000000..aa005df --- /dev/null +++ b/docs/api/phpdoc/classes/PhlyRestfully.LinkCollection.html @@ -0,0 +1,188 @@ + + + + + +PhlyRestfully » \PhlyRestfully\LinkCollection + + + + + + + + + + +
+ +
+ +
+ +
+

Object describing a collection of link relations

+
+
+

+ Methods

+
+

Add a link

+
add(\PhlyRestfully\Link $link, bool $overwrite) : \PhlyRestfully\LinkCollection
+
+
+
+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+ +
+

$overwrite

+bool +
+

Returns

+ +
+
+
+

Return a count of link relations

+
count() : int
+
+
+
+

Returns

+
int
+
+
+
+

Retrieve a link relation

+
get(string $relation) : \PhlyRestfully\Link | array
+
+
+
+

Parameters

+
+

$relation

+string +
+

Returns

+ +
+
+
+

Retrieve internal iterator

+
getIterator() : \ArrayIterator
+
+
+
+

Returns

+ +
+
+
+

Does a given link relation exist?

+
has(string $relation) : bool
+
+
+
+

Parameters

+
+

$relation

+string +
+

Returns

+
bool
+
+
+
+

Remove a given link relation

+
remove(string $relation) : bool
+
+
+
+

Parameters

+
+

$relation

+string +
+

Returns

+
bool
+
+
+
+
+
+
+
+
+ + diff --git a/docs/api/phpdoc/classes/PhlyRestfully.LinkCollectionAwareInterface.html b/docs/api/phpdoc/classes/PhlyRestfully.LinkCollectionAwareInterface.html new file mode 100644 index 0000000..544bc06 --- /dev/null +++ b/docs/api/phpdoc/classes/PhlyRestfully.LinkCollectionAwareInterface.html @@ -0,0 +1,110 @@ + + + + + +PhlyRestfully » \PhlyRestfully\LinkCollectionAwareInterface + + + + + + + + + + +
+ +
+
+
+ +
+ +
+
+ +
+

+ Methods

+ + +
+
+
+
+
+ + diff --git a/docs/api/phpdoc/classes/PhlyRestfully.Listener.ApiProblemListener.html b/docs/api/phpdoc/classes/PhlyRestfully.Listener.ApiProblemListener.html new file mode 100644 index 0000000..c802039 --- /dev/null +++ b/docs/api/phpdoc/classes/PhlyRestfully.Listener.ApiProblemListener.html @@ -0,0 +1,158 @@ + + + + + +PhlyRestfully » \PhlyRestfully\Listener\ApiProblemListener + + + + + + + + + + +
+ +
+
+
+ +
+ +
+
+ +
+

ApiProblemListener

+
+

Provides a listener on the render event, at high priority.

+ +

If the MvcEvent represents an error, then its view model and result are +replaced with a RestfulJsonModel containing an API-Problem payload.

+

+ Methods

+
+

Constructor

+
__construct(string $filter) 
+
+
+

Set the accept filter, if one is passed

+

Parameters

+
+

$filter

+string +
+
+
+
+

attach() +

+
attach(\Zend\EventManager\EventManagerInterface $events) 
+
+
+
+

Parameters

+
+

$events

+\Zend\EventManager\EventManagerInterface +
+
+
+
+

detach() +

+
detach(\Zend\EventManager\EventManagerInterface $events) 
+
+
+
+

Parameters

+
+

$events

+\Zend\EventManager\EventManagerInterface +
+
+
+
+

Listen to the render event

+
onRender(\Zend\Mvc\MvcEvent $e) 
+
Static
+
+
+

Parameters

+
+

$e

+\Zend\Mvc\MvcEvent +
+
+
+
+
+
+
+
+
+ + diff --git a/docs/api/phpdoc/classes/PhlyRestfully.Listener.ResourceParametersListener.html b/docs/api/phpdoc/classes/PhlyRestfully.Listener.ResourceParametersListener.html new file mode 100644 index 0000000..377aff3 --- /dev/null +++ b/docs/api/phpdoc/classes/PhlyRestfully.Listener.ResourceParametersListener.html @@ -0,0 +1,169 @@ + + + + + +PhlyRestfully » \PhlyRestfully\Listener\ResourceParametersListener + + + + + + + + + + +
+ +
+ +
+ +
+

+ Methods

+
+

attach() +

+
attach(\Zend\EventManager\EventManagerInterface $events) 
+
+
+
+

Parameters

+
+

$events

+\Zend\EventManager\EventManagerInterface +
+
+
+
+

attachShared() +

+
attachShared(\Zend\EventManager\SharedEventManagerInterface $events) 
+
+
+
+

Parameters

+
+

$events

+\Zend\EventManager\SharedEventManagerInterface +
+
+
+
+

detach() +

+
detach(\Zend\EventManager\EventManagerInterface $events) 
+
+
+
+

Parameters

+
+

$events

+\Zend\EventManager\EventManagerInterface +
+
+
+
+

detachShared() +

+
detachShared(\Zend\EventManager\SharedEventManagerInterface $events) 
+
+
+
+

Parameters

+
+

$events

+\Zend\EventManager\SharedEventManagerInterface +
+
+
+
+

Listen to the dispatch event

+
onDispatch(\Zend\Mvc\MvcEvent $e) 
+
+
+
+

Parameters

+
+

$e

+\Zend\Mvc\MvcEvent +
+
+
+
+
+
+
+
+ + diff --git a/docs/api/phpdoc/classes/PhlyRestfully.Metadata.html b/docs/api/phpdoc/classes/PhlyRestfully.Metadata.html new file mode 100644 index 0000000..6dbca9c --- /dev/null +++ b/docs/api/phpdoc/classes/PhlyRestfully.Metadata.html @@ -0,0 +1,420 @@ + + + + + +PhlyRestfully » \PhlyRestfully\Metadata + + + + + + + + + + +
+ +
+ +
+ +
+

+ Methods

+
+

Constructor

+
__construct(string $class, array $options) 
+
+
+

Sets the class, and passes any options provided to the appropriate +setter methods, after first converting them to lowercase and stripping +underscores.

+ +

If the class does not exist, raises an exception.

+

Parameters

+
+

$class

+string +
+
+

$options

+array +
+

Exceptions

+ + + +
\PhlyRestfully\Exception\InvalidArgumentException
+
+
+
+

Retrieve the class this metadata is associated with

+
getClass() : string
+
+
+
+

Returns

+
string
+
+
+
+

Retrieve the hydrator to associate with this class, if any

+
getHydrator() : null | \Zend\Stdlib\Hydrator\HydratorInterface
+
+
+
+

Returns

+
+null\Zend\Stdlib\Hydrator\HydratorInterface +
+
+
+
+

Retrieve the identifier name

+
getIdentifierName() : string
+
+
+
+

Returns

+
string
+
+
+
+

Retrieve the resource route

+
getResourceRoute() : null | string
+
+
+

If not set, uses the route or url, depending on which is present.

+

Returns

+
+nullstring +
+
+
+
+

Retrieve the route to use for URL generation

+
getRoute() : null | string
+
+
+
+

Returns

+
+nullstring +
+
+
+
+

Retrieve an route options to use in URL generation

+
getRouteOptions() : array
+
+
+
+

Returns

+
array
+
+
+
+

Retrieve any route parameters to use in URL generation

+
getRouteParams() : array
+
+
+
+

Returns

+
array
+
+
+
+

Retrieve the URL to use for this resource, if present

+
getUrl() : null | string
+
+
+
+

Returns

+
+nullstring +
+
+
+
+

Is a hydrator associated with this class?

+
hasHydrator() : bool
+
+
+
+

Returns

+
bool
+
+
+
+

Is a route present for this class?

+
hasRoute() : bool
+
+
+
+

Returns

+
bool
+
+
+
+

Is a URL set for this class?

+
hasUrl() : bool
+
+
+
+

Returns

+
bool
+
+
+
+

Does this class represent a collection?

+
isCollection() : bool
+
+
+
+

Returns

+
bool
+
+
+
+

Set the hydrator to use with this class

+
setHydrator(string | \Zend\Stdlib\Hydrator\HydratorInterface $hydrator) : \PhlyRestfully\Metadata
+
+
+
+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$hydrator

+string\Zend\Stdlib\Hydrator\HydratorInterface +
+

Exceptions

+ + + +
\PhlyRestfully\Exception\InvalidArgumentExceptionif the class or hydrator does not implement HydratorInterface
+

Returns

+ +
+
+
+

Set the identifier name

+
setIdentifierName(string | mixed $identifier) : \PhlyRestfully\Metadata
+
+
+
+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$identifier

+stringmixed +
+

Returns

+ +
+
+
+

Set the flag indicating collection status

+
setIsCollection(bool $flag) : \PhlyRestfully\Metadata
+
+
+
+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$flag

+bool +
+

Returns

+ +
+
+
+

Set the resource route (for embedded resources in collections)

+
setResourceRoute(string $route) : \PhlyRestfully\Metadata
+
+
+
+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$route

+string +
+

Returns

+ +
+
+
+

Set the route for URL generation

+
setRoute(string $route) : \PhlyRestfully\Metadata
+
+
+
+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$route

+string +
+

Returns

+ +
+
+
+

Set route options for URL generation

+
setRouteOptions(array $options) : \PhlyRestfully\Metadata
+
+
+
+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$options

+array +
+

Returns

+ +
+
+
+

Set route parameters for URL generation

+
setRouteParams(array $params) : \PhlyRestfully\Metadata
+
+
+
+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$params

+array +
+

Returns

+ +
+
+
+

Set the URL to use with this resource

+
setUrl(string $url) : \PhlyRestfully\Metadata
+
+
+
+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$url

+string +
+

Returns

+ +
+
+
+
+
+
+
+ + diff --git a/docs/api/phpdoc/classes/PhlyRestfully.MetadataMap.html b/docs/api/phpdoc/classes/PhlyRestfully.MetadataMap.html new file mode 100644 index 0000000..3b83d54 --- /dev/null +++ b/docs/api/phpdoc/classes/PhlyRestfully.MetadataMap.html @@ -0,0 +1,154 @@ + + + + + +PhlyRestfully » \PhlyRestfully\MetadataMap + + + + + + + + + + +
+ +
+ +
+ +
+

+ Methods

+
+

Constructor

+
__construct(array $map) 
+
+
+

If provided, will pass $map to setMap().

+

Parameters

+
+

$map

+nullarray +
+
+
+
+

Retrieve the metadata for a given class

+
get(object | string $class) : \PhlyRestfully\Metadata
+
+
+
+

Parameters

+
+

$class

+objectstring

Object or classname for which to retrieve metadata

+

Returns

+ +
+
+
+

Does the map contain metadata for the given class?

+
has(object | string $class) : bool
+
+
+
+

Parameters

+
+

$class

+objectstring

Object or class name to test

+

Returns

+
bool
+
+
+
+

Set the metadata map

+
setMap(array $map) : \PhlyRestfully\MetadataMap
+
+
+

Accepts an array of class => metadata definitions. +Each definition may be an instance of Metadata, or an array +of options used to define a Metadata instance.

+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$map

+array +
+

Returns

+ +
+
+
+
+
+
+
+ + diff --git a/docs/api/phpdoc/classes/PhlyRestfully.Plugin.HalLinks.html b/docs/api/phpdoc/classes/PhlyRestfully.Plugin.HalLinks.html new file mode 100644 index 0000000..b0df9e7 --- /dev/null +++ b/docs/api/phpdoc/classes/PhlyRestfully.Plugin.HalLinks.html @@ -0,0 +1,496 @@ + + + + + +PhlyRestfully » \PhlyRestfully\Plugin\HalLinks + + + + + + + + + + +
+ +
+ +
+ +
+

Generate links for use with HAL payloads

+
+
+

+ Methods

+
+

Map a resource class to a specific hydrator instance

+
addHydrator(string $class, \Zend\Stdlib\Hydrator\HydratorInterface $hydrator) : \PhlyRestfully\Plugin\RestfulJsonRenderer
+
+
+
+

Parameters

+
+

$class

+string +
+
+

$hydrator

+\Zend\Stdlib\Hydrator\HydratorInterface +
+

Returns

+
\PhlyRestfully\Plugin\RestfulJsonRenderer
+
+
+
+

Creates a HalCollection instance with a self relational link

+
createCollection(\PhlyRestfully\HalCollection | array | object $collection, null | string $route) : \PhlyRestfully\HalCollection
+
+
+
+

Parameters

+
+

$collection

+\PhlyRestfully\HalCollectionarrayobject +
+
+

$route

+nullstring +
+

Returns

+ +
+
+ + +
+

Create a HalResource instance and inject it with a self relational link

+
createResource(\PhlyRestfully\HalResource | array | object $resource, string $route, string $identifierName) : \PhlyRestfully\HalResource
+
+
+
+

Parameters

+
+

$resource

+\PhlyRestfully\HalResourcearrayobject +
+
+

$route

+string +
+
+

$identifierName

+string +
+

Returns

+ +
+
+ +
+

Generate HAL links from a LinkCollection

+
fromLinkCollection(\PhlyRestfully\LinkCollection $collection) : array
+
+
+
+

Parameters

+ +

Returns

+
array
+
+
+
+

Create HAL links "object" from a resource/collection

+
fromResource(\PhlyRestfully\LinkCollectionAwareInterface $resource) : array
+
+
+
+

Parameters

+ +

Returns

+
array
+
+
+
+

getController() +

+
getController() : \Zend\Stdlib\DispatchableInterface
+
+
+
+

Returns

+
\Zend\Stdlib\DispatchableInterface
+
+
+
+

Retrieve the event manager instance

+
getEventManager() : \Zend\EventManager\EventManagerInterface
+
+
+

Lazy-initializes one if none present.

+

Returns

+
\Zend\EventManager\EventManagerInterface
+
+
+
+

Retrieve a hydrator for a given resource

+
getHydratorForResource(object $resource) : \Zend\Stdlib\Hydrator\HydratorInterface | false
+
+
+

If the resource has a mapped hydrator, returns that hydrator. If not, and +a default hydrator is present, the default hydrator is returned. +Otherwise, a boolean false is returned.

+

Parameters

+
+

$resource

+object +
+

Returns

+
+\Zend\Stdlib\Hydrator\HydratorInterfacefalse +
+
+
+
+

Retrieve the metadata map

+
getMetadataMap() : \PhlyRestfully\MetadataMap
+
+ +
+ +
+

"Render" a HalCollection

+
renderCollection(\PhlyRestfully\HalCollection $halCollection) : array | \PhlyRestfully\ApiProblem
+
+
+

Injects pagination links, if the composed collection is a Paginator, and +then loops through the collection to create the data structure representing +the collection.

+ +

For each resource in the collection, the event "renderCollection.resource" is +triggered, with the following parameters:

+ +
    +
  • "collection", which is the $halCollection passed to the method
  • +
  • "resource", which is the current resource
  • +
  • "route", the resource route that will be used to generate links
  • +
  • "routeParams", any default routing parameters/substitutions to use in URL assembly
  • +
  • "routeOptions", any default routing options to use in URL assembly
  • +
+ +

This event can be useful particularly when you have multi-segment routes +and wish to ensure that route parameters are injected, or if you want to +inject query or fragment parameters.

+ +

Event parameters are aggregated in an ArrayObject, which allows you to +directly manipulate them in your listeners:

+ +
$params = $e->getParams();
+$params['routeOptions']['query'] = array('format' => 'json');
+
+

Parameters

+
+

$halCollection

+\PhlyRestfully\HalCollection +
+

Returns

+
+array\PhlyRestfully\ApiProblemAssociative array representing the payload to render; returns ApiProblem if error in pagination occurs
+
+
+
+

Render an individual resource

+
renderResource(\PhlyRestfully\HalResource $halResource) : array
+
+
+

Creates a hash representation of the HalResource. The resource is first +converted to an array, and its associated links are injected as the +"_links" member. If any members of the resource are themselves +HalResource objects, they are extracted into an "_embedded" hash.

+

Parameters

+
+

$halResource

+\PhlyRestfully\HalResource +
+

Returns

+
array
+
+
+
+

setController() +

+
setController(\Zend\Stdlib\DispatchableInterface $controller) 
+
+
+
+

Parameters

+
+

$controller

+\Zend\Stdlib\DispatchableInterface +
+
+
+
+

Set the default hydrator to use if none specified for a class.

+
setDefaultHydrator(\Zend\Stdlib\Hydrator\HydratorInterface $hydrator) : \PhlyRestfully\Plugin\RestfulJsonRenderer
+
+
+
+

Parameters

+
+

$hydrator

+\Zend\Stdlib\Hydrator\HydratorInterface +
+

Returns

+
\PhlyRestfully\Plugin\RestfulJsonRenderer
+
+
+
+

Set the event manager instance

+
setEventManager(\Zend\EventManager\EventManagerInterface $events) 
+
+
+
+

Parameters

+
+

$events

+\Zend\EventManager\EventManagerInterface +
+
+
+
+

Set the metadata map

+
setMetadataMap(\PhlyRestfully\MetadataMap $map) : \PhlyRestfully\Plugin\HalLinks
+
+
+
+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+ +

Returns

+ +
+
+
+

setServerUrlHelper() +

+
setServerUrlHelper(\Zend\View\Helper\ServerUrl $helper) 
+
+
+
+

Parameters

+
+

$helper

+\Zend\View\Helper\ServerUrl +
+
+
+
+

setUrlHelper() +

+
setUrlHelper(\Zend\View\Helper\Url $helper) 
+
+
+
+

Parameters

+
+

$helper

+\Zend\View\Helper\Url +
+
+
+
+
+
+
+
+
+ + diff --git a/docs/api/phpdoc/classes/PhlyRestfully.Resource.html b/docs/api/phpdoc/classes/PhlyRestfully.Resource.html new file mode 100644 index 0000000..c56d97c --- /dev/null +++ b/docs/api/phpdoc/classes/PhlyRestfully.Resource.html @@ -0,0 +1,472 @@ + + + + + +PhlyRestfully » \PhlyRestfully\Resource + + + + + + + + + + +
+ +
+ +
+ +
+

Base resource class

+
+

Essentially, simply marshalls arguments and triggers events; it is useless +without listeners to do the actual work.

+

+ Methods

+
+

Create a record in the resource

+
create(array | object $data) : array | object
+
+
+

Expects either an array or object representing the item to create. If +a non-array, non-object is provided, raises an exception.

+ +

The value returned by the last listener to the "create" event will be +returned as long as it is an array or object; otherwise, the original +$data is returned. If you wish to indicate failure to create, raise a +PhlyRestfully\Exception\CreationException from a listener.

+

Parameters

+
+

$data

+arrayobject +
+

Exceptions

+ + + +
\PhlyRestfully\Exception\InvalidArgumentException
+

Returns

+
+arrayobject +
+
+
+
+

Delete an existing item

+
delete(string | int $id) : bool
+
+
+

Use to delete the item indicated by $id. The value returned by the last +listener will be used, as long as it is a boolean; otherwise, a boolean +false will be returned, indicating failure to delete.

+

Parameters

+
+

$id

+stringint +
+

Returns

+
bool
+
+
+
+

Delete an existing collection of records

+
deleteList(null | array $data) : bool
+
+
+
+

Parameters

+
+

$data

+nullarray +
+

Returns

+
bool
+
+
+
+

Fetch an existing item

+
fetch(string | int $id) : false | array | object
+
+
+

Retrieve an existing item indicated by $id. The value of the last +listener will be returned, as long as it is an array or object; +otherwise, a boolean false value will be returned, indicating a +lookup failure.

+

Parameters

+
+

$id

+stringint +
+

Returns

+
+falsearrayobject +
+
+
+
+

Fetch a collection of items

+
fetchAll() : array | \Traversable
+
+
+

Use to retrieve a collection of items. The value of the last +listener will be returned, as long as it is an array or Traversable; +otherwise, an empty array will be returned.

+ +

The recommendation is to return a \Zend\Paginator\Paginator instance, +which will allow performing paginated sets, and thus allow the view +layer to select the current page based on the query string or route.

+

Returns

+
+array\Traversable +
+
+
+
+

Retrieve event manager

+
getEventManager() : \Zend\EventManager\EventManagerInterface
+
+
+

Lazy-instantiates an EM instance if none provided.

+

Returns

+
\Zend\EventManager\EventManagerInterface
+
+
+
+

getEventParam() +

+
getEventParam(mixed $name, mixed $default) : mixed
+
+
+
+

Parameters

+
+

$name

+mixed +
+
+

$default

+mixed +
+

Returns

+
mixed
+
+
+
+

Get the event parameters

+
getEventParams() : array
+
+
+
+

Returns

+
array
+
+
+
+

getQueryParams() +

+
getQueryParams() : null | \Zend\Stdlib\Parameters
+
+
+
+

Returns

+
+null\Zend\Stdlib\Parameters +
+
+
+
+

getRouteMatch() +

+
getRouteMatch() : null | \Zend\Mvc\Router\RouteMatch
+
+
+
+

Returns

+
+null\Zend\Mvc\Router\RouteMatch +
+
+
+
+

Partial update of an existing item

+
patch(string | int $id, array | object $data) : array | object
+
+
+

Update the item indicated by $id, using the information from $data; +$data should be merged with the existing item in order to provide a +partial update. Additionally, $data should be an array or object; any +other value will raise an exception.

+ +

Like create(), the return value of the last executed listener will be +returned, as long as it is an array or object; otherwise, $data is +returned. If you wish to indicate failure to update, raise a +PhlyRestfully\Exception\PatchException.

+

Parameters

+
+

$id

+stringint +
+
+

$data

+arrayobject +
+

Exceptions

+ + + +
\PhlyRestfully\Exception\InvalidArgumentException
+

Returns

+
+arrayobject +
+
+
+
+

Update (replace) an existing collection of items

+
replaceList(array $data) : array | object
+
+
+

Replaces the collection with the items contained in $data. +$data should be a multidimensional array or array of objects; if +otherwise, an exception will be raised.

+ +

Like update(), the return value of the last executed listener will be +returned, as long as it is an array or object; otherwise, $data is +returned. If you wish to indicate failure to update, raise a +PhlyRestfully\Exception\UpdateException.

+

Parameters

+
+

$data

+array +
+

Exceptions

+ + + +
\PhlyRestfully\Exception\InvalidArgumentException
+

Returns

+
+arrayobject +
+
+
+
+

Set event manager instance

+
setEventManager(\Zend\EventManager\EventManagerInterface $events) : Resource
+
+
+

Sets the event manager identifiers to the current class, this class, and +the resource interface.

+

Parameters

+
+

$events

+\Zend\EventManager\EventManagerInterface +
+

Returns

+
Resource
+
+
+
+

setEventParam() +

+
setEventParam(string $name, mixed $value) : mixed
+
+
+
+

Parameters

+
+

$name

+string +
+
+

$value

+mixed +
+

Returns

+
mixed
+
+
+
+

Set the event parameters

+
setEventParams(array $params) : \PhlyRestfully\Resource
+
+
+
+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$params

+array +
+

Returns

+ +
+
+
+

setQueryParams() +

+
setQueryParams(\Zend\Stdlib\Parameters $params) : \PhlyRestfully\Resource
+
+
+
+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$params

+\Zend\Stdlib\Parameters +
+

Returns

+ +
+
+
+

setRouteMatch() +

+
setRouteMatch(\Zend\Mvc\Router\RouteMatch $matches) : \PhlyRestfully\Resource
+
+
+
+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$matches

+\Zend\Mvc\Router\RouteMatch +
+

Returns

+ +
+
+
+

Update (replace) an existing item

+
update(string | int $id, array | object $data) : array | object
+
+
+

Updates the item indicated by $id, replacing it with the information +in $data. $data should be a full representation of the item, and should +be an array or object; if otherwise, an exception will be raised.

+ +

Like create(), the return value of the last executed listener will be +returned, as long as it is an array or object; otherwise, $data is +returned. If you wish to indicate failure to update, raise a +PhlyRestfully\Exception\UpdateException.

+

Parameters

+
+

$id

+stringint +
+
+

$data

+arrayobject +
+

Exceptions

+ + + +
\PhlyRestfully\Exception\InvalidArgumentException
+

Returns

+
+arrayobject +
+
+
+
+
+
+
+
+
+ + diff --git a/docs/api/phpdoc/classes/PhlyRestfully.ResourceController.html b/docs/api/phpdoc/classes/PhlyRestfully.ResourceController.html new file mode 100644 index 0000000..252380c --- /dev/null +++ b/docs/api/phpdoc/classes/PhlyRestfully.ResourceController.html @@ -0,0 +1,484 @@ + + + + + +PhlyRestfully » \PhlyRestfully\ResourceController + + + + + + + + + + +
+ +
+ +
+ +
+

Controller for handling resources.

+
+

Extends the base AbstractRestfulController in order to provide very specific +semantics for building a RESTful JSON service. All operations return either

+ +
    +
  • a HAL-compliant response with appropriate hypermedia links
  • +
  • a Problem API-compliant response for reporting an error condition
  • +
+ +

You may specify what specific HTTP method types you wish to respond to, and +OPTIONS will then report those; attempting any HTTP method falling outside +that list will result in a 405 (Method Not Allowed) response.

+ +

I recommend using resource-specific factories when using this controller, +to allow injecting the specific resource you wish to use (and its listeners), +which will also allow you to have multiple instances of the controller when +desired.

+ + + + + + + + + +
see\PhlyRestfully\http://tools.ietf.org/html/draft-kelly-json-hal-03
see\PhlyRestfully\http://tools.ietf.org/html/draft-nottingham-http-problem-02
+

+ Methods

+
+

Constructor

+
__construct(null | string $eventIdentifier) 
+
+
+

Allows you to set the event identifier, which can be useful to allow multiple +instances of this controller to react to different sets of shared events.

+

Parameters

+
+

$eventIdentifier

+nullstring +
+
+
+
+

Create a new resource

+
create(array $data) : \Zend\Http\Response | \PhlyRestfully\ApiProblem | \PhlyRestfully\HalResource
+
+
+
+

Parameters

+
+

$data

+array +
+

Returns

+ +
+
+
+

Delete an existing resource

+
delete(int | string $id) : \Zend\Http\Response | \PhlyRestfully\ApiProblem
+
+
+
+

Parameters

+
+

$id

+intstring +
+

Returns

+
+\Zend\Http\Response\PhlyRestfully\ApiProblem +
+
+
+
+

deleteList() +

+
deleteList() 
+
+
+
+
+

Return single resource

+
get(int | string $id) : \Zend\Http\Response | \PhlyRestfully\ApiProblem | \PhlyRestfully\HalResource
+
+
+
+

Parameters

+
+

$id

+intstring +
+

Returns

+ +
+
+
+

getIdentifierName() +

+
getIdentifierName() : string
+
+
+
+

Returns

+
string
+
+
+
+

Return collection of resources

+
getList() : \Zend\Http\Response | \PhlyRestfully\HalCollection
+
+
+
+

Returns

+
+\Zend\Http\Response\PhlyRestfully\HalCollection +
+
+
+
+

Returns the resource

+
getResource() : \PhlyRestfully\ResourceInterface
+
+
+
+

Exceptions

+ + + +
\PhlyRestfully\Exception\DomainExceptionIf no resource has been set
+

Returns

+ +
+
+
+

Retrieve HEAD metadata for the resource and/or collection

+
head(null | mixed $id) : \Zend\Http\Response | \PhlyRestfully\ApiProblem | \PhlyRestfully\HalResource | \PhlyRestfully\HalCollection
+
+
+
+

Parameters

+
+

$id

+nullmixed +
+

Returns

+ +
+
+
+

Handle the dispatch event

+
onDispatch(\Zend\Mvc\MvcEvent $e) : mixed
+
+
+

Does several "pre-flight" checks: +- Raises an exception if no resource is composed. +- Raises an exception if no route is composed. +- Returns a 405 response if the current HTTP request method is not in + $options

+ +

When the dispatch is complete, it will check to see if an array was +returned; if so, it will cast it to a view model using the +AcceptableViewModelSelector plugin, and the $acceptCriteria property.

+

Parameters

+
+

$e

+\Zend\Mvc\MvcEvent +
+

Exceptions

+ + + +
\PhlyRestfully\Exception\DomainException
+

Returns

+
mixed
+
+
+
+

Respond to OPTIONS request

+
options() : \Zend\Http\Response
+
+
+

Uses $options to set the Allow header line and return an empty response.

+

Returns

+
\Zend\Http\Response
+
+
+
+

Respond to the PATCH method (partial update of existing resource)

+
patch(int | string $id, array $data) : \Zend\Http\Response | \PhlyRestfully\ApiProblem | \PhlyRestfully\HalResource
+
+
+
+

Parameters

+
+

$id

+intstring +
+
+

$data

+array +
+

Returns

+ +
+
+
+

Update an existing collection of resources

+
replaceList(array $data) : array
+
+
+
+

Parameters

+
+

$data

+array +
+

Returns

+
array
+
+
+
+

Set the Accept header criteria for use with the AcceptableViewModelSelector

+
setAcceptCriteria(array $criteria) 
+
+
+
+

Parameters

+
+

$criteria

+array +
+
+
+
+

Set the allowed HTTP OPTIONS for the resource (collection)

+
setCollectionHttpOptions(array $options) 
+
+
+
+

Parameters

+
+

$options

+array +
+
+
+
+

Set the name to which to assign a collection in a HalCollection

+
setCollectionName(string $name) 
+
+
+
+

Parameters

+
+

$name

+string +
+
+
+
+

Set the allowed content types for the resource (collection)

+
setContentTypes(array $contentTypes) 
+
+
+
+

Parameters

+
+

$contentTypes

+array +
+
+
+
+

Set the route match segment or query string parameter indicating the +resource identifier

+
setIdentifierName(string $name) 
+
+
+
+

Parameters

+
+

$name

+string +
+
+
+
+

Set the default page size for paginated responses

+
setPageSize(int $count) 
+
+
+
+

Parameters

+
+

$count

+int +
+
+
+
+

Inject the resource with which this controller will communicate.

+
setResource(\PhlyRestfully\ResourceInterface $resource) 
+
+
+
+

Parameters

+ +
+
+
+

Set the allowed HTTP OPTIONS for a resource

+
setResourceHttpOptions(array $options) 
+
+
+
+

Parameters

+
+

$options

+array +
+
+
+
+

Inject the route name for this resource.

+
setRoute(string $route) 
+
+
+
+

Parameters

+
+

$route

+string +
+
+
+
+

Update an existing resource

+
update(int | string $id, array $data) : \Zend\Http\Response | \PhlyRestfully\ApiProblem | \PhlyRestfully\HalResource
+
+
+
+

Parameters

+
+

$id

+intstring +
+
+

$data

+array +
+

Returns

+ +
+
+
+
+
+
+
+
+ + diff --git a/docs/api/phpdoc/classes/PhlyRestfully.ResourceEvent.html b/docs/api/phpdoc/classes/PhlyRestfully.ResourceEvent.html new file mode 100644 index 0000000..61d73ad --- /dev/null +++ b/docs/api/phpdoc/classes/PhlyRestfully.ResourceEvent.html @@ -0,0 +1,202 @@ + + + + + +PhlyRestfully » \PhlyRestfully\ResourceEvent + + + + + + + + + + +
+ +
+ +
+ +
+

+ Methods

+
+

Retrieve a single query parameter by name

+
getQueryParam(string $name, mixed $default) : mixed
+
+
+

If not present, returns the $default value provided.

+

Parameters

+
+

$name

+string +
+
+

$default

+mixed +
+

Returns

+
mixed
+
+
+
+

getQueryParams() +

+
getQueryParams() : null | \Zend\Stdlib\Parameters
+
+
+
+

Returns

+
+null\Zend\Stdlib\Parameters +
+
+
+
+

getRouteMatch() +

+
getRouteMatch() : null | \Zend\Mvc\Router\RouteMatch
+
+
+
+

Returns

+
+null\Zend\Mvc\Router\RouteMatch +
+
+
+
+

Retrieve a single route match parameter by name.

+
getRouteParam(string $name, mixed $default) : mixed
+
+
+

If not present, returns the $default value provided.

+

Parameters

+
+

$name

+string +
+
+

$default

+mixed +
+

Returns

+
mixed
+
+
+
+

setQueryParams() +

+
setQueryParams(\Zend\Stdlib\Parameters $params) : \PhlyRestfully\ResourceEvent
+
+
+
+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$params

+\Zend\Stdlib\Parameters +
+

Returns

+ +
+
+
+

setRouteMatch() +

+
setRouteMatch(\Zend\Mvc\Router\RouteMatch $matches) : \PhlyRestfully\ResourceEvent
+
+
+
+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$matches

+\Zend\Mvc\Router\RouteMatch +
+

Returns

+ +
+
+
+
+
+
+
+ + diff --git a/docs/api/phpdoc/classes/PhlyRestfully.ResourceInterface.html b/docs/api/phpdoc/classes/PhlyRestfully.ResourceInterface.html new file mode 100644 index 0000000..c4e34c6 --- /dev/null +++ b/docs/api/phpdoc/classes/PhlyRestfully.ResourceInterface.html @@ -0,0 +1,308 @@ + + + + + +PhlyRestfully » \PhlyRestfully\ResourceInterface + + + + + + + + + + +
+ +
+ +
+ +
+

Interface describing operations for a given resource.

+
+
+

+ Methods

+
+

Create a record in the resource

+
create(array | object $data) : array | object
+
+
+
+

Parameters

+
+

$data

+arrayobject +
+

Returns

+
+arrayobject +
+
+
+
+

Delete an existing record

+
delete(string | int $id) : bool
+
+
+
+

Parameters

+
+

$id

+stringint +
+

Returns

+
bool
+
+
+
+

Delete an existing collection of records

+
deleteList(null | array $data) : bool
+
+
+
+

Parameters

+
+

$data

+nullarray +
+

Returns

+
bool
+
+
+
+

Fetch an existing record

+
fetch(string | int $id) : false | array | object
+
+
+
+

Parameters

+
+

$id

+stringint +
+

Returns

+
+falsearrayobject +
+
+
+
+

Fetch a collection of records

+
fetchAll() : \Zend\Paginator\Paginator
+
+
+
+

Returns

+
\Zend\Paginator\Paginator
+
+
+
+

getEventParam() +

+
getEventParam(mixed $name, mixed $default) : mixed
+
+
+
+

Parameters

+
+

$name

+mixed +
+
+

$default

+mixed +
+

Returns

+
mixed
+
+
+
+

Get the event parameters

+
getEventParams() : array
+
+
+
+

Returns

+
array
+
+
+
+

Partial update of an existing record

+
patch(string | int $id, array | object $data) : array | object
+
+
+
+

Parameters

+
+

$id

+stringint +
+
+

$data

+arrayobject +
+

Returns

+
+arrayobject +
+
+
+
+

Update (replace) an existing collection of records

+
replaceList(array $data) : array | object
+
+
+
+

Parameters

+
+

$data

+array +
+

Returns

+
+arrayobject +
+
+
+
+

setEventParam() +

+
setEventParam(string $name, mixed $value) : mixed
+
+
+
+

Parameters

+
+

$name

+string +
+
+

$value

+mixed +
+

Returns

+
mixed
+
+
+
+

Set the event parameters

+
setEventParams(array $params) : \PhlyRestfully\ResourceInterface
+
+
+
+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$params

+array +
+

Returns

+ +
+
+
+

Update (replace) an existing record

+
update(string | int $id, array | object $data) : array | object
+
+
+
+

Parameters

+
+

$id

+stringint +
+
+

$data

+arrayobject +
+

Returns

+
+arrayobject +
+
+
+
+
+
+
+
+
+ + diff --git a/docs/api/phpdoc/classes/PhlyRestfully.View.RestfulJsonModel.html b/docs/api/phpdoc/classes/PhlyRestfully.View.RestfulJsonModel.html new file mode 100644 index 0000000..a1f60a0 --- /dev/null +++ b/docs/api/phpdoc/classes/PhlyRestfully.View.RestfulJsonModel.html @@ -0,0 +1,156 @@ + + + + + +PhlyRestfully » \PhlyRestfully\View\RestfulJsonModel + + + + + + + + + + +
+ +
+ +
+ +
+

Simple extension to facilitate the specialized JsonStrategy and JsonRenderer +in this Module.

+
+
+

+ Methods

+
+

Retrieve the payload for the response

+
getPayload() : mixed
+
+
+
+

Returns

+
mixed
+
+
+
+

Does the payload represent an API-Problem?

+
isApiProblem() : bool
+
+
+
+

Returns

+
bool
+
+
+
+

Does the payload represent a HAL collection?

+
isHalCollection() : bool
+
+
+
+

Returns

+
bool
+
+
+
+

Does the payload represent a HAL item?

+
isHalResource() : bool
+
+
+
+

Returns

+
bool
+
+
+
+

Set the payload for the response

+
setPayload(mixed $payload) : \PhlyRestfully\View\RestfulJsonModel
+
+
+

This is the value to represent in the response.

+

Parameters

+
+

$payload

+mixed +
+

Returns

+ +
+
+
+
+
+
+
+
+ + diff --git a/docs/api/phpdoc/classes/PhlyRestfully.View.RestfulJsonRenderer.html b/docs/api/phpdoc/classes/PhlyRestfully.View.RestfulJsonRenderer.html new file mode 100644 index 0000000..aa4b02b --- /dev/null +++ b/docs/api/phpdoc/classes/PhlyRestfully.View.RestfulJsonRenderer.html @@ -0,0 +1,190 @@ + + + + + +PhlyRestfully » \PhlyRestfully\View\RestfulJsonRenderer + + + + + + + + + + +
+ +
+ +
+ +
+

Handles rendering of the following:

+
+
    +
  • API-Problem
  • +
  • HAL collections
  • +
  • HAL resources
  • +
+

+ Methods

+
+

getApiProblem() +

+
getApiProblem() : null | \PhlyRestfully\ApiProblem
+
+
+
+

Returns

+ +
+
+
+

Lazy-loads a helper plugin manager if none available.

+
getHelperPluginManager() : \Zend\View\HelperPluginManager
+
+
+
+

Returns

+
\Zend\View\HelperPluginManager
+
+
+
+

Whether or not what was rendered represents an API problem

+
isApiProblem() : bool
+
+
+
+

Returns

+
bool
+
+
+
+

Render a view model

+
render(mixed $nameOrModel, mixed $values) : string
+
+
+

If the view model is a RestfulJsonRenderer, determines if it represents +an ApiProblem, HalCollection, or HalResource, and, if so, creates a custom +representation appropriate to the type.

+ +

If not, it passes control to the parent to render.

+

Parameters

+
+

$nameOrModel

+mixed +
+
+

$values

+mixed +
+

Returns

+
string
+
+
+
+

Set display_exceptions flag

+
setDisplayExceptions(bool $flag) : \PhlyRestfully\View\RestfulJsonRenderer
+
+
+
+

Parameters

+
+

$flag

+bool +
+

Returns

+ +
+
+
+

Set helper plugin manager instance.

+
setHelperPluginManager(\Zend\View\HelperPluginManager $helpers) 
+
+
+

Also ensures that the 'HalLinks' helper is present.

+

Parameters

+
+

$helpers

+\Zend\View\HelperPluginManager +
+
+
+
+
+
+
+
+
+ + diff --git a/docs/api/phpdoc/classes/PhlyRestfully.View.RestfulJsonStrategy.html b/docs/api/phpdoc/classes/PhlyRestfully.View.RestfulJsonStrategy.html new file mode 100644 index 0000000..7b972b6 --- /dev/null +++ b/docs/api/phpdoc/classes/PhlyRestfully.View.RestfulJsonStrategy.html @@ -0,0 +1,149 @@ + + + + + +PhlyRestfully » \PhlyRestfully\View\RestfulJsonStrategy + + + + + + + + + + +
+ +
+ +
+ +
+

Extension of the JSON strategy to handle the RestfulJsonModel and provide +a Content-Type header appropriate to the response it describes.

+
+

This will give the following content types:

+ +
    +
  • application/hal+json for a result that contains HAL-compliant links
  • +
  • application/api-problem+json for a result that contains a Problem +API-formatted response
  • +
  • application/json for all other responses
  • +
+

+ Methods

+
+

__construct() +

+
__construct(\PhlyRestfully\View\RestfulJsonRenderer $renderer) 
+
+
+
+

Parameters

+

$renderer

+
+
+
+

Inject the response

+
injectResponse(\Zend\View\ViewEvent $e) 
+
+
+

Injects the response with the rendered content, and sets the content +type based on the detection that occurred during renderer selection.

+

Parameters

+
+

$e

+\Zend\View\ViewEvent +
+
+
+
+

Detect if we should use the RestfulJsonRenderer based on model type.

+
selectRenderer(\Zend\View\ViewEvent $e) : null | \PhlyRestfully\View\RestfulJsonRenderer
+
+
+
+

Parameters

+
+

$e

+\Zend\View\ViewEvent +
+

Returns

+ +
+
+
+
+
+
+
+
+ + diff --git a/docs/api/phpdoc/css/bootstrap-responsive.css b/docs/api/phpdoc/css/bootstrap-responsive.css new file mode 100644 index 0000000..4b032cd --- /dev/null +++ b/docs/api/phpdoc/css/bootstrap-responsive.css @@ -0,0 +1,567 @@ +/*! + * Bootstrap Responsive v2.0.0 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ +.hidden { + display: none; + visibility: hidden; +} +@media (max-width: 480px) { + .nav-collapse { + -webkit-transform: translate3d(0, 0, 0); + } + .page-header h1 small { + display: block; + line-height: 18px; + } + input[class*="span"], + select[class*="span"], + textarea[class*="span"], + .uneditable-input { + display: block; + width: 100%; + height: 28px; + /* Make inputs at least the height of their button counterpart */ + + /* Makes inputs behave like true block-level elements */ + + -webkit-box-sizing: border-box; + /* Older Webkit */ + + -moz-box-sizing: border-box; + /* Older FF */ + + -ms-box-sizing: border-box; + /* IE8 */ + + box-sizing: border-box; + /* CSS3 spec*/ + + } + .input-prepend input[class*="span"], .input-append input[class*="span"] { + width: auto; + } + input[type="checkbox"], input[type="radio"] { + border: 1px solid #ccc; + } + .form-horizontal .control-group > label { + float: none; + width: auto; + padding-top: 0; + text-align: left; + } + .form-horizontal .controls { + margin-left: 0; + } + .form-horizontal .control-list { + padding-top: 0; + } + .form-horizontal .form-actions { + padding-left: 10px; + padding-right: 10px; + } + .modal { + position: absolute; + top: 10px; + left: 10px; + right: 10px; + width: auto; + margin: 0; + } + .modal.fade.in { + top: auto; + } + .modal-header .close { + padding: 10px; + margin: -10px; + } + .carousel-caption { + position: static; + } +} +@media (max-width: 768px) { + .container { + width: auto; + padding: 0 20px; + } + .row-fluid { + width: 100%; + } + .row { + margin-left: 0; + } + .row > [class*="span"], .row-fluid > [class*="span"] { + float: none; + display: block; + width: auto; + margin: 0; + } +} +@media (min-width: 768px) and (max-width: 980px) { + .row { + margin-left: -20px; + *zoom: 1; + } + .row:before, .row:after { + display: table; + content: ""; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + margin-left: 20px; + } + .span1 { + width: 42px; + } + .span2 { + width: 104px; + } + .span3 { + width: 166px; + } + .span4 { + width: 228px; + } + .span5 { + width: 290px; + } + .span6 { + width: 352px; + } + .span7 { + width: 414px; + } + .span8 { + width: 476px; + } + .span9 { + width: 538px; + } + .span10 { + width: 600px; + } + .span11 { + width: 662px; + } + .span12, .container { + width: 724px; + } + .offset1 { + margin-left: 82px; + } + .offset2 { + margin-left: 144px; + } + .offset3 { + margin-left: 206px; + } + .offset4 { + margin-left: 268px; + } + .offset5 { + margin-left: 330px; + } + .offset6 { + margin-left: 392px; + } + .offset7 { + margin-left: 454px; + } + .offset8 { + margin-left: 516px; + } + .offset9 { + margin-left: 578px; + } + .offset10 { + margin-left: 640px; + } + .offset11 { + margin-left: 702px; + } + .row-fluid { + width: 100%; + *zoom: 1; + } + .row-fluid:before, .row-fluid:after { + display: table; + content: ""; + } + .row-fluid:after { + clear: both; + } + .row-fluid > [class*="span"] { + float: left; + margin-left: 2.762430939%; + } + .row-fluid > [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid .span1 { + width: 5.801104972%; + } + .row-fluid .span2 { + width: 14.364640883%; + } + .row-fluid .span3 { + width: 22.928176794%; + } + .row-fluid .span4 { + width: 31.491712705%; + } + .row-fluid .span5 { + width: 40.055248616%; + } + .row-fluid .span6 { + width: 48.618784527%; + } + .row-fluid .span7 { + width: 57.182320438000005%; + } + .row-fluid .span8 { + width: 65.74585634900001%; + } + .row-fluid .span9 { + width: 74.30939226%; + } + .row-fluid .span10 { + width: 82.87292817100001%; + } + .row-fluid .span11 { + width: 91.436464082%; + } + .row-fluid .span12 { + width: 99.999999993%; + } + input.span1, textarea.span1, .uneditable-input.span1 { + width: 32px; + } + input.span2, textarea.span2, .uneditable-input.span2 { + width: 94px; + } + input.span3, textarea.span3, .uneditable-input.span3 { + width: 156px; + } + input.span4, textarea.span4, .uneditable-input.span4 { + width: 218px; + } + input.span5, textarea.span5, .uneditable-input.span5 { + width: 280px; + } + input.span6, textarea.span6, .uneditable-input.span6 { + width: 342px; + } + input.span7, textarea.span7, .uneditable-input.span7 { + width: 404px; + } + input.span8, textarea.span8, .uneditable-input.span8 { + width: 466px; + } + input.span9, textarea.span9, .uneditable-input.span9 { + width: 528px; + } + input.span10, textarea.span10, .uneditable-input.span10 { + width: 590px; + } + input.span11, textarea.span11, .uneditable-input.span11 { + width: 652px; + } + input.span12, textarea.span12, .uneditable-input.span12 { + width: 714px; + } +} +@media (max-width: 980px) { + body { + padding-top: 0; + } + .navbar-fixed-top { + position: static; + margin-bottom: 18px; + } + .navbar-fixed-top .navbar-inner { + padding: 5px; + } + .navbar .container { + width: auto; + padding: 0; + } + .navbar .brand { + padding-left: 10px; + padding-right: 10px; + margin: 0 0 0 -5px; + } + .navbar .nav-collapse { + clear: left; + } + .navbar .nav { + float: none; + margin: 0 0 9px; + } + .navbar .nav > li { + float: none; + } + .navbar .nav > li > a { + margin-bottom: 2px; + } + .navbar .nav > .divider-vertical { + display: none; + } + .navbar .nav > li > a, .navbar .dropdown-menu a { + padding: 6px 15px; + font-weight: bold; + color: #999999; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + } + .navbar .dropdown-menu li + li a { + margin-bottom: 2px; + } + .navbar .nav > li > a:hover, .navbar .dropdown-menu a:hover { + background-color: #222222; + } + .navbar .dropdown-menu { + position: static; + top: auto; + left: auto; + float: none; + display: block; + max-width: none; + margin: 0 15px; + padding: 0; + background-color: transparent; + border: none; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + } + .navbar .dropdown-menu:before, .navbar .dropdown-menu:after { + display: none; + } + .navbar .dropdown-menu .divider { + display: none; + } + .navbar-form, .navbar-search { + float: none; + padding: 9px 15px; + margin: 9px 0; + border-top: 1px solid #222222; + border-bottom: 1px solid #222222; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + } + .navbar .nav.pull-right { + float: none; + margin-left: 0; + } + .navbar-static .navbar-inner { + padding-left: 10px; + padding-right: 10px; + } + .btn-navbar { + display: block; + } + .nav-collapse { + overflow: hidden; + height: 0; + } +} +@media (min-width: 980px) { + .nav-collapse.collapse { + height: auto !important; + } +} +@media (min-width: 1200px) { + .row { + margin-left: -30px; + *zoom: 1; + } + .row:before, .row:after { + display: table; + content: ""; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + margin-left: 30px; + } + .span1 { + width: 70px; + } + .span2 { + width: 170px; + } + .span3 { + width: 270px; + } + .span4 { + width: 370px; + } + .span5 { + width: 470px; + } + .span6 { + width: 570px; + } + .span7 { + width: 670px; + } + .span8 { + width: 770px; + } + .span9 { + width: 870px; + } + .span10 { + width: 970px; + } + .span11 { + width: 1070px; + } + .span12, .container { + width: 1170px; + } + .offset1 { + margin-left: 130px; + } + .offset2 { + margin-left: 230px; + } + .offset3 { + margin-left: 330px; + } + .offset4 { + margin-left: 430px; + } + .offset5 { + margin-left: 530px; + } + .offset6 { + margin-left: 630px; + } + .offset7 { + margin-left: 730px; + } + .offset8 { + margin-left: 830px; + } + .offset9 { + margin-left: 930px; + } + .offset10 { + margin-left: 1030px; + } + .offset11 { + margin-left: 1130px; + } + .row-fluid { + width: 100%; + *zoom: 1; + } + .row-fluid:before, .row-fluid:after { + display: table; + content: ""; + } + .row-fluid:after { + clear: both; + } + .row-fluid > [class*="span"] { + float: left; + margin-left: 2.564102564%; + } + .row-fluid > [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid .span1 { + width: 5.982905983%; + } + .row-fluid .span2 { + width: 14.529914530000001%; + } + .row-fluid .span3 { + width: 23.076923077%; + } + .row-fluid .span4 { + width: 31.623931624%; + } + .row-fluid .span5 { + width: 40.170940171000005%; + } + .row-fluid .span6 { + width: 48.717948718%; + } + .row-fluid .span7 { + width: 57.264957265%; + } + .row-fluid .span8 { + width: 65.81196581200001%; + } + .row-fluid .span9 { + width: 74.358974359%; + } + .row-fluid .span10 { + width: 82.905982906%; + } + .row-fluid .span11 { + width: 91.45299145300001%; + } + .row-fluid .span12 { + width: 100%; + } + input.span1, textarea.span1, .uneditable-input.span1 { + width: 60px; + } + input.span2, textarea.span2, .uneditable-input.span2 { + width: 160px; + } + input.span3, textarea.span3, .uneditable-input.span3 { + width: 260px; + } + input.span4, textarea.span4, .uneditable-input.span4 { + width: 360px; + } + input.span5, textarea.span5, .uneditable-input.span5 { + width: 460px; + } + input.span6, textarea.span6, .uneditable-input.span6 { + width: 560px; + } + input.span7, textarea.span7, .uneditable-input.span7 { + width: 660px; + } + input.span8, textarea.span8, .uneditable-input.span8 { + width: 760px; + } + input.span9, textarea.span9, .uneditable-input.span9 { + width: 860px; + } + input.span10, textarea.span10, .uneditable-input.span10 { + width: 960px; + } + input.span11, textarea.span11, .uneditable-input.span11 { + width: 1060px; + } + input.span12, textarea.span12, .uneditable-input.span12 { + width: 1160px; + } + .thumbnails { + margin-left: -30px; + } + .thumbnails > li { + margin-left: 30px; + } +} diff --git a/docs/api/phpdoc/css/bootstrap-responsive.min.css b/docs/api/phpdoc/css/bootstrap-responsive.min.css new file mode 100644 index 0000000..bc3f2ab --- /dev/null +++ b/docs/api/phpdoc/css/bootstrap-responsive.min.css @@ -0,0 +1,3 @@ + +.hidden{display:none;visibility:hidden;} +@media (max-width:480px){.nav-collapse{-webkit-transform:translate3d(0, 0, 0);} .page-header h1 small{display:block;line-height:18px;} input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;} .input-prepend input[class*="span"],.input-append input[class*="span"]{width:auto;} input[type="checkbox"],input[type="radio"]{border:1px solid #ccc;} .form-horizontal .control-group>label{float:none;width:auto;padding-top:0;text-align:left;} .form-horizontal .controls{margin-left:0;} .form-horizontal .control-list{padding-top:0;} .form-horizontal .form-actions{padding-left:10px;padding-right:10px;} .modal{position:absolute;top:10px;left:10px;right:10px;width:auto;margin:0;}.modal.fade.in{top:auto;} .modal-header .close{padding:10px;margin:-10px;} .carousel-caption{position:static;}}@media (max-width:768px){.container{width:auto;padding:0 20px;} .row-fluid{width:100%;} .row{margin-left:0;} .row>[class*="span"],.row-fluid>[class*="span"]{float:none;display:block;width:auto;margin:0;}}@media (min-width:768px) and (max-width:980px){.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";} .row:after{clear:both;} [class*="span"]{float:left;margin-left:20px;} .span1{width:42px;} .span2{width:104px;} .span3{width:166px;} .span4{width:228px;} .span5{width:290px;} .span6{width:352px;} .span7{width:414px;} .span8{width:476px;} .span9{width:538px;} .span10{width:600px;} .span11{width:662px;} .span12,.container{width:724px;} .offset1{margin-left:82px;} .offset2{margin-left:144px;} .offset3{margin-left:206px;} .offset4{margin-left:268px;} .offset5{margin-left:330px;} .offset6{margin-left:392px;} .offset7{margin-left:454px;} .offset8{margin-left:516px;} .offset9{margin-left:578px;} .offset10{margin-left:640px;} .offset11{margin-left:702px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";} .row-fluid:after{clear:both;} .row-fluid>[class*="span"]{float:left;margin-left:2.762430939%;} .row-fluid>[class*="span"]:first-child{margin-left:0;} .row-fluid .span1{width:5.801104972%;} .row-fluid .span2{width:14.364640883%;} .row-fluid .span3{width:22.928176794%;} .row-fluid .span4{width:31.491712705%;} .row-fluid .span5{width:40.055248616%;} .row-fluid .span6{width:48.618784527%;} .row-fluid .span7{width:57.182320438000005%;} .row-fluid .span8{width:65.74585634900001%;} .row-fluid .span9{width:74.30939226%;} .row-fluid .span10{width:82.87292817100001%;} .row-fluid .span11{width:91.436464082%;} .row-fluid .span12{width:99.999999993%;} input.span1,textarea.span1,.uneditable-input.span1{width:32px;} input.span2,textarea.span2,.uneditable-input.span2{width:94px;} input.span3,textarea.span3,.uneditable-input.span3{width:156px;} input.span4,textarea.span4,.uneditable-input.span4{width:218px;} input.span5,textarea.span5,.uneditable-input.span5{width:280px;} input.span6,textarea.span6,.uneditable-input.span6{width:342px;} input.span7,textarea.span7,.uneditable-input.span7{width:404px;} input.span8,textarea.span8,.uneditable-input.span8{width:466px;} input.span9,textarea.span9,.uneditable-input.span9{width:528px;} input.span10,textarea.span10,.uneditable-input.span10{width:590px;} input.span11,textarea.span11,.uneditable-input.span11{width:652px;} input.span12,textarea.span12,.uneditable-input.span12{width:714px;}}@media (max-width:980px){body{padding-top:0;} .navbar-fixed-top{position:static;margin-bottom:18px;} .navbar-fixed-top .navbar-inner{padding:5px;} .navbar .container{width:auto;padding:0;} .navbar .brand{padding-left:10px;padding-right:10px;margin:0 0 0 -5px;} .navbar .nav-collapse{clear:left;} .navbar .nav{float:none;margin:0 0 9px;} .navbar .nav>li{float:none;} .navbar .nav>li>a{margin-bottom:2px;} .navbar .nav>.divider-vertical{display:none;} .navbar .nav>li>a,.navbar .dropdown-menu a{padding:6px 15px;font-weight:bold;color:#999999;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} .navbar .dropdown-menu li+li a{margin-bottom:2px;} .navbar .nav>li>a:hover,.navbar .dropdown-menu a:hover{background-color:#222222;} .navbar .dropdown-menu{position:static;top:auto;left:auto;float:none;display:block;max-width:none;margin:0 15px;padding:0;background-color:transparent;border:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} .navbar .dropdown-menu:before,.navbar .dropdown-menu:after{display:none;} .navbar .dropdown-menu .divider{display:none;} .navbar-form,.navbar-search{float:none;padding:9px 15px;margin:9px 0;border-top:1px solid #222222;border-bottom:1px solid #222222;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.1);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.1);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.1);} .navbar .nav.pull-right{float:none;margin-left:0;} .navbar-static .navbar-inner{padding-left:10px;padding-right:10px;} .btn-navbar{display:block;} .nav-collapse{overflow:hidden;height:0;}}@media (min-width:980px){.nav-collapse.collapse{height:auto !important;}}@media (min-width:1200px){.row{margin-left:-30px;*zoom:1;}.row:before,.row:after{display:table;content:"";} .row:after{clear:both;} [class*="span"]{float:left;margin-left:30px;} .span1{width:70px;} .span2{width:170px;} .span3{width:270px;} .span4{width:370px;} .span5{width:470px;} .span6{width:570px;} .span7{width:670px;} .span8{width:770px;} .span9{width:870px;} .span10{width:970px;} .span11{width:1070px;} .span12,.container{width:1170px;} .offset1{margin-left:130px;} .offset2{margin-left:230px;} .offset3{margin-left:330px;} .offset4{margin-left:430px;} .offset5{margin-left:530px;} .offset6{margin-left:630px;} .offset7{margin-left:730px;} .offset8{margin-left:830px;} .offset9{margin-left:930px;} .offset10{margin-left:1030px;} .offset11{margin-left:1130px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";} .row-fluid:after{clear:both;} .row-fluid>[class*="span"]{float:left;margin-left:2.564102564%;} .row-fluid>[class*="span"]:first-child{margin-left:0;} .row-fluid .span1{width:5.982905983%;} .row-fluid .span2{width:14.529914530000001%;} .row-fluid .span3{width:23.076923077%;} .row-fluid .span4{width:31.623931624%;} .row-fluid .span5{width:40.170940171000005%;} .row-fluid .span6{width:48.717948718%;} .row-fluid .span7{width:57.264957265%;} .row-fluid .span8{width:65.81196581200001%;} .row-fluid .span9{width:74.358974359%;} .row-fluid .span10{width:82.905982906%;} .row-fluid .span11{width:91.45299145300001%;} .row-fluid .span12{width:100%;} input.span1,textarea.span1,.uneditable-input.span1{width:60px;} input.span2,textarea.span2,.uneditable-input.span2{width:160px;} input.span3,textarea.span3,.uneditable-input.span3{width:260px;} input.span4,textarea.span4,.uneditable-input.span4{width:360px;} input.span5,textarea.span5,.uneditable-input.span5{width:460px;} input.span6,textarea.span6,.uneditable-input.span6{width:560px;} input.span7,textarea.span7,.uneditable-input.span7{width:660px;} input.span8,textarea.span8,.uneditable-input.span8{width:760px;} input.span9,textarea.span9,.uneditable-input.span9{width:860px;} input.span10,textarea.span10,.uneditable-input.span10{width:960px;} input.span11,textarea.span11,.uneditable-input.span11{width:1060px;} input.span12,textarea.span12,.uneditable-input.span12{width:1160px;} .thumbnails{margin-left:-30px;} .thumbnails>li{margin-left:30px;}} diff --git a/docs/api/phpdoc/css/bootstrap.css b/docs/api/phpdoc/css/bootstrap.css new file mode 100644 index 0000000..563050c --- /dev/null +++ b/docs/api/phpdoc/css/bootstrap.css @@ -0,0 +1,3370 @@ +/*! + * Bootstrap v2.0.0 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +nav, +section { + display: block; +} +audio, canvas, video { + display: inline-block; + *display: inline; + *zoom: 1; +} +audio:not([controls]) { + display: none; +} +html { + font-size: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} +a:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +a:hover, a:active { + outline: 0; +} +sub, sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} +sup { + top: -0.5em; +} +sub { + bottom: -0.25em; +} +img { + max-width: 100%; + height: auto; + border: 0; + -ms-interpolation-mode: bicubic; +} +button, +input, +select, +textarea { + margin: 0; + font-size: 100%; + vertical-align: middle; +} +button, input { + *overflow: visible; + line-height: normal; +} +button::-moz-focus-inner, input::-moz-focus-inner { + padding: 0; + border: 0; +} +button, +input[type="button"], +input[type="reset"], +input[type="submit"] { + cursor: pointer; + -webkit-appearance: button; +} +input[type="search"] { + -webkit-appearance: textfield; + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; +} +input[type="search"]::-webkit-search-decoration, input[type="search"]::-webkit-search-cancel-button { + -webkit-appearance: none; +} +textarea { + overflow: auto; + vertical-align: top; +} +body { + margin: 0; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + line-height: 18px; + color: #333333; + background-color: #ffffff; +} +a { + color: #0088cc; + text-decoration: none; +} +a:hover { + color: #005580; + text-decoration: underline; +} +.row { + margin-left: -20px; + *zoom: 1; +} +.row:before, .row:after { + display: table; + content: ""; +} +.row:after { + clear: both; +} +[class*="span"] { + float: left; + margin-left: 20px; +} +.span1 { + width: 60px; +} +.span2 { + width: 140px; +} +.span3 { + width: 220px; +} +.span4 { + width: 300px; +} +.span5 { + width: 380px; +} +.span6 { + width: 460px; +} +.span7 { + width: 540px; +} +.span8 { + width: 620px; +} +.span9 { + width: 700px; +} +.span10 { + width: 780px; +} +.span11 { + width: 860px; +} +.span12, .container { + width: 940px; +} +.offset1 { + margin-left: 100px; +} +.offset2 { + margin-left: 180px; +} +.offset3 { + margin-left: 260px; +} +.offset4 { + margin-left: 340px; +} +.offset5 { + margin-left: 420px; +} +.offset6 { + margin-left: 500px; +} +.offset7 { + margin-left: 580px; +} +.offset8 { + margin-left: 660px; +} +.offset9 { + margin-left: 740px; +} +.offset10 { + margin-left: 820px; +} +.offset11 { + margin-left: 900px; +} +.row-fluid { + width: 100%; + *zoom: 1; +} +.row-fluid:before, .row-fluid:after { + display: table; + content: ""; +} +.row-fluid:after { + clear: both; +} +.row-fluid > [class*="span"] { + float: left; + margin-left: 2.127659574%; +} +.row-fluid > [class*="span"]:first-child { + margin-left: 0; +} +.row-fluid .span1 { + width: 6.382978723%; +} +.row-fluid .span2 { + width: 14.89361702%; +} +.row-fluid .span3 { + width: 23.404255317%; +} +.row-fluid .span4 { + width: 31.914893614%; +} +.row-fluid .span5 { + width: 40.425531911%; +} +.row-fluid .span6 { + width: 48.93617020799999%; +} +.row-fluid .span7 { + width: 57.446808505%; +} +.row-fluid .span8 { + width: 65.95744680199999%; +} +.row-fluid .span9 { + width: 74.468085099%; +} +.row-fluid .span10 { + width: 82.97872339599999%; +} +.row-fluid .span11 { + width: 91.489361693%; +} +.row-fluid .span12 { + width: 99.99999998999999%; +} +.container { + width: 940px; + margin-left: auto; + margin-right: auto; + *zoom: 1; +} +.container:before, .container:after { + display: table; + content: ""; +} +.container:after { + clear: both; +} +.container-fluid { + padding-left: 20px; + padding-right: 20px; + *zoom: 1; +} +.container-fluid:before, .container-fluid:after { + display: table; + content: ""; +} +.container-fluid:after { + clear: both; +} +p { + margin: 0 0 9px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + line-height: 18px; +} +p small { + font-size: 11px; + color: #999999; +} +.lead { + margin-bottom: 18px; + font-size: 20px; + font-weight: 200; + line-height: 27px; +} +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + font-weight: bold; + color: #333333; + text-rendering: optimizelegibility; +} +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small { + font-weight: normal; + color: #999999; +} +h1 { + font-size: 30px; + line-height: 36px; +} +h1 small { + font-size: 18px; +} +h2 { + font-size: 24px; + line-height: 36px; +} +h2 small { + font-size: 18px; +} +h3 { + line-height: 27px; + font-size: 18px; +} +h3 small { + font-size: 14px; +} +h4, h5, h6 { + line-height: 18px; +} +h4 { + font-size: 14px; +} +h4 small { + font-size: 12px; +} +h5 { + font-size: 12px; +} +h6 { + font-size: 11px; + color: #999999; + text-transform: uppercase; +} +.page-header { + padding-bottom: 17px; + margin: 18px 0; + border-bottom: 1px solid #eeeeee; +} +.page-header h1 { + line-height: 1; +} +ul, ol { + padding: 0; + margin: 0 0 9px 25px; +} +ul ul, +ul ol, +ol ol, +ol ul { + margin-bottom: 0; +} +ul { + list-style: disc; +} +ol { + list-style: decimal; +} +li { + line-height: 18px; +} +ul.unstyled { + margin-left: 0; + list-style: none; +} +dl { + margin-bottom: 18px; +} +dt, dd { + line-height: 18px; +} +dt { + font-weight: bold; +} +dd { + margin-left: 9px; +} +hr { + margin: 18px 0; + border: 0; + border-top: 1px solid #e5e5e5; + border-bottom: 1px solid #ffffff; +} +strong { + font-weight: bold; +} +em { + font-style: italic; +} +.muted { + color: #999999; +} +abbr { + font-size: 90%; + text-transform: uppercase; + border-bottom: 1px dotted #ddd; + cursor: help; +} +blockquote { + padding: 0 0 0 15px; + margin: 0 0 18px; + border-left: 5px solid #eeeeee; +} +blockquote p { + margin-bottom: 0; + font-size: 16px; + font-weight: 300; + line-height: 22.5px; +} +blockquote small { + display: block; + line-height: 18px; + color: #999999; +} +blockquote small:before { + content: '\2014 \00A0'; +} +blockquote.pull-right { + float: right; + padding-left: 0; + padding-right: 15px; + border-left: 0; + border-right: 5px solid #eeeeee; +} +blockquote.pull-right p, blockquote.pull-right small { + text-align: right; +} +q:before, +q:after, +blockquote:before, +blockquote:after { + content: ""; +} +address { + display: block; + margin-bottom: 18px; + line-height: 18px; + font-style: normal; +} +small { + font-size: 100%; +} +cite { + font-style: normal; +} +code, pre { + padding: 0 3px 2px; + font-family: Menlo, Monaco, "Courier New", monospace; + font-size: 12px; + color: #333333; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +code { + padding: 3px 4px; + color: #d14; + background-color: #f7f7f9; + border: 1px solid #e1e1e8; +} +pre { + display: block; + padding: 8.5px; + margin: 0 0 9px; + font-size: 12px; + line-height: 18px; + background-color: #f5f5f5; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.15); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + white-space: pre; + white-space: pre-wrap; + word-break: break-all; +} +pre.prettyprint { + margin-bottom: 18px; +} +pre code { + padding: 0; + background-color: transparent; +} +form { + margin: 0 0 18px; +} +fieldset { + padding: 0; + margin: 0; + border: 0; +} +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 27px; + font-size: 19.5px; + line-height: 36px; + color: #333333; + border: 0; + border-bottom: 1px solid #eee; +} +label, +input, +button, +select, +textarea { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + font-weight: normal; + line-height: 18px; +} +label { + display: block; + margin-bottom: 5px; + color: #333333; +} +input, +textarea, +select, +.uneditable-input { + display: inline-block; + width: 210px; + height: 18px; + padding: 4px; + margin-bottom: 9px; + font-size: 13px; + line-height: 18px; + color: #555555; + border: 1px solid #ccc; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +.uneditable-textarea { + width: auto; + height: auto; +} +label input, label textarea, label select { + display: block; +} +input[type="image"], input[type="checkbox"], input[type="radio"] { + width: auto; + height: auto; + padding: 0; + margin: 3px 0; + *margin-top: 0; + /* IE7 */ + + line-height: normal; + border: 0; + cursor: pointer; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +input[type="file"] { + padding: initial; + line-height: initial; + border: initial; + background-color: #ffffff; + background-color: initial; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +input[type="button"], input[type="reset"], input[type="submit"] { + width: auto; + height: auto; +} +select, input[type="file"] { + height: 28px; + /* In IE7, the height of the select element cannot be changed by height, only font-size */ + + *margin-top: 4px; + /* For IE7, add top margin to align select with labels */ + + line-height: 28px; +} +select { + width: 220px; + background-color: #ffffff; +} +select[multiple], select[size] { + height: auto; +} +input[type="image"] { + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +textarea { + height: auto; +} +input[type="hidden"] { + display: none; +} +.radio, .checkbox { + padding-left: 18px; +} +.radio input[type="radio"], .checkbox input[type="checkbox"] { + float: left; + margin-left: -18px; +} +.controls > .radio:first-child, .controls > .checkbox:first-child { + padding-top: 5px; +} +.radio.inline, .checkbox.inline { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; +} +.radio.inline + .radio.inline, .checkbox.inline + .checkbox.inline { + margin-left: 10px; +} +.controls > .radio.inline:first-child, .controls > .checkbox.inline:first-child { + padding-top: 0; +} +input, textarea { + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; + -moz-transition: border linear 0.2s, box-shadow linear 0.2s; + -ms-transition: border linear 0.2s, box-shadow linear 0.2s; + -o-transition: border linear 0.2s, box-shadow linear 0.2s; + transition: border linear 0.2s, box-shadow linear 0.2s; +} +input:focus, textarea:focus { + border-color: rgba(82, 168, 236, 0.8); + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + outline: 0; + outline: thin dotted \9; + /* IE6-8 */ + +} +input[type="file"]:focus, input[type="checkbox"]:focus, select:focus { + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.input-mini { + width: 60px; +} +.input-small { + width: 90px; +} +.input-medium { + width: 150px; +} +.input-large { + width: 210px; +} +.input-xlarge { + width: 270px; +} +.input-xxlarge { + width: 530px; +} +input[class*="span"], +select[class*="span"], +textarea[class*="span"], +.uneditable-input { + float: none; + margin-left: 0; +} +input.span1, textarea.span1, .uneditable-input.span1 { + width: 50px; +} +input.span2, textarea.span2, .uneditable-input.span2 { + width: 130px; +} +input.span3, textarea.span3, .uneditable-input.span3 { + width: 210px; +} +input.span4, textarea.span4, .uneditable-input.span4 { + width: 290px; +} +input.span5, textarea.span5, .uneditable-input.span5 { + width: 370px; +} +input.span6, textarea.span6, .uneditable-input.span6 { + width: 450px; +} +input.span7, textarea.span7, .uneditable-input.span7 { + width: 530px; +} +input.span8, textarea.span8, .uneditable-input.span8 { + width: 610px; +} +input.span9, textarea.span9, .uneditable-input.span9 { + width: 690px; +} +input.span10, textarea.span10, .uneditable-input.span10 { + width: 770px; +} +input.span11, textarea.span11, .uneditable-input.span11 { + width: 850px; +} +input.span12, textarea.span12, .uneditable-input.span12 { + width: 930px; +} +input[disabled], +select[disabled], +textarea[disabled], +input[readonly], +select[readonly], +textarea[readonly] { + background-color: #f5f5f5; + border-color: #ddd; + cursor: not-allowed; +} +.control-group.warning > label, .control-group.warning .help-block, .control-group.warning .help-inline { + color: #c09853; +} +.control-group.warning input, .control-group.warning select, .control-group.warning textarea { + color: #c09853; + border-color: #c09853; +} +.control-group.warning input:focus, .control-group.warning select:focus, .control-group.warning textarea:focus { + border-color: #a47e3c; + -webkit-box-shadow: 0 0 6px #dbc59e; + -moz-box-shadow: 0 0 6px #dbc59e; + box-shadow: 0 0 6px #dbc59e; +} +.control-group.warning .input-prepend .add-on, .control-group.warning .input-append .add-on { + color: #c09853; + background-color: #fcf8e3; + border-color: #c09853; +} +.control-group.error > label, .control-group.error .help-block, .control-group.error .help-inline { + color: #b94a48; +} +.control-group.error input, .control-group.error select, .control-group.error textarea { + color: #b94a48; + border-color: #b94a48; +} +.control-group.error input:focus, .control-group.error select:focus, .control-group.error textarea:focus { + border-color: #953b39; + -webkit-box-shadow: 0 0 6px #d59392; + -moz-box-shadow: 0 0 6px #d59392; + box-shadow: 0 0 6px #d59392; +} +.control-group.error .input-prepend .add-on, .control-group.error .input-append .add-on { + color: #b94a48; + background-color: #f2dede; + border-color: #b94a48; +} +.control-group.success > label, .control-group.success .help-block, .control-group.success .help-inline { + color: #468847; +} +.control-group.success input, .control-group.success select, .control-group.success textarea { + color: #468847; + border-color: #468847; +} +.control-group.success input:focus, .control-group.success select:focus, .control-group.success textarea:focus { + border-color: #356635; + -webkit-box-shadow: 0 0 6px #7aba7b; + -moz-box-shadow: 0 0 6px #7aba7b; + box-shadow: 0 0 6px #7aba7b; +} +.control-group.success .input-prepend .add-on, .control-group.success .input-append .add-on { + color: #468847; + background-color: #dff0d8; + border-color: #468847; +} +input:focus:required:invalid, textarea:focus:required:invalid, select:focus:required:invalid { + color: #b94a48; + border-color: #ee5f5b; +} +input:focus:required:invalid:focus, textarea:focus:required:invalid:focus, select:focus:required:invalid:focus { + border-color: #e9322d; + -webkit-box-shadow: 0 0 6px #f8b9b7; + -moz-box-shadow: 0 0 6px #f8b9b7; + box-shadow: 0 0 6px #f8b9b7; +} +.form-actions { + padding: 17px 20px 18px; + margin-top: 18px; + margin-bottom: 18px; + background-color: #f5f5f5; + border-top: 1px solid #ddd; +} +.uneditable-input { + display: block; + background-color: #ffffff; + border-color: #eee; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + cursor: not-allowed; +} +:-moz-placeholder { + color: #999999; +} +::-webkit-input-placeholder { + color: #999999; +} +.help-block { + margin-top: 5px; + margin-bottom: 0; + color: #999999; +} +.help-inline { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; + margin-bottom: 9px; + vertical-align: middle; + padding-left: 5px; +} +.input-prepend, .input-append { + margin-bottom: 5px; + *zoom: 1; +} +.input-prepend:before, +.input-append:before, +.input-prepend:after, +.input-append:after { + display: table; + content: ""; +} +.input-prepend:after, .input-append:after { + clear: both; +} +.input-prepend input, +.input-append input, +.input-prepend .uneditable-input, +.input-append .uneditable-input { + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} +.input-prepend input:focus, +.input-append input:focus, +.input-prepend .uneditable-input:focus, +.input-append .uneditable-input:focus { + position: relative; + z-index: 2; +} +.input-prepend .uneditable-input, .input-append .uneditable-input { + border-left-color: #ccc; +} +.input-prepend .add-on, .input-append .add-on { + float: left; + display: block; + width: auto; + min-width: 16px; + height: 18px; + margin-right: -1px; + padding: 4px 5px; + font-weight: normal; + line-height: 18px; + color: #999999; + text-align: center; + text-shadow: 0 1px 0 #ffffff; + background-color: #f5f5f5; + border: 1px solid #ccc; + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} +.input-prepend .active, .input-append .active { + background-color: #a9dba9; + border-color: #46a546; +} +.input-prepend .add-on { + *margin-top: 1px; + /* IE6-7 */ + +} +.input-append input, .input-append .uneditable-input { + float: left; + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} +.input-append .uneditable-input { + border-right-color: #ccc; +} +.input-append .add-on { + margin-right: 0; + margin-left: -1px; + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} +.input-append input:first-child { + *margin-left: -160px; +} +.input-append input:first-child + .add-on { + *margin-left: -21px; +} +.search-query { + padding-left: 14px; + padding-right: 14px; + margin-bottom: 0; + -webkit-border-radius: 14px; + -moz-border-radius: 14px; + border-radius: 14px; +} +.form-search input, +.form-inline input, +.form-horizontal input, +.form-search textarea, +.form-inline textarea, +.form-horizontal textarea, +.form-search select, +.form-inline select, +.form-horizontal select, +.form-search .help-inline, +.form-inline .help-inline, +.form-horizontal .help-inline, +.form-search .uneditable-input, +.form-inline .uneditable-input, +.form-horizontal .uneditable-input { + display: inline-block; + margin-bottom: 0; +} +.form-search label, +.form-inline label, +.form-search .input-append, +.form-inline .input-append, +.form-search .input-prepend, +.form-inline .input-prepend { + display: inline-block; +} +.form-search .input-append .add-on, +.form-inline .input-prepend .add-on, +.form-search .input-append .add-on, +.form-inline .input-prepend .add-on { + vertical-align: middle; +} +.control-group { + margin-bottom: 9px; +} +.form-horizontal legend + .control-group { + margin-top: 18px; + -webkit-margin-top-collapse: separate; +} +.form-horizontal .control-group { + margin-bottom: 18px; + *zoom: 1; +} +.form-horizontal .control-group:before, .form-horizontal .control-group:after { + display: table; + content: ""; +} +.form-horizontal .control-group:after { + clear: both; +} +.form-horizontal .control-group > label { + float: left; + width: 140px; + padding-top: 5px; + text-align: right; +} +.form-horizontal .controls { + margin-left: 160px; +} +.form-horizontal .form-actions { + padding-left: 160px; +} +table { + max-width: 100%; + border-collapse: collapse; + border-spacing: 0; +} +.table { + width: 100%; + margin-bottom: 18px; +} +.table th, .table td { + padding: 8px; + line-height: 18px; + text-align: left; + border-top: 1px solid #ddd; +} +.table th { + font-weight: bold; + vertical-align: bottom; +} +.table td { + vertical-align: top; +} +.table thead:first-child tr th, .table thead:first-child tr td { + border-top: 0; +} +.table tbody + tbody { + border-top: 2px solid #ddd; +} +.table-condensed th, .table-condensed td { + padding: 4px 5px; +} +.table-bordered { + border: 1px solid #ddd; + border-collapse: separate; + *border-collapse: collapsed; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.table-bordered th + th, +.table-bordered td + td, +.table-bordered th + td, +.table-bordered td + th { + border-left: 1px solid #ddd; +} +.table-bordered thead:first-child tr:first-child th, .table-bordered tbody:first-child tr:first-child th, .table-bordered tbody:first-child tr:first-child td { + border-top: 0; +} +.table-bordered thead:first-child tr:first-child th:first-child, .table-bordered tbody:first-child tr:first-child td:first-child { + -webkit-border-radius: 4px 0 0 0; + -moz-border-radius: 4px 0 0 0; + border-radius: 4px 0 0 0; +} +.table-bordered thead:first-child tr:first-child th:last-child, .table-bordered tbody:first-child tr:first-child td:last-child { + -webkit-border-radius: 0 4px 0 0; + -moz-border-radius: 0 4px 0 0; + border-radius: 0 4px 0 0; +} +.table-bordered thead:last-child tr:last-child th:first-child, .table-bordered tbody:last-child tr:last-child td:first-child { + -webkit-border-radius: 0 0 0 4px; + -moz-border-radius: 0 0 0 4px; + border-radius: 0 0 0 4px; +} +.table-bordered thead:last-child tr:last-child th:last-child, .table-bordered tbody:last-child tr:last-child td:last-child { + -webkit-border-radius: 0 0 4px 0; + -moz-border-radius: 0 0 4px 0; + border-radius: 0 0 4px 0; +} +.table-striped tbody tr:nth-child(odd) td, .table-striped tbody tr:nth-child(odd) th { + background-color: #f9f9f9; +} +table .span1 { + float: none; + width: 44px; + margin-left: 0; +} +table .span2 { + float: none; + width: 124px; + margin-left: 0; +} +table .span3 { + float: none; + width: 204px; + margin-left: 0; +} +table .span4 { + float: none; + width: 284px; + margin-left: 0; +} +table .span5 { + float: none; + width: 364px; + margin-left: 0; +} +table .span6 { + float: none; + width: 444px; + margin-left: 0; +} +table .span7 { + float: none; + width: 524px; + margin-left: 0; +} +table .span8 { + float: none; + width: 604px; + margin-left: 0; +} +table .span9 { + float: none; + width: 684px; + margin-left: 0; +} +table .span10 { + float: none; + width: 764px; + margin-left: 0; +} +table .span11 { + float: none; + width: 844px; + margin-left: 0; +} +table .span12 { + float: none; + width: 924px; + margin-left: 0; +} +[class^="icon-"] { + display: inline-block; + width: 14px; + height: 14px; + vertical-align: text-top; + background-image: url(../img/glyphicons-halflings.png); + background-position: 14px 14px; + background-repeat: no-repeat; + *margin-right: .3em; +} +[class^="icon-"]:last-child { + *margin-left: 0; +} +.icon-white { + background-image: url(../img/glyphicons-halflings-white.png); +} +.icon-glass { + background-position: 0 0; +} +.icon-music { + background-position: -24px 0; +} +.icon-search { + background-position: -48px 0; +} +.icon-envelope { + background-position: -72px 0; +} +.icon-heart { + background-position: -96px 0; +} +.icon-star { + background-position: -120px 0; +} +.icon-star-empty { + background-position: -144px 0; +} +.icon-user { + background-position: -168px 0; +} +.icon-film { + background-position: -192px 0; +} +.icon-th-large { + background-position: -216px 0; +} +.icon-th { + background-position: -240px 0; +} +.icon-th-list { + background-position: -264px 0; +} +.icon-ok { + background-position: -288px 0; +} +.icon-remove { + background-position: -312px 0; +} +.icon-zoom-in { + background-position: -336px 0; +} +.icon-zoom-out { + background-position: -360px 0; +} +.icon-off { + background-position: -384px 0; +} +.icon-signal { + background-position: -408px 0; +} +.icon-cog { + background-position: -432px 0; +} +.icon-trash { + background-position: -456px 0; +} +.icon-home { + background-position: 0 -24px; +} +.icon-file { + background-position: -24px -24px; +} +.icon-time { + background-position: -48px -24px; +} +.icon-road { + background-position: -72px -24px; +} +.icon-download-alt { + background-position: -96px -24px; +} +.icon-download { + background-position: -120px -24px; +} +.icon-upload { + background-position: -144px -24px; +} +.icon-inbox { + background-position: -168px -24px; +} +.icon-play-circle { + background-position: -192px -24px; +} +.icon-repeat { + background-position: -216px -24px; +} +.icon-refresh { + background-position: -240px -24px; +} +.icon-list-alt { + background-position: -264px -24px; +} +.icon-lock { + background-position: -287px -24px; +} +.icon-flag { + background-position: -312px -24px; +} +.icon-headphones { + background-position: -336px -24px; +} +.icon-volume-off { + background-position: -360px -24px; +} +.icon-volume-down { + background-position: -384px -24px; +} +.icon-volume-up { + background-position: -408px -24px; +} +.icon-qrcode { + background-position: -432px -24px; +} +.icon-barcode { + background-position: -456px -24px; +} +.icon-tag { + background-position: 0 -48px; +} +.icon-tags { + background-position: -25px -48px; +} +.icon-book { + background-position: -48px -48px; +} +.icon-bookmark { + background-position: -72px -48px; +} +.icon-print { + background-position: -96px -48px; +} +.icon-camera { + background-position: -120px -48px; +} +.icon-font { + background-position: -144px -48px; +} +.icon-bold { + background-position: -167px -48px; +} +.icon-italic { + background-position: -192px -48px; +} +.icon-text-height { + background-position: -216px -48px; +} +.icon-text-width { + background-position: -240px -48px; +} +.icon-align-left { + background-position: -264px -48px; +} +.icon-align-center { + background-position: -288px -48px; +} +.icon-align-right { + background-position: -312px -48px; +} +.icon-align-justify { + background-position: -336px -48px; +} +.icon-list { + background-position: -360px -48px; +} +.icon-indent-left { + background-position: -384px -48px; +} +.icon-indent-right { + background-position: -408px -48px; +} +.icon-facetime-video { + background-position: -432px -48px; +} +.icon-picture { + background-position: -456px -48px; +} +.icon-pencil { + background-position: 0 -72px; +} +.icon-map-marker { + background-position: -24px -72px; +} +.icon-adjust { + background-position: -48px -72px; +} +.icon-tint { + background-position: -72px -72px; +} +.icon-edit { + background-position: -96px -72px; +} +.icon-share { + background-position: -120px -72px; +} +.icon-check { + background-position: -144px -72px; +} +.icon-move { + background-position: -168px -72px; +} +.icon-step-backward { + background-position: -192px -72px; +} +.icon-fast-backward { + background-position: -216px -72px; +} +.icon-backward { + background-position: -240px -72px; +} +.icon-play { + background-position: -264px -72px; +} +.icon-pause { + background-position: -288px -72px; +} +.icon-stop { + background-position: -312px -72px; +} +.icon-forward { + background-position: -336px -72px; +} +.icon-fast-forward { + background-position: -360px -72px; +} +.icon-step-forward { + background-position: -384px -72px; +} +.icon-eject { + background-position: -408px -72px; +} +.icon-chevron-left { + background-position: -432px -72px; +} +.icon-chevron-right { + background-position: -456px -72px; +} +.icon-plus-sign { + background-position: 0 -96px; +} +.icon-minus-sign { + background-position: -24px -96px; +} +.icon-remove-sign { + background-position: -48px -96px; +} +.icon-ok-sign { + background-position: -72px -96px; +} +.icon-question-sign { + background-position: -96px -96px; +} +.icon-info-sign { + background-position: -120px -96px; +} +.icon-screenshot { + background-position: -144px -96px; +} +.icon-remove-circle { + background-position: -168px -96px; +} +.icon-ok-circle { + background-position: -192px -96px; +} +.icon-ban-circle { + background-position: -216px -96px; +} +.icon-arrow-left { + background-position: -240px -96px; +} +.icon-arrow-right { + background-position: -264px -96px; +} +.icon-arrow-up { + background-position: -289px -96px; +} +.icon-arrow-down { + background-position: -312px -96px; +} +.icon-share-alt { + background-position: -336px -96px; +} +.icon-resize-full { + background-position: -360px -96px; +} +.icon-resize-small { + background-position: -384px -96px; +} +.icon-plus { + background-position: -408px -96px; +} +.icon-minus { + background-position: -433px -96px; +} +.icon-asterisk { + background-position: -456px -96px; +} +.icon-exclamation-sign { + background-position: 0 -120px; +} +.icon-gift { + background-position: -24px -120px; +} +.icon-leaf { + background-position: -48px -120px; +} +.icon-fire { + background-position: -72px -120px; +} +.icon-eye-open { + background-position: -96px -120px; +} +.icon-eye-close { + background-position: -120px -120px; +} +.icon-warning-sign { + background-position: -144px -120px; +} +.icon-plane { + background-position: -168px -120px; +} +.icon-calendar { + background-position: -192px -120px; +} +.icon-random { + background-position: -216px -120px; +} +.icon-comment { + background-position: -240px -120px; +} +.icon-magnet { + background-position: -264px -120px; +} +.icon-chevron-up { + background-position: -288px -120px; +} +.icon-chevron-down { + background-position: -313px -119px; +} +.icon-retweet { + background-position: -336px -120px; +} +.icon-shopping-cart { + background-position: -360px -120px; +} +.icon-folder-close { + background-position: -384px -120px; +} +.icon-folder-open { + background-position: -408px -120px; +} +.icon-resize-vertical { + background-position: -432px -119px; +} +.icon-resize-horizontal { + background-position: -456px -118px; +} +.dropdown { + position: relative; +} +.dropdown-toggle { + *margin-bottom: -3px; +} +.dropdown-toggle:active, .open .dropdown-toggle { + outline: 0; +} +.caret { + display: inline-block; + width: 0; + height: 0; + text-indent: -99999px; + *text-indent: 0; + vertical-align: top; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 4px solid #000000; + opacity: 0.3; + filter: alpha(opacity=30); + content: "\2193"; +} +.dropdown .caret { + margin-top: 8px; + margin-left: 2px; +} +.dropdown:hover .caret, .open.dropdown .caret { + opacity: 1; + filter: alpha(opacity=100); +} +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + float: left; + display: none; + min-width: 160px; + max-width: 220px; + _width: 160px; + padding: 4px 0; + margin: 0; + list-style: none; + background-color: #ffffff; + border-color: #ccc; + border-color: rgba(0, 0, 0, 0.2); + border-style: solid; + border-width: 1px; + -webkit-border-radius: 0 0 5px 5px; + -moz-border-radius: 0 0 5px 5px; + border-radius: 0 0 5px 5px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; + *border-right-width: 2px; + *border-bottom-width: 2px; +} +.dropdown-menu.bottom-up { + top: auto; + bottom: 100%; + margin-bottom: 2px; +} +.dropdown-menu .divider { + height: 1px; + margin: 5px 1px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; + *width: 100%; + *margin: -5px 0 5px; +} +.dropdown-menu a { + display: block; + padding: 3px 15px; + clear: both; + font-weight: normal; + line-height: 18px; + color: #555555; + white-space: nowrap; +} +.dropdown-menu li > a:hover, .dropdown-menu .active > a, .dropdown-menu .active > a:hover { + color: #ffffff; + text-decoration: none; + background-color: #0088cc; +} +.dropdown.open { + *z-index: 1000; +} +.dropdown.open .dropdown-toggle { + color: #ffffff; + background: #ccc; + background: rgba(0, 0, 0, 0.3); +} +.dropdown.open .dropdown-menu { + display: block; +} +.typeahead { + margin-top: 2px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #eee; + border: 1px solid rgba(0, 0, 0, 0.05); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); +} +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); +} +.fade { + -webkit-transition: opacity 0.15s linear; + -moz-transition: opacity 0.15s linear; + -ms-transition: opacity 0.15s linear; + -o-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; + opacity: 0; +} +.fade.in { + opacity: 1; +} +.collapse { + -webkit-transition: height 0.35s ease; + -moz-transition: height 0.35s ease; + -ms-transition: height 0.35s ease; + -o-transition: height 0.35s ease; + transition: height 0.35s ease; + position: relative; + overflow: hidden; + height: 0; +} +.collapse.in { + height: auto; +} +.close { + float: right; + font-size: 20px; + font-weight: bold; + line-height: 18px; + color: #000000; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.2; + filter: alpha(opacity=20); +} +.close:hover { + color: #000000; + text-decoration: none; + opacity: 0.4; + filter: alpha(opacity=40); + cursor: pointer; +} +.btn { + display: inline-block; + padding: 4px 10px 4px; + font-size: 13px; + line-height: 18px; + color: #333333; + text-align: center; + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); + background-color: #fafafa; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), color-stop(25%, #ffffff), to(#e6e6e6)); + background-image: -webkit-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); + background-image: -moz-linear-gradient(top, #ffffff, #ffffff 25%, #e6e6e6); + background-image: -ms-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); + background-image: -o-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); + background-image: linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); + background-repeat: no-repeat; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0); + border: 1px solid #ccc; + border-bottom-color: #bbb; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + cursor: pointer; + *margin-left: .3em; +} +.btn:first-child { + *margin-left: 0; +} +.btn:hover { + color: #333333; + text-decoration: none; + background-color: #e6e6e6; + background-position: 0 -15px; + -webkit-transition: background-position 0.1s linear; + -moz-transition: background-position 0.1s linear; + -ms-transition: background-position 0.1s linear; + -o-transition: background-position 0.1s linear; + transition: background-position 0.1s linear; +} +.btn:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.btn.active, .btn:active { + background-image: none; + -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + background-color: #e6e6e6; + background-color: #d9d9d9 \9; + color: rgba(0, 0, 0, 0.5); + outline: 0; +} +.btn.disabled, .btn[disabled] { + cursor: default; + background-image: none; + background-color: #e6e6e6; + opacity: 0.65; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +.btn-large { + padding: 9px 14px; + font-size: 15px; + line-height: normal; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} +.btn-large .icon { + margin-top: 1px; +} +.btn-small { + padding: 5px 9px; + font-size: 11px; + line-height: 16px; +} +.btn-small .icon { + margin-top: -1px; +} +.btn-primary, +.btn-primary:hover, +.btn-warning, +.btn-warning:hover, +.btn-danger, +.btn-danger:hover, +.btn-success, +.btn-success:hover, +.btn-info, +.btn-info:hover { + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + color: #ffffff; +} +.btn-primary.active, +.btn-warning.active, +.btn-danger.active, +.btn-success.active, +.btn-info.active { + color: rgba(255, 255, 255, 0.75); +} +.btn-primary { + background-color: #006dcc; + background-image: -moz-linear-gradient(top, #0088cc, #0044cc); + background-image: -ms-linear-gradient(top, #0088cc, #0044cc); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); + background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); + background-image: -o-linear-gradient(top, #0088cc, #0044cc); + background-image: linear-gradient(top, #0088cc, #0044cc); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0); + border-color: #0044cc #0044cc #002a80; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.btn-primary:hover, +.btn-primary:active, +.btn-primary.active, +.btn-primary.disabled, +.btn-primary[disabled] { + background-color: #0044cc; +} +.btn-primary:active, .btn-primary.active { + background-color: #003399 \9; +} +.btn-warning { + background-color: #faa732; + background-image: -moz-linear-gradient(top, #fbb450, #f89406); + background-image: -ms-linear-gradient(top, #fbb450, #f89406); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); + background-image: -webkit-linear-gradient(top, #fbb450, #f89406); + background-image: -o-linear-gradient(top, #fbb450, #f89406); + background-image: linear-gradient(top, #fbb450, #f89406); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0); + border-color: #f89406 #f89406 #ad6704; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.btn-warning:hover, +.btn-warning:active, +.btn-warning.active, +.btn-warning.disabled, +.btn-warning[disabled] { + background-color: #f89406; +} +.btn-warning:active, .btn-warning.active { + background-color: #c67605 \9; +} +.btn-danger { + background-color: #da4f49; + background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -ms-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -o-linear-gradient(top, #ee5f5b, #bd362f); + background-image: linear-gradient(top, #ee5f5b, #bd362f); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0); + border-color: #bd362f #bd362f #802420; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.btn-danger:hover, +.btn-danger:active, +.btn-danger.active, +.btn-danger.disabled, +.btn-danger[disabled] { + background-color: #bd362f; +} +.btn-danger:active, .btn-danger.active { + background-color: #942a25 \9; +} +.btn-success { + background-color: #5bb75b; + background-image: -moz-linear-gradient(top, #62c462, #51a351); + background-image: -ms-linear-gradient(top, #62c462, #51a351); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351)); + background-image: -webkit-linear-gradient(top, #62c462, #51a351); + background-image: -o-linear-gradient(top, #62c462, #51a351); + background-image: linear-gradient(top, #62c462, #51a351); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0); + border-color: #51a351 #51a351 #387038; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.btn-success:hover, +.btn-success:active, +.btn-success.active, +.btn-success.disabled, +.btn-success[disabled] { + background-color: #51a351; +} +.btn-success:active, .btn-success.active { + background-color: #408140 \9; +} +.btn-info { + background-color: #49afcd; + background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4); + background-image: -ms-linear-gradient(top, #5bc0de, #2f96b4); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4)); + background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4); + background-image: -o-linear-gradient(top, #5bc0de, #2f96b4); + background-image: linear-gradient(top, #5bc0de, #2f96b4); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0); + border-color: #2f96b4 #2f96b4 #1f6377; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.btn-info:hover, +.btn-info:active, +.btn-info.active, +.btn-info.disabled, +.btn-info[disabled] { + background-color: #2f96b4; +} +.btn-info:active, .btn-info.active { + background-color: #24748c \9; +} +button.btn, input[type="submit"].btn { + *padding-top: 2px; + *padding-bottom: 2px; +} +button.btn::-moz-focus-inner, input[type="submit"].btn::-moz-focus-inner { + padding: 0; + border: 0; +} +button.btn.large, input[type="submit"].btn.large { + *padding-top: 7px; + *padding-bottom: 7px; +} +button.btn.small, input[type="submit"].btn.small { + *padding-top: 3px; + *padding-bottom: 3px; +} +.btn-group { + position: relative; + *zoom: 1; + *margin-left: .3em; +} +.btn-group:before, .btn-group:after { + display: table; + content: ""; +} +.btn-group:after { + clear: both; +} +.btn-group:first-child { + *margin-left: 0; +} +.btn-group + .btn-group { + margin-left: 5px; +} +.btn-toolbar { + margin-top: 9px; + margin-bottom: 9px; +} +.btn-toolbar .btn-group { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; +} +.btn-group .btn { + position: relative; + float: left; + margin-left: -1px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.btn-group .btn:first-child { + margin-left: 0; + -webkit-border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; + border-top-left-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + border-bottom-left-radius: 4px; +} +.btn-group .btn:last-child, .btn-group .dropdown-toggle { + -webkit-border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; + border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -moz-border-radius-bottomright: 4px; + border-bottom-right-radius: 4px; +} +.btn-group .btn.large:first-child { + margin-left: 0; + -webkit-border-top-left-radius: 6px; + -moz-border-radius-topleft: 6px; + border-top-left-radius: 6px; + -webkit-border-bottom-left-radius: 6px; + -moz-border-radius-bottomleft: 6px; + border-bottom-left-radius: 6px; +} +.btn-group .btn.large:last-child, .btn-group .large.dropdown-toggle { + -webkit-border-top-right-radius: 6px; + -moz-border-radius-topright: 6px; + border-top-right-radius: 6px; + -webkit-border-bottom-right-radius: 6px; + -moz-border-radius-bottomright: 6px; + border-bottom-right-radius: 6px; +} +.btn-group .btn:hover, +.btn-group .btn:focus, +.btn-group .btn:active, +.btn-group .btn.active { + z-index: 2; +} +.btn-group .dropdown-toggle:active, .btn-group.open .dropdown-toggle { + outline: 0; +} +.btn-group .dropdown-toggle { + padding-left: 8px; + padding-right: 8px; + -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + *padding-top: 5px; + *padding-bottom: 5px; +} +.btn-group.open { + *z-index: 1000; +} +.btn-group.open .dropdown-menu { + display: block; + margin-top: 1px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} +.btn-group.open .dropdown-toggle { + background-image: none; + -webkit-box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); +} +.btn .caret { + margin-top: 7px; + margin-left: 0; +} +.btn:hover .caret, .open.btn-group .caret { + opacity: 1; + filter: alpha(opacity=100); +} +.btn-primary .caret, +.btn-danger .caret, +.btn-info .caret, +.btn-success .caret { + border-top-color: #ffffff; + opacity: 0.75; + filter: alpha(opacity=75); +} +.btn-small .caret { + margin-top: 4px; +} +.alert { + padding: 8px 35px 8px 14px; + margin-bottom: 18px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + background-color: #fcf8e3; + border: 1px solid #fbeed5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.alert, .alert-heading { + color: #c09853; +} +.alert .close { + position: relative; + top: -2px; + right: -21px; + line-height: 18px; +} +.alert-success { + background-color: #dff0d8; + border-color: #d6e9c6; +} +.alert-success, .alert-success .alert-heading { + color: #468847; +} +.alert-danger, .alert-error { + background-color: #f2dede; + border-color: #eed3d7; +} +.alert-danger, +.alert-error, +.alert-danger .alert-heading, +.alert-error .alert-heading { + color: #b94a48; +} +.alert-info { + background-color: #d9edf7; + border-color: #bce8f1; +} +.alert-info, .alert-info .alert-heading { + color: #3a87ad; +} +.alert-block { + padding-top: 14px; + padding-bottom: 14px; +} +.alert-block > p, .alert-block > ul { + margin-bottom: 0; +} +.alert-block p + p { + margin-top: 5px; +} +.nav { + margin-left: 0; + margin-bottom: 18px; + list-style: none; +} +.nav > li > a { + display: block; +} +.nav > li > a:hover { + text-decoration: none; + background-color: #eeeeee; +} +.nav-list { + padding-left: 14px; + padding-right: 14px; + margin-bottom: 0; +} +.nav-list > li > a, .nav-list .nav-header { + display: block; + padding: 3px 15px; + margin-left: -15px; + margin-right: -15px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); +} +.nav-list .nav-header { + font-size: 11px; + font-weight: bold; + line-height: 18px; + color: #999999; + text-transform: uppercase; +} + +.nav-list .nav-header * { + text-transform:none; +} + +.nav-list > li + .nav-header { + margin-top: 9px; +} +.nav-list .active > a, .nav-list .active > a:hover { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); + background-color: #0088cc; +} +.nav-list [class^="icon-"] { + margin-right: 2px; +} +.nav-tabs, .nav-pills { + *zoom: 1; +} +.nav-tabs:before, +.nav-pills:before, +.nav-tabs:after, +.nav-pills:after { + display: table; + content: ""; +} +.nav-tabs:after, .nav-pills:after { + clear: both; +} +.nav-tabs > li, .nav-pills > li { + float: left; +} +.nav-tabs > li > a, .nav-pills > li > a { + padding-right: 12px; + padding-left: 12px; + margin-right: 2px; + line-height: 14px; +} +.nav-tabs { + border-bottom: 1px solid #ddd; +} +.nav-tabs > li { + margin-bottom: -1px; +} +.nav-tabs > li > a { + padding-top: 9px; + padding-bottom: 9px; + border: 1px solid transparent; + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} +.nav-tabs > li > a:hover { + border-color: #eeeeee #eeeeee #dddddd; +} +.nav-tabs > .active > a, .nav-tabs > .active > a:hover { + color: #555555; + background-color: #ffffff; + border: 1px solid #ddd; + border-bottom-color: transparent; + cursor: default; +} +.nav-pills > li > a { + padding-top: 8px; + padding-bottom: 8px; + margin-top: 2px; + margin-bottom: 2px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} +.nav-pills .active > a, .nav-pills .active > a:hover { + color: #ffffff; + background-color: #0088cc; +} +.nav-stacked > li { + float: none; +} +.nav-stacked > li > a { + margin-right: 0; +} +.nav-tabs.nav-stacked { + border-bottom: 0; +} +.nav-tabs.nav-stacked > li > a { + border: 1px solid #ddd; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.nav-tabs.nav-stacked > li:first-child > a { + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} +.nav-tabs.nav-stacked > li:last-child > a { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} +.nav-tabs.nav-stacked > li > a:hover { + border-color: #ddd; + z-index: 2; +} +.nav-pills.nav-stacked > li > a { + margin-bottom: 3px; +} +.nav-pills.nav-stacked > li:last-child > a { + margin-bottom: 1px; +} +.nav-tabs .dropdown-menu, .nav-pills .dropdown-menu { + margin-top: 1px; + border-width: 1px; +} +.nav-pills .dropdown-menu { + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.nav-tabs .dropdown-toggle .caret, .nav-pills .dropdown-toggle .caret { + border-top-color: #0088cc; + margin-top: 6px; +} +.nav-tabs .dropdown-toggle:hover .caret, .nav-pills .dropdown-toggle:hover .caret { + border-top-color: #005580; +} +.nav-tabs .active .dropdown-toggle .caret, .nav-pills .active .dropdown-toggle .caret { + border-top-color: #333333; +} +.nav > .dropdown.active > a:hover { + color: #000000; + cursor: pointer; +} +.nav-tabs .open .dropdown-toggle, .nav-pills .open .dropdown-toggle, .nav > .open.active > a:hover { + color: #ffffff; + background-color: #999999; + border-color: #999999; +} +.nav .open .caret, .nav .open.active .caret, .nav .open a:hover .caret { + border-top-color: #ffffff; + opacity: 1; + filter: alpha(opacity=100); +} +.tabs-stacked .open > a:hover { + border-color: #999999; +} +.tabbable { + *zoom: 1; +} +.tabbable:before, .tabbable:after { + display: table; + content: ""; +} +.tabbable:after { + clear: both; +} +.tabs-below .nav-tabs, .tabs-right .nav-tabs, .tabs-left .nav-tabs { + border-bottom: 0; +} +.tab-content > .tab-pane, .pill-content > .pill-pane { + display: none; +} +.tab-content > .active, .pill-content > .active { + display: block; +} +.tabs-below .nav-tabs { + border-top: 1px solid #ddd; +} +.tabs-below .nav-tabs > li { + margin-top: -1px; + margin-bottom: 0; +} +.tabs-below .nav-tabs > li > a { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} +.tabs-below .nav-tabs > li > a:hover { + border-bottom-color: transparent; + border-top-color: #ddd; +} +.tabs-below .nav-tabs .active > a, .tabs-below .nav-tabs .active > a:hover { + border-color: transparent #ddd #ddd #ddd; +} +.tabs-left .nav-tabs > li, .tabs-right .nav-tabs > li { + float: none; +} +.tabs-left .nav-tabs > li > a, .tabs-right .nav-tabs > li > a { + min-width: 74px; + margin-right: 0; + margin-bottom: 3px; +} +.tabs-left .nav-tabs { + float: left; + margin-right: 19px; + border-right: 1px solid #ddd; +} +.tabs-left .nav-tabs > li > a { + margin-right: -1px; + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} +.tabs-left .nav-tabs > li > a:hover { + border-color: #eeeeee #dddddd #eeeeee #eeeeee; +} +.tabs-left .nav-tabs .active > a, .tabs-left .nav-tabs .active > a:hover { + border-color: #ddd transparent #ddd #ddd; + *border-right-color: #ffffff; +} +.tabs-right .nav-tabs { + float: right; + margin-left: 19px; + border-left: 1px solid #ddd; +} +.tabs-right .nav-tabs > li > a { + margin-left: -1px; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} +.tabs-right .nav-tabs > li > a:hover { + border-color: #eeeeee #eeeeee #eeeeee #dddddd; +} +.tabs-right .nav-tabs .active > a, .tabs-right .nav-tabs .active > a:hover { + border-color: #ddd #ddd #ddd transparent; + *border-left-color: #ffffff; +} +.navbar { + overflow: visible; + margin-bottom: 18px; +} +.navbar-inner { + padding-left: 20px; + padding-right: 20px; + background-color: #2c2c2c; + background-image: -moz-linear-gradient(top, #333333, #222222); + background-image: -ms-linear-gradient(top, #333333, #222222); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222)); + background-image: -webkit-linear-gradient(top, #333333, #222222); + background-image: -o-linear-gradient(top, #333333, #222222); + background-image: linear-gradient(top, #333333, #222222); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); +} +.btn-navbar { + display: none; + float: right; + padding: 7px 10px; + margin-left: 5px; + margin-right: 5px; + background-color: #2c2c2c; + background-image: -moz-linear-gradient(top, #333333, #222222); + background-image: -ms-linear-gradient(top, #333333, #222222); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222)); + background-image: -webkit-linear-gradient(top, #333333, #222222); + background-image: -o-linear-gradient(top, #333333, #222222); + background-image: linear-gradient(top, #333333, #222222); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0); + border-color: #222222 #222222 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); +} +.btn-navbar:hover, +.btn-navbar:active, +.btn-navbar.active, +.btn-navbar.disabled, +.btn-navbar[disabled] { + background-color: #222222; +} +.btn-navbar:active, .btn-navbar.active { + background-color: #080808 \9; +} +.btn-navbar .icon-bar { + display: block; + width: 18px; + height: 2px; + background-color: #f5f5f5; + -webkit-border-radius: 1px; + -moz-border-radius: 1px; + border-radius: 1px; + -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); +} +.btn-navbar .icon-bar + .icon-bar { + margin-top: 3px; +} +.nav-collapse.collapse { + height: auto; +} +.navbar .brand:hover { + text-decoration: none; +} +.navbar .brand { + float: left; + display: block; + padding: 8px 20px 12px; + margin-left: -20px; + font-size: 20px; + font-weight: 200; + line-height: 1; + color: #ffffff; +} +.navbar .navbar-text { + margin-bottom: 0; + line-height: 40px; + color: #999999; +} +.navbar .navbar-text a:hover { + color: #ffffff; + background-color: transparent; +} +.navbar .btn, .navbar .btn-group { + margin-top: 5px; +} +.navbar .btn-group .btn { + margin-top: 0; +} +.navbar-form { + margin-bottom: 0; + *zoom: 1; +} +.navbar-form:before, .navbar-form:after { + display: table; + content: ""; +} +.navbar-form:after { + clear: both; +} +.navbar-form input, .navbar-form select { + display: inline-block; + margin-top: 5px; + margin-bottom: 0; +} +.navbar-form .radio, .navbar-form .checkbox { + margin-top: 5px; +} +.navbar-form input[type="image"], .navbar-form input[type="checkbox"], .navbar-form input[type="radio"] { + margin-top: 3px; +} +.navbar-search { + position: relative; + float: left; + margin-top: 6px; + margin-bottom: 0; +} +.navbar-search .search-query { + padding: 4px 9px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + font-weight: normal; + line-height: 1; + color: #ffffff; + color: rgba(255, 255, 255, 0.75); + background: #666; + background: rgba(255, 255, 255, 0.3); + border: 1px solid #111; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15); + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + -o-transition: none; + transition: none; +} +.navbar-search .search-query :-moz-placeholder { + color: #eeeeee; +} +.navbar-search .search-query::-webkit-input-placeholder { + color: #eeeeee; +} +.navbar-search .search-query:hover { + color: #ffffff; + background-color: #999999; + background-color: rgba(255, 255, 255, 0.5); +} +.navbar-search .search-query:focus, .navbar-search .search-query.focused { + padding: 5px 10px; + color: #333333; + text-shadow: 0 1px 0 #ffffff; + background-color: #ffffff; + border: 0; + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + outline: 0; +} +.navbar-fixed-top { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1030; +} +.navbar-fixed-top .navbar-inner { + padding-left: 0; + padding-right: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.navbar .nav { + position: relative; + left: 0; + display: block; + float: left; + margin: 0 10px 0 0; +} +.navbar .nav.pull-right { + float: right; +} +.navbar .nav > li { + display: block; + float: left; +} +.navbar .nav > li > a { + float: none; + padding: 10px 10px 11px; + line-height: 19px; + color: #999999; + text-decoration: none; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} +.navbar .nav > li > a:hover { + background-color: transparent; + color: #ffffff; + text-decoration: none; +} +.navbar .nav .active > a, .navbar .nav .active > a:hover { + color: #ffffff; + text-decoration: none; + background-color: #222222; + background-color: rgba(0, 0, 0, 0.5); +} +.navbar .divider-vertical { + height: 40px; + width: 1px; + margin: 0 9px; + overflow: hidden; + background-color: #222222; + border-right: 1px solid #333333; +} +.navbar .nav.pull-right { + margin-left: 10px; + margin-right: 0; +} +.navbar .dropdown-menu { + margin-top: 1px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.navbar .dropdown-menu:before { + content: ''; + display: inline-block; + border-left: 7px solid transparent; + border-right: 7px solid transparent; + border-bottom: 7px solid #ccc; + border-bottom-color: rgba(0, 0, 0, 0.2); + position: absolute; + top: -7px; + left: 9px; +} +.navbar .dropdown-menu:after { + content: ''; + display: inline-block; + border-left: 6px solid transparent; + border-right: 6px solid transparent; + border-bottom: 6px solid #ffffff; + position: absolute; + top: -6px; + left: 10px; +} +.navbar .nav .dropdown-toggle .caret, .navbar .nav .open.dropdown .caret { + border-top-color: #ffffff; +} +.navbar .nav .active .caret { + opacity: 1; + filter: alpha(opacity=100); +} +.navbar .nav .open > .dropdown-toggle, .navbar .nav .active > .dropdown-toggle, .navbar .nav .open.active > .dropdown-toggle { + background-color: transparent; +} +.navbar .nav .active > .dropdown-toggle:hover { + color: #ffffff; +} +.navbar .nav.pull-right .dropdown-menu { + left: auto; + right: 0; +} +.navbar .nav.pull-right .dropdown-menu:before { + left: auto; + right: 12px; +} +.navbar .nav.pull-right .dropdown-menu:after { + left: auto; + right: 13px; +} +.breadcrumb { + padding: 7px 14px; + margin: 0 0 18px; + background-color: #fbfbfb; + background-image: -moz-linear-gradient(top, #ffffff, #f5f5f5); + background-image: -ms-linear-gradient(top, #ffffff, #f5f5f5); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f5f5f5)); + background-image: -webkit-linear-gradient(top, #ffffff, #f5f5f5); + background-image: -o-linear-gradient(top, #ffffff, #f5f5f5); + background-image: linear-gradient(top, #ffffff, #f5f5f5); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0); + border: 1px solid #ddd; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: inset 0 1px 0 #ffffff; + -moz-box-shadow: inset 0 1px 0 #ffffff; + box-shadow: inset 0 1px 0 #ffffff; +} +.breadcrumb li { + display: inline; + text-shadow: 0 1px 0 #ffffff; +} +.breadcrumb .divider { + padding: 0 5px; + color: #999999; +} +.breadcrumb .active a { + color: #333333; +} +.pagination { + height: 36px; + margin: 18px 0; +} +.pagination ul { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; + margin-left: 0; + margin-bottom: 0; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); +} +.pagination li { + display: inline; +} +.pagination a { + float: left; + padding: 0 14px; + line-height: 34px; + text-decoration: none; + border: 1px solid #ddd; + border-left-width: 0; +} +.pagination a:hover, .pagination .active a { + background-color: #f5f5f5; +} +.pagination .active a { + color: #999999; + cursor: default; +} +.pagination .disabled a, .pagination .disabled a:hover { + color: #999999; + background-color: transparent; + cursor: default; +} +.pagination li:first-child a { + border-left-width: 1px; + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} +.pagination li:last-child a { + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} +.pagination-centered { + text-align: center; +} +.pagination-right { + text-align: right; +} +.pager { + margin-left: 0; + margin-bottom: 18px; + list-style: none; + text-align: center; + *zoom: 1; +} +.pager:before, .pager:after { + display: table; + content: ""; +} +.pager:after { + clear: both; +} +.pager li { + display: inline; +} +.pager a { + display: inline-block; + padding: 5px 14px; + background-color: #fff; + border: 1px solid #ddd; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} +.pager a:hover { + text-decoration: none; + background-color: #f5f5f5; +} +.pager .next a { + float: right; +} +.pager .previous a { + float: left; +} +.modal-open .dropdown-menu { + z-index: 2050; +} +.modal-open .dropdown.open { + *z-index: 2050; +} +.modal-open .popover { + z-index: 2060; +} +.modal-open .tooltip { + z-index: 2070; +} +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000000; +} +.modal-backdrop.fade { + opacity: 0; +} +.modal-backdrop, .modal-backdrop.fade.in { + opacity: 0.8; + filter: alpha(opacity=80); +} +.modal { + position: fixed; + top: 50%; + left: 50%; + z-index: 1050; + max-height: 500px; + overflow: auto; + width: 560px; + margin: -250px 0 0 -280px; + background-color: #ffffff; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, 0.3); + *border: 1px solid #999; + /* IE6-7 */ + + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; +} +.modal.fade { + -webkit-transition: opacity .3s linear, top .3s ease-out; + -moz-transition: opacity .3s linear, top .3s ease-out; + -ms-transition: opacity .3s linear, top .3s ease-out; + -o-transition: opacity .3s linear, top .3s ease-out; + transition: opacity .3s linear, top .3s ease-out; + top: -25%; +} +.modal.fade.in { + top: 50%; +} +.modal-header { + padding: 9px 15px; + border-bottom: 1px solid #eee; +} +.modal-header .close { + margin-top: 2px; +} +.modal-body { + padding: 15px; +} +.modal-footer { + padding: 14px 15px 15px; + margin-bottom: 0; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; + -webkit-box-shadow: inset 0 1px 0 #ffffff; + -moz-box-shadow: inset 0 1px 0 #ffffff; + box-shadow: inset 0 1px 0 #ffffff; + *zoom: 1; +} +.modal-footer:before, .modal-footer:after { + display: table; + content: ""; +} +.modal-footer:after { + clear: both; +} +.modal-footer .btn { + float: right; + margin-left: 5px; + margin-bottom: 0; +} +.tooltip { + position: absolute; + z-index: 1020; + display: block; + visibility: visible; + padding: 5px; + font-size: 11px; + opacity: 0; + filter: alpha(opacity=0); +} +.tooltip.in { + opacity: 0.8; + filter: alpha(opacity=80); +} +.tooltip.top { + margin-top: -2px; +} +.tooltip.right { + margin-left: 2px; +} +.tooltip.bottom { + margin-top: 2px; +} +.tooltip.left { + margin-left: -2px; +} +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-top: 5px solid #000000; +} +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 5px solid #000000; +} +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-bottom: 5px solid #000000; +} +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-right: 5px solid #000000; +} +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #ffffff; + text-align: center; + text-decoration: none; + background-color: #000000; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; +} +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1010; + display: none; + padding: 5px; +} +.popover.top { + margin-top: -5px; +} +.popover.right { + margin-left: 5px; +} +.popover.bottom { + margin-top: 5px; +} +.popover.left { + margin-left: -5px; +} +.popover.top .arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-top: 5px solid #000000; +} +.popover.right .arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-right: 5px solid #000000; +} +.popover.bottom .arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-bottom: 5px solid #000000; +} +.popover.left .arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 5px solid #000000; +} +.popover .arrow { + position: absolute; + width: 0; + height: 0; +} +.popover-inner { + padding: 3px; + width: 280px; + overflow: hidden; + background: #000000; + background: rgba(0, 0, 0, 0.8); + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); +} +.popover-title { + padding: 9px 15px; + line-height: 1; + background-color: #f5f5f5; + border-bottom: 1px solid #eee; + -webkit-border-radius: 3px 3px 0 0; + -moz-border-radius: 3px 3px 0 0; + border-radius: 3px 3px 0 0; +} +.popover-content { + padding: 14px; + background-color: #ffffff; + -webkit-border-radius: 0 0 3px 3px; + -moz-border-radius: 0 0 3px 3px; + border-radius: 0 0 3px 3px; + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; +} +.popover-content p, .popover-content ul, .popover-content ol { + margin-bottom: 0; +} +.thumbnails { + margin-left: -20px; + list-style: none; + *zoom: 1; +} +.thumbnails:before, .thumbnails:after { + display: table; + content: ""; +} +.thumbnails:after { + clear: both; +} +.thumbnails > li { + float: left; + margin: 0 0 18px 20px; +} +.thumbnail { + display: block; + padding: 4px; + line-height: 1; + border: 1px solid #ddd; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); +} +a.thumbnail:hover { + border-color: #0088cc; + -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); +} +.thumbnail > img { + display: block; + max-width: 100%; + margin-left: auto; + margin-right: auto; +} +.thumbnail .caption { + padding: 9px; +} +.label { + padding: 1px 3px 2px; + font-size: 9.75px; + font-weight: bold; + color: #ffffff; + text-transform: uppercase; + background-color: #999999; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +.label-important { + background-color: #b94a48; +} +.label-warning { + background-color: #f89406; +} +.label-success { + background-color: #468847; +} +.label-info { + background-color: #3a87ad; +} +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 0 0; + } + to { + background-position: 40px 0; + } +} +@-moz-keyframes progress-bar-stripes { + from { + background-position: 0 0; + } + to { + background-position: 40px 0; + } +} +@keyframes progress-bar-stripes { + from { + background-position: 0 0; + } + to { + background-position: 40px 0; + } +} +.progress { + overflow: hidden; + height: 18px; + margin-bottom: 18px; + background-color: #f7f7f7; + background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -ms-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9)); + background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: linear-gradient(top, #f5f5f5, #f9f9f9); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0); + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.progress .bar { + width: 0%; + height: 18px; + color: #ffffff; + font-size: 12px; + text-align: center; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #0e90d2; + background-image: -moz-linear-gradient(top, #149bdf, #0480be); + background-image: -ms-linear-gradient(top, #149bdf, #0480be); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be)); + background-image: -webkit-linear-gradient(top, #149bdf, #0480be); + background-image: -o-linear-gradient(top, #149bdf, #0480be); + background-image: linear-gradient(top, #149bdf, #0480be); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', GradientType=0); + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: width 0.6s ease; + -moz-transition: width 0.6s ease; + -ms-transition: width 0.6s ease; + -o-transition: width 0.6s ease; + transition: width 0.6s ease; +} +.progress-striped .bar { + background-color: #62c462; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + -webkit-background-size: 40px 40px; + -moz-background-size: 40px 40px; + -o-background-size: 40px 40px; + background-size: 40px 40px; +} +.progress.active .bar { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -moz-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} +.progress-danger .bar { + background-color: #dd514c; + background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); + background-image: linear-gradient(top, #ee5f5b, #c43c35); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0); +} +.progress-danger.progress-striped .bar { + background-color: #ee5f5b; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.progress-success .bar { + background-color: #5eb95e; + background-image: -moz-linear-gradient(top, #62c462, #57a957); + background-image: -ms-linear-gradient(top, #62c462, #57a957); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957)); + background-image: -webkit-linear-gradient(top, #62c462, #57a957); + background-image: -o-linear-gradient(top, #62c462, #57a957); + background-image: linear-gradient(top, #62c462, #57a957); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0); +} +.progress-success.progress-striped .bar { + background-color: #62c462; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.progress-info .bar { + background-color: #4bb1cf; + background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); + background-image: -ms-linear-gradient(top, #5bc0de, #339bb9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9)); + background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); + background-image: -o-linear-gradient(top, #5bc0de, #339bb9); + background-image: linear-gradient(top, #5bc0de, #339bb9); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0); +} +.progress-info.progress-striped .bar { + background-color: #5bc0de; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.accordion { + margin-bottom: 18px; +} +.accordion-group { + margin-bottom: 2px; + border: 1px solid #e5e5e5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.accordion-heading { + border-bottom: 0; +} +.accordion-heading .accordion-toggle { + display: block; + padding: 8px 15px; +} +.accordion-inner { + padding: 9px 15px; + border-top: 1px solid #e5e5e5; +} +.carousel { + position: relative; + margin-bottom: 18px; + line-height: 1; +} +.carousel-inner { + overflow: hidden; + width: 100%; + position: relative; +} +.carousel .item { + display: none; + position: relative; + -webkit-transition: 0.6s ease-in-out left; + -moz-transition: 0.6s ease-in-out left; + -ms-transition: 0.6s ease-in-out left; + -o-transition: 0.6s ease-in-out left; + transition: 0.6s ease-in-out left; +} +.carousel .item > img { + display: block; + line-height: 1; +} +.carousel .active, .carousel .next, .carousel .prev { + display: block; +} +.carousel .active { + left: 0; +} +.carousel .next, .carousel .prev { + position: absolute; + top: 0; + width: 100%; +} +.carousel .next { + left: 100%; +} +.carousel .prev { + left: -100%; +} +.carousel .next.left, .carousel .prev.right { + left: 0; +} +.carousel .active.left { + left: -100%; +} +.carousel .active.right { + left: 100%; +} +.carousel-control { + position: absolute; + top: 40%; + left: 15px; + width: 40px; + height: 40px; + margin-top: -20px; + font-size: 60px; + font-weight: 100; + line-height: 30px; + color: #ffffff; + text-align: center; + background: #222222; + border: 3px solid #ffffff; + -webkit-border-radius: 23px; + -moz-border-radius: 23px; + border-radius: 23px; + opacity: 0.5; + filter: alpha(opacity=50); +} +.carousel-control.right { + left: auto; + right: 15px; +} +.carousel-control:hover { + color: #ffffff; + text-decoration: none; + opacity: 0.9; + filter: alpha(opacity=90); +} +.carousel-caption { + position: absolute; + left: 0; + right: 0; + bottom: 0; + padding: 10px 15px 5px; + background: #333333; + background: rgba(0, 0, 0, 0.75); +} +.carousel-caption h4, .carousel-caption p { + color: #ffffff; +} +.hero-unit { + padding: 60px; + margin-bottom: 30px; + background-color: #f5f5f5; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} +.hero-unit h1 { + margin-bottom: 0; + font-size: 60px; + line-height: 1; + letter-spacing: -1px; +} +.hero-unit p { + font-size: 18px; + font-weight: 200; + line-height: 27px; +} +.pull-right { + float: right; +} +.pull-left { + float: left; +} +.hide { + display: none; +} +.show { + display: block; +} +.invisible { + visibility: hidden; +} diff --git a/docs/api/phpdoc/css/bootstrap.min.css b/docs/api/phpdoc/css/bootstrap.min.css new file mode 100644 index 0000000..d522124 --- /dev/null +++ b/docs/api/phpdoc/css/bootstrap.min.css @@ -0,0 +1,611 @@ +article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block;} +audio,canvas,video{display:inline-block;*display:inline;*zoom:1;} +audio:not([controls]){display:none;} +html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;} +a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;} +a:hover,a:active{outline:0;} +sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline;} +sup{top:-0.5em;} +sub{bottom:-0.25em;} +img{max-width:100%;height:auto;border:0;-ms-interpolation-mode:bicubic;} +button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle;} +button,input{*overflow:visible;line-height:normal;} +button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0;} +button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button;} +input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;} +input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none;} +textarea{overflow:auto;vertical-align:top;} +body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:18px;color:#333333;background-color:#ffffff;} +a{color:#0088cc;text-decoration:none;} +a:hover{color:#005580;text-decoration:underline;} +.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";} +.row:after{clear:both;} +[class*="span"]{float:left;margin-left:20px;} +.span1{width:60px;} +.span2{width:140px;} +.span3{width:220px;} +.span4{width:300px;} +.span5{width:380px;} +.span6{width:460px;} +.span7{width:540px;} +.span8{width:620px;} +.span9{width:700px;} +.span10{width:780px;} +.span11{width:860px;} +.span12,.container{width:940px;} +.offset1{margin-left:100px;} +.offset2{margin-left:180px;} +.offset3{margin-left:260px;} +.offset4{margin-left:340px;} +.offset5{margin-left:420px;} +.offset6{margin-left:500px;} +.offset7{margin-left:580px;} +.offset8{margin-left:660px;} +.offset9{margin-left:740px;} +.offset10{margin-left:820px;} +.offset11{margin-left:900px;} +.row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";} +.row-fluid:after{clear:both;} +.row-fluid>[class*="span"]{float:left;margin-left:2.127659574%;} +.row-fluid>[class*="span"]:first-child{margin-left:0;} +.row-fluid .span1{width:6.382978723%;} +.row-fluid .span2{width:14.89361702%;} +.row-fluid .span3{width:23.404255317%;} +.row-fluid .span4{width:31.914893614%;} +.row-fluid .span5{width:40.425531911%;} +.row-fluid .span6{width:48.93617020799999%;} +.row-fluid .span7{width:57.446808505%;} +.row-fluid .span8{width:65.95744680199999%;} +.row-fluid .span9{width:74.468085099%;} +.row-fluid .span10{width:82.97872339599999%;} +.row-fluid .span11{width:91.489361693%;} +.row-fluid .span12{width:99.99999998999999%;} +.container{width:940px;margin-left:auto;margin-right:auto;*zoom:1;}.container:before,.container:after{display:table;content:"";} +.container:after{clear:both;} +.container-fluid{padding-left:20px;padding-right:20px;*zoom:1;}.container-fluid:before,.container-fluid:after{display:table;content:"";} +.container-fluid:after{clear:both;} +p{margin:0 0 9px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:18px;}p small{font-size:11px;color:#999999;} +.lead{margin-bottom:18px;font-size:20px;font-weight:200;line-height:27px;} +h1,h2,h3,h4,h5,h6{margin:0;font-weight:bold;color:#333333;text-rendering:optimizelegibility;}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;color:#999999;} +h1{font-size:30px;line-height:36px;}h1 small{font-size:18px;} +h2{font-size:24px;line-height:36px;}h2 small{font-size:18px;} +h3{line-height:27px;font-size:18px;}h3 small{font-size:14px;} +h4,h5,h6{line-height:18px;} +h4{font-size:14px;}h4 small{font-size:12px;} +h5{font-size:12px;} +h6{font-size:11px;color:#999999;text-transform:uppercase;} +.page-header{padding-bottom:17px;margin:18px 0;border-bottom:1px solid #eeeeee;} +.page-header h1{line-height:1;} +ul,ol{padding:0;margin:0 0 9px 25px;} +ul ul,ul ol,ol ol,ol ul{margin-bottom:0;} +ul{list-style:disc;} +ol{list-style:decimal;} +li{line-height:18px;} +ul.unstyled{margin-left:0;list-style:none;} +dl{margin-bottom:18px;} +dt,dd{line-height:18px;} +dt{font-weight:bold;} +dd{margin-left:9px;} +hr{margin:18px 0;border:0;border-top:1px solid #e5e5e5;border-bottom:1px solid #ffffff;} +strong{font-weight:bold;} +em{font-style:italic;} +.muted{color:#999999;} +abbr{font-size:90%;text-transform:uppercase;border-bottom:1px dotted #ddd;cursor:help;} +blockquote{padding:0 0 0 15px;margin:0 0 18px;border-left:5px solid #eeeeee;}blockquote p{margin-bottom:0;font-size:16px;font-weight:300;line-height:22.5px;} +blockquote small{display:block;line-height:18px;color:#999999;}blockquote small:before{content:'\2014 \00A0';} +blockquote.pull-right{float:right;padding-left:0;padding-right:15px;border-left:0;border-right:5px solid #eeeeee;}blockquote.pull-right p,blockquote.pull-right small{text-align:right;} +q:before,q:after,blockquote:before,blockquote:after{content:"";} +address{display:block;margin-bottom:18px;line-height:18px;font-style:normal;} +small{font-size:100%;} +cite{font-style:normal;} +code,pre{padding:0 3px 2px;font-family:Menlo,Monaco,"Courier New",monospace;font-size:12px;color:#333333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} +code{padding:3px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8;} +pre{display:block;padding:8.5px;margin:0 0 9px;font-size:12px;line-height:18px;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;white-space:pre;white-space:pre-wrap;word-break:break-all;}pre.prettyprint{margin-bottom:18px;} +pre code{padding:0;background-color:transparent;} +form{margin:0 0 18px;} +fieldset{padding:0;margin:0;border:0;} +legend{display:block;width:100%;padding:0;margin-bottom:27px;font-size:19.5px;line-height:36px;color:#333333;border:0;border-bottom:1px solid #eee;} +label,input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:18px;} +label{display:block;margin-bottom:5px;color:#333333;} +input,textarea,select,.uneditable-input{display:inline-block;width:210px;height:18px;padding:4px;margin-bottom:9px;font-size:13px;line-height:18px;color:#555555;border:1px solid #ccc;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} +.uneditable-textarea{width:auto;height:auto;} +label input,label textarea,label select{display:block;} +input[type="image"],input[type="checkbox"],input[type="radio"]{width:auto;height:auto;padding:0;margin:3px 0;*margin-top:0;line-height:normal;border:0;cursor:pointer;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} +input[type="file"]{padding:initial;line-height:initial;border:initial;background-color:#ffffff;background-color:initial;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} +input[type="button"],input[type="reset"],input[type="submit"]{width:auto;height:auto;} +select,input[type="file"]{height:28px;*margin-top:4px;line-height:28px;} +select{width:220px;background-color:#ffffff;} +select[multiple],select[size]{height:auto;} +input[type="image"]{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} +textarea{height:auto;} +input[type="hidden"]{display:none;} +.radio,.checkbox{padding-left:18px;} +.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-18px;} +.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px;} +.radio.inline,.checkbox.inline{display:inline-block;margin-bottom:0;vertical-align:middle;} +.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px;} +.controls>.radio.inline:first-child,.controls>.checkbox.inline:first-child{padding-top:0;} +input,textarea{-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-webkit-transition:border linear 0.2s,box-shadow linear 0.2s;-moz-transition:border linear 0.2s,box-shadow linear 0.2s;-ms-transition:border linear 0.2s,box-shadow linear 0.2s;-o-transition:border linear 0.2s,box-shadow linear 0.2s;transition:border linear 0.2s,box-shadow linear 0.2s;} +input:focus,textarea:focus{border-color:rgba(82, 168, 236, 0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 8px rgba(82, 168, 236, 0.6);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 8px rgba(82, 168, 236, 0.6);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 8px rgba(82, 168, 236, 0.6);outline:0;outline:thin dotted \9;} +input[type="file"]:focus,input[type="checkbox"]:focus,select:focus{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;} +.input-mini{width:60px;} +.input-small{width:90px;} +.input-medium{width:150px;} +.input-large{width:210px;} +.input-xlarge{width:270px;} +.input-xxlarge{width:530px;} +input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{float:none;margin-left:0;} +input.span1,textarea.span1,.uneditable-input.span1{width:50px;} +input.span2,textarea.span2,.uneditable-input.span2{width:130px;} +input.span3,textarea.span3,.uneditable-input.span3{width:210px;} +input.span4,textarea.span4,.uneditable-input.span4{width:290px;} +input.span5,textarea.span5,.uneditable-input.span5{width:370px;} +input.span6,textarea.span6,.uneditable-input.span6{width:450px;} +input.span7,textarea.span7,.uneditable-input.span7{width:530px;} +input.span8,textarea.span8,.uneditable-input.span8{width:610px;} +input.span9,textarea.span9,.uneditable-input.span9{width:690px;} +input.span10,textarea.span10,.uneditable-input.span10{width:770px;} +input.span11,textarea.span11,.uneditable-input.span11{width:850px;} +input.span12,textarea.span12,.uneditable-input.span12{width:930px;} +input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{background-color:#f5f5f5;border-color:#ddd;cursor:not-allowed;} +.control-group.warning>label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853;} +.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853;border-color:#c09853;}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:0 0 6px #dbc59e;-moz-box-shadow:0 0 6px #dbc59e;box-shadow:0 0 6px #dbc59e;} +.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853;} +.control-group.error>label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48;} +.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48;border-color:#b94a48;}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:0 0 6px #d59392;-moz-box-shadow:0 0 6px #d59392;box-shadow:0 0 6px #d59392;} +.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48;} +.control-group.success>label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847;} +.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847;border-color:#468847;}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:0 0 6px #7aba7b;-moz-box-shadow:0 0 6px #7aba7b;box-shadow:0 0 6px #7aba7b;} +.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847;} +input:focus:required:invalid,textarea:focus:required:invalid,select:focus:required:invalid{color:#b94a48;border-color:#ee5f5b;}input:focus:required:invalid:focus,textarea:focus:required:invalid:focus,select:focus:required:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7;} +.form-actions{padding:17px 20px 18px;margin-top:18px;margin-bottom:18px;background-color:#f5f5f5;border-top:1px solid #ddd;} +.uneditable-input{display:block;background-color:#ffffff;border-color:#eee;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);cursor:not-allowed;} +:-moz-placeholder{color:#999999;} +::-webkit-input-placeholder{color:#999999;} +.help-block{margin-top:5px;margin-bottom:0;color:#999999;} +.help-inline{display:inline-block;*display:inline;*zoom:1;margin-bottom:9px;vertical-align:middle;padding-left:5px;} +.input-prepend,.input-append{margin-bottom:5px;*zoom:1;}.input-prepend:before,.input-append:before,.input-prepend:after,.input-append:after{display:table;content:"";} +.input-prepend:after,.input-append:after{clear:both;} +.input-prepend input,.input-append input,.input-prepend .uneditable-input,.input-append .uneditable-input{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;}.input-prepend input:focus,.input-append input:focus,.input-prepend .uneditable-input:focus,.input-append .uneditable-input:focus{position:relative;z-index:2;} +.input-prepend .uneditable-input,.input-append .uneditable-input{border-left-color:#ccc;} +.input-prepend .add-on,.input-append .add-on{float:left;display:block;width:auto;min-width:16px;height:18px;margin-right:-1px;padding:4px 5px;font-weight:normal;line-height:18px;color:#999999;text-align:center;text-shadow:0 1px 0 #ffffff;background-color:#f5f5f5;border:1px solid #ccc;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;} +.input-prepend .active,.input-append .active{background-color:#a9dba9;border-color:#46a546;} +.input-prepend .add-on{*margin-top:1px;} +.input-append input,.input-append .uneditable-input{float:left;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;} +.input-append .uneditable-input{border-right-color:#ccc;} +.input-append .add-on{margin-right:0;margin-left:-1px;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;} +.input-append input:first-child{*margin-left:-160px;}.input-append input:first-child+.add-on{*margin-left:-21px;} +.search-query{padding-left:14px;padding-right:14px;margin-bottom:0;-webkit-border-radius:14px;-moz-border-radius:14px;border-radius:14px;} +.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input{display:inline-block;margin-bottom:0;} +.form-search label,.form-inline label,.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{display:inline-block;} +.form-search .input-append .add-on,.form-inline .input-prepend .add-on,.form-search .input-append .add-on,.form-inline .input-prepend .add-on{vertical-align:middle;} +.control-group{margin-bottom:9px;} +.form-horizontal legend+.control-group{margin-top:18px;-webkit-margin-top-collapse:separate;} +.form-horizontal .control-group{margin-bottom:18px;*zoom:1;}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;content:"";} +.form-horizontal .control-group:after{clear:both;} +.form-horizontal .control-group>label{float:left;width:140px;padding-top:5px;text-align:right;} +.form-horizontal .controls{margin-left:160px;} +.form-horizontal .form-actions{padding-left:160px;} +table{max-width:100%;border-collapse:collapse;border-spacing:0;} +.table{width:100%;margin-bottom:18px;}.table th,.table td{padding:8px;line-height:18px;text-align:left;border-top:1px solid #ddd;} +.table th{font-weight:bold;vertical-align:bottom;} +.table td{vertical-align:top;} +.table thead:first-child tr th,.table thead:first-child tr td{border-top:0;} +.table tbody+tbody{border-top:2px solid #ddd;} +.table-condensed th,.table-condensed td{padding:4px 5px;} +.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapsed;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.table-bordered th+th,.table-bordered td+td,.table-bordered th+td,.table-bordered td+th{border-left:1px solid #ddd;} +.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0;} +.table-bordered thead:first-child tr:first-child th:first-child,.table-bordered tbody:first-child tr:first-child td:first-child{-webkit-border-radius:4px 0 0 0;-moz-border-radius:4px 0 0 0;border-radius:4px 0 0 0;} +.table-bordered thead:first-child tr:first-child th:last-child,.table-bordered tbody:first-child tr:first-child td:last-child{-webkit-border-radius:0 4px 0 0;-moz-border-radius:0 4px 0 0;border-radius:0 4px 0 0;} +.table-bordered thead:last-child tr:last-child th:first-child,.table-bordered tbody:last-child tr:last-child td:first-child{-webkit-border-radius:0 0 0 4px;-moz-border-radius:0 0 0 4px;border-radius:0 0 0 4px;} +.table-bordered thead:last-child tr:last-child th:last-child,.table-bordered tbody:last-child tr:last-child td:last-child{-webkit-border-radius:0 0 4px 0;-moz-border-radius:0 0 4px 0;border-radius:0 0 4px 0;} +.table-striped tbody tr:nth-child(odd) td,.table-striped tbody tr:nth-child(odd) th{background-color:#f9f9f9;} +table .span1{float:none;width:44px;margin-left:0;} +table .span2{float:none;width:124px;margin-left:0;} +table .span3{float:none;width:204px;margin-left:0;} +table .span4{float:none;width:284px;margin-left:0;} +table .span5{float:none;width:364px;margin-left:0;} +table .span6{float:none;width:444px;margin-left:0;} +table .span7{float:none;width:524px;margin-left:0;} +table .span8{float:none;width:604px;margin-left:0;} +table .span9{float:none;width:684px;margin-left:0;} +table .span10{float:none;width:764px;margin-left:0;} +table .span11{float:none;width:844px;margin-left:0;} +table .span12{float:none;width:924px;margin-left:0;} +[class^="icon-"]{display:inline-block;width:14px;height:14px;vertical-align:text-top;background-image:url(../img/glyphicons-halflings.png);background-position:14px 14px;background-repeat:no-repeat;*margin-right:.3em;}[class^="icon-"]:last-child{*margin-left:0;} +.icon-white{background-image:url(../img/glyphicons-halflings-white.png);} +.icon-glass{background-position:0 0;} +.icon-music{background-position:-24px 0;} +.icon-search{background-position:-48px 0;} +.icon-envelope{background-position:-72px 0;} +.icon-heart{background-position:-96px 0;} +.icon-star{background-position:-120px 0;} +.icon-star-empty{background-position:-144px 0;} +.icon-user{background-position:-168px 0;} +.icon-film{background-position:-192px 0;} +.icon-th-large{background-position:-216px 0;} +.icon-th{background-position:-240px 0;} +.icon-th-list{background-position:-264px 0;} +.icon-ok{background-position:-288px 0;} +.icon-remove{background-position:-312px 0;} +.icon-zoom-in{background-position:-336px 0;} +.icon-zoom-out{background-position:-360px 0;} +.icon-off{background-position:-384px 0;} +.icon-signal{background-position:-408px 0;} +.icon-cog{background-position:-432px 0;} +.icon-trash{background-position:-456px 0;} +.icon-home{background-position:0 -24px;} +.icon-file{background-position:-24px -24px;} +.icon-time{background-position:-48px -24px;} +.icon-road{background-position:-72px -24px;} +.icon-download-alt{background-position:-96px -24px;} +.icon-download{background-position:-120px -24px;} +.icon-upload{background-position:-144px -24px;} +.icon-inbox{background-position:-168px -24px;} +.icon-play-circle{background-position:-192px -24px;} +.icon-repeat{background-position:-216px -24px;} +.icon-refresh{background-position:-240px -24px;} +.icon-list-alt{background-position:-264px -24px;} +.icon-lock{background-position:-287px -24px;} +.icon-flag{background-position:-312px -24px;} +.icon-headphones{background-position:-336px -24px;} +.icon-volume-off{background-position:-360px -24px;} +.icon-volume-down{background-position:-384px -24px;} +.icon-volume-up{background-position:-408px -24px;} +.icon-qrcode{background-position:-432px -24px;} +.icon-barcode{background-position:-456px -24px;} +.icon-tag{background-position:0 -48px;} +.icon-tags{background-position:-25px -48px;} +.icon-book{background-position:-48px -48px;} +.icon-bookmark{background-position:-72px -48px;} +.icon-print{background-position:-96px -48px;} +.icon-camera{background-position:-120px -48px;} +.icon-font{background-position:-144px -48px;} +.icon-bold{background-position:-167px -48px;} +.icon-italic{background-position:-192px -48px;} +.icon-text-height{background-position:-216px -48px;} +.icon-text-width{background-position:-240px -48px;} +.icon-align-left{background-position:-264px -48px;} +.icon-align-center{background-position:-288px -48px;} +.icon-align-right{background-position:-312px -48px;} +.icon-align-justify{background-position:-336px -48px;} +.icon-list{background-position:-360px -48px;} +.icon-indent-left{background-position:-384px -48px;} +.icon-indent-right{background-position:-408px -48px;} +.icon-facetime-video{background-position:-432px -48px;} +.icon-picture{background-position:-456px -48px;} +.icon-pencil{background-position:0 -72px;} +.icon-map-marker{background-position:-24px -72px;} +.icon-adjust{background-position:-48px -72px;} +.icon-tint{background-position:-72px -72px;} +.icon-edit{background-position:-96px -72px;} +.icon-share{background-position:-120px -72px;} +.icon-check{background-position:-144px -72px;} +.icon-move{background-position:-168px -72px;} +.icon-step-backward{background-position:-192px -72px;} +.icon-fast-backward{background-position:-216px -72px;} +.icon-backward{background-position:-240px -72px;} +.icon-play{background-position:-264px -72px;} +.icon-pause{background-position:-288px -72px;} +.icon-stop{background-position:-312px -72px;} +.icon-forward{background-position:-336px -72px;} +.icon-fast-forward{background-position:-360px -72px;} +.icon-step-forward{background-position:-384px -72px;} +.icon-eject{background-position:-408px -72px;} +.icon-chevron-left{background-position:-432px -72px;} +.icon-chevron-right{background-position:-456px -72px;} +.icon-plus-sign{background-position:0 -96px;} +.icon-minus-sign{background-position:-24px -96px;} +.icon-remove-sign{background-position:-48px -96px;} +.icon-ok-sign{background-position:-72px -96px;} +.icon-question-sign{background-position:-96px -96px;} +.icon-info-sign{background-position:-120px -96px;} +.icon-screenshot{background-position:-144px -96px;} +.icon-remove-circle{background-position:-168px -96px;} +.icon-ok-circle{background-position:-192px -96px;} +.icon-ban-circle{background-position:-216px -96px;} +.icon-arrow-left{background-position:-240px -96px;} +.icon-arrow-right{background-position:-264px -96px;} +.icon-arrow-up{background-position:-289px -96px;} +.icon-arrow-down{background-position:-312px -96px;} +.icon-share-alt{background-position:-336px -96px;} +.icon-resize-full{background-position:-360px -96px;} +.icon-resize-small{background-position:-384px -96px;} +.icon-plus{background-position:-408px -96px;} +.icon-minus{background-position:-433px -96px;} +.icon-asterisk{background-position:-456px -96px;} +.icon-exclamation-sign{background-position:0 -120px;} +.icon-gift{background-position:-24px -120px;} +.icon-leaf{background-position:-48px -120px;} +.icon-fire{background-position:-72px -120px;} +.icon-eye-open{background-position:-96px -120px;} +.icon-eye-close{background-position:-120px -120px;} +.icon-warning-sign{background-position:-144px -120px;} +.icon-plane{background-position:-168px -120px;} +.icon-calendar{background-position:-192px -120px;} +.icon-random{background-position:-216px -120px;} +.icon-comment{background-position:-240px -120px;} +.icon-magnet{background-position:-264px -120px;} +.icon-chevron-up{background-position:-288px -120px;} +.icon-chevron-down{background-position:-313px -119px;} +.icon-retweet{background-position:-336px -120px;} +.icon-shopping-cart{background-position:-360px -120px;} +.icon-folder-close{background-position:-384px -120px;} +.icon-folder-open{background-position:-408px -120px;} +.icon-resize-vertical{background-position:-432px -119px;} +.icon-resize-horizontal{background-position:-456px -118px;} +.dropdown{position:relative;} +.dropdown-toggle{*margin-bottom:-3px;} +.dropdown-toggle:active,.open .dropdown-toggle{outline:0;} +.caret{display:inline-block;width:0;height:0;text-indent:-99999px;*text-indent:0;vertical-align:top;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000000;opacity:0.3;filter:alpha(opacity=30);content:"\2193";} +.dropdown .caret{margin-top:8px;margin-left:2px;} +.dropdown:hover .caret,.open.dropdown .caret{opacity:1;filter:alpha(opacity=100);} +.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;float:left;display:none;min-width:160px;max-width:220px;_width:160px;padding:4px 0;margin:0;list-style:none;background-color:#ffffff;border-color:#ccc;border-color:rgba(0, 0, 0, 0.2);border-style:solid;border-width:1px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;*border-right-width:2px;*border-bottom-width:2px;}.dropdown-menu.bottom-up{top:auto;bottom:100%;margin-bottom:2px;} +.dropdown-menu .divider{height:1px;margin:5px 1px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #ffffff;*width:100%;*margin:-5px 0 5px;} +.dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:normal;line-height:18px;color:#555555;white-space:nowrap;} +.dropdown-menu li>a:hover,.dropdown-menu .active>a,.dropdown-menu .active>a:hover{color:#ffffff;text-decoration:none;background-color:#0088cc;} +.dropdown.open{*z-index:1000;}.dropdown.open .dropdown-toggle{color:#ffffff;background:#ccc;background:rgba(0, 0, 0, 0.3);} +.dropdown.open .dropdown-menu{display:block;} +.typeahead{margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #eee;border:1px solid rgba(0, 0, 0, 0.05);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);}.well blockquote{border-color:#ddd;border-color:rgba(0, 0, 0, 0.15);} +.fade{-webkit-transition:opacity 0.15s linear;-moz-transition:opacity 0.15s linear;-ms-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear;opacity:0;}.fade.in{opacity:1;} +.collapse{-webkit-transition:height 0.35s ease;-moz-transition:height 0.35s ease;-ms-transition:height 0.35s ease;-o-transition:height 0.35s ease;transition:height 0.35s ease;position:relative;overflow:hidden;height:0;}.collapse.in{height:auto;} +.close{float:right;font-size:20px;font-weight:bold;line-height:18px;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20);}.close:hover{color:#000000;text-decoration:none;opacity:0.4;filter:alpha(opacity=40);cursor:pointer;} +.btn{display:inline-block;padding:4px 10px 4px;font-size:13px;line-height:18px;color:#333333;text-align:center;text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);background-color:#fafafa;background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), color-stop(25%, #ffffff), to(#e6e6e6));background-image:-webkit-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);background-image:-moz-linear-gradient(top, #ffffff, #ffffff 25%, #e6e6e6);background-image:-ms-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);background-image:-o-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);background-image:linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);border:1px solid #ccc;border-bottom-color:#bbb;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);cursor:pointer;*margin-left:.3em;}.btn:first-child{*margin-left:0;} +.btn:hover{color:#333333;text-decoration:none;background-color:#e6e6e6;background-position:0 -15px;-webkit-transition:background-position 0.1s linear;-moz-transition:background-position 0.1s linear;-ms-transition:background-position 0.1s linear;-o-transition:background-position 0.1s linear;transition:background-position 0.1s linear;} +.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;} +.btn.active,.btn:active{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);background-color:#e6e6e6;background-color:#d9d9d9 \9;color:rgba(0, 0, 0, 0.5);outline:0;} +.btn.disabled,.btn[disabled]{cursor:default;background-image:none;background-color:#e6e6e6;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} +.btn-large{padding:9px 14px;font-size:15px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;} +.btn-large .icon{margin-top:1px;} +.btn-small{padding:5px 9px;font-size:11px;line-height:16px;} +.btn-small .icon{margin-top:-1px;} +.btn-primary,.btn-primary:hover,.btn-warning,.btn-warning:hover,.btn-danger,.btn-danger:hover,.btn-success,.btn-success:hover,.btn-info,.btn-info:hover{text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);color:#ffffff;} +.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active{color:rgba(255, 255, 255, 0.75);} +.btn-primary{background-color:#006dcc;background-image:-moz-linear-gradient(top, #0088cc, #0044cc);background-image:-ms-linear-gradient(top, #0088cc, #0044cc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));background-image:-webkit-linear-gradient(top, #0088cc, #0044cc);background-image:-o-linear-gradient(top, #0088cc, #0044cc);background-image:linear-gradient(top, #0088cc, #0044cc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0);border-color:#0044cc #0044cc #002a80;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-primary:hover,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{background-color:#0044cc;} +.btn-primary:active,.btn-primary.active{background-color:#003399 \9;} +.btn-warning{background-color:#faa732;background-image:-moz-linear-gradient(top, #fbb450, #f89406);background-image:-ms-linear-gradient(top, #fbb450, #f89406);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));background-image:-webkit-linear-gradient(top, #fbb450, #f89406);background-image:-o-linear-gradient(top, #fbb450, #f89406);background-image:linear-gradient(top, #fbb450, #f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);border-color:#f89406 #f89406 #ad6704;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-warning:hover,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{background-color:#f89406;} +.btn-warning:active,.btn-warning.active{background-color:#c67605 \9;} +.btn-danger{background-color:#da4f49;background-image:-moz-linear-gradient(top, #ee5f5b, #bd362f);background-image:-ms-linear-gradient(top, #ee5f5b, #bd362f);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));background-image:-webkit-linear-gradient(top, #ee5f5b, #bd362f);background-image:-o-linear-gradient(top, #ee5f5b, #bd362f);background-image:linear-gradient(top, #ee5f5b, #bd362f);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0);border-color:#bd362f #bd362f #802420;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-danger:hover,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{background-color:#bd362f;} +.btn-danger:active,.btn-danger.active{background-color:#942a25 \9;} +.btn-success{background-color:#5bb75b;background-image:-moz-linear-gradient(top, #62c462, #51a351);background-image:-ms-linear-gradient(top, #62c462, #51a351);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));background-image:-webkit-linear-gradient(top, #62c462, #51a351);background-image:-o-linear-gradient(top, #62c462, #51a351);background-image:linear-gradient(top, #62c462, #51a351);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0);border-color:#51a351 #51a351 #387038;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-success:hover,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{background-color:#51a351;} +.btn-success:active,.btn-success.active{background-color:#408140 \9;} +.btn-info{background-color:#49afcd;background-image:-moz-linear-gradient(top, #5bc0de, #2f96b4);background-image:-ms-linear-gradient(top, #5bc0de, #2f96b4);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));background-image:-webkit-linear-gradient(top, #5bc0de, #2f96b4);background-image:-o-linear-gradient(top, #5bc0de, #2f96b4);background-image:linear-gradient(top, #5bc0de, #2f96b4);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0);border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-info:hover,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{background-color:#2f96b4;} +.btn-info:active,.btn-info.active{background-color:#24748c \9;} +button.btn,input[type="submit"].btn{*padding-top:2px;*padding-bottom:2px;}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0;} +button.btn.large,input[type="submit"].btn.large{*padding-top:7px;*padding-bottom:7px;} +button.btn.small,input[type="submit"].btn.small{*padding-top:3px;*padding-bottom:3px;} +.btn-group{position:relative;*zoom:1;*margin-left:.3em;}.btn-group:before,.btn-group:after{display:table;content:"";} +.btn-group:after{clear:both;} +.btn-group:first-child{*margin-left:0;} +.btn-group+.btn-group{margin-left:5px;} +.btn-toolbar{margin-top:9px;margin-bottom:9px;}.btn-toolbar .btn-group{display:inline-block;*display:inline;*zoom:1;} +.btn-group .btn{position:relative;float:left;margin-left:-1px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} +.btn-group .btn:first-child{margin-left:0;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;} +.btn-group .btn:last-child,.btn-group .dropdown-toggle{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;} +.btn-group .btn.large:first-child{margin-left:0;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px;} +.btn-group .btn.large:last-child,.btn-group .large.dropdown-toggle{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;} +.btn-group .btn:hover,.btn-group .btn:focus,.btn-group .btn:active,.btn-group .btn.active{z-index:2;} +.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0;} +.btn-group .dropdown-toggle{padding-left:8px;padding-right:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255, 255, 255, 0.125),inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 1px 0 0 rgba(255, 255, 255, 0.125),inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 1px 0 0 rgba(255, 255, 255, 0.125),inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);*padding-top:5px;*padding-bottom:5px;} +.btn-group.open{*z-index:1000;}.btn-group.open .dropdown-menu{display:block;margin-top:1px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;} +.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 1px 6px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 6px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 6px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);} +.btn .caret{margin-top:7px;margin-left:0;} +.btn:hover .caret,.open.btn-group .caret{opacity:1;filter:alpha(opacity=100);} +.btn-primary .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret{border-top-color:#ffffff;opacity:0.75;filter:alpha(opacity=75);} +.btn-small .caret{margin-top:4px;} +.alert{padding:8px 35px 8px 14px;margin-bottom:18px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.alert,.alert-heading{color:#c09853;} +.alert .close{position:relative;top:-2px;right:-21px;line-height:18px;} +.alert-success{background-color:#dff0d8;border-color:#d6e9c6;} +.alert-success,.alert-success .alert-heading{color:#468847;} +.alert-danger,.alert-error{background-color:#f2dede;border-color:#eed3d7;} +.alert-danger,.alert-error,.alert-danger .alert-heading,.alert-error .alert-heading{color:#b94a48;} +.alert-info{background-color:#d9edf7;border-color:#bce8f1;} +.alert-info,.alert-info .alert-heading{color:#3a87ad;} +.alert-block{padding-top:14px;padding-bottom:14px;} +.alert-block>p,.alert-block>ul{margin-bottom:0;} +.alert-block p+p{margin-top:5px;} +.nav{margin-left:0;margin-bottom:18px;list-style:none;} +.nav>li>a{display:block;} +.nav>li>a:hover{text-decoration:none;background-color:#eeeeee;} +.nav-list{padding-left:14px;padding-right:14px;margin-bottom:0;} +.nav-list>li>a,.nav-list .nav-header{display:block;padding:3px 15px;margin-left:-15px;margin-right:-15px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);} +.nav-list .nav-header{font-size:11px;font-weight:bold;line-height:18px;color:#999999;text-transform:uppercase;} +.nav-list .nav-header *{text-transform:none;} +.nav-list>li+.nav-header{margin-top:9px;} +.nav-list .active>a,.nav-list .active>a:hover{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.2);background-color:#0088cc;} +.nav-list [class^="icon-"]{margin-right:2px;} +.nav-tabs,.nav-pills{*zoom:1;}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;content:"";} +.nav-tabs:after,.nav-pills:after{clear:both;} +.nav-tabs>li,.nav-pills>li{float:left;} +.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px;} +.nav-tabs{border-bottom:1px solid #ddd;} +.nav-tabs>li{margin-bottom:-1px;} +.nav-tabs>li>a{padding-top:9px;padding-bottom:9px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;}.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #dddddd;} +.nav-tabs>.active>a,.nav-tabs>.active>a:hover{color:#555555;background-color:#ffffff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default;} +.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;} +.nav-pills .active>a,.nav-pills .active>a:hover{color:#ffffff;background-color:#0088cc;} +.nav-stacked>li{float:none;} +.nav-stacked>li>a{margin-right:0;} +.nav-tabs.nav-stacked{border-bottom:0;} +.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} +.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;} +.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;} +.nav-tabs.nav-stacked>li>a:hover{border-color:#ddd;z-index:2;} +.nav-pills.nav-stacked>li>a{margin-bottom:3px;} +.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px;} +.nav-tabs .dropdown-menu,.nav-pills .dropdown-menu{margin-top:1px;border-width:1px;} +.nav-pills .dropdown-menu{-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.nav-tabs .dropdown-toggle .caret,.nav-pills .dropdown-toggle .caret{border-top-color:#0088cc;margin-top:6px;} +.nav-tabs .dropdown-toggle:hover .caret,.nav-pills .dropdown-toggle:hover .caret{border-top-color:#005580;} +.nav-tabs .active .dropdown-toggle .caret,.nav-pills .active .dropdown-toggle .caret{border-top-color:#333333;} +.nav>.dropdown.active>a:hover{color:#000000;cursor:pointer;} +.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>.open.active>a:hover{color:#ffffff;background-color:#999999;border-color:#999999;} +.nav .open .caret,.nav .open.active .caret,.nav .open a:hover .caret{border-top-color:#ffffff;opacity:1;filter:alpha(opacity=100);} +.tabs-stacked .open>a:hover{border-color:#999999;} +.tabbable{*zoom:1;}.tabbable:before,.tabbable:after{display:table;content:"";} +.tabbable:after{clear:both;} +.tabs-below .nav-tabs,.tabs-right .nav-tabs,.tabs-left .nav-tabs{border-bottom:0;} +.tab-content>.tab-pane,.pill-content>.pill-pane{display:none;} +.tab-content>.active,.pill-content>.active{display:block;} +.tabs-below .nav-tabs{border-top:1px solid #ddd;} +.tabs-below .nav-tabs>li{margin-top:-1px;margin-bottom:0;} +.tabs-below .nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;}.tabs-below .nav-tabs>li>a:hover{border-bottom-color:transparent;border-top-color:#ddd;} +.tabs-below .nav-tabs .active>a,.tabs-below .nav-tabs .active>a:hover{border-color:transparent #ddd #ddd #ddd;} +.tabs-left .nav-tabs>li,.tabs-right .nav-tabs>li{float:none;} +.tabs-left .nav-tabs>li>a,.tabs-right .nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px;} +.tabs-left .nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd;} +.tabs-left .nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;} +.tabs-left .nav-tabs>li>a:hover{border-color:#eeeeee #dddddd #eeeeee #eeeeee;} +.tabs-left .nav-tabs .active>a,.tabs-left .nav-tabs .active>a:hover{border-color:#ddd transparent #ddd #ddd;*border-right-color:#ffffff;} +.tabs-right .nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd;} +.tabs-right .nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;} +.tabs-right .nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #eeeeee #dddddd;} +.tabs-right .nav-tabs .active>a,.tabs-right .nav-tabs .active>a:hover{border-color:#ddd #ddd #ddd transparent;*border-left-color:#ffffff;} +.navbar{overflow:visible;margin-bottom:18px;} +.navbar-inner{padding-left:20px;padding-right:20px;background-color:#2c2c2c;background-image:-moz-linear-gradient(top, #333333, #222222);background-image:-ms-linear-gradient(top, #333333, #222222);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222));background-image:-webkit-linear-gradient(top, #333333, #222222);background-image:-o-linear-gradient(top, #333333, #222222);background-image:linear-gradient(top, #333333, #222222);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);-moz-box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);} +.btn-navbar{display:none;float:right;padding:7px 10px;margin-left:5px;margin-right:5px;background-color:#2c2c2c;background-image:-moz-linear-gradient(top, #333333, #222222);background-image:-ms-linear-gradient(top, #333333, #222222);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222));background-image:-webkit-linear-gradient(top, #333333, #222222);background-image:-o-linear-gradient(top, #333333, #222222);background-image:linear-gradient(top, #333333, #222222);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);border-color:#222222 #222222 #000000;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.075);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.075);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.075);}.btn-navbar:hover,.btn-navbar:active,.btn-navbar.active,.btn-navbar.disabled,.btn-navbar[disabled]{background-color:#222222;} +.btn-navbar:active,.btn-navbar.active{background-color:#080808 \9;} +.btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);-moz-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);} +.btn-navbar .icon-bar+.icon-bar{margin-top:3px;} +.nav-collapse.collapse{height:auto;} +.navbar .brand:hover{text-decoration:none;} +.navbar .brand{float:left;display:block;padding:8px 20px 12px;margin-left:-20px;font-size:20px;font-weight:200;line-height:1;color:#ffffff;} +.navbar .navbar-text{margin-bottom:0;line-height:40px;color:#999999;}.navbar .navbar-text a:hover{color:#ffffff;background-color:transparent;} +.navbar .btn,.navbar .btn-group{margin-top:5px;} +.navbar .btn-group .btn{margin-top:0;} +.navbar-form{margin-bottom:0;*zoom:1;}.navbar-form:before,.navbar-form:after{display:table;content:"";} +.navbar-form:after{clear:both;} +.navbar-form input,.navbar-form select{display:inline-block;margin-top:5px;margin-bottom:0;} +.navbar-form .radio,.navbar-form .checkbox{margin-top:5px;} +.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px;} +.navbar-search{position:relative;float:left;margin-top:6px;margin-bottom:0;}.navbar-search .search-query{padding:4px 9px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;color:#ffffff;color:rgba(255, 255, 255, 0.75);background:#666;background:rgba(255, 255, 255, 0.3);border:1px solid #111;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.15);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.15);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.15);-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none;}.navbar-search .search-query :-moz-placeholder{color:#eeeeee;} +.navbar-search .search-query::-webkit-input-placeholder{color:#eeeeee;} +.navbar-search .search-query:hover{color:#ffffff;background-color:#999999;background-color:rgba(255, 255, 255, 0.5);} +.navbar-search .search-query:focus,.navbar-search .search-query.focused{padding:5px 10px;color:#333333;text-shadow:0 1px 0 #ffffff;background-color:#ffffff;border:0;-webkit-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);-moz-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);box-shadow:0 0 3px rgba(0, 0, 0, 0.15);outline:0;} +.navbar-fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030;} +.navbar-fixed-top .navbar-inner{padding-left:0;padding-right:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} +.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0;} +.navbar .nav.pull-right{float:right;} +.navbar .nav>li{display:block;float:left;} +.navbar .nav>li>a{float:none;padding:10px 10px 11px;line-height:19px;color:#999999;text-decoration:none;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);} +.navbar .nav>li>a:hover{background-color:transparent;color:#ffffff;text-decoration:none;} +.navbar .nav .active>a,.navbar .nav .active>a:hover{color:#ffffff;text-decoration:none;background-color:#222222;background-color:rgba(0, 0, 0, 0.5);} +.navbar .divider-vertical{height:40px;width:1px;margin:0 9px;overflow:hidden;background-color:#222222;border-right:1px solid #333333;} +.navbar .nav.pull-right{margin-left:10px;margin-right:0;} +.navbar .dropdown-menu{margin-top:1px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.navbar .dropdown-menu:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0, 0, 0, 0.2);position:absolute;top:-7px;left:9px;} +.navbar .dropdown-menu:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #ffffff;position:absolute;top:-6px;left:10px;} +.navbar .nav .dropdown-toggle .caret,.navbar .nav .open.dropdown .caret{border-top-color:#ffffff;} +.navbar .nav .active .caret{opacity:1;filter:alpha(opacity=100);} +.navbar .nav .open>.dropdown-toggle,.navbar .nav .active>.dropdown-toggle,.navbar .nav .open.active>.dropdown-toggle{background-color:transparent;} +.navbar .nav .active>.dropdown-toggle:hover{color:#ffffff;} +.navbar .nav.pull-right .dropdown-menu{left:auto;right:0;}.navbar .nav.pull-right .dropdown-menu:before{left:auto;right:12px;} +.navbar .nav.pull-right .dropdown-menu:after{left:auto;right:13px;} +.breadcrumb{padding:7px 14px;margin:0 0 18px;background-color:#fbfbfb;background-image:-moz-linear-gradient(top, #ffffff, #f5f5f5);background-image:-ms-linear-gradient(top, #ffffff, #f5f5f5);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f5f5f5));background-image:-webkit-linear-gradient(top, #ffffff, #f5f5f5);background-image:-o-linear-gradient(top, #ffffff, #f5f5f5);background-image:linear-gradient(top, #ffffff, #f5f5f5);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0);border:1px solid #ddd;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px 0 #ffffff;}.breadcrumb li{display:inline;text-shadow:0 1px 0 #ffffff;} +.breadcrumb .divider{padding:0 5px;color:#999999;} +.breadcrumb .active a{color:#333333;} +.pagination{height:36px;margin:18px 0;} +.pagination ul{display:inline-block;*display:inline;*zoom:1;margin-left:0;margin-bottom:0;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);} +.pagination li{display:inline;} +.pagination a{float:left;padding:0 14px;line-height:34px;text-decoration:none;border:1px solid #ddd;border-left-width:0;} +.pagination a:hover,.pagination .active a{background-color:#f5f5f5;} +.pagination .active a{color:#999999;cursor:default;} +.pagination .disabled a,.pagination .disabled a:hover{color:#999999;background-color:transparent;cursor:default;} +.pagination li:first-child a{border-left-width:1px;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;} +.pagination li:last-child a{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;} +.pagination-centered{text-align:center;} +.pagination-right{text-align:right;} +.pager{margin-left:0;margin-bottom:18px;list-style:none;text-align:center;*zoom:1;}.pager:before,.pager:after{display:table;content:"";} +.pager:after{clear:both;} +.pager li{display:inline;} +.pager a{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;} +.pager a:hover{text-decoration:none;background-color:#f5f5f5;} +.pager .next a{float:right;} +.pager .previous a{float:left;} +.modal-open .dropdown-menu{z-index:2050;} +.modal-open .dropdown.open{*z-index:2050;} +.modal-open .popover{z-index:2060;} +.modal-open .tooltip{z-index:2070;} +.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000;}.modal-backdrop.fade{opacity:0;} +.modal-backdrop,.modal-backdrop.fade.in{opacity:0.8;filter:alpha(opacity=80);} +.modal{position:fixed;top:50%;left:50%;z-index:1050;max-height:500px;overflow:auto;width:560px;margin:-250px 0 0 -280px;background-color:#ffffff;border:1px solid #999;border:1px solid rgba(0, 0, 0, 0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;}.modal.fade{-webkit-transition:opacity .3s linear, top .3s ease-out;-moz-transition:opacity .3s linear, top .3s ease-out;-ms-transition:opacity .3s linear, top .3s ease-out;-o-transition:opacity .3s linear, top .3s ease-out;transition:opacity .3s linear, top .3s ease-out;top:-25%;} +.modal.fade.in{top:50%;} +.modal-header{padding:9px 15px;border-bottom:1px solid #eee;}.modal-header .close{margin-top:2px;} +.modal-body{padding:15px;} +.modal-footer{padding:14px 15px 15px;margin-bottom:0;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px 0 #ffffff;*zoom:1;}.modal-footer:before,.modal-footer:after{display:table;content:"";} +.modal-footer:after{clear:both;} +.modal-footer .btn{float:right;margin-left:5px;margin-bottom:0;} +.tooltip{position:absolute;z-index:1020;display:block;visibility:visible;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0);}.tooltip.in{opacity:0.8;filter:alpha(opacity=80);} +.tooltip.top{margin-top:-2px;} +.tooltip.right{margin-left:2px;} +.tooltip.bottom{margin-top:2px;} +.tooltip.left{margin-left:-2px;} +.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #000000;} +.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #000000;} +.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid #000000;} +.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:5px solid #000000;} +.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;text-decoration:none;background-color:#000000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.tooltip-arrow{position:absolute;width:0;height:0;} +.popover{position:absolute;top:0;left:0;z-index:1010;display:none;padding:5px;}.popover.top{margin-top:-5px;} +.popover.right{margin-left:5px;} +.popover.bottom{margin-top:5px;} +.popover.left{margin-left:-5px;} +.popover.top .arrow{bottom:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #000000;} +.popover.right .arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:5px solid #000000;} +.popover.bottom .arrow{top:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid #000000;} +.popover.left .arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #000000;} +.popover .arrow{position:absolute;width:0;height:0;} +.popover-inner{padding:3px;width:280px;overflow:hidden;background:#000000;background:rgba(0, 0, 0, 0.8);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);} +.popover-title{padding:9px 15px;line-height:1;background-color:#f5f5f5;border-bottom:1px solid #eee;-webkit-border-radius:3px 3px 0 0;-moz-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;} +.popover-content{padding:14px;background-color:#ffffff;-webkit-border-radius:0 0 3px 3px;-moz-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;}.popover-content p,.popover-content ul,.popover-content ol{margin-bottom:0;} +.thumbnails{margin-left:-20px;list-style:none;*zoom:1;}.thumbnails:before,.thumbnails:after{display:table;content:"";} +.thumbnails:after{clear:both;} +.thumbnails>li{float:left;margin:0 0 18px 20px;} +.thumbnail{display:block;padding:4px;line-height:1;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:0 1px 1px rgba(0, 0, 0, 0.075);} +a.thumbnail:hover{border-color:#0088cc;-webkit-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);-moz-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);} +.thumbnail>img{display:block;max-width:100%;margin-left:auto;margin-right:auto;} +.thumbnail .caption{padding:9px;} +.label{padding:1px 3px 2px;font-size:9.75px;font-weight:bold;color:#ffffff;text-transform:uppercase;background-color:#999999;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} +.label-important{background-color:#b94a48;} +.label-warning{background-color:#f89406;} +.label-success{background-color:#468847;} +.label-info{background-color:#3a87ad;} +@-webkit-keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}@-moz-keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}@keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}.progress{overflow:hidden;height:18px;margin-bottom:18px;background-color:#f7f7f7;background-image:-moz-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-ms-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));background-image:-webkit-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-o-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:linear-gradient(top, #f5f5f5, #f9f9f9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.progress .bar{width:0%;height:18px;color:#ffffff;font-size:12px;text-align:center;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top, #149bdf, #0480be);background-image:-ms-linear-gradient(top, #149bdf, #0480be);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));background-image:-webkit-linear-gradient(top, #149bdf, #0480be);background-image:-o-linear-gradient(top, #149bdf, #0480be);background-image:linear-gradient(top, #149bdf, #0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width 0.6s ease;-moz-transition:width 0.6s ease;-ms-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease;} +.progress-striped .bar{background-color:#62c462;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px;} +.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite;} +.progress-danger .bar{background-color:#dd514c;background-image:-moz-linear-gradient(top, #ee5f5b, #c43c35);background-image:-ms-linear-gradient(top, #ee5f5b, #c43c35);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));background-image:-webkit-linear-gradient(top, #ee5f5b, #c43c35);background-image:-o-linear-gradient(top, #ee5f5b, #c43c35);background-image:linear-gradient(top, #ee5f5b, #c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);} +.progress-danger.progress-striped .bar{background-color:#ee5f5b;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);} +.progress-success .bar{background-color:#5eb95e;background-image:-moz-linear-gradient(top, #62c462, #57a957);background-image:-ms-linear-gradient(top, #62c462, #57a957);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));background-image:-webkit-linear-gradient(top, #62c462, #57a957);background-image:-o-linear-gradient(top, #62c462, #57a957);background-image:linear-gradient(top, #62c462, #57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);} +.progress-success.progress-striped .bar{background-color:#62c462;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);} +.progress-info .bar{background-color:#4bb1cf;background-image:-moz-linear-gradient(top, #5bc0de, #339bb9);background-image:-ms-linear-gradient(top, #5bc0de, #339bb9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));background-image:-webkit-linear-gradient(top, #5bc0de, #339bb9);background-image:-o-linear-gradient(top, #5bc0de, #339bb9);background-image:linear-gradient(top, #5bc0de, #339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);} +.progress-info.progress-striped .bar{background-color:#5bc0de;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);} +.accordion{margin-bottom:18px;} +.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.accordion-heading{border-bottom:0;} +.accordion-heading .accordion-toggle{display:block;padding:8px 15px;} +.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5;} +.carousel{position:relative;margin-bottom:18px;line-height:1;} +.carousel-inner{overflow:hidden;width:100%;position:relative;} +.carousel .item{display:none;position:relative;-webkit-transition:0.6s ease-in-out left;-moz-transition:0.6s ease-in-out left;-ms-transition:0.6s ease-in-out left;-o-transition:0.6s ease-in-out left;transition:0.6s ease-in-out left;} +.carousel .item>img{display:block;line-height:1;} +.carousel .active,.carousel .next,.carousel .prev{display:block;} +.carousel .active{left:0;} +.carousel .next,.carousel .prev{position:absolute;top:0;width:100%;} +.carousel .next{left:100%;} +.carousel .prev{left:-100%;} +.carousel .next.left,.carousel .prev.right{left:0;} +.carousel .active.left{left:-100%;} +.carousel .active.right{left:100%;} +.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#ffffff;text-align:center;background:#222222;border:3px solid #ffffff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:0.5;filter:alpha(opacity=50);}.carousel-control.right{left:auto;right:15px;} +.carousel-control:hover{color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90);} +.carousel-caption{position:absolute;left:0;right:0;bottom:0;padding:10px 15px 5px;background:#333333;background:rgba(0, 0, 0, 0.75);} +.carousel-caption h4,.carousel-caption p{color:#ffffff;} +.hero-unit{padding:60px;margin-bottom:30px;background-color:#f5f5f5;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;} +.hero-unit p{font-size:18px;font-weight:200;line-height:27px;} +.pull-right{float:right;} +.pull-left{float:left;} +.hide{display:none;} +.show{display:block;} +.invisible{visibility:hidden;} diff --git a/docs/api/phpdoc/css/jquery.iviewer.css b/docs/api/phpdoc/css/jquery.iviewer.css new file mode 100644 index 0000000..d68c642 --- /dev/null +++ b/docs/api/phpdoc/css/jquery.iviewer.css @@ -0,0 +1,91 @@ +.iviewer_common { + position:absolute; + bottom:10px; + border: 1px solid #000; + height: 28px; + z-index: 5000; +} + +.iviewer_cursor { + cursor: url(../img/iviewer/hand.cur) 6 8, pointer; +} + +.iviewer_drag_cursor { + cursor: url(../img/iviewer/grab.cur) 6 8, pointer; +} + +.iviewer_button { + width: 28px; + cursor: pointer; + background-position: center center; + background-repeat: no-repeat; +} + +.iviewer_zoom_in { + left: 20px; + background: url(../img/iviewer/iviewer.zoom_in.png); +} + +.iviewer_zoom_out { + left: 55px; + background: url(../img/iviewer/iviewer.zoom_out.png); +} + +.iviewer_zoom_zero { + left: 90px; + background: url(../img/iviewer/iviewer.zoom_zero.png); +} + +.iviewer_zoom_fit { + left: 125px; + background: url(../img/iviewer/iviewer.zoom_fit.png); +} + +.iviewer_zoom_status { + left: 160px; + font: 1em/28px Sans; + color: #000; + background-color: #fff; + text-align: center; + width: 60px; +} + +.iviewer_rotate_left { + left: 227px; + background: #fff url(../img/iviewer/iviewer.rotate_left.png) center center no-repeat; +} + +.iviewer_rotate_right { + left: 262px; + background: #fff url(../img/iviewer/iviewer.rotate_right.png) center center no-repeat; +} + +.viewer +{ + width: 100%; + height: 500px; + position: relative; + background: transparent url('../img/loader.gif') no-repeat center center; +} + +.viewer img +{ + max-width: none; +} + +.wrapper +{ + overflow: hidden; +} + +.iviewer_common +{ + border: 0; + bottom: auto; + top: 10px; +} + +.iviewer_zoom_status +{ + border: 1px solid black; +} diff --git a/docs/api/phpdoc/css/prettify.css b/docs/api/phpdoc/css/prettify.css new file mode 100644 index 0000000..d44b3a2 --- /dev/null +++ b/docs/api/phpdoc/css/prettify.css @@ -0,0 +1 @@ +.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} \ No newline at end of file diff --git a/docs/api/phpdoc/css/template.css b/docs/api/phpdoc/css/template.css new file mode 100644 index 0000000..be24f08 --- /dev/null +++ b/docs/api/phpdoc/css/template.css @@ -0,0 +1,516 @@ +@import url(bootstrap.min.css); +@import url(bootstrap-responsive.css); +@import url(prettify.css); +@import url(jquery.iviewer.css); +@import url(http://fonts.googleapis.com/css?family=Crimson+Text|Philosopher|Forum); + +body +{ + padding-top: 60px; /* 60px to make the container go all the way to the bottom of the topbar */ + background: #f9f9f9; + color: #444; +} + +a +{ + color: #55A72F; +} + +li.l0, li.l1, li.l2, li.l3, li.l5, li.l6, li.l7, li.l8 +{ + list-style-type: decimal; +} + +a.brand, h2, .hero-unit h1 +{ + font-family: 'Forum', "Helvetica Neue", Helvetica, Arial, sans-serif; +} + +.element .span4 +{ + width: 275px; +} + +.namespace-contents hr, .package-contents hr +{ + border-top: 3px dotted silver; +} + +.namespace-indent, .package-indent +{ + padding-left: 10px; border-left: 1px dashed #f0f0f0; +} + +.element h3 i, .namespace-contents h3 i, .package-contents h3 i +{ + margin-top: 2px; + margin-right: 5px; +} + +.element h3, .namespace-contents h3, .package-contents h3 +{ + margin-top: 25px; + margin-bottom: 20px; + border-bottom: 1px solid silver; +} + +.element h3:first-of-type, .namespace-contents h3:first-of-type, +.package-contents h3:first-of-type +{ + margin-top: 30px; +} + +.element h2 +{ + font-family: inherit; + font-size: 1.2em; + color: black; +} + +.element .type +{ + font-weight: bold; +} + +#search-query +{ + height: auto; +} + +.hero-unit, div.element, .well +{ + border: 1px solid #e0e0e0; + background: white; +} + +.dropdown-menu a{ + overflow: hidden; + text-overflow: ellipsis; +} +h2 +{ + border-bottom: 1px dashed #55A72F; + margin-bottom: 10px; + padding-bottom: 0; + padding-left: 5px; + color: #e9e9e9; + font-weight: normal; + margin-top: 40px; +} + +h2:first-of-type +{ + margin-top: 0; +} + +.hero-unit +{ + background: #75a70d; /* Old browsers */ + background: -moz-radial-gradient(center, ellipse cover, #bfd255 0%, #8eb92a 72%, #72aa00 96%, #9ecb2d 100%); /* FF3.6+ */ + background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%,#bfd255), color-stop(72%,#8eb92a), color-stop(96%,#72aa00), color-stop(100%,#9ecb2d)); /* Chrome,Safari4+ */ + background: -webkit-radial-gradient(center, ellipse cover, #bfd255 0%,#8eb92a 72%,#72aa00 96%,#9ecb2d 100%); /* Chrome10+,Safari5.1+ */ + background: -o-radial-gradient(center, ellipse cover, #bfd255 0%,#8eb92a 72%,#72aa00 96%,#9ecb2d 100%); /* Opera 12+ */ + background: -ms-radial-gradient(center, ellipse cover, #bfd255 0%,#8eb92a 72%,#72aa00 96%,#9ecb2d 100%); /* IE10+ */ + background: radial-gradient(center, ellipse cover, #bfd255 0%,#8eb92a 72%,#72aa00 96%,#9ecb2d 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#bfd255', endColorstr='#9ecb2d',GradientType=1 ); /* IE6-9 fallback on horizontal gradient */ + + padding: 40px 0 15px 0; + box-shadow: inset 0 0 10px gray; +} + +.hero-unit h1 +{ + text-align: center; + font-weight: normal; + text-align: center; + color: white; + text-shadow: black 0px 0px 15px; +} + +.hero-unit h2 +{ + border: none; + color: white; + background: rgba(48, 48, 48, 0.5); + padding: 0; + margin: 0; + margin-top: 15px; + text-align: center; +} + +.namespace-contents h2, .package-contents h2 +{ + padding-left: 44px; + background: transparent url('../img/icons/icon-th-big.png') no-repeat 3px center; +} + +.package-contents h2 +{ + background-image: url('../img/icons/icon-folder-open-big.png'); +} + +.namespace-contents .element h2, .package-contents .element h2 +{ + padding-left: 0; + background: none; +} + +div.element +{ + border-left: 10px solid #55A72F; + border-radius: 5px; + padding: 7px 7px 2px 7px; + margin-bottom: 15px; + margin-left: 0; +} + +div.element.protected +{ + border-left-color: orange; +} + +div.element.private +{ + border-left-color: red; +} + +div.element.class, div.element.interface +{ + border-left-color: #e0e0e0; +} + +div.element.class.abstract h1, div.element.interface.abstract h1 +{ + font-style: italic; +} + +div.element h1 +{ + font-size: 1.2em; + line-height: 1.5em; + margin-bottom: 10px; + padding-left: 22px; + background: transparent no-repeat left 2px; + word-wrap: break-word; +} + +div.element h1 a +{ + color: transparent; + margin-left: 10px; +} + +div.element h1:hover a +{ + color: silver; +} + +div.element h1 a:hover +{ + color: navy; +} + +div.element a.more:hover +{ + background: #f0f0f0; + color: #444; + text-decoration: none; +} + +div.element a.more +{ + font-weight: bold; + text-align: center; + color: gray; + border-top: 1px dashed silver; + display: block; + margin-top: 5px; + padding: 5px 0; + border-bottom-left-radius: 5px; + border-bottom-right-radius: 5px; +} + +div.element p +{ + font-size: 0.9em; +} + +div.element .table +{ + font-size: 0.9em; +} + +div.element .table th +{ + text-transform: capitalize; +} + +div.detail-description +{ + padding-left: 30px; +} + +body.invert +{ + background: white; +} + +body.invert div.element +{ + background: #f9f9f9; +} + +ul.side-nav +{ + clear: both; +} + +ul.side-nav li +{ + word-wrap: break-word; + padding-left: 10px; + text-indent: -10px; +} + +ul.side-nav li a +{ + background: transparent no-repeat 5px 3px; + padding-bottom: 10px; + font-style: italic; +} + +ul.side-nav li pre +{ + font-size: 0.8em; + margin: 5px 15px 0 15px; + padding: 2px 5px; + background-color: #f8f8f8; + color: gray; + font-style: normal; + word-wrap: break-word; + text-indent: 0; +} + +ul.side-nav li.view-simple span.description +{ + display: none; +} + +ul.side-nav li.view-simple pre +{ + font-size: inherit; + margin: inherit; + padding: inherit; + background-color: inherit; + border: none; + color: inherit; + font-family: inherit; + font-style: inherit; + padding-bottom: 0; + padding-left: 5px; +} + +ul.side-nav li.view-simple a +{ + padding-bottom: 0px; +} + +i.icon-custom +{ + width: 16px; + height: 16px; + background-position: 0; +} + +.table.markers +{ + background: white; +} + +/* JS only functionality; disable by default */ +.btn-group.visibility, .btn-group.view, .btn-group.type-filter +{ + display: none; +} + +.btn-group.view +{ + margin-left: 20px; + margin-bottom: 20px; +} + +.visibility button +{ + height: 24px; +} + +div.element.constant h1, +i.icon-constant { background-image: url('../img/icons/constant.png'); } + +div.element.function h1, +i.icon-function { background-image: url('../img/icons/function.png'); } + +div.element.method h1, +i.icon-method { background-image: url('../img/icons/method.png'); } + +div.element.class h1, +i.icon-class { background-image: url('../img/icons/class.png'); } + +div.element.interface h1, +i.icon-interface { background-image: url('../img/icons/interface.png'); } + +div.element.property h1, +i.icon-property { background-image: url('../img/icons/property.png'); } + +i.icon-show-public { background-image: url('../img/icons/visibility_public.png'); } +i.icon-show-protected { background-image: url('../img/icons/visibility_protected.png'); } +i.icon-show-private { background-image: url('../img/icons/visibility_private.png'); } + +span.empty-namespace +{ + color: silver; +} + +footer +{ + text-align: right; + font-size: 0.8em; + opacity: 0.5; +} + +#mapHolder +{ + border: 4px solid #555; + padding: 0 !important; + overflow: hidden +} + +div.element div.subelement +{ + margin-left: 10px; + padding-bottom: 5px; + clear: both; +} + +pre code +{ + border: none; +} + +div.element div.subelement > code +{ + font-size: 0.8em; + float: left; + margin-right: 10px; + padding: 0 5px; + line-height: 16px; +} + +div.element div.subelement > p +{ + margin-left: 20px; + margin-right: 50px; +} + +div.element div.subelement h4 +{ + color: #666; + margin-bottom: 5px; +} + +div.element div.subelement.response +{ + padding-bottom: 15px; + margin-right: 50px; +} + +div.labels +{ + text-align: right; +} + +.nav-list .nav-header +{ + font-size: 13px; +} + +.go_to_top +{ + float: right; + margin-right: 20px; + background: #2C2C2C; + color: #999; + padding: 3px 10px; + border-bottom-right-radius: 5px; + border-bottom-left-radius: 5px; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + line-height: 19px; +} + +.visibility .btn { + text-transform: uppercase; + font-size: 0.7em; + font-weight: bold; +} + +.iviewer_common +{ + z-index: 100; +} + +@media (min-width: 980px) +{ + a[name] + { + margin-top: -50px; + position: absolute; + } +} + +@media (min-width: 1200px) +{ + .method .span4 + { + width: 345px; + } +} + +/* redefined because twitter bootstrap assumes that bootstrap-responsive.css */ +@media (max-width: 980px) +{ + body + { + padding-top: 0; + } + + .go_to_top + { + display: none; + } + + .btn-group.visibility + { + font-size: 0.80em; + margin-bottom: 7px; + display: block; + float: right; + } +} + +@media (max-width: 768px) +{ + .hero-unit h1 { + font-size: 30px; + } + .hero-unit h2 { + font-size: 19px; + } + +} +@media (min-width: 768px) and (max-width: 980px) +{ + .method .span4 + { + width: 203px; + } +} diff --git a/docs/api/phpdoc/deprecated.html b/docs/api/phpdoc/deprecated.html new file mode 100644 index 0000000..31e2596 --- /dev/null +++ b/docs/api/phpdoc/deprecated.html @@ -0,0 +1,76 @@ + + + + + +PhlyRestfully + + + + + + + + + + +
+ +
+
+
+ +
No deprecated elements have been + found in this project. +
+
+
+
+
+
+ + diff --git a/docs/api/phpdoc/errors.html b/docs/api/phpdoc/errors.html new file mode 100644 index 0000000..4f4c290 --- /dev/null +++ b/docs/api/phpdoc/errors.html @@ -0,0 +1,1146 @@ + + + + + +PhlyRestfully + + + + + + + + + + +
+ +
+ +
+ +
+

+ResourceInterface.php3 +

+
+ + + + + + + + + + + + + + + + + + + + + + +
TypeLineDescription
critical2No short description for file ResourceInterface.php
error34No short description for method setEventParam()
error42No short description for method getEventParam()
+
+
+

+ApiProblem.php2 +

+
+ + + + + + + + + + + + + + + + + +
TypeLineDescription
critical2No short description for file ApiProblem.php
error118Argument $additional is missing from the Docblock of __construct()
+
+
+

+MetadataMap.php3 +

+
+ + + + + + + + + + + + + + + + + + + + + + +
TypeLineDescription
critical2No short description for file MetadataMap.php
error11No DocBlock was found for \PhlyRestfully\MetadataMap
critical13No short description for property $map
+
+
+

+Resource.php15 +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeLineDescription
critical2No short description for file Resource.php
critical25No short description for property $events
critical30No short description for property $params
critical35No short description for property $queryParams
critical40No short description for property $routeMatch
error45No short description for method setEventParams()
error55No short description for method getEventParams()
error63No short description for method setQueryParams()
error73No short description for method getQueryParams()
error81No short description for method setRouteMatch()
error91No short description for method getRouteMatch()
error99No short description for method setEventParam()
error111No short description for method getEventParam()
error427Name of argument $name does not match with the DocBlock's name $args in prepareEvent()
error427Argument $args is missing from the Docblock of prepareEvent()
+
+
+

+Exception/UpdateException.php1 +

+
+ + + + + + + + + + +
TypeLineDescription
critical2No short description for file Exception/UpdateException.php
+
+
+

+Exception/PatchException.php1 +

+
+ + + + + + + + + + +
TypeLineDescription
critical2No short description for file Exception/PatchException.php
+
+
+

+Exception/DomainException.php11 +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeLineDescription
critical2No short description for file Exception/DomainException.php
error11No DocBlock was found for \PhlyRestfully\Exception\DomainException
critical15No short description for property $describedBy
critical20No short description for property $details
critical25No short description for property $title
error30No short description for method setAdditionalDetails()
error40No short description for method setDescribedBy()
error50No short description for method setTitle()
error60No short description for method getAdditionalDetails()
error68No short description for method getDescribedBy()
error76No short description for method getTitle()
+
+
+

+Exception/InvalidResourceException.php2 +

+
+ + + + + + + + + + + + + + + + + +
TypeLineDescription
critical2No short description for file Exception/InvalidResourceException.php
error11No DocBlock was found for \PhlyRestfully\Exception\InvalidResourceException
+
+
+

+Exception/InvalidArgumentException.php2 +

+
+ + + + + + + + + + + + + + + + + +
TypeLineDescription
critical2No short description for file Exception/InvalidArgumentException.php
error11No DocBlock was found for \PhlyRestfully\Exception\InvalidArgumentException
+
+
+

+Exception/ProblemExceptionInterface.php4 +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeLineDescription
critical2No short description for file Exception/ProblemExceptionInterface.php
error16No DocBlock was found for method getAdditionalDetails()
error17No DocBlock was found for method getDescribedBy()
error18No DocBlock was found for method getTitle()
+
+
+

+Exception/ExceptionInterface.php1 +

+
+ + + + + + + + + + +
TypeLineDescription
critical2No short description for file Exception/ExceptionInterface.php
+
+
+

+Exception/RuntimeException.php2 +

+
+ + + + + + + + + + + + + + + + + +
TypeLineDescription
critical2No short description for file Exception/RuntimeException.php
error11No DocBlock was found for \PhlyRestfully\Exception\RuntimeException
+
+
+

+Exception/CreationException.php1 +

+
+ + + + + + + + + + +
TypeLineDescription
critical2No short description for file Exception/CreationException.php
+
+
+

+Exception/InvalidCollectionException.php2 +

+
+ + + + + + + + + + + + + + + + + +
TypeLineDescription
critical2No short description for file Exception/InvalidCollectionException.php
error11No DocBlock was found for \PhlyRestfully\Exception\InvalidCollectionException
+
+
+

+Metadata.php2 +

+
+ + + + + + + + + + + + + + + + + +
TypeLineDescription
critical2No short description for file Metadata.php
error13No DocBlock was found for \PhlyRestfully\Metadata
+
+
+

+LinkCollection.php2 +

+
+ + + + + + + + + + + + + + + + + +
TypeLineDescription
critical2No short description for file LinkCollection.php
critical20No short description for property $links
+
+
+

+Factory/ResourceControllerFactory.php1 +

+
+ + + + + + + + + + +
TypeLineDescription
critical2No short description for file Factory/ResourceControllerFactory.php
+
+
+

+View/RestfulJsonModel.php1 +

+
+ + + + + + + + + + +
TypeLineDescription
critical2No short description for file View/RestfulJsonModel.php
+
+
+

+View/RestfulJsonStrategy.php3 +

+
+ + + + + + + + + + + + + + + + + + + + + + +
TypeLineDescription
critical2No short description for file View/RestfulJsonStrategy.php
error27No DocBlock was found for property $contentType
error29No DocBlock was found for method __construct()
+
+
+

+View/RestfulJsonRenderer.php4 +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeLineDescription
critical2No short description for file View/RestfulJsonRenderer.php
critical31No short description for property $apiProblem
critical43No short description for property $helpers
error98No short description for method getApiProblem()
+
+
+

+HalCollection.php15 +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeLineDescription
critical2No short description for file HalCollection.php
critical26No short description for property $collection
critical38No short description for property $collectionRoute
critical43No short description for property $collectionRouteOptions
critical48No short description for property $collectionRouteParams
critical61No short description for property $links
critical80No short description for property $resourceLinks
critical85No short description for property $resourceRoute
critical90No short description for property $resourceRouteOptions
critical95No short description for property $resourceRouteParams
error100No short description for method __construct()
error100Name of argument $resourceRoute does not match with the DocBlock's name $collectionRoute in __construct()
error100Name of argument $resourceRouteParams does not match with the DocBlock's name $resourceRoute in __construct()
error100Argument $resourceRouteOptions is missing from the Docblock of __construct()
notice100Parameter $collectionRoute could not be found in __construct()
+
+
+

+ResourceController.php4 +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeLineDescription
critical2No short description for file ResourceController.php
critical88No short description for property $resource
error234No short description for method getIdentifierName()
error396No DocBlock was found for method deleteList()
+
+
+

+Listener/ApiProblemListener.php4 +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeLineDescription
critical2No short description for file Listener/ApiProblemListener.php
critical35No short description for property $listeners
error54No short description for method attach()
error62No short description for method detach()
+
+
+

+Listener/ResourceParametersListener.php8 +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeLineDescription
critical2No short description for file Listener/ResourceParametersListener.php
error18No DocBlock was found for \PhlyRestfully\Listener\ResourceParametersListener
critical22No short description for property $listeners
critical27No short description for property $sharedListeners
error32No short description for method attach()
error40No short description for method detach()
error52No short description for method attachShared()
error60No short description for method detachShared()
+
+
+

+Link.php6 +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeLineDescription
critical2No short description for file Link.php
critical21No short description for property $relation
critical26No short description for property $route
critical31No short description for property $routeOptions
critical36No short description for property $routeParams
critical41No short description for property $url
+
+
+

+ResourceEvent.php8 +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeLineDescription
critical2No short description for file ResourceEvent.php
error15No DocBlock was found for \PhlyRestfully\ResourceEvent
critical17No short description for property $queryParams
critical22No short description for property $routeMatch
error27No short description for method setQueryParams()
error37No short description for method getQueryParams()
error64No short description for method setRouteMatch()
error74No short description for method getRouteMatch()
+
+
+

+Plugin/HalLinks.php12 +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeLineDescription
critical2No short description for file Plugin/HalLinks.php
critical40No short description for property $controller
critical52No short description for property $events
critical64No short description for property $metadataMap
critical69No short description for property $serverUrlHelper
critical74No short description for property $urlHelper
error79No short description for method setController()
error87No short description for method getController()
error178No short description for method setServerUrlHelper()
error186No short description for method setUrlHelper()
notice508Parameter $identiferName could not be found in createCollection()
error531No short description for method createCollectionFromMetadata()
+
+
+

+HalResource.php6 +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeLineDescription
critical2No short description for file HalResource.php
error11No DocBlock was found for \PhlyRestfully\HalResource
error13No DocBlock was found for property $id
critical15No short description for property $links
error20No DocBlock was found for property $resource
error22No short description for method __construct()
+
+
+

+LinkCollectionAwareInterface.php3 +

+
+ + + + + + + + + + + + + + + + + + + + + + +
TypeLineDescription
critical2No short description for file LinkCollectionAwareInterface.php
error13No DocBlock was found for method setLinks()
error14No DocBlock was found for method getLinks()
+
+
+
+
+
+ + diff --git a/docs/api/phpdoc/graph_class.html b/docs/api/phpdoc/graph_class.html new file mode 100644 index 0000000..5628f98 --- /dev/null +++ b/docs/api/phpdoc/graph_class.html @@ -0,0 +1,73 @@ + + + + + +PhlyRestfully + + + + + + + + + + +
+ +
+
+
+ + diff --git a/docs/api/phpdoc/img/apple-touch-icon-114x114.png b/docs/api/phpdoc/img/apple-touch-icon-114x114.png new file mode 100644 index 0000000..1506f6a Binary files /dev/null and b/docs/api/phpdoc/img/apple-touch-icon-114x114.png differ diff --git a/docs/api/phpdoc/img/apple-touch-icon-72x72.png b/docs/api/phpdoc/img/apple-touch-icon-72x72.png new file mode 100644 index 0000000..d813259 Binary files /dev/null and b/docs/api/phpdoc/img/apple-touch-icon-72x72.png differ diff --git a/docs/api/phpdoc/img/apple-touch-icon.png b/docs/api/phpdoc/img/apple-touch-icon.png new file mode 100644 index 0000000..2d320cb Binary files /dev/null and b/docs/api/phpdoc/img/apple-touch-icon.png differ diff --git a/docs/api/phpdoc/img/favicon.ico b/docs/api/phpdoc/img/favicon.ico new file mode 100644 index 0000000..9575ac8 Binary files /dev/null and b/docs/api/phpdoc/img/favicon.ico differ diff --git a/docs/api/phpdoc/img/glyphicons-halflings-white.png b/docs/api/phpdoc/img/glyphicons-halflings-white.png new file mode 100644 index 0000000..a20760b Binary files /dev/null and b/docs/api/phpdoc/img/glyphicons-halflings-white.png differ diff --git a/docs/api/phpdoc/img/glyphicons-halflings.png b/docs/api/phpdoc/img/glyphicons-halflings.png new file mode 100644 index 0000000..92d4445 Binary files /dev/null and b/docs/api/phpdoc/img/glyphicons-halflings.png differ diff --git a/docs/api/phpdoc/img/icons/arrow_down.png b/docs/api/phpdoc/img/icons/arrow_down.png new file mode 100644 index 0000000..61505ad Binary files /dev/null and b/docs/api/phpdoc/img/icons/arrow_down.png differ diff --git a/docs/api/phpdoc/img/icons/arrow_right.png b/docs/api/phpdoc/img/icons/arrow_right.png new file mode 100644 index 0000000..60c5927 Binary files /dev/null and b/docs/api/phpdoc/img/icons/arrow_right.png differ diff --git a/docs/api/phpdoc/img/icons/class.png b/docs/api/phpdoc/img/icons/class.png new file mode 100644 index 0000000..87c2107 Binary files /dev/null and b/docs/api/phpdoc/img/icons/class.png differ diff --git a/docs/api/phpdoc/img/icons/constant.png b/docs/api/phpdoc/img/icons/constant.png new file mode 100644 index 0000000..f5f180d Binary files /dev/null and b/docs/api/phpdoc/img/icons/constant.png differ diff --git a/docs/api/phpdoc/img/icons/favicon.ico b/docs/api/phpdoc/img/icons/favicon.ico new file mode 100644 index 0000000..df28db3 Binary files /dev/null and b/docs/api/phpdoc/img/icons/favicon.ico differ diff --git a/docs/api/phpdoc/img/icons/file-php.png b/docs/api/phpdoc/img/icons/file-php.png new file mode 100644 index 0000000..c323f09 Binary files /dev/null and b/docs/api/phpdoc/img/icons/file-php.png differ diff --git a/docs/api/phpdoc/img/icons/file.gif b/docs/api/phpdoc/img/icons/file.gif new file mode 100644 index 0000000..7e62167 Binary files /dev/null and b/docs/api/phpdoc/img/icons/file.gif differ diff --git a/docs/api/phpdoc/img/icons/folder.gif b/docs/api/phpdoc/img/icons/folder.gif new file mode 100644 index 0000000..2b31631 Binary files /dev/null and b/docs/api/phpdoc/img/icons/folder.gif differ diff --git a/docs/api/phpdoc/img/icons/function.png b/docs/api/phpdoc/img/icons/function.png new file mode 100644 index 0000000..c430902 Binary files /dev/null and b/docs/api/phpdoc/img/icons/function.png differ diff --git a/docs/api/phpdoc/img/icons/icon-folder-open-big.png b/docs/api/phpdoc/img/icons/icon-folder-open-big.png new file mode 100644 index 0000000..fae384e Binary files /dev/null and b/docs/api/phpdoc/img/icons/icon-folder-open-big.png differ diff --git a/docs/api/phpdoc/img/icons/icon-th-big.png b/docs/api/phpdoc/img/icons/icon-th-big.png new file mode 100644 index 0000000..04b0ad8 Binary files /dev/null and b/docs/api/phpdoc/img/icons/icon-th-big.png differ diff --git a/docs/api/phpdoc/img/icons/icon_template.svg b/docs/api/phpdoc/img/icons/icon_template.svg new file mode 100644 index 0000000..b0428aa --- /dev/null +++ b/docs/api/phpdoc/img/icons/icon_template.svg @@ -0,0 +1,93 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + Co + + diff --git a/docs/api/phpdoc/img/icons/interface.png b/docs/api/phpdoc/img/icons/interface.png new file mode 100644 index 0000000..51a3a17 Binary files /dev/null and b/docs/api/phpdoc/img/icons/interface.png differ diff --git a/docs/api/phpdoc/img/icons/method.png b/docs/api/phpdoc/img/icons/method.png new file mode 100644 index 0000000..a7cc004 Binary files /dev/null and b/docs/api/phpdoc/img/icons/method.png differ diff --git a/docs/api/phpdoc/img/icons/ok.png b/docs/api/phpdoc/img/icons/ok.png new file mode 100644 index 0000000..39f287a Binary files /dev/null and b/docs/api/phpdoc/img/icons/ok.png differ diff --git a/docs/api/phpdoc/img/icons/property.png b/docs/api/phpdoc/img/icons/property.png new file mode 100644 index 0000000..e76d52b Binary files /dev/null and b/docs/api/phpdoc/img/icons/property.png differ diff --git a/docs/api/phpdoc/img/icons/search.gif b/docs/api/phpdoc/img/icons/search.gif new file mode 100644 index 0000000..eef46fc Binary files /dev/null and b/docs/api/phpdoc/img/icons/search.gif differ diff --git a/docs/api/phpdoc/img/icons/variable.png b/docs/api/phpdoc/img/icons/variable.png new file mode 100644 index 0000000..a39bc19 Binary files /dev/null and b/docs/api/phpdoc/img/icons/variable.png differ diff --git a/docs/api/phpdoc/img/icons/view_source.png b/docs/api/phpdoc/img/icons/view_source.png new file mode 100644 index 0000000..0c76bd1 Binary files /dev/null and b/docs/api/phpdoc/img/icons/view_source.png differ diff --git a/docs/api/phpdoc/img/icons/visibility_private.png b/docs/api/phpdoc/img/icons/visibility_private.png new file mode 100644 index 0000000..386dc2d Binary files /dev/null and b/docs/api/phpdoc/img/icons/visibility_private.png differ diff --git a/docs/api/phpdoc/img/icons/visibility_protected.png b/docs/api/phpdoc/img/icons/visibility_protected.png new file mode 100644 index 0000000..d3bd8e7 Binary files /dev/null and b/docs/api/phpdoc/img/icons/visibility_protected.png differ diff --git a/docs/api/phpdoc/img/icons/visibility_public.png b/docs/api/phpdoc/img/icons/visibility_public.png new file mode 100644 index 0000000..4e10063 Binary files /dev/null and b/docs/api/phpdoc/img/icons/visibility_public.png differ diff --git a/docs/api/phpdoc/img/iviewer/grab.cur b/docs/api/phpdoc/img/iviewer/grab.cur new file mode 100644 index 0000000..ef540be Binary files /dev/null and b/docs/api/phpdoc/img/iviewer/grab.cur differ diff --git a/docs/api/phpdoc/img/iviewer/hand.cur b/docs/api/phpdoc/img/iviewer/hand.cur new file mode 100644 index 0000000..1a5bafb Binary files /dev/null and b/docs/api/phpdoc/img/iviewer/hand.cur differ diff --git a/docs/api/phpdoc/img/iviewer/iviewer.rotate_left.png b/docs/api/phpdoc/img/iviewer/iviewer.rotate_left.png new file mode 100644 index 0000000..df0956d Binary files /dev/null and b/docs/api/phpdoc/img/iviewer/iviewer.rotate_left.png differ diff --git a/docs/api/phpdoc/img/iviewer/iviewer.rotate_right.png b/docs/api/phpdoc/img/iviewer/iviewer.rotate_right.png new file mode 100644 index 0000000..7a6c829 Binary files /dev/null and b/docs/api/phpdoc/img/iviewer/iviewer.rotate_right.png differ diff --git a/docs/api/phpdoc/img/iviewer/iviewer.zoom_fit.png b/docs/api/phpdoc/img/iviewer/iviewer.zoom_fit.png new file mode 100644 index 0000000..364e01d Binary files /dev/null and b/docs/api/phpdoc/img/iviewer/iviewer.zoom_fit.png differ diff --git a/docs/api/phpdoc/img/iviewer/iviewer.zoom_fit2.gif b/docs/api/phpdoc/img/iviewer/iviewer.zoom_fit2.gif new file mode 100644 index 0000000..3199a1e Binary files /dev/null and b/docs/api/phpdoc/img/iviewer/iviewer.zoom_fit2.gif differ diff --git a/docs/api/phpdoc/img/iviewer/iviewer.zoom_in.png b/docs/api/phpdoc/img/iviewer/iviewer.zoom_in.png new file mode 100644 index 0000000..7899332 Binary files /dev/null and b/docs/api/phpdoc/img/iviewer/iviewer.zoom_in.png differ diff --git a/docs/api/phpdoc/img/iviewer/iviewer.zoom_in2.gif b/docs/api/phpdoc/img/iviewer/iviewer.zoom_in2.gif new file mode 100644 index 0000000..5d59618 Binary files /dev/null and b/docs/api/phpdoc/img/iviewer/iviewer.zoom_in2.gif differ diff --git a/docs/api/phpdoc/img/iviewer/iviewer.zoom_out.png b/docs/api/phpdoc/img/iviewer/iviewer.zoom_out.png new file mode 100644 index 0000000..893f350 Binary files /dev/null and b/docs/api/phpdoc/img/iviewer/iviewer.zoom_out.png differ diff --git a/docs/api/phpdoc/img/iviewer/iviewer.zoom_out2.gif b/docs/api/phpdoc/img/iviewer/iviewer.zoom_out2.gif new file mode 100644 index 0000000..77ec19a Binary files /dev/null and b/docs/api/phpdoc/img/iviewer/iviewer.zoom_out2.gif differ diff --git a/docs/api/phpdoc/img/iviewer/iviewer.zoom_zero.png b/docs/api/phpdoc/img/iviewer/iviewer.zoom_zero.png new file mode 100644 index 0000000..c981db6 Binary files /dev/null and b/docs/api/phpdoc/img/iviewer/iviewer.zoom_zero.png differ diff --git a/docs/api/phpdoc/img/iviewer/iviewer.zoom_zero2.gif b/docs/api/phpdoc/img/iviewer/iviewer.zoom_zero2.gif new file mode 100644 index 0000000..e56c670 Binary files /dev/null and b/docs/api/phpdoc/img/iviewer/iviewer.zoom_zero2.gif differ diff --git a/docs/api/phpdoc/img/loader.gif b/docs/api/phpdoc/img/loader.gif new file mode 100644 index 0000000..1209425 Binary files /dev/null and b/docs/api/phpdoc/img/loader.gif differ diff --git a/docs/api/phpdoc/index.html b/docs/api/phpdoc/index.html new file mode 100644 index 0000000..35603b5 --- /dev/null +++ b/docs/api/phpdoc/index.html @@ -0,0 +1,96 @@ + + + + + +PhlyRestfully + + + + + + + + + + +
+ +
+

PhlyRestfully

+

Documentation

+
+ +
+
+ + diff --git a/docs/api/phpdoc/js/SVGPan.js b/docs/api/phpdoc/js/SVGPan.js new file mode 100644 index 0000000..4966b99 --- /dev/null +++ b/docs/api/phpdoc/js/SVGPan.js @@ -0,0 +1,232 @@ +/** + * SVGPan library 1.2 - phpDocumentor1 + * ==================== + * + * Given an unique existing element with id "viewport", including the + * the library into any SVG adds the following capabilities: + * + * - Mouse panning + * - Mouse zooming (using the wheel) + * - Object dargging + * + * Known issues: + * + * - Zooming (while panning) on Safari has still some issues + * + * Releases: + * + * 1.2 - phpDocumentor1, Fri Apr 08 19:19:00 CET 2011, Mike van Riel + * Increased zoom speed with 20% + * Disabled element moving functionality + * + * 1.2, Sat Mar 20 08:42:50 GMT 2010, Zeng Xiaohui + * Fixed a bug with browser mouse handler interaction + * + * 1.1, Wed Feb 3 17:39:33 GMT 2010, Zeng Xiaohui + * Updated the zoom code to support the mouse wheel on Safari/Chrome + * + * 1.0, Andrea Leofreddi + * First release + * + * This code is licensed under the following BSD license: + * + * Copyright 2009-2010 Andrea Leofreddi . All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Andrea Leofreddi OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of Andrea Leofreddi. + */ + +var root = document.documentElement; + +var state = 'none', stateTarget, stateOrigin, stateTf; + +setupHandlers(root); + +/** + * Register handlers + */ +function setupHandlers(root){ + setAttributes(root, { + "onmouseup" : "add(evt)", + "onmousedown" : "handleMouseDown(evt)", + "onmousemove" : "handleMouseMove(evt)", + "onmouseup" : "handleMouseUp(evt)", +// "onmouseout" : "handleMouseUp(evt)" // Decomment this to stop the pan functionality when dragging out of the SVG element + }); + + if(navigator.userAgent.toLowerCase().indexOf('webkit') >= 0) + window.addEventListener('mousewheel', handleMouseWheel, false); // Chrome/Safari + else + window.addEventListener('DOMMouseScroll', handleMouseWheel, false); // Others +} + +/** + * Instance an SVGPoint object with given event coordinates. + */ +function getEventPoint(evt) { + var p = root.createSVGPoint(); + + p.x = evt.clientX; + p.y = evt.clientY; + + return p; +} + +/** + * Sets the current transform matrix of an element. + */ +function setCTM(element, matrix) { + var s = "matrix(" + matrix.a + "," + matrix.b + "," + matrix.c + "," + matrix.d + "," + matrix.e + "," + matrix.f + ")"; + + element.setAttribute("transform", s); +} + +/** + * Dumps a matrix to a string (useful for debug). + */ +function dumpMatrix(matrix) { + var s = "[ " + matrix.a + ", " + matrix.c + ", " + matrix.e + "\n " + matrix.b + ", " + matrix.d + ", " + matrix.f + "\n 0, 0, 1 ]"; + + return s; +} + +/** + * Sets attributes of an element. + */ +function setAttributes(element, attributes){ + for (i in attributes) + element.setAttributeNS(null, i, attributes[i]); +} + +/** + * Handle mouse move event. + */ +function handleMouseWheel(evt) { + if(evt.preventDefault) + evt.preventDefault(); + + evt.returnValue = false; + + var svgDoc = evt.target.ownerDocument; + + var delta; + + if(evt.wheelDelta) + delta = evt.wheelDelta / 3600; // Chrome/Safari + else + delta = evt.detail / -90; // Mozilla + + var z = 1 + (delta * 1.2); // Zoom factor: 0.9/1.1 + + var g = svgDoc.getElementById("viewport"); + + var p = getEventPoint(evt); + + p = p.matrixTransform(g.getCTM().inverse()); + + // Compute new scale matrix in current mouse position + var k = root.createSVGMatrix().translate(p.x, p.y).scale(z).translate(-p.x, -p.y); + + setCTM(g, g.getCTM().multiply(k)); + + stateTf = stateTf.multiply(k.inverse()); +} + +/** + * Handle mouse move event. + */ +function handleMouseMove(evt) { + if(evt.preventDefault) + evt.preventDefault(); + + evt.returnValue = false; + + var svgDoc = evt.target.ownerDocument; + + var g = svgDoc.getElementById("viewport"); + + if(state == 'pan') { + // Pan mode + var p = getEventPoint(evt).matrixTransform(stateTf); + + setCTM(g, stateTf.inverse().translate(p.x - stateOrigin.x, p.y - stateOrigin.y)); + } else if(state == 'move') { + // Move mode + var p = getEventPoint(evt).matrixTransform(g.getCTM().inverse()); + + setCTM(stateTarget, root.createSVGMatrix().translate(p.x - stateOrigin.x, p.y - stateOrigin.y).multiply(g.getCTM().inverse()).multiply(stateTarget.getCTM())); + + stateOrigin = p; + } +} + +/** + * Handle click event. + */ +function handleMouseDown(evt) { + if(evt.preventDefault) + evt.preventDefault(); + + evt.returnValue = false; + + var svgDoc = evt.target.ownerDocument; + + var g = svgDoc.getElementById("viewport"); + +// if(evt.target.tagName == "svg") { + // Pan mode + state = 'pan'; + + stateTf = g.getCTM().inverse(); + + stateOrigin = getEventPoint(evt).matrixTransform(stateTf); +// } else { + // Move mode +// state = 'move'; +// +// stateTarget = evt.target; +// +// stateTf = g.getCTM().inverse(); +// +// stateOrigin = getEventPoint(evt).matrixTransform(stateTf); +// } +} + +/** + * Handle mouse button release event. + */ +function handleMouseUp(evt) { + if(evt.preventDefault) + evt.preventDefault(); + + evt.returnValue = false; + + var svgDoc = evt.target.ownerDocument; + + if(state == 'pan' || state == 'move') { + // Quit pan mode + state = ''; + } +} + diff --git a/docs/api/phpdoc/js/bootstrap.js b/docs/api/phpdoc/js/bootstrap.js new file mode 100644 index 0000000..c832ccb --- /dev/null +++ b/docs/api/phpdoc/js/bootstrap.js @@ -0,0 +1,1722 @@ +/* =================================================== + * bootstrap-transition.js v2.0.0 + * http://twitter.github.com/bootstrap/javascript.html#transitions + * =================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + +!function( $ ) { + + $(function () { + + "use strict" + + /* CSS TRANSITION SUPPORT (https://gist.github.com/373874) + * ======================================================= */ + + $.support.transition = (function () { + var thisBody = document.body || document.documentElement + , thisStyle = thisBody.style + , support = thisStyle.transition !== undefined || thisStyle.WebkitTransition !== undefined || thisStyle.MozTransition !== undefined || thisStyle.MsTransition !== undefined || thisStyle.OTransition !== undefined + + return support && { + end: (function () { + var transitionEnd = "TransitionEnd" + if ( $.browser.webkit ) { + transitionEnd = "webkitTransitionEnd" + } else if ( $.browser.mozilla ) { + transitionEnd = "transitionend" + } else if ( $.browser.opera ) { + transitionEnd = "oTransitionEnd" + } + return transitionEnd + }()) + } + })() + + }) + +}( window.jQuery ) +/* ========================================================== + * bootstrap-alert.js v2.0.0 + * http://twitter.github.com/bootstrap/javascript.html#alerts + * ========================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + + +!function( $ ){ + + "use strict" + + /* ALERT CLASS DEFINITION + * ====================== */ + + var dismiss = '[data-dismiss="alert"]' + , Alert = function ( el ) { + $(el).on('click', dismiss, this.close) + } + + Alert.prototype = { + + constructor: Alert + + , close: function ( e ) { + var $this = $(this) + , selector = $this.attr('data-target') + , $parent + + if (!selector) { + selector = $this.attr('href') + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 + } + + $parent = $(selector) + $parent.trigger('close') + + e && e.preventDefault() + + $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent()) + + $parent.removeClass('in') + + function removeElement() { + $parent.remove() + $parent.trigger('closed') + } + + $.support.transition && $parent.hasClass('fade') ? + $parent.on($.support.transition.end, removeElement) : + removeElement() + } + + } + + + /* ALERT PLUGIN DEFINITION + * ======================= */ + + $.fn.alert = function ( option ) { + return this.each(function () { + var $this = $(this) + , data = $this.data('alert') + if (!data) $this.data('alert', (data = new Alert(this))) + if (typeof option == 'string') data[option].call($this) + }) + } + + $.fn.alert.Constructor = Alert + + + /* ALERT DATA-API + * ============== */ + + $(function () { + $('body').on('click.alert.data-api', dismiss, Alert.prototype.close) + }) + +}( window.jQuery ) +/* ============================================================ + * bootstrap-button.js v2.0.0 + * http://twitter.github.com/bootstrap/javascript.html#buttons + * ============================================================ + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================ */ + +!function( $ ){ + + "use strict" + + /* BUTTON PUBLIC CLASS DEFINITION + * ============================== */ + + var Button = function ( element, options ) { + this.$element = $(element) + this.options = $.extend({}, $.fn.button.defaults, options) + } + + Button.prototype = { + + constructor: Button + + , setState: function ( state ) { + var d = 'disabled' + , $el = this.$element + , data = $el.data() + , val = $el.is('input') ? 'val' : 'html' + + state = state + 'Text' + data.resetText || $el.data('resetText', $el[val]()) + + $el[val](data[state] || this.options[state]) + + // push to event loop to allow forms to submit + setTimeout(function () { + state == 'loadingText' ? + $el.addClass(d).attr(d, d) : + $el.removeClass(d).removeAttr(d) + }, 0) + } + + , toggle: function () { + var $parent = this.$element.parent('[data-toggle="buttons-radio"]') + + $parent && $parent + .find('.active') + .removeClass('active') + + this.$element.toggleClass('active') + } + + } + + + /* BUTTON PLUGIN DEFINITION + * ======================== */ + + $.fn.button = function ( option ) { + return this.each(function () { + var $this = $(this) + , data = $this.data('button') + , options = typeof option == 'object' && option + if (!data) $this.data('button', (data = new Button(this, options))) + if (option == 'toggle') data.toggle() + else if (option) data.setState(option) + }) + } + + $.fn.button.defaults = { + loadingText: 'loading...' + } + + $.fn.button.Constructor = Button + + + /* BUTTON DATA-API + * =============== */ + + $(function () { + $('body').on('click.button.data-api', '[data-toggle^=button]', function ( e ) { + $(e.target).button('toggle') + }) + }) + +}( window.jQuery ) +/* ========================================================== + * bootstrap-carousel.js v2.0.0 + * http://twitter.github.com/bootstrap/javascript.html#carousel + * ========================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + + +!function( $ ){ + + "use strict" + + /* CAROUSEL CLASS DEFINITION + * ========================= */ + + var Carousel = function (element, options) { + this.$element = $(element) + this.options = $.extend({}, $.fn.carousel.defaults, options) + this.options.slide && this.slide(this.options.slide) + } + + Carousel.prototype = { + + cycle: function () { + this.interval = setInterval($.proxy(this.next, this), this.options.interval) + return this + } + + , to: function (pos) { + var $active = this.$element.find('.active') + , children = $active.parent().children() + , activePos = children.index($active) + , that = this + + if (pos > (children.length - 1) || pos < 0) return + + if (this.sliding) { + return this.$element.one('slid', function () { + that.to(pos) + }) + } + + if (activePos == pos) { + return this.pause().cycle() + } + + return this.slide(pos > activePos ? 'next' : 'prev', $(children[pos])) + } + + , pause: function () { + clearInterval(this.interval) + return this + } + + , next: function () { + if (this.sliding) return + return this.slide('next') + } + + , prev: function () { + if (this.sliding) return + return this.slide('prev') + } + + , slide: function (type, next) { + var $active = this.$element.find('.active') + , $next = next || $active[type]() + , isCycling = this.interval + , direction = type == 'next' ? 'left' : 'right' + , fallback = type == 'next' ? 'first' : 'last' + , that = this + + this.sliding = true + + isCycling && this.pause() + + $next = $next.length ? $next : this.$element.find('.item')[fallback]() + + if (!$.support.transition && this.$element.hasClass('slide')) { + this.$element.trigger('slide') + $active.removeClass('active') + $next.addClass('active') + this.sliding = false + this.$element.trigger('slid') + } else { + $next.addClass(type) + $next[0].offsetWidth // force reflow + $active.addClass(direction) + $next.addClass(direction) + this.$element.trigger('slide') + this.$element.one($.support.transition.end, function () { + $next.removeClass([type, direction].join(' ')).addClass('active') + $active.removeClass(['active', direction].join(' ')) + that.sliding = false + setTimeout(function () { that.$element.trigger('slid') }, 0) + }) + } + + isCycling && this.cycle() + + return this + } + + } + + + /* CAROUSEL PLUGIN DEFINITION + * ========================== */ + + $.fn.carousel = function ( option ) { + return this.each(function () { + var $this = $(this) + , data = $this.data('carousel') + , options = typeof option == 'object' && option + if (!data) $this.data('carousel', (data = new Carousel(this, options))) + if (typeof option == 'number') data.to(option) + else if (typeof option == 'string' || (option = options.slide)) data[option]() + else data.cycle() + }) + } + + $.fn.carousel.defaults = { + interval: 5000 + } + + $.fn.carousel.Constructor = Carousel + + + /* CAROUSEL DATA-API + * ================= */ + + $(function () { + $('body').on('click.carousel.data-api', '[data-slide]', function ( e ) { + var $this = $(this), href + , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 + , options = !$target.data('modal') && $.extend({}, $target.data(), $this.data()) + $target.carousel(options) + e.preventDefault() + }) + }) + +}( window.jQuery ) +/* ============================================================= + * bootstrap-collapse.js v2.0.0 + * http://twitter.github.com/bootstrap/javascript.html#collapse + * ============================================================= + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================ */ + +!function( $ ){ + + "use strict" + + var Collapse = function ( element, options ) { + this.$element = $(element) + this.options = $.extend({}, $.fn.collapse.defaults, options) + + if (this.options["parent"]) { + this.$parent = $(this.options["parent"]) + } + + this.options.toggle && this.toggle() + } + + Collapse.prototype = { + + constructor: Collapse + + , dimension: function () { + var hasWidth = this.$element.hasClass('width') + return hasWidth ? 'width' : 'height' + } + + , show: function () { + var dimension = this.dimension() + , scroll = $.camelCase(['scroll', dimension].join('-')) + , actives = this.$parent && this.$parent.find('.in') + , hasData + + if (actives && actives.length) { + hasData = actives.data('collapse') + actives.collapse('hide') + hasData || actives.data('collapse', null) + } + + this.$element[dimension](0) + this.transition('addClass', 'show', 'shown') + this.$element[dimension](this.$element[0][scroll]) + + } + + , hide: function () { + var dimension = this.dimension() + this.reset(this.$element[dimension]()) + this.transition('removeClass', 'hide', 'hidden') + this.$element[dimension](0) + } + + , reset: function ( size ) { + var dimension = this.dimension() + + this.$element + .removeClass('collapse') + [dimension](size || 'auto') + [0].offsetWidth + + this.$element.addClass('collapse') + } + + , transition: function ( method, startEvent, completeEvent ) { + var that = this + , complete = function () { + if (startEvent == 'show') that.reset() + that.$element.trigger(completeEvent) + } + + this.$element + .trigger(startEvent) + [method]('in') + + $.support.transition && this.$element.hasClass('collapse') ? + this.$element.one($.support.transition.end, complete) : + complete() + } + + , toggle: function () { + this[this.$element.hasClass('in') ? 'hide' : 'show']() + } + + } + + /* COLLAPSIBLE PLUGIN DEFINITION + * ============================== */ + + $.fn.collapse = function ( option ) { + return this.each(function () { + var $this = $(this) + , data = $this.data('collapse') + , options = typeof option == 'object' && option + if (!data) $this.data('collapse', (data = new Collapse(this, options))) + if (typeof option == 'string') data[option]() + }) + } + + $.fn.collapse.defaults = { + toggle: true + } + + $.fn.collapse.Constructor = Collapse + + + /* COLLAPSIBLE DATA-API + * ==================== */ + + $(function () { + $('body').on('click.collapse.data-api', '[data-toggle=collapse]', function ( e ) { + var $this = $(this), href + , target = $this.attr('data-target') + || e.preventDefault() + || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 + , option = $(target).data('collapse') ? 'toggle' : $this.data() + $(target).collapse(option) + }) + }) + +}( window.jQuery ) +/* ============================================================ + * bootstrap-dropdown.js v2.0.0 + * http://twitter.github.com/bootstrap/javascript.html#dropdowns + * ============================================================ + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================ */ + + +!function( $ ){ + + "use strict" + + /* DROPDOWN CLASS DEFINITION + * ========================= */ + + var toggle = '[data-toggle="dropdown"]' + , Dropdown = function ( element ) { + var $el = $(element).on('click.dropdown.data-api', this.toggle) + $('html').on('click.dropdown.data-api', function () { + $el.parent().removeClass('open') + }) + } + + Dropdown.prototype = { + + constructor: Dropdown + + , toggle: function ( e ) { + var $this = $(this) + , selector = $this.attr('data-target') + , $parent + , isActive + + if (!selector) { + selector = $this.attr('href') + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 + } + + $parent = $(selector) + $parent.length || ($parent = $this.parent()) + + isActive = $parent.hasClass('open') + + clearMenus() + !isActive && $parent.toggleClass('open') + + return false + } + + } + + function clearMenus() { + $(toggle).parent().removeClass('open') + } + + + /* DROPDOWN PLUGIN DEFINITION + * ========================== */ + + $.fn.dropdown = function ( option ) { + return this.each(function () { + var $this = $(this) + , data = $this.data('dropdown') + if (!data) $this.data('dropdown', (data = new Dropdown(this))) + if (typeof option == 'string') data[option].call($this) + }) + } + + $.fn.dropdown.Constructor = Dropdown + + + /* APPLY TO STANDARD DROPDOWN ELEMENTS + * =================================== */ + + $(function () { + $('html').on('click.dropdown.data-api', clearMenus) + $('body').on('click.dropdown.data-api', toggle, Dropdown.prototype.toggle) + }) + +}( window.jQuery ) +/* ========================================================= + * bootstrap-modal.js v2.0.0 + * http://twitter.github.com/bootstrap/javascript.html#modals + * ========================================================= + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================= */ + + +!function( $ ){ + + "use strict" + + /* MODAL CLASS DEFINITION + * ====================== */ + + var Modal = function ( content, options ) { + this.options = $.extend({}, $.fn.modal.defaults, options) + this.$element = $(content) + .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this)) + } + + Modal.prototype = { + + constructor: Modal + + , toggle: function () { + return this[!this.isShown ? 'show' : 'hide']() + } + + , show: function () { + var that = this + + if (this.isShown) return + + $('body').addClass('modal-open') + + this.isShown = true + this.$element.trigger('show') + + escape.call(this) + backdrop.call(this, function () { + var transition = $.support.transition && that.$element.hasClass('fade') + + !that.$element.parent().length && that.$element.appendTo(document.body) //don't move modals dom position + + that.$element + .show() + + if (transition) { + that.$element[0].offsetWidth // force reflow + } + + that.$element.addClass('in') + + transition ? + that.$element.one($.support.transition.end, function () { that.$element.trigger('shown') }) : + that.$element.trigger('shown') + + }) + } + + , hide: function ( e ) { + e && e.preventDefault() + + if (!this.isShown) return + + var that = this + this.isShown = false + + $('body').removeClass('modal-open') + + escape.call(this) + + this.$element + .trigger('hide') + .removeClass('in') + + $.support.transition && this.$element.hasClass('fade') ? + hideWithTransition.call(this) : + hideModal.call(this) + } + + } + + + /* MODAL PRIVATE METHODS + * ===================== */ + + function hideWithTransition() { + var that = this + , timeout = setTimeout(function () { + that.$element.off($.support.transition.end) + hideModal.call(that) + }, 500) + + this.$element.one($.support.transition.end, function () { + clearTimeout(timeout) + hideModal.call(that) + }) + } + + function hideModal( that ) { + this.$element + .hide() + .trigger('hidden') + + backdrop.call(this) + } + + function backdrop( callback ) { + var that = this + , animate = this.$element.hasClass('fade') ? 'fade' : '' + + if (this.isShown && this.options.backdrop) { + var doAnimate = $.support.transition && animate + + this.$backdrop = $('