Design hacked in

This commit is contained in:
sebastian 2005-03-20 19:19:25 +00:00
parent 1f43527041
commit 2d5aea7f05
67 changed files with 1520 additions and 376 deletions

View file

@ -10,19 +10,7 @@ $ui_fmask = array(
array( array(
'element' => 'basics', 'element' => 'basics',
'type' => 'header', 'type' => 'header',
'label' => 'Basic Settings', 'label' => 'Station Settings',
),
array(
'element' => 'stationMaxfilesize',
'isPref' => TRUE,
'type' => 'text',
'label' => 'Reduce Upload Filesize<br><small>(must be smaller than ' .ini_get('upload_max_filesize').')</small>',
'rule' => 'numeric',
'attributes' => array(
'onClick' => 'alert ("Note: System Maximum is set to '.
ini_get('upload_max_filesize')
.' in php.ini\n You can just reduce this amount here.")'
)
), ),
array( array(
'rule' => 'nopunctuation', 'rule' => 'nopunctuation',
@ -70,6 +58,18 @@ $ui_fmask = array(
'format' => UI_REGEX_URL, 'format' => UI_REGEX_URL,
'rulemsg' => 'URL seems not to be valid' 'rulemsg' => 'URL seems not to be valid'
), ),
array(
'element' => 'stationlogo',
'type' => 'file',
'label' => 'Station Logo',
'requiredmsg'=> 'please select Logo file',
'attributes'=> array('multiple' => 'application/pdf')
),
array(
'element' => 'systemsettings',
'type' => 'header',
'label' => 'System Settings'
),
array( array(
'element' => UI_SCRATCHPAD_MAXLENGTH_KEY, 'element' => UI_SCRATCHPAD_MAXLENGTH_KEY,
'isPref' => TRUE, 'isPref' => TRUE,
@ -82,16 +82,16 @@ $ui_fmask = array(
) )
), ),
array( array(
'element' => 'upload', 'element' => 'stationMaxfilesize',
'type' => 'header', 'isPref' => TRUE,
'label' => 'Upload' 'type' => 'text',
), 'label' => 'Reduce Upload Filesize<br><small>(must be smaller than ' .ini_get('upload_max_filesize').')</small>',
array( 'rule' => 'numeric',
'element' => 'stationlogo', 'attributes' => array(
'type' => 'file', 'onClick' => 'alert ("Note: System Maximum is set to '.
'label' => 'Station Logo', ini_get('upload_max_filesize')
'requiredmsg'=> 'please select Logo file', .' in php.ini\n You can just reduce this amount here.")'
'attributes'=> array('multiple' => 'application/pdf') )
), ),
array( array(
'element' =>'Submit', 'element' =>'Submit',
@ -473,16 +473,20 @@ $ui_fmask = array(
'element' => 'category', 'element' => 'category',
'type' => 'select', 'type' => 'select',
'label' => 'Category', 'label' => 'Category',
'attributes'=> array('onChange' => 'this.form.act.value="BROWSE.setCategory"; this.form.submit()') 'attributes'=> array(
'onChange' => 'this.form.act.value="BROWSE.setCategory"; this.form.submit()',
'style' => 'width: 180px;',
'id' => 'category_1'
)
), ),
'value' => array( 'value' => array(
'element' => 'value', 'element' => 'value',
'type' => 'select', 'type' => 'select',
'multiple' => TRUE, 'multiple' => TRUE,
'attributes'=> array( 'attributes'=> array(
'size' => 10, 'size' => 10,
'STYLE' => 'width: 220px', 'class' => 'area_browse',
'onChange' => 'this.form.act.value="BROWSE.setValue"; this.form.submit()' 'onChange' => 'this.form.act.value="BROWSE.setValue"; this.form.submit()'
) )
) )
), ),
@ -524,6 +528,11 @@ $ui_fmask = array(
'type' => 'hidden', 'type' => 'hidden',
'constant' => 'SEARCH.simpleSearch' 'constant' => 'SEARCH.simpleSearch'
), ),
array(
'element' => 'simplesearch',
'type' => 'header',
'label' => 'Library Search',
),
array( array(
'element' => 'criterium', 'element' => 'criterium',
'type' => 'text', 'type' => 'text',

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 549 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 278 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 351 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 679 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 749 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 688 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 618 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 688 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 375 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 445 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 447 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 351 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 351 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 454 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 447 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 407 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 411 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 341 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 341 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View file

@ -0,0 +1,726 @@
body { font-size: 12px;
font-family: Arial, Verdana, Helvetica, sans-serif;
font-size: 12px;
color: #2C2C2C;
margin: 0px;
background: #FFF url("css_img/bg_head.gif") no-repeat;
}
img { font-size: 12px;
border: none;
}
form { font-size: 12px;
margin: 15px 0 15px 0;
}
.clearer { font-size: 12px;
clear: both;
height: 0;
line-height: 0;
font-size: 0;
}
.container { font-size: 12px;
width: 100%;
}
.button { font-size: 12px;
font-weight: bold;
color: #666;
background-color: #F7F9FB;
padding: 0 25px 0 25px;
cursor: pointer;
width: 100px;
}
.button_large { font-size: 12px;
font-weight: bold;
color: #666;
background-color: #F7F9FB;
padding: 0 25px 0 25px;
cursor: pointer;
width: 150px;
}
.button_small { font-size: 12px;
font-weight: bold;
color: #666;
background-color: #F7F9FB;
cursor: pointer;
width: 34px;
}
input, select { font-size: 12px;
font-family: Arial, Verdana, Helvetica, sans-serif;
font-size: 12px;
border-top: 1px solid #C7CCCC;
border-left: 1px solid #C7CCCC;
border-bottom: 1px solid #A4A9A9;
border-right: 1px solid #A4A9A9;
}
.checkbox { font-size: 12px;
border: none;
}
.input { font-size: 12px;
height: 16px;
}
.input[class] { font-size: 12px;
height: 15px;
}
/*######################### HEADER ########################### */
.headLeft { font-size: 12px;
margin: 26px 16px 0 10px;
float: left;
width: 169px;
}
.headLeft[class] { font-size: 12px;
margin-left: 22px;
}
.headLeft .container { font-size: 12px;
margin-left: 10px;
}
.loginname { font-size: 12px;
margin: 15px 0 8px 0;
font-weight: bold;
}
.headRight { font-size: 12px;
float: left;
margin-top: 10px;
height: 115px;
}
.station { font-size: 12px;
margin: 30px 30px 0 30px;
float: left;
}
.frequence { font-size: 12px;
margin: 15px 0 8px 0;
}
.onair { font-size: 12px;
float: left;
margin: 24px 30px 0 0;
}
.onair img { font-size: 12px;
display: block;
margin-top: 10px;
}
/* ************* station time **************** */
.stationtime { font-size: 12px;
margin: 34px 30px 0 0;
float: left;
font-weight: bold;
color: #666;
}
.stationtime { font-size: 12px;
text-transform: uppercase;
}
.stationtime h1 { font-size: 12px;
font-size: 12px;
margin: 0;
text-transform: none;
}
.stationtime .clock { font-size: 12px;
font-size: 22px;
float: left;
margin: 0;
}
.stationtime .timezone { font-size: 12px;
float: left;
margin: 9px 0 0 15px;
}
/* *************** what playing ****************** */
.whatplaying { font-size: 12px;
float: left;
border: 1px solid #CCC;
background-color: #F9FAFB;
margin-top: 13px;
padding: 10px 8px;
width: 250px;
}
.whatplaying .nowplaying { font-size: 12px;
font-weight: bold;
font-size: 15px;
}
.whatplaying .scala { font-size: 12px;
width: 250px;
height: 8px;
margin-top: 5px;
background-color: #DADADA;
border-top: 1px solid #B5B5B5;
border-left: 1px solid #B5B5B5;
border-bottom: 1px solid #6F6F6F;
border-right: 1px solid #6F6F6F;
}
.whatplaying .scala .scala_in { font-size: 12px;
background: #DADADA url("css_img/bg_scala_in.gif") repeat-x top left;
font-size:1px;
height: 8px;
}
.whatplaying .time { font-size: 12px;
width: 250px;
font-size: 11px;
}
.whatplaying .time .left { font-size: 12px;
float: left;
width: 125px;
}
.whatplaying .time .right { font-size: 12px;
width: 125px;
float: left;
text-align: right;
}
.whatplaying p { font-size: 12px;
font-size: 11px;
font-weight: bold;
margin: 10px 0 0 0;
}
/* #################################### NAVIGATION ############################### */
.container_nav { font-size: 12px;
height: 26px;
clear: both;
background: url("css_img/bg_navigation.gif") repeat-x top left;
margin-bottom: 38px;
}
.container_nav[class] { font-size: 12px;
padding-left: 10px;
margin-bottom: 50px;
}
#nav, #nav ul { font-size: 12px;
float: left;
width: auto;
list-style: none;
line-height: 24px;
padding: 0;
margin: 2px 0 0 15px;
display: block;
}
#nav a { font-size: 12px;
display: block;
color: #666;
text-decoration: none;
padding-right: 40px;
}
#nav li { font-size: 12px;
float: left;
padding: 0;
}
#nav li ul { font-size: 12px;
display: block;
position: absolute;
left: -999px;
width: 120px;
font-weight: normal;
margin: 0;
z-index: 1;
}
#nav li ul li { font-size: 12px;
clear: both;
margin: 0;
}
#nav li ul a { font-size: 12px;
width: 100px;
line-height: 25px;
background: #eee;
padding-left : 5px;
border-top: 0px solid #ACB3BA;
border-left: 1px solid #ACB3BA;
border-bottom: 1px solid #ACB3BA;
border-right: 1px solid #ACB3BA;
}
#nav a:hover { font-size: 12px;
color: #000;
}
#nav li li a:hover { font-size: 12px;
background: #D6E3EF;
}
#nav li:hover ul , #nav li:hover ul, #nav li.sfhover ul , #nav li.sfhover ul { font-size: 12px;
left: -999em;
}
#nav li:hover ul, #nav li li:hover ul, #nav li li li:hover ul, #nav li.sfhover ul, #nav li li.sfhover ul, #nav li li li.sfhover ul { font-size: 12px;
left: auto;
}
#tabnav {
position: absolute;
top: 175px;
left: 20px;
z-index: 1;
}
#tabnav ul {
width: auto;
list-style: none;
padding: 0;
display: block;
}
#tabnav a {
background: url("css_img/bt_tab_off.gif");
display: block;
color: #666;
font-size: 11px;
font-weight: bold;
text-decoration: none;
width: 99px;
margin-right: 10px;
text-align: center;
}
#tabnav a:hover {
background: url("css_img/bt_tab_on.gif");
color: #FFF;
}
#tabnav a.active {
background: url("css_img/bt_tab_on.gif");
color: #FFF;
}
#tabnav li {
padding: 0;
float: left;
}
/* #################################### CONTENTAREA ############################### */
.content { font-size: 12px;
margin: 19px;
margin-top: 0;
float: left;
}
.container_elements { font-size: 12px;
border: 1px solid #cfcfcf;
padding: 6px;
margin-bottom: 21px;
}
.container_elements h1 { font-size: 12px;
font-size: 18px;
margin: 0 0 4px 0;
color: #666;
}
.head { font-size: 12px;
background-color: #5286ba;
font-weight: bold;
color: #FFF;
}
.head .left { font-size: 12px;
padding: 5px 0 3px 10px;
float: left;
width: 330px;
}
.head .right { font-size: 12px;
padding: 5px 10px 3px 0;
float: left;
text-align: right;
width: 224px;
}
.container_table { font-size: 12px;
height: 275px;
overflow: auto;
}
table { font-size: 12px;
border-collapse: collapse;
}
table td { font-size: 12px;
padding: 0 6px 0 12px;
border-right: 1px solid #333;
height: 19px;
vertical-align: top;
}
table tr.blue_head td { font-size: 12px;
background-color: #8baed1;
color: #FFF;
font-weight: bold;
}
A#blue_head { font-size: 12px;
color:#fff;
}
table tr.blue1 td { font-size: 12px;
color: #000;
background-color: #d5e2ee;
}
table tr.blue2 td { font-size: 12px;
color: #000;
background-color: #f5f5f5;
}
table tr.red td { font-size: 12px;
background-color: #FBAAAA;
}
.footer { font-size: 12px;
padding: 4px 5px 5px 0;
background-color: #8baed1;
text-align: right;
margin-bottom: 8px;
}
.container_button { font-size: 12px;
margin-top: 4px;
}
.container_search {
margin-bottom: 4px;
}
.comment { font-size: 12px;
float: left;
font-size: 10px;
margin: 5px 0 0 10px;
}
.select_width_comment { font-size: 12px;
float:left;
margin-left: 3px;
}
.select_width_comment[class] { font-size: 12px;
margin-left: 0;
}
.tablebottom { font-size: 12px;
float: left;
margin-left: 0px;
background-color: #8baed1;
}
.counter { font-size: 12px;
float: left;
margin-left: 7px;
font-weight: bold;
background-color: #8baed1;
}
.counter[class] { font-size: 12px;
margin-left: 15px;
}
.container_browse {
width: 170px;
float: left;
margin: 0px 0px 10px 0px;
}
.area_browse {
width: 174px;
height: 100px;
}
.area_browse[class] {
width: 180px;
}
.comment_browse {
font-size: 10px;
}
.container_button_upload { font-size: 12px;
margin: 20px 0 0 204px;
}
.container_button_upload[class] { font-size: 12px;
margin-left: 200px;
}
label { font-size: 12px;
display: block;
float: left;
width: 200px;
}
/* ############################################# scheduler ################################# */
.container_calender_overview { font-size: 12px;
width: 235px;
}
.container_calender_overview p { font-size: 12px;
font-size: 10px;
margin-top: 0;
float: right;
}
.month_year { font-size: 12px;
border: 1px solid #cdcdcd;
border-bottom: none;
padding: 5px 20px;
float: right;
}
.calender_overview { font-size: 12px;
border: 1px solid #cdcdcd;
}
table.calender_overview_table { font-size: 12px;
width: 100%;
margin-bottom: 5px;
}
table.calender_overview_table th { font-size: 12px;
background-color: #5286ba;
color: #FFF;
}
table.calender_overview_table td { font-size: 12px;
border: 0;
text-align: center;
padding: 5px 5px 0 5px;
}
table.calender_overview_table td.full { font-size: 12px;
font-weight: bold
}
table.calender_overview_table th.week { font-size: 12px;
border-right: 1px solid #FFF;
}
table.calender_overview_table td.week { font-size: 12px;
border-right: 1px solid #cdcdcd;
}
table.calender_overview_table a.active { font-size: 12px;
color: #FFF;
font-weight: bold;
background-color: #5286ba;
padding: 1px 0;
width: 100%;
display: block;
}
table.calender_overview_table a { font-size: 12px;
text-decoration: none;
color: #000;
}
table.calender_overview_table a.not_this_month { font-size: 12px;
color: #999;
}
.head_scheduler { font-size: 12px;
float: left;
width: 50%;
}
.container_button_scheduler { font-size: 12px;
float: left;
width: 50%;
text-align: right;
margin-top: 5px;
}
table.scheduler_day td { font-size: 12px;
border-bottom: 1px solid #ccc;
padding-top: 2px;
}
table.scheduler_week { font-size: 12px;
width: 790px;
border: 1px solid #7392A6;
}
table.scheduler_week th { font-size: 12px;
background-color: #8baed1;
color: #FFF;
font-weight: bold;
text-align: left;
}
table.scheduler_week th.firstrow { font-size: 12px;
width: 34px;
}
table.scheduler_week th.date { font-size: 12px;
width: 22px;
border-left: 1px solid #7392A6;
}
table.scheduler_week th.day { font-size: 12px;
width: 86px;
}
table.scheduler_week td.firstrow_secondcol { font-size: 12px;
background-color: #CFDEE7;
border: none;
border-bottom: 1px solid #757575;
padding: 0;
}
table.scheduler_week td.date_secondcol { font-size: 12px;
background-color: #CFDEE7;
border: none;
border-left: 1px solid #7392A6;
border-bottom: 1px solid #757575;
padding: 2px;
font-weight: bold;
}
table.scheduler_week td.day_secondcol { font-size: 12px;
background-color: #CFDEE7;
border: none;
border-bottom: 1px solid #757575;
padding: 0;
padding-left: 2px;
}
table.scheduler_week td.firstrow { font-size: 12px;
border: none;
border-bottom: 1px solid #7392A6;
padding: 2px;
font-weight: bold;
}
table.scheduler_week td.date { font-size: 12px;
border: none;
border-left: 1px solid #7392A6;
border-bottom: 1px solid #7392A6;
padding: 0;
background-color: #D0D0D0;
}
table.scheduler_week td.date_full { font-size: 12px;
border: none;
border-left: 1px solid #7392A6;
border-bottom: 1px solid #7392A6;
padding: 0;
background-color: #97BACF;
}
table.scheduler_week td.date_locked { font-size: 12px;
border: none;
border-left: 1px solid #7392A6;
border-bottom: 1px solid #7392A6;
background-color: #FFCACB;
text-align: center;
padding: 0;
padding-top: 3px;
}
table.scheduler_week td.day { font-size: 12px;
border: none;
border-bottom: 1px solid #7392A6;
padding: 0;
background-color: #EAEAEA;
}
table.scheduler_week td.day_full { font-size: 12px;
border: none;
border-bottom: 1px solid #7392A6;
padding: 2px;
background-color: #E7ECEF;
}
table.scheduler_week td.day_locked { font-size: 12px;
border: none;
border-bottom: 1px solid #7392A6;
padding: 2px;
background-color: #EAEAEA;
}
table.scheduler_week td h2 { font-size: 12px;
font-size: 11px;
margin: 0;
}
table.scheduler_week td p { font-size: 12px;
font-size: 11px;
margin: 0;
}
table.scheduler_month{ font-size: 12px;
width: 790px;
border: 1px solid #7392A6;
}
table.scheduler_month th { font-size: 12px;
background-color: #8baed1;
color: #FFF;
font-weight: bold;
text-align: center;
border: 1px solid #7392A6;
}
table.scheduler_month td { font-size: 12px;
width: 113px;
border: 1px solid #7392A6;
padding: 2px;
text-align: left;
}
table.scheduler_month p { font-size: 12px;
margin: 0 0 10px 0;
font-weight: bold;
font-size: 11px;
}
table.scheduler_month .scala { font-size: 12px;
margin: 0 0 2px 4px;
width: 96px;
height: 12px;
background-color: #DADADA;
border: 1px solid #7F95A7;
}
table.scheduler_month .scala .scala_in { font-size: 12px;
background: #DADADA url("css_img/bg_scala_in_scheduler.gif") repeat-x top left;
font-size:1px;
height: 12px;
}

