From ef4b667277ace3175b315048543dfffe86c09f75 Mon Sep 17 00:00:00 2001 From: Deon George Date: Mon, 27 Jun 2011 17:24:39 +1000 Subject: [PATCH] Updated user guide --- application/classes/controller/welcome.php | 8 ++ application/classes/model/actlog.php | 19 +++ application/config/userguide.php | 38 ++++++ application/guide/pta/index.md | 16 +++ application/guide/pta/install.md | 51 ++++++++ application/guide/pta/menu.md | 2 + application/media/guide/css/kodoc.css | 142 +++++++++++++++++++++ application/media/guide/img/logo-small.png | Bin 0 -> 23763 bytes application/views/userguide/template.php | 108 ++++++++++++++++ 9 files changed, 384 insertions(+) create mode 100644 application/classes/model/actlog.php create mode 100644 application/config/userguide.php create mode 100644 application/guide/pta/index.md create mode 100644 application/guide/pta/install.md create mode 100644 application/guide/pta/menu.md create mode 100644 application/media/guide/css/kodoc.css create mode 100644 application/media/guide/img/logo-small.png create mode 100644 application/views/userguide/template.php diff --git a/application/classes/controller/welcome.php b/application/classes/controller/welcome.php index 65396ae..4e55cca 100644 --- a/application/classes/controller/welcome.php +++ b/application/classes/controller/welcome.php @@ -11,7 +11,15 @@ * @license http://phptsmadmin.sf.net/license.html */ class Controller_Welcome extends Controller_TemplateDefault { + protected $auth_required = FALSE; + public function action_index() { + if (! Kohana::config('config.client')) + Request::current()->redirect('guide/pta'); + + if (! Auth::instance()->logged_in()) + Request::current()->redirect('login'); + Block::add(array( 'title'=>sprintf('%s: %s (%s)',_('Server'),TSM::name(),TSM::version()), 'body'=>'hello, world!', diff --git a/application/classes/model/actlog.php b/application/classes/model/actlog.php new file mode 100644 index 0000000..9c2af9a --- /dev/null +++ b/application/classes/model/actlog.php @@ -0,0 +1,19 @@ +'ASC', + ); +} +?> diff --git a/application/config/userguide.php b/application/config/userguide.php new file mode 100644 index 0000000..f5c3179 --- /dev/null +++ b/application/config/userguide.php @@ -0,0 +1,38 @@ + array( + + // This should be the path to this modules userguide pages, without the 'guide/'. Ex: '/guide/modulename/' would be 'modulename' + 'pta' => array( + + // Whether this modules userguide pages should be shown + 'enabled' => TRUE, + + // The name that should show up on the userguide index page + 'name' => 'PTA', + + // A short description of this module, shown on the index page + 'description' => 'A TSM Operational Management Interface.', + + // Copyright message, shown in the footer for this module + 'copyright' => '© 2008–2011 phpTSMadmin Development Team', + ), + 'cache' => array( + 'enabled' => FALSE, + ), + 'database' => array( + 'enabled' => FALSE, + ), + 'kohana' => array( + 'enabled' => FALSE, + ), + 'orm' => array( + 'enabled' => FALSE, + ), + 'userguide' => array( + 'enabled' => FALSE, + ), + ) +); diff --git a/application/guide/pta/index.md b/application/guide/pta/index.md new file mode 100644 index 0000000..62bd210 --- /dev/null +++ b/application/guide/pta/index.md @@ -0,0 +1,16 @@ +# About phpTSMadmin (PTA) + +phpTSMadmin is an operational admin interface to help with managing a Tivoli Storage Manager (TSM) server. +This web interface is not designed to replace that interface that you use to manage TSM, but rather to help you understand your TSM environment, so that you can better manage your server(s). + +By default PTA uses TSM's command line interface (CLI) to communicate with the TSM server. While this provides a very simple way to get PTA up and running, it does have performance implications because each query to the TSM server results in a fork-exec to extra the data from TSM. As this is the only method to talk to a TSM v5.x server, it is your only option. For TSM v6.x users, it will be possible to query the DB2 database directly, which should be significantly better. Look out for an update with this feature. + +## Tools used to make PTA available. +phpTSMadmin uses some great open source tools, please make sure you provide feedback/enhancements to the authors of the components you use: + +* The Kohana Framework +* JpGraph +* PHP + +## Information on Development +This web interface has been developed on a CentOS 5.5 server, using PHP 5.3. It has also been tested against TSM v5.x and TSM v6.x servers. diff --git a/application/guide/pta/install.md b/application/guide/pta/install.md new file mode 100644 index 0000000..53b1ff5 --- /dev/null +++ b/application/guide/pta/install.md @@ -0,0 +1,51 @@ +# Installation Instructions + +## Requirements + The requirements below are those used by RedHat Enterprise Linux v5.6 system. It is quite + possible that other versions of these components, or other distributions of Linux will also + work as well. + + If you encounter any problems with other versions, then drop us an email with + the error messages, what you did and what you expected, and if we need to make some code changes + to get it to work, then we'll take a look. + + Minimum components and their version: + + * Apache 2.2.x + * PHP 5.3.x + * TSM Client 5.x (our tests were done on TSM 5.5.x and TSM 6.2.x clients/servers). + +## Installation +These steps assume that you have installed, configured and running: + + * Linux server, + * Apache installed, configured and running, + * PHP installed, configured if necessary and running with apache, + * TSM client installed, configured and working. + +1. Download the latest version. + You can download phpTSMadmin from sourceforge. http://phpTSMadmin.sf.net + +1. Unpack the tar files in an appropriate directory. + cd /var/www/phpTSMadmin (or any other directory that you choose) + tar xzf phpTSMadmin-XXXX.tgz + +1. Configure your webserver. + Find the sample apache config file in the contrib directory. Place that in + your /etc/httpd/conf.d directory. + + Edit the sample apache config file as appropriate and restart your web server. + + Also make sure that in your php.ini configuration file, you have set "memory_limit" to + at leat 16M. If this is set too low, then your grantt charts will fail to be created + and your apache error log will have "Allowed memory size of X bytes exhausted" error + messages. + +1. Copy config.php.example in the application/config directory to application/config/config.php and edit to + suite your environment. + +1. Then, point your browser to your phpTSMadmin URL. + +For help drop me an email phptsmadmin-devel@lists.sourceforge.net. +## Information on Development +This web interface has been developed on a CentOS 5.5 server, using PHP 5.3. It has also been tested against TSM v5.x and TSM v6.x servers. diff --git a/application/guide/pta/menu.md b/application/guide/pta/menu.md new file mode 100644 index 0000000..22f16f4 --- /dev/null +++ b/application/guide/pta/menu.md @@ -0,0 +1,2 @@ +## [PTA]() +- [Installation](install) diff --git a/application/media/guide/css/kodoc.css b/application/media/guide/css/kodoc.css new file mode 100644 index 0000000..8408c95 --- /dev/null +++ b/application/media/guide/css/kodoc.css @@ -0,0 +1,142 @@ +/* @import url('api.css'); */ + +html { background: #FFFFFF; font-size: 70%; } +body { margin: 0; } +ol ol, ol ul, ul ul, ul ol { margin-bottom: 0; } +a img { border: 0; } + +h1 small, +h2 small, +h3 small, +h4 small { font-weight: normal; font-size: 0.7em; } +h5 small, +h6 small { font-weight: normal; font-size: 0.8em; } + +dl dd { margin-left: 0; } + +code { + color:#6BAA3D; + font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; +} + +pre { + background:#FFFFFF; + border-radius:10px; + padding:1.5em; + font-size:0.9em; + margin-top:1.5em; + margin-bottom:1.5em; + overflow:auto; +} + +.highlighted div.line { + font-size:1em; + line-height:1.3 !important; +} + +table { + background:#eee; + border-left: 1px solid #CCC; + border-top: 1px solid #CCC; + margin-bottom:1.5em; + width: 100%; +} + +table td, table th { + padding:0.4em 0.8em; + line-height:1.4286; + border-right: 1px solid #CCC; + border-bottom: 1px solid #CCC; +} + +table th { + background: #ddd; +} + +table tr:nth-child(even) { + background: #fff; +} + +.caps { text-transform: uppercase; font-size: 0.8em; font-weight: normal; } +.status { text-transform: lowercase; font-variant: small-caps; font-weight: bold; color: #911; } +.container .colborder { border-color: #d3d8bc; } + +.note { + padding: 1.5em; + padding-left: 5em; + background: #e8efcf url('../img/lightbulb_48.png') no-repeat 1em center; + border-radius: 0.6em; + overflow: auto; +} + +h1 a.permalink, +h2 a.permalink, +h3 a.permalink, +h4 a.permalink, +h5 a.permalink, +h6 a.permalink { + font-size: 0.6em; + line-height: 100%; + vertical-align: middle; + margin-left: 1em; + padding: 0; + font-weight: normal; + display: none; + position: inherit; +} + +h1:hover a.permalink, +h2:hover a.permalink, +h3:hover a.permalink, +h4:hover a.permalink, +h5:hover a.permalink, +h6:hover a.permalink { + display: inline; +} + + +#header, +#content, +#footer { float: left; clear: both; width: 100%; } + +#header { padding: 20px 0 2em; background: #FAFAFC; } + #logo { display: block; float: left; } + #menu { float: right; margin-top: 12px; background: #050505; -moz-border-radius: 5px; -webkit-border-radius: 5px; } + #menu ul { float: left; margin: 0; padding: 0 0.5em 0 0; } + #menu li { display: block; float: left; margin: 0; padding: 0; } + #menu li.first { padding-left: 0.5em; } + #menu li a { display: block; height: 32px; line-height: 32px; padding: 0 0.8em; border-right: solid 1px #050505; border-left: solid 1px #050505; letter-spacing: 0.05em; text-decoration: none; text-transform: uppercase; color: #FCFCFE; font-size: 90%; } + #menu li.first a { border-left: 0; } + #menu li.last a { border-right: 0; } + #menu li a:hover { background: #353535; color: #FCFCFE; text-shadow: #FFFFFF 0 0 1px; } + +#content { background: #FCFCFE; } + #content .wrapper { min-height: 390px; padding: 1em 0; } + #content div.page-toc { float: right; margin: 1em; margin-top: 0; padding: 1em; background: #fff; border: solid 0.1em #e8efcf; border-radius: 0.6em; } + #content p.intro { padding: 1em 20px; padding-left: 20px; margin: 0 -20px; font-size: 1.2em; } + #content a { color: #004352; } + #content a:hover { color: #00758f; } + #content a:active { text-decoration: none; } + +#breadcrumb { margin: 0 0 1em; padding: 0 0 0.5em; list-style: none; border-bottom: solid 1px #e8efcf; } + #breadcrumb li { display: inline-block; margin: 0; padding: 0 0.4em 0 0; text-transform: uppercase; font-size: 11px; } + #breadcrumb li:before { content: '»'; padding-right: 0.4em; } + #breadcrumb li a { color: #999; text-decoration: none; } + +#topics { } + #topics ul, + #topics ol { list-style-type:none; margin: 0; padding: 0;} + #topics ul li, + #topics ol li { margin:0; padding: 0; margin-left: 1em; } + #topics ul li a.current, + #topics ol li a.current { font-weight: bold; } + #topics span, + #topics a { display: block; padding: 0; margin: 0; } + #topics span { cursor: pointer; } + #topics span.toggle { display: block; float: left; width: 1em; padding-right: 0.4em; margin-left: -1.4em; text-align: center; } + + #topics li span { cursor:pointer; } + +#footer { padding: 1em 0; background: #FAFAFC; color: #050505; text-shadow: #FFFFFF 0.1em 0.1em 1px; font-size: 0.9em; } + #footer a { color: #809397; } + #footer div.last { text-align: right; } diff --git a/application/media/guide/img/logo-small.png b/application/media/guide/img/logo-small.png new file mode 100644 index 0000000000000000000000000000000000000000..4a7558122c918599463e011493fb0c38a4e4427c GIT binary patch literal 23763 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
6*dC_oz8}9 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 literal 0 HcmV?d00001 diff --git a/application/views/userguide/template.php b/application/views/userguide/template.php new file mode 100644 index 0000000..cfd4a19 --- /dev/null +++ b/application/views/userguide/template.php @@ -0,0 +1,108 @@ + + + + + +<?php echo $title ?> | Kohana <?php echo __('User Guide'); ?> + + $media) echo HTML::style($style, array('media' => $media), NULL, TRUE), "\n" ?> + + + + + + + + + +
+
+
+
+ +
+
+
+ +
+
+
+ + + +
+ + + Documentation comments powered by Disqus + +
+
+
+
+ + + + + + + +