New file |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Text; |
| | | |
| | | namespace DTO |
| | | { |
| | | /// <summary> |
| | | /// æ¥è¯¢æ¡ä»¶ |
| | | /// </summary> |
| | | public class SimBindDTOSearch : SearchEntity |
| | | { |
| | | public string simcard { get; set; } |
| | | |
| | | public string username { get; set; } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¥è¯¢æ¡ä»¶ |
| | | /// </summary> |
| | | public class SimCostDTOSearch : SearchEntity |
| | | { |
| | | public string searchtime { get; set; } |
| | | |
| | | public string searchsim { get; set; } |
| | | |
| | | } |
| | | } |
New file |
| | |
| | | using DTO; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Text; |
| | | using zhengcaioa.Models; |
| | | |
| | | namespace IServices |
| | | { |
| | | public interface ISimService |
| | | { |
| | | ResultEntity Save(SimBind sim); |
| | | |
| | | SimBindView Get(string id); |
| | | |
| | | ResultDataEntity<SimBindView> SearchByPaging(SimBindDTOSearch searchEntity); |
| | | |
| | | ResultEntity UnBind(string ids,string user); |
| | | |
| | | List<SimBindView> GetBindSim(); |
| | | |
| | | ResultEntity SaveCost(SimCost md); |
| | | |
| | | SimCost GetSimCost(int id); |
| | | |
| | | ResultDataEntity<SimCostView> SearchSimCostByPage(SimCostDTOSearch searchEntity); |
| | | } |
| | | } |
New file |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel.DataAnnotations; |
| | | using System.ComponentModel.DataAnnotations.Schema; |
| | | using System.Text; |
| | | |
| | | namespace zhengcaioa.Models |
| | | { |
| | | [Table("t_sim_bind")] |
| | | public class SimBind |
| | | { |
| | | [Key] |
| | | public int id { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¡å· |
| | | /// </summary> |
| | | public string sim_id { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç¨æ· |
| | | /// </summary> |
| | | public string user_id { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 屿§ |
| | | /// </summary> |
| | | public string cardpro { get; set; } |
| | | |
| | | public DateTime up_time { get; set; } |
| | | |
| | | public string up_user { get; set; } |
| | | } |
| | | |
| | | [Table("v_sim_bind")] |
| | | public class SimBindView |
| | | { |
| | | [Key] |
| | | public string Id { get; set; } |
| | | |
| | | public string simcard { get; set; } |
| | | |
| | | public string simstatus { get; set; } |
| | | |
| | | public string userid { get; set; } |
| | | |
| | | public string username { get; set; } |
| | | |
| | | public string cardpro { get; set; } |
| | | |
| | | [NotMapped] |
| | | public string cardproChs { get; set; } |
| | | |
| | | public DateTime? up_time { get; set; } |
| | | } |
| | | |
| | | [Table("t_sim_cost")] |
| | | public class SimCost |
| | | { |
| | | [Key] |
| | | public int id { get; set; } |
| | | |
| | | public string user_id { get; set; } |
| | | public string sim_id { get; set; } |
| | | |
| | | public int bill_year { get; set; } |
| | | public int bill_month { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 坿¥éé¢ |
| | | /// </summary> |
| | | public decimal allow_amount { get; set; } |
| | | /// <summary> |
| | | /// è´¦åéé¢ |
| | | /// </summary> |
| | | public decimal bill_amount { get; set; } |
| | | /// <summary> |
| | | /// å·®å¼éé¢ |
| | | /// </summary> |
| | | public decimal amount { get; set; } |
| | | /// <summary> |
| | | /// è®°è´¦æ¥æ |
| | | /// </summary> |
| | | public DateTime accounted_time { get; set; } |
| | | /// <summary> |
| | | /// ç¶æ |
| | | /// </summary> |
| | | public string status { get; set; } |
| | | |
| | | public string sub_userid { get; set; } |
| | | public DateTime up_time { get; set; } |
| | | public string audit_userid { get; set; } |
| | | public DateTime? audit_time { get; set; } |
| | | } |
| | | |
| | | [Table("v_sim_cost")] |
| | | public class SimCostView |
| | | { |
| | | [Key] |
| | | public int id { get; set; } |
| | | |
| | | public string user_id { get; set; } |
| | | |
| | | public string username { get; set; } |
| | | |
| | | public string sim_id { get; set; } |
| | | |
| | | public string simcard { get; set; } |
| | | |
| | | public int bill_year { get; set; } |
| | | public int bill_month { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 坿¥éé¢ |
| | | /// </summary> |
| | | public decimal allow_amount { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è´¦åéé¢ |
| | | /// </summary> |
| | | public decimal bill_amount { get; set; } |
| | | |
| | | public decimal amount { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è®°è´¦æ¥æ |
| | | /// </summary> |
| | | public DateTime accounted_time { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç¶æ |
| | | /// </summary> |
| | | public string status { get; set; } |
| | | |
| | | public DateTime up_time { get; set; } |
| | | |
| | | [NotMapped] |
| | | public string accountMonth { |
| | | get |
| | | { |
| | | return bill_year + "-" + bill_month.ToString().PadLeft(2,'0'); |
| | | } |
| | | } |
| | | |
| | | [NotMapped] |
| | | public string statusChs |
| | | { |
| | | get |
| | | { |
| | | return status=="0"?"æ£å¸¸":"å
³è´¦"; |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | : base(options) |
| | | { |
| | | } |
| | | |
| | | public virtual DbSet<SimBind> SimBind { get; set; } |
| | | public virtual DbSet<SimBindView> SimBindView { get; set; } |
| | | public virtual DbSet<SimCost> SimCost { get; set; } |
| | | public virtual DbSet<SimCostView> SimCostView { get; set; } |
| | | |
| | | public virtual DbSet<AdmAskLeave> AdmAskLeaves { get; set; } |
| | | public virtual DbSet<AdmAskLeaveOff> AdmAskLeaveOffs { get; set; } |
| | | public virtual DbSet<AdmAttendance> AdmAttendances { get; set; } |
New file |
| | |
| | | using AutoMapper; |
| | | using DTO; |
| | | using IServices; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using zhengcaioa.Models; |
| | | |
| | | namespace Services |
| | | { |
| | | public class SimService :ISimService |
| | | { |
| | | private readonly zhengcaioaContext _context; |
| | | private readonly IMapper _mapper; |
| | | public SimService(zhengcaioaContext context, IMapper mapper) |
| | | { |
| | | _context = context; |
| | | _mapper = mapper; |
| | | } |
| | | |
| | | #region SIM åé
|
| | | |
| | | /// <summary> |
| | | /// ä¿å |
| | | /// </summary> |
| | | /// <param name="md"></param> |
| | | /// <returns></returns> |
| | | public ResultEntity Save(SimBind md) |
| | | { |
| | | ResultEntity resultEntity = new ResultEntity(); |
| | | try |
| | | { |
| | | var temp = _context.SimBind.Where(e => e.sim_id == md.sim_id).SingleOrDefault(); |
| | | if(temp!=null) |
| | | { |
| | | var users = _context.SimBind.Where(c => c.user_id == md.user_id).ToList(); |
| | | if(users!=null) |
| | | { |
| | | foreach(var item in users) |
| | | { |
| | | item.user_id = ""; |
| | | item.up_time = DateTime.Now; |
| | | item.up_user = md.up_user; |
| | | } |
| | | } |
| | | temp.cardpro = md.cardpro; |
| | | temp.user_id = md.user_id; |
| | | temp.up_user = md.up_user; |
| | | temp.up_time = DateTime.Now; |
| | | } |
| | | else |
| | | { |
| | | md.up_time = DateTime.Now; |
| | | _context.SimBind.Add(md); |
| | | } |
| | | _context.SaveChanges(); |
| | | resultEntity.Result = true; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | resultEntity.Result = false; |
| | | resultEntity.Message = "ä¿å失败ï¼è¯·è系管çå"; |
| | | ex.Message.ToString(); |
| | | } |
| | | return resultEntity; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è§£ç» |
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | public ResultEntity UnBind(string ids,string user) |
| | | { |
| | | ResultEntity resultEntity = new ResultEntity(); |
| | | try |
| | | { |
| | | var temp = _context.SimBind.Where(e =>ids.Contains(e.sim_id)).ToList(); |
| | | if (temp != null) |
| | | { |
| | | foreach (var item in temp) |
| | | { |
| | | item.user_id = ""; |
| | | item.up_time = DateTime.Now; |
| | | item.up_user = user; |
| | | } |
| | | } |
| | | _context.SaveChanges(); |
| | | resultEntity.Result = true; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | resultEntity.Result = false; |
| | | resultEntity.Message = "ä¿å失败ï¼è¯·è系管çå"; |
| | | ex.Message.ToString(); |
| | | } |
| | | return resultEntity; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ç»å®ä¿¡æ¯æ¥è¯¢ |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <returns></returns> |
| | | public SimBindView Get(string id) |
| | | { |
| | | var entity = _context.SimBindView.Where(c=>c.Id==id).SingleOrDefault(); |
| | | if (entity == null) |
| | | { |
| | | entity = new SimBindView(); |
| | | } |
| | | return entity; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¥è¯¢å
容 |
| | | /// </summary> |
| | | /// <param name="searchEntity"></param> |
| | | /// <returns></returns> |
| | | public ResultDataEntity<SimBindView> SearchByPaging(SimBindDTOSearch searchEntity) |
| | | { |
| | | ResultDataEntity<SimBindView> data = new ResultDataEntity<SimBindView>(); |
| | | try |
| | | { |
| | | var codedata= (from e in _context.SysCodes |
| | | join c in _context.SysCodeDtls |
| | | on e.Id equals c.CodeId |
| | | where e.RecStatus == "A" |
| | | && c.RecStatus == "A" |
| | | && e.CodeTable == "t_sim_bind" |
| | | && e.CodeField == "cardpro" |
| | | select c).OrderBy(x => x.Sort).ToList(); |
| | | |
| | | var dt = _context.SimBindView.OrderBy(c => c.simcard).ToList(); |
| | | if(!string.IsNullOrEmpty(searchEntity.simcard)) |
| | | { |
| | | dt = dt.Where(c => c.simcard.Contains(searchEntity.simcard)).ToList(); |
| | | } |
| | | if (!string.IsNullOrEmpty(searchEntity.username)) |
| | | { |
| | | dt = dt.Where(c => !string.IsNullOrEmpty(c.username) && c.username.Contains(searchEntity.username)).ToList(); |
| | | } |
| | | |
| | | if (searchEntity.totalrows == 0) |
| | | searchEntity.totalrows = dt.Count(); |
| | | |
| | | var signinList = dt.Skip((searchEntity.page - 1) * searchEntity.rows).Take(searchEntity.rows).ToList(); |
| | | |
| | | signinList= signinList.Select(a=> new SimBindView() |
| | | { |
| | | cardproChs = ToChs(a.cardpro, codedata), |
| | | Id = a.Id, |
| | | simcard = a.simcard, |
| | | simstatus = a.simstatus, |
| | | up_time = a.up_time, |
| | | username = a.username |
| | | }).ToList(); |
| | | |
| | | data.LoadData(searchEntity, signinList); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw; |
| | | } |
| | | return data; |
| | | } |
| | | |
| | | private string ToChs(string key,List<SysCodeDtl> list) |
| | | { |
| | | string str = ""; |
| | | var item = list.Find(c => c.CodeSn == key); |
| | | if(item!=null) |
| | | { |
| | | str = item.Comments; |
| | | } |
| | | return str; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region è´¹ç¨å½å
¥ |
| | | |
| | | /// <summary> |
| | | /// è·åå·²ç»å®ççµè¯å¡ |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public List<SimBindView> GetBindSim() |
| | | { |
| | | List<SimBindView> list = null; |
| | | try |
| | | { |
| | | list = _context.SimBindView.Where(c=>!string.IsNullOrEmpty(c.userid)).OrderBy(c => c.simcard).ToList(); |
| | | } |
| | | catch (Exception er) |
| | | { |
| | | throw; |
| | | } |
| | | return list; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä¿å |
| | | /// </summary> |
| | | /// <param name="md"></param> |
| | | /// <returns></returns> |
| | | public ResultEntity SaveCost(SimCost md) |
| | | { |
| | | ResultEntity resultEntity = new ResultEntity(); |
| | | try |
| | | { |
| | | var temp = _context.SimCost.Where(e => e.id == md.id).SingleOrDefault(); |
| | | var tempBind = _context.SimBindView.Where(e => e.Id == md.sim_id).SingleOrDefault(); |
| | | if (temp != null && temp.status=="0") |
| | | { |
| | | temp.bill_amount = md.bill_amount; |
| | | temp.bill_month = md.accounted_time.Month; |
| | | temp.bill_year = md.accounted_time.Year; |
| | | temp.sub_userid = md.sub_userid; |
| | | temp.up_time = DateTime.Now; |
| | | if(tempBind!=null) |
| | | { |
| | | temp.allow_amount = decimal.Parse(tempBind.cardpro); |
| | | temp.user_id = tempBind.userid; |
| | | temp.amount = temp.allow_amount - temp.bill_amount > 0 ? 0 : temp.allow_amount - temp.bill_amount; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | md.bill_month = md.accounted_time.Month; |
| | | md.bill_year = md.accounted_time.Year; |
| | | |
| | | //彿éå¤å¤æ |
| | | var monthck = _context.SimCost.Where(c => c.sim_id == md.sim_id && c.bill_year == md.bill_year && c.bill_month == md.bill_month).Count(); |
| | | if(monthck>0) |
| | | { |
| | | resultEntity.Result = false; |
| | | resultEntity.Message = string.Format("æ¤çµè¯å¡å¨[{0}-{1}]æå·²åå¨è®°å½ï¼ä¸è½é夿·»å ï¼",md.bill_year,md.bill_month); |
| | | return resultEntity; |
| | | } |
| | | else |
| | | { |
| | | md.up_time = DateTime.Now; |
| | | md.status = "0"; |
| | | |
| | | if (tempBind != null) |
| | | { |
| | | md.allow_amount = decimal.Parse(tempBind.cardpro); |
| | | md.amount = md.allow_amount - md.bill_amount > 0 ? 0 : md.allow_amount - md.bill_amount; |
| | | md.user_id = tempBind.userid; |
| | | } |
| | | _context.SimCost.Add(md); |
| | | } |
| | | } |
| | | _context.SaveChanges(); |
| | | resultEntity.Result = true; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | resultEntity.Result = false; |
| | | resultEntity.Message = "ä¿å失败ï¼è¯·è系管çå"; |
| | | ex.Message.ToString(); |
| | | } |
| | | return resultEntity; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ç»å®ä¿¡æ¯æ¥è¯¢ |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <returns></returns> |
| | | public SimCost GetSimCost(int id) |
| | | { |
| | | var entity = _context.SimCost.Where(c => c.id == id).SingleOrDefault(); |
| | | if (entity == null) |
| | | { |
| | | entity = new SimCost(); |
| | | } |
| | | return entity; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¥è¯¢å
容 |
| | | /// </summary> |
| | | /// <param name="searchEntity"></param> |
| | | /// <returns></returns> |
| | | public ResultDataEntity<SimCostView> SearchSimCostByPage(SimCostDTOSearch searchEntity) |
| | | { |
| | | ResultDataEntity<SimCostView> data = new ResultDataEntity<SimCostView>(); |
| | | try |
| | | { |
| | | var codedata = (from e in _context.SysCodes |
| | | join c in _context.SysCodeDtls |
| | | on e.Id equals c.CodeId |
| | | where e.RecStatus == "A" |
| | | && c.RecStatus == "A" |
| | | && e.CodeTable == "t_sim_bind" |
| | | && e.CodeField == "cardpro" |
| | | select c).OrderBy(x => x.Sort).ToList(); |
| | | |
| | | var dt = _context.SimCostView.OrderByDescending(c => c.accounted_time).ToList(); |
| | | if (!string.IsNullOrEmpty(searchEntity.searchtime)) |
| | | { |
| | | //dt = dt.Where(c => c.simcard.Contains(searchEntity.simcard)).ToList(); |
| | | } |
| | | if (!string.IsNullOrEmpty(searchEntity.searchsim)) |
| | | { |
| | | dt = dt.Where(c => !string.IsNullOrEmpty(c.simcard) && c.simcard.Contains(searchEntity.searchsim)).ToList(); |
| | | } |
| | | |
| | | if (searchEntity.totalrows == 0) |
| | | searchEntity.totalrows = dt.Count(); |
| | | |
| | | var signinList = dt.Skip((searchEntity.page - 1) * searchEntity.rows).Take(searchEntity.rows).ToList(); |
| | | |
| | | //signinList = signinList.Select(a => new SimBindView() |
| | | //{ |
| | | // cardproChs = ToChs(a.cardpro, codedata), |
| | | // Id = a.Id, |
| | | // simcard = a.simcard, |
| | | // simstatus = a.simstatus, |
| | | // up_time = a.up_time, |
| | | // username = a.username |
| | | //}).ToList(); |
| | | |
| | | data.LoadData(searchEntity, signinList); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw; |
| | | } |
| | | return data; |
| | | } |
| | | |
| | | #endregion |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | [DllImport("Iphlpapi.dll")] |
| | | private static extern int SendARP(Int32 dest, Int32 host, ref Int64 mac, ref Int32 length); |
| | | |
New file |
| | |
| | | using DTO; |
| | | using IServices; |
| | | using Microsoft.AspNetCore.Http; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using Microsoft.Extensions.Logging; |
| | | using Newtonsoft.Json; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Threading.Tasks; |
| | | using System.Transactions; |
| | | using zhengcaioa.IService; |
| | | using zhengcaioa.Models; |
| | | |
| | | namespace zhengcaioa.Controllers.admin |
| | | { |
| | | [CheckLogin] |
| | | public class SimController : Controller |
| | | { |
| | | private readonly ILogger<SimController> _logger; |
| | | private readonly ILiaotianService _liaotianService; |
| | | private readonly IUserService _userService; |
| | | private readonly ISimService _simService; |
| | | |
| | | public SimController(ILogger<SimController> logger, IUserService userService, ILiaotianService liaotianService,ISimService simService) |
| | | { |
| | | _logger = logger; |
| | | _liaotianService = liaotianService; |
| | | _userService = userService; |
| | | _simService = simService; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å表页 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public IActionResult Index() |
| | | { |
| | | List<ActionEntity> actionlist = new List<ActionEntity>(); |
| | | ActionEntity actionEntity = new ActionEntity(); |
| | | actionEntity.OpenType = 0; |
| | | actionEntity.ActionUrl = ""; |
| | | actionEntity.ActionFun = "Search"; |
| | | actionEntity.PageIco = "fa fa-search"; |
| | | actionEntity.ActionName = "æ¥è¯¢"; |
| | | actionlist.Add(actionEntity); |
| | | |
| | | ActionEntity actionEntity1 = new ActionEntity(); |
| | | actionEntity1.OpenType = 0; |
| | | actionEntity1.ActionUrl = ""; |
| | | actionEntity1.ActionFun = "UnBind"; |
| | | actionEntity1.PageIco = "fa fa-remove"; |
| | | actionEntity1.ActionName = "æ¹éè§£é¤ç»å®"; |
| | | actionlist.Add(actionEntity1); |
| | | |
| | | ViewData["ActionInfo"] = actionlist; |
| | | return View(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å表å
容 |
| | | /// </summary> |
| | | /// <param name="search"></param> |
| | | /// <returns></returns> |
| | | public IActionResult GetList(SimBindDTOSearch search) |
| | | { |
| | | return new JsonResult(_simService.SearchByPaging(search)); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ç¼è¾é¡µ |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <returns></returns> |
| | | public IActionResult Edit(string id) |
| | | { |
| | | ViewBag.CardPro = _liaotianService.GetSYScode("t_sim_bind", "cardpro"); |
| | | ViewData["users"] = _userService.GetList(); |
| | | SimBindView dto = new SimBindView(); |
| | | if (!string.IsNullOrEmpty(id)) |
| | | { |
| | | dto = _simService.Get(id); |
| | | } |
| | | ViewData.Model = dto; |
| | | return View(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä¿å |
| | | /// </summary> |
| | | /// <param name="data"></param> |
| | | /// <returns></returns> |
| | | [HttpPost] |
| | | public IActionResult SaveSimBind(SimBind data) |
| | | { |
| | | var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User")); |
| | | ResultEntity resultEntity = new ResultEntity(); |
| | | using (TransactionScope scope = new TransactionScope()) |
| | | { |
| | | data.up_user = curentuser.Id; |
| | | resultEntity = _simService.Save(data); |
| | | scope.Complete(); |
| | | } |
| | | return new JsonResult(resultEntity); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è§£ç» |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <returns></returns> |
| | | [HttpPost] |
| | | public JsonResult UnBindSim(string id) |
| | | { |
| | | var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User")); |
| | | ResultEntity resultEntity = new ResultEntity(); |
| | | using (TransactionScope scope = new TransactionScope()) |
| | | { |
| | | resultEntity = _simService.UnBind(id,curentuser.Id); |
| | | scope.Complete(); |
| | | } |
| | | return new JsonResult(resultEntity); |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Threading.Tasks; |
| | | using System.Transactions; |
| | | using DTO; |
| | | using IServices; |
| | | using Microsoft.AspNetCore.Http; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using Microsoft.Extensions.Logging; |
| | | using Newtonsoft.Json; |
| | | using zhengcaioa.IService; |
| | | using zhengcaioa.Models; |
| | | |
| | | namespace zhengcaioa.Controllers.admin |
| | | { |
| | | [CheckLogin] |
| | | public class SimCostController : Controller |
| | | { |
| | | private readonly ILogger<SimController> _logger; |
| | | private readonly ILiaotianService _liaotianService; |
| | | private readonly IUserService _userService; |
| | | private readonly ISimService _simService; |
| | | |
| | | public SimCostController(ILogger<SimController> logger, IUserService userService, ILiaotianService liaotianService, ISimService simService) |
| | | { |
| | | _logger = logger; |
| | | _liaotianService = liaotianService; |
| | | _userService = userService; |
| | | _simService = simService; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å表页 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public IActionResult Index() |
| | | { |
| | | List<ActionEntity> actionlist = new List<ActionEntity>(); |
| | | ActionEntity actionEntity = new ActionEntity(); |
| | | actionEntity.OpenType = 0; |
| | | actionEntity.ActionUrl = ""; |
| | | actionEntity.ActionFun = "Search"; |
| | | actionEntity.PageIco = "fa fa-search"; |
| | | actionEntity.ActionName = "æ¥è¯¢"; |
| | | actionlist.Add(actionEntity); |
| | | |
| | | ActionEntity actionEntity1 = new ActionEntity(); |
| | | actionEntity1.OpenType = 0; |
| | | actionEntity1.ActionUrl = ""; |
| | | actionEntity1.ActionFun = "Add"; |
| | | actionEntity1.PageIco = "fa fa-plus"; |
| | | actionEntity1.ActionName = "æ°å¢"; |
| | | actionlist.Add(actionEntity1); |
| | | |
| | | |
| | | //ActionEntity actionEntity4 = new ActionEntity(); |
| | | //actionEntity4.OpenType = 0; |
| | | //actionEntity4.ActionUrl = ""; |
| | | //actionEntity4.ActionFun = "UnBind"; |
| | | //actionEntity4.PageIco = "fa fa-remove"; |
| | | //actionEntity4.ActionName = "æ¹éå é¤"; |
| | | //actionlist.Add(actionEntity4); |
| | | |
| | | ViewData["ActionInfo"] = actionlist; |
| | | return View(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å表å
容 |
| | | /// </summary> |
| | | /// <param name="search"></param> |
| | | /// <returns></returns> |
| | | public IActionResult GetList(SimCostDTOSearch search) |
| | | { |
| | | return new JsonResult(_simService.SearchSimCostByPage(search)); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ç¼è¾é¡µ |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <returns></returns> |
| | | public IActionResult Edit(string id=null) |
| | | { |
| | | ViewBag.SimCard = _simService.GetBindSim(); |
| | | SimCost dto = new SimCost(); |
| | | dto.accounted_time = DateTime.Now; |
| | | if (!string.IsNullOrEmpty(id)) |
| | | { |
| | | dto = _simService.GetSimCost(int.Parse(id)); |
| | | } |
| | | ViewData.Model = dto; |
| | | return View(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä¿å |
| | | /// </summary> |
| | | /// <param name="data"></param> |
| | | /// <returns></returns> |
| | | [HttpPost] |
| | | public IActionResult SaveSimCost(SimCost data) |
| | | { |
| | | var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User")); |
| | | ResultEntity resultEntity = new ResultEntity(); |
| | | using (TransactionScope scope = new TransactionScope()) |
| | | { |
| | | data.sub_userid = curentuser.Id; |
| | | resultEntity = _simService.SaveCost(data); |
| | | scope.Complete(); |
| | | } |
| | | return new JsonResult(resultEntity); |
| | | } |
| | | |
| | | ///// <summary> |
| | | ///// è§£ç» |
| | | ///// </summary> |
| | | ///// <param name="id"></param> |
| | | ///// <returns></returns> |
| | | //[HttpPost] |
| | | //public JsonResult UnBindSim(string id) |
| | | //{ |
| | | // var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User")); |
| | | // ResultEntity resultEntity = new ResultEntity(); |
| | | // using (TransactionScope scope = new TransactionScope()) |
| | | // { |
| | | // resultEntity = _simService.UnBind(id, curentuser.Id); |
| | | // scope.Complete(); |
| | | // } |
| | | // return new JsonResult(resultEntity); |
| | | //} |
| | | } |
| | | } |
| | |
| | | <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
| | | <PropertyGroup> |
| | | <_PublishTargetUrl>D:\netcoreapp3.1\publish\</_PublishTargetUrl> |
| | | <History>True|2021-06-18T02:23:47.0862716Z;</History> |
| | | </PropertyGroup> |
| | | </Project> |
| | |
| | | |
| | | var connectionString = Configuration.GetConnectionString("DefaultConnection"); |
| | | services.AddDbContext<zhengcaioaContext>(options => |
| | | options.UseSqlServer(connectionString)); |
| | | options.UseSqlServer(connectionString)); |
| | | services.AddControllersWithViews(); |
| | | |
| | | services.AddScoped(typeof(ISimService), typeof(SimService)); |
| | | |
| | | services.AddScoped(typeof(IUserService), typeof(UserService)); |
| | | services.AddScoped(typeof(ILiaotianService), typeof(LiaotianService)); |
| | | services.AddScoped(typeof(IProjectService), typeof(ProjectService)); |
| | |
| | | ]; |
| | | dataUrl = "/Area/GetList"; |
| | | searchCol = [ |
| | | |
| | | |
| | | |
| | | { label: 'åºåå', name: 'Name', labtype: 'txt', hidden: false }, |
| | | { label: 'ç¶åºåå', name: 'ParentName', labtype: 'txt', hidden: false }, |
| | | |
| | | |
| | | ]; |
| | | var _pageAdd = function () { |
| | | OpenWindow("æ°å¢åºå", "98%", "90%", "/Area/Edit/"); |
| | |
| | | <link href="~/css/animate.min.css" rel="stylesheet"> |
| | | <link href="~/css/style.min.css?v=6" rel="stylesheet"> |
| | | <link href="~/css/plugins/toastr/toastr.min.css" rel="stylesheet"> |
| | | |
| | | </head> |
| | | <body class="fixed-sidebar full-height-layout gray-bg" style="overflow: hidden"> |
| | | <div id="wrapper"> |
| | |
| | | @*@RenderPage("_Layout_Footer.cshtml")*@ |
| | | @RenderBody() |
| | | </div> |
| | | |
| | | |
| | | <a id="aFlowLink" class="J_menuItem" href="" data-index="0" style="display:none;"></a> |
| | | |
| | | |
| | |
| | | <script src="~/js/plugins/pace/pace.min.js" type="text/javascript"></script> |
| | | <script src="~/js/plugins/toastr/toastr.min.js" type="text/javascript"></script> |
| | | <script src="~/js/common-layout.js" type="text/javascript"></script> |
| | | <script src="~/js/datehelper.js"></script> |
| | | <script src="~/js/datehelper.js"></script> |
| | | |
| | | <script type="text/javascript"> |
| | | |
| | |
| | | var timerId; // 宿¶å¨id |
| | | var isLock = false; // æ¯å¦éå® |
| | | |
| | | |
| | | |
| | | // éåº |
| | | var logout = function () { |
| | | if (isLock) { |
| | |
| | | }) |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | function _CloseTab1(taburl) { |
New file |
| | |
| | | @model SimBindView; |
| | | @using DTO; |
| | | @using zhengcaioa.Models; |
| | | @{ |
| | | Layout = null; |
| | | List<SysCodeDtl> CardPro = ViewData["CardPro"] as List<SysCodeDtl>; //çµè¯è¡¥è´´ |
| | | List<PltUserDTO> users = ViewData["users"] as List<PltUserDTO>; |
| | | } |
| | | |
| | | <!DOCTYPE html> |
| | | <html> |
| | | <head> |
| | | <meta charset="utf-8"> |
| | | <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0"> |
| | | <meta name="description" content=""> |
| | | <meta name="author" content="ThemeBucket"> |
| | | <title>@(SiteConfig.SiteName)</title> |
| | | <link href="~/css/bootstrap.min.css" rel="stylesheet"> |
| | | <link href="~/css/font-awesome.min.css" rel="stylesheet"> |
| | | <link href="~/css/animate.min.css" rel="stylesheet"> |
| | | <link href="~/css/style.min.css" rel="stylesheet"> |
| | | <link href="~/css/plugins/chosen/chosen.css" rel="stylesheet"> |
| | | <link href="~/js/plugins/layer/skin/layer.css" rel="stylesheet"> |
| | | <link href="~/css/style.min.css" rel="stylesheet"> |
| | | <link href="~/css/plugins/toastr/toastr.min.css" rel="stylesheet" /> |
| | | <link href="~/css/plugins/webuploader/webuploader.css" rel="stylesheet" /> |
| | | |
| | | <!-- jqgrid--> |
| | | <script language="javascript" src="~/js/jquery.min.js" type="text/javascript"></script> |
| | | <script src="~/js/bootstrap.min.js"></script> |
| | | |
| | | <!--容å¨--> |
| | | <script language="javascript" src="~/js/plugins/chosen/chosen.jquery.js" type="text/javascript"></script> |
| | | <script language="javascript" src="~/js/plugins/layer/layer.js" type="text/javascript"></script> |
| | | <script src="~/js/plugins/toastr/toastr.min.js" type="text/javascript"></script> |
| | | <script language="javascript" src="~/js/common-layout.js" type="text/javascript"></script> |
| | | <script src="~/js/plugins/layer/laydate/laydate.js" type="text/javascript"></script> |
| | | <script src="~/js/TUJS.js"></script> |
| | | |
| | | <style type="text/css"> |
| | | |
| | | div.clearfix > label { |
| | | padding-top: 8px; |
| | | } |
| | | |
| | | .col-md-1.control-label { |
| | | padding-right: 0px; |
| | | font-weight: 400; |
| | | } |
| | | </style> |
| | | |
| | | |
| | | </head> |
| | | |
| | | <body class="gray-bg" style="overflow:auto"> |
| | | <form id="fm" method="post"> |
| | | <div class="wrapper wrapper-content" id="ibox-content" style="padding:15px;"> |
| | | <div class="row"> |
| | | <div class="col-sm-12"> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-title"> |
| | | <h5><i class="fa fa-list"></i> çµè¯å¡åé
</h5> |
| | | </div> |
| | | <div id="div_content" class="ibox-content" style="background-color:white;"> |
| | | <div class="row"> |
| | | <div class="clearfix layer-area" style="padding-bottom:15px;"> |
| | | <label class="text-right col-sm-1 col-md-1 control-label">çµè¯å¡</label> |
| | | <div class="col-sm-2 col-md-2"> |
| | | <input class="form-control" labtype="txt" addvisible="true" editvisible="true" readonly="readonly" maxlength="500" reg="" ismust="true" type="text" value="@Model.simcard"> |
| | | <input type="hidden" name="sim_id" value="@Model.Id" /> |
| | | </div> |
| | | </div> |
| | | <div class="clearfix layer-area" style="padding-bottom:15px;"> |
| | | |
| | | <label class="text-right col-sm-1 col-md-1 control-label">使ç¨åå·¥<i class="red">*</i></label> |
| | | <div class="col-sm-2 col-md-2"> |
| | | <select id="cbbUser" class="data form-control" name="user_id" data-placeholder="éæ© åºå ..."> |
| | | <option value="" hassubinfo="true">è¯·éæ©</option> |
| | | @foreach (var item in users) |
| | | { |
| | | @if (!item.Id.Equals(Model.userid)) |
| | | { |
| | | <option value="@item.Id" hassubinfo="true"> |
| | | @item.UserName |
| | | </option> |
| | | } |
| | | else |
| | | { |
| | | <option value="@item.Id" hassubinfo="true" selected="selected"> |
| | | @item.UserName |
| | | </option> |
| | | } |
| | | } |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <div class="clearfix layer-area" style="padding-bottom:15px;"> |
| | | |
| | | <label class="text-right col-sm-1 col-md-1 control-label">çµè¯è¡¥è´´<i class="red">*</i></label> |
| | | <div class="col-sm-2 col-md-2"> |
| | | <select id="cbbDhbt" class="data form-control" name="cardpro" data-placeholder="éæ© åºå ..."> |
| | | <option value="" hassubinfo="true">è¯·éæ©</option> |
| | | @foreach (var item in CardPro) |
| | | { |
| | | @if (!item.CodeSn.Equals(Model.cardpro)) |
| | | { |
| | | <option value="@item.CodeSn" hassubinfo="true"> |
| | | @item.Comments |
| | | </option> |
| | | } |
| | | else |
| | | { |
| | | <option value="@item.CodeSn" hassubinfo="true" selected="selected"> |
| | | @item.Comments |
| | | </option> |
| | | } |
| | | } |
| | | </select> |
| | | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="ibox-content" id="top" style="z-index:100; position:fixed; height:50px; width:100%;bottom:0; text-align: right; padding-top:8px "> |
| | | <div class="" style="float:right;" data-bootstro-width="500px" data-bootstro-content="åè½æé®ï¼âä¿åâï¼âåæ¶â"> |
| | | <a class="btn btn-success" href="javascript:void(0)" onclick="_pageAutoClose();" style="margin-left:4px; border-radius:4px;"> |
| | | <i class="glyphicon glyphicon-remove"></i> <span class="bold">åæ¶</span> |
| | | </a> |
| | | <a class="btn btn-success" href="javascript:void(0)" onclick="saveSim();" style="margin-left:4px; border-radius:4px;"> |
| | | <i class="glyphicon glyphicon-ok"></i> <span class="bold">æäº¤</span> |
| | | </a> |
| | | </div> |
| | | </div> |
| | | |
| | | </form> |
| | | |
| | | <script type="text/javascript"> |
| | | $(function () { |
| | | |
| | | $("#cbbUser").chosen(); |
| | | |
| | | }); |
| | | |
| | | var hh = document.body.clientHeight - $('.ibox-title').height() - $("#top").height() * 2 - 95; |
| | | $("#div_content").height(hh); |
| | | |
| | | toastr.options = { |
| | | "closeButton": true, |
| | | "debug": false, |
| | | "progressBar": true, |
| | | "positionClass": "toast-bottom-right", |
| | | "onclick": null, |
| | | "showDuration": "300", |
| | | "hideDuration": "600", |
| | | "timeOut": "4500", |
| | | "extendedTimeOut": "600", |
| | | "showEasing": "swing", |
| | | "hideEasing": "linear", |
| | | "showMethod": "fadeIn", |
| | | "hideMethod": "fadeOut" |
| | | }; |
| | | |
| | | // ä¿å |
| | | function saveSim() { |
| | | |
| | | if ($("#cbbUser").val() == '') { |
| | | toastr.warning("使ç¨äººåä¸è½ä¸ºç©º"); |
| | | return; |
| | | } |
| | | if ($("#cbbDhbt").val() == '') { |
| | | toastr.warning("çµè¯è¡¥è´´ä¸è½ä¸ºç©º"); |
| | | return; |
| | | } |
| | | |
| | | $.ajax({ |
| | | type: "POST", |
| | | url: "/Sim/SaveSimBind", |
| | | dataType: "json", |
| | | global: false, |
| | | data: $('#fm').serialize(), |
| | | success: function (data) { |
| | | |
| | | if (data.Result) { |
| | | parent.layer.msg('设置æå', { icon: 6 }); |
| | | try { |
| | | _pageAutoClose();//èªå¨å
³é页颿¹æ³ |
| | | } |
| | | catch (err) { |
| | | parent._CloseTab1("/Sim/Edit/"); |
| | | } |
| | | } |
| | | else { |
| | | // toastr.error("失败"); |
| | | parent.layer.msg(data.Message, { icon: 5 }); |
| | | } |
| | | |
| | | }, |
| | | error: function () { |
| | | parent.layer.msg('失败', { icon: 5 }); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | |
| | | function _pageAutoClose() { |
| | | parent.window._reloadPageData(); |
| | | var index = parent.layer.getFrameIndex(window.name); |
| | | parent.layer.isRefresh = true; |
| | | parent.layer.closeAll('loading'); |
| | | parent.layer.close(index); |
| | | return false; |
| | | } |
| | | </script> |
| | | </body> |
| | | </html> |
New file |
| | |
| | | @{ |
| | | ViewBag.Title = "çµè¯å¡åé
"; |
| | | Layout = "~/Views/Shared/_Layout_Search.cshtml"; |
| | | } |
| | | |
| | | <link href="~/css/jquery-confirm.css" rel="stylesheet"> |
| | | <script src="~/js/jquery-confirm.js" type="text/javascript"></script> |
| | | |
| | | @section headerStyle{ |
| | | |
| | | <script type="text/javascript"> |
| | | |
| | | gridConfig = { multiselect: true, selectcol: "Id" }; |
| | | dataCol = [ |
| | | { label: 'id', name: 'Id', labtype: 'txt', hidden: true }, |
| | | { |
| | | label: 'çµè¯å¡å·', name: 'simcard', labtype: 'txt', hidden: false, width: 150, |
| | | formatter: function (cellvalue, options, rowObject) { |
| | | return "<a onclick=\"OpenWindow('" + cellvalue.replace(/'/g, '') + "','98%','100%', '/Sim/Edit?id=" + rowObject.Id + "')\" >" + cellvalue + "</a>"; |
| | | } |
| | | }, |
| | | { label: '使ç¨äººå', name: 'username', labtype: 'txt', hidden: false, width: 150 }, |
| | | { label: 'çµè¯è¡¥è´´', name: 'cardproChs', labtype: 'txt', hidden: false, width: 100 }, |
| | | { label: 'æ´æ°æ¥æ', name: 'up_time', labtype: 'txt', hidden: false, width: 150 }, |
| | | ]; |
| | | dataUrl = "/Sim/GetList"; |
| | | searchCol = [ |
| | | { label: 'çµè¯å¡å·', name: 'simcard', labtype: 'txt', hidden: false, cwidth: '5%', cccwidth: '8%' }, |
| | | { label: '使ç¨äººå', name: 'username', labtype: 'txt', hidden: false, cwidth: '5%', cccwidth: '8%' }, |
| | | ]; |
| | | |
| | | var _pageUnBind = function () { |
| | | var db = jQuery('#jqGrid').jqGrid('getGridParam', 'selarrrow'); |
| | | if (db.length > 0) { |
| | | $.confirm({ |
| | | title: 'è§£é¤ç»å®æä½ç¡®è®¤', |
| | | content: 'æ¤æä½å°è§£é¤æéå®çµè¯å¡å人åç»å®å
³ç³»ï¼ç¡®è®¤è¦ç»§ç»å?', |
| | | type: 'green', |
| | | icon: 'glyphicon glyphicon-question-sign', |
| | | buttons: { |
| | | ok: { |
| | | text: '确认', |
| | | btnClass: 'btn-primary', |
| | | action: function () { |
| | | $.ajax({ |
| | | type: "POST", |
| | | url: "/Sim/UnBindSim?id="+db, |
| | | dataType: "json", |
| | | global: false, |
| | | success: function (data) { |
| | | |
| | | if (data.Result) { |
| | | jQuery('#jqGrid').jqGrid().trigger('reloadGrid'); |
| | | |
| | | parent.layer.msg('设置æå', { icon: 6 }); |
| | | } |
| | | else { |
| | | parent.layer.msg(data.Message, { icon: 5 }); |
| | | } |
| | | }, |
| | | error: function () { |
| | | parent.layer.msg('失败', { icon: 5 }); |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | cancel: { |
| | | text: 'åæ¶', |
| | | btnClass: 'btn-primary' |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | else { |
| | | $.alert("请å
éæ©éè¦è§£ç»ççµè¯å¡ï¼"); |
| | | } |
| | | |
| | | } |
| | | |
| | | var _afterSave = function (result) { |
| | | if (result) { |
| | | toastr.success("ä¿åæå"); |
| | | } else { |
| | | toastr.error("ä¿å失败"); |
| | | } |
| | | } |
| | | |
| | | var _afterDel = function (result) { |
| | | if (result) { |
| | | toastr.success("å 餿å"); |
| | | } else { |
| | | /**/ |
| | | toastr.error("å 餿å"); |
| | | /**/ |
| | | } |
| | | } |
| | | </script> |
| | | } |
New file |
| | |
| | | @model SimCost; |
| | | @using DTO; |
| | | @using zhengcaioa.Models; |
| | | @{ |
| | | Layout = null; |
| | | List<SimBindView> Card = ViewData["SimCard"] as List<SimBindView>; |
| | | } |
| | | |
| | | <!DOCTYPE html> |
| | | <html> |
| | | <head> |
| | | <meta charset="utf-8"> |
| | | <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0"> |
| | | <meta name="description" content=""> |
| | | <meta name="author" content="ThemeBucket"> |
| | | <link href="~/css/bootstrap.min.css" rel="stylesheet"> |
| | | <link href="~/css/font-awesome.min.css" rel="stylesheet"> |
| | | <link href="~/css/animate.min.css" rel="stylesheet"> |
| | | <link href="~/css/style.min.css" rel="stylesheet"> |
| | | <link href="~/css/plugins/chosen/chosen.css" rel="stylesheet"> |
| | | <link href="~/js/plugins/layer/skin/layer.css" rel="stylesheet"> |
| | | <link href="~/css/style.min.css" rel="stylesheet"> |
| | | <link href="~/css/plugins/toastr/toastr.min.css" rel="stylesheet" /> |
| | | |
| | | <!-- jqgrid--> |
| | | <script language="javascript" src="~/js/jquery.min.js" type="text/javascript"></script> |
| | | <script src="~/js/bootstrap.min.js"></script> |
| | | |
| | | <!--容å¨--> |
| | | <script language="javascript" src="~/js/plugins/chosen/chosen.jquery.js" type="text/javascript"></script> |
| | | <script language="javascript" src="~/js/plugins/layer/layer.js" type="text/javascript"></script> |
| | | <script src="~/js/plugins/toastr/toastr.min.js" type="text/javascript"></script> |
| | | <script language="javascript" src="~/js/common-layout.js" type="text/javascript"></script> |
| | | <script src="~/js/plugins/layer/laydate/laydate.js" type="text/javascript"></script> |
| | | <script src="~/js/TUJS.js"></script> |
| | | |
| | | <style type="text/css"> |
| | | |
| | | div.clearfix > label { |
| | | padding-top: 8px; |
| | | } |
| | | |
| | | .col-md-1.control-label { |
| | | padding-right: 0px; |
| | | font-weight: 400; |
| | | } |
| | | </style> |
| | | |
| | | |
| | | </head> |
| | | |
| | | <body class="gray-bg" style="overflow:auto"> |
| | | <form id="fm" method="post"> |
| | | <div class="wrapper wrapper-content" id="ibox-content" style="padding:15px;"> |
| | | <div class="row"> |
| | | <div class="col-sm-12"> |
| | | <div class="ibox float-e-margins"> |
| | | <div id="div_content" class="ibox-content" style="background-color:white;"> |
| | | <div class="row"> |
| | | <div class="clearfix layer-area" style="padding-bottom:15px;"> |
| | | <label class="text-right col-sm-1 col-md-1 control-label">çµè¯å¡å·<i class="red">*</i></label> |
| | | <div class="col-sm-2 col-md-2"> |
| | | <select id="cbbCard" class="data form-control" name="sim_id" data-placeholder="éæ© åºå ..."> |
| | | <option value="" hassubinfo="true">è¯·éæ©</option> |
| | | @foreach (var item in Card) |
| | | { |
| | | @if (!item.Id.Equals(Model.sim_id)) |
| | | { |
| | | <option value="@item.Id" hassubinfo="true"> |
| | | @item.simcard |
| | | </option> |
| | | } |
| | | else |
| | | { |
| | | <option value="@item.Id" hassubinfo="true" selected="selected"> |
| | | @item.simcard |
| | | </option> |
| | | } |
| | | } |
| | | </select> |
| | | <input type="hidden" name="id" value="@Model.id" /> |
| | | </div> |
| | | </div> |
| | | <div class="clearfix layer-area" style="padding-bottom:15px;"> |
| | | <label class="text-right col-sm-1 col-md-1 control-label">å®é
çµè¯è´¹ç¨<i class="red">*</i></label> |
| | | <div class="col-sm-2 col-md-2"> |
| | | <input id="billamount" class="form-control" label="èªèµå¾
é" name="bill_amount" labtype="txt" addvisible="true" maxlength="500" editvisible="true" reg="" ismust="true" type="text" value="@Model.bill_amount" oninput="if(value.length>4)value=value.slice(0,10)" onkeyup="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)"> |
| | | </div> |
| | | </div> |
| | | <div class="clearfix layer-area" style="padding-bottom:15px;"> |
| | | |
| | | <label class="text-right col-sm-1 col-md-1 control-label">è´¹ç¨è®°è´¦æ¥æ<i class="red">*</i></label> |
| | | <div class="col-sm-2 col-md-2"> |
| | | <input id="acTime" class="form-control" name="accounted_time" labtype="txt" addvisible="true" editvisible="true" reg="" ismust="true" type="text" value="@Model.accounted_time.ToString("yyyy/MM/dd")" > |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="ibox-content" id="top" style="z-index:100; position:fixed; height:50px; width:100%;bottom:0; text-align: right; padding-top:8px "> |
| | | <div class="" style="float:right;" data-bootstro-width="500px" data-bootstro-content="åè½æé®ï¼âä¿åâï¼âåæ¶â"> |
| | | <a class="btn btn-success" href="javascript:void(0)" onclick="_pageAutoClose();" style="margin-left:4px; border-radius:4px;"> |
| | | <i class="glyphicon glyphicon-remove"></i> <span class="bold">åæ¶</span> |
| | | </a> |
| | | <a class="btn btn-success" href="javascript:void(0)" onclick="saveSimCost();" style="margin-left:4px; border-radius:4px;"> |
| | | <i class="glyphicon glyphicon-ok"></i> <span class="bold">ä¿å</span> |
| | | </a> |
| | | </div> |
| | | </div> |
| | | |
| | | </form> |
| | | |
| | | <script type="text/javascript"> |
| | | $(function () { |
| | | |
| | | $("#cbbCard").chosen(); |
| | | |
| | | laydate({ elem: "#acTime", format: 'YYYY/MM/DD', istime: false, event: "focus" }); |
| | | |
| | | }); |
| | | |
| | | var hh = document.body.clientHeight - $('.ibox-title').height() - $("#top").height() * 2 - 95; |
| | | $("#div_content").height(hh); |
| | | |
| | | toastr.options = { |
| | | "closeButton": true, |
| | | "debug": false, |
| | | "progressBar": true, |
| | | "positionClass": "toast-bottom-right", |
| | | "onclick": null, |
| | | "showDuration": "300", |
| | | "hideDuration": "600", |
| | | "timeOut": "4500", |
| | | "extendedTimeOut": "600", |
| | | "showEasing": "swing", |
| | | "hideEasing": "linear", |
| | | "showMethod": "fadeIn", |
| | | "hideMethod": "fadeOut" |
| | | }; |
| | | |
| | | // ä¿å |
| | | function saveSimCost() { |
| | | |
| | | if ($("#cbbCard").val() == '') { |
| | | toastr.warning("çµè¯å¡å·ä¸è½ä¸ºç©º"); |
| | | return; |
| | | } |
| | | if ($("#billamount").val() == '') { |
| | | toastr.warning("å®é
çµè¯è´¹ç¨ä¸è½ä¸ºç©º"); |
| | | return; |
| | | } |
| | | if ($("#acTime").val() == '') { |
| | | toastr.warning("è´¹ç¨è®°è´¦æ¥æä¸è½ä¸ºç©º"); |
| | | return; |
| | | } |
| | | |
| | | $.ajax({ |
| | | type: "POST", |
| | | url: "/SimCost/SaveSimCost", |
| | | dataType: "json", |
| | | global: false, |
| | | data: $('#fm').serialize(), |
| | | success: function (data) { |
| | | |
| | | if (data.Result) { |
| | | parent.layer.msg('设置æå', { icon: 6 }); |
| | | try { |
| | | _pageAutoClose();//èªå¨å
³é页颿¹æ³ |
| | | } |
| | | catch (err) { |
| | | parent._CloseTab1("/SimCost/Edit/"); |
| | | } |
| | | } |
| | | else { |
| | | // toastr.error("失败"); |
| | | parent.layer.msg(data.Message, { icon: 5 }); |
| | | } |
| | | |
| | | }, |
| | | error: function () { |
| | | parent.layer.msg('失败', { icon: 5 }); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | |
| | | function _pageAutoClose() { |
| | | parent.window._reloadPageData(); |
| | | var index = parent.layer.getFrameIndex(window.name); |
| | | parent.layer.isRefresh = true; |
| | | parent.layer.closeAll('loading'); |
| | | parent.layer.close(index); |
| | | return false; |
| | | } |
| | | </script> |
| | | </body> |
| | | </html> |
New file |
| | |
| | | @{ |
| | | ViewBag.Title = "çµè¯è´¹å½å
¥"; |
| | | Layout = "~/Views/Shared/_Layout_Search.cshtml"; |
| | | } |
| | | |
| | | <link href="~/css/jquery-confirm.css" rel="stylesheet"> |
| | | <script src="~/js/jquery-confirm.js" type="text/javascript"></script> |
| | | |
| | | @section headerStyle{ |
| | | |
| | | <script type="text/javascript"> |
| | | |
| | | gridConfig = { multiselect: false, selectcol: "id" }; |
| | | dataCol = [ |
| | | { label: 'åºå·', name: 'id', labtype: 'txt', hidden: false, width: 50 }, |
| | | { label: 'è´¦åæ¥æ', name: 'accountMonth', labtype: 'txt', hidden: false, width: 150 }, |
| | | { |
| | | label: 'çµè¯å¡å·', name: 'simcard', labtype: 'txt', hidden: false, width: 150, |
| | | formatter: function (cellvalue, options, rowObject) { |
| | | return "<a onclick=\"OpenWindow('ç¼è¾çµè¯è´¹ç¨','98%','90%', '/SimCost/Edit?id=" + rowObject.id + "')\" >" + cellvalue + "</a>"; |
| | | } |
| | | }, |
| | | { label: '使ç¨äººå', name: 'username', labtype: 'txt', hidden: false, width: 150 }, |
| | | { label: 'çµè¯åéé¢', name: 'bill_amount', labtype: 'txt', hidden: false, width: 100 }, |
| | | { label: 'çµè¯è¡¥è´´éé¢', name: 'allow_amount', labtype: 'txt', hidden: false, width: 100 }, |
| | | { label: 'å·®å¼éé¢', name: 'amount', labtype: 'txt', hidden: false, width: 100 }, |
| | | { label: 'ç¶æ', name: 'statusChs', labtype: 'txt', hidden: false, width: 100 }, |
| | | { label: 'æ´æ°æ¥æ', name: 'up_time', labtype: 'txt', hidden: false }, |
| | | ]; |
| | | dataUrl = "/SimCost/GetList"; |
| | | searchCol = [ |
| | | { label: 'æ¶é´', name: 'searchtime', labtype: 'datearea', hidden: false }, |
| | | { label: 'çµè¯å¡å·', name: 'searchsim', labtype: 'txt', hidden: false, cwidth: '5%', cccwidth: '8%' } |
| | | ]; |
| | | |
| | | var _pageAdd = function () { |
| | | OpenWindow("æ°å¢çµè¯è´¹ç¨", "98%", "90%", "/SimCost/Edit/"); |
| | | } |
| | | |
| | | var _pageUnBind = function () { |
| | | var db = jQuery('#jqGrid').jqGrid('getGridParam', 'selarrrow'); |
| | | if (db.length > 0) { |
| | | $.confirm({ |
| | | title: 'è§£é¤ç»å®æä½ç¡®è®¤', |
| | | content: 'æ¤æä½å°è§£é¤æéå®çµè¯å¡å人åç»å®å
³ç³»ï¼ç¡®è®¤è¦ç»§ç»å?', |
| | | type: 'green', |
| | | icon: 'glyphicon glyphicon-question-sign', |
| | | buttons: { |
| | | ok: { |
| | | text: '确认', |
| | | btnClass: 'btn-primary', |
| | | action: function () { |
| | | $.ajax({ |
| | | type: "POST", |
| | | url: "/Sim/UnBindSim?id="+db, |
| | | dataType: "json", |
| | | global: false, |
| | | success: function (data) { |
| | | |
| | | if (data.Result) { |
| | | jQuery('#jqGrid').jqGrid().trigger('reloadGrid'); |
| | | |
| | | parent.layer.msg('设置æå', { icon: 6 }); |
| | | } |
| | | else { |
| | | parent.layer.msg(data.Message, { icon: 5 }); |
| | | } |
| | | }, |
| | | error: function () { |
| | | parent.layer.msg('失败', { icon: 5 }); |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | cancel: { |
| | | text: 'åæ¶', |
| | | btnClass: 'btn-primary' |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | else { |
| | | $.alert("请å
éæ©éè¦è§£ç»ççµè¯å¡ï¼"); |
| | | } |
| | | |
| | | } |
| | | |
| | | var _afterSave = function (result) { |
| | | if (result) { |
| | | toastr.success("ä¿åæå"); |
| | | } else { |
| | | toastr.error("ä¿å失败"); |
| | | } |
| | | } |
| | | |
| | | var _afterDel = function (result) { |
| | | if (result) { |
| | | toastr.success("å 餿å"); |
| | | } else { |
| | | /**/ |
| | | toastr.error("å 餿å"); |
| | | /**/ |
| | | } |
| | | } |
| | | </script> |
| | | } |
| | |
| | | List<SysCodeDtl> isMaryed = ViewBag.isMaryed as List<SysCodeDtl>; //å©å§»ç¶åµ |
| | | |
| | | |
| | | |
| | | |
| | | List<PltJiatingchengyuanDTO> pltJiatingchengyuanDTOs = Model.pltJiatingchengyuanDTOs; |
| | | |
| | | |
New file |
| | |
| | | /*! |
| | | * jquery-confirm v3.3.4 (http://craftpip.github.io/jquery-confirm/) |
| | | * Author: boniface pereira |
| | | * Website: www.craftpip.com |
| | | * Contact: hey@craftpip.com |
| | | * |
| | | * Copyright 2013-2019 jquery-confirm |
| | | * Licensed under MIT (https://github.com/craftpip/jquery-confirm/blob/master/LICENSE) |
| | | */ |
| | | @-webkit-keyframes jconfirm-spin { |
| | | from { |
| | | -webkit-transform: rotate(0deg); |
| | | transform: rotate(0deg); |
| | | } |
| | | to { |
| | | -webkit-transform: rotate(360deg); |
| | | transform: rotate(360deg); |
| | | } |
| | | } |
| | | |
| | | @keyframes jconfirm-spin { |
| | | from { |
| | | -webkit-transform: rotate(0deg); |
| | | transform: rotate(0deg); |
| | | } |
| | | to { |
| | | -webkit-transform: rotate(360deg); |
| | | transform: rotate(360deg); |
| | | } |
| | | } |
| | | |
| | | body[class*=jconfirm-no-scroll-] { |
| | | overflow: hidden !important; |
| | | } |
| | | |
| | | .jconfirm { |
| | | position: fixed; |
| | | top: 0; |
| | | left: 0; |
| | | right: 0; |
| | | bottom: 0; |
| | | z-index: 99999999; |
| | | font-family: inherit; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-bg { |
| | | position: fixed; |
| | | top: 0; |
| | | left: 0; |
| | | right: 0; |
| | | bottom: 0; |
| | | -webkit-transition: opacity .4s; |
| | | transition: opacity .4s; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-bg.jconfirm-bg-h { |
| | | opacity: 0 !important; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-scrollpane { |
| | | -webkit-perspective: 500px; |
| | | perspective: 500px; |
| | | -webkit-perspective-origin: center; |
| | | perspective-origin: center; |
| | | display: table; |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-row { |
| | | display: table-row; |
| | | width: 100%; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-cell { |
| | | display: table-cell; |
| | | vertical-align: middle; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-holder { |
| | | max-height: 100%; |
| | | padding: 50px 0; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box-container { |
| | | -webkit-transition: -webkit-transform; |
| | | transition: -webkit-transform; |
| | | transition: transform; |
| | | transition: transform, -webkit-transform; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box-container.jconfirm-no-transition { |
| | | -webkit-transition: none !important; |
| | | transition: none !important; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box { |
| | | background: white; |
| | | border-radius: 4px; |
| | | position: relative; |
| | | outline: none; |
| | | padding: 15px 15px 0; |
| | | overflow: hidden; |
| | | margin-left: auto; |
| | | margin-right: auto; |
| | | } |
| | | |
| | | @-webkit-keyframes type-blue { |
| | | 1%, |
| | | 100% { |
| | | border-color: #3498db; |
| | | } |
| | | 50% { |
| | | border-color: #5faee3; |
| | | } |
| | | } |
| | | |
| | | @keyframes type-blue { |
| | | 1%, |
| | | 100% { |
| | | border-color: #3498db; |
| | | } |
| | | 50% { |
| | | border-color: #5faee3; |
| | | } |
| | | } |
| | | |
| | | @-webkit-keyframes type-green { |
| | | 1%, |
| | | 100% { |
| | | border-color: #2ecc71; |
| | | } |
| | | 50% { |
| | | border-color: #54d98c; |
| | | } |
| | | } |
| | | |
| | | @keyframes type-green { |
| | | 1%, |
| | | 100% { |
| | | border-color: #2ecc71; |
| | | } |
| | | 50% { |
| | | border-color: #54d98c; |
| | | } |
| | | } |
| | | |
| | | @-webkit-keyframes type-red { |
| | | 1%, |
| | | 100% { |
| | | border-color: #e74c3c; |
| | | } |
| | | 50% { |
| | | border-color: #ed7669; |
| | | } |
| | | } |
| | | |
| | | @keyframes type-red { |
| | | 1%, |
| | | 100% { |
| | | border-color: #e74c3c; |
| | | } |
| | | 50% { |
| | | border-color: #ed7669; |
| | | } |
| | | } |
| | | |
| | | @-webkit-keyframes type-orange { |
| | | 1%, |
| | | 100% { |
| | | border-color: #f1c40f; |
| | | } |
| | | 50% { |
| | | border-color: #f4d03f; |
| | | } |
| | | } |
| | | |
| | | @keyframes type-orange { |
| | | 1%, |
| | | 100% { |
| | | border-color: #f1c40f; |
| | | } |
| | | 50% { |
| | | border-color: #f4d03f; |
| | | } |
| | | } |
| | | |
| | | @-webkit-keyframes type-purple { |
| | | 1%, |
| | | 100% { |
| | | border-color: #9b59b6; |
| | | } |
| | | 50% { |
| | | border-color: #b07cc6; |
| | | } |
| | | } |
| | | |
| | | @keyframes type-purple { |
| | | 1%, |
| | | 100% { |
| | | border-color: #9b59b6; |
| | | } |
| | | 50% { |
| | | border-color: #b07cc6; |
| | | } |
| | | } |
| | | |
| | | @-webkit-keyframes type-dark { |
| | | 1%, |
| | | 100% { |
| | | border-color: #34495e; |
| | | } |
| | | 50% { |
| | | border-color: #46627f; |
| | | } |
| | | } |
| | | |
| | | @keyframes type-dark { |
| | | 1%, |
| | | 100% { |
| | | border-color: #34495e; |
| | | } |
| | | 50% { |
| | | border-color: #46627f; |
| | | } |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box.jconfirm-type-animated { |
| | | -webkit-animation-duration: 2s; |
| | | animation-duration: 2s; |
| | | -webkit-animation-iteration-count: infinite; |
| | | animation-iteration-count: infinite; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box.jconfirm-type-blue { |
| | | border-top: solid 7px #3498db; |
| | | -webkit-animation-name: type-blue; |
| | | animation-name: type-blue; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box.jconfirm-type-green { |
| | | border-top: solid 7px #2ecc71; |
| | | -webkit-animation-name: type-green; |
| | | animation-name: type-green; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box.jconfirm-type-red { |
| | | border-top: solid 7px #e74c3c; |
| | | -webkit-animation-name: type-red; |
| | | animation-name: type-red; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box.jconfirm-type-orange { |
| | | border-top: solid 7px #f1c40f; |
| | | -webkit-animation-name: type-orange; |
| | | animation-name: type-orange; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box.jconfirm-type-purple { |
| | | border-top: solid 7px #9b59b6; |
| | | -webkit-animation-name: type-purple; |
| | | animation-name: type-purple; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box.jconfirm-type-dark { |
| | | border-top: solid 7px #34495e; |
| | | -webkit-animation-name: type-dark; |
| | | animation-name: type-dark; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box.loading { |
| | | height: 120px; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box.loading:before { |
| | | content: ''; |
| | | position: absolute; |
| | | left: 0; |
| | | background: white; |
| | | right: 0; |
| | | top: 0; |
| | | bottom: 0; |
| | | border-radius: 10px; |
| | | z-index: 1; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box.loading:after { |
| | | opacity: 0.6; |
| | | content: ''; |
| | | height: 30px; |
| | | width: 30px; |
| | | border: solid 3px transparent; |
| | | position: absolute; |
| | | left: 50%; |
| | | margin-left: -15px; |
| | | border-radius: 50%; |
| | | -webkit-animation: jconfirm-spin 1s infinite linear; |
| | | animation: jconfirm-spin 1s infinite linear; |
| | | border-bottom-color: dodgerblue; |
| | | top: 50%; |
| | | margin-top: -15px; |
| | | z-index: 2; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box div.jconfirm-closeIcon { |
| | | height: 20px; |
| | | width: 20px; |
| | | position: absolute; |
| | | top: 10px; |
| | | right: 10px; |
| | | cursor: pointer; |
| | | opacity: .6; |
| | | text-align: center; |
| | | font-size: 27px !important; |
| | | line-height: 14px !important; |
| | | display: none; |
| | | z-index: 1; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box div.jconfirm-closeIcon:empty { |
| | | display: none; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box div.jconfirm-closeIcon .fa { |
| | | font-size: 16px; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box div.jconfirm-closeIcon .glyphicon { |
| | | font-size: 16px; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box div.jconfirm-closeIcon .zmdi { |
| | | font-size: 16px; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box div.jconfirm-closeIcon:hover { |
| | | opacity: 1; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box div.jconfirm-title-c { |
| | | display: block; |
| | | font-size: 22px; |
| | | line-height: 20px; |
| | | -webkit-user-select: none; |
| | | -moz-user-select: none; |
| | | -ms-user-select: none; |
| | | user-select: none; |
| | | cursor: default; |
| | | padding-bottom: 15px; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box div.jconfirm-title-c.jconfirm-hand { |
| | | cursor: move; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c { |
| | | font-size: inherit; |
| | | display: inline-block; |
| | | vertical-align: middle; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c i { |
| | | vertical-align: middle; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c:empty { |
| | | display: none; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-title { |
| | | -webkit-user-select: none; |
| | | -moz-user-select: none; |
| | | -ms-user-select: none; |
| | | user-select: none; |
| | | font-size: inherit; |
| | | font-family: inherit; |
| | | display: inline-block; |
| | | vertical-align: middle; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-title:empty { |
| | | display: none; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box div.jconfirm-content-pane { |
| | | margin-bottom: 15px; |
| | | height: auto; |
| | | -webkit-transition: height 0.4s ease-in; |
| | | transition: height 0.4s ease-in; |
| | | display: inline-block; |
| | | width: 100%; |
| | | position: relative; |
| | | overflow-x: hidden; |
| | | overflow-y: auto; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box div.jconfirm-content-pane.no-scroll { |
| | | overflow-y: hidden; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box div.jconfirm-content-pane::-webkit-scrollbar { |
| | | width: 3px; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box div.jconfirm-content-pane::-webkit-scrollbar-track { |
| | | background: rgba(0, 0, 0, 0.1); |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box div.jconfirm-content-pane::-webkit-scrollbar-thumb { |
| | | background: #666; |
| | | border-radius: 3px; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box div.jconfirm-content-pane .jconfirm-content { |
| | | overflow: auto; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box div.jconfirm-content-pane .jconfirm-content img { |
| | | max-width: 100%; |
| | | height: auto; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box div.jconfirm-content-pane .jconfirm-content:empty { |
| | | display: none; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box .jconfirm-buttons { |
| | | padding-bottom: 11px; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box .jconfirm-buttons > button { |
| | | margin-bottom: 4px; |
| | | margin-left: 2px; |
| | | margin-right: 2px; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box .jconfirm-buttons button { |
| | | display: inline-block; |
| | | padding: 6px 12px; |
| | | font-size: 14px; |
| | | font-weight: 400; |
| | | line-height: 1.42857143; |
| | | text-align: center; |
| | | white-space: nowrap; |
| | | vertical-align: middle; |
| | | -ms-touch-action: manipulation; |
| | | touch-action: manipulation; |
| | | cursor: pointer; |
| | | -webkit-user-select: none; |
| | | -moz-user-select: none; |
| | | -ms-user-select: none; |
| | | user-select: none; |
| | | border-radius: 4px; |
| | | min-height: 1em; |
| | | -webkit-transition: opacity 0.1s ease, background-color 0.1s ease, color 0.1s ease, background 0.1s ease, -webkit-box-shadow 0.1s ease; |
| | | transition: opacity 0.1s ease, background-color 0.1s ease, color 0.1s ease, background 0.1s ease, -webkit-box-shadow 0.1s ease; |
| | | transition: opacity 0.1s ease, background-color 0.1s ease, color 0.1s ease, box-shadow 0.1s ease, background 0.1s ease; |
| | | transition: opacity 0.1s ease, background-color 0.1s ease, color 0.1s ease, box-shadow 0.1s ease, background 0.1s ease, -webkit-box-shadow 0.1s ease; |
| | | -webkit-tap-highlight-color: transparent; |
| | | border: none; |
| | | background-image: none; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box .jconfirm-buttons button.btn-blue { |
| | | background-color: #3498db; |
| | | color: #FFF; |
| | | text-shadow: none; |
| | | -webkit-transition: background .2s; |
| | | transition: background .2s; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box .jconfirm-buttons button.btn-blue:hover { |
| | | background-color: #2980b9; |
| | | color: #FFF; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box .jconfirm-buttons button.btn-green { |
| | | background-color: #2ecc71; |
| | | color: #FFF; |
| | | text-shadow: none; |
| | | -webkit-transition: background .2s; |
| | | transition: background .2s; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box .jconfirm-buttons button.btn-green:hover { |
| | | background-color: #27ae60; |
| | | color: #FFF; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box .jconfirm-buttons button.btn-red { |
| | | background-color: #e74c3c; |
| | | color: #FFF; |
| | | text-shadow: none; |
| | | -webkit-transition: background .2s; |
| | | transition: background .2s; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box .jconfirm-buttons button.btn-red:hover { |
| | | background-color: #c0392b; |
| | | color: #FFF; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box .jconfirm-buttons button.btn-orange { |
| | | background-color: #f1c40f; |
| | | color: #FFF; |
| | | text-shadow: none; |
| | | -webkit-transition: background .2s; |
| | | transition: background .2s; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box .jconfirm-buttons button.btn-orange:hover { |
| | | background-color: #f39c12; |
| | | color: #FFF; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box .jconfirm-buttons button.btn-default { |
| | | background-color: #ecf0f1; |
| | | color: #000; |
| | | text-shadow: none; |
| | | -webkit-transition: background .2s; |
| | | transition: background .2s; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box .jconfirm-buttons button.btn-default:hover { |
| | | background-color: #bdc3c7; |
| | | color: #000; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box .jconfirm-buttons button.btn-purple { |
| | | background-color: #9b59b6; |
| | | color: #FFF; |
| | | text-shadow: none; |
| | | -webkit-transition: background .2s; |
| | | transition: background .2s; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box .jconfirm-buttons button.btn-purple:hover { |
| | | background-color: #8e44ad; |
| | | color: #FFF; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box .jconfirm-buttons button.btn-dark { |
| | | background-color: #34495e; |
| | | color: #FFF; |
| | | text-shadow: none; |
| | | -webkit-transition: background .2s; |
| | | transition: background .2s; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box .jconfirm-buttons button.btn-dark:hover { |
| | | background-color: #2c3e50; |
| | | color: #FFF; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box.jconfirm-type-red .jconfirm-title-c .jconfirm-icon-c { |
| | | color: #e74c3c !important; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box.jconfirm-type-blue .jconfirm-title-c .jconfirm-icon-c { |
| | | color: #3498db !important; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box.jconfirm-type-green .jconfirm-title-c .jconfirm-icon-c { |
| | | color: #2ecc71 !important; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box.jconfirm-type-purple .jconfirm-title-c .jconfirm-icon-c { |
| | | color: #9b59b6 !important; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box.jconfirm-type-orange .jconfirm-title-c .jconfirm-icon-c { |
| | | color: #f1c40f !important; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box.jconfirm-type-dark .jconfirm-title-c .jconfirm-icon-c { |
| | | color: #34495e !important; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-clear { |
| | | clear: both; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-rtl { |
| | | direction: rtl; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-rtl div.jconfirm-closeIcon { |
| | | left: 5px; |
| | | right: auto; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-white .jconfirm-bg, |
| | | .jconfirm.jconfirm-light .jconfirm-bg { |
| | | background-color: #444; |
| | | opacity: .2; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-white .jconfirm-box, |
| | | .jconfirm.jconfirm-light .jconfirm-box { |
| | | -webkit-box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2); |
| | | box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2); |
| | | border-radius: 5px; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-white .jconfirm-box .jconfirm-title-c .jconfirm-icon-c, |
| | | .jconfirm.jconfirm-light .jconfirm-box .jconfirm-title-c .jconfirm-icon-c { |
| | | margin-right: 8px; |
| | | margin-left: 0px; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-white .jconfirm-box .jconfirm-buttons, |
| | | .jconfirm.jconfirm-light .jconfirm-box .jconfirm-buttons { |
| | | float: right; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-white .jconfirm-box .jconfirm-buttons button, |
| | | .jconfirm.jconfirm-light .jconfirm-box .jconfirm-buttons button { |
| | | text-transform: uppercase; |
| | | font-size: 14px; |
| | | font-weight: bold; |
| | | text-shadow: none; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-white .jconfirm-box .jconfirm-buttons button.btn-default, |
| | | .jconfirm.jconfirm-light .jconfirm-box .jconfirm-buttons button.btn-default { |
| | | -webkit-box-shadow: none; |
| | | box-shadow: none; |
| | | color: #333; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-white .jconfirm-box .jconfirm-buttons button.btn-default:hover, |
| | | .jconfirm.jconfirm-light .jconfirm-box .jconfirm-buttons button.btn-default:hover { |
| | | background: #ddd; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-white.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c, |
| | | .jconfirm.jconfirm-light.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c { |
| | | margin-left: 8px; |
| | | margin-right: 0px; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-black .jconfirm-bg, |
| | | .jconfirm.jconfirm-dark .jconfirm-bg { |
| | | background-color: darkslategray; |
| | | opacity: .4; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-black .jconfirm-box, |
| | | .jconfirm.jconfirm-dark .jconfirm-box { |
| | | -webkit-box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2); |
| | | box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2); |
| | | background: #444; |
| | | border-radius: 5px; |
| | | color: white; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-black .jconfirm-box .jconfirm-title-c .jconfirm-icon-c, |
| | | .jconfirm.jconfirm-dark .jconfirm-box .jconfirm-title-c .jconfirm-icon-c { |
| | | margin-right: 8px; |
| | | margin-left: 0px; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-black .jconfirm-box .jconfirm-buttons, |
| | | .jconfirm.jconfirm-dark .jconfirm-box .jconfirm-buttons { |
| | | float: right; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-black .jconfirm-box .jconfirm-buttons button, |
| | | .jconfirm.jconfirm-dark .jconfirm-box .jconfirm-buttons button { |
| | | border: none; |
| | | background-image: none; |
| | | text-transform: uppercase; |
| | | font-size: 14px; |
| | | font-weight: bold; |
| | | text-shadow: none; |
| | | -webkit-transition: background .1s; |
| | | transition: background .1s; |
| | | color: white; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-black .jconfirm-box .jconfirm-buttons button.btn-default, |
| | | .jconfirm.jconfirm-dark .jconfirm-box .jconfirm-buttons button.btn-default { |
| | | -webkit-box-shadow: none; |
| | | box-shadow: none; |
| | | color: #fff; |
| | | background: none; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-black .jconfirm-box .jconfirm-buttons button.btn-default:hover, |
| | | .jconfirm.jconfirm-dark .jconfirm-box .jconfirm-buttons button.btn-default:hover { |
| | | background: #666; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-black.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c, |
| | | .jconfirm.jconfirm-dark.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c { |
| | | margin-left: 8px; |
| | | margin-right: 0px; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box.hilight.jconfirm-hilight-shake { |
| | | -webkit-animation: shake 0.82s cubic-bezier(0.36, 0.07, 0.19, 0.97) both; |
| | | animation: shake 0.82s cubic-bezier(0.36, 0.07, 0.19, 0.97) both; |
| | | -webkit-transform: translate3d(0, 0, 0); |
| | | transform: translate3d(0, 0, 0); |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box.hilight.jconfirm-hilight-glow { |
| | | -webkit-animation: glow 0.82s cubic-bezier(0.36, 0.07, 0.19, 0.97) both; |
| | | animation: glow 0.82s cubic-bezier(0.36, 0.07, 0.19, 0.97) both; |
| | | -webkit-transform: translate3d(0, 0, 0); |
| | | transform: translate3d(0, 0, 0); |
| | | } |
| | | |
| | | @-webkit-keyframes shake { |
| | | 10%, |
| | | 90% { |
| | | -webkit-transform: translate3d(-2px, 0, 0); |
| | | transform: translate3d(-2px, 0, 0); |
| | | } |
| | | 20%, |
| | | 80% { |
| | | -webkit-transform: translate3d(4px, 0, 0); |
| | | transform: translate3d(4px, 0, 0); |
| | | } |
| | | 30%, |
| | | 50%, |
| | | 70% { |
| | | -webkit-transform: translate3d(-8px, 0, 0); |
| | | transform: translate3d(-8px, 0, 0); |
| | | } |
| | | 40%, |
| | | 60% { |
| | | -webkit-transform: translate3d(8px, 0, 0); |
| | | transform: translate3d(8px, 0, 0); |
| | | } |
| | | } |
| | | |
| | | @keyframes shake { |
| | | 10%, |
| | | 90% { |
| | | -webkit-transform: translate3d(-2px, 0, 0); |
| | | transform: translate3d(-2px, 0, 0); |
| | | } |
| | | 20%, |
| | | 80% { |
| | | -webkit-transform: translate3d(4px, 0, 0); |
| | | transform: translate3d(4px, 0, 0); |
| | | } |
| | | 30%, |
| | | 50%, |
| | | 70% { |
| | | -webkit-transform: translate3d(-8px, 0, 0); |
| | | transform: translate3d(-8px, 0, 0); |
| | | } |
| | | 40%, |
| | | 60% { |
| | | -webkit-transform: translate3d(8px, 0, 0); |
| | | transform: translate3d(8px, 0, 0); |
| | | } |
| | | } |
| | | |
| | | @-webkit-keyframes glow { |
| | | 0%, |
| | | 100% { |
| | | -webkit-box-shadow: 0 0 0px red; |
| | | box-shadow: 0 0 0px red; |
| | | } |
| | | 50% { |
| | | -webkit-box-shadow: 0 0 30px red; |
| | | box-shadow: 0 0 30px red; |
| | | } |
| | | } |
| | | |
| | | @keyframes glow { |
| | | 0%, |
| | | 100% { |
| | | -webkit-box-shadow: 0 0 0px red; |
| | | box-shadow: 0 0 0px red; |
| | | } |
| | | 50% { |
| | | -webkit-box-shadow: 0 0 30px red; |
| | | box-shadow: 0 0 30px red; |
| | | } |
| | | } |
| | | |
| | | /*Transition rules*/ |
| | | .jconfirm { |
| | | -webkit-perspective: 400px; |
| | | perspective: 400px; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box { |
| | | opacity: 1; |
| | | -webkit-transition-property: all; |
| | | transition-property: all; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box.jconfirm-animation-top, |
| | | .jconfirm .jconfirm-box.jconfirm-animation-left, |
| | | .jconfirm .jconfirm-box.jconfirm-animation-right, |
| | | .jconfirm .jconfirm-box.jconfirm-animation-bottom, |
| | | .jconfirm .jconfirm-box.jconfirm-animation-opacity, |
| | | .jconfirm .jconfirm-box.jconfirm-animation-zoom, |
| | | .jconfirm .jconfirm-box.jconfirm-animation-scale, |
| | | .jconfirm .jconfirm-box.jconfirm-animation-none, |
| | | .jconfirm .jconfirm-box.jconfirm-animation-rotate, |
| | | .jconfirm .jconfirm-box.jconfirm-animation-rotatex, |
| | | .jconfirm .jconfirm-box.jconfirm-animation-rotatey, |
| | | .jconfirm .jconfirm-box.jconfirm-animation-scaley, |
| | | .jconfirm .jconfirm-box.jconfirm-animation-scalex { |
| | | opacity: 0; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box.jconfirm-animation-rotate { |
| | | -webkit-transform: rotate(90deg); |
| | | transform: rotate(90deg); |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box.jconfirm-animation-rotatex { |
| | | -webkit-transform: rotateX(90deg); |
| | | transform: rotateX(90deg); |
| | | -webkit-transform-origin: center; |
| | | transform-origin: center; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box.jconfirm-animation-rotatexr { |
| | | -webkit-transform: rotateX(-90deg); |
| | | transform: rotateX(-90deg); |
| | | -webkit-transform-origin: center; |
| | | transform-origin: center; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box.jconfirm-animation-rotatey { |
| | | -webkit-transform: rotatey(90deg); |
| | | transform: rotatey(90deg); |
| | | -webkit-transform-origin: center; |
| | | transform-origin: center; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box.jconfirm-animation-rotateyr { |
| | | -webkit-transform: rotatey(-90deg); |
| | | transform: rotatey(-90deg); |
| | | -webkit-transform-origin: center; |
| | | transform-origin: center; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box.jconfirm-animation-scaley { |
| | | -webkit-transform: scaley(1.5); |
| | | transform: scaley(1.5); |
| | | -webkit-transform-origin: center; |
| | | transform-origin: center; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box.jconfirm-animation-scalex { |
| | | -webkit-transform: scalex(1.5); |
| | | transform: scalex(1.5); |
| | | -webkit-transform-origin: center; |
| | | transform-origin: center; |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box.jconfirm-animation-top { |
| | | -webkit-transform: translate(0px, -100px); |
| | | transform: translate(0px, -100px); |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box.jconfirm-animation-left { |
| | | -webkit-transform: translate(-100px, 0px); |
| | | transform: translate(-100px, 0px); |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box.jconfirm-animation-right { |
| | | -webkit-transform: translate(100px, 0px); |
| | | transform: translate(100px, 0px); |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box.jconfirm-animation-bottom { |
| | | -webkit-transform: translate(0px, 100px); |
| | | transform: translate(0px, 100px); |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box.jconfirm-animation-zoom { |
| | | -webkit-transform: scale(1.2); |
| | | transform: scale(1.2); |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box.jconfirm-animation-scale { |
| | | -webkit-transform: scale(0.5); |
| | | transform: scale(0.5); |
| | | } |
| | | |
| | | .jconfirm .jconfirm-box.jconfirm-animation-none { |
| | | visibility: hidden; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-supervan .jconfirm-bg { |
| | | background-color: rgba(54, 70, 93, 0.95); |
| | | } |
| | | |
| | | .jconfirm.jconfirm-supervan .jconfirm-box { |
| | | background-color: transparent; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-blue { |
| | | border: none; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-green { |
| | | border: none; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-red { |
| | | border: none; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-orange { |
| | | border: none; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-purple { |
| | | border: none; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-dark { |
| | | border: none; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-closeIcon { |
| | | color: white; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-title-c { |
| | | text-align: center; |
| | | color: white; |
| | | font-size: 28px; |
| | | font-weight: normal; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-title-c > * { |
| | | padding-bottom: 25px; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c { |
| | | margin-right: 8px; |
| | | margin-left: 0px; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-content-pane { |
| | | margin-bottom: 25px; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-content { |
| | | text-align: center; |
| | | color: white; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-supervan .jconfirm-box .jconfirm-buttons { |
| | | text-align: center; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-supervan .jconfirm-box .jconfirm-buttons button { |
| | | font-size: 16px; |
| | | border-radius: 2px; |
| | | background: #303f53; |
| | | text-shadow: none; |
| | | border: none; |
| | | color: white; |
| | | padding: 10px; |
| | | min-width: 100px; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-supervan.jconfirm-rtl .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c { |
| | | margin-left: 8px; |
| | | margin-right: 0px; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-material .jconfirm-bg { |
| | | background-color: rgba(0, 0, 0, 0.67); |
| | | } |
| | | |
| | | .jconfirm.jconfirm-material .jconfirm-box { |
| | | background-color: white; |
| | | -webkit-box-shadow: 0 7px 8px -4px rgba(0, 0, 0, 0.2), 0 13px 19px 2px rgba(0, 0, 0, 0.14), 0 5px 24px 4px rgba(0, 0, 0, 0.12); |
| | | box-shadow: 0 7px 8px -4px rgba(0, 0, 0, 0.2), 0 13px 19px 2px rgba(0, 0, 0, 0.14), 0 5px 24px 4px rgba(0, 0, 0, 0.12); |
| | | padding: 30px 25px 10px 25px; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-material .jconfirm-box .jconfirm-title-c .jconfirm-icon-c { |
| | | margin-right: 8px; |
| | | margin-left: 0px; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-material .jconfirm-box div.jconfirm-closeIcon { |
| | | color: rgba(0, 0, 0, 0.87); |
| | | } |
| | | |
| | | .jconfirm.jconfirm-material .jconfirm-box div.jconfirm-title-c { |
| | | color: rgba(0, 0, 0, 0.87); |
| | | font-size: 22px; |
| | | font-weight: bold; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-material .jconfirm-box div.jconfirm-content { |
| | | color: rgba(0, 0, 0, 0.87); |
| | | } |
| | | |
| | | .jconfirm.jconfirm-material .jconfirm-box .jconfirm-buttons { |
| | | text-align: right; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-material .jconfirm-box .jconfirm-buttons button { |
| | | text-transform: uppercase; |
| | | font-weight: 500; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-material.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c { |
| | | margin-left: 8px; |
| | | margin-right: 0px; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-bootstrap .jconfirm-bg { |
| | | background-color: rgba(0, 0, 0, 0.21); |
| | | } |
| | | |
| | | .jconfirm.jconfirm-bootstrap .jconfirm-box { |
| | | background-color: white; |
| | | -webkit-box-shadow: 0 3px 8px 0px rgba(0, 0, 0, 0.2); |
| | | box-shadow: 0 3px 8px 0px rgba(0, 0, 0, 0.2); |
| | | border: solid 1px rgba(0, 0, 0, 0.4); |
| | | padding: 15px 0 0; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-bootstrap .jconfirm-box .jconfirm-title-c .jconfirm-icon-c { |
| | | margin-right: 8px; |
| | | margin-left: 0px; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-bootstrap .jconfirm-box div.jconfirm-closeIcon { |
| | | color: rgba(0, 0, 0, 0.87); |
| | | } |
| | | |
| | | .jconfirm.jconfirm-bootstrap .jconfirm-box div.jconfirm-title-c { |
| | | color: rgba(0, 0, 0, 0.87); |
| | | font-size: 22px; |
| | | font-weight: bold; |
| | | padding-left: 15px; |
| | | padding-right: 15px; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-bootstrap .jconfirm-box div.jconfirm-content { |
| | | color: rgba(0, 0, 0, 0.87); |
| | | padding: 0px 15px; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-bootstrap .jconfirm-box .jconfirm-buttons { |
| | | text-align: right; |
| | | padding: 10px; |
| | | margin: -5px 0 0px; |
| | | border-top: solid 1px #ddd; |
| | | overflow: hidden; |
| | | border-radius: 0 0 4px 4px; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-bootstrap .jconfirm-box .jconfirm-buttons button { |
| | | font-weight: 500; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-bootstrap.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c { |
| | | margin-left: 8px; |
| | | margin-right: 0px; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-modern .jconfirm-bg { |
| | | background-color: slategray; |
| | | opacity: .6; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-modern .jconfirm-box { |
| | | background-color: white; |
| | | -webkit-box-shadow: 0 7px 8px -4px rgba(0, 0, 0, 0.2), 0 13px 19px 2px rgba(0, 0, 0, 0.14), 0 5px 24px 4px rgba(0, 0, 0, 0.12); |
| | | box-shadow: 0 7px 8px -4px rgba(0, 0, 0, 0.2), 0 13px 19px 2px rgba(0, 0, 0, 0.14), 0 5px 24px 4px rgba(0, 0, 0, 0.12); |
| | | padding: 30px 30px 15px; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-modern .jconfirm-box div.jconfirm-closeIcon { |
| | | color: rgba(0, 0, 0, 0.87); |
| | | top: 15px; |
| | | right: 15px; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-modern .jconfirm-box div.jconfirm-title-c { |
| | | color: rgba(0, 0, 0, 0.87); |
| | | font-size: 24px; |
| | | font-weight: bold; |
| | | text-align: center; |
| | | margin-bottom: 10px; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-modern .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c { |
| | | -webkit-transition: -webkit-transform .5s; |
| | | transition: -webkit-transform .5s; |
| | | transition: transform .5s; |
| | | transition: transform .5s, -webkit-transform .5s; |
| | | -webkit-transform: scale(0); |
| | | transform: scale(0); |
| | | display: block; |
| | | margin-right: 0px; |
| | | margin-left: 0px; |
| | | margin-bottom: 10px; |
| | | font-size: 69px; |
| | | color: #aaa; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-modern .jconfirm-box div.jconfirm-content { |
| | | text-align: center; |
| | | font-size: 15px; |
| | | color: #777; |
| | | margin-bottom: 25px; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-modern .jconfirm-box .jconfirm-buttons { |
| | | text-align: center; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-modern .jconfirm-box .jconfirm-buttons button { |
| | | font-weight: bold; |
| | | text-transform: uppercase; |
| | | -webkit-transition: background .1s; |
| | | transition: background .1s; |
| | | padding: 10px 20px; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-modern .jconfirm-box .jconfirm-buttons button + button { |
| | | margin-left: 4px; |
| | | } |
| | | |
| | | .jconfirm.jconfirm-modern.jconfirm-open .jconfirm-box .jconfirm-title-c .jconfirm-icon-c { |
| | | -webkit-transform: scale(1); |
| | | transform: scale(1); |
| | | } |
New file |
| | |
| | | /*! |
| | | * jquery-confirm v3.3.4 (http://craftpip.github.io/jquery-confirm/) |
| | | * Author: boniface pereira |
| | | * Website: www.craftpip.com |
| | | * Contact: hey@craftpip.com |
| | | * |
| | | * Copyright 2013-2019 jquery-confirm |
| | | * Licensed under MIT (https://github.com/craftpip/jquery-confirm/blob/master/LICENSE) |
| | | */ |
| | | @blue: #3498db; |
| | | @blueHover: #2980b9; |
| | | @green: #2ecc71; |
| | | @greenHover: #27ae60; |
| | | @red: #e74c3c; |
| | | @redHover: #c0392b; |
| | | @orange: #f1c40f; |
| | | @orangeHover: #f39c12; |
| | | @purple: #9b59b6; |
| | | @purpleHover: #8e44ad; |
| | | @default: #ecf0f1; |
| | | @defaultHover: #bdc3c7; |
| | | @dark: #34495e; |
| | | @darkHover: #2c3e50; |
| | | |
| | | @keyframes jconfirm-spin { |
| | | from { |
| | | transform: rotate(0deg); |
| | | } |
| | | to { |
| | | transform: rotate(360deg); |
| | | } |
| | | } |
| | | |
| | | body[class*=jconfirm-no-scroll-] { |
| | | overflow: hidden !important; |
| | | } |
| | | |
| | | .jconfirm { |
| | | position: fixed; |
| | | top: 0; |
| | | left: 0; |
| | | right: 0; |
| | | bottom: 0; |
| | | z-index: 99999999; |
| | | font-family: inherit; |
| | | overflow: hidden; |
| | | |
| | | .jconfirm-bg { |
| | | position: fixed; |
| | | top: 0; |
| | | left: 0; |
| | | right: 0; |
| | | bottom: 0; |
| | | transition: opacity .4s; |
| | | |
| | | &.jconfirm-bg-h { |
| | | opacity: 0 !important; |
| | | } |
| | | } |
| | | .jconfirm-scrollpane { |
| | | //overflow-y: auto; |
| | | perspective: 500px; |
| | | perspective-origin: center; |
| | | |
| | | display: table; |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | .jconfirm-row { |
| | | display: table-row; |
| | | width: 100%; |
| | | } |
| | | .jconfirm-cell { |
| | | //height: 100%; |
| | | display: table-cell; |
| | | vertical-align: middle; |
| | | } |
| | | .jconfirm-holder { |
| | | max-height: 100%; |
| | | padding: 50px 0; |
| | | } |
| | | .jconfirm-box-container { |
| | | transition: transform; |
| | | |
| | | &.jconfirm-no-transition { |
| | | transition: none !important; |
| | | } |
| | | } |
| | | .jconfirm-box { |
| | | background: white; |
| | | border-radius: 4px; |
| | | position: relative; |
| | | outline: none; |
| | | padding: 15px 15px 0; |
| | | overflow: hidden; |
| | | margin-left: auto; |
| | | margin-right: auto; |
| | | |
| | | @keyframes type-blue { |
| | | 1%, 100% { |
| | | border-color: @blue; |
| | | } |
| | | 50% { |
| | | border-color: lighten(@blue, 10%); |
| | | } |
| | | } |
| | | @keyframes type-green { |
| | | 1%, 100% { |
| | | border-color: @green; |
| | | } |
| | | 50% { |
| | | border-color: lighten(@green, 10%); |
| | | } |
| | | } |
| | | @keyframes type-red { |
| | | 1%, 100% { |
| | | border-color: @red; |
| | | } |
| | | 50% { |
| | | border-color: lighten(@red, 10%); |
| | | } |
| | | } |
| | | @keyframes type-orange { |
| | | 1%, 100% { |
| | | border-color: @orange; |
| | | } |
| | | 50% { |
| | | border-color: lighten(@orange, 10%); |
| | | } |
| | | } |
| | | @keyframes type-purple { |
| | | 1%, 100% { |
| | | border-color: @purple; |
| | | } |
| | | 50% { |
| | | border-color: lighten(@purple, 10%); |
| | | } |
| | | } |
| | | @keyframes type-dark { |
| | | 1%, 100% { |
| | | border-color: @dark; |
| | | } |
| | | 50% { |
| | | border-color: lighten(@dark, 10%); |
| | | } |
| | | } |
| | | &.jconfirm-type-animated { |
| | | animation-duration: 2s; |
| | | animation-iteration-count: infinite; |
| | | } |
| | | &.jconfirm-type-blue { |
| | | border-top: solid 7px @blue; |
| | | animation-name: type-blue; |
| | | } |
| | | &.jconfirm-type-green { |
| | | border-top: solid 7px @green; |
| | | animation-name: type-green; |
| | | } |
| | | &.jconfirm-type-red { |
| | | border-top: solid 7px @red; |
| | | animation-name: type-red; |
| | | } |
| | | &.jconfirm-type-orange { |
| | | border-top: solid 7px @orange; |
| | | animation-name: type-orange; |
| | | } |
| | | &.jconfirm-type-purple { |
| | | border-top: solid 7px @purple; |
| | | animation-name: type-purple; |
| | | } |
| | | &.jconfirm-type-dark { |
| | | border-top: solid 7px @dark; |
| | | animation-name: type-dark; |
| | | } |
| | | &.loading { |
| | | height: 120px; |
| | | |
| | | &:before { |
| | | content: ''; |
| | | position: absolute; |
| | | left: 0; |
| | | background: white; |
| | | right: 0; |
| | | top: 0; |
| | | bottom: 0; |
| | | border-radius: 10px; |
| | | z-index: 1; |
| | | } |
| | | &:after { |
| | | opacity: 0.6; |
| | | content: ''; |
| | | height: 30px; |
| | | width: 30px; |
| | | border: solid 3px transparent; |
| | | position: absolute; |
| | | left: 50%; |
| | | margin-left: -15px; |
| | | border-radius: 50%; |
| | | animation: jconfirm-spin 1s infinite linear; |
| | | border-bottom-color: dodgerblue; |
| | | top: 50%; |
| | | margin-top: -15px; |
| | | z-index: 2; |
| | | } |
| | | } |
| | | |
| | | div.jconfirm-closeIcon { |
| | | height: 20px; |
| | | width: 20px; |
| | | position: absolute; |
| | | top: 10px; |
| | | right: 10px; |
| | | cursor: pointer; |
| | | opacity: .6; |
| | | text-align: center; |
| | | font-size: 27px !important; |
| | | line-height: 14px !important; |
| | | display: none; |
| | | z-index: 1; |
| | | |
| | | &:empty { |
| | | display: none; |
| | | } |
| | | |
| | | .fa { |
| | | font-size: 16px; |
| | | } |
| | | .glyphicon { |
| | | font-size: 16px; |
| | | } |
| | | .zmdi { |
| | | font-size: 16px; |
| | | } |
| | | |
| | | &:hover { |
| | | opacity: 1; |
| | | } |
| | | } |
| | | div.jconfirm-title-c { |
| | | display: block; |
| | | font-size: 22px; |
| | | line-height: 20px; |
| | | user-select: none; |
| | | cursor: default; |
| | | padding-bottom: 15px; |
| | | |
| | | &.jconfirm-hand { |
| | | cursor: move; |
| | | } |
| | | .jconfirm-icon-c { |
| | | font-size: inherit; |
| | | //padding-bottom: 15px; |
| | | display: inline-block; |
| | | vertical-align: middle; |
| | | i { |
| | | vertical-align: middle; |
| | | } |
| | | &:empty { |
| | | display: none; |
| | | } |
| | | } |
| | | .jconfirm-title { |
| | | user-select: none; |
| | | font-size: inherit; |
| | | font-family: inherit; |
| | | display: inline-block; |
| | | vertical-align: middle; |
| | | //padding-bottom: 15px; |
| | | &:empty { |
| | | display: none; |
| | | } |
| | | } |
| | | } |
| | | |
| | | div.jconfirm-content-pane { |
| | | margin-bottom: 15px; |
| | | height: auto; |
| | | transition: height .4s ease-in; |
| | | display: inline-block; |
| | | width: 100%; |
| | | position: relative; |
| | | overflow-x: hidden; |
| | | overflow-y: auto; |
| | | |
| | | &.no-scroll { |
| | | overflow-y: hidden; |
| | | } |
| | | &::-webkit-scrollbar { |
| | | width: 3px; |
| | | } |
| | | |
| | | &::-webkit-scrollbar-track { |
| | | background: rgba(0, 0, 0, .1); |
| | | } |
| | | |
| | | &::-webkit-scrollbar-thumb { |
| | | background: #666; |
| | | border-radius: 3px; |
| | | } |
| | | |
| | | .jconfirm-content { |
| | | overflow: auto; |
| | | |
| | | img { |
| | | max-width: 100%; |
| | | height: auto; |
| | | } |
| | | &:empty { |
| | | display: none; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .jconfirm-buttons { |
| | | padding-bottom: 11px; |
| | | > button { |
| | | margin-bottom: 4px; |
| | | margin-left: 2px; |
| | | margin-right: 2px; |
| | | } |
| | | |
| | | button { |
| | | display: inline-block; |
| | | padding: 6px 12px; |
| | | font-size: 14px; |
| | | font-weight: 400; |
| | | line-height: 1.42857143; |
| | | text-align: center; |
| | | white-space: nowrap; |
| | | vertical-align: middle; |
| | | -ms-touch-action: manipulation; |
| | | touch-action: manipulation; |
| | | cursor: pointer; |
| | | -webkit-user-select: none; |
| | | -moz-user-select: none; |
| | | -ms-user-select: none; |
| | | user-select: none; |
| | | border-radius: 4px; |
| | | min-height: 1em; |
| | | //outline: blue; |
| | | //user-select: none; |
| | | transition: opacity .1s ease, background-color .1s ease, color .1s ease, box-shadow .1s ease, background .1s ease; |
| | | -webkit-tap-highlight-color: transparent; |
| | | border: none; |
| | | background-image: none; |
| | | |
| | | &.btn-blue { |
| | | background-color: @blue; |
| | | color: #FFF; |
| | | text-shadow: none; |
| | | transition: background .2s; |
| | | &:hover { |
| | | background-color: @blueHover; |
| | | color: #FFF; |
| | | } |
| | | } |
| | | |
| | | &.btn-green { |
| | | background-color: @green; |
| | | color: #FFF; |
| | | text-shadow: none; |
| | | transition: background .2s; |
| | | &:hover { |
| | | background-color: @greenHover; |
| | | color: #FFF; |
| | | } |
| | | } |
| | | |
| | | &.btn-red { |
| | | background-color: @red; |
| | | color: #FFF; |
| | | text-shadow: none; |
| | | transition: background .2s; |
| | | &:hover { |
| | | background-color: @redHover; |
| | | color: #FFF; |
| | | } |
| | | } |
| | | |
| | | &.btn-orange { |
| | | background-color: @orange; |
| | | color: #FFF; |
| | | text-shadow: none; |
| | | transition: background .2s; |
| | | &:hover { |
| | | background-color: @orangeHover; |
| | | color: #FFF; |
| | | } |
| | | } |
| | | |
| | | &.btn-default { |
| | | background-color: @default; |
| | | color: #000; |
| | | text-shadow: none; |
| | | transition: background .2s; |
| | | &:hover { |
| | | background-color: @defaultHover; |
| | | color: #000; |
| | | } |
| | | } |
| | | |
| | | &.btn-purple { |
| | | background-color: @purple; |
| | | color: #FFF; |
| | | text-shadow: none; |
| | | transition: background .2s; |
| | | &:hover { |
| | | background-color: @purpleHover; |
| | | color: #FFF; |
| | | } |
| | | } |
| | | |
| | | &.btn-dark { |
| | | background-color: @dark; |
| | | color: #FFF; |
| | | text-shadow: none; |
| | | transition: background .2s; |
| | | &:hover { |
| | | background-color: @darkHover; |
| | | color: #FFF; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | &.jconfirm-type-red .jconfirm-title-c .jconfirm-icon-c { |
| | | color: @red !important; |
| | | } |
| | | &.jconfirm-type-blue .jconfirm-title-c .jconfirm-icon-c { |
| | | color: @blue !important; |
| | | } |
| | | &.jconfirm-type-green .jconfirm-title-c .jconfirm-icon-c { |
| | | color: @green !important; |
| | | } |
| | | &.jconfirm-type-purple .jconfirm-title-c .jconfirm-icon-c { |
| | | color: @purple !important; |
| | | } |
| | | &.jconfirm-type-orange .jconfirm-title-c .jconfirm-icon-c { |
| | | color: @orange !important; |
| | | } |
| | | &.jconfirm-type-dark .jconfirm-title-c .jconfirm-icon-c { |
| | | color: @dark !important; |
| | | } |
| | | } |
| | | |
| | | .jconfirm-clear { |
| | | clear: both; |
| | | } |
| | | |
| | | &.jconfirm-rtl { |
| | | direction: rtl; |
| | | div.jconfirm-closeIcon { |
| | | left: 5px; |
| | | right: auto; |
| | | } |
| | | } |
| | | |
| | | &.jconfirm-white, &.jconfirm-light { |
| | | .jconfirm-bg { |
| | | background-color: #444; |
| | | opacity: .2; |
| | | } |
| | | .jconfirm-box { |
| | | box-shadow: 0 2px 6px rgba(0, 0, 0, .2); |
| | | border-radius: 5px; |
| | | |
| | | .jconfirm-title-c .jconfirm-icon-c { |
| | | margin-right: 8px; |
| | | margin-left: 0px; |
| | | } |
| | | .jconfirm-buttons { |
| | | float: right; |
| | | |
| | | button { |
| | | text-transform: uppercase; |
| | | font-size: 14px; |
| | | font-weight: bold; |
| | | text-shadow: none; |
| | | } |
| | | button.btn-default { |
| | | box-shadow: none; |
| | | color: #333; |
| | | |
| | | &:hover { |
| | | background: #ddd; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | &.jconfirm-rtl { |
| | | .jconfirm-title-c .jconfirm-icon-c { |
| | | margin-left: 8px; |
| | | margin-right: 0px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | &.jconfirm-black, &.jconfirm-dark { |
| | | .jconfirm-bg { |
| | | background-color: darkslategray; |
| | | opacity: .4; |
| | | } |
| | | .jconfirm-box { |
| | | box-shadow: 0 2px 6px rgba(0, 0, 0, .2); |
| | | background: #444; |
| | | border-radius: 5px; |
| | | color: white; |
| | | |
| | | .jconfirm-title-c .jconfirm-icon-c { |
| | | margin-right: 8px; |
| | | margin-left: 0px; |
| | | } |
| | | |
| | | .jconfirm-buttons { |
| | | float: right; |
| | | |
| | | button { |
| | | border: none; |
| | | background-image: none; |
| | | text-transform: uppercase; |
| | | font-size: 14px; |
| | | font-weight: bold; |
| | | text-shadow: none; |
| | | transition: background .1s; |
| | | color: white; |
| | | } |
| | | button.btn-default { |
| | | box-shadow: none; |
| | | color: #fff; |
| | | background: none; |
| | | |
| | | &:hover { |
| | | background: #666; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | &.jconfirm-rtl { |
| | | .jconfirm-title-c .jconfirm-icon-c { |
| | | margin-left: 8px; |
| | | margin-right: 0px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .jconfirm-box.hilight { |
| | | &.jconfirm-hilight-shake { |
| | | animation: shake 0.82s cubic-bezier(.36, .07, .19, .97) both; |
| | | transform: translate3d(0, 0, 0); |
| | | } |
| | | &.jconfirm-hilight-glow { |
| | | animation: glow 0.82s cubic-bezier(.36, .07, .19, .97) both; |
| | | transform: translate3d(0, 0, 0); |
| | | } |
| | | } |
| | | } |
| | | |
| | | @keyframes shake { |
| | | 10%, 90% { |
| | | transform: translate3d(-2px, 0, 0); |
| | | } |
| | | 20%, 80% { |
| | | transform: translate3d(4px, 0, 0); |
| | | } |
| | | 30%, 50%, 70% { |
| | | transform: translate3d(-8px, 0, 0); |
| | | } |
| | | 40%, 60% { |
| | | transform: translate3d(8px, 0, 0); |
| | | } |
| | | } |
| | | |
| | | @keyframes glow { |
| | | 0%, 100% { |
| | | box-shadow: 0 0 0px red; |
| | | } |
| | | 50% { |
| | | box-shadow: 0 0 30px red; |
| | | } |
| | | } |
| | | |
| | | /*Transition rules*/ |
| | | .jconfirm { |
| | | perspective: 400px; |
| | | |
| | | .jconfirm-box { |
| | | opacity: 1; |
| | | transition-property: all; |
| | | |
| | | &.jconfirm-animation-top, &.jconfirm-animation-left, &.jconfirm-animation-right, &.jconfirm-animation-bottom, &.jconfirm-animation-opacity, &.jconfirm-animation-zoom, &.jconfirm-animation-scale, &.jconfirm-animation-none, &.jconfirm-animation-rotate, &.jconfirm-animation-rotatex, &.jconfirm-animation-rotatey, &.jconfirm-animation-scaley, &.jconfirm-animation-scalex { |
| | | opacity: 0; |
| | | } |
| | | &.jconfirm-animation-rotate { |
| | | transform: rotate(90deg); |
| | | } |
| | | &.jconfirm-animation-rotatex { |
| | | transform: rotateX(90deg); |
| | | transform-origin: center; |
| | | } |
| | | &.jconfirm-animation-rotatexr { |
| | | transform: rotateX(-90deg); |
| | | transform-origin: center; |
| | | } |
| | | &.jconfirm-animation-rotatey { |
| | | transform: rotatey(90deg); |
| | | transform-origin: center; |
| | | } |
| | | &.jconfirm-animation-rotateyr { |
| | | transform: rotatey(-90deg); |
| | | transform-origin: center; |
| | | } |
| | | &.jconfirm-animation-scaley { |
| | | transform: scaley(1.5); |
| | | transform-origin: center; |
| | | } |
| | | &.jconfirm-animation-scalex { |
| | | transform: scalex(1.5); |
| | | transform-origin: center; |
| | | } |
| | | &.jconfirm-animation-top { |
| | | transform: translate(0px, -100px); |
| | | } |
| | | &.jconfirm-animation-left { |
| | | transform: translate(-100px, 0px); |
| | | } |
| | | &.jconfirm-animation-right { |
| | | transform: translate(100px, 0px); |
| | | } |
| | | &.jconfirm-animation-bottom { |
| | | transform: translate(0px, 100px); |
| | | } |
| | | &.jconfirm-animation-opacity { |
| | | |
| | | } |
| | | &.jconfirm-animation-zoom { |
| | | transform: scale(1.2); |
| | | } |
| | | &.jconfirm-animation-scale { |
| | | transform: scale(0.5); |
| | | } |
| | | &.jconfirm-animation-none { |
| | | visibility: hidden; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .jconfirm.jconfirm-supervan { |
| | | .jconfirm-bg { |
| | | background-color: rgba(54, 70, 93, .95); |
| | | } |
| | | |
| | | .jconfirm-box { |
| | | background-color: transparent; |
| | | |
| | | &.jconfirm-type-blue { |
| | | border: none; |
| | | } |
| | | &.jconfirm-type-green { |
| | | border: none; |
| | | } |
| | | &.jconfirm-type-red { |
| | | border: none; |
| | | } |
| | | &.jconfirm-type-orange { |
| | | border: none; |
| | | } |
| | | &.jconfirm-type-purple { |
| | | border: none; |
| | | } |
| | | &.jconfirm-type-dark { |
| | | border: none; |
| | | } |
| | | |
| | | div.jconfirm-closeIcon { |
| | | color: white; |
| | | } |
| | | |
| | | div.jconfirm-title-c { |
| | | text-align: center; |
| | | color: white; |
| | | font-size: 28px; |
| | | font-weight: normal; |
| | | > * { |
| | | padding-bottom: 25px; |
| | | } |
| | | |
| | | .jconfirm-icon-c { |
| | | margin-right: 8px; |
| | | margin-left: 0px; |
| | | } |
| | | } |
| | | div.jconfirm-content-pane { |
| | | margin-bottom: 25px; |
| | | } |
| | | div.jconfirm-content { |
| | | text-align: center; |
| | | color: white; |
| | | |
| | | &:empty { |
| | | &:before { |
| | | |
| | | } |
| | | &:after { |
| | | |
| | | } |
| | | } |
| | | } |
| | | .jconfirm-buttons { |
| | | text-align: center; |
| | | |
| | | button { |
| | | font-size: 16px; |
| | | border-radius: 2px; |
| | | background: darken(#36465D, 3%); |
| | | text-shadow: none; |
| | | border: none; |
| | | color: white; |
| | | padding: 10px; |
| | | min-width: 100px; |
| | | } |
| | | button + button { |
| | | |
| | | } |
| | | } |
| | | &.hilight { |
| | | |
| | | } |
| | | } |
| | | |
| | | &.jconfirm-rtl { |
| | | .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c { |
| | | margin-left: 8px; |
| | | margin-right: 0px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .jconfirm.jconfirm-material { |
| | | .jconfirm-bg { |
| | | background-color: rgba(0, 0, 0, .67); |
| | | } |
| | | .jconfirm-box { |
| | | background-color: white; |
| | | box-shadow: 0 7px 8px -4px rgba(0, 0, 0, .2), 0 13px 19px 2px rgba(0, 0, 0, .14), 0 5px 24px 4px rgba(0, 0, 0, .12); |
| | | padding: 30px 25px 10px 25px; |
| | | |
| | | .jconfirm-title-c .jconfirm-icon-c { |
| | | margin-right: 8px; |
| | | margin-left: 0px; |
| | | } |
| | | |
| | | div.jconfirm-closeIcon { |
| | | color: rgba(0, 0, 0, .87); |
| | | } |
| | | |
| | | div.jconfirm-title-c { |
| | | color: rgba(0, 0, 0, .87); |
| | | font-size: 22px; |
| | | font-weight: bold; |
| | | } |
| | | div.jconfirm-content { |
| | | color: rgba(0, 0, 0, .87); |
| | | |
| | | &:empty { |
| | | &:before { |
| | | |
| | | } |
| | | &:after { |
| | | |
| | | } |
| | | } |
| | | } |
| | | .jconfirm-buttons { |
| | | text-align: right; |
| | | |
| | | button { |
| | | text-transform: uppercase; |
| | | font-weight: 500; |
| | | } |
| | | button + button { |
| | | |
| | | } |
| | | } |
| | | &.hilight { |
| | | |
| | | } |
| | | } |
| | | |
| | | &.jconfirm-rtl { |
| | | .jconfirm-title-c .jconfirm-icon-c { |
| | | margin-left: 8px; |
| | | margin-right: 0px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .jconfirm.jconfirm-bootstrap { |
| | | .jconfirm-bg { |
| | | background-color: rgba(0, 0, 0, .21); |
| | | } |
| | | |
| | | .jconfirm-box { |
| | | background-color: white; |
| | | box-shadow: 0 3px 8px 0px rgba(0, 0, 0, 0.2); |
| | | border: solid 1px rgba(0, 0, 0, 0.4); |
| | | padding: 15px 0 0; |
| | | |
| | | .jconfirm-title-c .jconfirm-icon-c { |
| | | margin-right: 8px; |
| | | margin-left: 0px; |
| | | } |
| | | |
| | | div.jconfirm-closeIcon { |
| | | color: rgba(0, 0, 0, 0.87); |
| | | } |
| | | |
| | | div.jconfirm-title-c { |
| | | color: rgba(0, 0, 0, 0.87); |
| | | font-size: 22px; |
| | | font-weight: bold; |
| | | padding-left: 15px; |
| | | padding-right: 15px; |
| | | } |
| | | div.jconfirm-content-pane { |
| | | |
| | | } |
| | | div.jconfirm-content { |
| | | color: rgba(0, 0, 0, 0.87); |
| | | padding: 0px 15px; |
| | | |
| | | &:empty { |
| | | &:before { |
| | | |
| | | } |
| | | &:after { |
| | | |
| | | } |
| | | } |
| | | } |
| | | .jconfirm-buttons { |
| | | text-align: right; |
| | | padding: 10px; |
| | | margin: -5px 0 0px; |
| | | border-top: solid 1px #ddd; |
| | | overflow: hidden; |
| | | border-radius: 0 0 4px 4px; |
| | | |
| | | button { |
| | | font-weight: 500; |
| | | } |
| | | button + button { |
| | | |
| | | } |
| | | } |
| | | &.hilight { |
| | | |
| | | } |
| | | } |
| | | |
| | | &.jconfirm-rtl { |
| | | .jconfirm-title-c .jconfirm-icon-c { |
| | | margin-left: 8px; |
| | | margin-right: 0px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .jconfirm.jconfirm-modern { |
| | | .jconfirm-bg { |
| | | background-color: slategray; |
| | | opacity: .6; |
| | | } |
| | | |
| | | .jconfirm-box { |
| | | background-color: white; |
| | | box-shadow: 0 7px 8px -4px rgba(0, 0, 0, .2), 0 13px 19px 2px rgba(0, 0, 0, .14), 0 5px 24px 4px rgba(0, 0, 0, .12); |
| | | padding: 30px 30px 15px; |
| | | |
| | | div.jconfirm-closeIcon { |
| | | color: rgba(0, 0, 0, 0.87); |
| | | top: 15px; |
| | | right: 15px; |
| | | } |
| | | |
| | | div.jconfirm-title-c { |
| | | color: rgba(0, 0, 0, .87); |
| | | font-size: 24px; |
| | | font-weight: bold; |
| | | text-align: center; |
| | | margin-bottom: 10px; |
| | | |
| | | .jconfirm-icon-c { |
| | | transition: transform .5s; |
| | | transform: scale(0); |
| | | display: block; |
| | | margin-right: 0px; |
| | | margin-left: 0px; |
| | | margin-bottom: 10px; |
| | | font-size: 69px; |
| | | color: #aaa; |
| | | } |
| | | } |
| | | |
| | | div.jconfirm-content { |
| | | text-align: center; |
| | | font-size: 15px; |
| | | color: #777; |
| | | margin-bottom: 25px; |
| | | |
| | | &:empty { |
| | | &:before { |
| | | |
| | | } |
| | | &:after { |
| | | |
| | | } |
| | | } |
| | | } |
| | | .jconfirm-buttons { |
| | | text-align: center; |
| | | |
| | | button { |
| | | font-weight: bold; |
| | | text-transform: uppercase; |
| | | transition: background .1s; |
| | | padding: 10px 20px; |
| | | |
| | | &.btn-success { |
| | | |
| | | } |
| | | } |
| | | button + button { |
| | | margin-left: 4px; |
| | | } |
| | | } |
| | | } |
| | | &.jconfirm-open { |
| | | .jconfirm-box .jconfirm-title-c .jconfirm-icon-c { |
| | | transform: scale(1); |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | /*! |
| | | * jquery-confirm v3.3.4 (http://craftpip.github.io/jquery-confirm/) |
| | | * Author: Boniface Pereira |
| | | * Website: www.craftpip.com |
| | | * Contact: hey@craftpip.com |
| | | * |
| | | * Copyright 2013-2019 jquery-confirm |
| | | * Licensed under MIT (https://github.com/craftpip/jquery-confirm/blob/master/LICENSE) |
| | | */ |
| | | |
| | | |
| | | /** |
| | | * UMD (Universal Module Definition) to support CommonJS, AMD and browser |
| | | * Thanks to https://github.com/umdjs/umd |
| | | */ |
| | | (function(factory){ |
| | | if(typeof define === 'function' && define.amd){ |
| | | // AMD. Register as an anonymous module. |
| | | define(['jquery'], factory); |
| | | }else if(typeof module === 'object' && module.exports){ |
| | | // Node/CommonJS |
| | | module.exports = function(root, jQuery){ |
| | | if(jQuery === undefined){ |
| | | // require('jQuery') returns a factory that requires window to |
| | | // build a jQuery instance, we normalize how we use modules |
| | | // that require this pattern but the window provided is a noop |
| | | // if it's defined (how jquery works) |
| | | if(typeof window !== 'undefined'){ |
| | | jQuery = require('jquery'); |
| | | } |
| | | else{ |
| | | jQuery = require('jquery')(root); |
| | | } |
| | | } |
| | | factory(jQuery); |
| | | return jQuery; |
| | | }; |
| | | }else{ |
| | | // Browser globals |
| | | factory(jQuery); |
| | | } |
| | | }(function($){ |
| | | "use strict"; |
| | | |
| | | // locally assign window |
| | | var w = window; |
| | | // w.jconfirm |
| | | // w.Jconfirm; |
| | | |
| | | $.fn.confirm = function(options, option2){ |
| | | if(typeof options === 'undefined') options = {}; |
| | | if(typeof options === 'string'){ |
| | | options = { |
| | | content: options, |
| | | title: (option2) ? option2 : false |
| | | }; |
| | | } |
| | | /* |
| | | * Alias of $.confirm to emulate native confirm() |
| | | */ |
| | | $(this).each(function(){ |
| | | var $this = $(this); |
| | | if($this.attr('jc-attached')){ |
| | | console.warn('jConfirm has already been attached to this element ', $this[0]); |
| | | return; |
| | | } |
| | | |
| | | $this.on('click', function(e){ |
| | | e.preventDefault(); |
| | | var jcOption = $.extend({}, options); |
| | | if($this.attr('data-title')) |
| | | jcOption['title'] = $this.attr('data-title'); |
| | | if($this.attr('data-content')) |
| | | jcOption['content'] = $this.attr('data-content'); |
| | | if(typeof jcOption['buttons'] === 'undefined') |
| | | jcOption['buttons'] = {}; |
| | | |
| | | jcOption['$target'] = $this; |
| | | if($this.attr('href') && Object.keys(jcOption['buttons']).length === 0){ |
| | | var buttons = $.extend(true, {}, w.jconfirm.pluginDefaults.defaultButtons, (w.jconfirm.defaults || {}).defaultButtons || {}); |
| | | var firstBtn = Object.keys(buttons)[0]; |
| | | jcOption['buttons'] = buttons; |
| | | jcOption.buttons[firstBtn].action = function(){ |
| | | location.href = $this.attr('href'); |
| | | }; |
| | | } |
| | | jcOption['closeIcon'] = false; |
| | | var instance = $.confirm(jcOption); |
| | | }); |
| | | |
| | | $this.attr('jc-attached', true); |
| | | }); |
| | | return $(this); |
| | | }; |
| | | $.confirm = function(options, option2){ |
| | | if(typeof options === 'undefined') options = {}; |
| | | if(typeof options === 'string'){ |
| | | options = { |
| | | content: options, |
| | | title: (option2) ? option2 : false |
| | | }; |
| | | } |
| | | |
| | | var putDefaultButtons = !(options['buttons'] === false); |
| | | |
| | | if(typeof options['buttons'] !== 'object') |
| | | options['buttons'] = {}; |
| | | |
| | | if(Object.keys(options['buttons']).length === 0 && putDefaultButtons){ |
| | | var buttons = $.extend(true, {}, w.jconfirm.pluginDefaults.defaultButtons, (w.jconfirm.defaults || {}).defaultButtons || {}); |
| | | options['buttons'] = buttons; |
| | | } |
| | | |
| | | /* |
| | | * Alias of jconfirm |
| | | */ |
| | | return w.jconfirm(options); |
| | | }; |
| | | $.alert = function(options, option2){ |
| | | if(typeof options === 'undefined') options = {}; |
| | | if(typeof options === 'string'){ |
| | | options = { |
| | | content: options, |
| | | title: (option2) ? option2 : false |
| | | }; |
| | | } |
| | | |
| | | var putDefaultButtons = !(options['buttons'] === false); |
| | | |
| | | if(typeof options.buttons !== 'object') |
| | | options.buttons = {}; |
| | | |
| | | if(Object.keys(options['buttons']).length === 0 && putDefaultButtons){ |
| | | var buttons = $.extend(true, {}, w.jconfirm.pluginDefaults.defaultButtons, (w.jconfirm.defaults || {}).defaultButtons || {}); |
| | | var firstBtn = Object.keys(buttons)[0]; |
| | | options['buttons'][firstBtn] = buttons[firstBtn]; |
| | | } |
| | | /* |
| | | * Alias of jconfirm |
| | | */ |
| | | return w.jconfirm(options); |
| | | }; |
| | | $.dialog = function(options, option2){ |
| | | if(typeof options === 'undefined') options = {}; |
| | | if(typeof options === 'string'){ |
| | | options = { |
| | | content: options, |
| | | title: (option2) ? option2 : false, |
| | | closeIcon: function(){ |
| | | // Just close the modal |
| | | } |
| | | }; |
| | | } |
| | | |
| | | options['buttons'] = {}; // purge buttons |
| | | |
| | | if(typeof options['closeIcon'] === 'undefined'){ |
| | | // Dialog must have a closeIcon. |
| | | options['closeIcon'] = function(){ |
| | | } |
| | | } |
| | | /* |
| | | * Alias of jconfirm |
| | | */ |
| | | options.confirmKeys = [13]; |
| | | return w.jconfirm(options); |
| | | }; |
| | | |
| | | w.jconfirm = function(options){ |
| | | if(typeof options === 'undefined') options = {}; |
| | | /* |
| | | * initial function for calling. |
| | | */ |
| | | var pluginOptions = $.extend(true, {}, w.jconfirm.pluginDefaults); |
| | | if(w.jconfirm.defaults){ |
| | | pluginOptions = $.extend(true, pluginOptions, w.jconfirm.defaults); |
| | | } |
| | | |
| | | /* |
| | | * merge options with plugin defaults. |
| | | */ |
| | | pluginOptions = $.extend(true, {}, pluginOptions, options); |
| | | var instance = new w.Jconfirm(pluginOptions); |
| | | w.jconfirm.instances.push(instance); |
| | | return instance; |
| | | }; |
| | | w.Jconfirm = function(options){ |
| | | /* |
| | | * constructor function Jconfirm, |
| | | * options = user options. |
| | | */ |
| | | $.extend(this, options); |
| | | this._init(); |
| | | }; |
| | | w.Jconfirm.prototype = { |
| | | _init: function(){ |
| | | var that = this; |
| | | |
| | | if(!w.jconfirm.instances.length) |
| | | w.jconfirm.lastFocused = $('body').find(':focus'); |
| | | |
| | | this._id = Math.round(Math.random() * 99999); |
| | | /** |
| | | * contentParsed maintains the contents for $content, before it is put in DOM |
| | | */ |
| | | this.contentParsed = $(document.createElement('div')); |
| | | |
| | | if(!this.lazyOpen){ |
| | | setTimeout(function(){ |
| | | that.open(); |
| | | }, 0); |
| | | } |
| | | }, |
| | | _buildHTML: function(){ |
| | | var that = this; |
| | | |
| | | // prefix the animation string and store in animationParsed |
| | | this._parseAnimation(this.animation, 'o'); |
| | | this._parseAnimation(this.closeAnimation, 'c'); |
| | | this._parseBgDismissAnimation(this.backgroundDismissAnimation); |
| | | this._parseColumnClass(this.columnClass); |
| | | this._parseTheme(this.theme); |
| | | this._parseType(this.type); |
| | | |
| | | /* |
| | | * Append html. |
| | | */ |
| | | var template = $(this.template); |
| | | template.find('.jconfirm-box').addClass(this.animationParsed).addClass(this.backgroundDismissAnimationParsed).addClass(this.typeParsed); |
| | | |
| | | if(this.typeAnimated) |
| | | template.find('.jconfirm-box').addClass('jconfirm-type-animated'); |
| | | |
| | | if(this.useBootstrap){ |
| | | template.find('.jc-bs3-row').addClass(this.bootstrapClasses.row); |
| | | template.find('.jc-bs3-row').addClass('justify-content-md-center justify-content-sm-center justify-content-xs-center justify-content-lg-center'); |
| | | |
| | | template.find('.jconfirm-box-container').addClass(this.columnClassParsed); |
| | | |
| | | if(this.containerFluid) |
| | | template.find('.jc-bs3-container').addClass(this.bootstrapClasses.containerFluid); |
| | | else |
| | | template.find('.jc-bs3-container').addClass(this.bootstrapClasses.container); |
| | | }else{ |
| | | template.find('.jconfirm-box').css('width', this.boxWidth); |
| | | } |
| | | |
| | | if(this.titleClass) |
| | | template.find('.jconfirm-title-c').addClass(this.titleClass); |
| | | |
| | | template.addClass(this.themeParsed); |
| | | var ariaLabel = 'jconfirm-box' + this._id; |
| | | template.find('.jconfirm-box').attr('aria-labelledby', ariaLabel).attr('tabindex', -1); |
| | | template.find('.jconfirm-content').attr('id', ariaLabel); |
| | | if(this.bgOpacity !== null) |
| | | template.find('.jconfirm-bg').css('opacity', this.bgOpacity); |
| | | if(this.rtl) |
| | | template.addClass('jconfirm-rtl'); |
| | | |
| | | this.$el = template.appendTo(this.container); |
| | | this.$jconfirmBoxContainer = this.$el.find('.jconfirm-box-container'); |
| | | this.$jconfirmBox = this.$body = this.$el.find('.jconfirm-box'); |
| | | this.$jconfirmBg = this.$el.find('.jconfirm-bg'); |
| | | this.$title = this.$el.find('.jconfirm-title'); |
| | | this.$titleContainer = this.$el.find('.jconfirm-title-c'); |
| | | this.$content = this.$el.find('div.jconfirm-content'); |
| | | this.$contentPane = this.$el.find('.jconfirm-content-pane'); |
| | | this.$icon = this.$el.find('.jconfirm-icon-c'); |
| | | this.$closeIcon = this.$el.find('.jconfirm-closeIcon'); |
| | | this.$holder = this.$el.find('.jconfirm-holder'); |
| | | // this.$content.css(this._getCSS(this.animationSpeed, this.animationBounce)); |
| | | this.$btnc = this.$el.find('.jconfirm-buttons'); |
| | | this.$scrollPane = this.$el.find('.jconfirm-scrollpane'); |
| | | |
| | | that.setStartingPoint(); |
| | | |
| | | // for loading content via URL |
| | | this._contentReady = $.Deferred(); |
| | | this._modalReady = $.Deferred(); |
| | | this.$holder.css({ |
| | | 'padding-top': this.offsetTop, |
| | | 'padding-bottom': this.offsetBottom, |
| | | }); |
| | | |
| | | this.setTitle(); |
| | | this.setIcon(); |
| | | this._setButtons(); |
| | | this._parseContent(); |
| | | this.initDraggable(); |
| | | |
| | | if(this.isAjax) |
| | | this.showLoading(false); |
| | | |
| | | $.when(this._contentReady, this._modalReady).then(function(){ |
| | | if(that.isAjaxLoading) |
| | | setTimeout(function(){ |
| | | that.isAjaxLoading = false; |
| | | that.setContent(); |
| | | that.setTitle(); |
| | | that.setIcon(); |
| | | setTimeout(function(){ |
| | | that.hideLoading(false); |
| | | that._updateContentMaxHeight(); |
| | | }, 100); |
| | | if(typeof that.onContentReady === 'function') |
| | | that.onContentReady(); |
| | | }, 50); |
| | | else{ |
| | | // that.setContent(); |
| | | that._updateContentMaxHeight(); |
| | | that.setTitle(); |
| | | that.setIcon(); |
| | | if(typeof that.onContentReady === 'function') |
| | | that.onContentReady(); |
| | | } |
| | | |
| | | // start countdown after content has loaded. |
| | | if(that.autoClose) |
| | | that._startCountDown(); |
| | | }).then(function(){ |
| | | that._watchContent(); |
| | | }); |
| | | |
| | | if(this.animation === 'none'){ |
| | | this.animationSpeed = 1; |
| | | this.animationBounce = 1; |
| | | } |
| | | |
| | | this.$body.css(this._getCSS(this.animationSpeed, this.animationBounce)); |
| | | this.$contentPane.css(this._getCSS(this.animationSpeed, 1)); |
| | | this.$jconfirmBg.css(this._getCSS(this.animationSpeed, 1)); |
| | | this.$jconfirmBoxContainer.css(this._getCSS(this.animationSpeed, 1)); |
| | | }, |
| | | _typePrefix: 'jconfirm-type-', |
| | | typeParsed: '', |
| | | _parseType: function(type){ |
| | | this.typeParsed = this._typePrefix + type; |
| | | }, |
| | | setType: function(type){ |
| | | var oldClass = this.typeParsed; |
| | | this._parseType(type); |
| | | this.$jconfirmBox.removeClass(oldClass).addClass(this.typeParsed); |
| | | }, |
| | | themeParsed: '', |
| | | _themePrefix: 'jconfirm-', |
| | | setTheme: function(theme){ |
| | | var previous = this.theme; |
| | | this.theme = theme || this.theme; |
| | | this._parseTheme(this.theme); |
| | | if(previous) |
| | | this.$el.removeClass(previous); |
| | | this.$el.addClass(this.themeParsed); |
| | | this.theme = theme; |
| | | }, |
| | | _parseTheme: function(theme){ |
| | | var that = this; |
| | | theme = theme.split(','); |
| | | $.each(theme, function(k, a){ |
| | | if(a.indexOf(that._themePrefix) === -1) |
| | | theme[k] = that._themePrefix + $.trim(a); |
| | | }); |
| | | this.themeParsed = theme.join(' ').toLowerCase(); |
| | | }, |
| | | backgroundDismissAnimationParsed: '', |
| | | _bgDismissPrefix: 'jconfirm-hilight-', |
| | | _parseBgDismissAnimation: function(bgDismissAnimation){ |
| | | var animation = bgDismissAnimation.split(','); |
| | | var that = this; |
| | | $.each(animation, function(k, a){ |
| | | if(a.indexOf(that._bgDismissPrefix) === -1) |
| | | animation[k] = that._bgDismissPrefix + $.trim(a); |
| | | }); |
| | | this.backgroundDismissAnimationParsed = animation.join(' ').toLowerCase(); |
| | | }, |
| | | animationParsed: '', |
| | | closeAnimationParsed: '', |
| | | _animationPrefix: 'jconfirm-animation-', |
| | | setAnimation: function(animation){ |
| | | this.animation = animation || this.animation; |
| | | this._parseAnimation(this.animation, 'o'); |
| | | }, |
| | | _parseAnimation: function(animation, which){ |
| | | which = which || 'o'; // parse what animation and store where. open or close? |
| | | var animations = animation.split(','); |
| | | var that = this; |
| | | $.each(animations, function(k, a){ |
| | | if(a.indexOf(that._animationPrefix) === -1) |
| | | animations[k] = that._animationPrefix + $.trim(a); |
| | | }); |
| | | var a_string = animations.join(' ').toLowerCase(); |
| | | if(which === 'o') |
| | | this.animationParsed = a_string; |
| | | else |
| | | this.closeAnimationParsed = a_string; |
| | | |
| | | return a_string; |
| | | }, |
| | | setCloseAnimation: function(closeAnimation){ |
| | | this.closeAnimation = closeAnimation || this.closeAnimation; |
| | | this._parseAnimation(this.closeAnimation, 'c'); |
| | | }, |
| | | setAnimationSpeed: function(speed){ |
| | | this.animationSpeed = speed || this.animationSpeed; |
| | | // this.$body.css(this._getCSS(this.animationSpeed, this.animationBounce)); |
| | | }, |
| | | columnClassParsed: '', |
| | | setColumnClass: function(colClass){ |
| | | if(!this.useBootstrap){ |
| | | console.warn("cannot set columnClass, useBootstrap is set to false"); |
| | | return; |
| | | } |
| | | this.columnClass = colClass || this.columnClass; |
| | | this._parseColumnClass(this.columnClass); |
| | | this.$jconfirmBoxContainer.addClass(this.columnClassParsed); |
| | | }, |
| | | _updateContentMaxHeight: function(){ |
| | | var height = $(window).height() - (this.$jconfirmBox.outerHeight() - this.$contentPane.outerHeight()) - (this.offsetTop + this.offsetBottom); |
| | | this.$contentPane.css({ |
| | | 'max-height': height + 'px' |
| | | }); |
| | | }, |
| | | setBoxWidth: function(width){ |
| | | if(this.useBootstrap){ |
| | | console.warn("cannot set boxWidth, useBootstrap is set to true"); |
| | | return; |
| | | } |
| | | this.boxWidth = width; |
| | | this.$jconfirmBox.css('width', width); |
| | | }, |
| | | _parseColumnClass: function(colClass){ |
| | | colClass = colClass.toLowerCase(); |
| | | var p; |
| | | switch(colClass){ |
| | | case 'xl': |
| | | case 'xlarge': |
| | | p = 'col-md-12'; |
| | | break; |
| | | case 'l': |
| | | case 'large': |
| | | p = 'col-md-8 col-md-offset-2'; |
| | | break; |
| | | case 'm': |
| | | case 'medium': |
| | | p = 'col-md-6 col-md-offset-3'; |
| | | break; |
| | | case 's': |
| | | case 'small': |
| | | p = 'col-md-4 col-md-offset-4'; |
| | | break; |
| | | case 'xs': |
| | | case 'xsmall': |
| | | p = 'col-md-2 col-md-offset-5'; |
| | | break; |
| | | default: |
| | | p = colClass; |
| | | } |
| | | this.columnClassParsed = p; |
| | | }, |
| | | initDraggable: function(){ |
| | | var that = this; |
| | | var $t = this.$titleContainer; |
| | | |
| | | this.resetDrag(); |
| | | if(this.draggable){ |
| | | $t.on('mousedown', function(e){ |
| | | $t.addClass('jconfirm-hand'); |
| | | that.mouseX = e.clientX; |
| | | that.mouseY = e.clientY; |
| | | that.isDrag = true; |
| | | }); |
| | | $(window).on('mousemove.' + this._id, function(e){ |
| | | if(that.isDrag){ |
| | | that.movingX = e.clientX - that.mouseX + that.initialX; |
| | | that.movingY = e.clientY - that.mouseY + that.initialY; |
| | | that.setDrag(); |
| | | } |
| | | }); |
| | | |
| | | $(window).on('mouseup.' + this._id, function(){ |
| | | $t.removeClass('jconfirm-hand'); |
| | | if(that.isDrag){ |
| | | that.isDrag = false; |
| | | that.initialX = that.movingX; |
| | | that.initialY = that.movingY; |
| | | } |
| | | }) |
| | | } |
| | | }, |
| | | resetDrag: function(){ |
| | | this.isDrag = false; |
| | | this.initialX = 0; |
| | | this.initialY = 0; |
| | | this.movingX = 0; |
| | | this.movingY = 0; |
| | | this.mouseX = 0; |
| | | this.mouseY = 0; |
| | | this.$jconfirmBoxContainer.css('transform', 'translate(' + 0 + 'px, ' + 0 + 'px)'); |
| | | }, |
| | | setDrag: function(){ |
| | | if(!this.draggable) |
| | | return; |
| | | |
| | | this.alignMiddle = false; |
| | | var boxWidth = this.$jconfirmBox.outerWidth(); |
| | | var boxHeight = this.$jconfirmBox.outerHeight(); |
| | | var windowWidth = $(window).width(); |
| | | var windowHeight = $(window).height(); |
| | | var that = this; |
| | | var dragUpdate = 1; |
| | | if(that.movingX % dragUpdate === 0 || that.movingY % dragUpdate === 0){ |
| | | if(that.dragWindowBorder){ |
| | | var leftDistance = (windowWidth / 2) - boxWidth / 2; |
| | | var topDistance = (windowHeight / 2) - boxHeight / 2; |
| | | topDistance -= that.dragWindowGap; |
| | | leftDistance -= that.dragWindowGap; |
| | | |
| | | if(leftDistance + that.movingX < 0){ |
| | | that.movingX = -leftDistance; |
| | | }else if(leftDistance - that.movingX < 0){ |
| | | that.movingX = leftDistance; |
| | | } |
| | | |
| | | if(topDistance + that.movingY < 0){ |
| | | that.movingY = -topDistance; |
| | | }else if(topDistance - that.movingY < 0){ |
| | | that.movingY = topDistance; |
| | | } |
| | | } |
| | | |
| | | that.$jconfirmBoxContainer.css('transform', 'translate(' + that.movingX + 'px, ' + that.movingY + 'px)'); |
| | | } |
| | | }, |
| | | _scrollTop: function(){ |
| | | if(typeof pageYOffset !== 'undefined'){ |
| | | //most browsers except IE before #9 |
| | | return pageYOffset; |
| | | } |
| | | else{ |
| | | var B = document.body; //IE 'quirks' |
| | | var D = document.documentElement; //IE with doctype |
| | | D = (D.clientHeight) ? D : B; |
| | | return D.scrollTop; |
| | | } |
| | | }, |
| | | _watchContent: function(){ |
| | | var that = this; |
| | | if(this._timer) clearInterval(this._timer); |
| | | |
| | | var prevContentHeight = 0; |
| | | this._timer = setInterval(function(){ |
| | | if(that.smoothContent){ |
| | | var contentHeight = that.$content.outerHeight() || 0; |
| | | if(contentHeight !== prevContentHeight){ |
| | | |
| | | // Commented out to prevent scroll to top when updating the content |
| | | // (for example when using ajax in forms in content) |
| | | // that.$contentPane.css({ |
| | | // 'height': contentHeight |
| | | // }).scrollTop(0); |
| | | prevContentHeight = contentHeight; |
| | | } |
| | | var wh = $(window).height(); |
| | | var total = that.offsetTop + that.offsetBottom + that.$jconfirmBox.height() - that.$contentPane.height() + that.$content.height(); |
| | | if(total < wh){ |
| | | that.$contentPane.addClass('no-scroll'); |
| | | }else{ |
| | | that.$contentPane.removeClass('no-scroll'); |
| | | } |
| | | } |
| | | }, this.watchInterval); |
| | | }, |
| | | _overflowClass: 'jconfirm-overflow', |
| | | _hilightAnimating: false, |
| | | highlight: function(){ |
| | | this.hiLightModal(); |
| | | }, |
| | | hiLightModal: function(){ |
| | | var that = this; |
| | | if(this._hilightAnimating) |
| | | return; |
| | | |
| | | that.$body.addClass('hilight'); |
| | | var duration = parseFloat(that.$body.css('animation-duration')) || 2; |
| | | this._hilightAnimating = true; |
| | | setTimeout(function(){ |
| | | that._hilightAnimating = false; |
| | | that.$body.removeClass('hilight'); |
| | | }, duration * 1000); |
| | | }, |
| | | _bindEvents: function(){ |
| | | var that = this; |
| | | this.boxClicked = false; |
| | | |
| | | this.$scrollPane.click(function(e){ // Ignore propagated clicks |
| | | if(!that.boxClicked){ // Background clicked |
| | | /* |
| | | If backgroundDismiss is a function and its return value is truthy |
| | | proceed to close the modal. |
| | | */ |
| | | var buttonName = false; |
| | | var shouldClose = false; |
| | | var str; |
| | | |
| | | if(typeof that.backgroundDismiss === 'function') |
| | | str = that.backgroundDismiss(); |
| | | else |
| | | str = that.backgroundDismiss; |
| | | |
| | | if(typeof str === 'string' && typeof that.buttons[str] !== 'undefined'){ |
| | | buttonName = str; |
| | | shouldClose = false; |
| | | }else if(typeof str === 'undefined' || !!(str) === true){ |
| | | shouldClose = true; |
| | | }else{ |
| | | shouldClose = false; |
| | | } |
| | | |
| | | if(buttonName){ |
| | | var btnResponse = that.buttons[buttonName].action.apply(that); |
| | | shouldClose = (typeof btnResponse === 'undefined') || !!(btnResponse); |
| | | } |
| | | |
| | | if(shouldClose) |
| | | that.close(); |
| | | else |
| | | that.hiLightModal(); |
| | | } |
| | | that.boxClicked = false; |
| | | }); |
| | | |
| | | this.$jconfirmBox.click(function(e){ |
| | | that.boxClicked = true; |
| | | }); |
| | | |
| | | var isKeyDown = false; |
| | | $(window).on('jcKeyDown.' + that._id, function(e){ |
| | | if(!isKeyDown){ |
| | | isKeyDown = true; |
| | | } |
| | | }); |
| | | $(window).on('keyup.' + that._id, function(e){ |
| | | if(isKeyDown){ |
| | | that.reactOnKey(e); |
| | | isKeyDown = false; |
| | | } |
| | | }); |
| | | |
| | | $(window).on('resize.' + this._id, function(){ |
| | | that._updateContentMaxHeight(); |
| | | setTimeout(function(){ |
| | | that.resetDrag(); |
| | | }, 100); |
| | | }); |
| | | }, |
| | | _cubic_bezier: '0.36, 0.55, 0.19', |
| | | _getCSS: function(speed, bounce){ |
| | | return { |
| | | '-webkit-transition-duration': speed / 1000 + 's', |
| | | 'transition-duration': speed / 1000 + 's', |
| | | '-webkit-transition-timing-function': 'cubic-bezier(' + this._cubic_bezier + ', ' + bounce + ')', |
| | | 'transition-timing-function': 'cubic-bezier(' + this._cubic_bezier + ', ' + bounce + ')' |
| | | }; |
| | | }, |
| | | _setButtons: function(){ |
| | | var that = this; |
| | | /* |
| | | * Settings up buttons |
| | | */ |
| | | |
| | | var total_buttons = 0; |
| | | if(typeof this.buttons !== 'object') |
| | | this.buttons = {}; |
| | | |
| | | $.each(this.buttons, function(key, button){ |
| | | total_buttons += 1; |
| | | if(typeof button === 'function'){ |
| | | that.buttons[key] = button = { |
| | | action: button |
| | | }; |
| | | } |
| | | |
| | | that.buttons[key].text = button.text || key; |
| | | that.buttons[key].btnClass = button.btnClass || 'btn-default'; |
| | | that.buttons[key].action = button.action || function(){ |
| | | }; |
| | | that.buttons[key].keys = button.keys || []; |
| | | that.buttons[key].isHidden = button.isHidden || false; |
| | | that.buttons[key].isDisabled = button.isDisabled || false; |
| | | |
| | | $.each(that.buttons[key].keys, function(i, a){ |
| | | that.buttons[key].keys[i] = a.toLowerCase(); |
| | | }); |
| | | |
| | | var button_element = $('<button type="button" class="btn"></button>') |
| | | .html(that.buttons[key].text) |
| | | .addClass(that.buttons[key].btnClass) |
| | | .prop('disabled', that.buttons[key].isDisabled) |
| | | .css('display', that.buttons[key].isHidden ? 'none' : '') |
| | | .click(function(e){ |
| | | e.preventDefault(); |
| | | var res = that.buttons[key].action.apply(that, [that.buttons[key]]); |
| | | that.onAction.apply(that, [key, that.buttons[key]]); |
| | | that._stopCountDown(); |
| | | if(typeof res === 'undefined' || res) |
| | | that.close(); |
| | | }); |
| | | |
| | | that.buttons[key].el = button_element; |
| | | that.buttons[key].setText = function(text){ |
| | | button_element.html(text); |
| | | }; |
| | | that.buttons[key].addClass = function(className){ |
| | | button_element.addClass(className); |
| | | }; |
| | | that.buttons[key].removeClass = function(className){ |
| | | button_element.removeClass(className); |
| | | }; |
| | | that.buttons[key].disable = function(){ |
| | | that.buttons[key].isDisabled = true; |
| | | button_element.prop('disabled', true); |
| | | }; |
| | | that.buttons[key].enable = function(){ |
| | | that.buttons[key].isDisabled = false; |
| | | button_element.prop('disabled', false); |
| | | }; |
| | | that.buttons[key].show = function(){ |
| | | that.buttons[key].isHidden = false; |
| | | button_element.css('display', ''); |
| | | }; |
| | | that.buttons[key].hide = function(){ |
| | | that.buttons[key].isHidden = true; |
| | | button_element.css('display', 'none'); |
| | | }; |
| | | /* |
| | | Buttons are prefixed with $_ or $$ for quick access |
| | | */ |
| | | that['$_' + key] = that['$$' + key] = button_element; |
| | | that.$btnc.append(button_element); |
| | | }); |
| | | |
| | | if(total_buttons === 0) this.$btnc.hide(); |
| | | if(this.closeIcon === null && total_buttons === 0){ |
| | | /* |
| | | in case when no buttons are present & closeIcon is null, closeIcon is set to true, |
| | | set closeIcon to true to explicitly tell to hide the close icon |
| | | */ |
| | | this.closeIcon = true; |
| | | } |
| | | |
| | | if(this.closeIcon){ |
| | | if(this.closeIconClass){ |
| | | // user requires a custom class. |
| | | var closeHtml = '<i class="' + this.closeIconClass + '"></i>'; |
| | | this.$closeIcon.html(closeHtml); |
| | | } |
| | | |
| | | this.$closeIcon.click(function(e){ |
| | | e.preventDefault(); |
| | | |
| | | var buttonName = false; |
| | | var shouldClose = false; |
| | | var str; |
| | | |
| | | if(typeof that.closeIcon === 'function'){ |
| | | str = that.closeIcon(); |
| | | }else{ |
| | | str = that.closeIcon; |
| | | } |
| | | |
| | | if(typeof str === 'string' && typeof that.buttons[str] !== 'undefined'){ |
| | | buttonName = str; |
| | | shouldClose = false; |
| | | }else if(typeof str === 'undefined' || !!(str) === true){ |
| | | shouldClose = true; |
| | | }else{ |
| | | shouldClose = false; |
| | | } |
| | | if(buttonName){ |
| | | var btnResponse = that.buttons[buttonName].action.apply(that); |
| | | shouldClose = (typeof btnResponse === 'undefined') || !!(btnResponse); |
| | | } |
| | | if(shouldClose){ |
| | | that.close(); |
| | | } |
| | | }); |
| | | this.$closeIcon.show(); |
| | | }else{ |
| | | this.$closeIcon.hide(); |
| | | } |
| | | }, |
| | | setTitle: function(string, force){ |
| | | force = force || false; |
| | | |
| | | if(typeof string !== 'undefined') |
| | | if(typeof string === 'string') |
| | | this.title = string; |
| | | else if(typeof string === 'function'){ |
| | | if(typeof string.promise === 'function') |
| | | console.error('Promise was returned from title function, this is not supported.'); |
| | | |
| | | var response = string(); |
| | | if(typeof response === 'string') |
| | | this.title = response; |
| | | else |
| | | this.title = false; |
| | | }else |
| | | this.title = false; |
| | | |
| | | if(this.isAjaxLoading && !force) |
| | | return; |
| | | |
| | | this.$title.html(this.title || ''); |
| | | this.updateTitleContainer(); |
| | | }, |
| | | setIcon: function(iconClass, force){ |
| | | force = force || false; |
| | | |
| | | if(typeof iconClass !== 'undefined') |
| | | if(typeof iconClass === 'string') |
| | | this.icon = iconClass; |
| | | else if(typeof iconClass === 'function'){ |
| | | var response = iconClass(); |
| | | if(typeof response === 'string') |
| | | this.icon = response; |
| | | else |
| | | this.icon = false; |
| | | } |
| | | else |
| | | this.icon = false; |
| | | |
| | | if(this.isAjaxLoading && !force) |
| | | return; |
| | | |
| | | this.$icon.html(this.icon ? '<i class="' + this.icon + '"></i>' : ''); |
| | | this.updateTitleContainer(); |
| | | }, |
| | | updateTitleContainer: function(){ |
| | | if(!this.title && !this.icon){ |
| | | this.$titleContainer.hide(); |
| | | }else{ |
| | | this.$titleContainer.show(); |
| | | } |
| | | }, |
| | | setContentPrepend: function(content, force){ |
| | | if(!content) |
| | | return; |
| | | |
| | | this.contentParsed.prepend(content); |
| | | }, |
| | | setContentAppend: function(content){ |
| | | if(!content) |
| | | return; |
| | | |
| | | this.contentParsed.append(content); |
| | | }, |
| | | setContent: function(content, force){ |
| | | force = !!force; |
| | | var that = this; |
| | | if(content) |
| | | this.contentParsed.html('').append(content); |
| | | if(this.isAjaxLoading && !force) |
| | | return; |
| | | |
| | | this.$content.html(''); |
| | | this.$content.append(this.contentParsed); |
| | | setTimeout(function(){ |
| | | that.$body.find('input[autofocus]:visible:first').focus(); |
| | | }, 100); |
| | | }, |
| | | loadingSpinner: false, |
| | | showLoading: function(disableButtons){ |
| | | this.loadingSpinner = true; |
| | | this.$jconfirmBox.addClass('loading'); |
| | | if(disableButtons) |
| | | this.$btnc.find('button').prop('disabled', true); |
| | | |
| | | }, |
| | | hideLoading: function(enableButtons){ |
| | | this.loadingSpinner = false; |
| | | this.$jconfirmBox.removeClass('loading'); |
| | | if(enableButtons) |
| | | this.$btnc.find('button').prop('disabled', false); |
| | | |
| | | }, |
| | | ajaxResponse: false, |
| | | contentParsed: '', |
| | | isAjax: false, |
| | | isAjaxLoading: false, |
| | | _parseContent: function(){ |
| | | var that = this; |
| | | var e = ' '; |
| | | |
| | | if(typeof this.content === 'function'){ |
| | | var res = this.content.apply(this); |
| | | if(typeof res === 'string'){ |
| | | this.content = res; |
| | | } |
| | | else if(typeof res === 'object' && typeof res.always === 'function'){ |
| | | // this is ajax loading via promise |
| | | this.isAjax = true; |
| | | this.isAjaxLoading = true; |
| | | res.always(function(data, status, xhr){ |
| | | that.ajaxResponse = { |
| | | data: data, |
| | | status: status, |
| | | xhr: xhr |
| | | }; |
| | | that._contentReady.resolve(data, status, xhr); |
| | | if(typeof that.contentLoaded === 'function') |
| | | that.contentLoaded(data, status, xhr); |
| | | }); |
| | | this.content = e; |
| | | }else{ |
| | | this.content = e; |
| | | } |
| | | } |
| | | |
| | | if(typeof this.content === 'string' && this.content.substr(0, 4).toLowerCase() === 'url:'){ |
| | | this.isAjax = true; |
| | | this.isAjaxLoading = true; |
| | | var u = this.content.substring(4, this.content.length); |
| | | $.get(u).done(function(html){ |
| | | that.contentParsed.html(html); |
| | | }).always(function(data, status, xhr){ |
| | | that.ajaxResponse = { |
| | | data: data, |
| | | status: status, |
| | | xhr: xhr |
| | | }; |
| | | that._contentReady.resolve(data, status, xhr); |
| | | if(typeof that.contentLoaded === 'function') |
| | | that.contentLoaded(data, status, xhr); |
| | | }); |
| | | } |
| | | |
| | | if(!this.content) |
| | | this.content = e; |
| | | |
| | | if(!this.isAjax){ |
| | | this.contentParsed.html(this.content); |
| | | this.setContent(); |
| | | that._contentReady.resolve(); |
| | | } |
| | | }, |
| | | _stopCountDown: function(){ |
| | | clearInterval(this.autoCloseInterval); |
| | | if(this.$cd) |
| | | this.$cd.remove(); |
| | | }, |
| | | _startCountDown: function(){ |
| | | var that = this; |
| | | var opt = this.autoClose.split('|'); |
| | | if(opt.length !== 2){ |
| | | console.error('Invalid option for autoClose. example \'close|10000\''); |
| | | return false; |
| | | } |
| | | |
| | | var button_key = opt[0]; |
| | | var time = parseInt(opt[1]); |
| | | if(typeof this.buttons[button_key] === 'undefined'){ |
| | | console.error('Invalid button key \'' + button_key + '\' for autoClose'); |
| | | return false; |
| | | } |
| | | |
| | | var seconds = Math.ceil(time / 1000); |
| | | this.$cd = $('<span class="countdown"> (' + seconds + ')</span>') |
| | | .appendTo(this['$_' + button_key]); |
| | | |
| | | this.autoCloseInterval = setInterval(function(){ |
| | | that.$cd.html(' (' + (seconds -= 1) + ') '); |
| | | if(seconds <= 0){ |
| | | that['$$' + button_key].trigger('click'); |
| | | that._stopCountDown(); |
| | | } |
| | | }, 1000); |
| | | }, |
| | | _getKey: function(key){ |
| | | // very necessary keys. |
| | | switch(key){ |
| | | case 192: |
| | | return 'tilde'; |
| | | case 13: |
| | | return 'enter'; |
| | | case 16: |
| | | return 'shift'; |
| | | case 9: |
| | | return 'tab'; |
| | | case 20: |
| | | return 'capslock'; |
| | | case 17: |
| | | return 'ctrl'; |
| | | case 91: |
| | | return 'win'; |
| | | case 18: |
| | | return 'alt'; |
| | | case 27: |
| | | return 'esc'; |
| | | case 32: |
| | | return 'space'; |
| | | } |
| | | |
| | | // only trust alphabets with this. |
| | | var initial = String.fromCharCode(key); |
| | | if(/^[A-z0-9]+$/.test(initial)) |
| | | return initial.toLowerCase(); |
| | | else |
| | | return false; |
| | | }, |
| | | reactOnKey: function(e){ |
| | | var that = this; |
| | | |
| | | /* |
| | | Prevent keyup event if the dialog is not last! |
| | | */ |
| | | var a = $('.jconfirm'); |
| | | if(a.eq(a.length - 1)[0] !== this.$el[0]) |
| | | return false; |
| | | |
| | | var key = e.which; |
| | | /* |
| | | Do not react if Enter or Space is pressed on input elements |
| | | */ |
| | | if(this.$content.find(':input').is(':focus') && /13|32/.test(key)) |
| | | return false; |
| | | |
| | | var keyChar = this._getKey(key); |
| | | |
| | | // If esc is pressed |
| | | if(keyChar === 'esc' && this.escapeKey){ |
| | | if(this.escapeKey === true){ |
| | | this.$scrollPane.trigger('click'); |
| | | } |
| | | else if(typeof this.escapeKey === 'string' || typeof this.escapeKey === 'function'){ |
| | | var buttonKey; |
| | | if(typeof this.escapeKey === 'function'){ |
| | | buttonKey = this.escapeKey(); |
| | | }else{ |
| | | buttonKey = this.escapeKey; |
| | | } |
| | | |
| | | if(buttonKey) |
| | | if(typeof this.buttons[buttonKey] === 'undefined'){ |
| | | console.warn('Invalid escapeKey, no buttons found with key ' + buttonKey); |
| | | }else{ |
| | | this['$_' + buttonKey].trigger('click'); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // check if any button is listening to this key. |
| | | $.each(this.buttons, function(key, button){ |
| | | if(button.keys.indexOf(keyChar) !== -1){ |
| | | that['$_' + key].trigger('click'); |
| | | } |
| | | }); |
| | | }, |
| | | setDialogCenter: function(){ |
| | | console.info('setDialogCenter is deprecated, dialogs are centered with CSS3 tables'); |
| | | }, |
| | | _unwatchContent: function(){ |
| | | clearInterval(this._timer); |
| | | }, |
| | | close: function(onClosePayload){ |
| | | var that = this; |
| | | |
| | | if(typeof this.onClose === 'function') |
| | | this.onClose(onClosePayload); |
| | | |
| | | this._unwatchContent(); |
| | | |
| | | /* |
| | | unbind the window resize & keyup event. |
| | | */ |
| | | $(window).unbind('resize.' + this._id); |
| | | $(window).unbind('keyup.' + this._id); |
| | | $(window).unbind('jcKeyDown.' + this._id); |
| | | |
| | | if(this.draggable){ |
| | | $(window).unbind('mousemove.' + this._id); |
| | | $(window).unbind('mouseup.' + this._id); |
| | | this.$titleContainer.unbind('mousedown'); |
| | | } |
| | | |
| | | that.$el.removeClass(that.loadedClass); |
| | | $('body').removeClass('jconfirm-no-scroll-' + that._id); |
| | | that.$jconfirmBoxContainer.removeClass('jconfirm-no-transition'); |
| | | |
| | | setTimeout(function(){ |
| | | that.$body.addClass(that.closeAnimationParsed); |
| | | that.$jconfirmBg.addClass('jconfirm-bg-h'); |
| | | var closeTimer = (that.closeAnimation === 'none') ? 1 : that.animationSpeed; |
| | | |
| | | setTimeout(function(){ |
| | | that.$el.remove(); |
| | | |
| | | var l = w.jconfirm.instances; |
| | | var i = w.jconfirm.instances.length - 1; |
| | | for(i; i >= 0; i--){ |
| | | if(w.jconfirm.instances[i]._id === that._id){ |
| | | w.jconfirm.instances.splice(i, 1); |
| | | } |
| | | } |
| | | |
| | | // Focusing a element, scrolls automatically to that element. |
| | | // no instances should be open, lastFocused should be true, the lastFocused element must exists in DOM |
| | | if(!w.jconfirm.instances.length){ |
| | | if(that.scrollToPreviousElement && w.jconfirm.lastFocused && w.jconfirm.lastFocused.length && $.contains(document, w.jconfirm.lastFocused[0])){ |
| | | var $lf = w.jconfirm.lastFocused; |
| | | if(that.scrollToPreviousElementAnimate){ |
| | | var st = $(window).scrollTop(); |
| | | var ot = w.jconfirm.lastFocused.offset().top; |
| | | var wh = $(window).height(); |
| | | if(!(ot > st && ot < (st + wh))){ |
| | | var scrollTo = (ot - Math.round((wh / 3))); |
| | | $('html, body').animate({ |
| | | scrollTop: scrollTo |
| | | }, that.animationSpeed, 'swing', function(){ |
| | | // gracefully scroll and then focus. |
| | | $lf.focus(); |
| | | }); |
| | | }else{ |
| | | // the element to be focused is already in view. |
| | | $lf.focus(); |
| | | } |
| | | }else{ |
| | | $lf.focus(); |
| | | } |
| | | w.jconfirm.lastFocused = false; |
| | | } |
| | | } |
| | | |
| | | if(typeof that.onDestroy === 'function') |
| | | that.onDestroy(); |
| | | |
| | | }, closeTimer * 0.40); |
| | | }, 50); |
| | | |
| | | return true; |
| | | }, |
| | | open: function(){ |
| | | if(this.isOpen()) |
| | | return false; |
| | | |
| | | // var that = this; |
| | | this._buildHTML(); |
| | | this._bindEvents(); |
| | | this._open(); |
| | | |
| | | return true; |
| | | }, |
| | | setStartingPoint: function(){ |
| | | var el = false; |
| | | |
| | | if(this.animateFromElement !== true && this.animateFromElement){ |
| | | el = this.animateFromElement; |
| | | w.jconfirm.lastClicked = false; |
| | | }else if(w.jconfirm.lastClicked && this.animateFromElement === true){ |
| | | el = w.jconfirm.lastClicked; |
| | | w.jconfirm.lastClicked = false; |
| | | }else{ |
| | | return false; |
| | | } |
| | | |
| | | if(!el) |
| | | return false; |
| | | |
| | | var offset = el.offset(); |
| | | |
| | | var iTop = el.outerHeight() / 2; |
| | | var iLeft = el.outerWidth() / 2; |
| | | |
| | | // placing position of jconfirm modal in center of clicked element |
| | | iTop -= this.$jconfirmBox.outerHeight() / 2; |
| | | iLeft -= this.$jconfirmBox.outerWidth() / 2; |
| | | |
| | | // absolute position on screen |
| | | var sourceTop = offset.top + iTop; |
| | | sourceTop = sourceTop - this._scrollTop(); |
| | | var sourceLeft = offset.left + iLeft; |
| | | |
| | | // window halved |
| | | var wh = $(window).height() / 2; |
| | | var ww = $(window).width() / 2; |
| | | |
| | | var targetH = wh - this.$jconfirmBox.outerHeight() / 2; |
| | | var targetW = ww - this.$jconfirmBox.outerWidth() / 2; |
| | | |
| | | sourceTop -= targetH; |
| | | sourceLeft -= targetW; |
| | | |
| | | // Check if the element is inside the viewable window. |
| | | if(Math.abs(sourceTop) > wh || Math.abs(sourceLeft) > ww) |
| | | return false; |
| | | |
| | | this.$jconfirmBoxContainer.css('transform', 'translate(' + sourceLeft + 'px, ' + sourceTop + 'px)'); |
| | | }, |
| | | _open: function(){ |
| | | var that = this; |
| | | if(typeof that.onOpenBefore === 'function') |
| | | that.onOpenBefore(); |
| | | |
| | | this.$body.removeClass(this.animationParsed); |
| | | this.$jconfirmBg.removeClass('jconfirm-bg-h'); |
| | | this.$body.focus(); |
| | | |
| | | that.$jconfirmBoxContainer.css('transform', 'translate(' + 0 + 'px, ' + 0 + 'px)'); |
| | | |
| | | setTimeout(function(){ |
| | | that.$body.css(that._getCSS(that.animationSpeed, 1)); |
| | | that.$body.css({ |
| | | 'transition-property': that.$body.css('transition-property') + ', margin' |
| | | }); |
| | | that.$jconfirmBoxContainer.addClass('jconfirm-no-transition'); |
| | | that._modalReady.resolve(); |
| | | if(typeof that.onOpen === 'function') |
| | | that.onOpen(); |
| | | |
| | | that.$el.addClass(that.loadedClass); |
| | | }, this.animationSpeed); |
| | | }, |
| | | loadedClass: 'jconfirm-open', |
| | | isClosed: function(){ |
| | | return !this.$el || this.$el.parent().length === 0; |
| | | }, |
| | | isOpen: function(){ |
| | | return !this.isClosed(); |
| | | }, |
| | | toggle: function(){ |
| | | if(!this.isOpen()) |
| | | this.open(); |
| | | else |
| | | this.close(); |
| | | } |
| | | }; |
| | | |
| | | w.jconfirm.instances = []; |
| | | w.jconfirm.lastFocused = false; |
| | | w.jconfirm.pluginDefaults = { |
| | | template: '' + |
| | | '<div class="jconfirm">' + |
| | | '<div class="jconfirm-bg jconfirm-bg-h"></div>' + |
| | | '<div class="jconfirm-scrollpane">' + |
| | | '<div class="jconfirm-row">' + |
| | | '<div class="jconfirm-cell">' + |
| | | '<div class="jconfirm-holder">' + |
| | | '<div class="jc-bs3-container">' + |
| | | '<div class="jc-bs3-row">' + |
| | | '<div class="jconfirm-box-container jconfirm-animated">' + |
| | | '<div class="jconfirm-box" role="dialog" aria-labelledby="labelled" tabindex="-1">' + |
| | | '<div class="jconfirm-closeIcon">×</div>' + |
| | | '<div class="jconfirm-title-c">' + |
| | | '<span class="jconfirm-icon-c"></span>' + |
| | | '<span class="jconfirm-title"></span>' + |
| | | '</div>' + |
| | | '<div class="jconfirm-content-pane">' + |
| | | '<div class="jconfirm-content"></div>' + |
| | | '</div>' + |
| | | '<div class="jconfirm-buttons">' + |
| | | '</div>' + |
| | | '<div class="jconfirm-clear">' + |
| | | '</div>' + |
| | | '</div>' + |
| | | '</div>' + |
| | | '</div>' + |
| | | '</div>' + |
| | | '</div>' + |
| | | '</div>' + |
| | | '</div>' + |
| | | '</div></div>', |
| | | title: 'Hello', |
| | | titleClass: '', |
| | | type: 'default', |
| | | typeAnimated: true, |
| | | draggable: true, |
| | | dragWindowGap: 15, |
| | | dragWindowBorder: true, |
| | | animateFromElement: true, |
| | | /** |
| | | * @deprecated |
| | | */ |
| | | alignMiddle: true, |
| | | smoothContent: true, |
| | | content: 'Are you sure to continue?', |
| | | buttons: {}, |
| | | defaultButtons: { |
| | | ok: { |
| | | action: function(){ |
| | | } |
| | | }, |
| | | close: { |
| | | action: function(){ |
| | | } |
| | | } |
| | | }, |
| | | contentLoaded: function(){ |
| | | }, |
| | | icon: '', |
| | | lazyOpen: false, |
| | | bgOpacity: null, |
| | | theme: 'light', |
| | | animation: 'scale', |
| | | closeAnimation: 'scale', |
| | | animationSpeed: 400, |
| | | animationBounce: 1, |
| | | escapeKey: true, |
| | | rtl: false, |
| | | container: 'body', |
| | | containerFluid: false, |
| | | backgroundDismiss: false, |
| | | backgroundDismissAnimation: 'shake', |
| | | autoClose: false, |
| | | closeIcon: null, |
| | | closeIconClass: false, |
| | | watchInterval: 100, |
| | | columnClass: 'col-md-4 col-md-offset-4 col-sm-6 col-sm-offset-3 col-xs-10 col-xs-offset-1', |
| | | boxWidth: '50%', |
| | | scrollToPreviousElement: true, |
| | | scrollToPreviousElementAnimate: true, |
| | | useBootstrap: true, |
| | | offsetTop: 40, |
| | | offsetBottom: 40, |
| | | bootstrapClasses: { |
| | | container: 'container', |
| | | containerFluid: 'container-fluid', |
| | | row: 'row' |
| | | }, |
| | | onContentReady: function(){ |
| | | |
| | | }, |
| | | onOpenBefore: function(){ |
| | | |
| | | }, |
| | | onOpen: function(){ |
| | | |
| | | }, |
| | | onClose: function(){ |
| | | |
| | | }, |
| | | onDestroy: function(){ |
| | | |
| | | }, |
| | | onAction: function(){ |
| | | |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * This refers to the issue #241 and #246 |
| | | * |
| | | * Problem: |
| | | * Button A is clicked (keydown) using the Keyboard ENTER key |
| | | * A opens the jconfirm modal B, |
| | | * B has registered ENTER key for one of its button C |
| | | * A is released (keyup), B gets the keyup event and triggers C. |
| | | * |
| | | * Solution: |
| | | * Register a global keydown event, that tells jconfirm if the keydown originated inside jconfirm |
| | | */ |
| | | var keyDown = false; |
| | | $(window).on('keydown', function(e){ |
| | | if(!keyDown){ |
| | | var $target = $(e.target); |
| | | var pass = false; |
| | | if($target.closest('.jconfirm-box').length) |
| | | pass = true; |
| | | if(pass) |
| | | $(window).trigger('jcKeyDown'); |
| | | |
| | | keyDown = true; |
| | | } |
| | | }); |
| | | $(window).on('keyup', function(){ |
| | | keyDown = false; |
| | | }); |
| | | w.jconfirm.lastClicked = false; |
| | | $(document).on('mousedown', 'button, a, [jc-source]', function(){ |
| | | w.jconfirm.lastClicked = $(this); |
| | | }); |
| | | })); |
| | |
| | | <View_SelectedScaffolderCategoryPath>root/Common/MVC/View</View_SelectedScaffolderCategoryPath> |
| | | <Controller_SelectedScaffolderID>MvcControllerEmptyScaffolder</Controller_SelectedScaffolderID> |
| | | <Controller_SelectedScaffolderCategoryPath>root/Common/MVC/Controller</Controller_SelectedScaffolderCategoryPath> |
| | | <NameOfLastUsedPublishProfile>FolderProfile</NameOfLastUsedPublishProfile> |
| | | <NameOfLastUsedPublishProfile>D:\qianwj\ZCOa\zhengcaioa\zhengcaioa\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile> |
| | | <WebStackScaffolding_ViewDialogWidth>650</WebStackScaffolding_ViewDialogWidth> |
| | | <WebStackScaffolding_IsLayoutPageSelected>True</WebStackScaffolding_IsLayoutPageSelected> |
| | | <WebStackScaffolding_IsPartialViewSelected>False</WebStackScaffolding_IsPartialViewSelected> |
| | |
| | | use zhengcaioa |
| | | go |
| | | |
| | | --qwj 2021.6.8 |
| | | alter table plt_user add |
| | | |
| | | ipmac nvarchar(30) null, |
| | |
| | | miniyearsalary decimal(10,2) null, |
| | | senioritywages decimal(10,2) null, |
| | | is_travelsubsidy nvarchar(1) null |
| | | go |
| | | go |
| | | |
| | | --qwj 2021.6.18 |
| | | create table t_sim_bind ( |
| | | id int identity, |
| | | sim_id nvarchar(40) null, |
| | | user_id nvarchar(40) null, |
| | | cardpro nvarchar(5) null, |
| | | up_time datetime null, |
| | | up_user nvarchar(40) null, |
| | | constraint PK_T_SIM_BIND primary key (id) |
| | | ) |
| | | go |
| | | |
| | | create table t_sim_cost ( |
| | | id int identity, |
| | | sim_id nvarchar(40) null, |
| | | user_id nvarchar(40) null, |
| | | allow_amount decimal(10,2) null, |
| | | bill_amount decimal(10,2) null, |
| | | amount decimal(10,2) null, |
| | | bill_year int null, |
| | | bill_month int null, |
| | | accounted_time datetime null, |
| | | status nvarchar(1) null, |
| | | up_time datetime null, |
| | | sub_userid nvarchar(40) null, |
| | | audit_time datetime null, |
| | | audit_userid nvarchar(40) null, |
| | | constraint PK_T_SIM_COST primary key (id) |
| | | ) |
| | | go |
| | | |
| | | --çµè¯å¡ç±»åå®ä¹ |
| | | insert into [adm_goods_classify] values('d309d1af-5086-453a-b5a2-58b344dfff97','çµè¯å¡','A','e4c93811-b9b1-4998-89f5-c416ebab0c07',getdate(),'e4c93811-b9b1-4998-89f5-c416ebab0c07',getdate(),'04') |
| | | --补贴åå
¸å®ä¹ |
| | | insert into [sys_code] values('107bc4e5-f13a-4d25-bd47-e4b1e61aed8a','t_sim_bind','cardpro','çµè¯è¡¥è´´','A','e4c93811-b9b1-4998-89f5-c416ebab0c07',getdate(),'e4c93811-b9b1-4998-89f5-c416ebab0c07',getdate()) |
| | | |
| | | insert into [sys_code_dtl]([Id],[code_sn],[code_id],[comments],[sort] ,[rec_status],[creater],[createtime],[modifier],[modifytime]) values('2632d933-31a3-4692-a954-df11bf223854','50','107bc4e5-f13a-4d25-bd47-e4b1e61aed8a','50',1,'A','e4c93811-b9b1-4998-89f5-c416ebab0c07',getdate(),'e4c93811-b9b1-4998-89f5-c416ebab0c07',getdate()) |
| | | |
| | | insert into [sys_code_dtl]([Id],[code_sn],[code_id],[comments],[sort] ,[rec_status],[creater],[createtime],[modifier],[modifytime]) values('306d666f-e93c-415c-a294-414e34cb3311','100','107bc4e5-f13a-4d25-bd47-e4b1e61aed8a','100',2,'A','e4c93811-b9b1-4998-89f5-c416ebab0c07',getdate(),'e4c93811-b9b1-4998-89f5-c416ebab0c07',getdate()) |
| | | |
| | | insert into [sys_code_dtl]([Id],[code_sn],[code_id],[comments],[sort] ,[rec_status],[creater],[createtime],[modifier],[modifytime]) values('61711fb1-0b96-4611-9dc0-6c69dfef656c','9999','107bc4e5-f13a-4d25-bd47-e4b1e61aed8a','ä¸é',3,'A','e4c93811-b9b1-4998-89f5-c416ebab0c07',getdate(),'e4c93811-b9b1-4998-89f5-c416ebab0c07',getdate()) |
| | | |
| | | create view v_sim_bind as |
| | | SELECT a.Id, a.goods_name AS simcard, a.goods_status AS simstatus, c.user_id AS userid, b.user_name AS username, |
| | | c.cardpro, c.up_time |
| | | FROM dbo.adm_goods_manage AS a LEFT OUTER JOIN |
| | | dbo.t_sim_bind AS c ON a.Id = c.sim_id LEFT OUTER JOIN |
| | | dbo.plt_user AS b ON c.user_id = b.Id |
| | | WHERE (a.classify_id = 'd309d1af-5086-453a-b5a2-58b344dfff97' and a.goods_status='A') |
| | | go |
| | | |
| | | --çµè¯å¡åé
èå |
| | | insert into [plt_page] values('a3479c03-d554-4e02-b201-487e8e1dfb55','1','çµè¯å¡åé
','',3,'/Sim/Index/','01','M','967b0bdd-cd5d-4660-8c72-7f744c07751b','',0,'A','e4c93811-b9b1-4998-89f5-c416ebab0c07',getdate(),'e4c93811-b9b1-4998-89f5-c416ebab0c07',getdate()) |
| | | --çµè¯è´¹è®°å½æç» |
| | | insert into [plt_page] values('5E973843-7EB4-41A6-B49B-192208647B2C','1','çµè¯è´¹ç¨è®°å½','',4,'/SimCost/Index/','01','M','967b0bdd-cd5d-4660-8c72-7f744c07751b','',0,'A','e4c93811-b9b1-4998-89f5-c416ebab0c07',getdate(),'e4c93811-b9b1-4998-89f5-c416ebab0c07',getdate()) |
| | | |
| | | create view v_sim_cost as |
| | | select a.[id],[sim_id],[user_id],[allow_amount],[bill_amount],[bill_year],[bill_month],[status],[up_time] |
| | | ,b.goods_name,c.user_name |
| | | FROM [t_sim_cost] a inner join adm_goods_manage b on a.sim_id =b.Id |
| | | left join plt_user c on a.user_id=c.Id |
| | | go |
| | | |