From 652ea98a2bab1dc82692f70b115db026353718f7 Mon Sep 17 00:00:00 2001 From: wangyong <864072399@qq.com> Date: Sat, 21 Nov 2015 18:28:25 +0800 Subject: [PATCH] alert ip -> hostname --- jasset/asset_api.py | 5 +- jasset/forms.py | 5 + jasset/models.py | 10 +- jasset/urls.py | 2 - jasset/views.py | 131 +++++----- jumpserver/api.py | 2 +- .../excels/cmdb_excel_2015_11_14_11_38.xlsx | Bin 0 -> 6151 bytes .../excels/cmdb_excel_2015_11_14_11_39.xlsx | Bin 0 -> 6158 bytes static/js/base.js | 22 +- static/js/layer/extend/layer.ext.js | 14 +- static/js/layer/layer.js | 2 + static/js/layer/layer.min.js | 16 -- static/js/layer/skin/default/icon-ext.png | Bin 0 -> 5911 bytes static/js/layer/skin/default/icon.png | Bin 0 -> 11493 bytes static/js/layer/skin/default/icon_ext.png | Bin 7677 -> 0 bytes .../{xubox_loading0.gif => loading-0.gif} | Bin .../{xubox_loading1.gif => loading-1.gif} | Bin .../{xubox_loading2.gif => loading-2.gif} | Bin static/js/layer/skin/default/textbg.png | Bin 210 -> 0 bytes static/js/layer/skin/default/xubox_ico0.png | Bin 32954 -> 0 bytes .../js/layer/skin/default/xubox_loading3.gif | Bin 2364 -> 0 bytes static/js/layer/skin/default/xubox_title0.png | Bin 221 -> 0 bytes static/js/layer/skin/layer.css | 82 +------ static/js/layer/skin/layer.ext.css | 41 +--- templates/foot_script.html | 2 +- templates/jasset/asset_add.html | 51 ++-- templates/jasset/asset_detail.html | 1 + templates/jasset/asset_edit.html | 50 ++-- templates/jasset/asset_edit_batch.html | 36 +-- templates/jasset/asset_list.html | 34 +-- templates/jasset/group_add.html | 14 +- templates/jasset/group_detail.html | 201 --------------- templates/jasset/group_edit.html | 14 +- templates/jasset/group_list.html | 4 +- templates/jasset/idc_detail.html | 229 ------------------ templates/jasset/idc_list.html | 62 +++-- 36 files changed, 265 insertions(+), 765 deletions(-) create mode 100644 static/files/excels/cmdb_excel_2015_11_14_11_38.xlsx create mode 100644 static/files/excels/cmdb_excel_2015_11_14_11_39.xlsx mode change 100644 => 100755 static/js/layer/extend/layer.ext.js create mode 100755 static/js/layer/layer.js delete mode 100644 static/js/layer/layer.min.js create mode 100755 static/js/layer/skin/default/icon-ext.png create mode 100755 static/js/layer/skin/default/icon.png delete mode 100644 static/js/layer/skin/default/icon_ext.png rename static/js/layer/skin/default/{xubox_loading0.gif => loading-0.gif} (100%) mode change 100644 => 100755 rename static/js/layer/skin/default/{xubox_loading1.gif => loading-1.gif} (100%) mode change 100644 => 100755 rename static/js/layer/skin/default/{xubox_loading2.gif => loading-2.gif} (100%) mode change 100644 => 100755 delete mode 100644 static/js/layer/skin/default/textbg.png delete mode 100644 static/js/layer/skin/default/xubox_ico0.png delete mode 100644 static/js/layer/skin/default/xubox_loading3.gif delete mode 100644 static/js/layer/skin/default/xubox_title0.png mode change 100644 => 100755 static/js/layer/skin/layer.css mode change 100644 => 100755 static/js/layer/skin/layer.ext.css delete mode 100644 templates/jasset/group_detail.html delete mode 100644 templates/jasset/idc_detail.html diff --git a/jasset/asset_api.py b/jasset/asset_api.py index 8103db23b..06c91a616 100644 --- a/jasset/asset_api.py +++ b/jasset/asset_api.py @@ -238,7 +238,6 @@ def db_asset_alert(asset, username, alert_dic): alert_list = [] asset_tuple_dic = {'status': ASSET_STATUS, 'env': ASSET_ENV, 'asset_type': ASSET_TYPE} for field, value in alert_dic.iteritems(): - print field field_name = Asset._meta.get_field_by_name(field)[0].verbose_name if field == 'idc': old = IDC.objects.filter(id=value[0]) if value[0] else u'' @@ -386,9 +385,9 @@ def excel_to_db(excel_file): if row: ip, port, hostname, use_default_auth, username, password, group = row use_default_auth = 1 if use_default_auth == u'默认' else 0 - if get_object(Asset, ip=ip): + if get_object(Asset, hostname=hostname): continue - if ip and port: + if hostname: asset = Asset(ip=ip, port=port, hostname=hostname, diff --git a/jasset/forms.py b/jasset/forms.py index f9af4d499..03eca04ed 100644 --- a/jasset/forms.py +++ b/jasset/forms.py @@ -28,5 +28,10 @@ class IdcForm(forms.ModelForm): class Meta: model = IDC fields = ['name', "bandwidth", "operator", 'linkman', 'phone', 'address', 'network', 'comment'] + widgets = { + 'name': forms.TextInput(attrs={'placeholder': 'Name'}), + 'network': forms.Textarea( + attrs={'placeholder': '192.168.1.0/24\n192.168.2.0/24'}) + } diff --git a/jasset/models.py b/jasset/models.py index f1e5b46fc..159d72254 100644 --- a/jasset/models.py +++ b/jasset/models.py @@ -42,7 +42,7 @@ class IDC(models.Model): address = models.CharField(max_length=128, blank=True, null=True, verbose_name=u"机房地址") network = models.TextField(blank=True, null=True, verbose_name=u"IP地址段") date_added = models.DateField(auto_now=True, null=True) - operator = models.IntegerField(blank=True, null=True, verbose_name=u"运营商") + operator = models.CharField(max_length=32, blank=True, null=True, verbose_name=u"运营商") comment = models.CharField(max_length=128, blank=True, null=True, verbose_name=u"备注") def __unicode__(self): @@ -57,17 +57,17 @@ class Asset(models.Model): """ asset modle """ - ip = models.GenericIPAddressField(unique=True, verbose_name=u"主机IP") + ip = models.GenericIPAddressField(blank=True, null=True, verbose_name=u"主机IP") other_ip = models.CharField(max_length=255, blank=True, null=True, verbose_name=u"其他IP") - hostname = models.CharField(max_length=64, blank=True, null=True, verbose_name=u"主机名") - port = models.IntegerField(verbose_name=u"端口号") + hostname = models.CharField(unique=True, max_length=128, verbose_name=u"主机名") + port = models.IntegerField(blank=True, null=True, verbose_name=u"端口号") group = models.ManyToManyField(AssetGroup, blank=True, verbose_name=u"所属主机组") username = models.CharField(max_length=16, blank=True, null=True, verbose_name=u"管理用户名") password = models.CharField(max_length=64, blank=True, null=True, verbose_name=u"密码") use_default_auth = models.BooleanField(default=True, verbose_name=u"使用默认管理账号") idc = models.ForeignKey(IDC, blank=True, null=True, on_delete=models.SET_NULL, verbose_name=u'机房') mac = models.CharField(max_length=20, blank=True, null=True, verbose_name=u"MAC地址") - remote_ip = models.CharField(max_length=16, blank=True, null=True, verbose_name=u'远控卡') + remote_ip = models.CharField(max_length=16, blank=True, null=True, verbose_name=u'远控卡IP') brand = models.CharField(max_length=64, blank=True, null=True, verbose_name=u'硬件厂商型号') cpu = models.CharField(max_length=64, blank=True, null=True, verbose_name=u'CPU') memory = models.CharField(max_length=128, blank=True, null=True, verbose_name=u'内存') diff --git a/jasset/urls.py b/jasset/urls.py index c9ec8c462..10d6dafc7 100644 --- a/jasset/urls.py +++ b/jasset/urls.py @@ -17,13 +17,11 @@ urlpatterns = patterns('', url(r'^group_list/$', group_list), url(r'^group_edit/$', group_edit), url(r'^group_list/$', group_list), - url(r'^group_detail/$', group_detail), # url(r'^group_del_host/$', group_del_host), url(r'^asset_edit_batch/$', asset_edit_batch), # url(r'^host_edit_common/batch/$', host_edit_common_batch), url(r'^idc_add/$', idc_add), url(r'^idc_list/$', idc_list), - url(r'^idc_detail/$', idc_detail), url(r'^idc_edit/$', idc_edit), url(r'^idc_del/$', idc_del), url(r'^upload/$', asset_upload), diff --git a/jasset/views.py b/jasset/views.py index 1a77f517b..af24d7de2 100644 --- a/jasset/views.py +++ b/jasset/views.py @@ -26,13 +26,13 @@ def group_add(request): try: if not name: - error = u'组名不能为空' - raise ServerError(error) + emg = u'组名不能为空' + raise ServerError(emg) asset_group_test = get_object(AssetGroup, name=name) if asset_group_test: - error = u"该组名 %s 已存在" % name - raise ServerError(error) + emg = u"该组名 %s 已存在" % name + raise ServerError(emg) except ServerError: pass @@ -87,21 +87,6 @@ def group_edit(request): return my_render('jasset/group_edit.html', locals(), request) -@require_role('admin') -def group_detail(request): - """ - Group detail view - 主机组详情 - """ - header_title, path1, path2 = u'主机组详情', u'资产管理', u'主机组详情' - group_id = request.GET.get('id', '') - group = get_object(AssetGroup, id=group_id) - asset_all = Asset.objects.filter(group=group).order_by('ip') - - contact_list, p, contacts, page_range, current_page, show_first, show_end = pages(asset_all, request) - return my_render('jasset/group_detail.html', locals(), request) - - @require_role('admin') def group_list(request): """ @@ -147,13 +132,13 @@ def asset_add(request): af = AssetForm() if request.method == 'POST': af_post = AssetForm(request.POST) - print af_post ip = request.POST.get('ip', '') + hostname = request.POST.get('hostname', '') is_active = True if request.POST.get('is_active') == '1' else False use_default_auth = request.POST.get('use_default_auth', '') try: - if Asset.objects.filter(ip=str(ip)): - error = u'该IP %s 已存在!' % ip + if Asset.objects.filter(hostname=str(hostname)): + error = u'该主机名 %s 已存在!' % hostname raise ServerError(error) except ServerError: @@ -165,13 +150,15 @@ def asset_add(request): password = request.POST.get('password', '') password_encode = CRYPTOR.encrypt(password) asset_save.password = password_encode + if not ip: + asset_save.ip = hostname asset_save.is_active = True if is_active else False asset_save.save() af_post.save_m2m() - msg = u'主机 %s 添加成功' % ip + msg = u'主机 %s 添加成功' % hostname else: - esg = u'主机 %s 添加失败' % ip + esg = u'主机 %s 添加失败' % hostname return my_render('jasset/asset_add.html', locals(), request) @@ -215,17 +202,21 @@ def asset_edit(request): asset_id = request.GET.get('id', '') username = request.session.get('username', 'admin') asset = get_object(Asset, id=asset_id) - asset_old = copy_model_instance(asset) + if asset: + password_old = asset.password + # asset_old = copy_model_instance(asset) af = AssetForm(instance=asset) if request.method == 'POST': af_post = AssetForm(request.POST, instance=asset) ip = request.POST.get('ip', '') - use_default_auth = request.POST.get('use_default_auth') + hostname = request.POST.get('hostname', '') + password = request.POST.get('password', '') + use_default_auth = request.POST.get('use_default_auth', '') try: - asset_test = get_object(Asset, ip=ip) + asset_test = get_object(Asset, hostname=hostname) if asset_test and asset_id != unicode(asset_test.id): - error = u'该IP %s 已存在!' % ip + error = u'该主机名 %s 已存在!' % hostname raise ServerError(error) except ServerError: pass @@ -235,6 +226,10 @@ def asset_edit(request): if use_default_auth: af_save.username = '' af_save.password = '' + else: + if password_old != password: + password_encode = CRYPTOR.encrypt(password) + af_save.password = password_encode af_save.save() af_post.save_m2m() # asset_new = get_object(Asset, id=asset_id) @@ -266,8 +261,19 @@ def asset_list(request): status = request.GET.get('status', '') keyword = request.GET.get('keyword', '') export = request.GET.get("export", False) + group_id = request.GET.get("group_id", '') + idc_id = request.GET.get("idc_id", '') + if group_id: + group = get_object(AssetGroup, id=group_id) + if group: + asset_find = Asset.objects.filter(group=group) + elif idc_id: + idc = get_object(IDC, id=idc_id) + if idc: + asset_find = Asset.objects.filter(idc=idc) + else: + asset_find = Asset.objects.all() - asset_find = Asset.objects.all() if idc_name: asset_find = asset_find.filter(idc__name__contains=idc_name) @@ -305,6 +311,7 @@ def asset_list(request): @require_role('admin') def asset_edit_batch(request): af = AssetForm() + name = request.session.get('username', 'admin') asset_group_all = AssetGroup.objects.all() if request.method == 'POST': @@ -320,38 +327,64 @@ def asset_edit_batch(request): asset_id_all = unicode(request.GET.get('asset_id_all', '')) asset_id_all = asset_id_all.split(',') for asset_id in asset_id_all: + alert_list = [] asset = get_object(Asset, id=asset_id) if asset: if env: - asset.env = env + if asset.env != env: + asset.env = env + alert_list.append([u'运行环境', asset.env, env]) if idc_id: idc = get_object(IDC, id=idc_id) - if idc: + name_old = asset.idc.name if asset.idc else u'' + if idc and idc.name != name_old: asset.idc = idc + alert_list.append([u'机房', name_old, idc.name]) if port: - asset.port = port + if unicode(asset.port) != port: + asset.port = port + alert_list.append([u'端口号', asset.port, port]) + if use_default_auth: if use_default_auth == 'default': asset.use_default_auth = 1 asset.username = '' asset.password = '' + alert_list.append([u'使用默认管理账号', asset.use_default_auth, u'默认']) elif use_default_auth == 'user_passwd': asset.use_default_auth = 0 asset.username = username password_encode = CRYPTOR.encrypt(password) asset.password = password_encode + alert_list.append([u'使用默认管理账号', asset.use_default_auth, username]) if group: - group_instance = [] + group_new, group_old, group_new_name, group_old_name = [], asset.group.all(), [], [] for group_id in group: g = get_object(AssetGroup, id=group_id) if g: - group_instance.append(g) - asset.group = group_instance + group_new.append(g) + if not set(group_new) < set(group_old): + group_instance = list(set(group_new) | set(group_old)) + for g in group_instance: + group_new_name.append(g.name) + for g in group_old: + group_old_name.append(g.name) + asset.group = group_instance + alert_list.append([u'主机组', ','.join(group_old_name), ','.join(group_new_name)]) if cabinet: - asset.cabinet = cabinet + if asset.cabinet != cabinet: + asset.cabinet = cabinet + alert_list.append([u'机柜号', asset.cabinet, cabinet]) if comment: - asset.comment = comment + if asset.comment != comment: + asset.comment = comment + alert_list.append([u'备注', asset.comment, comment]) asset.save() + + if alert_list: + username = unicode(name) + ' - ' + u'批量' + print alert_list + AssetRecord.objects.create(asset=asset, username=username, content=alert_list) return HttpResponse('ok') return my_render('jasset/asset_edit_batch.html', locals(), request) @@ -485,29 +518,17 @@ def idc_edit(request): return my_render('jasset/idc_edit.html', locals(), request) -@require_role('admin') -def idc_detail(request): - """ - IDC detail view - """ - header_title, path1, path2 = u'IDC详情', u'资产管理', u'IDC详情' - idc_id = request.GET.get('id', '') - idc = get_object(IDC, id=idc_id) - posts = Asset.objects.filter(idc=idc).order_by('ip') - contact_list, p, contacts, page_range, current_page, show_first, show_end = pages(posts, request) - - return my_render('jasset/idc_detail.html', locals(), request) - - @require_role('admin') def idc_del(request): """ IDC delete view """ - uuid = request.GET.get('id', '') - idc = get_object(IDC, id=uuid) - if idc: - idc.delete() + idc_ids = request.GET.get('id', '') + idc_id_list = idc_ids.split(',') + + for idc_id in idc_id_list: + IDC.objects.filter(id=idc_id).delete() + return HttpResponseRedirect('/jasset/idc_list/') diff --git a/jumpserver/api.py b/jumpserver/api.py index 5b964586c..4704279f6 100644 --- a/jumpserver/api.py +++ b/jumpserver/api.py @@ -58,7 +58,7 @@ def pages(post_objects, request): page public function , return page's object tuple 分页公用函数,返回分页的对象元组 """ - paginator = Paginator(post_objects, 10) + paginator = Paginator(post_objects, 20) try: current_page = int(request.GET.get('page', '1')) except ValueError: diff --git a/static/files/excels/cmdb_excel_2015_11_14_11_38.xlsx b/static/files/excels/cmdb_excel_2015_11_14_11_38.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..7be819d9084f04688ea6b77427f045dc222d0c8b GIT binary patch literal 6151 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 JZGeA&`X49Qy6yk~ literal 0 HcmV?d00001 diff --git a/static/js/base.js b/static/js/base.js index 15b54dd49..a8aa99b70 100644 --- a/static/js/base.js +++ b/static/js/base.js @@ -86,17 +86,17 @@ function move(from, to, from_o, to_o) { }); } -//function move_left(from, to, from_o, to_o) { -// $("#" + from + " option").each(function () { -// if ($(this).prop("selected") == true) { -// $("#" + to).append(this); -// if( typeof from_o !== 'undefined'){ -// $("#"+to_o).append($("#"+from_o +" option[value='"+this.value+"']")); -// } -// } -// $(this).attr("selected",'true'); -// }); -//} +function move_left(from, to, from_o, to_o) { + $("#" + from + " option").each(function () { + if ($(this).prop("selected") == true) { + $("#" + to).append(this); + if( typeof from_o !== 'undefined'){ + $("#"+to_o).append($("#"+from_o +" option[value='"+this.value+"']")); + } + } + $(this).attr("selected",'true'); + }); +} //function move_all(from, to) { // $("#" + from).children().each(function () { diff --git a/static/js/layer/extend/layer.ext.js b/static/js/layer/extend/layer.ext.js old mode 100644 new mode 100755 index 2b3a23b4e..80cd0ab12 --- a/static/js/layer/extend/layer.ext.js +++ b/static/js/layer/extend/layer.ext.js @@ -1,12 +1,2 @@ -/** - - @Name: layer拓展类,依赖于layer - @Date: 2014.08.13 - @Author: 贤心 - @Versions:1.8.5-ext - @Api:http://sentsin.com/jquery/layer - @Desc: 本拓展会持续更新 - - */ - -layer.use("skin/layer.ext.css",function(){layer.ext&&layer.ext()}),layer.prompt=function(a,b,c){var d={},a=a||{},e={area:["auto","auto"],offset:[a.top||"",""],title:a.title||"信息",dialog:{btns:2,type:-1,msg:'',yes:function(c){var e=d.prompt.val();""===e?d.prompt.focus():e.replace(/\s/g,"").length>(a.length||1e3)?layer.tips("最多输入"+(a.length||1e3)+"个字数","#xubox_prompt",2):b&&b(e,c,d.prompt)},no:c},success:function(){d.prompt=$("#xubox_prompt"),d.prompt.focus()}};return 3===a.type&&(e.dialog.msg='"),$.layer(e)},layer.tab=function(a){var a=a||{},c=a.data||[],d={type:1,border:[0],area:["auto","auto"],bgcolor:"",title:!1,shade:a.shade,offset:a.offset,move:".xubox_tabmove",closeBtn:!1,page:{html:'
'}()+''+'
'+function(){var a=c.length,b=1,d="";if(a>0)for(d=''+c[0].title+"";a>b;b++)d+=""+c[b].title+"";return d}()+"
"+'
    '+function(){var a=c.length,b=1,d="";if(a>0)for(d='
  • '+(c[0].content||"content未传入")+"
  • ";a>b;b++)d+='
  • '+(c[b].content||"content未传入")+"
  • ";return d}()+"
"+'X'+"
"},success:function(a){var b=$(".xubox_tabtit").children(),c=$(".xubox_tab_main").children(),d=$(".xubox_tabclose");b.on("click",function(){var a=$(this),b=a.index();a.addClass("xubox_tabnow").siblings().removeClass("xubox_tabnow"),c.eq(b).show().siblings().hide()}),d.on("click",function(){layer.close(a.attr("times"))})}};return $.layer(d)},layer.photos=function(a){var b,c,d,e,f,g,h,i;if(a=a||{},b={imgIndex:1,end:null,html:$("html")},c=$(window),d=a.json,e=a.page,d){if(f=d.data,1!==d.status)return layer.msg("未请求到数据",2,8),void 0;if(b.imgLen=f.length,!(f.length>0))return layer.msg("没有任何图片",2,8),void 0;b.thissrc=f[d.start].src,b.pid=f[d.start].pid,b.imgsname=d.title||"",b.name=f[d.start].name,b.imgIndex=d.start+1}else g=$(e.parent).find("img"),h=g.eq(e.start),b.thissrc=h.attr("layer-img")||h.attr("src"),b.pid=h.attr("pid"),b.imgLen=g.length,b.imgsname=e.title||"",b.name=h.attr("alt"),b.imgIndex=e.start+1;return i={type:1,border:[0],area:[(a.html?915:600)+"px","auto"],title:!1,shade:[.9,"#000",!0],shadeClose:!0,offset:["25px",""],bgcolor:"",page:{html:'
'+(b.name||
'+function(){return b.imgLen>1?'':""}()+'
'+b.imgsname+" "+b.imgIndex+"/"+b.imgLen+"
"+function(){return a.html?'
'+a.html+"
":""}()},success:function(a){b.bigimg=a.find(".xubox_bigimg"),b.imgsee=b.bigimg.find(".xubox_imgsee"),b.imgbar=b.imgsee.find(".xubox_imgbar"),b.imgtit=b.imgbar.find(".xubox_imgtit"),b.layero=a;var c=b.imgs=b.bigimg.find("img");clearTimeout(b.timerr),b.timerr=setTimeout(function(){$("html").css("overflow","hidden").attr("layer-full",b.index)},10),c.load(function(){b.imgarea=[c.outerWidth(),c.outerHeight()],b.resize(a)}),b.event()},end:function(){layer.closeAll(),b.end=!0}},b.event=function(){b.bigimg.hover(function(){b.imgsee.show()},function(){b.imgsee.hide()}),i.imgprev=function(){b.imgIndex--,b.imgIndex<1&&(b.imgIndex=b.imgLen),b.tabimg()},b.bigimg.find(".xubox_prev").on("click",function(a){a.preventDefault(),i.imgprev()}),i.imgnext=function(){b.imgIndex++,b.imgIndex>b.imgLen&&(b.imgIndex=1),b.tabimg()},b.bigimg.find(".xubox_next").on("click",function(a){a.preventDefault(),i.imgnext()}),$(document).keyup(function(a){if(!b.end){var c=a.keyCode;a.preventDefault(),37===c?i.imgprev():39===c?i.imgnext():27===c&&layer.close(b.index)}}),b.tabimg=function(){var e,h,i,j,k;b.imgs.removeAttr("style"),d?(j=f[b.imgIndex-1],e=j.src,h=j.pid,i=j.name):(k=g.eq(b.imgIndex-1),e=k.attr("layer-img")||k.attr("src"),h=k.attr("layer-pid")||"",i=k.attr("alt")||""),b.imgs.attr({src:e,"layer-pid":h,alt:i}),b.imgtit.find("em").text(b.imgIndex+"/"+b.imgLen),b.imgsee.show(),a.tab&&a.tab({pid:h,name:i})}},b.resize=function(d){var g,e={},f=[c.width(),c.height()];e.limit=f[0]-f[0]/f[1]*(60*f[0]/f[1]),e.limit<600&&(e.limit=600),g=[e.limit,f[1]>400?f[1]-50:400],g[0]=a.html?g[0]:g[0]-300,layer.area(b.index,{width:g[0]+(a.html?15:0),height:g[1]}),e.flwidth=g[0]-(a.html?300:0),b.imgarea[0]>e.flwidth?b.imgs.css({width:e.flwidth}):b.imgs.css({width:b.imgarea[0]}),b.imgs.outerHeight()'+(a.value||"")+"":function(){return''}();return layer.open($.extend({btn:["确定","取消"],content:e,skin:"layui-layer-prompt"+b("prompt"),success:function(a){d=a.find(".layui-layer-input"),d.focus()},yes:function(b){var e=d.val();""===e?d.focus():e.length>(a.maxlength||500)?layer.tips("最多输入"+(a.maxlength||500)+"个字数",d,{tips:1}):c&&c(e,b,d)}},a))},layer.tab=function(a){a=a||{};var c=a.tab||{};return layer.open($.extend({type:1,skin:"layui-layer-tab"+b("tab"),title:function(){var a=c.length,b=1,d="";if(a>0)for(d=''+c[0].title+"";a>b;b++)d+=""+c[b].title+"";return d}(),content:'
    '+function(){var a=c.length,b=1,d="";if(a>0)for(d='
  • '+(c[0].content||"no content")+"
  • ";a>b;b++)d+='
  • '+(c[b].content||"no content")+"
  • ";return d}()+"
",success:function(a){var b=a.find(".layui-layer-title").children(),c=a.find(".layui-layer-tabmain").children();b.on("mousedown",function(a){a.stopPropagation?a.stopPropagation():a.cancelBubble=!0;var b=$(this),d=b.index();b.addClass("layui-layer-tabnow").siblings().removeClass("layui-layer-tabnow"),c.eq(d).show().siblings().hide()})}},a))},layer.photos=function(a,c,d){function e(a,b,c){var d=new Image;d.onload=function(){d.onload=null,b(d)},d.onerror=function(a){d.onerror=null,c(a)},d.src=a}var f={};if(a=a||{},a.photos){var g=a.photos.constructor===Object,h=g?a.photos:{},i=h.data||[],j=h.start||0;if(f.imgIndex=j+1,g){if(0===i.length)return void layer.msg("没有图片")}else{var k=$(a.photos),l=k.find(a.img||"img");if(0===l.length)return;if(c||k.find(h.img||"img").each(function(b){var c=$(this);i.push({alt:c.attr("alt"),pid:c.attr("layer-pid"),src:c.attr("layer-src")||c.attr("src"),thumb:c.attr("src")}),c.on("click",function(){layer.photos($.extend(a,{photos:{start:b,data:i,tab:a.tab},full:a.full}),!0)})}),!c)return}f.imgprev=function(a){f.imgIndex--,f.imgIndex<1&&(f.imgIndex=i.length),f.tabimg(a)},f.imgnext=function(a,b){f.imgIndex++,f.imgIndex>i.length&&(f.imgIndex=1,b)||f.tabimg(a)},f.keyup=function(a){if(!f.end){var b=a.keyCode;a.preventDefault(),37===b?f.imgprev(!0):39===b?f.imgnext(!0):27===b&&layer.close(f.index)}},f.tabimg=function(b){i.length<=1||(h.start=f.imgIndex-1,layer.close(f.index),layer.photos(a,!0,b))},f.event=function(){f.bigimg.hover(function(){f.imgsee.show()},function(){f.imgsee.hide()}),f.bigimg.find(".layui-layer-imgprev").on("click",function(a){a.preventDefault(),f.imgprev()}),f.bigimg.find(".layui-layer-imgnext").on("click",function(a){a.preventDefault(),f.imgnext()}),$(document).on("keyup",f.keyup)},f.loadi=layer.load(1,{shade:"shade"in a?!1:.9,scrollbar:!1}),e(i[j].src,function(c){layer.close(f.loadi),f.index=layer.open($.extend({type:1,area:function(){var b=[c.width,c.height],d=[$(window).width()-100,$(window).height()-100];return!a.full&&b[0]>d[0]&&(b[0]=d[0],b[1]=b[0]*d[1]/b[0]),[b[0]+"px",b[1]+"px"]}(),title:!1,shade:.9,shadeClose:!0,closeBtn:!1,move:".layui-layer-phimg img",moveType:1,scrollbar:!1,moveOut:!0,shift:5*Math.random()|0,skin:"layui-layer-photos"+b("photos"),content:'
'+(i[j].alt||
'+(i.length>1?'':"")+'
'+(i[j].alt||"")+""+f.imgIndex+"/"+i.length+"
",success:function(b,c){f.bigimg=b.find(".layui-layer-phimg"),f.imgsee=b.find(".layui-layer-imguide,.layui-layer-imgbar"),f.event(b),a.tab&&a.tab(i[j],b)},end:function(){f.end=!0,$(document).off("keyup",f.keyup)}},a))},function(){layer.close(f.loadi),layer.msg("当前图片地址异常
是否继续查看下一张?",{time:3e4,btn:["下一张","不看了"],yes:function(){i.length>1&&f.imgnext(!0,!0)}})})}}}(); \ No newline at end of file diff --git a/static/js/layer/layer.js b/static/js/layer/layer.js new file mode 100755 index 000000000..8536abf06 --- /dev/null +++ b/static/js/layer/layer.js @@ -0,0 +1,2 @@ +/*! layer-v2.1 弹层组件 License LGPL http://layer.layui.com/ By 贤心 */ +;!function(a,b){"use strict";var c,d,e={getPath:function(){var a=document.scripts,b=a[a.length-1],c=b.src;if(!b.getAttribute("merge"))return c.substring(0,c.lastIndexOf("/")+1)}(),enter:function(a){13===a.keyCode&&a.preventDefault()},config:{},end:{},btn:["确定","取消"],type:["dialog","page","iframe","loading","tips"]},f={v:"2.1",ie6:!!a.ActiveXObject&&!a.XMLHttpRequest,index:0,path:e.getPath,config:function(a,b){var d=0;return a=a||{},f.cache=e.config=c.extend(e.config,a),f.path=e.config.path||f.path,"string"==typeof a.extend&&(a.extend=[a.extend]),f.use("skin/layer.css",a.extend&&a.extend.length>0?function g(){var c=a.extend;f.use(c[c[d]?d:d-1],d'+(i?f.title[0]:f.title)+"":"";return f.zIndex=g,b([f.shade?'
':"",'
'+(a&&2!=f.type?"":k)+'
'+(0==f.type&&-1!==f.icon?'':"")+(1==f.type&&a?"":f.content||"")+'
'+function(){var a=j?'':"";return f.closeBtn&&(a+=''),a}()+""+(f.btn?function(){var a="";"string"==typeof f.btn&&(f.btn=[f.btn]);for(var b=0,c=f.btn.length;c>b;b++)a+=''+f.btn[b]+"";return'
'+a+"
"}():"")+"
"],k),c},g.pt.creat=function(){var a=this,b=a.config,g=a.index,i=b.content,j="object"==typeof i;switch("string"==typeof b.area&&(b.area="auto"===b.area?["",""]:[b.area,""]),b.type){case 0:b.btn="btn"in b?b.btn:e.btn[0],f.closeAll("dialog");break;case 2:var i=b.content=j?b.content:[b.content||"http://layer.layui.com","auto"];b.content='';break;case 3:b.title=!1,b.closeBtn=!1,-1===b.icon&&0===b.icon,f.closeAll("loading");break;case 4:j||(b.content=[b.content,"body"]),b.follow=b.content[1],b.content=b.content[0]+'',b.title=!1,b.shade=!1,b.fix=!1,b.tips="object"==typeof b.tips?b.tips:[b.tips,!0],b.tipsMore||f.closeAll("tips")}a.vessel(j,function(d,e){c("body").append(d[0]),j?function(){2==b.type||4==b.type?function(){c("body").append(d[1])}():function(){i.parents("."+h[0])[0]||(i.show().addClass("layui-layer-wrap").wrap(d[1]),c("#"+h[0]+g).find("."+h[5]).before(e))}()}():c("body").append(d[1]),a.layero=c("#"+h[0]+g),b.scrollbar||h.html.css("overflow","hidden").attr("layer-full",g)}).auto(g),2==b.type&&f.ie6&&a.layero.find("iframe").attr("src",i[0]),c(document).off("keydown",e.enter).on("keydown",e.enter),a.layero.on("keydown",function(a){c(document).off("keydown",e.enter)}),4==b.type?a.tips():a.offset(),b.fix&&d.on("resize",function(){a.offset(),(/^\d+%$/.test(b.area[0])||/^\d+%$/.test(b.area[1]))&&a.auto(g),4==b.type&&a.tips()}),b.time<=0||setTimeout(function(){f.close(a.index)},b.time),a.move().callback()},g.pt.auto=function(a){function b(a){a=g.find(a),a.height(i[1]-j-k-2*(0|parseFloat(a.css("padding"))))}var e=this,f=e.config,g=c("#"+h[0]+a);""===f.area[0]&&f.maxWidth>0&&(/MSIE 7/.test(navigator.userAgent)&&f.btn&&g.width(g.innerWidth()),g.outerWidth()>f.maxWidth&&g.width(f.maxWidth));var i=[g.innerWidth(),g.innerHeight()],j=g.find(h[1]).outerHeight()||0,k=g.find("."+h[6]).outerHeight()||0;switch(f.type){case 2:b("iframe");break;default:""===f.area[1]?f.fix&&i[1]>=d.height()&&(i[1]=d.height(),b("."+h[5])):b("."+h[5])}return e},g.pt.offset=function(){var a=this,b=a.config,c=a.layero,e=[c.outerWidth(),c.outerHeight()],f="object"==typeof b.offset;a.offsetTop=(d.height()-e[1])/2,a.offsetLeft=(d.width()-e[0])/2,f?(a.offsetTop=b.offset[0],a.offsetLeft=b.offset[1]||a.offsetLeft):"auto"!==b.offset&&(a.offsetTop=b.offset,"rb"===b.offset&&(a.offsetTop=d.height()-e[1],a.offsetLeft=d.width()-e[0])),b.fix||(a.offsetTop=/%$/.test(a.offsetTop)?d.height()*parseFloat(a.offsetTop)/100:parseFloat(a.offsetTop),a.offsetLeft=/%$/.test(a.offsetLeft)?d.width()*parseFloat(a.offsetLeft)/100:parseFloat(a.offsetLeft),a.offsetTop+=d.scrollTop(),a.offsetLeft+=d.scrollLeft()),c.css({top:a.offsetTop,left:a.offsetLeft})},g.pt.tips=function(){var a=this,b=a.config,e=a.layero,f=[e.outerWidth(),e.outerHeight()],g=c(b.follow);g[0]||(g=c("body"));var i={width:g.outerWidth(),height:g.outerHeight(),top:g.offset().top,left:g.offset().left},j=e.find(".layui-layer-TipsG"),k=b.tips[0];b.tips[1]||j.remove(),i.autoLeft=function(){i.left+f[0]-d.width()>0?(i.tipLeft=i.left+i.width-f[0],j.css({right:12,left:"auto"})):i.tipLeft=i.left},i.where=[function(){i.autoLeft(),i.tipTop=i.top-f[1]-10,j.removeClass("layui-layer-TipsB").addClass("layui-layer-TipsT").css("border-right-color",b.tips[1])},function(){i.tipLeft=i.left+i.width+10,i.tipTop=i.top,j.removeClass("layui-layer-TipsL").addClass("layui-layer-TipsR").css("border-bottom-color",b.tips[1])},function(){i.autoLeft(),i.tipTop=i.top+i.height+10,j.removeClass("layui-layer-TipsT").addClass("layui-layer-TipsB").css("border-right-color",b.tips[1])},function(){i.tipLeft=i.left-f[0]-10,i.tipTop=i.top,j.removeClass("layui-layer-TipsR").addClass("layui-layer-TipsL").css("border-bottom-color",b.tips[1])}],i.where[k-1](),1===k?i.top-(d.scrollTop()+f[1]+16)<0&&i.where[2]():2===k?d.width()-(i.left+i.width+f[0]+16)>0||i.where[3]():3===k?i.top-d.scrollTop()+i.height+f[1]+16-d.height()>0&&i.where[0]():4===k&&f[0]+16-i.left>0&&i.where[1](),e.find("."+h[5]).css({"background-color":b.tips[1],"padding-right":b.closeBtn?"30px":""}),e.css({left:i.tipLeft,top:i.tipTop})},g.pt.move=function(){var a=this,b=a.config,e={setY:0,moveLayer:function(){var a=e.layero,b=parseInt(a.css("margin-left")),c=parseInt(e.move.css("left"));0===b||(c-=b),"fixed"!==a.css("position")&&(c-=a.parent().offset().left,e.setY=0),a.css({left:c,top:parseInt(e.move.css("top"))-e.setY})}},f=a.layero.find(b.move);return b.move&&f.attr("move","ok"),f.css({cursor:b.move?"move":"auto"}),c(b.move).on("mousedown",function(a){if(a.preventDefault(),"ok"===c(this).attr("move")){e.ismove=!0,e.layero=c(this).parents("."+h[0]);var f=e.layero.offset().left,g=e.layero.offset().top,i=e.layero.outerWidth()-6,j=e.layero.outerHeight()-6;c("#layui-layer-moves")[0]||c("body").append('
'),e.move=c("#layui-layer-moves"),b.moveType&&e.move.css({visibility:"hidden"}),e.moveX=a.pageX-e.move.position().left,e.moveY=a.pageY-e.move.position().top,"fixed"!==e.layero.css("position")||(e.setY=d.scrollTop())}}),c(document).mousemove(function(a){if(e.ismove){var c=a.pageX-e.moveX,f=a.pageY-e.moveY;if(a.preventDefault(),!b.moveOut){e.setY=d.scrollTop();var g=d.width()-e.move.outerWidth(),h=e.setY;0>c&&(c=0),c>g&&(c=g),h>f&&(f=h),f>d.height()-e.move.outerHeight()+e.setY&&(f=d.height()-e.move.outerHeight()+e.setY)}e.move.css({left:c,top:f}),b.moveType&&e.moveLayer(),c=f=g=h=null}}).mouseup(function(){try{e.ismove&&(e.moveLayer(),e.move.remove(),b.moveEnd&&b.moveEnd()),e.ismove=!1}catch(a){e.ismove=!1}}),a},g.pt.callback=function(){function a(){var a=g.cancel&&g.cancel(b.index);a===!1||f.close(b.index)}var b=this,d=b.layero,g=b.config;b.openLayer(),g.success&&(2==g.type?d.find("iframe").on("load",function(){g.success(d,b.index)}):g.success(d,b.index)),f.ie6&&b.IE6(d),d.find("."+h[6]).children("a").on("click",function(){var e=c(this).index();g["btn"+(e+1)]&&g["btn"+(e+1)](b.index,d),0===e?g.yes?g.yes(b.index,d):f.close(b.index):1===e?a():g["btn"+(e+1)]||f.close(b.index)}),d.find("."+h[7]).on("click",a),g.shadeClose&&c("#layui-layer-shade"+b.index).on("click",function(){f.close(b.index)}),d.find(".layui-layer-min").on("click",function(){f.min(b.index,g),g.min&&g.min(d)}),d.find(".layui-layer-max").on("click",function(){c(this).hasClass("layui-layer-maxmin")?(f.restore(b.index),g.restore&&g.restore(d)):(f.full(b.index,g),g.full&&g.full(d))}),g.end&&(e.end[b.index]=g.end)},e.reselect=function(){c.each(c("select"),function(a,b){var d=c(this);d.parents("."+h[0])[0]||1==d.attr("layer")&&c("."+h[0]).length<1&&d.removeAttr("layer").show(),d=null})},g.pt.IE6=function(a){function b(){a.css({top:f+(e.config.fix?d.scrollTop():0)})}var e=this,f=a.offset().top;b(),d.scroll(b),c("select").each(function(a,b){var d=c(this);d.parents("."+h[0])[0]||"none"===d.css("display")||d.attr({layer:"1"}).hide(),d=null})},g.pt.openLayer=function(){var a=this;f.zIndex=a.config.zIndex,f.setTop=function(a){var b=function(){f.zIndex++,a.css("z-index",f.zIndex+1)};return f.zIndex=parseInt(a[0].style.zIndex),a.on("mousedown",b),f.zIndex}},e.record=function(a){var b=[a.outerWidth(),a.outerHeight(),a.position().top,a.position().left+parseFloat(a.css("margin-left"))];a.find(".layui-layer-max").addClass("layui-layer-maxmin"),a.attr({area:b})},e.rescollbar=function(a){h.html.attr("layer-full")==a&&(h.html[0].style.removeProperty?h.html[0].style.removeProperty("overflow"):h.html[0].style.removeAttribute("overflow"),h.html.removeAttr("layer-full"))},a.layer=f,f.getChildFrame=function(a,b){return b=b||c("."+h[4]).attr("times"),c("#"+h[0]+b).find("iframe").contents().find(a)},f.getFrameIndex=function(a){return c("#"+a).parents("."+h[4]).attr("times")},f.iframeAuto=function(a){if(a){var b=f.getChildFrame("html",a).outerHeight(),d=c("#"+h[0]+a),e=d.find(h[1]).outerHeight()||0,g=d.find("."+h[6]).outerHeight()||0;d.css({height:b+e+g}),d.find("iframe").css({height:b})}},f.iframeSrc=function(a,b){c("#"+h[0]+a).find("iframe").attr("src",b)},f.style=function(a,b){var d=c("#"+h[0]+a),f=d.attr("type"),g=d.find(h[1]).outerHeight()||0,i=d.find("."+h[6]).outerHeight()||0;(f===e.type[1]||f===e.type[2])&&(d.css(b),f===e.type[2]&&d.find("iframe").css({height:parseFloat(b.height)-g-i}))},f.min=function(a,b){var d=c("#"+h[0]+a),g=d.find(h[1]).outerHeight()||0;e.record(d),f.style(a,{width:180,height:g,overflow:"hidden"}),d.find(".layui-layer-min").hide(),"page"===d.attr("type")&&d.find(h[4]).hide(),e.rescollbar(a)},f.restore=function(a){var b=c("#"+h[0]+a),d=b.attr("area").split(",");b.attr("type");f.style(a,{width:parseFloat(d[0]),height:parseFloat(d[1]),top:parseFloat(d[2]),left:parseFloat(d[3]),overflow:"visible"}),b.find(".layui-layer-max").removeClass("layui-layer-maxmin"),b.find(".layui-layer-min").show(),"page"===b.attr("type")&&b.find(h[4]).show(),e.rescollbar(a)},f.full=function(a){var b,g=c("#"+h[0]+a);e.record(g),h.html.attr("layer-full")||h.html.css("overflow","hidden").attr("layer-full",a),clearTimeout(b),b=setTimeout(function(){var b="fixed"===g.css("position");f.style(a,{top:b?0:d.scrollTop(),left:b?0:d.scrollLeft(),width:d.width(),height:d.height()}),g.find(".layui-layer-min").hide()},100)},f.title=function(a,b){var d=c("#"+h[0]+(b||f.index)).find(h[1]);d.html(a)},f.close=function(a){var b=c("#"+h[0]+a),d=b.attr("type");if(b[0]){if(d===e.type[1]&&"object"===b.attr("conType")){b.children(":not(."+h[5]+")").remove();for(var g=0;2>g;g++)b.find(".layui-layer-wrap").unwrap().hide()}else{if(d===e.type[2])try{var i=c("#"+h[4]+a)[0];i.contentWindow.document.write(""),i.contentWindow.close(),b.find("."+h[5])[0].removeChild(i)}catch(j){}b[0].innerHTML="",b.remove()}c("#layui-layer-moves, #layui-layer-shade"+a).remove(),f.ie6&&e.reselect(),e.rescollbar(a),c(document).off("keydown",e.enter),"function"==typeof e.end[a]&&e.end[a](),delete e.end[a]}},f.closeAll=function(a){c.each(c("."+h[0]),function(){var b=c(this),d=a?b.attr("type")===a:1;d&&f.close(b.attr("times")),d=null})},e.run=function(){c=jQuery,d=c(a),h.html=c("html"),f.open=function(a){var b=new g(a);return b.index}},"function"==typeof define?define(function(){return e.run(),f}):function(){e.run(),f.use("skin/layer.css")}()}(window); \ No newline at end of file diff --git a/static/js/layer/layer.min.js b/static/js/layer/layer.min.js deleted file mode 100644 index 4cd35e208..000000000 --- a/static/js/layer/layer.min.js +++ /dev/null @@ -1,16 +0,0 @@ -/**************************************** - - @Name:layer v1.8.5 弹层组件压缩版 - @Author:贤心 - @Date:2014-08-13 - @Blog:http://sentsin.com - @Copyright:Sentsin Xu(贤心) - @官网:http://sentsin.com/jquery/layer - - */ - -;!function(a,b){ -"use strict"; -var c,d, -e="", //组件存放目录,为空表示自动获取 -f={getPath:function(){var a=document.scripts,b=a[a.length-1].src;return e?e:b.substring(0,b.lastIndexOf("/")+1)},type:["dialog","page","iframe","loading","tips"]};a.layer={v:"1.8.5",ie6:!!a.ActiveXObject&&!a.XMLHttpRequest,index:0,path:f.getPath(),use:function(a,b){var d=c("head")[0],a=a.replace(/\s/g,""),e=/\.css$/.test(a),f=document.createElement(e?"link":"script"),g=a.replace(/\.|\//g,"");e&&(f.type="text/css",f.rel="stylesheet"),f[e?"href":"src"]=/^http:\/\//.test(a)?a:layer.path+a,f.id=g,c("#"+g)[0]||d.appendChild(f),b&&(document.all?c(f).ready(b):c(f).load(b))},alert:function(a,b,d,e){var f="function"==typeof d,g={dialog:{msg:a,type:b,yes:f?d:e},area:["auto","auto"]};return f||(g.title=d),c.layer(g)},confirm:function(a,b,d,e){var f="function"==typeof d,g={dialog:{msg:a,type:4,btns:2,yes:b,no:f?d:e}};return f||(g.title=d),c.layer(g)},msg:function(a,d,e,f){var g={title:!1,closeBtn:!1,time:d===b?2:d,dialog:{msg:""===a||a===b?" ":a},end:f};return"object"==typeof e?(g.dialog.type=e.type,g.shade=e.shade,g.shift=e.rate):"function"==typeof e?g.end=e:g.dialog.type=e,c.layer(g)},load:function(a,b){return"string"==typeof a?layer.msg(a,b||0,16):c.layer({time:a,loading:{type:b},bgcolor:b?"#fff":"",shade:b?[.1,"#000"]:[0],border:3!==b&&b?[6,.3,"#000"]:[0],type:3,title:["",!1],closeBtn:[0,!1]})},tips:function(a,b,d,e,f,g){var h={type:4,shade:!1,success:function(a){this.closeBtn||a.find(".xubox_tips").css({"padding-right":10})},bgcolor:"",tips:{msg:a,follow:b}};return h.time="object"==typeof d?d.time:0|d,d=d||{},h.closeBtn=d.closeBtn||!1,h.maxWidth=d.maxWidth||e,h.tips.guide=d.guide||f,h.tips.style=d.style||g,h.tips.more=d.more,c.layer(h)}};var g=["xubox_layer","xubox_iframe",".xubox_title",".xubox_text",".xubox_page",".xubox_main"],h=function(a){var b=this,d=b.config;layer.index++,b.index=layer.index,b.config=c.extend({},d,a),b.config.dialog=c.extend({},d.dialog,a.dialog),b.config.page=c.extend({},d.page,a.page),b.config.iframe=c.extend({},d.iframe,a.iframe),b.config.loading=c.extend({},d.loading,a.loading),b.config.tips=c.extend({},d.tips,a.tips),b.creat()};h.pt=h.prototype,h.pt.config={type:0,shade:[.3,"#000"],fix:!0,move:".xubox_title",title:"信息",offset:["","50%"],area:["310px","auto"],closeBtn:[0,!0],time:0,bgcolor:"#fff",border:[6,.3,"#000"],zIndex:19891014,maxWidth:400,dialog:{btns:1,btn:["确定","取消"],type:8,msg:"",yes:function(a){layer.close(a)},no:function(a){layer.close(a)}},page:{dom:"#xulayer",html:"",url:""},iframe:{src:"http://sentsin.com",scrolling:"auto"},loading:{type:0},tips:{msg:"",follow:"",guide:0,isGuide:!0,style:["background-color:#FF9900; color:#fff;","#FF9900"]},success:function(){},close:function(a){layer.close(a)},end:function(){}},h.pt.space=function(a){var b=this,a=a||"",c=b.index,d=b.config,e=d.dialog,f=-1===e.type?"":'',h=['
'+f+''+e.msg+"
",'
'+a+"
",'','','
'+d.tips.msg+'
'],i="",j="",k=d.zIndex+c,l="z-index:"+k+"; background-color:"+d.shade[1]+"; opacity:"+d.shade[0]+"; filter:alpha(opacity="+100*d.shade[0]+");";d.shade[0]&&(i='
'),d.zIndex=k;var m="",n="",o="z-index:"+(k-1)+"; background-color: "+d.border[2]+"; opacity:"+d.border[1]+"; filter:alpha(opacity="+100*d.border[1]+"); top:-"+d.border[0]+"px; left:-"+d.border[0]+"px;";d.border[0]&&(j='
'),!d.maxmin||1!==d.type&&2!==d.type||/^\d+%$/.test(d.area[0])&&/^\d+%$/.test(d.area[1])||(n=''),d.closeBtn[1]&&(n+='');var p="object"==typeof d.title;return d.title&&(m='
'+(p?d.title[0]:d.title)+"
"),[i,'
'+h[d.type]+m+''+n+'
'+j+"
"]},h.pt.creat=function(){var a=this,b="",d=a.config,e=d.dialog,f=a.index,h=d.page,i=c("body"),j=function(d){var d=d||"";b=a.space(d),i.append(c(b[0]))};switch(d.type){case 0:d.title||(d.area=["auto","auto"]),c(".xubox_dialog")[0]&&layer.close(c(".xubox_dialog").parents("."+g[0]).attr("times"));break;case 1:if(""!==h.html)j('
'+h.html+"
"),i.append(c(b[1]));else if(""!==h.url)j('
'+h.html+"
"),i.append(c(b[1])),c.get(h.url,function(a){c("#xuboxPageHtml"+f).html(a.toString()),h.ok&&h.ok(a)});else{if(0!=c(h.dom).parents(g[4]).length)return;j(),c(h.dom).show().wrap(c(b[1]))}break;case 3:d.title=!1,d.area=["auto","auto"],d.closeBtn=["",!1],c(".xubox_loading")[0]&&layer.closeLoad();break;case 4:d.title=!1,d.area=["auto","auto"],d.fix=!1,d.border=[0],d.tips.more||layer.closeTips()}1!==d.type&&(j(),i.append(c(b[1])));var k=a.layerE=c("#"+g[0]+f);if(k.css({width:d.area[0],height:d.area[1]}),d.fix||k.css({position:"absolute"}),d.title&&(3!==d.type||4!==d.type)){var l=0===d.type?e:d,m=k.find(".xubox_botton");switch(l.btn=d.btn||e.btn,l.btns){case 0:m.html("").hide();break;case 1:m.html(''+l.btn[0]+"");break;case 2:m.html(''+l.btn[0]+''+l.btn[1]+"")}}"auto"===k.css("left")?(k.hide(),setTimeout(function(){k.show(),a.set(f)},500)):a.set(f),d.time<=0||a.autoclose(),a.callback()},f.fade=function(a,b,c){a.css({opacity:0}).animate({opacity:c},b)},h.pt.offset=function(){var a=this,b=a.config,c=a.layerE,e=c.outerHeight();a.offsetTop=""===b.offset[0]&&ee.maxWidth&&i.width(e.maxWidth),o.tipColor=e.tips.style[1],m[0]=i.outerWidth(),o.autoLeft=function(){o.left+m[0]-d.width()>0?(o.tipLeft=o.left+o.width-m[0],p.css({right:12,left:"auto"})):o.tipLeft=o.left},o.where=[function(){o.autoLeft(),o.tipTop=o.top-m[1]-10,p.removeClass("layerTipsB").addClass("layerTipsT").css({"border-right-color":o.tipColor})},function(){o.tipLeft=o.left+o.width+10,o.tipTop=o.top,p.removeClass("layerTipsL").addClass("layerTipsR").css({"border-bottom-color":o.tipColor})},function(){o.autoLeft(),o.tipTop=o.top+o.height+10,p.removeClass("layerTipsT").addClass("layerTipsB").css({"border-right-color":o.tipColor})},function(){o.tipLeft=o.left-m[0]+10,o.tipTop=o.top,p.removeClass("layerTipsR").addClass("layerTipsL").css({"border-bottom-color":o.tipColor})}],o.where[e.tips.guide](),0===e.tips.guide?o.top-(d.scrollTop()+m[1]+16)<0&&o.where[2]():1===e.tips.guide?d.width()-(o.left+o.width+m[0]+16)>0||o.where[3]():2===e.tips.guide?o.top-d.scrollTop()+o.height+m[1]+16-d.height()>0&&o.where[0]():3===e.tips.guide?m[0]+16-o.left>0&&o.where[1]():4===e.tips.guide,i.css({left:o.tipLeft,top:o.tipTop})}e.fadeIn&&(f.fade(i,e.fadeIn,1),f.fade(c("#xubox_shade"+a),e.fadeIn,e.shade[0])),e.fix&&""===e.offset[0]&&!e.shift&&d.on("resize",function(){i.css({top:(d.height()-i.outerHeight())/2})}),b.move()},h.pt.shift=function(a,b,c){var e=this,f=e.config,g=e.layerE,h=0,i=d.width(),j=d.height()+(f.fix?0:d.scrollTop());h="50%"==f.offset[1]||""==f.offset[1]?g.outerWidth()/2:g.outerWidth();var k={t:{top:e.offsetTop},b:{top:j-g.outerHeight()-f.border[0]},cl:h+f.border[0],ct:-g.outerHeight(),cr:i-h-f.border[0]};switch(a){case"left-top":g.css({left:k.cl,top:k.ct}).animate(k.t,b);break;case"top":g.css({top:k.ct}).animate(k.t,b);break;case"right-top":g.css({left:k.cr,top:k.ct}).animate(k.t,b);break;case"right-bottom":g.css({left:k.cr,top:j}).animate(c?k.t:k.b,b);break;case"bottom":g.css({top:j}).animate(c?k.t:k.b,b);break;case"left-bottom":g.css({left:k.cl,top:j}).animate(c?k.t:k.b,b);break;case"left":g.css({left:-g.outerWidth()}).animate({left:e.offsetLeft},b)}},h.pt.autoArea=function(a){var b,d=this,a=a||d.index,e=d.config,f=e.page,h=c("#"+g[0]+a),i=h.find(g[2]),j=h.find(g[5]),k=e.title?i.innerHeight():0,l=0;switch("auto"===e.area[0]&&j.outerWidth()>=e.maxWidth&&h.css({width:e.maxWidth}),e.type){case 0:var m=h.find(".xubox_botton>a");b=h.find(g[3]).outerHeight()+20,m.length>0&&(l=m.outerHeight()+20);break;case 1:var n=h.find(g[4]);b=c(f.dom).outerHeight(),"auto"===e.area[0]&&h.css({width:n.outerWidth()}),(""!==f.html||""!==f.url)&&(b=n.outerHeight());break;case 2:h.find("iframe").css({width:h.outerWidth(),height:h.outerHeight()-(e.title?i.innerHeight():0)});break;case 3:var o=h.find(".xubox_loading");b=o.outerHeight(),j.css({width:o.width()})}"auto"===e.area[1]&&j.css({height:k+b+l}),c("#xubox_border"+a).css({width:h.outerWidth()+2*e.border[0],height:h.outerHeight()+2*e.border[0]}),layer.ie6&&"auto"!==e.area[0]&&j.css({width:h.outerWidth()}),h.css("50%"!==e.offset[1]&&""!=e.offset[1]||4===e.type?{marginLeft:0}:{marginLeft:-h.outerWidth()/2})},h.pt.move=function(){var a=this,b=a.config,e={setY:0,moveLayer:function(){if(0==parseInt(e.layerE.css("margin-left")))var a=parseInt(e.move.css("left"));else var a=parseInt(e.move.css("left"))+-parseInt(e.layerE.css("margin-left"));"fixed"!==e.layerE.css("position")&&(a-=e.layerE.parent().offset().left,e.setY=0),e.layerE.css({left:a,top:parseInt(e.move.css("top"))-e.setY})}},f=a.layerE.find(b.move);b.move&&f.attr("move","ok"),f.css(b.move?{cursor:"move"}:{cursor:"auto"}),c(b.move).on("mousedown",function(a){if(a.preventDefault(),"ok"===c(this).attr("move")){e.ismove=!0,e.layerE=c(this).parents("."+g[0]);var f=e.layerE.offset().left,h=e.layerE.offset().top,i=e.layerE.width()-6,j=e.layerE.height()-6;c("#xubox_moves")[0]||c("body").append('
'),e.move=c("#xubox_moves"),b.moveType&&e.move.css({opacity:0}),e.moveX=a.pageX-e.move.position().left,e.moveY=a.pageY-e.move.position().top,"fixed"!==e.layerE.css("position")||(e.setY=d.scrollTop())}}),c(document).mousemove(function(a){if(e.ismove){var c=a.pageX-e.moveX,f=a.pageY-e.moveY;if(a.preventDefault(),!b.moveOut){e.setY=d.scrollTop();var g=d.width()-e.move.outerWidth()-b.border[0],h=b.border[0]+e.setY;cg&&(c=g),h>f&&(f=h),f>d.height()-e.move.outerHeight()-b.border[0]+e.setY&&(f=d.height()-e.move.outerHeight()-b.border[0]+e.setY)}e.move.css({left:c,top:f}),b.moveType&&e.moveLayer(),c=null,f=null,g=null,h=null}}).mouseup(function(){try{e.ismove&&(e.moveLayer(),e.move.remove()),e.ismove=!1}catch(a){e.ismove=!1}b.moveEnd&&b.moveEnd()})},h.pt.autoclose=function(){var a=this,b=a.config.time,c=function(){b--,0===b&&(layer.close(a.index),clearInterval(a.autotime))};a.autotime=setInterval(c,1e3)},f.config={end:{}},h.pt.callback=function(){var a=this,b=a.layerE,d=a.config,e=d.dialog;a.openLayer(),a.config.success(b),layer.ie6&&a.IE6(b),b.find(".xubox_close").on("click",function(){d.close(a.index),layer.close(a.index)}),b.find(".xubox_yes").on("click",function(){d.yes?d.yes(a.index):e.yes(a.index)}),b.find(".xubox_no").on("click",function(){d.no?d.no(a.index):e.no(a.index),layer.close(a.index)}),a.config.shadeClose&&c("#xubox_shade"+a.index).on("click",function(){layer.close(a.index)}),b.find(".xubox_min").on("click",function(){layer.min(a.index,d),d.min&&d.min(b)}),b.find(".xubox_max").on("click",function(){c(this).hasClass("xubox_maxmin")?(layer.restore(a.index),d.restore&&d.restore(b)):(layer.full(a.index,d),d.full&&d.full(b))}),f.config.end[a.index]=d.end},f.reselect=function(){c.each(c("select"),function(){var a=c(this);a.parents("."+g[0])[0]||1==a.attr("layer")&&c("."+g[0]).length<1&&a.removeAttr("layer").show(),a=null})},h.pt.IE6=function(a){var b=this,e=a.offset().top;if(b.config.fix)var f=function(){a.css({top:d.scrollTop()+e})};else var f=function(){a.css({top:e})};f(),d.scroll(f),c.each(c("select"),function(){var a=c(this);a.parents("."+g[0])[0]||"none"==a.css("display")||a.attr({layer:"1"}).hide(),a=null})},h.pt.openLayer=function(){{var a=this;a.layerE}layer.autoArea=function(b){return a.autoArea(b)},layer.shift=function(b,c,d){a.shift(b,c,d)},layer.setMove=function(){return a.move()},layer.zIndex=a.config.zIndex,layer.setTop=function(a){var b=function(){layer.zIndex++,a.css("z-index",layer.zIndex+1)};return layer.zIndex=parseInt(a[0].style.zIndex),a.on("mousedown",b),layer.zIndex}},f.isauto=function(a,b,c){"auto"===b.area[0]&&(b.area[0]=a.outerWidth()),"auto"===b.area[1]&&(b.area[1]=a.outerHeight()),a.attr({area:b.area+","+c}),a.find(".xubox_max").addClass("xubox_maxmin")},f.rescollbar=function(a){g.html.attr("layer-full")==a&&(g.html[0].style.removeProperty?g.html[0].style.removeProperty("overflow"):g.html[0].style.removeAttribute("overflow"),g.html.removeAttr("layer-full"))},layer.getIndex=function(a){return c(a).parents("."+g[0]).attr("times")},layer.getChildFrame=function(a,b){return b=b||c("."+g[1]).parents("."+g[0]).attr("times"),c("#"+g[0]+b).find("."+g[1]).contents().find(a)},layer.getFrameIndex=function(a){return c(a?"#"+a:"."+g[1]).parents("."+g[0]).attr("times")},layer.iframeAuto=function(a){a=a||c("."+g[1]).parents("."+g[0]).attr("times");var b=layer.getChildFrame("body",a).outerHeight(),d=c("#"+g[0]+a),e=d.find(g[2]),f=0;e&&(f=e.height()),d.css({height:b+f});var h=-parseInt(c("#xubox_border"+a).css("top"));c("#xubox_border"+a).css({height:b+2*h+f}),c("#"+g[1]+a).css({height:b})},layer.iframeSrc=function(a,b){c("#"+g[0]+a).find("iframe").attr("src",b)},layer.area=function(a,b){var d=[c("#"+g[0]+a),c("#xubox_border"+a)],e=d[0].attr("type"),h=d[0].find(g[5]),i=d[0].find(g[2]);if(e===f.type[1]||e===f.type[2]){if(d[0].css(b),h.css({width:b.width,height:b.height}),e===f.type[2]){var j=d[0].find("iframe");j.css({width:b.width,height:i?b.height-i.innerHeight():b.height})}"0px"!==d[0].css("margin-left")&&(b.hasOwnProperty("top")&&d[0].css({top:b.top-(d[1][0]?parseFloat(d[1].css("top")):0)}),b.hasOwnProperty("left")&&d[0].css({left:b.left+d[0].outerWidth()/2-(d[1][0]?parseFloat(d[1].css("left")):0)}),d[0].css({marginLeft:-d[0].outerWidth()/2})),d[1][0]&&d[1].css({width:parseFloat(b.width)-2*parseFloat(d[1].css("left")),height:parseFloat(b.height)-2*parseFloat(d[1].css("top"))})}},layer.min=function(a,b){var d=c("#"+g[0]+a),e=[d.position().top,d.position().left+parseFloat(d.css("margin-left"))];f.isauto(d,b,e),layer.area(a,{width:180,height:35}),d.find(".xubox_min").hide(),"page"===d.attr("type")&&d.find(g[4]).hide(),f.rescollbar(a)},layer.restore=function(a){{var b=c("#"+g[0]+a),d=b.attr("area").split(",");b.attr("type")}layer.area(a,{width:parseFloat(d[0]),height:parseFloat(d[1]),top:parseFloat(d[2]),left:parseFloat(d[3])}),b.find(".xubox_max").removeClass("xubox_maxmin"),b.find(".xubox_min").show(),"page"===b.attr("type")&&b.find(g[4]).show(),f.rescollbar(a)},layer.full=function(a,b){var e,h=c("#"+g[0]+a),i=2*b.border[0]||6,j=[h.position().top,h.position().left+parseFloat(h.css("margin-left"))];f.isauto(h,b,j),g.html.attr("layer-full")||g.html.css("overflow","hidden").attr("layer-full",a),clearTimeout(e),e=setTimeout(function(){layer.area(a,{top:"fixed"===h.css("position")?0:d.scrollTop(),left:"fixed"===h.css("position")?0:d.scrollLeft(),width:d.width()-i,height:d.height()-i})},100)},layer.title=function(a,b){var d=c("#"+g[0]+(b||layer.index)).find(".xubox_title>em");d.html(a)},layer.close=function(a){var b=c("#"+g[0]+a),d=b.attr("type"),e=c("#xubox_moves, #xubox_shade"+a);if(b[0]){if(d==f.type[1])if(b.find(".xuboxPageHtml")[0])b[0].innerHTML="",b.remove();else{b.find(".xubox_setwin,.xubox_close,.xubox_botton,.xubox_title,.xubox_border").remove();for(var h=0;3>h;h++)b.find(".layer_pageContent").unwrap().hide()}else b[0].innerHTML="",b.remove();e.remove(),layer.ie6&&f.reselect(),f.rescollbar(a),"function"==typeof f.config.end[a]&&f.config.end[a](),delete f.config.end[a]}},layer.closeLoad=function(){layer.close(c(".xubox_loading").parents("."+g[0]).attr("times"))},layer.closeTips=function(){layer.closeAll("tips")},layer.closeAll=function(a){c.each(c("."+g[0]),function(){var b=c(this),d=a?b.attr("type")===a:1;d&&layer.close(b.attr("times")),d=null})},f.run=function(){c=jQuery,d=c(a),g.html=c("html"),layer.use("skin/layer.css"),c.layer=function(a){var b=new h(a);return b.index},(new Image).src=layer.path+"skin/default/xubox_ico0.png"},"function"==typeof define?define(function(){return f.run(),layer}):f.run()}(window); \ No newline at end of file diff --git a/static/js/layer/skin/default/icon-ext.png b/static/js/layer/skin/default/icon-ext.png new file mode 100755 index 0000000000000000000000000000000000000000..bbbb669bb311514baa5db3a6a00b4644d0e280f1 GIT binary patch literal 5911 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 B6HNdB diff --git a/static/js/layer/skin/default/xubox_loading0.gif b/static/js/layer/skin/default/loading-0.gif old mode 100644 new mode 100755 similarity index 100% rename from static/js/layer/skin/default/xubox_loading0.gif rename to static/js/layer/skin/default/loading-0.gif diff --git a/static/js/layer/skin/default/xubox_loading1.gif b/static/js/layer/skin/default/loading-1.gif old mode 100644 new mode 100755 similarity index 100% rename from static/js/layer/skin/default/xubox_loading1.gif rename to static/js/layer/skin/default/loading-1.gif diff --git a/static/js/layer/skin/default/xubox_loading2.gif b/static/js/layer/skin/default/loading-2.gif old mode 100644 new mode 100755 similarity index 100% rename from static/js/layer/skin/default/xubox_loading2.gif rename to static/js/layer/skin/default/loading-2.gif diff --git a/static/js/layer/skin/default/textbg.png b/static/js/layer/skin/default/textbg.png deleted file mode 100644 index ad1040c425910722541188d387fe814816b85dae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^tU%1g!3HF2ETXoo5_Jg=g#%% wwZ%^O`2PNWiCdEY|Nrk-Jkhdnx?2-NuqF3Pjsr>Gfw~wxUHx3vIVCg!0DEac5dZ)H diff --git a/static/js/layer/skin/default/xubox_ico0.png b/static/js/layer/skin/default/xubox_ico0.png deleted file mode 100644 index 7754a47f7ccd1eff1f854ffe9850f5ab38aa62ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32954 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 diff --git a/static/js/layer/skin/default/xubox_loading3.gif b/static/js/layer/skin/default/xubox_loading3.gif deleted file mode 100644 index fbe57be3c2cd761a999fcf91698963b723916e28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2364 zcmZ?wbhEHbtYZ*kxT?eu6cnVVr)OYb;OXfZ5D?(+@9*Q|gwj^791R$m6fiquVZa(9u*a3Yik=E?C0cUXJ}|>WMpJ!W@cewVPaxpX=$04 zmuF>V<>26;tE+2lZ2bTKe+JqB#sA!Xt|7tBjsdPldIrplKwA`lvam8RC^6`OYy^3e zf$jf+2?ZWHQvD~E6rIemnt!~n#A|KT`WtJ?PQR_%f4P0bXU*B?Uu>y5o45P^haGop z{xt|xOsG5m{`dce#-`?$*0%Zz4uzCb4iR2nKK996Ra}#2uuoNxaFeK->pFkVyah{_ zELyg5h0EfFYgcVpBOxx%!_lLd!ZBeI^L}PV#sfzVGD@E~dE(HiQ)kYeK7K*^{DrG$ zub;bg?e>kkid)2Y$oEcUXXbv%#>B+-?)|$rlAphP{`B?B_aBnKe*FFV{}bnp^n8Vb z4Xnm05jz;??1)Km_z{(`py6ngm~q;gr3)7y?~}2w;?WFZ_ME70zf7ibp~{JAdg1%N ztl02Sy`xMmP{(0`I@^C9+h(@ECl{``xX7hn%6HWi=HR9N{cf>c3pFpT3R@m$y2^3k z1lK1ePhF00R%cLTxU|Yw`$+Tc?RmEk)oPcoYu{D;@z7Oo^On0i>i&OXebboT)RyqN z!D9OYo!bK0*ZKBI-+1@r^wiI3_jd1mAAf58Q?aWB7A{E}yHC!t<+l9v_`+OH?mpfs zvp2W575D4SwP0f5Tq(_-`u108-svrdkKOjge9k@GQSa`scJrfv1y1XuOS`tN410Hb zfA@R7se3{`hwQ8}?G09X+$FA`aYf^@%9%-DKi_xX8J}7|P4A|-f~RR?@h!b)3l{TP ze>l)AV9)mU^Me+_U%`qF;#@8QEz+kpmjq;P=?V60I=~U^(|I?;nAcQOZE|n7uG{8E z-9~=S%H5|dz63<^fvz@N(z;TS%+V=^6lGCYoS^qqJTSeRiYI(vo5sx@6~ zH+0Mnzb#tp)m))-ZN~Yuf=vhVHd}tMi0M_i@xH9TZvAq3#)ig*nwmPLrlywawvNWG z+PdC`qN28nij0i5yu7%$wv?3M;I^nJCl_b8Iv+n@WZNYM)OMu-wOwaGZ8sZG+Z_hf zcCP`oJ!C*_kAvG@gOcB+cu%Ey&DC1JsIjb|!p!J_fy8PPopX1Vr=5+PJh^p;<=K_D zU+1eN#v7R10`q&NJ3}=KD|ZYq&nq#sb#$@!H1otgV*AR780Vs(hyWFUszG%C7S4T zLnrN*1y6VLhXr1Gv(I1dty(+JZ_k6)I}Ph@zrWa1x4vBd5gTh$MN4a`6tFa`bK`Dg znb0C<|cxmhQ$Ficsv$Ww0VvZb@;Okh~BcwO7_AfL0qBeIx* zfm;ZK886+f`vVjdD{+k|aV| - + diff --git a/templates/jasset/asset_add.html b/templates/jasset/asset_add.html index 1d8eacc28..7ef74920a 100644 --- a/templates/jasset/asset_add.html +++ b/templates/jasset/asset_add.html @@ -42,13 +42,11 @@
+ {{ af.hostname|bootstrap_horizontal }} + +
{{ af.ip|bootstrap_horizontal }} - -
- {{ af.port|bootstrap_horizontal }} - -
- {{ af.idc|bootstrap_horizontal }} +

Tips: 如果IP地址不填写, IP默认会设置与主机名一致

@@ -63,6 +61,7 @@
+ +
{{ af.group|bootstrap_horizontal }} @@ -113,15 +120,17 @@ $('document').ready(function(){ $('#id_use_default_auth').click(function(){ if ($(this).is(':checked')){ - $('#admin_account').css('display', 'none') + $('#admin_account').css('display', 'none'); + $('#id_port').css('display', 'none') } else { - $('#admin_account').css('display', 'block') + $('#admin_account').css('display', 'block'); + $('#id_port').css('display', 'block') } }) }); - var required_fields = ["id_hostname", "id_ip", "id_port"]; + var required_fields = ["id_hostname", "id_port"]; required_fields.forEach(function(field) { $('label[for="' + field + '"]').parent().addClass("required"); }); @@ -134,18 +143,24 @@ check_port: [/^\d{1,5}$/, '端口号不正确'], }, fields: { - "ip": { - rule: "required;check_ip", - tip: "输入IP", +{# "ip": {#} +{# rule: "required;check_ip",#} +{# tip: "输入IP",#} +{# ok: "",#} +{# msg: {required: "必须填写!"}#} +{# },#} + "hostname": { + rule: "required", + tip: "填写主机名", ok: "", msg: {required: "必须填写!"} }, - "port": { - rule: "required;check_port", - tip: "输入端口号", - ok: "", - msg: {required: "必须填写!"} - } +{# "port": {#} +{# rule: "required;check_port",#} +{# tip: "输入端口号",#} +{# ok: "",#} +{# msg: {required: "必须填写!"}#} +{# }#} }, valid: function(form) { form.submit(); diff --git a/templates/jasset/asset_detail.html b/templates/jasset/asset_detail.html index ef202bae9..4efb669a3 100644 --- a/templates/jasset/asset_detail.html +++ b/templates/jasset/asset_detail.html @@ -200,6 +200,7 @@
主机修改记录
+     点击修改 +
{{ af.group|bootstrap_horizontal }} @@ -156,15 +165,17 @@ $('document').ready(function(){ $('#id_use_default_auth').click(function(){ if ($(this).is(':checked')){ - $('#admin_account').css('display', 'none') + $('#admin_account').css('display', 'none'); + $('#id_port').css('display', 'none') } else { - $('#admin_account').css('display', 'block') + $('#admin_account').css('display', 'block'); + $('#id_port').css('display', 'block') } }) }); - var required_fields = ["id_ip", "id_port"]; + var required_fields = ["id_hostname", "id_port"]; required_fields.forEach(function(field) { $('label[for="' + field + '"]').parent().addClass("required"); }); @@ -177,18 +188,23 @@ check_port: [/^\d{1,5}$/, '端口号不正确'], }, fields: { - "ip": { - rule: "required;check_ip", - tip: "输入IP", + "hostname": { + rule: "required", + tip: "填写主机名", ok: "", msg: {required: "必须填写!"} }, - "port": { - rule: "required;check_port", - tip: "输入端口号", - ok: "", - msg: {required: "必须填写!"} - } +{# "ip": {#} +{# rule: "required;check_ip",#} +{# tip: "输入IP",#} +{# ok: "",#} +{# msg: {required: "必须填写!"}#} +{# },#} +{# "port": {#} +{# rule: "required;check_port",#} +{# tip: "输入端口号",#} +{# ok: "",#} +{# msg: {required: "必须填写!"}#} }, valid: function(form) { form.submit(); diff --git a/templates/jasset/asset_edit_batch.html b/templates/jasset/asset_edit_batch.html index 65987cd64..415146733 100644 --- a/templates/jasset/asset_edit_batch.html +++ b/templates/jasset/asset_edit_batch.html @@ -7,9 +7,9 @@ -{# #} + {% load bootstrap %} @@ -20,21 +20,21 @@
- +{#
#} +{#
填写修改主机信息.
#} +{#
#} +{# #} +{# #} +{# #} +{# #} +{# #} +{# #} +{# #} +{# #} +{# #} +{# #} +{#
#} +{#
#}
diff --git a/templates/jasset/asset_list.html b/templates/jasset/asset_list.html index b6e2eacd2..26572fa27 100644 --- a/templates/jasset/asset_list.html +++ b/templates/jasset/asset_list.html @@ -70,7 +70,7 @@