Issue 2385: Admin UI Refactoring - Advanced - Widgets

git-svn-id: http://xe-core.googlecode.com/svn/branches/maserati@11685 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
flyskyko 2012-10-15 02:59:49 +00:00
parent 41d3059d66
commit 5a450211ba
23 changed files with 446 additions and 663 deletions

View file

@ -1,41 +1,42 @@
<include target="header.html" />
<div class="table even easyList dsTg">
<table width="100%" border="1" cellspacing="0">
<caption>
All({$tCount})
<span class="side"><button type="button" class="text"><span class="hide">{$lang->simple_view}</span><span class="show">{$lang->detail_view}</span></button></span>
</caption>
<thead>
<tr>
<th scope="col" class="title">{$lang->widget_name}</th>
<th scope="col" class="nowr">{$lang->version}</th>
<th scope="col" class="nowr">{$lang->author}</th>
<th scope="col" class="nowr">{$lang->path}</th>
<th scope="col" class="nowr">{$lang->cmd_generate_code}</th>
<th scope="col" class="nowr">{$lang->cmd_delete}</th>
</tr>
</thead>
<tbody>
<tr loop="$widget_list => $widget">
<td class="title">
<p><strong>{$widget->title}</strong></p>
<p>{$widget->description}</p>
<p cond="$widget->need_update == 'Y'" class="update">
{$lang->msg_avail_easy_update} <a href="{$widget->update_url}&amp;return_url={urlencode(getRequestUriByServerEnviroment())}">{$lang->msg_do_you_like_update}</a>
</p>
</td>
<td class="nowr">{$widget->version}</td>
<td class="nowr">
<block loop="$widget->author => $author">
<a cond="$author->homepage" href="{$author->homepage}" target="_blank">{$author->name}</a>
<block cond="!$author->homepage">{$author->name}</block>
</block>
</td>
<td class="nowr">{$widget->path}</td>
<td class="nowr"><a href="{getUrl('act', 'dispWidgetAdminGenerateCode', 'selected_widget', $widget->widget)}">{$lang->cmd_generate_code}</a></td>
<td class="nowr"><a cond="$widget->remove_url" href="{$widget->remove_url}&amp;return_url={urlencode(getRequestUriByServerEnviroment())}">{$lang->cmd_delete}</a></td>
</tr>
</tbody>
</table>
</div>
<table class="x_table x_table-striped x_table-hover dsTg">
<caption>
All({$tCount})
<div class="x_pull-right x_btn-group">
<button class="x_btn x_btn-mini x_active __simple">{$lang->simple_view}</button>
<button class="x_btn x_btn-mini __detail">{$lang->detail_view}</button>
</div>
</caption>
<thead>
<tr>
<th scope="col" class="title">{$lang->widget_name}</th>
<th scope="col" class="nowr">{$lang->version}</th>
<th scope="col" class="nowr">{$lang->author}</th>
<th scope="col" class="nowr">{$lang->path}</th>
<th scope="col" class="nowr">{$lang->cmd_generate_code}</th>
<th scope="col" class="nowr">{$lang->cmd_delete}</th>
</tr>
</thead>
<tbody>
<tr loop="$widget_list => $widget">
<td class="title">
<p><strong>{$widget->title}</strong></p>
<p>{$widget->description}</p>
<p cond="$widget->need_update == 'Y'" class="update">
{$lang->msg_avail_easy_update} <a href="{$widget->update_url}&amp;return_url={urlencode(getRequestUriByServerEnviroment())}">{$lang->msg_do_you_like_update}</a>
</p>
</td>
<td class="nowr">{$widget->version}</td>
<td class="nowr">
<block loop="$widget->author => $author">
<a cond="$author->homepage" href="{$author->homepage}" target="_blank">{$author->name}</a>
<block cond="!$author->homepage">{$author->name}</block>
</block>
</td>
<td class="nowr">{$widget->path}</td>
<td class="nowr"><a class="x_btn" href="{getUrl('act', 'dispWidgetAdminGenerateCode', 'selected_widget', $widget->widget)}">{$lang->cmd_generate_code}</a></td>
<td class="nowr"><a class="x_btn x_btn-danger" cond="$widget->remove_url" href="{$widget->remove_url}&amp;return_url={urlencode(getRequestUriByServerEnviroment())}">{$lang->cmd_delete}</a></td>
</tr>
</tbody>
</table>

View file

@ -1,4 +1,6 @@
<h1 class="h1">{$lang->installed_widgets}</h1>
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
<div class="x_page-header">
<h1>{$lang->installed_widgets}</h1>
</div>
<div cond="$XE_VALIDATOR_MESSAGE" class="x_alert x_alert-{$XE_VALIDATOR_MESSAGE_TYPE}">
<p>{$XE_VALIDATOR_MESSAGE}</p>
</div>
</div>

