diff --git a/internal/web/actions/default/admins/recipients/createPopup.go b/internal/web/actions/default/admins/recipients/createPopup.go index 8fe807f0..f98712b0 100644 --- a/internal/web/actions/default/admins/recipients/createPopup.go +++ b/internal/web/actions/default/admins/recipients/createPopup.go @@ -5,6 +5,7 @@ import ( "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" "github.com/iwind/TeaGo/actions" + "regexp" ) type CreatePopupAction struct { @@ -29,6 +30,14 @@ func (this *CreatePopupAction) RunPost(params struct { GroupIds string Description string + TimeFromHour string + TimeFromMinute string + TimeFromSecond string + + TimeToHour string + TimeToMinute string + TimeToSecond string + Must *actions.Must CSRF *actionutils.CSRF }) { @@ -40,12 +49,26 @@ func (this *CreatePopupAction) RunPost(params struct { groupIds := utils.SplitNumbers(params.GroupIds) + var digitReg = regexp.MustCompile(`^\d+$`) + + var timeFrom = "" + if digitReg.MatchString(params.TimeFromHour) && digitReg.MatchString(params.TimeFromMinute) && digitReg.MatchString(params.TimeFromSecond) { + timeFrom = params.TimeFromHour + ":" + params.TimeFromMinute + ":" + params.TimeFromSecond + } + + var timeTo = "" + if digitReg.MatchString(params.TimeToHour) && digitReg.MatchString(params.TimeToMinute) && digitReg.MatchString(params.TimeToSecond) { + timeTo = params.TimeToHour + ":" + params.TimeToMinute + ":" + params.TimeToSecond + } + resp, err := this.RPC().MessageRecipientRPC().CreateMessageRecipient(this.AdminContext(), &pb.CreateMessageRecipientRequest{ AdminId: params.AdminId, MessageMediaInstanceId: params.InstanceId, User: params.User, MessageRecipientGroupIds: groupIds, Description: params.Description, + TimeFrom: timeFrom, + TimeTo: timeTo, }) if err != nil { this.ErrorPage(err) diff --git a/internal/web/actions/default/admins/recipients/recipient.go b/internal/web/actions/default/admins/recipients/recipient.go index 01b9cf03..0ef64cd4 100644 --- a/internal/web/actions/default/admins/recipients/recipient.go +++ b/internal/web/actions/default/admins/recipients/recipient.go @@ -44,6 +44,8 @@ func (this *RecipientAction) RunGet(params struct { }, "user": recipient.User, "description": recipient.Description, + "timeFrom": recipient.TimeFrom, + "timeTo": recipient.TimeTo, } this.Show() diff --git a/internal/web/actions/default/admins/recipients/update.go b/internal/web/actions/default/admins/recipients/update.go index c7665e98..96f8f196 100644 --- a/internal/web/actions/default/admins/recipients/update.go +++ b/internal/web/actions/default/admins/recipients/update.go @@ -6,6 +6,8 @@ import ( "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" "github.com/iwind/TeaGo/actions" "github.com/iwind/TeaGo/maps" + "regexp" + "strings" ) type UpdateAction struct { @@ -30,6 +32,27 @@ func (this *UpdateAction) RunGet(params struct { return } + var timeFromHour = "" + var timeFromMinute = "" + var timeFromSecond = "" + + if len(recipient.TimeFrom) > 0 { + var pieces = strings.Split(recipient.TimeFrom, ":") + timeFromHour = pieces[0] + timeFromMinute = pieces[1] + timeFromSecond = pieces[2] + } + + var timeToHour = "" + var timeToMinute = "" + var timeToSecond = "" + if len(recipient.TimeTo) > 0 { + var pieces = strings.Split(recipient.TimeTo, ":") + timeToHour = pieces[0] + timeToMinute = pieces[1] + timeToSecond = pieces[2] + } + this.Data["recipient"] = maps.Map{ "id": recipient.Id, "admin": maps.Map{ @@ -43,8 +66,14 @@ func (this *UpdateAction) RunGet(params struct { "id": recipient.MessageMediaInstance.Id, "name": recipient.MessageMediaInstance.Name, }, - "user": recipient.User, - "description": recipient.Description, + "user": recipient.User, + "description": recipient.Description, + "timeFromHour": timeFromHour, + "timeFromMinute": timeFromMinute, + "timeFromSecond": timeFromSecond, + "timeToHour": timeToHour, + "timeToMinute": timeToMinute, + "timeToSecond": timeToSecond, } this.Show() @@ -61,6 +90,14 @@ func (this *UpdateAction) RunPost(params struct { Description string IsOn bool + TimeFromHour string + TimeFromMinute string + TimeFromSecond string + + TimeToHour string + TimeToMinute string + TimeToSecond string + Must *actions.Must CSRF *actionutils.CSRF }) { @@ -74,6 +111,18 @@ func (this *UpdateAction) RunPost(params struct { groupIds := utils.SplitNumbers(params.GroupIds) + var digitReg = regexp.MustCompile(`^\d+$`) + + var timeFrom = "" + if digitReg.MatchString(params.TimeFromHour) && digitReg.MatchString(params.TimeFromMinute) && digitReg.MatchString(params.TimeFromSecond) { + timeFrom = params.TimeFromHour + ":" + params.TimeFromMinute + ":" + params.TimeFromSecond + } + + var timeTo = "" + if digitReg.MatchString(params.TimeToHour) && digitReg.MatchString(params.TimeToMinute) && digitReg.MatchString(params.TimeToSecond) { + timeTo = params.TimeToHour + ":" + params.TimeToMinute + ":" + params.TimeToSecond + } + _, err := this.RPC().MessageRecipientRPC().UpdateMessageRecipient(this.AdminContext(), &pb.UpdateMessageRecipientRequest{ MessageRecipientId: params.RecipientId, AdminId: params.AdminId, @@ -82,6 +131,8 @@ func (this *UpdateAction) RunPost(params struct { MessageRecipientGroupIds: groupIds, Description: params.Description, IsOn: params.IsOn, + TimeFrom: timeFrom, + TimeTo: timeTo, }) if err != nil { this.ErrorPage(err) diff --git a/web/views/@default/admins/recipients/createPopup.html b/web/views/@default/admins/recipients/createPopup.html index 8dad0bd4..23c3c4e1 100644 --- a/web/views/@default/admins/recipients/createPopup.html +++ b/web/views/@default/admins/recipients/createPopup.html @@ -34,11 +34,69 @@ - 备注 - - - + + + + 发送时间 + +
+
+ 开始时间: +
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+ 结束时间: +
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+

24小时制,即小时从0到23。如果填写了发送时间,系统只会在这个时间段内给当前接收人发送消息。 [清除]

+ + + + 备注 + + + + + diff --git a/web/views/@default/admins/recipients/createPopup.js b/web/views/@default/admins/recipients/createPopup.js index f81c2a6e..212f3935 100644 --- a/web/views/@default/admins/recipients/createPopup.js +++ b/web/views/@default/admins/recipients/createPopup.js @@ -1,11 +1,30 @@ Tea.context(function () { - this.userDescription = "" + this.userDescription = "" - this.changeInstance = function (instance) { - if (instance != null) { - this.userDescription = instance.media.userDescription - } else { - this.userDescription = "" - } - } + this.changeInstance = function (instance) { + if (instance != null) { + this.userDescription = instance.media.userDescription + } else { + this.userDescription = "" + } + } + + /** + * 发送时间 + */ + this.timeFromHour = "" + this.timeFromMinute = "" + this.timeFromSecond = "" + this.timeToHour = "" + this.timeToMinute = "" + this.timeToSecond = "" + + this.clearTime = function () { + this.timeFromHour = "" + this.timeFromMinute = "" + this.timeFromSecond = "" + this.timeToHour = "" + this.timeToMinute = "" + this.timeToSecond = "" + } }) \ No newline at end of file diff --git a/web/views/@default/admins/recipients/index.js b/web/views/@default/admins/recipients/index.js index 5f1eaf43..2bb90b9a 100644 --- a/web/views/@default/admins/recipients/index.js +++ b/web/views/@default/admins/recipients/index.js @@ -1,7 +1,7 @@ Tea.context(function () { this.createRecipient = function () { teaweb.popup(Tea.url(".createPopup"), { - height: "26em", + height: "27em", callback: function () { teaweb.success("保存成功", function () { teaweb.reload() diff --git a/web/views/@default/admins/recipients/instances/createPopup.html b/web/views/@default/admins/recipients/instances/createPopup.html index 7527430a..c0985126 100644 --- a/web/views/@default/admins/recipients/instances/createPopup.html +++ b/web/views/@default/admins/recipients/instances/createPopup.html @@ -348,14 +348,14 @@
- +
/
- + 分钟
diff --git a/web/views/@default/admins/recipients/instances/index.html b/web/views/@default/admins/recipients/instances/index.html index a7262213..2d46e52e 100644 --- a/web/views/@default/admins/recipients/instances/index.html +++ b/web/views/@default/admins/recipients/instances/index.html @@ -18,7 +18,7 @@ - {{instance.name}} + {{instance.name}} {{instance.media.name}} {{instance.description}} diff --git a/web/views/@default/admins/recipients/instances/update.html b/web/views/@default/admins/recipients/instances/update.html index 1a3ac1c0..6351eea1 100644 --- a/web/views/@default/admins/recipients/instances/update.html +++ b/web/views/@default/admins/recipients/instances/update.html @@ -348,14 +348,14 @@
- +
/
- + 分钟
diff --git a/web/views/@default/admins/recipients/recipient.html b/web/views/@default/admins/recipients/recipient.html index 1940244b..69fd226c 100644 --- a/web/views/@default/admins/recipients/recipient.html +++ b/web/views/@default/admins/recipients/recipient.html @@ -40,6 +40,13 @@
+ + 发送时间 + + {{recipient.timeFrom}} - {{recipient.timeTo}} + - + + 备注 diff --git a/web/views/@default/admins/recipients/update.html b/web/views/@default/admins/recipients/update.html index c090449c..f6f98ddd 100644 --- a/web/views/@default/admins/recipients/update.html +++ b/web/views/@default/admins/recipients/update.html @@ -35,17 +35,76 @@ - 备注 - - - - - - 是否启用 - - - + + + + 发送时间 + +
+
+ 开始时间: +
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+ 结束时间: +
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+

24小时制,即小时从0到23。如果填写了发送时间,系统只会在这个时间段内给当前接收人发送消息。 + [清除]

+ + + + 备注 + + + + + + 是否启用 + + + + + diff --git a/web/views/@default/admins/recipients/update.js b/web/views/@default/admins/recipients/update.js index fe35fc5b..d0d5431d 100644 --- a/web/views/@default/admins/recipients/update.js +++ b/web/views/@default/admins/recipients/update.js @@ -17,4 +17,13 @@ Tea.context(function () { }) }) } + + this.clearTime = function () { + this.recipient.timeFromHour = "" + this.recipient.timeFromMinute = "" + this.recipient.timeFromSecond = "" + this.recipient.timeToHour = "" + this.recipient.timeToMinute = "" + this.recipient.timeToSecond = "" + } }) \ No newline at end of file