View file

@ -1,6 +1,6 @@
<div id="systemPrefs"> {*include file="sub/x.tpl"*}
{include file="sub/x.tpl"} <div class="content">
<center> <div class="container_elements" style="width: 607px;">
{include file="sub/dynForm_sections.tpl"} {include file="sub/dynForm_sections.tpl"}
</center> </div>
</div> </div>

View file

@ -41,21 +41,21 @@
</div> </div>
{literal}
<script> <script>
function showData() function showData()
{literal}
{ {
{/literal} {/literal}
{if $editItem.id && $editItem.type == 'file'} {if $editItem.id && $editItem.type == 'file'}
alert('Sorry, function temporary disabled'); alert('Sorry, function temporary disabled');
return false; return false;
{/if} {/if}
document.getElementById('div_Data').style.display = 'inherit';
document.getElementById('div_MData').style.display = 'none';
{literal} {literal}
document.getElementById('div_Data').style.visibility='visible';
document.getElementById('div_Data').style.height='';
document.getElementById('div_MData').style.visibility='hidden';
document.getElementById('div_MData').style.height='0';
} }
{/literal} {/literal}
@ -63,13 +63,10 @@ function showData()
{literal} {literal}
function showMData() function showMData()
{ {
document.getElementById('div_MData').style.visibility='visible'; document.getElementById('div_MData').style.display = 'inherit';
document.getElementById('div_MData').style.height=''; document.getElementById('div_Data').style.display = 'none';
document.getElementById('div_Data').style.visibility='hidden';
document.getElementById('div_Data').style.height='0';
} }
document.getElementById('div_Data').style.visibility='hidden'; document.getElementById('div_Data').style.display = 'none';
document.getElementById('div_Data').style.height='0';
{/literal} {/literal}
{else} {else}
{literal} {literal}
@ -78,8 +75,7 @@ function showData()
alert ('Data first!'); alert ('Data first!');
} }
{/literal} {/literal}
document.getElementById('div_MData').style.visibility='hidden'; document.getElementById('div_MData').style.display = 'none';
document.getElementById('div_MData').style.height='0';
{/if} {/if}
</script> </script>

View file

@ -41,36 +41,21 @@ function spread(element, name)
function showMain() function showMain()
{ {
document.getElementById('metadataform').style.height=400; document.getElementById('div_Main').style.display='inline';
document.getElementById('masterpanel').style.height=600; document.getElementById('div_Music').style.display='none';
document.getElementById('div_Main').style.visibility=''; document.getElementById('div_Talk').style.display='none';
document.getElementById('div_Main').style.height='';
document.getElementById('div_Music').style.visibility='hidden';
document.getElementById('div_Music').style.height='0';
document.getElementById('div_Talk').style.visibility='hidden';
document.getElementById('div_Talk').style.height='0';
} }
function showMusic() function showMusic()
{ {
document.getElementById('metadataform').style.height=1600; document.getElementById('div_Main').style.display='none';
document.getElementById('masterpanel').style.height=1800; document.getElementById('div_Music').style.display='inline';
document.getElementById('div_Main').style.visibility='hidden'; document.getElementById('div_Talk').style.display='none';
document.getElementById('div_Main').style.height='0';
document.getElementById('div_Music').style.visibility='';
document.getElementById('div_Music').style.height='';
document.getElementById('div_Talk').style.visibility='hidden';
document.getElementById('div_Talk').style.height='0';
} }
function showTalk() function showTalk()
{ {
document.getElementById('metadataform').style.height=800; document.getElementById('div_Main').style.display='none';
document.getElementById('masterpanel').style.height=1000; document.getElementById('div_Music').style.display='none';
document.getElementById('div_Main').style.visibility='hidden'; document.getElementById('div_Talk').style.display='inline';
document.getElementById('div_Main').style.height='0';
document.getElementById('div_Music').style.visibility='hidden';
document.getElementById('div_Music').style.height='0';
document.getElementById('div_Talk').style.visibility='';
document.getElementById('div_Talk').style.height='';
} }
showMain(); showMain();
{/literal} {/literal}