View file

@ -41,12 +41,12 @@ function doDisplaySkinColorset(colorset)
function doHideSkinColorset()
{
jQuery('select[name=colorset]').parents('li').hide();
jQuery('select[name=colorset]').closest('.x_control-group').hide();
}
function doShowSkinColorset()
{
jQuery('select[name=colorset]').parents('li').show();
jQuery('select[name=colorset]').closest('.x_control-group').show();
}
function completeGenerateCodeInPage(widget_code) {
@ -219,7 +219,7 @@ jQuery(document).ready(function($){
if(src instanceof Object ) {
for(var i=0;i<src.length;i++){
if(src[i].id) {
htmlCode += '<img src="'+src[i].id+'" alt="" style="border: 1px solid #ccc; padding: 5px; max-height: 200px; max-width: 200px;"><button class="filebox_del text" type="button">'+xe.lang.cmd_delete+'</button>';
htmlCode += '<img src="'+src[i].id+'" alt="" style="border: 1px solid #ccc; padding: 5px; max-height: 200px; max-width: 200px;"><button class="filebox_del x_btn x_btn-mini x_btn-danger" type="button">'+xe.lang.cmd_delete+'</button> ';
if(i==0) $(this).siblings('input').val(src[i].id);
else {
var aux = $(this).siblings('input').val();
@ -228,7 +228,7 @@ jQuery(document).ready(function($){
}
else {
if(src[i]){
htmlCode += '<img src="'+src[i]+'" alt="" style="border: 1px solid #ccc; padding: 5px; max-height: 200px; max-width: 200px;"><button class="filebox_del text" type="button">'+xe.lang.cmd_delete+'</button>';
htmlCode += '<img src="'+src[i]+'" alt="" style="border: 1px solid #ccc; padding: 5px; max-height: 200px; max-width: 200px;"><button class="filebox_del x_btn x_btn-mini x_btn-danger" type="button">'+xe.lang.cmd_delete+'</button> ';
if(i==0) $(this).siblings('input').val(src[i]);
else {
var aux = $(this).siblings('input').val();
@ -238,7 +238,7 @@ jQuery(document).ready(function($){
}
}
} else {
htmlCode = '<img src="'+src+'" alt="" style="border: 1px solid #ccc; padding: 5px; max-height: 200px; max-width: 200px;"> <button class="filebox_del text" type="button">'+xe.lang.cmd_delete+'</button>';
htmlCode = '<img src="'+src+'" alt="" style="border: 1px solid #ccc; padding: 5px; max-height: 200px; max-width: 200px;"> <button class="filebox_del x_btn x_btn-mini x_btn-danger" type="button">'+xe.lang.cmd_delete+'</button> ';
$(this).siblings('input').val(src);
}
$(this).before(htmlCode);

View file

@ -6,31 +6,20 @@ xe.MidManager = xe.createApp("MidManager", {
init: function(key){
var self = this;
var $keyObj = this.$keyObj = $('.extra_vars input[name='+key+']');
var $finder = $keyObj.siblings('.finder');
$keyObj.siblings('button.search').bind('click', function(){
$finder.slideDown(100);
return false;
});
$keyObj.parent().find('button.delete,a.delete').bind('click', function(){
$keyObj.val('').next().val('');
return false;
});
$finder.find('.moduleIdList').siblings('button').bind('click', function(){
$keyObj.val($finder.find('.moduleIdList').val());
self.cast('MID_SYNC');
$finder.slideUp(100);
return false;
});
jQuery(function($){
$('.moduleSearch').bind('moduleSelect', function(e, aSelected){
$keyObj.siblings('.moduleTrigger').bind('moduleSelect', function(e, aSelected){
self.cast('MID_SYNC_NEW', aSelected);
});
});
self.cast('MID_SYNC');
},
API_MID_SYNC: function(){
@ -52,27 +41,18 @@ xe.MidManager = xe.createApp("MidManager", {
$.exec_json('module.getModuleAdminModuleList', {'module_srls': module_srl}, on_complete);
},
API_MID_SYNC_NEW: function(htBase, aParam){
var self = this;
htSelected = aParam[0];
var module_srl = htSelected.module_srl;
if (!module_srl) return;
function on_complete(data){
if (data.error){
alert(data.message);
return;
}
self.$keyObj.val(data.module_list[0].module_srl);
self.$keyObj.next().val(data.module_list[0].browser_title+' ('+data.module_list[0].mid+', '+data.module_list[0].module_name+')');
}
$.exec_json('module.getModuleAdminModuleList', {'module_srls': module_srl}, on_complete);
self.$keyObj.val(htSelected.module_srl);
self.$keyObj.next().val(htSelected.browser_title+' ('+htSelected.mid+', '+htSelected.type+')');
}
});
})(jQuery);
})(jQuery);

View file

@ -15,7 +15,6 @@ xe.ModuleListManager = xe.createApp("ModuleListManager", {
this.$selectedObj
.nextAll('button')
.filter('.modulelist_add').bind('click', function(){ self.cast('MODULELIST_ADD'); return false; }).hide().end()
.filter('.modulelist_del').bind('click', function(){ self.cast('MODULELIST_DEL'); return false; }).end()
.filter('.modulelist_up').bind('click', function(){ self.cast('MODULELIST_UP'); return false; }).end()
.filter('.modulelist_down').bind('click', function(){ self.cast('MODULELIST_DOWN'); return false; }).end()
@ -24,6 +23,17 @@ xe.ModuleListManager = xe.createApp("ModuleListManager", {
$(this).nextAll().show();
});
this.$selectedObj.nextAll('a').filter('.moduleTrigger').bind('moduleSelect', function(e, aSelected){
var sType, sName, sSrl;
for(var i=0, nLen=aSelected.length; i<nLen; i++){
sType = aSelected[i].mid + ', ' + aSelected[i].type;
sName = aSelected[i].browser_title;
sSrl = aSelected[i].module_srl;
self.cast("ADD_MODULE_TO_MODULELIST_MANAGER", [sType, sName, sSrl]);
}
}).end()
this.cast('MODULELIST_SYNC');
},
@ -74,7 +84,7 @@ xe.ModuleListManager = xe.createApp("ModuleListManager", {
for(var i in data.module_list){
var module = data.module_list[i];
var obj = $(document.createElement('option'));
obj.val(module.module_srl).html(module.browser_title+' ('+module.module_name+')').appendTo(self.$selectedObj);
obj.val(module.module_srl).html(module.browser_title + ' (' + module.mid + ', ' + module.module_name + ')').appendTo(self.$selectedObj);
}
}

View file

@ -1,30 +0,0 @@
(function($){
xe.MultiLangManager = xe.createApp("MultiLangManager", {
$keyObj: null,
init: function(key){
var $keyObj = this.$keyObj = $('.extra_vars input[name='+key+']');
},
API_MULTILANG_SYNC: function(){
var self = this;
var regexp = /^\$user_lang\-\>/;
var langCode = this.$keyObj.val();
if (!regexp.test(langCode)) return;
function on_complete(data){
if (data.error){
alert(data.message);
return;
}
$('#' + self.$keyObj.attr('name')).val(data.lang);
}
$.exec_json('module.getLangByLangcode', {'langCode': langCode}, on_complete);
}
});
})(jQuery);

View file

@ -11,8 +11,8 @@ xe.MultiOrderManager = xe.createApp("MultiOrderManager", {
this.$showObj = $keyObj.parent().find('.multiorder_show');
this.$selectedObj = $keyObj.parent().find('.multiorder_selected');
this.$showObj
.nextAll('button')
this.$keyObj.parent()
.find('button')
.filter('.multiorder_add').bind('click', function(){ self.cast('MULTIORDER_ADD'); return false; }).end()
.filter('.multiorder_del').bind('click', function(){ self.cast('MULTIORDER_DEL'); return false; }).end()
.filter('.multiorder_up').bind('click', function(){ self.cast('MULTIORDER_UP'); return false; }).end()
@ -72,4 +72,4 @@ xe.MultiOrderManager = xe.createApp("MultiOrderManager", {
}
});
})(jQuery);
})(jQuery);

View file

@ -1,103 +0,0 @@
<block cond="$use_filebox">
<style>
.filebox_item { border: 1px solid #ccc!important; padding: 5px; max-height: 200px; max-width: 200px; }
</style>
<div class="modal" id="modalFilebox">
<div class="fg portlet">
<h2 class="h2">FileBox</h2>
<div class="filebox_list"></div>
<h2 class="h2">Upload</h2>
<form id="filebox_upload" class="form" action="./" method="post" enctype="multipart/form-data">
<input type="hidden" name="module" value="module" />
<input type="hidden" name="act" value="procModuleFileBoxAdd" />
<input type="hidden" name="ajax" value="true" />
<table cellspacing="0" id="attributes">
<tr>
<td>
<label for="attribute_name1">{$lang->attribute_name} </label><input type="text" name="attribute_name1" id="attribute_name1" />
</td>
<td>
<label for="attribute_value1">{$lang->attribute_value} </label><input type="text" name="attribute_value1" id="attribute_value1" />
</td>
<td><a href="javascript:addRow('attributes')">{$lang->add}</a></td>
<td><a href="javascript:clearRow('attributes',1)">{$lang->delete}</a></td>
</tr>
<tr>
<td>
<label for="file">{$lang->file}</label><input type="file" name="addfile" id="file"/>
</td>
</tr>
</table>
<div class="btnArea">
<span class="btn small"><input type="submit" value="{$lang->cmd_submit}" /></span>
</div>
</form>
</div>
</div>
<script>
xe.lang.cmd_delete = '{$lang->cmd_delete}';
function addRow(tableID){
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
var initial = table.rows(0);
var text1 = initial.cells(0).children(0).innerHTML;
var text2 = initial.cells(1).children(0).innerHTML;
var addrow = table.rows(rowCount-2).cells(2).children(0);
var deleteLink = table.rows(rowCount-2).cells(3).children(0).cloneNode(true);
var row = table.insertRow(rowCount-1);
//cell for attribute name
var cell0= row.insertCell(0)
var element0 = document.createElement("label");
element0.innerHTML = text1;
element0.htmlFor = "attribute_name"+rowCount;
cell0.appendChild(element0);
var element1 = document.createElement("input");
element1.type = "text";
element1.name="attribute_name"+rowCount;
element1.id="attribute_name"+rowCount;
cell0.appendChild(element1);
//cell for attribute value
var cell1 = row.insertCell(1);
var element2 = document.createElement("label");
element2.innerHTML = text2;
element2.htmlFor = "attribute_value"+rowCount;
cell1.appendChild(element2);
var element3 = document.createElement("input");
element3.type = "text";
element3.id="attribute_value"+rowCount;
element3.name="attribute_value"+rowCount;
cell1.appendChild(element3);
//cell for addrow link
var cell2 = row.insertCell(2);
cell2.appendChild(addrow);
//cell for delete link
var cell3 = row.insertCell(3);
deleteLink.href = "javascript:clearRow('attributes',"+rowCount+")";
cell3.appendChild(deleteLink);
}
function clearRow(tableID,rowNumber){
var table = document.getElementById(tableID);
var text = "attribute_name"+rowNumber;
var rowCount = table.rows.length;
var sw = 0;
for(i=0;i<rowCount-2;i++){
if(table.rows(i).cells[0].children(1).id == text) {
table.deleteRow(i);
sw = 1;
}
}
if(!sw){
var addrow = table.rows(rowCount-2).cells(2).children(0);
table.rows(rowCount-3).cells(2).appendChild(addrow);
table.deleteRow(rowCount-2);
}
}
</script>
</block>

View file

@ -1,25 +1,32 @@
<include cond="$in_admin" target="header.html" />
<load target="js/generate_code.js" usecdn="true" />
<h2 class="h2">{$widget_info->title}</h2>
<p>{$widget_info->description}</p>
<form id="widget_code_form" class="form" action="./" method="post">
<div class="x_well">
<h2>{$widget_info->title}</h2>
<p>{$widget_info->description}</p>
</div>
<form id="widget_code_form" class="x_form-horizontal x_well" action="./" method="post">
<input type="hidden" name="module" value="widget" />
<input type="hidden" name="act" value="procWidgetGenerateCode" />
<input type="hidden" name="selected_widget" value="{$widget_info->widget}" />
<h3 class="h3">{$lang->cmd_generate_code}</h3>
<h3>{$lang->cmd_generate_code}</h3>
<p>{$lang->about_widget_code}</p>
<include target="widget_generate_code.include.html" />
<div class="btnArea">
<span class="btn small"><input type="submit" value="{$lang->cmd_generate_code}" /></span>
<input type="submit" class="x_btn x_btn-primary" value="{$lang->cmd_generate_code}" />
</div>
</form>
<h3 class="h3">{$lang->widget_code}</h3>
<p><textarea id="widget_code" rows="8" cols="42" style="width: 100%; height: 50px;" readonly="readonly"></textarea>
<div class="x_well">
<h3>{$lang->widget_code}</h3>
<p><textarea id="widget_code" rows="8" cols="42" style="width: 100%; height: 50px;" readonly="readonly"></textarea>
</div>
<div class="btnArea">
<a href="{getUrl('', 'module', 'admin', 'act', 'dispWidgetAdminDownloadedList')}" class="x_btn">{$lang->cmd_list}</a>
</div>
<include target="../../module/tpl/include.filebox.html" />
<include target="widget_generate_code.multilang.html" />
<include target="widget_generate_code.multilang.textarea.html" />

View file

@ -4,66 +4,58 @@
<load target="js/multi_lang.js" usecdn="true" />
<!--%load_js_plugin("ui.colorpicker")-->
<ul>
<li>
<p class="q"><label for="skin">{$lang->skin}</label></p>
<p class="a">
<select name="skin" id="skin" style="width:280px">
<div class="x_control-group">
<label class="x_control-label" for="skin">{$lang->skin}</label>
<div class="x_controls">
<select name="skin" id="skin" style="width:220px">
<option value="">{$lang->select}</option>
<option loop="$skin_list => $skin_name, $skin" value="{$skin_name}">{$skin->title} ({$skin_name})</option>
</select>
<input type="button" value="{$lang->cmd_select}" />
</p>
</li>
<li>
<p class="q"><label for="colorset">{$lang->colorset}</label></p>
<p class="a">
<select name="colorset" id="widget_colorset" style="width:280px">
</select>
</p>
</li>
<li>
<p class="q"><label for="widget_cache">{$lang->widget_cache}</label></p>
<p class="a">
<input type="text" name="widget_cache" id="widget_cache" value="0" size="2" style="width:auto" /> {$lang->unit_min}
({$lang->about_widget_cache})
</p>
</li>
</ul>
<input type="button" class="x_btn" value="{$lang->cmd_select}" />
</div>
</div>
<div class="x_control-group">
<label class="x_control-label" for="colorset">{$lang->colorset}</label>
<div class="x_controls">
<select name="colorset" id="widget_colorset" style="width:220px">
</select>
</div>
</div>
<div class="x_control-group">
<label class="x_control-label" for="widget_cache">{$lang->widget_cache}</label>
<div class="x_controls">
<input type="text" name="widget_cache" id="widget_cache" value="0" size="2" style="width:auto" /> {$lang->unit_min}
<span class="x_help-block">{$lang->about_widget_cache}</span>
</div>
</div>
{@$suggestion_id = 0}
<block loop="$widget_info->extra_var => $id, $var">
{@$suggestion_id++}
<block cond="!$not_first && !$var->group"><ul class="extra_vars"></block>
<block cond="!$not_first && !$var->group"><section class="extra_vars section"></block>
<block cond="$group != $var->group">
<block cond="$not_first"></ul></block>
<h3 class="h3">{$var->group}</h3>
<ul class="extra_vars">
<block cond="$not_first"></section></block>
<section class="extra_vars section">
<h1>{$var->group}</h3>
{@$group = $var->group}
</block>
{@$not_first = true}
<li class="moduleSearch moduleSearch1 modulefinder"|cond="$var->type == 'mid' || $var->type == 'module_srl_list'">
<p class="q"><label for="{$id}">{$var->name}</label></p>
<div class="a">
<div cond="$var->type == 'text'" class="multiLangEdit">
{@$use_multilang = true}
<input type="hidden" name="{$id}" value="" class="vLang" />
<input type="text" id="{$id}" class="vLang" />
<span class="desc"><a href="#langEdit" class="editUserLang tgAnchor">{$lang->cmd_set_multilingual}</a></span>
<div class="x_control-group <!--@if($var->type == 'mid' || $var->type == 'module_srl_list')-->moduleSearch moduleSearch1 modulefinder<!--@end-->">
<label class="x_control-label" for="{$id}">{$var->name}</label>
<div class="x_controls">
<div cond="$var->type == 'text'">
<input type="text" name="{$id}" class="lang_code" />
<script>
xe.registerApp(new xe.MultiLangManager('{$id}'));
</script>
</div>
<input cond="$var->type == 'color'" type="text" name="{$id}" value="" id="{$id}" class="color-indicator" />
<div cond="$var->type == 'textarea'" class="multiLangEdit">
{@$use_multilang_textarea = true}
<input type="hidden" name="{$id}" value="" class="vLang" />
<textarea cond="$var->type == 'textarea'" id="{$id}" class="vLang" rows="8" cols="42"></textarea>
<span class="desc"><a href="#langEditTextarea" class="editUserLang tgAnchor">{$lang->cmd_set_multilingual}</a></span>
<input cond="$var->type == 'color'" type="text" name="{$id}" value="" id="{$id}" class="color-indicator" style="width:178px" />
<div cond="$var->type == 'textarea'">
<textarea cond="$var->type == 'textarea'" name="{$id}" id="{$id}" class="lang_code" rows="8" cols="42"></textarea>
<script>
xe.registerApp(new xe.MultiLangManager('{$id}'));
</script>
</div>
<select cond="$var->type == 'select'" name="{$id}" id="{$id}" style="width:290px">
<select cond="$var->type == 'select'" name="{$id}" id="{$id}" style="width:220px">
<option loop="$var->options => $key, $val" value="{$key}">{$val}</option>
</select>
<block cond="$var->type == 'select-multi-order'">
@ -73,168 +65,75 @@
<!--@else-->
<input type="hidden" name="{$id}" value="" />
<!--@end-->
<select class="multiorder_show" size="8" multiple="multiple" style="width:290px;vertical-align:top">
<option loop="$var->options => $key, $val" cond="!$var->init_options[$key]" value="{$key}" default="true"|cond="$var->default_options[$key]">{$val}</option>
</select>
<button type="button" class="text multiorder_add" style="vertical-align:top">{$lang->cmd_insert}</button>
<select class="multiorder_selected" size="8" multiple="multiple" style="width:290px;vertical-align:top">
<option loop="$var->options => $key, $val" cond="$var->init_options[$key]" value="{$key}" default="true"|cond="$var->default_options[$key]">{$val}</option>
</select>
<button type="button" class="text multiorder_up" style="vertical-align:top">{$lang->cmd_move_up}</button>
<button type="button" class="text multiorder_down" style="vertical-align:top">{$lang->cmd_move_down}</button>
<button type="button" class="text multiorder_del" style="vertical-align:top">{$lang->cmd_delete}</button>
<div style="display:inline-block">
<select class="multiorder_show" size="8" multiple="multiple" style="width:220px;vertical-align:top">
<option loop="$var->options => $key, $val" cond="!$var->init_options[$key]" value="{$key}" default="true"|cond="$var->default_options[$key]">{$val}</option>
</select><br />
<button type="button" class="x_btn x_btn-mini multiorder_add" style="vertical-align:top">{$lang->cmd_insert}</button>
</div>
<div style="display:inline-block">
<select class="multiorder_selected" size="8" multiple="multiple" style="width:220px;vertical-align:top">
<option loop="$var->options => $key, $val" cond="$var->init_options[$key]" value="{$key}" default="true"|cond="$var->default_options[$key]">{$val}</option>
</select><br />
<button type="button" class="x_btn x_btn-mini multiorder_up" style="vertical-align:top">{$lang->cmd_move_up}</button>
<button type="button" class="x_btn x_btn-mini multiorder_down" style="vertical-align:top">{$lang->cmd_move_down}</button>
<button type="button" class="x_btn x_btn-mini x_btn-danger multiorder_del" style="vertical-align:top">{$lang->cmd_delete}</button>
</div>
<script>
xe.registerApp(new xe.MultiOrderManager('{$id}'));
</script>
</block>
<block cond="$var->type == 'mid_list'">
<fieldset loop="$mid_list => $module_category_srl, $modules" style="border: 1px solid #ccc; margin:1em 0; padding:.5em 1em">
<legend cond="$modules->title">{$modules->title}</legend>
<legend cond="!$modules->title">{$lang->none_category}</legend>
<fieldset loop="$mid_list => $module_category_srl, $modules">
<block cond="count($mid_list) > 1">
<legend cond="$modules->title">{$modules->title}</legend>
<legend cond="!$modules->title">{$lang->none_category}</legend>
</block>
<div loop="$modules->list => $key, $val">
<input type="checkbox" value="{$key}" name="{$id}" id="chk_mid_list_{$key}" />
<label for="chk_mid_list_{$key}">{$key} ({$val->browser_title})</label>
<label class="x_inline"><input type="checkbox" value="{$key}" name="{$id}" /> {$key} ({$val->browser_title})</label>
</div>
</fieldset>
</block>
<block cond="$var->type == 'member_group'">
<block loop="$group_list => $key, $val">
<input type="checkbox" value="{$key}" name="{$id}" id="chk_member_gruop_{$id}_{$key}" />
<label for="chk_member_gruop_{$id}_{$key}">{$val->title}</label>
<label class="x_inline"><input type="checkbox" value="{$key}" name="{$id}" id="chk_member_gruop_{$id}_{$key}" /> {$val->title}</label>
</block>
</block>
<block cond="$var->type == 'module_srl_list'">
<p class="desc">{$var->description}</p>
<input type="hidden" name="{$id}" value="" />
<select class="modulelist_selected" size="8" multiple="multiple" style="width:290px;"></select>
<select class="modulelist_selected" size="8" multiple="multiple" style="width:220px;"></select>
<br/>
<span style="padding:1px;margin:1px"><b><a href="#moduleSearchWindow1" class="tgAnchor moduleSearch">{$lang->cmd_add}</a></b></span>
<button type="button" class="text modulelist_up" style="vertical-align:top">{$lang->cmd_move_up}</button>
<button type="button" class="text modulelist_down" style="vertical-align:top">{$lang->cmd_move_down}</button>
<button type="button" class="text modulelist_del" style="vertical-align:top">{$lang->cmd_delete}</button>
<a href="#" type="button" id="__module_srl_list_{$id}" class="x_btn x_btn-mini moduleTrigger" data-multiple="true">{$lang->cmd_add}</a>
<button type="button" class="x_btn x_btn-mini modulelist_up">{$lang->cmd_move_up}</button>
<button type="button" class="x_btn x_btn-mini modulelist_down">{$lang->cmd_move_down}</button>
<button type="button" class="x_btn x_btn-mini x_btn-danger modulelist_del">{$lang->cmd_delete}</button>
<script>
xe.registerApp(new xe.ModuleListManager('{$id}'));
</script>
<script>
jQuery(function($){
$('.moduleSearch1').bind('moduleSelect', function(e, aSelected){
var sType, sName, sSrl;
for(var i=0, nLen=aSelected.length; i<nLen; i++){
sType = aSelected[i].type;
sName = aSelected[i].browser_title;
sSrl = aSelected[i].module_srl;
xe.broadcast("ADD_MODULE_TO_MODULELIST_MANAGER", [sType, sName, sSrl]);
}
});
});
</script>
<!-- new module search -->
<div id="moduleSearchWindow1" class="moduleSearchWindow tgContent">
<div class="siteList sectionDiv">
<h2>{$lang->select_site}</h2>
<div class="siteListSearchBox">
<div class="siteListSearchBoxBorder">
<div class="searchImg icon-search"></div>
<input type="text" class="siteListSearchInput" name="site_filter">
</div>
</div>
<div class="siteListUL">
<ul>
</ul>
</div>
</div>
<div class="moduleTypeList sectionDiv">
<h2>{$lang->select_module_type}</h2>
<div>
<ul class="moduleTypeListUL">
</ul>
</div>
</div>
<div class="moduleInstanceList sectionDiv">
<h2>{$lang->select_module_instance}</h2>
<div>
<select class="moduleInstanceListSelect" multiple="multiple" size="8">
</select>
</div>
<button class="btn btn_primary moduleSearch_ok">{$lang->cmd_select}</button>
</div>
</div>
<!--// new module search -->
</block>
<block cond="$var->type == 'mid'">
<input type="hidden" name="{$id}" value="" />
<input type="text" readonly="readonly" /> <!--button class="text search">{$lang->cmd_search}</button> <button class="text delete">{$lang->cmd_delete}</button-->
<span style="padding:1px;margin:1px"><b><a href="#moduleSearchWindow2" class="tgAnchor moduleSearch">{$lang->cmd_select}</a></b></span>
<span style="padding:1px;margin:1px"><b><a href="#" class="text delete">{$lang->cmd_delete}</a></b></span>
<!-- callback function for moduleSearchWindow2 is defined in MidManager -->
<!-- new module search -->
<div id="moduleSearchWindow2" class="moduleSearchWindow tgContent">
<div class="siteList sectionDiv">
<h2>{$lang->select_site}</h2>
<div class="siteListSearchBox">
<div class="siteListSearchBoxBorder">
<div class="searchImg icon-search"></div>
<input type="text" class="siteListSearchInput" name="site_filter">
</div>
</div>
<div class="siteListUL">
<ul>
</ul>
</div>
</div>
<div class="moduleTypeList sectionDiv">
<h2>{$lang->select_module_type}</h2>
<div>
<ul class="moduleTypeListUL">
</ul>
</div>
</div>
<div class="moduleInstanceList sectionDiv">
<h2>{$lang->select_module_instance}</h2>
<div>
<select class="moduleInstanceListSelect"size="8">
</select>
</div>
<button class="btn btn_primary moduleSearch_ok">{$lang->cmd_select}</button>
</div>
</div>
<!--// new module search -->
<div class="finder" style="display: none;">
<div class="a">
<input type="text" class="site_keyword" /> <a href="#suggestion_{$suggestion_id}" class="tgAnchor findSite">{$lang->find_site}</a>
<div id="suggestion_{$suggestion_id}" class="tgContent suggestion">
<ul>
</ul>
</div>
</div>
<p class="a"><select class="moduleList" style="width:290px;"></select></p>
<p class="a"><select class="moduleIdList" style="width:290px;"></select> <button class="text">{$lang->cmd_select}</button></p>
</div>
<input type="text" style="width:220px" readonly="readonly" />
<a href="#" class="x_btn x_btn-mini moduleTrigger">{$lang->cmd_select}</a>
<button type="button" class="x_btn x_btn-mini x_btn-danger delete">{$lang->cmd_delete}</button>
<script>
xe.registerApp(new xe.MidManager('{$id}'));
</script>
</block>
<block cond="$var->type == 'filebox'">
{@$use_filebox = true}
<input type="hidden" name="{$id}" />
<a class="modalAnchor filebox" href="#modalFilebox">{$lang->cmd_select}</a>
<a class="x_btn x_btn-mini modalAnchor filebox" href="#modalFilebox">{$lang->cmd_select}</a>
</block>
<select cond="$var->type == 'menu'" name="{$id}" style="width:290px">
<select cond="$var->type == 'menu'" name="{$id}" style="width:220px">
<option value="">-</option>
<option loop="$menu_list => $key, $val" value="{$val->menu_srl}">{$val->title}</option>
</select>
</div>
</li>
</div>
</block>
</ul>
</section>
<script>
xe.current_lang = "{$lang_type}";
</script>

View file

@ -1,23 +0,0 @@
<block cond="$use_multilang">
<div id="langEdit" class="langEdit tgContent">
<ul class="langList"></ul>
<div class="langInput form">
<h2>{$lang->multilingual} <strong>{$lang->cmd_modify}...</strong> | <a href="#langEdit">{$lang->cmd_insert}</a></h2>
<ul>
{@
/* move current language to the top */
$a = array($lang_type=>$lang_supported[$lang_type]);
unset($lang_supported[$lang_type]);
$lang_supported = array_merge($a, $lang_supported);
}
<li loop="$lang_supported=>$code,$name" class="{$code}"><label for="{$code}_var1">{$name}</label> <input type="text" value="" id="{$code}_var1" /></li>
</ul>
<div class="action">
<div class="btnArea">
<span class="btn small"><input type="submit" value="{$lang->use}|{$lang->use_after_save}" /></span>
</div>
<p><a href="{getUrl('act','dispModuleAdminLangcode')}">{$lang->multilingual_manager}</a></p>
</div>
</div>
</div>
</block>

View file

@ -1,27 +0,0 @@
<block cond="$use_multilang_textarea">
<style>
#langEditTextarea textarea { width: 258px; }
</style>
<div id="langEditTextarea" class="langEdit tgContent">
<ul class="langList"></ul>
<div class="langInput form">
<h2>{$lang->multilingual} <strong>{$lang->cmd_modify}...</strong> | <a href="#langEdit">{$lang->cmd_insert}</a></h2>
<ul>
{@
/* move current language to the top */
$a = array($lang_type=>$lang_supported[$lang_type]);
unset($lang_supported[$lang_type]);
$lang_supported = array_merge($a, $lang_supported);
}
<li loop="$lang_supported=>$code,$name" class="{$code}"><label for="{$code}_var1">{$name}</label> <textarea id="{$code}_var1" rows="8" cols="42"></textarea></li>
</ul>
<div class="action">
<div class="btnArea">
<span class="btn small"><input type="submit" value="{$lang->use}|{$lang->use_after_save}" /></span>
</div>
<p><a href="{getUrl('act','dispModuleAdminLangcode')}">{$lang->multilingual_manager}</a></p>
</div>
</div>
</div>
</block>

View file

@ -33,32 +33,34 @@
</ul>
</form>
</div>
<div class="x" style="padding: 0 10px;">
<h2 class="h2">{$widget_info->title}</h2>
<div class="x" style="padding: 10px">
<div class="x_page-header">
<h1>{$widget_info->title}</h1>
</div>
<p>{$widget_info->description}</p>
<h3 class="h3">{$lang->cmd_generate_code}</h3>
<p>{$lang->about_widget_code_in_page}</p>
<div id="content" class="x_well">
<h2>{$lang->cmd_generate_code}</h2>
<p>{$lang->about_widget_code_in_page}</p>
<form class="form" action="./" method="post" id="fo_widget">
<input type="hidden" name="module" value="widget" />
<input type="hidden" name="module_srl" value="{$module_srl}" />
<input type="hidden" name="widget_sequence" value="" />
<input type="hidden" name="style" value="float:left;width:100%;margin:none;padding:none;" />
<input type="hidden" name="widget_padding_left" value="" />
<input type="hidden" name="widget_padding_right" value="" />
<input type="hidden" name="widget_padding_top" value="" />
<input type="hidden" name="widget_padding_bottom" value="" />
<input type="hidden" name="selected_widget" value="{$widget_info->widget}" />
<form class="x_form x_form-horizontal" action="./" method="post" id="fo_widget">
<input type="hidden" name="module" value="widget" />
<input type="hidden" name="module_srl" value="{$module_srl}" />
<input type="hidden" name="widget_sequence" value="" />
<input type="hidden" name="style" value="float:left;width:100%;margin:none;padding:none;" />
<input type="hidden" name="widget_padding_left" value="" />
<input type="hidden" name="widget_padding_right" value="" />
<input type="hidden" name="widget_padding_top" value="" />
<input type="hidden" name="widget_padding_bottom" value="" />
<input type="hidden" name="selected_widget" value="{$widget_info->widget}" />
<include target="widget_generate_code.include.html" />
<include target="widget_generate_code.include.html" />
<div class="btnArea">
<span class="btn small"><input type="submit" value="{$lang->cmd_generate_code}" /></span>
</div>
</form>
<div class="btnArea">
<input type="submit" class="x_btn x_btn-primary" value="{$lang->cmd_generate_code}" />
</div>
</form>
</div>
<include target="../../module/tpl/include.filebox.html" />
<include target="widget_generate_code.multilang.html" />
<include target="widget_generate_code.multilang.textarea.html" />
</div>