From 43f7f8e103168da53ea429d68748645500494de1 Mon Sep 17 00:00:00 2001 From: martin Date: Fri, 11 Feb 2011 18:13:26 -0500 Subject: [PATCH] -added help page -added additional user info --- .zfproject.xml | 4 ++ application/configs/ACL.php | 2 + application/configs/navigation.php | 9 ++- .../controllers/DashboardController.php | 7 +- application/controllers/UserController.php | 3 + application/forms/AddUser.php | 20 ++++++ application/models/Users.php | 33 ++++++++- .../views/scripts/dashboard/help.phtml | 16 +++++ public/css/images/big_gray_logo.png | Bin 0 -> 3153 bytes ...how_red.png => progressbar_show_error.png} | Bin public/css/images/sf_arror.png | Bin 0 -> 2833 bytes public/css/styles.css | 66 +++++++++++++++++- public/js/airtime/user/user.js | 3 + public/js/playlist/playlist.js | 2 +- 14 files changed, 159 insertions(+), 6 deletions(-) create mode 100644 application/views/scripts/dashboard/help.phtml create mode 100644 public/css/images/big_gray_logo.png rename public/css/images/{progressbar_show_red.png => progressbar_show_error.png} (100%) create mode 100644 public/css/images/sf_arror.png diff --git a/.zfproject.xml b/.zfproject.xml index 1807da152..2d7499e2c 100644 --- a/.zfproject.xml +++ b/.zfproject.xml @@ -97,6 +97,7 @@ + @@ -317,6 +318,9 @@ + + + diff --git a/application/configs/ACL.php b/application/configs/ACL.php index a0f72bc9e..e6fd9c72e 100644 --- a/application/configs/ACL.php +++ b/application/configs/ACL.php @@ -20,6 +20,7 @@ $ccAcl->add(new Zend_Acl_Resource('library')) ->add(new Zend_Acl_Resource('api')) ->add(new Zend_Acl_Resource('nowplaying')) ->add(new Zend_Acl_Resource('search')) + ->add(new Zend_Acl_Resource('dashboard')) ->add(new Zend_Acl_Resource('preference')); /** Creating permissions */ @@ -29,6 +30,7 @@ $ccAcl->allow('G', 'index') ->allow('G', 'nowplaying') ->allow('G', 'api') ->allow('G', 'schedule') + ->allow('G', 'dashboard') ->allow('H', 'library') ->allow('H', 'search') ->allow('H', 'plupload') diff --git a/application/configs/navigation.php b/application/configs/navigation.php index 0ac70cc51..9ee1cf342 100644 --- a/application/configs/navigation.php +++ b/application/configs/navigation.php @@ -54,7 +54,14 @@ $pages = array( 'resource' => 'user' ) ) - ) + ), + array( + 'label' => 'Help', + 'module' => 'default', + 'controller' => 'dashboard', + 'action' => 'help', + 'resource' => 'dashboard' + ) ); diff --git a/application/controllers/DashboardController.php b/application/controllers/DashboardController.php index 8ab5dd2e5..811800ca3 100644 --- a/application/controllers/DashboardController.php +++ b/application/controllers/DashboardController.php @@ -13,10 +13,15 @@ class DashboardController extends Zend_Controller_Action // action body } - + public function helpAction() + { + // action body + } } + + diff --git a/application/controllers/UserController.php b/application/controllers/UserController.php index f487954f6..72b6a20ef 100644 --- a/application/controllers/UserController.php +++ b/application/controllers/UserController.php @@ -36,6 +36,9 @@ class UserController extends Zend_Controller_Action if ($formdata['password'] != "xxxxxx") $user->setPassword($formdata['password']); $user->setType($formdata['type']); + $user->setEmail($formdata['email']); + $user->setSkype($formdata['skype']); + $user->setJabber($formdata['jabber']); $user->save(); $form->reset(); diff --git a/application/forms/AddUser.php b/application/forms/AddUser.php index db366c04d..12a22b952 100644 --- a/application/forms/AddUser.php +++ b/application/forms/AddUser.php @@ -47,6 +47,26 @@ class Application_Form_AddUser extends Zend_Form $lastName->addValidator('NotEmpty'); $this->addElement($lastName); + $email = new Zend_Form_Element_Text('email'); + $email->setLabel('Email:'); + $email->setAttrib('class', 'input_text'); + $email->addFilter('StringTrim'); + $email->addValidator('EmailAddress'); + $this->addElement($email); + + $skype = new Zend_Form_Element_Text('skype'); + $skype->setLabel('Skype:'); + $skype->setAttrib('class', 'input_text'); + $skype->addFilter('StringTrim'); + $this->addElement($skype); + + $jabber = new Zend_Form_Element_Text('jabber'); + $jabber->setLabel('Jabber:'); + $jabber->setAttrib('class', 'input_text'); + $jabber->addFilter('StringTrim'); + $jabber->addValidator('EmailAddress'); + $this->addElement($jabber); + $select = new Zend_Form_Element_Select('type'); $select->setAttrib('class', 'input_select'); $select->setAttrib('style', 'width: 40%'); diff --git a/application/models/Users.php b/application/models/Users.php index 843dae81c..ca3bdf448 100644 --- a/application/models/Users.php +++ b/application/models/Users.php @@ -50,6 +50,21 @@ class User { $user = $this->_userInstance; $user->setDbType($type); } + + public function setEmail($email){ + $user = $this->_userInstance; + $user->setDbEmail($email); + } + + public function setSkype($skype){ + $user = $this->_userInstance; + $user->setDbSkypeContact($skype); + } + + public function setJabber($jabber){ + $user = $this->_userInstance; + $user->setDbJabberContact($jabber); + } public function getLogin(){ $user = $this->_userInstance; @@ -75,6 +90,22 @@ class User { $user = $this->_userInstance; return $user->getDbType(); } + + public function getEmail(){ + $user = $this->_userInstance; + return $user->getDbEmail(); + } + + public function getSkype(){ + $user = $this->_userInstance; + return $user->getDbSkypeContact(); + } + + public function getJabber(){ + $user = $this->_userInstance; + return $user->getDbJabberContact(); + + } public function save(){ $this->_userInstance->save(); @@ -132,7 +163,7 @@ class User { public static function getUserData($id){ global $CC_DBC; - $sql = "SELECT login, first_name, last_name, type, id" + $sql = "SELECT login, first_name, last_name, type, id, email, skype_contact, jabber_contact" ." FROM cc_subjs" ." WHERE id = $id"; diff --git a/application/views/scripts/dashboard/help.phtml b/application/views/scripts/dashboard/help.phtml new file mode 100644 index 000000000..8483a9580 --- /dev/null +++ b/application/views/scripts/dashboard/help.phtml @@ -0,0 +1,16 @@ + +
+