View file

@ -14,6 +14,7 @@
</tr> </tr>
{if count($structure.listdata)} {if count($structure.listdata)}
{foreach from=$structure.listdata item=i} {foreach from=$structure.listdata item=i}
{assign var="_listen_gunid" value=$i.gunid}
<tr bgcolor="{cycle values='#eeeeee, #dadada"'}" {assign var="moreContextBefore" value=", 'SP.addItem'"}{include file="sub/contextmenu.tpl"}> <tr bgcolor="{cycle values='#eeeeee, #dadada"'}" {assign var="moreContextBefore" value=", 'SP.addItem'"}{include file="sub/contextmenu.tpl"}>
<td align="center"> <td align="center">
<span id="ID{$i.id}"> <span id="ID{$i.id}">

View file

@ -1,6 +1,5 @@
{*Smarty template*} {*Smarty template*}
<div id="footer">LiveSupport htmlUI V0.1 &nbsp;&nbsp; Copyright (c) 2004 Media Development Loan Fund</div> </div>
</body> </body>
</html> </html>

View file

@ -1,8 +1,28 @@
{*Smarty template*} {* <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> *}
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<html> <html>
<head> <head>
<title>LIVESUPPORT</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
{literal}
<script type='text/javascript'><!--//--><![CDATA[//><!--
sfHover = function() {
var sfEls = document.getElementById("nav").getElementsByTagName("LI");
for (var i=0; i<sfEls.length; i++) {
sfEls[i].onmouseover=function() {
this.className+=" sfhover";
}
sfEls[i].onmouseout=function() {
this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
}
}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);
//--><!]]></script>
{/literal}
<link rel="stylesheet" href="styles.css"> <link rel="stylesheet" href="styles.css">
<link href="styles_livesupport.css" rel="stylesheet" type="text/css" />
{include file="script/basics.js.tpl"} {include file="script/basics.js.tpl"}
{include file="script/contextMenue.js.tpl"} {include file="script/contextMenue.js.tpl"}
@ -10,3 +30,4 @@
</head> </head>
<body> <body>
<div class="container">

View file

