From 1500934477c119403d1ad6f5f90fecbdfa566905 Mon Sep 17 00:00:00 2001 From: Kelli Shaver <kelli@kellishaver.com> Date: Fri, 20 Apr 2012 16:09:30 -0400 Subject: [PATCH] cleaning up category view, and faq list view in SCP --- include/staff/kb-categories.inc.php | 98 ++++++++++++------------- include/staff/kb-category.inc.php | 18 ++--- scp/css/scp.css | 109 +++++++++++++++++++++++++--- scp/images/kb_category_bg.png | Bin 0 -> 937 bytes scp/images/kb_large_folder.png | Bin 0 -> 2527 bytes 5 files changed, 151 insertions(+), 74 deletions(-) create mode 100644 scp/images/kb_category_bg.png create mode 100644 scp/images/kb_large_folder.png diff --git a/include/staff/kb-categories.inc.php b/include/staff/kb-categories.inc.php index 0ab8b03fc..eb673a735 100644 --- a/include/staff/kb-categories.inc.php +++ b/include/staff/kb-categories.inc.php @@ -3,59 +3,51 @@ if(!defined('OSTSTAFFINC') || !$thisstaff) die('Access Denied'); ?> <h2>Frequently Asked Questions</h2> -<form id="kbSearch" action="kb.php" method="get" style="padding-top:15px;"> +<form id="kbSearch" action="kb.php" method="get"> <input type="hidden" name="a" value="search"> - <table border="0" cellspacing="0" cellpadding="3"> - <tr> - <td width="440"> - <input id="query" type="text" size="20" name="q" value="<?php echo Format::htmlchars($_REQUEST['q']); ?>"> - <select name="cid"> - <option value="">— All Categories —</option> - <?php - $sql='SELECT category_id, name, count(faq.category_id) as faqs ' - .' FROM '.FAQ_CATEGORY_TABLE.' cat ' - .' LEFT JOIN '.FAQ_TABLE.' faq USING(category_id) ' - .' GROUP BY cat.category_id ' - .' HAVING faqs>0 ' - .' ORDER BY cat.name DESC '; - if(($res=db_query($sql)) && db_num_rows($res)) { - while($row=db_fetch_array($res)) - echo sprintf('<option value="%d" %s>%s (%d)</option>', - $row['category_id'], - ($_REQUEST['cid'] && $row['category_id']==$_REQUEST['cid']?'selected="selected"':''), - $row['name'], - $row['faqs']); - } - ?> - </select> - </td> - <td width="100" rowspan="2"> - <input id="searchSubmit" type="submit" value="Search"> - </td> - </tr> - <tr> - <td width="400"> - <select name="topicId" style="width:350px;"> - <option value="">— All Help Topics —</option> - <?php - $sql='SELECT ht.topic_id, ht.topic, count(faq.topic_id) as faqs ' - .' FROM '.TOPIC_TABLE.' ht ' - .' LEFT JOIN '.FAQ_TOPIC_TABLE.' faq USING(topic_id) ' - .' GROUP BY ht.topic_id ' - .' HAVING faqs>0 ' - .' ORDER BY ht.topic DESC '; - if(($res=db_query($sql)) && db_num_rows($res)) { - while($row=db_fetch_array($res)) - echo sprintf('<option value="%d" %s>%s (%d)</option>', - $row['topic_id'], - ($_REQUEST['topicId'] && $row['topic_id']==$_REQUEST['cid']?'selected="selected"':''), - $row['topic'], $row['faqs']); - } - ?> - </select> - </td> - </tr> - </table> + <div> + <input id="query" type="text" size="20" name="q" value="<?php echo Format::htmlchars($_REQUEST['q']); ?>"> + <select name="cid" id="cid"> + <option value="">— All Categories —</option> + <?php + $sql='SELECT category_id, name, count(faq.category_id) as faqs ' + .' FROM '.FAQ_CATEGORY_TABLE.' cat ' + .' LEFT JOIN '.FAQ_TABLE.' faq USING(category_id) ' + .' GROUP BY cat.category_id ' + .' HAVING faqs>0 ' + .' ORDER BY cat.name DESC '; + if(($res=db_query($sql)) && db_num_rows($res)) { + while($row=db_fetch_array($res)) + echo sprintf('<option value="%d" %s>%s (%d)</option>', + $row['category_id'], + ($_REQUEST['cid'] && $row['category_id']==$_REQUEST['cid']?'selected="selected"':''), + $row['name'], + $row['faqs']); + } + ?> + </select> + <input id="searchSubmit" type="submit" value="Search"> + </div> + <div> + <select name="topicId" style="width:350px;" id="topic-id"> + <option value="">— All Help Topics —</option> + <?php + $sql='SELECT ht.topic_id, ht.topic, count(faq.topic_id) as faqs ' + .' FROM '.TOPIC_TABLE.' ht ' + .' LEFT JOIN '.FAQ_TOPIC_TABLE.' faq USING(topic_id) ' + .' GROUP BY ht.topic_id ' + .' HAVING faqs>0 ' + .' ORDER BY ht.topic DESC '; + if(($res=db_query($sql)) && db_num_rows($res)) { + while($row=db_fetch_array($res)) + echo sprintf('<option value="%d" %s>%s (%d)</option>', + $row['topic_id'], + ($_REQUEST['topicId'] && $row['topic_id']==$_REQUEST['cid']?'selected="selected"':''), + $row['topic'], $row['faqs']); + } + ?> + </select> + </div> </form> <hr> <div> @@ -96,7 +88,7 @@ if($_REQUEST['q'] || $_REQUEST['cid'] || $_REQUEST['topicId']) { //Search. echo '<div>Click on the category to browse FAQs.</div> <ul id="kb">'; while($row=db_fetch_array($res)) { - + echo sprintf(' <li> <h4><a href="kb.php?cid=%d">%s (%d)</a> - <span>%s</span></h4> diff --git a/include/staff/kb-category.inc.php b/include/staff/kb-category.inc.php index 619aa6205..e7013192e 100644 --- a/include/staff/kb-category.inc.php +++ b/include/staff/kb-category.inc.php @@ -11,23 +11,23 @@ if(!defined('OSTSTAFFINC') || !$category || !$thisstaff) die('Access Denied'); <div> <strong><?php echo $category->getName() ?></strong> <span>(<?php echo $category->isPublic()?'Public':'Internal'; ?>)</span> - <br> - <div class="faded"> Last updated <?php echo Format::db_daydatetime($category->getUpdateDate()); ?></div> + <time>Last updated <?php echo Format::db_daydatetime($category->getUpdateDate()); ?></time> </div> -<p> +<div class="cat-desc"> <?php echo Format::safe_html($category->getDescription()); ?> -</p> +</div> <?php if($thisstaff->canManageFAQ()) { - echo sprintf('<a href="categories.php?id=%d" class="Icon editCategory">Edit Category</a> - | <a href="categories.php" class="Icon deleteCategory">Delete Category</a> - | <a href="faq.php?cid=%d&a=add" class="Icon newFAQ">Add New FAQ</a>', + echo sprintf('<div class="cat-manage-bar"><a href="categories.php?id=%d" class="Icon editCategory">Edit Category</a> + <a href="categories.php" class="Icon deleteCategory">Delete Category</a> + <a href="faq.php?cid=%d&a=add" class="Icon newFAQ">Add New FAQ</a></div>', $category->getId(), $category->getId()); -} +} else { ?> <hr> <?php +} $sql='SELECT faq.faq_id, question, ispublished, count(attach.file_id) as attachments ' .' FROM '.FAQ_TABLE.' faq ' @@ -39,7 +39,7 @@ if(($res=db_query($sql)) && db_num_rows($res)) { <ol>'; while($row=db_fetch_array($res)) { echo sprintf(' - <li><a href="faq.php?id=%d" class="previewfaq">%s</a> - <span>%s</span></li>', + <li><a href="faq.php?id=%d" class="previewfaq">%s <span>- %s</span></a></li>', $row['faq_id'],$row['question'],$row['ispublished']?'Published':'Internal'); } echo ' </ol> diff --git a/scp/css/scp.css b/scp/css/scp.css index 90fd975fd..133c12965 100644 --- a/scp/css/scp.css +++ b/scp/css/scp.css @@ -1020,34 +1020,84 @@ h2 .reload { line-height:24px; } +/* Knowledgebase */ /* Knowledgebase */ #kb { margin: 2px 0; - padding: 0; + padding: 5px; overflow: hidden; } -#kb > li { - margin: 0 0 5px 0; - padding: 0 10px; - width: auto; - float: left; - clear: both; +#kb li { + padding:10px 10px 10px 46px; + height:auto !important; + overflow:hidden; + margin:0; + background-image:url(../images/kb_large_folder.png), url(../images/kb_category_bg.png); + background-position:0 50%, bottom left; + background-repeat:no-repeat, repeat-x; + border-bottom:1px solid #ddd; } -#kb > li h4 { + +#kb li h4 { padding-bottom:3px; - margin-bottom:3px; + margin:0 0 3px 0; } -#kb > li h4 span { +#kb li h4 span { color:#666; + font-weight:normal; } -#kb > li h4 a { +#kb li h4 a { font-size: 14px; } +#kbSearch { + padding:10px 0; + overflow:hidden; +} + +#kbSearch div { + clear:both; + overflow:hidden; + padding-top:5px; +} + +#kbSearch #query { + margin:0; + display:inline-block; + float:left; + width:200px; + margin-right:5px; +} + +#kbSearch #cid { + margin:0; + display:inline-block; + float:left; + width:200px; + margin-right:5px; + position:relative; + top:2px; +} + +#kbSearch #topic-id { + margin:0; + display:inline-block; + float:left; + width:410px; +} + +#kbSearch #searchSubmit { + margin:0; + display:inline-block; + float:left; + position:relative; + top:2px; +} + #faq { clear: both; margin: 0; @@ -1060,13 +1110,48 @@ h2 .reload { } #faq ol li { list-style: none; - margin: 0 0 10px 0; + margin: 0; + padding:5px 0; color: #999; + border-bottom:1px solid #ddd; } + #faq ol li a { display: inline; height: 16px; + font-size:13px; line-height: 16px; padding-left: 24px; background: url('../images/icons/page.png') 0 50% no-repeat; } + +#faq ol li a span { + font-weight:normal; + color:#777; +} + +#faq ol li:hover { + background-color:#e9f5ff; +} + +time { + display:inline-block; + float:right; + color:#777; +} + +.cat-desc { + padding-top:5px; + padding-bottom:25px; +} + +.cat-manage-bar { + background:#e3f5ff; + padding:5px; + border-bottom:1px solid #777; +} + +.cat-manage-bar a { + display:inline-block; + margin-right:20px; +} \ No newline at end of file diff --git a/scp/images/kb_category_bg.png b/scp/images/kb_category_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..174d675f4c491060a413232bdef7e0e9298df60e GIT binary patch literal 937 zcmaJ=O^?z*8162Y&Bndx!DwPKcCXSeptKE@6b4)pOAs*P#aP+_8n&G}9i(tHUib;# z_7@mAc=F(36Ql7T_$R!2Tc>=j2i7LjnRoI$&-=_f?<`u)Cnv}Ek2#JzX`I0}n-ADf zj}F;?ape7E(>+@2(GDKasY4KFdAN^2BXEYOjT~?G<_9WqT!#0%J=(LM8ZHh5C&dU! z5HU8#mC8xvxMM^?9}WG`<bQwp$^+js`4<ISvZE>*`Db&2I`d}NosV7J<I9ghDKVHp zfT#nK;5>|t#N=1H23x1wA`ey&IyU*Wsh-^eRZI{l2vXLSR0*iEAm{SMV(}4BBv}$A zMU<7STr_fuAxU8K@hlth21Xm!H@R43@*_$kLlmdesW8n6m<&Z(*Y#9GQL+q?jb|Zs zl57~CZWSPkUE)X7$00}+oj#sWlV?uXM+l;wY#49K#0n-RP9(~LlpbjdwC(>xgJ6e_ zX&YVp-76e-XAu(HD8>`wvWpv>rl}&MN{~Y_>0*4otzv70DUL@t0@Y3d*pBOmX}rSQ zw$TV<>Vz(8K$B+*g713<RH0_&b5$*;RAsp)TXG#jShp$_O;ZbUeanT|odhVPTdsG_ zg*S53RtO@N86x7pMP8lY0IZH|_<OuqimvCidO=fa%6>0vuD8d_hO6Gl6`2_^z1V*) zdb`ECCtdE^mIb@UM<MHW!rJ=ot7jwjBpx)N)lGi&|6E;_?_@HU7vH{z@0ZKP!{x!@ ZE$;cn?U$b}KYUIfPovg^A1kll{RKO=A^!jX literal 0 HcmV?d00001 diff --git a/scp/images/kb_large_folder.png b/scp/images/kb_large_folder.png new file mode 100644 index 0000000000000000000000000000000000000000..144fa828a3fc83613dd7a5b29368b6da290fd09d GIT binary patch literal 2527 zcmaJ@XIN9&77b;16eElRQUqcsG9oGT1Q;nPfC*rTN|%saAV3mG0-;xllqUiX3OFDg zq$+KcDuOZ$WoSwr8I%D9L7cIJ@`5AI`|*7D`|dqwpKq<T_t|^>xG9eIc(A0BBnSio z+uC4Af)%p!ii-)poQQ~*f<=*wb>=#;e7HOc8vt3-Sl$4{mO=3aNC1Tv9^4O@fj}Zq zI@y`)OeCPGEC!6SgMo!Hf&^?3$n02H5QQ25a3S7+FP&))ecsjuh0tl{(9?!Q1Tn}O z@T1#AumPtCdond5fQq6)k9`j@3quP87yy?731b8@Ip{ER=qFvYV83$=heAF<xB=$S zzl(AvIzp^jYye^iL+DZwMhJ)z5{A?_Fg7+m3eiI#5paYa9I2;^G)C*|p%Dnk=Lagt z#-{n8Nf_McT!P3P>c`~<q2X{Ij|b!F!&q!zI1+_I?P%!f=?W0KoNy+W5~j=KsP8IZ z01lN+58~2UOvsKR#hVqvHHQi+{rd`xpf9pa&gV7>8U_!e1i_Io#Lks=fkfi}hcXyn z&>Sua_^00gDa;{<2LW&rz+r{3se-}zsPCi-LR+%|3YWzuvsi(<U3BzgaakNcRuIJ6 z$q+)MQ0dH__!FK;MB6esTndv4*ka6~0tFbIPD5jiFea7;1_%><J!>Qqi?l@IFc=KZ z(#p!j#K;hd+vQ?d)DQ;1<nD55|8S9C<?dL45hTcr0oe3VfQDnU7?4j_M$^Aqi$3<N zdY`$puhycE`zjYMC<eYW*#8>z?vcPfJKHa|6$D?54=@F8XA5j?#sXe|Kw?g|7)x^4 z%;M?ef#j14ABQ`5OkebcmT~)Yo$>OncdSZl5J~_=b|Ohat2MJBE8F|uItQLu?NhdT zWapj?o4AR1#4pV8^G;4x3YQi6(=Yz}iu^Z^hoe=uIi};`+?m4e>l<3Jk?S4H1>2_c z+uQT8{NUji5V(Z&ThcFy>iG0H<Wf4g#{!{%NgfO~5yca>%HAX(kpm43QLFgh8cMaN z3G4VCqgxub8Gh-u^A+QCza-(_#+87msCHyrWV_WR`g-U=U+IgbeY37TZRnEx1NCRR zURXnOx26n+s#US0nlAjl$CfvmiXy$eYSTjJDwOY0e;+RJ>Dta*fB5jDpDzY1YE5_* z;ewEz8#TQiJaBdYe)!PfU{sEsmczxruF|ma1dD^-lB=K-5Bkq1w$>d}+tX~;L=QrY z-EX#(Y;Nvvc`VcM-CTZt4=GAQeYS<N+++G-ZH=<MxVY$MT=(JC;MUxni_^)j!a|Qi z@YJ)b!i5)FZ$55+J@K$ZouRU(_sza(chx3S+Mg&IHVUj#4p0xtTNh>EZ<fjR^z=Mg zU!O+mNAp&*Q*<`LwPAXhgm!g!eF{$QCt(XERM?%0DQfPIVkq9Z>1l~+gs#tMo9vp2 z14vtT-MxPDoLp*3W-)GFCN6<e<T&AIFt{}8QKAecMqcUsFw;;ousG*(S!mXvAUb3_ zW4SFLcn<wW=U^Bzd{wJ;Gh)upQTrOk8<h_3@XMfYXsgOL3HvNBW!RL<s2gc3etX8X zw=TcrNiwFeYGr>eVJWMUAEJn0Fr#7)rN3R%^iu?X7(GRBa7Y~KnOqDRIIi&nae;hN zI(Wt65J*+2qS0k==vVdQ3&DZ^Dk#^IJT8=<pD!NDM5!u9zkEyD>rg(dcC5{Fuk*|! zk408NVs@J4iW2UUyl1LzaaoB7pKhTooVcgimYpwU6ga#3piNon>V<X20q&^Y=;U~! z*TwjCV$4yG;n<|^%d_;nhca==W!NTHKHtw^WsGQe{#w7=)Nk`?#hx0=gL3jbSYtOP z=@x1sWcl)U@-FpH(OVj{Q5(}b&jO8+j+pnSKsgNUyG_~w>#AoDH>li5O8TR>SmR1w zUa@HWss;Jt&ze;-#-fir5#K`aj0J>?sjI7-yH;NR!8`<FL|Q)@KOtmOxo8*}54xRW z=W2YmSk?-fiGf}1+ZsH&FAZ5KYT=#b+y~sl?-l+CLP;lMboxyW^J#CNhP$~bh$R*C zyg;cq<zLDq8Z~QkMdlW=AS0Ke9MLW6s$Js1BFL&L!Ra(G7IOmI8LL@2_H$asnBt1c zvk%7h1X(*ugQm;-CgC_!X4efu)z*?{VF<>ow<uaUV-$51pW~Hkk%}B@e%hfR)hzd% z(YZCea3^Q8t0Bhm=o|O!sf7zt960%KQSVcAe<Lm)z-^b9TSmRsm&h0%v9VXQ)9Wf9 zYsd@spq9$G{Zy?0d2Z0(R729@7#Qo=+*6snB^7u7op-k7{p;MrGrZaj6Z=0J-L*ut z2Gq#N+b&5$h1K;UccHvr#jL&=fE`J%8r`_RS?g0Hv_UwMZ-#Dp<$Q7<N&H|9Nc>!M z@{n6ohNzpUd$LURLwG$v0f#CH8Sg2=KHHo*Qn)6SU*d|@n6Xc}n<7+F${e0aYka?4 z1Jm@6ms081$l^bH(N3y9D{OI1vUT&0Mt6A|em3+-uxEB))cwW?#~PoON`>Pue^AEv z@#O=ga!j)}v_lE53GS!x`<p#RB~IVXEuyTz6BnwF6zv%+7oC)HsjFOB5bN+lNo*Rk zibMTxDe5RJgs#ED6Hi#LtnQPo^O=J7ksedk=j*Z_dEKtw%X)dMAushn<xrJQg+jO0 z`4<h{hU+c-R+Ol_na-6WWkeeG#`<A!q$S$vIzPeUki&lP_)yH{c-#{CN4BR>?`q8+ z++rrS&v<;KmM0zf{oKt1GTRj~lTYU^m)ScPN)G};(05hoZB1EYa(8rmV^5U{1p;{{ z>e{J<a(DmI>{{BWbzclhZB1D`*YWvgz1o#w#Ryo^xLQZ&^BLCsTq$0vX@Q&@uSM~- z??k<RITd;4<LP7Fq%<dAyWzi}%hifg7Fv5H{ZBeCZoX|hVbXXvvz`l2e=uS5u3hT) f*zMJ~EFm!v+9DqF+TUq$=a<VCYmce3@=Ev*VlFMW literal 0 HcmV?d00001 -- GitLab