Welcome to Airtime!

+

Here's how you can get started using Airtime to automate your broadcasts:

+ +
    +
  1. Add your files to the library using the "Add Audio" button. You can drag and drop your files to this window too.
  2. +
  3. Create a show by going to "Schedule" in the menu bar, and then clicking the "+ Show" icon. This can be either a one-time or repeating show. Only admins can add shows.
  4. +
  5. Create a playlist in the Playlist Builder menu using your audio files.
  6. +
  7. Add the playlist to the show by going to your show in the Schedule calendar, right-clicking on it and selecting "Schedule."
  8. +
  9. Select your playlist and drag and drop it to the "Items in this show" area.
  10. +
+

Then you're good to go!
+For more detailed help, read the user manual

+
+ diff --git a/public/css/images/big_gray_logo.png b/public/css/images/big_gray_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..45982bd1a0ee0801441fdd822eee4a63c4729392 GIT binary patch literal 3153 zcmaJ@c|4R|8y;JhFe#F)nUsVY!(c-5*u$GKK9rC&#xy2oX=XHJLK~4R(IU$rZz>5* zC1uGHStqGb@n#FzW=zZ2ztLO0-}n1{edmwoocsP=*LC0Loa^~LPn?^pqk^2e90&wb zaCWkH2Z6*OqBTiILi8+Fz9c4^)EEx?86K3w3?`O_2iXKt0`O305|)5>$72J-k2c|V zfj|;aqUV0bezc1PjzWTAS1_>JptcnN-4$jb5+LCjSZEk2giN;xLur54wGgdW(uUg5 z?+`{XO8f7o_M_dPb`%;OY6^qzz`@PnP%|T#5yAwCL~e%~!;RpEaAQLw;~hpw3xu%+ z91i_4v_;iufrl;J?RWpEC5lkmK@0}f!qAY(WWtyT7==bKG%`0gU(ql&-XTKlpofzg z*svXB`sSYs_INsuMx-)`6f$&05gR}WWuUZ0o&LQA67`oXnf~LLL8^U3iTqA11U`UcQhJp;Y_A8uw)$G*&d}W;=_oH}Lnp82^@QC~C%Vdd-m+v`1ttt_V(w`pLce4mX(zyCnx9T=9ZS0 z78Dd@WMouURxU3u^YpJtiRelUcUKQl_+JC0Qg8X6Fv6& z>k=j+Pv&J2f5>+j)?hkgc_F<)BHQ^elZPd)U7D@PPZy#+UggzD^$*k@eJFD?Le@qr_E6wx*9D+Ax{drJv{8fNdJ^woAg%y zF03xQ(}wV()%-CdC6}KFWp=jae)VC_CH(7i)q0xatK`*@jFVt~t*z$_k2rd2eUVOg z=U)f9rOxxg#~eM^oZ-uEl6`a5wvm&tc4rvJw@K0}m%B=Bx-Wu*vlOmTY!`H-)F?x& zvu-vN>6ez~S#DeyUCZuc`aJs3AI#dhlN(ED6>~|HbwB_1rT6-E>A?eof}yCD!W+e;C223sU&}&5KQjyMN$)qW6I|XO|Stz zLnu}{M$0SrbY%``OO1vAJ5$0uu$^JN3#CS z4fN>(vIcv~YNkoCVv|tG;GklCZQje#oSp{hUaoZ32Lu{(*P#dMGr~!j$3>-pdoD|h z4XXz{R9q$qgPuMd>aZ@4xvCJnBoC=5`V5Nq{>0K+a-4NaQ?vBwPyuK-1xfpE7&V6JPml`bOg$(Wqi5}eq%*?ZH3bnJr5cgC^_2Pc! zjLlyosl>k?DRN_zR%IyXTh;4+0tw~VCl7nxDc_c}DqHT=o{~o4ndqvz5qgc&nSAw_ zLg9V0Nwz{qN}=2f9)~k*V!qa|rqT&aMJdDXO|%FIS$!MYC|A|bO-&Y;RQ*{;)naR` zs?_%lT`sPer~3nj>?_=skzv71_-qBMkNx)Q)^xeebyz5z0Y)Bm;u= z+&{fH7+066mj~))((_wlK}(FH%5AaGb39k)>A4Z-m7G5viaq*^cz(vU?dlpCT70J ziu2BMek~-#s_ZgvLAB^x4G|E?AcT((EE9cT)5fQVy?V#%No^XYg`5+XSBa^W{}x^$SZj|q2cwc)8;ic zCmyzsASmz4V>DtX?wBC+LXT9*-Qd^7$k8lQ5RI_67M` zpXWcxEs^|sqGKti&& zg@W5-wh0zWRiLWNCecU(R>fTo{Qa2d%K>*XTS_0k$+LO=VWTlFs$E6 zgn4^4)mVCP+Y(HHfIg}L0X&_D+o(kqPdm>RtHea|l$Wf@8cjJw=LdZe`((+x?#_IX zE*LMCl~gRl%(BurPimjXPPeBg)pfni2wiq literal 0 HcmV?d00001 diff --git a/public/css/images/progressbar_show_red.png b/public/css/images/progressbar_show_error.png similarity index 100% rename from public/css/images/progressbar_show_red.png rename to public/css/images/progressbar_show_error.png diff --git a/public/css/images/sf_arror.png b/public/css/images/sf_arror.png new file mode 100644 index 0000000000000000000000000000000000000000..706304a909ba187e62eb017a81a141172e917191 GIT binary patch literal 2833 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 literal 0 HcmV?d00001 diff --git a/public/css/styles.css b/public/css/styles.css index adf53ab77..ef101fea8 100644 --- a/public/css/styles.css +++ b/public/css/styles.css @@ -1347,6 +1347,68 @@ ul.errors li { #show_content_dialog .datatable { margin-top:8px; - - +} +.simple-formblock.metadata { + border:none; + width:100%; +} +#side_playlist .simple-formblock.metadata .input_text, #side_playlist .simple-formblock.metadata .input_text_area { + width:95%; +} +#side_playlist .simple-formblock.metadata.simple-formblock dd { + width:70%; +} +#side_playlist h3.plain { + float:none; + font-size:18px; + margin:2px 0 20px 0; +} + +.qtip { + font-size:11px; + line-height:160%; +} + +#schedule-show-who.scrolled { + margin-bottom: 0; + max-height:300px; + overflow:auto; +} +.text-content { + padding:20px 10px 40px 58px; + background: url(images/sf_arror.png) no-repeat 60% 0; + height:100%; +} +.text-content h2 { + font-size:2.4em; + color:#1f1f1f; +} +.text-content p { + font-size:1.6em; + line-height:140%; + color:#1f1f1f; + margin:0 0 1.4em 0; +} +.text-content a { + color:#f2f2f2; + text-decoration:none; +} +.text-content a:hover { + text-decoration:underline; +} + +.text-content ol { + margin:0 0 22px 25px; + padding:0; + list-style-position:outside; +} + +.text-content ol li { + margin:0 0 6px 0; + font-size:1.7em; + display:list-item; + color:#1f1f1f; +} +.gray-logo { + margin:5px 0 0 20px; } \ No newline at end of file diff --git a/public/js/airtime/user/user.js b/public/js/airtime/user/user.js index 969f9f9aa..4add2d4b1 100644 --- a/public/js/airtime/user/user.js +++ b/public/js/airtime/user/user.js @@ -8,6 +8,9 @@ function populateForm(entries){ $('#first_name').val(entries.first_name); $('#last_name').val(entries.last_name); $('#type').val(entries.type); + $('#email').val(entries.email); + $('#skype').val(entries.skype_contact); + $('#jabber').val(entries.jabber_contact); if (entries.id.length != 0){ $('#login').attr('readonly', 'readonly'); diff --git a/public/js/playlist/playlist.js b/public/js/playlist/playlist.js index fae37b183..b48f25a65 100644 --- a/public/js/playlist/playlist.js +++ b/public/js/playlist/playlist.js @@ -99,7 +99,7 @@ function updateProgressBarValue(){ } } else { $('#on-air-info').attr("class", "on-air-info off"); - $('#progress-show').attr("class", "progress-show-red"); + $('#progress-show').attr("class", "progress-show-error"); } $('#progress-bar').attr("style", "width:"+songPercentDone+"%");