Authored by weiqingting

Merge branch 'develop' of http://git.dev.yoho.cn/platform/yohobuy-portal-fe into develop

# Conflicts:
#	client/js/goods/netsale-edit.js
Showing 39 changed files with 319 additions and 1057 deletions
.edui-popup-emotion .edui-emotion-jd img{
background:transparent url(images/jxface2.gif?v=1.1) no-repeat scroll left top;
cursor:pointer;width:35px;height:35px;display:block;
}
.edui-popup-emotion .edui-emotion-pp img{
background:transparent url(images/fface.gif?v=1.1) no-repeat scroll left top;
cursor:pointer;width:25px;height:25px;display:block;
}
.edui-popup-emotion .edui-emotion-ldw img{
background:transparent url(images/wface.gif?v=1.1) no-repeat scroll left top;
cursor:pointer;width:35px;height:35px;display:block;
}
.edui-popup-emotion .edui-emotion-tsj img{
background:transparent url(images/tface.gif?v=1.1) no-repeat scroll left top;
cursor:pointer;width:35px;height:35px;display:block;
}
.edui-popup-emotion .edui-emotion-cat img{
background:transparent url(images/cface.gif?v=1.1) no-repeat scroll left top;
cursor:pointer;width:35px;height:35px;display:block;
}
.edui-popup-emotion .edui-emotion-bb img{
background:transparent url(images/bface.gif?v=1.1) no-repeat scroll left top;
cursor:pointer;width:35px;height:35px;display:block;
}
.edui-popup-emotion .edui-emotion-youa img{
background:transparent url(images/yface.gif?v=1.1) no-repeat scroll left top;
cursor:pointer;width:35px;height:35px;display:block;
}
.edui-popup-emotion .edui-emotion-smileytable {
width: 100%;
border-spacing: 0;
border-collapse: collapse;
table-layout: fixed;
}
.edui-popup-emotion .edui-emotion-wrapper {
padding: 15px;
}
.edui-popup-emotion .edui-tab-nav{
height: auto;
*height: 31px;
}
.edui-popup-emotion .edui-emotion-tabs{
clear: both;
width: 0;
height: 0;
}
.edui-popup-emotion .edui-tab-content {
padding: 15px 0;
}
.edui-popup-emotion .edui-emotion-preview-box {
width:90px;
height:76px;
border:2px solid #9cb945;
background:#FFFFFF;
background-position:center;
background-repeat:no-repeat;
position: absolute;
top: 67px;
left: 494px;
display: none;
}
.edui-popup-emotion .edui-tab-text {
font-size: 12px;
}
.edui-popup-emotion .edui-emotion-preview-left {
left: 15px;
}
.edui-popup-emotion .edui-emotion-preview-img {
width: 100%;
height: 100%;
display: block;
background-repeat: no-repeat;
background-position: center center;
}
.edui-popup-formula .edui-formula-wrapper {
padding: 15px;
}
.edui-popup-formula .edui-formula-wrapper .edui-tab-nav{
height: auto;
*height: 31px;
}
.edui-popup-formula .edui-formula-wrapper .edui-tab-text {
font-size: 12px;
}
.edui-popup-formula .edui-formula-wrapper .edui-formula-clearboth {
clear: both;
width: 0;
height: 0;
}
.edui-popup-formula .edui-formula-wrapper .edui-tab-pane ul {
margin: 0px;
padding: 0px;
}
.edui-popup-formula .edui-formula-wrapper .edui-tab-content {
padding: 5px 0px 0px 0px;
}
.edui-popup-formula .edui-formula-wrapper .edui-tab-pane .edui-formula-latex-item {
display: block;
float: left;
margin: 0px 3px 3px 0px;
width: 30px;
height: 30px;
border:1px solid #cccccc;
background-image: url("images/formula.png");
cursor: pointer;
}
\ No newline at end of file
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<link rel="stylesheet" href="../../third-party/mathquill/mathquill.css"/>
<style>
html, body, .main{
margin: 0;
padding: 0;
overflow: hidden;
}
.main{
width:1024px;
height:1024px;
}
.mathquill-editable,
.mathquill-rendered-math{
border: 0px;
padding: 0px;
margin:4px;
}
</style>
</head>
<body>
<div class="main">
<div class="mathquill-editable"></div>
</div>
<div>
<input id="blurHelper" />
</div>
<script src="../../third-party/jquery.min.js"></script>
<script src="../../third-party/mathquill/mathquill.js"></script>
<script>
$(function(){
var UM = parent.UM,
$iframe = $(getSelfIframe()),
editorId = $iframe.parents('.edui-body-container').attr('id'),
editor = UM.getEditor(editorId),
timer;
/* 获得当前公式所在的iframe节点 */
function getSelfIframe(){
var iframes = parent.document.getElementsByTagName('iframe');
for (var key in iframes) {
if (iframes[key].contentWindow == window) {
return iframes[key];
}
}
return null;
}
/* 获得当前url上的hash存储的参数值 */
function getLatex() {
return $iframe.attr('data-latex') || '';
}
/* 保存场景 */
function saveScene(){
timer && clearTimeout(timer);
timer = setTimeout(function(){
editor.fireEvent('savescene');
editor.fireEvent('contentchange');
editor.fireEvent('selectionchange');
timer = null;
}, 300);
}
/* 设置编辑器可编辑 */
function enableEditor(){
if(editor.body.contentEditable == 'false') {
editor.setEnabled();
}
}
/* 设置编辑器不可编辑 */
function disableEditor(){
if(editor.body.contentEditable == 'true') {
editor.setDisabled(['undo', 'redo', 'preview', 'formula'], true);
}
}
/* 公式 */
var Formula = function(){
var _this = this,
latex = getLatex();
this.isFocus = false;
this.isDisabled = false;
/* 加载公式内容 */
this.$mathquill = $('.mathquill-editable').mathquill('latex', latex);
/* 设置活动状态的公式iframe */
this.$mathquill.on('mousedown', function(){
/* 编辑器不可用时,公式也不可用 */
if(_this.disabled) return false;
/* 第一次点击当前公式,设置公式活动 */
if(!$iframe.hasClass('edui-formula-active')) {
disableEditor();
editor.blur();
editor.$body.find('iframe').not($iframe).each(function(k, v){
v.contentWindow.formula.blur();
});
if(_this.$mathquill.find('.cursor').css('display') == 'none') {
_this.refresh();
_this.$mathquill.addClass('hasCursor');
}
}
_this.focus();
});
editor.addListener('click', function(){
_this.blur();
enableEditor();
});
/* 里面focus,编辑器也判断为focus */
editor.addListener('isFocus', function(){
return _this.isFocus;
});
/* um不可用,公式也不可编辑 */
editor.addListener('setDisabled', function(type, except){
if (!(except && except.join(' ').indexOf('formula') != -1) && _this.isDisabled != true ) {
_this.setDisabled();
}
});
editor.addListener('setEnabled', function(){
if (_this.isDisabled != false) {
_this.setEnabled();
}
});
/* 设置更新外层iframe的大小和属性 */
$(document.body).on('keydown', function(){
_this.updateIframe();
}).on('keyup', function(){
_this.updateIframe();
});
/* 清除初始化的高亮状态 */
this.$mathquill.removeClass('hasCursor');
/* 初始化后延迟刷新外层iframe大小 */
setTimeout(function(){
_this.updateIframe();
}, 300);
};
Formula.prototype = {
focus:function(){
$iframe.addClass('edui-formula-active');
this.isFocus = true;
},
blur:function(){
$iframe.removeClass('edui-formula-active');
this.removeCursor();
this.isFocus = false;
},
removeCursor: function(){
this.$mathquill.find('span.cursor').hide();
this.$mathquill.parent().find('.hasCursor').removeClass('hasCursor');
},
updateIframe: function(){
$iframe.width(this.$mathquill.width()+8).height(this.$mathquill.height()+8);
var latex = $iframe.attr('data-latex'),
newLatex = this.getLatex();
if(latex != newLatex) {
$iframe.attr('data-latex', this.getLatex());
saveScene();
}
},
insertLatex: function(latex){
this.$mathquill.mathquill('write', latex);
this.updateIframe();
this.removeCursor();
},
setLatex: function(latex){
this.$mathquill.mathquill('latex', latex);
this.updateIframe();
},
getLatex: function(){
return this.$mathquill.mathquill('latex');
},
redraw: function(){
this.$mathquill.mathquill('redraw');
},
setDisabled: function(){
this.blur();
var latex = this.getLatex();
this.$mathquill.mathquill('revert').text(latex).mathquill();
this.updateIframe();
this.isDisabled = true;
},
setEnabled: function(){
this.$mathquill.removeClass('mathquill-rendered-math');
this.refresh();
this.isDisabled = false;
},
refresh: function(){
var latex = this.getLatex();
this.$mathquill.mathquill('revert').text(latex).mathquill('editable');
this.updateIframe();
}
};
/* 绑定到window上,给上级window调用 */
window.formula = new Formula();
});
</script>
</body>
</html>
\ No newline at end of file
.edui-dialog-image .edui-image-wrapper{font-size: 12px;margin: 15px;}
/*upload*/
.edui-dialog-image .edui-image-upload1{position: absolute;top:50%;left:50%;width:44px;height:38px;margin-top:-19px; margin-left: -22px;}
.edui-dialog-image .edui-image-upload2{position:relative;float:left;width:120px;height:120px;margin:5px 0 0 5px;}
.edui-dialog-image .edui-image-form{position: absolute;left: 0px;top: 0px;width: 100%;height: 100%;opacity: 0;cursor: pointer;}
.edui-dialog-image .edui-image-form .edui-image-file{width: 100%;height:100%;filter: alpha(opacity=0)}
.edui-dialog-image .edui-image-upload1 .edui-image-icon{display: inline-block;width:44px;height:38px;background-image: url('images/upload1.png')}
.edui-dialog-image .edui-image-upload1 .edui-image-icon.hover{background-position: -50px 0;}
.edui-dialog-image .edui-image-upload2 .edui-image-icon{display: inline-block;width:120px;height:120px;background-image: url('images/upload2.png')}
.edui-dialog-image .edui-image-dragTip{position: absolute;display:none;top:50%;left:50%;margin-top:30px;margin-left: -60px;
color: #222;font-size:14px;text-shadow: 0px 2px 3px #555;}
.edui-dialog-image .edui-image-content{height:330px;width:100%;position: relative;}
.edui-dialog-image .edui-image-mask{display: none;position: absolute;top:0;left:0;width: 100%; height: 100%;background-color:#fff;
text-align: center;line-height:300px;color:#000;font-size:14px;font-weight:bold;opacity: 0.6;filter: alpha(opacity=60);}
.edui-dialog-image .edui-image-mask.edui-active{display: block;}
/*network*/
.edui-dialog-image .edui-image-searchBar{margin: 10px;}
.edui-dialog-image .edui-image-searchBar .edui-image-searchTxt{display: inline-block !important;*display: inline !important;*zoom:1;width:400px; border: 1px solid #c5d2ff; height: 20px; line-height: 18px; font-size: 14px; padding: 3px; margin: 0;outline:0;}
.edui-dialog-image .edui-image-searchBar .edui-image-searchAdd{display: inline-block !important;*display: inline !important;*zoom:1;
width:60px; text-align:center;height: 25px;text-align: center;line-height: 25px;
background-color: #ffffff;padding: 0; border: 1px solid #ababab;margin-left: 20px;cursor: pointer;
}
.edui-dialog-image .edui-image-searchBar .edui-image-searchAdd.hover{
background-color: #d5e1f2;
padding: 0;
border: 1px solid #a3bde3;
}
.edui-dialog-image .edui-image-searchRes{height:280px;overflow:auto;}
/*common*/
.edui-dialog-image .edui-image-item{position:relative;float:left;width:120px;height:120px;border: 1px solid #CCC;cursor: default;margin: 5px 0 0 5px;}
.edui-dialog-image .edui-image-item .edui-image-pic{position: absolute;left:-9999px;}
.edui-dialog-image .edui-image-item .edui-image-close{position:absolute;right:0;background: url('images/close.png');width:17px;height:17px;cursor:pointer;z-index:1}
.edui-dialog-image .edui-image-item.hover .edui-image-close{display: block;}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8"/>
<meta name="keywords" content="百度地图,百度地图API,百度地图自定义工具,百度地图所见即所得工具"/>
<meta name="description" content="百度地图API自定义地图,帮助用户在可视化操作下生成百度地图"/>
<title>百度地图API自定义地图</title>
<!--引用百度地图API-->
<style type="text/css">
html, body {
margin: 0;
padding: 0;
overflow: hidden;
}
</style>
<script type="text/javascript" src="http://api.map.baidu.com/api?key=&v=2.0&ak=6b6c1a67eaa7db1ca6d6da28e590e343&services=true"></script>
</head>
<body onload="initMap();">
<!--百度地图容器-->
<div style="width:697px;height:550px;border:#ccc solid 1px;" id="dituContent"></div>
</body>
<script type="text/javascript">
function getParam(name) {
return location.href.match(new RegExp('[?#&]' + name + '=([^?#&]+)', 'i')) ? RegExp.$1 : '';
}
var map, marker;
var centerParam = getParam('center');
var zoomParam = getParam('zoom');
var widthParam = getParam('width');
var heightParam = getParam('height');
var markersParam = getParam('markers');
var markerStylesParam = getParam('markerStyles');
var iframe = getSelfIframe();
var UM = parent.UM;
var editor = getEditor();
//创建和初始化地图函数:
function initMap() {
// [FF]切换模式后报错
if (!window.BMap) {
return;
}
var dituContent = document.getElementById('dituContent');
dituContent.style.width = widthParam + 'px';
dituContent.style.height = heightParam + 'px';
createMap();//创建地图
setMapEvent();//设置地图事件
addMapControl();//向地图添加控件
// 创建标注
var markersArr = markersParam.split(',');
var point = new BMap.Point(markersArr[0], markersArr[1]);
marker = new BMap.Marker(point);
marker.enableDragging();
map.addOverlay(marker); // 将标注添加到地图中
if(iframe && UM && editor) { //在编辑状态下
setMapListener();//地图改变修改外层的iframe标签src属性
} else {
document.focus();
}
}
//创建地图函数:
function createMap() {
map = new BMap.Map("dituContent");//在百度地图容器中创建一个地图
var centerArr = centerParam.split(',');
var point = new BMap.Point(parseFloat(centerArr[0]), parseFloat(centerArr[1]));//定义一个中心点坐标
map.centerAndZoom(point, parseInt(zoomParam));//设定地图的中心点和坐标并将地图显示在地图容器中
}
//地图事件设置函数:
function setMapEvent() {
map.enableDragging();//启用地图拖拽事件,默认启用(可不写)
map.enableScrollWheelZoom();//启用地图滚轮放大缩小
map.enableDoubleClickZoom();//启用鼠标双击放大,默认启用(可不写)
map.enableKeyboard();//启用键盘上下左右键移动地图
}
//地图控件添加函数:
function addMapControl() {
//向地图中添加缩放控件
var ctrl_nav = new BMap.NavigationControl({anchor: BMAP_ANCHOR_TOP_LEFT, type: BMAP_NAVIGATION_CONTROL_LARGE});
map.addControl(ctrl_nav);
//向地图中添加缩略图控件
var ctrl_ove = new BMap.OverviewMapControl({anchor: BMAP_ANCHOR_BOTTOM_RIGHT, isOpen: 1});
map.addControl(ctrl_ove);
//向地图中添加比例尺控件
var ctrl_sca = new BMap.ScaleControl({anchor: BMAP_ANCHOR_BOTTOM_LEFT});
map.addControl(ctrl_sca);
}
function setMapListener() {
var timer;
map.addEventListener('moveend', mapListenerHandler);
map.addEventListener('zoomend', mapListenerHandler);
marker.addEventListener('dragend', mapListenerHandler);
function mapListenerHandler() {
var zoom = map.getZoom(),
center = map.getCenter(),
marker = window.marker.P;
iframe.src = iframe.src.
replace(new RegExp('([?#&])center=([^?#&]+)', 'i'), '$1center=' + center.lng + ',' + center.lat).
replace(new RegExp('([?#&])markers=([^?#&]+)', 'i'), '$1markers=' + marker.lng + ',' + marker.lat).
replace(new RegExp('([?#&])zoom=([^?#&]+)', 'i'), '$1zoom=' + zoom);
editor.fireEvent('saveScene');
saveScene(editor);
}
function saveScene(){
if(!timer) {
timer = setTimeout(function(){
editor.fireEvent('savescene');
editor.fireEvent('contentchange');
timer = null;
}, 1000);
}
}
}
function getSelfIframe(){
var iframes = parent.document.getElementsByTagName('iframe');
for (var key in iframes) {
if (iframes[key].contentWindow == window) {
return iframes[key];
}
}
return null;
}
function getEditor(){
var parentNode = iframe.parentNode;
while (parentNode && parentNode.tagName && parentNode.tagName.toLowerCase() != 'body') {
if (parentNode.className && parentNode.className.indexOf('edui-body-container')!=-1) {
return UM.getEditor(parentNode.id);
}
parentNode = parentNode.parentNode;
}
return null;
}
</script>
</html>
\ No newline at end of file
var $=require('jquery');
(function () {
var widgetName = 'map';
UM.registerWidget(widgetName, {
tpl: "<style type=\"text/css\">" +
".edui-dialog-map .edui-map-content{width:530px; height: 350px;margin: 10px auto;}" +
".edui-dialog-map .edui-map-content table{width: 100%}" +
".edui-dialog-map .edui-map-content table td{vertical-align: middle;}" +
".edui-dialog-map .edui-map-button { border: 1px solid #ccc; float: left; cursor: default; height: 23px; width: 70px; cursor: pointer; margin: 0; font-size: 12px; line-height: 24px; text-align: center; }" +
".edui-dialog-map .edui-map-button:hover {background:#eee;}" +
".edui-dialog-map .edui-map-city,.edui-dialog-map .edui-map-address{height:21px;background: #FFF;border:1px solid #d7d7d7; line-height: 21px;}" +
".edui-dialog-map .edui-map-city{width:90px}" +
".edui-dialog-map .edui-map-address{width:150px}" +
".edui-dialog-map .edui-map-dynamic-label span{vertical-align:middle;margin: 3px 0px 3px 3px;}" +
".edui-dialog-map .edui-map-dynamic-label input{vertical-align:middle;margin: 3px;}" +
"</style>" +
"<div class=\"edui-map-content\">" +
"<table>" +
"<tr>" +
"<td><%=lang_city%>:</td>" +
"<td><input class=\"edui-map-city\" type=\"text\" value=\"<%=city.value%>\"/></td>" +
"<td><%=lang_address%>:</td>" +
"<td><input class=\"edui-map-address\" type=\"text\" value=\"\" /></td>" +
"<td><a class=\"edui-map-button\"><%=lang_search%></a></td>" +
"<td><label class=\"edui-map-dynamic-label\"><input class=\"edui-map-dynamic\" type=\"checkbox\" name=\"edui-map-dynamic\" /><span><%=lang_dynamicmap%></span></label></td>"+
"</tr>" +
"</table>" +
"<div style=\"width:100%;height:340px;margin:5px auto;border:1px solid gray\" class=\"edui-map-container\"></div>" +
"</div>" +
"<script class=\"edui-tpl-container\" type=\"text/plain\">" +
"<!DOCTYPE html>" +
"<html>" +
"<head>" +
"<title></title>" +
"</head>" +
"<body>" +
"<scr_ipt>" +
"window.onload = function(){" +
"var scripts = document.scripts || document.getElementsByTagName(\"script\")," +
"src = [];" +
"for( var i = 1, len = scripts.length; i<len; i++ ) {" +
"src.push( scripts[i].src );" +
"}" +
"parent.UM.getEditor(<<id>>).getWidgetData(\'map\').requestMapApi( src );" +
"};" +
"function mapReadyStateChange ( state ) { " +
" if ( state === 'complete' || state === 'loaded' ) {" +
" document.close(); " +
" } }" +
"</scr_ipt>" +
"<scr_ipt onreadystatechange='mapReadyStateChange(this.readyState);' onload='mapReadyStateChange(\"loaded\");' src=\"http://api.map.baidu.com/api?v=2.0&ak=6b6c1a67eaa7db1ca6d6da28e590e343&services=true\"></scr_ipt>" +
"</body>" +
"</html>" +
"</script>",
initContent: function (editor, $widget) {
var me = this,
lang = editor.getLang(widgetName),
theme_url = editor.options.themePath + editor.options.theme;
if( me.inited ) {
me.preventDefault();
return false;
}
me.inited = true;
me.lang = lang;
me.editor = editor;
me.root().html($.parseTmpl(me.tpl, $.extend({}, lang['static'], {
'theme_url': theme_url
})));
me.initRequestApi();
},
/**
* 初始化请求API
*/
initRequestApi: function () {
var $ifr = null;
//已经初始化过, 不用再次初始化
if (window.BMap && window.BMap.Map) {
this.initBaiduMap();
} else {
$ifr = $('<iframe style="display: none;"></iframe>');
$ifr.appendTo( this.root() );
$ifr = $ifr[ 0 ].contentWindow.document;
$ifr.open();
$ifr.write( this.root().find(".edui-tpl-container").html().replace( /scr_ipt/g, 'script').replace('<<id>>',"'" + this.editor.id + "'") );
}
},
requestMapApi: function (src) {
var me = this;
if (src.length) {
var _src = src[0];
src = src.slice(1);
if (_src) {
$.getScript(_src, function () {
me.requestMapApi(src);
});
} else {
me.requestMapApi(src);
}
} else {
me.initBaiduMap();
}
},
initBaiduMap: function () {
var $root = this.root(),
map = new BMap.Map($root.find(".edui-map-container")[0]),
me = this,
marker,
point,
imgcss,
img = $(me.editor.selection.getRange().getClosedNode());
map.enableInertialDragging();
map.enableScrollWheelZoom();
map.enableContinuousZoom();
if (img.length && /api[.]map[.]baidu[.]com/ig.test(img.attr("src"))) {
var url = img.attr("src"),
centerPos = me.getPars(url, "center").split(","),
markerPos = me.getPars(url, "markers").split(",");
point = new BMap.Point(Number(centerPos[0]), Number(centerPos[1]));
marker = new BMap.Marker(new BMap.Point(Number(markerPos[0]), Number(markerPos[1])));
map.addControl(new BMap.NavigationControl());
map.centerAndZoom(point, Number(me.getPars(url, "zoom")));
imgcss = img.attr('style');
} else {
point = new BMap.Point(116.404, 39.915); // 创建点坐标
marker = new BMap.Marker(point);
map.addControl(new BMap.NavigationControl());
map.centerAndZoom(point, 10); // 初始化地图,设置中心点坐标和地图级别。
}
marker.enableDragging();
map.addOverlay(marker);
me.map = map;
me.marker = marker;
me.imgcss = imgcss;
},
doSearch: function () {
var me = this,
city = me.root().find('.edui-map-city').val(),
address = me.root().find('.edui-map-address').val();
if (!city) {
alert(me.lang.cityMsg);
return;
}
var search = new BMap.LocalSearch(city, {
onSearchComplete: function (results) {
if (results && results.getNumPois()) {
var points = [];
for (var i = 0; i < results.getCurrentNumPois(); i++) {
points.push(results.getPoi(i).point);
}
if (points.length > 1) {
me.map.setViewport(points);
} else {
me.map.centerAndZoom(points[0], 13);
}
point = me.map.getCenter();
me.marker.setPoint(point);
} else {
alert(me.lang.errorMsg);
}
}
});
search.search(address || city);
},
getPars: function (str, par) {
var reg = new RegExp(par + "=((\\d+|[.,])*)", "g");
return reg.exec(str)[1];
},
reset: function(){
this.map && this.map.reset();
},
initEvent: function () {
var me = this,
$root = me.root();
$root.find('.edui-map-address').on('keydown', function (evt) {
evt = evt || event;
if (evt.keyCode == 13) {
me.doSearch();
return false;
}
});
$root.find(".edui-map-button").on('click', function (evt) {
me.doSearch();
});
$root.find(".edui-map-address").focus();
$root.on( "mousewheel DOMMouseScroll", function ( e ) {
return false;
} );
},
width: 580,
height: 408,
buttons: {
ok: {
exec: function (editor) {
var widget = editor.getWidgetData(widgetName),
center = widget.map.getCenter(),
zoom = widget.map.getZoom(),
size = widget.map.getSize(),
point = widget.marker.P;
if (widget.root().find(".edui-map-dynamic")[0].checked) {
var URL = editor.getOpt('UMEDITOR_HOME_URL'),
url = [URL + (/\/$/.test(URL) ? '':'/') + "dialogs/map/map.html" +
'#center=' + center.lng + ',' + center.lat,
'&zoom=' + zoom,
'&width=' + size.width,
'&height=' + size.height,
'&markers=' + point.lng + ',' + point.lat].join('');
editor.execCommand('inserthtml', '<iframe class="ueditor_baidumap" src="' + url + '" frameborder="0" width="' + (size.width+4) + '" height="' + (size.height+4) + '"></iframe>');
} else {
url = "http://api.map.baidu.com/staticimage?center=" + center.lng + ',' + center.lat +
"&zoom=" + zoom + "&width=" + size.width + '&height=' + size.height + "&markers=" + point.lng + ',' + point.lat;
editor.execCommand('inserthtml', '<img width="' + size.width + '"height="' + size.height + '" src="' + url + '"' + (widget.imgcss ? ' style="' + widget.imgcss + '"' : '') + '/>', true);
}
widget.reset();
}
},
cancel: {
exec: function(editor){
editor.getWidgetData(widgetName).reset();
}
}
}
});
})();
@charset "utf-8";
.edui-dialog-video .edui-video-wrapper{ width: 570px;_width:575px;margin: 10px auto; zoom:1;position: relative}
.edui-dialog-video .edui-video-tabbody{height:335px;}
.edui-dialog-video .edui-video-panel { position: absolute;width:100%; height:100%;background: #fff;}
.edui-dialog-video .edui-video-panel table td{vertical-align: middle;}
.edui-dialog-video #eduiVideoUrl {
width: 470px;
height: 21px;
line-height: 21px;
margin: 8px 5px;
background: #FFF;
border: 1px solid #d7d7d7;
}
.edui-dialog-video #eduiVideoSearchTxt{margin-left:15px;background: #FFF;width:200px;height:21px;line-height:21px;border: 1px solid #d7d7d7;}
.edui-dialog-video #searchList{width: 570px;overflow: auto;zoom:1;height: 270px;}
.edui-dialog-video #searchList div{float: left;width: 120px;height: 135px;margin: 5px 15px;}
.edui-dialog-video #searchList img{margin: 2px 8px;cursor: pointer;border: 2px solid #fff} /*不用缩略图*/
.edui-dialog-video #searchList p{margin-left: 10px;}
.edui-dialog-video #eduiVideoType{
width: 65px;
height: 23px;
line-height: 22px;
border: 1px solid #d7d7d7;
}
.edui-dialog-video #eduiVideoSearchBtn,.edui-dialog-video #eduiVideoSearchReset{
/*width: 80px;*/
height: 25px;
line-height: 25px;
background: #eee;
border: 1px solid #d7d7d7;
cursor: pointer;
padding: 0 5px;
}
.edui-dialog-video #eduiVideoPreview{width: 420px; margin-left: 10px; _margin-left:5px; height: 280px;background-color: #ddd;float: left}
.edui-dialog-video #eduiVideoInfo {width: 120px;float: left;margin-left: 10px;_margin-left:7px;}
.edui-dialog-video .edui-video-wrapper fieldset{
border: 1px solid #ddd;
padding-left: 5px;
margin-bottom: 20px;
padding-bottom: 5px;
width: 115px;
}
.edui-dialog-video .edui-video-wrapper fieldset legend{font-weight: bold;}
.edui-dialog-video .edui-video-wrapper fieldset p{line-height: 30px;}
.edui-dialog-video .edui-video-wrapper fieldset input.edui-video-txt{
width: 65px;
height: 21px;
line-height: 21px;
margin: 8px 5px;
background: #FFF;
border: 1px solid #d7d7d7;
}
.edui-dialog-video .edui-video-wrapper label.edui-video-url{font-weight: bold;margin-left: 5px;color: #06c;}
.edui-dialog-video #eduiVideoFloat div{cursor:pointer;opacity: 0.5;filter: alpha(opacity = 50);margin:9px;_margin:5px;width:38px;height:36px;float:left;}
.edui-dialog-video #eduiVideoFloat .edui-video-focus{opacity: 1;filter: alpha(opacity = 100)}
.edui-dialog-video .edui-video-wrapper span.edui-video-view{display: inline-block;width: 30px;float: right;cursor: pointer;color: blue}
\ No newline at end of file
... ... @@ -10277,7 +10277,8 @@ UM.registerUI('bold italic redo undo underline strikethrough superscript subscri
Fullscreen.listen();
})();
UM.registerUI('link image video map formula',function(name){
//link image video map formula
UM.registerUI('image',function(name){
var me = this, currentRange, $dialog,
opt = {
title: (me.options.labelMap && me.options.labelMap[name]) || me.getLang("labelMap." + name),
... ... @@ -10377,55 +10378,55 @@ UM.registerUI('link image video map formula',function(name){
});
return $btn;
});
UM.registerUI( 'emotion formula', function( name ){
var me = this,
url = me.options.UMEDITOR_HOME_URL + 'dialogs/' +name+ '/'+name+'.js';
var $btn = $.eduibutton({
icon: name,
title: this.getLang('labelMap')[name] || ''
});
//加载模版数据
utils.loadFile(document,{
src: url,
tag: "script",
type: "text/javascript",
defer: "defer"
},function(){
var opt = {
url : url
};
//调整数据
var data = UM.getWidgetData(name);
data.width && (opt.width = data.width);
data.height && (opt.height = data.height);
$.eduipopup(opt).css('zIndex',me.options.zIndex + 1)
.addClass('edui-popup-' + name)
.edui()
.on('beforeshow',function(){
var $root = this.root();
if(!$root.parent().length){
me.$container.find('.edui-dialog-container').append($root);
}
UM.setWidgetBody(name,$root,me);
UM.setTopEditor(me);
}).attachTo($btn,{
offsetTop:-5,
offsetLeft:10,
caretLeft:11,
caretTop:-8
});
me.addListener('selectionchange', function () {
var state = this.queryCommandState(name);
$btn.edui().disabled(state == -1).active(state == 1);
});
});
return $btn;
} );
// UM.registerUI( 'emotion formula', function( name ){
// var me = this,
// url = me.options.UMEDITOR_HOME_URL + 'dialogs/' +name+ '/'+name+'.js';
// var $btn = $.eduibutton({
// icon: name,
// title: this.getLang('labelMap')[name] || ''
// });
// //加载模版数据
// utils.loadFile(document,{
// src: url,
// tag: "script",
// type: "text/javascript",
// defer: "defer"
// },function(){
// var opt = {
// url : url
// };
// //调整数据
// var data = UM.getWidgetData(name);
// data.width && (opt.width = data.width);
// data.height && (opt.height = data.height);
// $.eduipopup(opt).css('zIndex',me.options.zIndex + 1)
// .addClass('edui-popup-' + name)
// .edui()
// .on('beforeshow',function(){
// var $root = this.root();
// if(!$root.parent().length){
// me.$container.find('.edui-dialog-container').append($root);
// }
// UM.setWidgetBody(name,$root,me);
// UM.setTopEditor(me);
// }).attachTo($btn,{
// offsetTop:-5,
// offsetLeft:10,
// caretLeft:11,
// caretTop:-8
// });
// me.addListener('selectionchange', function () {
// var state = this.queryCommandState(name);
// $btn.edui().disabled(state == -1).active(state == 1);
// });
// });
// return $btn;
// } );
UM.registerUI('imagescale',function () {
var me = this,
$imagescale;
... ... @@ -10924,6 +10925,6 @@ UM.registerUI('forecolor backcolor', function( name ) {
});
})(jQuery)
require("./dialogs/emotion/emotion.js");
require("./dialogs/formula/formula.js");
require("./dialogs/image/image.js");
\ No newline at end of file
// require("./dialogs/emotion.js");
// require("./dialogs/formula.js");
require("./dialogs/image.js");
\ No newline at end of file
... ...
... ... @@ -12,10 +12,12 @@ console.log(NETSALEDATA);
/*加载其他模块*/
// require('./partials/basic-info');
require('./partials/editor_recommend');
// require('./partials/model');
// require('./partials/search-key.js');
// require('./partials/size-info.js');
// require('./partials/goods-sort.js')
require('./partials/model');
require('./partials/search-key.js');
require('./partials/size-info.js');
require('./partials/goods-sort.js')
require('./partials/video.js')
... ... @@ -27,4 +29,10 @@ require('./partials/editor_recommend');
// onComplete: function() {
// }
// })
\ No newline at end of file
// })
if ($('.contentpanel').data('type') == 'info') {
console.log($('.contentpanel').data('type'));
$('form').find('input').prop('disabled', true);
$('form').find('.btn').addClass('disabled');
}
\ No newline at end of file
... ...
... ... @@ -58,7 +58,7 @@ function convert(basicInfo, obj) {
var basicInfoData = convert(NETSALEDATA.baseProductInfo.baseProduct, convertObj);
basicInfoData.renderType = $('#basicInfoForm').data('type');
basicInfoData.renderType = $('.contentpanel').data('type');
basicInfohtml = common.util.__template2($('#basicInfo').html(), basicInfoData);
... ... @@ -66,4 +66,17 @@ basicInfohtml = common.util.__template2($('#basicInfo').html(), basicInfoData);
$('#basic-info').html(basicInfohtml);
$('#goods-table').html(common.util.__template2($('#goodsList').html(), {
goodsList: NETSALEDATA.goodsList
}));
\ No newline at end of file
}));
NETSALEDATA.productExtBo.sellChannelsList = NETSALEDATA.productExtBo.sellChannelsList.join('|');
$('#product-ext').html(common.util.__template2($('#productExtBoTemp').html(), NETSALEDATA.productExtBo));
var e = new common.edit('#basicInfoForm');
e.init();
$('.saveBasicInfo').on('click', function() {
e.submit('/goods/product/saveNetSaleAllInfo', function(option) {
});
});
\ No newline at end of file
... ...
... ... @@ -3,7 +3,9 @@ var $ = require('jquery'),
common = require('../../common/common');
var ENUM = null;
var param = location.href.match(/edit|info\/(\d+)/)[1];
var param = location.href.match(/(edit|info)\/(\d+)/)[2];
console.log(param);
common.util.__ajax({
url: '/goods/netsale/getdata',
async: false,
... ...
'use strict';
var $ = require('jquery'),
common = require('../../common/common');
var e = new common.edit('#video', {
bucket: "goodsimg"
});
e.init();
\ No newline at end of file
... ...

291 Bytes | W: | H:

1.02 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
//exports.domain = require('../config/common.js').domain;
exports.domain = 'http://172.16.6.227:8083/yohobuy-platform-web'; //变价
exports.domain = require('../config/common.js').domain;
//exports.domain = 'http://172.16.6.227:8083/yohobuy-platform-web'; //变价
//exports.domain = 'http://172.16.6.162:8088/platform'; //品牌合作
//商品管理路由配置
... ... @@ -186,7 +186,7 @@ exports.res = [
domain: exports.domain,
}
}, {
//网销信息 -> 编辑页页面渲染
//网销信息 -> 查看页面渲染
route: '/goods/netsale/info/:param',
method: 'GET',
view: 'pages/goods/netsale-edit',
... ... @@ -201,7 +201,7 @@ exports.res = [
// type: 'number'
// }]
}, {
//网销信息 -> 编辑页面渲染
//网销信息 -> 编辑页面渲染
route: '/goods/netsale/edit/:param',
method: 'GET',
view: 'pages/goods/netsale-edit',
... ... @@ -224,6 +224,69 @@ exports.res = [
type: 'number'
}]
}, {
//网销信息 -> 保存完整网销信息
route: '/goods/product/saveNetSaleAllInfo',
method: 'POST',
url: '/product/saveNetSaleAllInfo',
params: [{
name: 'productSkn',
type: 'number'
}, {
name: 'productName',
type: 'string'
}, {
name: 'isNew',
type: 'string'
}, {
name: 'sellChannels',
type: 'string'
}, {
name: 'phrase',
type: 'string'
}, {
name: 'outSaleTime',
type: 'string'
}, {
name: 'shopIds',
type: 'string'
}, {
name: 'productDesc',
type: 'string'
}, {
name: 'vedioUrl',
type: 'string'
}, {
name: 'recommend',
type: 'string'
}, {
name: 'brandModel',
type: 'string'
}, {
name: 'brandSeries',
type: 'string'
}, {
name: 'makeCrafts',
type: 'string'
}, {
name: 'pattern',
type: 'string'
}, {
name: 'style',
type: 'string'
}, {
name: 'salesPhrase',
type: 'string'
}, {
name: 'isHostsell',
type: 'string'
}, {
name: 'wearSense',
type: 'string'
}, {
name: 'searchSortList',
type: 'string'
}]
}, {
route: '/goods/product/getNetSaleInfo',
method: 'POST',
url: '/product/getNetSaleInfo',
... ...
... ... @@ -16,7 +16,7 @@
</div>
</div>
<div class="contentpanel">
<div class="contentpanel" data-type="{{type}}">
<div class="panel panel-danger">
<div class="panel-heading">
... ... @@ -27,49 +27,7 @@
</div>
<div class="panel-body">
<div class="panel panel-default">
<form id="basicInfoForm" class="form-horizontal form-bordered" data-type="{{type}}">
<div class="panel-heading">
<div class="panel-btns" style="display: none;">
<a href="" class="panel-minimize tooltips" data-toggle="tooltip" title=""><i class="fa fa-minus"></i></a>
</div>
<h2 class="panel-title">基本信息</h2>
</div>
<div class="panel-body nopadding">
<div id="basic-info"></div>
<div id="goods-table"></div>
<div class="form-group">
<blockquote>上架必填:</blockquote>
</div>
<div class="form-group">
<div class="col-sm-1 height40">商品短评<i class="red">*</i></div>
<div class="col-sm-8"><input class="form-control" placeholder="商品短评" type="text" required></div>
</div>
<div class="form-group">
<div class="col-sm-6">
<label>是否新品:</label>
<label class="radio-inline"><input type="radio" name="dayFlag" value="1"></label>
<label class="radio-inline"><input type="radio" name="dayFlag" value="0"></label>
</div>
<div class="col-sm-6">
<label>上架渠道:</label>
<label style="cursor: pointer;"><input type="checkbox" name="brandStyle" value="网站">网站</label>
<label style="cursor: pointer;"><input type="checkbox" name="brandStyle" value="手机">手机</label>
<label style="cursor: pointer;"><input type="checkbox" name="brandStyle" value="场地">场地</label>
</div>
</div>
<div class="form-group">
<div class="col-sm-12">下架时间:售罄0天下架</div>
</div>
</div>
<div class="panel-footer">
<button class="btn btn-primary">保存文本</button>
</div>
</form>
</div>
{{> netsale/basic_info}}
<div class="panel panel-default">
<form class="form-horizontal form-bordered">
<div class="panel-heading">
... ... @@ -174,95 +132,3 @@
</div>
</script>
<script type="text/template" id="basicInfo">
<div class="form-group">
<blockquote>基本信息:</blockquote>
</div>
<div class="form-group">
<div class="col-sm-3">店铺:[[shopName]]</div>
<div class="col-sm-3">品牌:[[brandName]]</div>
<div class="col-sm-3">供应商:[[supplierName]]</div>
<div class="col-sm-3">厂家编号:[[factoryCode]]</div>
</div>
<div class="form-group">
<div class="col-sm-3">品类:</div>
<div class="col-sm-3">货品年:[[goodsYears]]</div>
<div class="col-sm-3">货品季:[[goodsSeason]]</div>
</div>
<div class="form-group">
<div class="col-sm-3">SKN[[productSkn]]</div>
<div class="col-sm-3">商品类型:[[attribute]]</div>
</div>
<div class="form-group">
<div class="col-sm-1 height40">商品名称<i class="red">*</i>:</div>
[[if renderType == 'edit']]
<div class="col-sm-8"><input class="form-control" placeholder="基础商品名称" type="text"></div>
<div class="col-sm-12" style="color: red;"><div class="col-sm-1"></div>建议名称:【品牌英文+性别+图案纹理+版型+风格+三级类目+商家款号+(款型)】,如此可增加商品在搜索页的展示。</div>
[[else]]
<div class="col-sm-8 height40">[[productName]]</div>
[[/if]]
</div>
<div class="form-group">
<div class="col-sm-12">商品话题:[[productTag]]</div>
</div>
<div class="form-group">
<div class="col-sm-3">年龄层:[[ageLevel]]</div>
<div class="col-sm-3">性别:[[gender]]</div>
<div class="col-sm-3">重点款:[[grade]]</div>
</div>
<div class="form-group">
<div class="col-sm-3">是否奥莱:[[isOutLets]]</div>
<div class="col-sm-3">限量款:[[isLimited]]</div>
<div class="col-sm-3">促销礼品:[[isPromotionalGifts]]</div>
</div>
<div class="form-group">
<div class="col-sm-3">是否预售:[[isAdvance]]</div>
<div class="col-sm-3" style="color: #ccc;">预售库存:[[stock]]</div>
<div class="col-sm-3">预计到货时间:[[expectArrivalTime]]</div>
</div>
<div class="form-group">
<div class="col-sm-3">是否限购:[[isLimitbuy]]</div>
<div class="col-sm-3">适销季:[[seasons]]</div>
</div>
<div class="form-group">
<div class="col-sm-3">吊牌价:[[retailPrice]]</div>
<div class="col-sm-3">销售价:[[salesPrice]]</div>
</div>
<div class="form-group">
<div class="col-sm-3">是否VIP</div>
<div class="col-sm-3">预计上架时间:[[expectShelfTime]]</div>
</div>
</script>
<script type="text/template" id="goodsList">
<div class="form-group">
<h4>能否补货:</h4>
<table class="table table-bordered">
<thead>
<tr>
<th>SKC(厂家颜色)</th>
<th>SKU(尺码)</th>
<th>能否补货</th>
</tr>
</thead>
<tbody>
[[each goodsList as item index]]
<tr>
<td>[[item.productSkc]][[item.goodsName]]</td>
<td>
[[each item.goodsSizeList as b index]]
<p>[[b.productSku]][[b.sizeName]]<br></p>
[[/each]]
</td>
<td>
[[each item.goodsSizeList as b index]]
<p>[[b.isSuppled]]</br></p>
[[/each]]
</td>
</tr>
[[/each]]
</tbody>
</table>
</div>
</script>
\ No newline at end of file
... ...
<div class="panel panel-default">
<form id="basicInfoForm" class="form-horizontal form-bordered">
<div class="panel-heading">
<div class="panel-btns" style="display: none;">
<a href="" class="panel-minimize tooltips" data-toggle="tooltip" title=""><i class="fa fa-minus"></i></a>
</div>
<h2 class="panel-title">基本信息</h2>
</div>
<div class="panel-body nopadding">
<div id="basic-info"></div>
<div id="goods-table"></div>
<div id="product-ext"></div>
</div>
<div class="panel-footer">
<button id="saveBasicInfo" class="btn btn-primary">保存文本</button>
</div>
</form>
</div>
<script type="text/template" id="basicInfo">
<div class="form-group">
<blockquote>基本信息</blockquote>
</div>
<div class="form-group">
<div class="col-sm-3">店铺:[[shopName]]</div>
<div class="col-sm-3">品牌:[[brandName]]</div>
<div class="col-sm-3">供应商:[[supplierName]]</div>
<div class="col-sm-3">厂家编号:[[factoryCode]]</div>
</div>
<div class="form-group">
<div class="col-sm-3">品类:</div>
<div class="col-sm-3">货品年:[[goodsYears]]</div>
<div class="col-sm-3">货品季:[[goodsSeason]]</div>
</div>
<div class="form-group">
<div class="col-sm-3">SKN[[productSkn]]</div>
<div class="col-sm-3">商品类型:[[attribute]]</div>
</div>
<div class="form-group">
<div class="col-sm-1 height40">商品名称<i class="red">*</i>:</div>
[[if renderType == 'edit']]
<div class="col-sm-8"><input id="productName" class="form-control" placeholder="基础商品名称" type="text" required></div>
<div class="col-sm-12" style="color: red;"><div class="col-sm-1"></div>建议名称:【品牌英文+性别+图案纹理+版型+风格+三级类目+商家款号+(款型)】,如此可增加商品在搜索页的展示。</div>
[[else]]
<div class="col-sm-8 height40">[[productName]]</div>
[[/if]]
</div>
<div class="form-group">
<div class="col-sm-12">商品话题:[[productTag]]</div>
</div>
<div class="form-group">
<div class="col-sm-3">年龄层:[[ageLevel]]</div>
<div class="col-sm-3">性别:[[gender]]</div>
<div class="col-sm-3">重点款:[[grade]]</div>
</div>
<div class="form-group">
<div class="col-sm-3">是否奥莱:[[isOutLets]]</div>
<div class="col-sm-3">限量款:[[isLimited]]</div>
<div class="col-sm-3">促销礼品:[[isPromotionalGifts]]</div>
</div>
<div class="form-group">
<div class="col-sm-3">是否预售:[[isAdvance]]</div>
<div class="col-sm-3" style="color: #ccc;">预售库存:[[stock]]</div>
<div class="col-sm-3">预计到货时间:[[expectArrivalTime]]</div>
</div>
<div class="form-group">
<div class="col-sm-3">是否限购:[[isLimitbuy]]</div>
<div class="col-sm-3">适销季:[[seasons]]</div>
</div>
<div class="form-group">
<div class="col-sm-3">吊牌价:[[retailPrice]]</div>
<div class="col-sm-3">销售价:[[salesPrice]]</div>
</div>
<div class="form-group">
<div class="col-sm-3">是否VIP</div>
<div class="col-sm-3">预计上架时间:[[expectShelfTime]]</div>
</div>
</script>
<script type="text/template" id="goodsList">
<div class="form-group">
<h5>能否补货</h5>
<table class="table table-bordered">
<thead>
<tr>
<th>SKC(厂家颜色)</th>
<th>SKU(尺码)</th>
<th>能否补货</th>
</tr>
</thead>
<tbody>
[[each goodsList as item index]]
<tr>
<td>[[item.productSkc]][[item.goodsName]]</td>
<td>
[[each item.goodsSizeList as b index]]
<p>[[b.productSku]][[b.sizeName]]<br></p>
[[/each]]
</td>
<td>
[[each item.goodsSizeList as b index]]
<p>[[b.isSuppled]]</br></p>
[[/each]]
</td>
</tr>
[[/each]]
</tbody>
</table>
</div>
</script>
<script type="text/template" id="productExtBoTemp">
<div class="form-group">
<blockquote>上架必填</blockquote>
</div>
<div class="form-group">
<div class="col-sm-1 height40">商品短评<i class="red">*</i>:</div>
<div class="col-sm-8 height40">
[[if renderType == 'edit']]
<input class="form-control" placeholder="商品短评" type="text" required>
[[else]]
<span>[[phrase]]</span>
[[/if]]
</div>
</div>
<div class="form-group">
<div class="col-sm-6">
<label>是否新品:</label>
<label class="radio-inline"><input type="radio" name="isNew" value="Y"></label>
<label class="radio-inline"><input type="radio" name="isNew" value="N"></label>
<input id="isNew" type="hidden" value="[[isNew]]" for="radio">
</div>
<div class="col-sm-6">
<label>上架渠道:</label>
<label style="cursor: pointer;"><input type="checkbox" name="sellChannelsList" value="1">网站</label>
<label style="cursor: pointer;"><input type="checkbox" name="sellChannelsList" value="2">手机</label>
<label style="cursor: pointer;"><input type="checkbox" name="sellChannelsList" value="3">场地</label>
<input id="sellChannelsList" value="[[sellChannelsList]]" type="hidden" for="checkbox">
</div>
</div>
<div class="form-group">
<div class="col-sm-12">下架时间:售罄<span style="text-decoration:underline;">[[outSaleTime]]</span>天下架</div>
</div>
</script>
\ No newline at end of file
... ...
<div class="panel panel-default">
<form action="" class="form-horizontal form-bordered">
<form id="video" class="form-horizontal form-bordered">
<div class="panel-heading">
<div class="panel-btns" style="display: none;">
<a href="" class="panel-minimize tooltips" data-toggle="tooltip" title=""><i class="fa fa-minus"></i></a>
</div>
<h2 class="panel-title">视频</h2>
</div>
<form class="form-horizontal form-bordered">
<div class="panel-body nopadding">
<div class="video-file-wrap">
<span>请上传视频</span>
<input id="videofile" name="videofile" type="file" extend="mp4,rmvb,avi,mov" class="btn btn-primary ml10">
</div>
<div class="panel-body">
<h4>请上传视频</h4>
<div class="video-file-wrap">
<input id="videofile" name="videofile" type="file" extend="mp4,rmvb,avi,mov">
</div>
<div class="panel-footer">
<button class="btn btn-primary">保存</button>
</div>
</form>
</div>
<div class="panel-footer">
<button class="btn btn-primary">保存</button>
</div>
</form>
</div>
\ No newline at end of file
... ...