@ -1,3 +1,34 @@
{assign var="_style_select" value=" style='width: 180px;'"}
{assign var="_style_textarea" value=" class='area_browse'"}
<!-- start playlist editor -->
<div class="container_elements" style="width: 607px;">
<h1>Browse</h1>
<table>
<tr>
<td style="border:0">
{foreach from=$browseForm.col1 item=dynform}
{include file="library/dynForm_browse.tpl"}
{/foreach}
</td><td style="border:0">
{foreach from=$browseForm.col2 item=dynform}
{include file="library/dynForm_browse.tpl"}
{/foreach}
</td><td style="border:0">
{foreach from=$browseForm.col3 item=dynform}
{include file="library/dynForm_browse.tpl"}
{/foreach}
</td>
</tr>
</table>
{foreach from=$browseForm.global item=dynform}
{include file="sub/dynForm_plain.tpl"}
{/foreach}
</div>
<!-- end playlist editor -->
{assign var="_style_select" value=""}
{assign var="_style_textarea" value=""}
{*
{literal} {literal}
<style type="text/css"> <style type="text/css">
.dynformelement { .dynformelement {
@ -39,3 +70,4 @@
</table> </table>
</div> </div>
*}

View file

@ -0,0 +1,58 @@
{$dynform.javascript}
<form{$dynform.attributes}>{$dynform.hidden}
{foreach item=element from=$dynform.elements}
{if $element.style}
{include file="smarty-dynamic-`$element.style`.tpl}
{/if}
{*
NOTE: Another way ist to have smarty template code in
$element.style. In this case you can do:
{if $element.style}
{eval var=$element.style}
{/if}
*}
{if $element.type eq 'static'}
{$element.html}
{else}
<div class="container_browse">
{if $element.label}
<label for='category_1'>{$element.label}
{*if $element.required}<font color="red">*</font>{/if*}
</label>
{/if}
{if $element.error}<font color="red">{$element.error}</font><br />{/if}
{if $element.type eq "group"}
{foreach key=gkey item=gitem from=$element.elements}
{$gitem.label}{$gitem.html}
{if $gitem.required}<font color="red">*</font>{/if}
{if $element.separator}{cycle values=$element.separator}
{/if}
{/foreach}
{else}
{$element.html}
{/if}
<!--div style="font-size: 80%;">{$element.label_note}</div-->
</div>
{/if}
{/foreach}
{if $dynform.requirednote and not $dynform.frozen}
{*<div class='dynformelement'>
{$dynform.requirednote}
</div>*}
{/if}
</form>
<!--
&nbsp;
<p><b>Collected Errors:</b><br />
{foreach key=name item=error from=$dynform.errors}
<font color="red">{$error}</font> in element [{$name}]<br />
{/foreach}
</p> -->

View file

@ -1,4 +1,11 @@
{if $searchForm} {if $searchForm}
<div id="tabnav">
<ul>
<li><a href="#" class="active">Search</a></li>
<li><a href="{$UI_BROWSER}?id={$START.id}&act=BROWSE">Browse</a></li>
</ul>
</div>
<div class="content">
{assign var="_act_prefix" value="SEARCH"} {assign var="_act_prefix" value="SEARCH"}
{include file="library/searchForm.tpl"} {include file="library/searchForm.tpl"}
{SEARCH->getResult assign=_results} {SEARCH->getResult assign=_results}
@ -6,6 +13,13 @@
{/if} {/if}
{if $browseForm} {if $browseForm}
<div id="tabnav">
<ul>
<li><a href="{$UI_BROWSER}?id={$START.id}&act=SEARCH">Search</a></li>
<li><a href="#" class="active">Browse</a></li>
</ul>
</div>
<div class="content">
{assign var="_act_prefix" value="BROWSE"} {assign var="_act_prefix" value="BROWSE"}
{include file="library/browseForm.tpl"} {include file="library/browseForm.tpl"}
{BROWSE->getResult assign=_results} {BROWSE->getResult assign=_results}
@ -13,3 +27,4 @@
{/if} {/if}
{include file="library/results.tpl"} {include file="library/results.tpl"}
</div>

View file

@ -1,12 +1,61 @@
{if $_results.cnt > 0}
<div class="head" style="width:535px; height: 21px;">&nbsp;</div>
<div class="container_table" style="width: 555px; height: auto;">
<table style="width: 535px;">
<tr class="blue_head">
<td style="width: 95px"><a href="#" onClick="hpopup('{$UI_HANDLER}?act={$_act_prefix}.reOrder&by=title', 'order');" id="blue_head">##Title##</a></td>
<td style="width: 69px"><a href="#" onClick="hpopup('{$UI_HANDLER}?act={$_act_prefix}.reOrder&by=creator', 'order');" id="blue_head">##Creator##</a></td>
<td style="width: 89px"><a href="#" onClick="hpopup('{$UI_HANDLER}?act={$_act_prefix}.reOrder&by=extent', 'order');" id="blue_head">##Duration##</a></td>
<td style="width: 197px; border: 0"><a href="#" onClick="hpopup('{$UI_HANDLER}?act={$_act_prefix}.reOrder&by=type', 'order');" id="blue_head">##Type##</a></td>
</tr>
{foreach from=$_results.items item=i}
<!-- start item -->
<tr class="background-color: {cycle values='blue1, blue2'}" {assign var="moreContextBefore" value=", 'SP.addItem'"}{include file="sub/contextmenu.tpl"}>
<td>
{if $PLAYLIST.id == $i.id}
<b>{$i.title|truncate:30}</b>
{else}
{$i.title|truncate:30}
{/if}
</td>
<td>{$i.creator}</td>
<td>{$i.duration}</td>
<td style="border: 0">{$i.type}</td>
</tr>
<!-- end item -->
{/foreach}
</table>
</div>
<div class="footer" style="width: 530px;">
<div class="counter">
{if $_results.prev}<a href="#" onClick="hpopup('{$UI_HANDLER}?act={$_act_prefix}.setOffset&page=prev', 'pager')" id="blue_head">##previous##</a>{/if}
{foreach from=$_results.pagination item=p key=k}
<a href="#" onClick="hpopup('{$UI_HANDLER}?act={$_act_prefix}.setOffset&page={$k}', 'pager')" id="blue_head">{$p}</a>
{/foreach}
{if $_results.next}<a href="#" onClick="hpopup('{$UI_HANDLER}?act={$_act_prefix}.setOffset&page=next', 'pager')" id="blue_head">##next##</a>{/if}
&nbsp;&nbsp;
##Count##:&nbsp;{$_results.cnt}&nbsp;&nbsp;
##Page##:&nbsp;&nbsp;{$_results.page+1}&nbsp;&nbsp;
##Range##:&nbsp;{$_criteria.offset+1}-{if ($_criteria.offset+$_criteria.limit)>$_results.cnt}{$_results.cnt}{else}{$_criteria.offset+$_criteria.limit}{/if}
</div>
<input type="button" class="button_small" value="##Go##" />
</div>
{else}
##No match found.##
{/if}
{*
<div id="searchres"> <div id="searchres">
<center> <center>
{if $_results.cnt > 0} {if $_results.cnt > 0}
<table border="0" width="50%"> <table border="0" width="50%">
<tr style="background-color: {cycle values='#eeeeee, #dadada'}"> <tr style="background-color: {cycle values='#eeeeee, #dadada'}">
<td align="center"><a href="#" onClick="hpopup('{$UI_HANDLER}?act={$_act_prefix}.reOrder&by=title', 'order');">{tra 0=Title}</a></td> <td align="center"><a href="#" onClick="hpopup('{$UI_HANDLER}?act={$_act_prefix}.reOrder&by=title', 'order');">##Title##</a></td>
<td align="center"><a href="#" onClick="hpopup('{$UI_HANDLER}?act={$_act_prefix}.reOrder&by=creator', 'order');">{tra 0=Creator}</a></td> <td align="center"><a href="#" onClick="hpopup('{$UI_HANDLER}?act={$_act_prefix}.reOrder&by=creator', 'order');">##Creator##</a></td>
<td align="center"><a href="#" onClick="hpopup('{$UI_HANDLER}?act={$_act_prefix}.reOrder&by=extent', 'order');">{tra 0=Duration}</a></td> <td align="center"><a href="#" onClick="hpopup('{$UI_HANDLER}?act={$_act_prefix}.reOrder&by=extent', 'order');">##Duration##</a></td>
<td align="center"><a href="#" onClick="hpopup('{$UI_HANDLER}?act={$_act_prefix}.reOrder&by=type', 'order');">{tra 0=Type}</a></td> <td align="center"><a href="#" onClick="hpopup('{$UI_HANDLER}?act={$_act_prefix}.reOrder&by=type', 'order');">##Type##</a></td>
</tr> </tr>
{foreach from=$_results.items item=i} {foreach from=$_results.items item=i}
<tr style="background-color: {cycle values='#eeeeee, #dadada'}" {assign var="moreContextBefore" value=", 'SP.addItem'"}{include file="sub/contextmenu.tpl"}> <tr style="background-color: {cycle values='#eeeeee, #dadada'}" {assign var="moreContextBefore" value=", 'SP.addItem'"}{include file="sub/contextmenu.tpl"}>
@ -46,8 +95,9 @@
<tr><td colspan="4"> <tr><td colspan="4">
</table> </table>
{else} {else}
No match found. ##No match found.##
{/if} {/if}
</center>
</div> </div>
*}

View file

@ -3,8 +3,7 @@
function SearchForm_displayRow(row) function SearchForm_displayRow(row)
{ {
document.getElementById('searchRow_' + row).style.visibility = 'visible'; document.getElementById('searchRow_' + row).style.display = 'inline';
document.getElementById('searchRow_' + row).style.height = '30px';
} }
function SearchForm_addRow() function SearchForm_addRow()
@ -22,17 +21,18 @@ function SearchForm_addRow()
function SearchForm_hideRow(row) function SearchForm_hideRow(row)
{ {
document.getElementById('searchRow_' + row).style.visibility = 'hidden'; document.getElementById('searchRow_' + row).style.display = 'none';
document.getElementById('searchRow_' + row).style.height = '0px'; document.forms['search'].elements['row_' + Number(row) + '[0]'].options[0].selected = true;
document.forms['search'].elements['row_' + Number(row) + '[0]'].options[0].selected=true; document.forms['search'].elements['row_' + Number(row) + '[1]'].options[0].selected = true;
document.forms['search'].elements['row_' + Number(row) + '[1]'].options[0].selected=true;
document.forms['search'].elements['row_' + Number(row) + '[2]'].value = ''; document.forms['search'].elements['row_' + Number(row) + '[2]'].value = '';
} }
function SearchForm_dropRow(row) function SearchForm_dropRow(row)
{ {
if (document.forms['search'].elements['counter'].value <= 1)
return false;
var n; var n;
for (n=row; n<document.forms['search'].elements['counter'].value; n++) { for (n = row; n < document.forms['search'].elements['counter'].value; n++) {
document.forms['search'].elements['row_' + Number(n) + '[0]'].value = document.forms['search'].elements['row_' + (Number(n)+1) + '[0]'].value; document.forms['search'].elements['row_' + Number(n) + '[0]'].value = document.forms['search'].elements['row_' + (Number(n)+1) + '[0]'].value;
document.forms['search'].elements['row_' + Number(n) + '[1]'].value = document.forms['search'].elements['row_' + (Number(n)+1) + '[1]'].value; document.forms['search'].elements['row_' + Number(n) + '[1]'].value = document.forms['search'].elements['row_' + (Number(n)+1) + '[1]'].value;
document.forms['search'].elements['row_' + Number(n) + '[2]'].value = document.forms['search'].elements['row_' + (Number(n)+1) + '[2]'].value; document.forms['search'].elements['row_' + Number(n) + '[2]'].value = document.forms['search'].elements['row_' + (Number(n)+1) + '[2]'].value;

View file

@ -1,11 +1,7 @@
{include file="library/searchForm.js.tpl"} {include file="library/searchForm.js.tpl"}
<div id="searchform">
{include file="sub/x.tpl"}
<center>
{foreach from=$searchForm item=dynform} {foreach from=$searchForm item=dynform}
<div class="container_elements" style="width: 607px;">
<h1>##Search##</h1>
{include file="sub/dynForm_plain.tpl"} {include file="sub/dynForm_plain.tpl"}
</div>
{/foreach} {/foreach}
</center>
</div>

View file

@ -1,5 +1,12 @@
{assign var="dynform" value=$simpleSearchForm} {assign var="dynform" value=$simpleSearchForm}
<!-- start library search -->
<div id="simplesearchform"> <div class="container_elements">
{include file="sub/dynForm_plain.tpl"} <h1>##Library Search##</h1>
</div> <form action="ui_handler.php" method="post" name="simplesearch" id="simplesearch"><input name="act" type="hidden" value="SEARCH.simpleSearch" />
<div>
<input size="20" maxlength="50" name="criterium" type="text" style="width: 184px;" />
<input type="button" class="button_small" value="##Go##" />
</div>
</form>
</div>
<!-- end library search -->

View file

@ -3,5 +3,3 @@
{include file="header.tpl"} {include file="header.tpl"}
{include file="masterpanel.tpl"} {include file="masterpanel.tpl"}
</body></html> </body></html>

View file

@ -1,4 +1,8 @@
{*Smarty template*}
{*
<div id="masterpanel"> <div id="masterpanel">
*}
{include file="statusbar.tpl"} {include file="statusbar.tpl"}
@ -6,14 +10,6 @@
{include file="menu_top.tpl"} {include file="menu_top.tpl"}
{/if} {/if}
{if $SCRATCHPAD}
{include file="scratchPad.tpl"}
{/if}
{if $simpleSearchForm}
{include file="library/simpleSearchForm.tpl"}
{/if}
{if $structure} {if $structure}
{include file="file/path.tpl"} {include file="file/path.tpl"}
{/if} {/if}
@ -50,9 +46,20 @@
{include file="playlist/simpleManagement.tpl"} {include file="playlist/simpleManagement.tpl"}
{/if} {/if}
<div class="content">
{if $simpleSearchForm}
{include file="library/simpleSearchForm.tpl"}
{/if}
{if $SCRATCHPAD}
{include file="scratchPad.tpl"}
{/if}
</div>
{if $showScheduler} {if $showScheduler}
{include file="scheduler/main.tpl"} {include file="scheduler/main.tpl"}
{/if} {/if}
{*
</div> </div>
*}

View file

@ -1,3 +1,22 @@
<!-- start nav -->
<div class="container_nav">
<ul id="nav">
<li><a href="{$UI_BROWSER}?act=fileList&id={$START.fid}">##File List##</a></li>
<!-- <li><a href="{$UI_BROWSER}?id={$START.fid}&act=uploadFileM">##UploadM##</a></li> -->
<li><a href="{$UI_BROWSER}?folderId={$START.fid}&act=editFile">##Upload##</a></li>
<li><a href="{$UI_BROWSER}?folderId={$START.fid}&act=editWebstream">##Stream##</a></li>
<li><a href="{$UI_BROWSER}?id={$START.fid}&act=PL.simpleManagement">##PL Editor##</a></li>
<li><a href="{$UI_BROWSER}?id={$START.id}&act=SEARCH">##Search##</a></li>
<li><a href="{$UI_BROWSER}?id={$START.id}&act=BROWSE">##Browse##</a></li>
<li><a href="{$UI_BROWSER}?act=SCHEDULER">##Scheduler##</a></li>
<li><a href="{$UI_BROWSER}?id={$START.id}&act=subjects">##User/Groups##</a></li>
<!-- <li><a href="{$UI_BROWSER}?act=MetaDataValues&Main=1">##Metadata##</a></li> -->
<li><a href="{$UI_BROWSER}?act=changeStationPrefs">##StationPrefs##</a></li>
</ul>
</div>
<!-- end nav -->
{*
<!-- old template -->
<div id="menu_top"> <div id="menu_top">
<a href="{$UI_BROWSER}?act=fileList&id={$START.fid}">[File List]</a> <a href="{$UI_BROWSER}?act=fileList&id={$START.fid}">[File List]</a>
<!-- <a href="{$UI_BROWSER}?id={$START.fid}&act=uploadFileM">[UploadM]</a> --> <!-- <a href="{$UI_BROWSER}?id={$START.fid}&act=uploadFileM">[UploadM]</a> -->
@ -7,7 +26,8 @@
<a href="{$UI_BROWSER}?id={$START.id}&act=SEARCH">[Search]</a> <a href="{$UI_BROWSER}?id={$START.id}&act=SEARCH">[Search]</a>
<a href="{$UI_BROWSER}?id={$START.id}&act=BROWSE">[Browse]</a> <a href="{$UI_BROWSER}?id={$START.id}&act=BROWSE">[Browse]</a>
<a href="{$UI_BROWSER}?act=SCHEDULER">[Scheduler]</a> <a href="{$UI_BROWSER}?act=SCHEDULER">[Scheduler]</a>
<a href="{$UI_BROWSER}?id={$START.id}&act=subjects">[User/Groups]</a> <a href="{$UI_BROWSER}?id={$START.id}&act=subjects">{tra 0='[User/Groups]'}</a>
<!-- <a href="{$UI_BROWSER}?act=MetaDataValues&Main=1">[Metadata]</a> --> <!-- <a href="{$UI_BROWSER}?act=MetaDataValues&Main=1">[Metadata]</a> -->
<a href="{$UI_BROWSER}?act=changeStationPrefs">[StationPrefs]</a> <a href="{$UI_BROWSER}?act=changeStationPrefs">[StationPrefs]</a>
</div> </div>
*}

View file

@ -5,14 +5,12 @@
{foreach from=$PL->getFlat() key='pos' item='i'} {foreach from=$PL->getFlat() key='pos' item='i'}
<!-- {$n++} --> <!-- {$n++} -->
<tr onMouseOver="highlight()" <tr onContextmenu="return contextmenu('{$i.attrs.id}', {if $n == 1}'PL.changeFadeIn'{else}'PL.changeTransition'{/if})}" style="background-color: lightblue">
onMouseOut="darklight()"
onContextmenu="return menu('{$i.attrs.id}', {if $n == 1}'PL.changeFadeIn'{else}'PL.changeTransition'{/if})}" style="background-color: lightblue">
<td colspan="4" align="center">{$i.fadein_ms|string_format:"%d"} ms</td> <td colspan="4" align="center">{$i.fadein_ms|string_format:"%d"} ms</td>
</tr> </tr>
<tr onMouseOver="highlight()" <tr onContextmenu="return contextmenu('{$i.attrs.id}',
onMouseOut="darklight()" {if $i.type|lower == "audioclip"}'listen', '{$i.gunid}', {/if}
onContextmenu="return menu('{$i.attrs.id}', 'PL.removeItem')" style="background-color: {cycle values='#eeeeee, #dadada'}"> 'PL.removeItem')" style="background-color: {cycle values='#eeeeee, #dadada'}">
<td> <td>
<input type="checkbox" name="{$i.attrs.id}"> <input type="checkbox" name="{$i.attrs.id}">
<font size="+1"> <font size="+1">
@ -26,9 +24,7 @@
</tr> </tr>
{/foreach} {/foreach}
{if $n} {if $n}
<tr onMouseOver="highlight()" <tr onContextmenu="return contextmenu('{$i.attrs.id}', 'PL.changeFadeOut')" style="background-color: lightblue">
onMouseOut="darklight()"
onContextmenu="return menu('{$i.attrs.id}', 'PL.changeFadeOut')" style="background-color: lightblue">
<td colspan="4" align="center">{$i.fadeout_ms|string_format:"%d"} ms</td> <td colspan="4" align="center">{$i.fadeout_ms|string_format:"%d"} ms</td>
</tr> </tr>
{/if} {/if}

View file

@ -1,4 +1,63 @@
{assign var="_PL_activeId" value=$PL->getActiveId()} {assign var="_PL_activeId" value=$PL->getActiveId()}
<!-- start scratch pad -->
{if is_array($SCRATCHPAD)}
<form name="SP">
<div class="container_elements">
<h1>##Scratch Pad##</h1>
<div class="head" style="width:255px; height: 21px;">&nbsp;</div>
<div class="container_table" style="width:275px;">
<table style="width:255px;">
<!-- start table header -->
<tr class="blue_head">
<td style="width: 30px"></td>
<td style="width: 95px"><a href="#" onClick="hpopup('{$UI_HANDLER}?act=SP.reOrder&by=title', 'order');" id="blue_head">##Title##</a></td>
<td style="width: 69px"><a href="#" onClick="hpopup('{$UI_HANDLER}?act=SP.reOrder&by=title', 'order');" id="blue_head">##Duration##</td>
<td style="width: 41px; border: 0"><a href="#" onClick="hpopup('{$UI_HANDLER}?act=SP.reOrder&by=title', 'order');" id="blue_head">##Type##</td>
</tr>
<!-- end table header -->
{foreach from=$SCRATCHPAD item=i}
<!-- start item -->
<tr class="{cycle values='blue1, blue2'}" {assign var="moreContextBefore" value=", 'SP.removeItem'"} {include file="sub/contextmenu.tpl"}>
<td><input type="checkbox" class="checkbox" name="{$i.id}"/></td>
<td>
{if $_PL_activeId == $i.id}
<b>{$i.title|truncate:30}</b>
{else}
{$i.title|truncate:30}
{/if}
</td>
<td>{$i.duration}</td>
<td style="border: 0">{$i.type|truncate:8}</td>
</tr>
{/foreach}
<!-- end item -->
</table>
</div>
<div class="footer" style="width:250px;">
<input type="checkbox" name="all" onClick="collector_switchAll('SP')">
<select name="SP_multiaction">
<option>##Multiple Action:##</option>
<option onClick="collector_submit('SP', 'SP.removeItem')">##Remove##</option>
{if $_PL_activeId}
<option onClick="collector_submit('SP', 'PL.addItem')">##Add to Playlist##</option>
{else}
<option onClick="collector_submit('SP', 'PL.create')">##New Playlist using Item##</option>
{/if}
</select>
<script type="text/javascript">
document.forms['SP'].elements['SP_multiaction'].options[0].selected=true;
</script>
<a href="#" onClick="collector_clearAll('SP', 'SP.removeItem')" id="blue_head">##Clear##</a>
</div>
</div>
</form>
{/if}
<!-- end scratch pad -->
{*
<!-- old template -->
{assign var="_PL_activeId" value=$PL->getActiveId()}
<div id="scratchpad"> <div id="scratchpad">
<center><b>ScratchPad</b> <center><b>ScratchPad</b>
@ -52,3 +111,4 @@
{/if} {/if}
</div> </div>
</center> </center>
*}

View file

@ -58,11 +58,11 @@
window.popupwin.focus(); window.popupwin.focus();
} }
function hpopup(url, name) //hidden popup! 'width=1, height=1' function hpopup(url, name)
{ {
url = url + '&is_popup=1'; url = url + '&is_popup=1';
popupwin = window.open(url, name); popupwin = window.open(url, name, 'width=1, height=1');
//window.parent.focus(); window.parent.focus();
} }
{/literal} {/literal}

View file

@ -1,9 +1,9 @@
{literal}
<SCRIPT LANGUAGE="JavaScript"> <SCRIPT LANGUAGE="JavaScript">
<!-- Original: Tomleung (lok_2000_tom@hotmail.com) This tag should not be removed--> <!-- Original: Tomleung (lok_2000_tom@hotmail.com) This tag should not be removed-->
<!--Server time ticking clock v2.0 Updated by js-x.com--> <!--Server time ticking clock v2.0 Updated by js-x.com-->
<!-- server time ticking clock modified for livesupport.campware.org using above script--> <!-- server time ticking clock modified for livesupport.campware.org using above script-->
{literal}
function twoDigit(_v) function twoDigit(_v)
{ {
_v = Math.round(_v); _v = Math.round(_v);
@ -31,7 +31,7 @@ var seconds;
var timer=null; var timer=null;
function sClock() function sClock()
{ {
sinterval = 100; // milliseconds sinterval = 1000; // milliseconds
{/literal} {/literal}
hours = {$smarty.now|date_format:"%H"|string_format:"%d"}; hours = {$smarty.now|date_format:"%H"|string_format:"%d"};
minutes = {$smarty.now|date_format:"%M"|string_format:"%d"}; minutes = {$smarty.now|date_format:"%M"|string_format:"%d"};
@ -112,7 +112,7 @@ var lseconds;
var ltimer=null; var ltimer=null;
function lClock() function lClock()
{ {
linterval = 100; // milliseconds linterval = 1000; // milliseconds
var tDate = new Date(); var tDate = new Date();
lhours = tDate.getHours(); lhours = tDate.getHours();
lminutes = tDate.getMinutes(); lminutes = tDate.getMinutes();
@ -166,8 +166,9 @@ function lwork()
} }
} }
} }
{/literal}
sClock(); sClock();
lClock(); {* lClock(); *}
</script> </script>
{/literal}

View file

@ -5,126 +5,136 @@
// Nur für IE 5+ und NN 6+ // Nur für IE 5+ und NN 6+
ie5 = (document.getElementById && document.all && document.styleSheets) ? 1 : 0; ie5 = (document.getElementById && document.all && document.styleSheets) ? 1 : 0;
nn6 = (document.getElementById && !document.all) ? 1 : 0; nn6 = (document.getElementById && !document.all) ? 1 : 0;
menuStatus = 0; contextmenuStatus = 0;
document.onmouseup = hideMenu; document.onmouseup = hidecontextmenu;
document.write('<div id="menucontainer"></div>'); document.write('<div id="contextmenucontainer"></div>');
menuWidth = 0, contextmenuWidth = 0,
menuHeight = 0; contextmenuHeight = 0;
function contextmenu(param) {
var contextmenuHeader = "<div class='contextmenu' id='contextmenu' style='position: absolute; top: -250; left: 0; z-index: 100'>" +
"<ul>";
var contextmenuFooter = "</ul></div>";
var contextmenuHtml = '';
function menu(param) {
var menuHeader = "<div id='menu' style='position: absolute; top: -250; left: 0; z-index: 100'>" +
"<table cellpadding='5' cellspacing='0' width='" + menuWidth + "' height='" + menuHeight + "' style='border-style: outset; border-width: 1; border-color: #3a6c96 ;background-color: #4682B4'>";
var menuFooter = "</table></div>";
var menuHtml = '';
var sp2 = "&nbsp;&nbsp;"; var sp2 = "&nbsp;&nbsp;";
var sp5 = sp2 + sp2 + "&nbsp;"; // Leerzeichen als Abstandshalter (flexibler und code-sparender als eine aufwendige Tabellenkonstruktion) ; var sp5 = sp2 + sp2 + "&nbsp;"; // Leerzeichen als Abstandshalter (flexibler und code-sparender als eine aufwendige Tabellenkonstruktion) ;
var oF = "onfocus = 'if (this.blur) this.blur()'"; // Um hässlichen Linkrahmen in einigen Browsern zu vermeiden; var oF = "onfocus = 'if (this.blur) this.blur()'"; // Um hässlichen Linkrahmen in einigen Browsern zu vermeiden;
var entry = new Array(); var entry = new Array();
//menuStatus = 0; //contextmenuStatus = 0;
for (var i = 1; i < menu.arguments.length; ++i) { for (var i = 1; i < contextmenu.arguments.length; ++i) {
switch (menu.arguments[i]) { switch (contextmenu.arguments[i]) {
{/literal}
case "PL.display": case "PL.display":
menuHtml = menuHtml + "<tr><td><a class='menu' href=\"{/literal}{$UI_BROWSER}{literal}?act=PL.display&id="+param+"\" "+oF+">&nbsp;Display this Playlist&nbsp;</a></td></tr>"; contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href=\"{$UI_BROWSER}?act=PL.display&id="+param+"\" "+oF+">&nbsp;Display this Playlist&nbsp;</a></li>";
break; break;
case "PL.release": case "PL.release":
menuHtml = menuHtml + "<tr><td><a class='menu' href='#' onClick=\"hpopup('{/literal}{$UI_HANDLER}{literal}?act=PL.release')\" "+oF+">&nbsp;Release Playlist&nbsp;</a></td></tr>"; contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href='#' onClick=\"hpopup('{$UI_HANDLER}?act=PL.release')\" "+oF+">&nbsp;Release Playlist&nbsp;</a></li>";
break; break;
case "PL.addItem": case "PL.addItem":
menuHtml = menuHtml + "<tr><td><a class='menu' href='#' onClick=\"hpopup('{/literal}{$UI_HANDLER}{literal}?act=PL.addItem&id="+param+"')\" "+oF+">&nbsp;Add to active Playlist&nbsp;</a></td></tr>"; contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href='#' onClick=\"hpopup('{$UI_HANDLER}?act=PL.addItem&id="+param+"')\" "+oF+">&nbsp;Add to active Playlist&nbsp;</a></li>";
break; break;
case "PL.removeItem": case "PL.removeItem":
menuHtml = menuHtml + "<tr><td><a class='menu' href='#' onClick=\"hpopup('{/literal}{$UI_HANDLER}{literal}?act=PL.removeItem&id="+param+"')\" "+oF+">&nbsp;Remove Item from Playlist&nbsp;</a></td></tr>"; contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href='#' onClick=\"hpopup('{$UI_HANDLER}?act=PL.removeItem&id="+param+"')\" "+oF+">&nbsp;Remove Item from Playlist&nbsp;</a></li>";
break; break;
case "PL.activate": case "PL.activate":
menuHtml = menuHtml + "<tr><td><a class='menu' href=\"javascript: hpopup('{/literal}{$UI_HANDLER}{literal}?act=PL.activate&id="+param+"')\" "+oF+">&nbsp;Activate this Playlist&nbsp;</a></td></tr>"; contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href=\"javascript: hpopup('{$UI_HANDLER}?act=PL.activate&id="+param+"')\" "+oF+">&nbsp;Activate this Playlist&nbsp;</a></li>";
break; break;
case "PL.create": case "PL.create":
menuHtml = menuHtml + "<tr><td><a class='menu' href='#' onClick=\"hpopup('{/literal}{$UI_HANDLER}{literal}?act=PL.create&id="+param+"')\" "+oF+">&nbsp;New Playlist using Item&nbsp;</a></td></tr>"; contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href='#' onClick=\"hpopup('{$UI_HANDLER}?act=PL.create&id="+param+"')\" "+oF+">&nbsp;New Playlist using Item&nbsp;</a></li>";
break; break;
case "PL.changeFadeIn": case "PL.changeFadeIn":
menuHtml = menuHtml + "<tr><td><a class='menu' href='#' onClick=\"popup('{/literal}{$UI_BROWSER}{literal}?popup[]=PL.changeTransition&type=fadeIn&id="+param+"', 'PL', '350', '100')\" "+oF+">&nbsp;Change Fadein&nbsp;</a></td></tr>"; contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href='#' onClick=\"popup('{$UI_BROWSER}?popup[]=PL.changeTransition&type=fadeIn&id="+param+"', 'PL', '350', '100')\" "+oF+">&nbsp;Change Fadein&nbsp;</a></li>";
break; break;
case "PL.changeTransition": case "PL.changeTransition":
menuHtml = menuHtml + "<tr><td><a class='menu' href='#' onClick=\"popup('{/literal}{$UI_BROWSER}{literal}?popup[]=PL.changeTransition&type=transition&id="+param+"', 'PL', '350', '100')\" "+oF+">&nbsp;Change Transition&nbsp;</a></td></tr>"; contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href='#' onClick=\"popup('{$UI_BROWSER}?popup[]=PL.changeTransition&type=transition&id="+param+"', 'PL', '350', '100')\" "+oF+">&nbsp;Change Transition&nbsp;</a></li>";
break; break;
case "PL.changeFadeOut": case "PL.changeFadeOut":
menuHtml = menuHtml + "<tr><td><a class='menu' href='#' onClick=\"popup('{/literal}{$UI_BROWSER}{literal}?popup[]=PL.changeTransition&type=fadeOut&id="+param+"', 'PL', '350', '100')\" "+oF+">&nbsp;Change Fadeout&nbsp;</a></td></tr>"; contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href='#' onClick=\"popup('{$UI_BROWSER}?popup[]=PL.changeTransition&type=fadeOut&id="+param+"', 'PL', '350', '100')\" "+oF+">&nbsp;Change Fadeout&nbsp;</a></li>";
break; break;
case "PL.editMetaData": case "PL.editMetaData":
menuHtml = menuHtml + "<tr><td><a class='menu' href='{/literal}{$UI_BROWSER}{literal}?act=PL.editMetaData&id="+param+"'"+oF+">&nbsp;Edit MData&nbsp;</a></td></tr>"; contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href='{$UI_BROWSER}?act=PL.editMetaData&id="+param+"'"+oF+">&nbsp;Edit MData&nbsp;</a></li>";
break; break;
case "SP.addItem": case "SP.addItem":
menuHtml = menuHtml + "<tr><td><a class='menu' href='#' onClick=\"hpopup('{/literal}{$UI_HANDLER}{literal}?act=SP.addItem&id="+param+"')\" "+oF+">&nbsp;Add to ScratchPad&nbsp;</a></td></tr>"; contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href='#' onClick=\"hpopup('{$UI_HANDLER}?act=SP.addItem&id="+param+"')\" "+oF+">&nbsp;Add to ScratchPad&nbsp;</a></li>";
break; break;
case "SP.removeItem": case "SP.removeItem":
menuHtml = menuHtml + "<tr><td><a class='menu' href='#' onClick=\"hpopup('{/literal}{$UI_HANDLER}{literal}?act=SP.removeItem&id="+param+"')\" "+oF+">&nbsp;Remove from Scratchpad&nbsp;</a></td></tr>"; contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href='#' onClick=\"hpopup('{$UI_HANDLER}?act=SP.removeItem&id="+param+"')\" "+oF+">&nbsp;Remove from Scratchpad&nbsp;</a></li>";
break;
case "listen":
i++;
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href='{$CONFIG.accessRawAudioUrl}?sessid={$START.sessid}&id="+contextmenu.arguments[i]+"'"+oF+">&nbsp;Listen&nbsp;</a></li>";
break; break;
case "edit": case "edit":
menuHtml = menuHtml + "<tr><td><a class='menu' href='{/literal}{$UI_BROWSER}{literal}?act=editItem&id="+param+"'"+oF+">&nbsp;Edit&nbsp;</a></td></tr>"; contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href='{$UI_BROWSER}?act=editItem&id="+param+"'"+oF+">&nbsp;Edit&nbsp;</a></li>";
break; break;
case "delete": case "delete":
menuHtml = menuHtml + "<tr><td><a class='menu' href='{/literal}{$UI_HANDLER}{literal}?act=delete&id="+param+"'"+oF+">&nbsp;!Delete Item!&nbsp;</a></td></tr>"; contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href='{$UI_HANDLER}?act=delete&id="+param+"'"+oF+">&nbsp;!Delete Item!&nbsp;</a></li>";
break; break;
case "fileList": case "fileList":
menuHtml = menuHtml + "<tr><td><a class='menu' href='{/literal}{$UI_BROWSER}{literal}?act=fileList&id="+param+"'"+oF+">&nbsp;List Folder&nbsp;</a></td></tr>"; contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href='{$UI_BROWSER}?act=fileList&id="+param+"'"+oF+">&nbsp;List Folder&nbsp;</a></li>";
break; break;
case "SCHEDULER.addItem": case "SCHEDULER.addItem":
menuHtml = menuHtml + "<tr><td><a class='menu' href='#' {/literal}onClick=\"hpopup('{$UI_HANDLER}?act=SCHEDULER.set&"+param+"'); popup('{$UI_BROWSER}?popup[]=SCHEDULER.addItem', 'Schedule', 600, 400)\"'){literal}"+oF+">&nbsp;Insert Playlist here&nbsp;</a></td></tr>"; contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href='#' onClick=\"hpopup('{$UI_HANDLER}?act=SCHEDULER.set&"+param+"'); popup('{$UI_BROWSER}?popup[]=SCHEDULER.addItem', 'Schedule', 600, 400)\"')"+oF+">&nbsp;Insert Playlist here&nbsp;</a></li>";
break; break;
case "SCHEDULER.removeItem": case "SCHEDULER.removeItem":
menuHtml = menuHtml + "<tr><td><a class='menu' href='#' {/literal}onClick=\"popup('{$UI_BROWSER}?popup[]=SCHEDULER.removeItem&"+param+"', 'Schedule', 600, 400)\"'){literal}"+oF+">&nbsp;Remove Playlist&nbsp;</a></td></tr>"; contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href='#' onClick=\"popup('{$UI_BROWSER}?popup[]=SCHEDULER.removeItem&"+param+"', 'Schedule', 600, 400)\"')"+oF+">&nbsp;Remove Playlist&nbsp;</a></li>";
break; break;
{literal}
} }
} }
document.getElementById('menucontainer').innerHTML = menuHeader + menuHtml + menuFooter; document.getElementById('contextmenucontainer').innerHTML = contextmenuHeader + contextmenuHtml + contextmenuFooter;
document.oncontextmenu = showMenu; document.oncontextmenu = showcontextmenu;
return false; return false;
} }
function showMenu(e) { function showcontextmenu(e) {
if (ie5) { if (ie5) {
if (event.clientX > menuWidth) xPos = event.clientX - menuWidth + document.body.scrollLeft; if (event.clientX > contextmenuWidth) xPos = event.clientX - contextmenuWidth + document.body.scrollLeft;
else xPos = event.clientX + document.body.scrollLeft; else xPos = event.clientX + document.body.scrollLeft;
if (event.clientY > menuHeight) yPos = event.clientY - menuHeight + document.body.scrollTop; if (event.clientY > contextmenuHeight) yPos = event.clientY - contextmenuHeight + document.body.scrollTop;
else yPos = event.clientY + document.body.scrollTop; else yPos = event.clientY + document.body.scrollTop;
} }
else { else {
if (e.pageX > menuWidth + window.pageXOffset) xPos = e.pageX - menuWidth; if (e.pageX > contextmenuWidth + window.pageXOffset) xPos = e.pageX - contextmenuWidth;
else xPos = e.pageX; else xPos = e.pageX;
if (e.pageY > menuHeight + window.pageYOffset) yPos = e.pageY - menuHeight; if (e.pageY > contextmenuHeight + window.pageYOffset) yPos = e.pageY - contextmenuHeight;
else yPos = e.pageY; else yPos = e.pageY;
} }
document.getElementById("menu").style.left = xPos; document.getElementById("contextmenu").style.left = xPos;
document.getElementById("menu").style.top = yPos; document.getElementById("contextmenu").style.top = yPos;
menuStatus = 1; //document.getElementById('contextmenustyle').innerHTML = '<style type="text/css">#contextmenu {top: 50px; left: 300px; }</style>';
contextmenuStatus = 1;
document.oncontextmenu = null; document.oncontextmenu = null;
} }
function hideMenu(e) { function hidecontextmenu(e) {
if (menuStatus == 1) { if (contextmenuStatus == 1) {
setTimeout("document.getElementById('menu').style.top =- 250", 100); setTimeout("document.getElementById('contextmenu').style.top =- 250", 100);
menuStatus = 0; contextmenuStatus = 0;
} }
} }
@ -143,9 +153,48 @@ function darklight()
</script> </script>
<style type="text/css"> <style type="text/css">
a.menu {text-decoration:none;font-family: Verdana, Arial; font-size: 80%}
a.menu:link,a.menu:visited {text-decoration: none; color : #F0F8FF} #contextmenu {
a.menu:hover,a.menu:active {text-decoration: none; background-color: #F0F8FF; color: #000040} font-size : 80%;
hr.menu {border: 0px; height: 1px; background-color: #B0C4DE; color: #B0C4DE} }
#contextmenu ul {
float: left;
width: 200px;
list-style: none;
line-height: 20px;
padding: 0;
margin: 0px 0 0 0px;
display: block;
clear: left;
background: #eee;
border-top: 1px solid #ACB3BA;
}
#contextmenu a {
display: block;
background: #eee;
width: 200px;
color: #666;
text-decoration: none;
padding: 0px;
border-top: 0px solid #ACB3BA;
border-left: 1px solid #ACB3BA;
border-bottom: 1px solid #ACB3BA;
border-right: 1px solid #ACB3BA;
}
#contextmenu li {
float: left;
clear: left;
padding: 0;
}
#contextmenu a:hover {
color: #000;
background: #D6E3EF;
}
</style> </style>
{/literal} {/literal}

View file

@ -1,4 +1,62 @@
{include file="script/clock.js.tpl"} {include file="script/clock.js.tpl"}
<!-- start header -->
<!-- start header left -->
<div class="headLeft">
<img src="img/logo_livesupport.gif" alt="Livesupport Logo" />
<div class="container">
{include file="userinfo.tpl"}
</div>
</div>
<!-- end header left -->
<!-- start header right -->
<div class="headRight">
<!-- start station information -->
<div class="station">
<img src="{$STATIONPREFS.stationLogoPath}" alt="{$STATIONPREFS.stationName}" width='127' height='34'>
<div class="frequence">{$STATIONPREFS.stationFrequency}</div>
</div>
<!-- end station information -->
<!-- start onair information -->
<div class="onair">
<img src="img/el_onair.gif" alt="on air" />
<!--img src="img/el_offair.gif" alt="off air" /-->
</div>
<!-- end onair information -->
<!-- start station time -->
<div class="stationtime">
<h1>##Station Time##</h1>
<div class="time"><span id=servertime class="clock" style="position:relative;">{$smarty.now|date_format:"%H:%M:%S"}</span>
<div class="timezone">cet</div>
</div>
{*
<h1>##Local Time##</h1>
<div class="time">
<span id=localtime class="clock" style="position:relative;"></span>
<div class="timezone">cet</div>
</div>
*}
</div>
<!-- end station time -->
<!-- start what playing -->
<div class="whatplaying">
{$SCHEDULER->getNowNextClip()}
<div class="nowplaying">Now Playing: Don Quixote</div>
<div class="scala">
<div class="scala_in" style="width: 100px;">&nbsp;</div>
</div>
<div class="time">
<div class="left">Elapsed:<strong>00:05:24</strong></div>
<div class="right">Remaining:<strong>00:02:05</strong></div>
</div>
<div class="clearer"></div>
<p>Playing Next: Diego Diego 00:03:25</p>
</div>
<!-- end what playing -->
</div>
<!-- end header right -->
<!-- end header -->
{*
<!-- old template -->
<div id="statusbar"> <div id="statusbar">
<div class="statusbaritem"> <div class="statusbaritem">
@ -34,3 +92,4 @@
</div> </div>
</div> </div>
*}

View file

@ -1,10 +1,9 @@
{assign var="_PL_activeId" value=$PL->getActiveId()} {assign var="_PL_activeId" value=$PL->getActiveId()}
onMouseOver="highlight()" onContextmenu="return contextmenu('{$i.id}'
onMouseOut="darklight()"
onContextmenu="return menu('{$i.id}'
{$moreContextBefore} {$moreContextBefore}
{if ($i.type == 'audioclip' || $i.type == 'webstream')} {if $i.type == 'audioclip'}
, 'listen', '{$i.gunid}'
{if $_PL_activeId} {if $_PL_activeId}
, 'PL.addItem' , 'PL.addItem'
{else} {else}
@ -13,7 +12,16 @@ onContextmenu="return menu('{$i.id}'
, 'edit', 'delete' , 'edit', 'delete'
{/if} {/if}
{if ($i.type == 'playlist')} {if $i.type == 'webstream'}
{if $_PL_activeId}
, 'PL.addItem'
{else}
, 'PL.create'
{/if}
, 'edit', 'delete'
{/if}
{if $i.type == 'playlist'}
{if $_PL_activeId} {if $_PL_activeId}
{if $_PL_activeId == $i.id} {if $_PL_activeId == $i.id}
, 'PL.release' , 'PL.release'

View file

@ -3,8 +3,6 @@
<form{$dynform.attributes}>{$dynform.hidden} <form{$dynform.attributes}>{$dynform.hidden}
{foreach item=element from=$dynform.elements} {foreach item=element from=$dynform.elements}
<!-- elements with alternative layout in external template file-->
{if $element.style} {if $element.style}
{include file="smarty-dynamic-`$element.style`.tpl} {include file="smarty-dynamic-`$element.style`.tpl}
{/if} {/if}
@ -22,19 +20,24 @@
{$element.html} {$element.html}
{else} {else}
<div class='dynformelement'> <div class="container_search">
{if $element.required}<font color="red">*</font>{/if} {if $element.label}
{if $element.label}<b>{$element.label}:</b>{/if} <label>{$element.label}
{if $element.required}<font color="red">*</font>{/if}
</label>
{if $element.error}<font color="red">{$element.error}</font><br />{/if} {/if}
{if $element.type eq "group"} {if $element.error}<font color="red">{$element.error}</font><br />{/if}
{foreach key=gkey item=gitem from=$element.elements}{$gitem.label}{$gitem.html}{if $gitem.required}<font color="red">*</font>{/if}{if $element.separator}{cycle values=$element.separator}{/if}{/foreach} {if $element.type eq "group"}
{else} {foreach key=gkey item=gitem from=$element.elements}
{$element.html} {$gitem.label}{$gitem.html}
{/if} {if $gitem.required}<font color="red">*</font>{/if}
<div style="font-size: 80%;">{$element.label_note}</div> {if $element.separator}{cycle values=$element.separator}
{/if}
{/foreach}
{else}
{$element.html}
{/if}
<div style="font-size: 80%;">{$element.label_note}</div>
</div> </div>
{/if} {/if}
{/foreach} {/foreach}
@ -44,7 +47,6 @@
{$dynform.requirednote} {$dynform.requirednote}
</div> </div>
{/if} {/if}
</form> </form>
<!-- <!--

View file

@ -1,13 +1,9 @@
{$dynform.javascript} {$dynform.javascript}
<!-- start dynForm_sections -->
<table border="0" class="maintable">
<form{$dynform.attributes}>{$dynform.hidden} <form{$dynform.attributes}>{$dynform.hidden}
{foreach item=sec key=i from=$dynform.sections} {foreach item=sec key=i from=$dynform.sections}
<tr> <h1>##{$sec.header}##</h1>
<td class="header" colspan="2">
<b>{$sec.header}</b></td>
</tr>
{foreach item=element from=$sec.elements} {foreach item=element from=$sec.elements}
@ -26,54 +22,63 @@
<!-- submit or reset button (don't display on frozen forms) --> <!-- submit or reset button (don't display on frozen forms) -->
{elseif $element.type eq "submit" or $element.type eq "reset"} {elseif $element.type eq "submit" or $element.type eq "reset"}
{if not $dynform.frozen} {if not $dynform.frozen}
<tr> <div class="container_button_upload">
<td>&nbsp;</td> {$element.html}
<td align="left">{$element.html}</td> </div>
</tr>
{/if} {/if}
<!-- normal elements --> <!-- normal elements -->
{else} {else}
<tr>
{if $element.type eq "textarea"} {if $element.type eq "textarea"}
<td colspan="2"> <div class="container_search">
{if $element.required}<font color="red">*</font>{/if}<b>{$element.label}</b><br /> <label>
{$element.label}
{if $element.required}<font color="red">*</font>{/if}
</label>
</div>
{else} {else}
<td align="right" valign="top"> <div class="container_search">
{if $element.required}<font color="red">*</font>{/if}<b>{$element.label}:</b></td> <label>
<td> {$element.label}
{if $element.required}<font color="red">*</font>{/if}
</label>
</div>
{/if} {/if}
{if $element.error}<font color="red">{$element.error}</font><br />{/if} {if $element.error}
<label><font color="red">{$element.error}</font></label>
{/if}
{if $element.type eq "group"} {if $element.type eq "group"}
{foreach key=gkey item=gitem from=$element.elements} {foreach key=gkey item=gitem from=$element.elements}
<label>
{$gitem.label} {$gitem.label}
{$gitem.html}{if $gitem.required}<font color="red">*</font>{/if} {$gitem.html}{if $gitem.required}<font color="red">*</font>{/if}
</label>
{if $element.separator}{cycle values=$element.separator}{/if} {if $element.separator}{cycle values=$element.separator}{/if}
{/foreach} {/foreach}
{else} {else}
{$element.html} {$element.html}
{/if} {/if}
<div style="font-size: 80%;">{$element.label_note}</div> <div style="font-size: 80%;">{$element.label_note}</div>
</td>
</tr>
{/if} {/if}
{/foreach} {/foreach}
{/foreach} {/foreach}
{if $dynform.requirednote and not $dynform.frozen} {if $dynform.requirednote and not $dynform.frozen}
<tr> <div class="container_search">
<td>&nbsp;</td> <label>
<td valign="top">{$dynform.requirednote}</td> {if $element.required}<font color="red">*</font>{/if}
</tr> {$dynform.requirednote}
</label>
</div>
{/if} {/if}
</form> </form>
</table>
&nbsp; {*
<p><b>Collected Errors:</b><br /> <p><b>Collected Errors:</b><br />
{foreach key=name item=error from=$dynform.errors} {foreach key=name item=error from=$dynform.errors}
<font color="red">{$error}</font> in element [{$name}]<br /> <font color="red">{$error}</font> in element [{$name}]<br />
{/foreach} {/foreach}
</p> </p>
*}
<!-- end dynForm_sections -->

View file

@ -1,11 +1,11 @@
{*Smarty template*} {*Smarty template*}
{if $USER.userid} {if $USER.userid}
Login: {$USER.login} <div class="loginname">##Signed in## : {$USER.login}</div>
<br> <input type="button" class="button" value="{tra 0=logout}" onClick='javascript: popup("{$UI_BROWSER}?popup[]=logout", "name", "350", "100");'/>
<a href='javascript: popup("{$UI_BROWSER}?popup[]=logout", "name", "350", "100");'>[logout]</a> {*
<a href='javascript: popup("{$UI_BROWSER}?popup[]=signover_1", "name", "350", "160");'>[sign over]</a> <input type="button" class="button" value="{tra 0='sign over'}" onClick='javascript: popup("{$UI_BROWSER}?popup[]=signover_1", "name", "350", "160");'/>
*}
{else} {else}
<a href='javascript: popup("{$UI_BROWSER}?popup[]=login", "name", "350", "160");'>[login]</a> <input type="button" class="button" value="{tra 0=login}" onClick='javascript: popup("{$UI_BROWSER}?popup[]=login", "name", "350", "160");'/>
{/if} {/if}

View file

@ -20,9 +20,9 @@ function errCallBack($err)
function tra($input) function tra($input)
{ {
// just a dummy function yet // just a dummy function yet
$nr=func_num_args(); $nr = func_num_args();
if ($nr>1) if ($nr > 1)
for ($i=1; $i<$nr; $i++){ for ($i = 1; $i < $nr; $i++){
$name = '$'.$i; $name = '$'.$i;
$val = func_get_arg($i); $val = func_get_arg($i);
$input = str_replace($name, $val, $input); $input = str_replace($name, $val, $input);
@ -91,10 +91,14 @@ class uiBase
$this->dbc->setFetchMode(DB_FETCHMODE_ASSOC); $this->dbc->setFetchMode(DB_FETCHMODE_ASSOC);
$this->gb =& new GreenBox($this->dbc, $config); $this->gb =& new GreenBox($this->dbc, $config);
$this->config =& $config; $this->config =& $config;
$this->config['accessRawAudioUrl'] = $config['storageUrlPath'].'/xmlrpc/simpleGet.php'; $this->config['accessRawAudioUrl'] = $config['storageUrlPath'].'/xmlrpc/simpleGet.php';
$this->sessid = $_REQUEST[$config['authCookieName']]; $this->sessid = $_REQUEST[$config['authCookieName']];
$this->userid = $this->gb->getSessUserId($this->sessid); $this->userid = $this->gb->getSessUserId($this->sessid);
$this->login = $this->gb->getSessLogin($this->sessid); $this->login = $this->gb->getSessLogin($this->sessid);
$this->langid =& $_SESSION['lanid'];
$this->id = $_REQUEST['id'] ? $_REQUEST['id'] : $this->gb->getObjId($this->login, $this->gb->storId); $this->id = $_REQUEST['id'] ? $_REQUEST['id'] : $this->gb->getObjId($this->login, $this->gb->storId);
$this->pid = $this->gb->getparent($this->id) != 1 ? $this->gb->getparent($this->id) : FALSE; $this->pid = $this->gb->getparent($this->id) != 1 ? $this->gb->getparent($this->id) : FALSE;
$this->type = $this->gb->getFileType($this->id); $this->type = $this->gb->getFileType($this->id);

View file

@ -146,6 +146,7 @@ class uiBrowse
function searchDB() function searchDB()
{ {
$this->results = array('page' => $this->criteria['offset']/$this->criteria['limit']); $this->results = array('page' => $this->criteria['offset']/$this->criteria['limit']);
$this->criteria['conditions'] = array(); $this->criteria['conditions'] = array();
for($col=4; $col>=1; $col--) { for($col=4; $col>=1; $col--) {
if (is_array($this->col[$col]['criteria'])) { if (is_array($this->col[$col]['criteria'])) {
@ -158,6 +159,24 @@ class uiBrowse
foreach ($results['results'] as $rec) { foreach ($results['results'] as $rec) {
$this->results['items'][] = $this->Base->_getMetaInfo($this->Base->gb->_idFromGunid($rec)); $this->results['items'][] = $this->Base->_getMetaInfo($this->Base->gb->_idFromGunid($rec));
} }
/*
## test
for ($n=0; $n<=$this->criteria['limit']; $n++) {
$this->results['items'][] = Array
(
'id' => 24,
'gunid' => '1cc472228d0cb2ac',
'title' => 'Strom 10min',
'creator' => 'Sebastian',
'duration' => '&nbsp;&nbsp;&nbsp;10:00',
'type' => 'webstream'
);
}
$results['cnt'] = 500;
$this->results['cnt'] = $results['cnt'];
## end test
*/
$this->pagination($results); $this->pagination($results);
#print_r($this->criteria); #print_r($this->criteria);
#print_r($this->results); #print_r($this->results);

View file

@ -18,7 +18,7 @@ $uiBase =& $uiBrowser;
## load Smarty+filters ############################################## ## load Smarty+filters ##############################################
require_once dirname(__FILE__).'/SmartyExtensions.inc.php'; require_once dirname(__FILE__).'/SmartyExtensions.inc.php';
#$Smarty->load_filter('output', 'trimwhitespace'); #$Smarty->load_filter('output', 'trimwhitespace');
$Smarty->load_filter('post', 'template_marker'); #$Smarty->load_filter('post', 'template_marker');
$Smarty->load_filter('output', 'localizer'); $Smarty->load_filter('output', 'localizer');
@ -28,15 +28,15 @@ $Smarty->assign('UI_HANDLER', UI_HANDLER);
$Smarty->assign('ACT', $_REQUEST['act']); $Smarty->assign('ACT', $_REQUEST['act']);
$Smarty->assign('CONFIG', $config); $Smarty->assign('CONFIG', $config);
$Smarty->assign('START', array( $Smarty->assign('START', array(
'id' => &$uiBrowser->id, 'id' => &$uiBrowser->id,
'pid' => &$uiBrowser->pid, 'pid' => &$uiBrowser->pid,
'fid' => &$uiBrowser->fid, 'fid' => &$uiBrowser->fid,
'sessid' => &$uiBrowser->sessid 'sessid' => &$uiBrowser->sessid)
)); );
$Smarty->assign('USER', array('sessid' => &$uiBrowser->sessid, $Smarty->assign('USER', array('sessid' => &$uiBrowser->sessid,
'userid' => &$uiBrowser->userid, 'userid' => &$uiBrowser->userid,
'login' => &$uiBrowser->login 'login' => &$uiBrowser->login)
)); );
$uiBrowser->loadStationPrefs($ui_fmask['stationPrefs']); $uiBrowser->loadStationPrefs($ui_fmask['stationPrefs']);
$Smarty->assign('STATIONPREFS', $uiBrowser->STATIONPREFS); $Smarty->assign('STATIONPREFS', $uiBrowser->STATIONPREFS);

View file

@ -16,7 +16,6 @@ define('UI_QFORM_REQUIRED', '../templates/sub/form_required.tpl');
define('UI_QFORM_REQUIREDNOTE', '../templates/sub/form_requirednote.tpl'); define('UI_QFORM_REQUIREDNOTE', '../templates/sub/form_requirednote.tpl');
define('UI_QFORM_ERROR', '../templates/sub/form_error.tpl'); define('UI_QFORM_ERROR', '../templates/sub/form_error.tpl');
define('UI_SEARCH_MAX_ROWS', 8); define('UI_SEARCH_MAX_ROWS', 8);
define('UI_SEARCH_MIN_ROWS', 2);
define('UI_REGEX_URL', '/^(ht|f)tps?:\/\/[^ ]+$/'); define('UI_REGEX_URL', '/^(ht|f)tps?:\/\/[^ ]+$/');
define('UI_PL_ACCESSTOKEN_KEY', 'playlistToken'); define('UI_PL_ACCESSTOKEN_KEY', 'playlistToken');
define('UI_SCRATCHPAD_KEY', 'djBagContents'); define('UI_SCRATCHPAD_KEY', 'djBagContents');

View file

@ -41,14 +41,14 @@ class uiHandler extends uiBase {
#$this->_cleanArray($_SESSION); #$this->_cleanArray($_SESSION);
if (!$this->_validateForm($formdata, $mask)) { if (!$this->_validateForm($formdata, $mask)) {
$_SESSION['retransferFormData']['login']=$formdata['login']; $_SESSION['retransferFormData']['login'] = $formdata['login'];
$this->redirUrl = UI_BROWSER.'?popup[]=login'; $this->redirUrl = UI_BROWSER.'?popup[]=login';
return FALSE; return FALSE;
} }
$sessid = $this->gb->login($formdata['login'], $formdata['pass']); $sessid = $this->gb->login($formdata['login'], $formdata['pass']);
if(!$sessid || PEAR::isError($sessid)){ if(!$sessid || PEAR::isError($sessid)){
$this->_retMsg('Login failed'); $this->_retMsg('Login failed');
$_SESSION['retransferFormData']['login']=$formdata['login']; $_SESSION['retransferFormData']['login'] = $formdata['login'];
$this->redirUrl = UI_BROWSER.'?popup[]=login'; $this->redirUrl = UI_BROWSER.'?popup[]=login';
return FALSE; return FALSE;
} }
@ -63,6 +63,7 @@ class uiHandler extends uiBase {
return FALSE; return FALSE;
} }
$this->sessid = $sessid; $this->sessid = $sessid;
$this->langid = $formdata['langid'];
$this->redirUrl = UI_BROWSER.'?popup[]=_clear_parent&popup[]=_close'; $this->redirUrl = UI_BROWSER.'?popup[]=_clear_parent&popup[]=_close';
return TRUE; return TRUE;
} }

View file

@ -10,9 +10,8 @@ $uiHandler =& new uiHandler($config);
$uiBase =& $uiHandler; $uiBase =& $uiHandler;
?> ?>
<html> <html>
<link rel="stylesheet" href="styles.css">
<body> <body>
Your request is processed... <img src="img/progress.gif">
<?php <?php
ob_start(); ob_start();
?> ?>

View file

@ -357,7 +357,7 @@ class uiPlaylist
{ {
include dirname(__FILE__).'/formmask/metadata.inc.php'; include dirname(__FILE__).'/formmask/metadata.inc.php';
#$id = $this->activeId; $id = $this->activeId;
foreach ($mask['playlist'] as $k=>$v) { foreach ($mask['playlist'] as $k=>$v) {
$mask['playlist'][$k]['element'] = $this->Base->_formElementEncode($v['element']); $mask['playlist'][$k]['element'] = $this->Base->_formElementEncode($v['element']);
@ -409,6 +409,7 @@ class uiPlaylist
foreach ($data as $key=>$val) { foreach ($data as $key=>$val) {
$r = $this->Base->gb->setMDataValue($id, $key, $this->Base->sessid, $val); $r = $this->Base->gb->setMDataValue($id, $key, $this->Base->sessid, $val);
if (PEAR::isError($r)) { if (PEAR::isError($r)) {
#print_r($r);
$this->Base->_retMsg('Unable to set $1: $2', $key, $val); $this->Base->_retMsg('Unable to set $1: $2', $key, $val);
} }
} }

View file

@ -85,6 +85,7 @@ class uiScratchPad
for ($n=0; $n<$this->Base->STATIONPREFS[UI_SCRATCHPAD_MAXLENGTH_KEY]; $n++) { for ($n=0; $n<$this->Base->STATIONPREFS[UI_SCRATCHPAD_MAXLENGTH_KEY]; $n++) {
if (is_array($sp[$n])) $this->items[$n] = $sp[$n]; if (is_array($sp[$n])) $this->items[$n] = $sp[$n];
} }
ksort($this->items);
} }

View file

@ -32,7 +32,7 @@ class uiSearch
#print_r($this->criteria['form']); #print_r($this->criteria['form']);
include dirname(__FILE__).'/formmask/metadata.inc.php'; include dirname(__FILE__).'/formmask/metadata.inc.php';
$form = new HTML_QuickForm('search', UI_STANDARD_FORM_METHOD, UI_HANDLER); $form = new HTML_QuickForm('search', UI_STANDARD_FORM_METHOD, UI_HANDLER);
$form->setConstants(array('id'=>$id, 'counter'=>$this->criteria['counter'] ? $this->criteria['counter'] : UI_SEARCH_MIN_ROWS)); $form->setConstants(array('id'=>$id, 'counter'=>$this->criteria['counter'] ? $this->criteria['counter'] : 1));
foreach ($mask['pages'] as $key=>$val) { foreach ($mask['pages'] as $key=>$val) {
foreach ($mask['pages'][$key] as $v){ foreach ($mask['pages'][$key] as $v){
@ -45,10 +45,10 @@ class uiSearch
} }
}; };
}; };
for($n=1; $n<=UI_SEARCH_MAX_ROWS; $n++) { for($n = 1; $n <= UI_SEARCH_MAX_ROWS; $n++) {
unset ($group); unset ($group);
$form->addElement('static', 's1', NULL, "<div id='searchRow_$n'>"); $form->addElement('static', 's1', NULL, "<div id='searchRow_$n'>");
if ($n>UI_SEARCH_MIN_ROWS && $n>$this->criteria['counter']) $form->addElement('static', 's1_style', NULL, "<style type='text/css'>#searchRow_$n {visibility : hidden; height : 0px;}</style>"); if ($n > 1 && $n > $this->criteria['counter']) $form->addElement('static', 's1_style', NULL, "<style type='text/css'>#searchRow_$n {display:none; height : 0px;}</style>");
$sel = &$form->createElement('hierselect', "row_$n", NULL); $sel = &$form->createElement('hierselect', "row_$n", NULL);
$sel->setOptions(array($col1, $col2)); $sel->setOptions(array($col1, $col2));
$group[] = &$sel; $group[] = &$sel;
@ -147,6 +147,7 @@ class uiSearch
function searchDB() function searchDB()
{ {
$this->results = array('page' => $this->criteria['offset']/$this->criteria['limit']); $this->results = array('page' => $this->criteria['offset']/$this->criteria['limit']);
#print_r($this->criteria); #print_r($this->criteria);
$results = $this->Base->gb->localSearch($this->criteria, $this->Base->sessid); $results = $this->Base->gb->localSearch($this->criteria, $this->Base->sessid);
if (PEAR::isError($results)) { if (PEAR::isError($results)) {
@ -157,6 +158,25 @@ class uiSearch
$this->results['items'][] = $this->Base->_getMetaInfo($this->Base->gb->_idFromGunid($rec)); $this->results['items'][] = $this->Base->_getMetaInfo($this->Base->gb->_idFromGunid($rec));
} }
$this->results['cnt'] = $results['cnt']; $this->results['cnt'] = $results['cnt'];
/*
## test
for ($n=0; $n<=$this->criteria['limit']; $n++) {
$this->results['items'][] = Array
(
'id' => 24,
'gunid' => '1cc472228d0cb2ac',
'title' => 'Strom 10min',
'creator' => 'Sebastian',
'duration' => '&nbsp;&nbsp;&nbsp;10:00',
'type' => 'webstream'
);
}
$results['cnt'] = 500;
$this->results['cnt'] = $results['cnt'];
## end test
*/
#print_r($this->results); #print_r($this->results);
$this->pagination($results); $this->pagination($results);
} }