/
AdminMangaAddModal.cs
135 lines (109 loc) · 4.08 KB
/
AdminMangaAddModal.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
// AdminMangaAddModal.cs
//
using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using afung.MangaWeb3.Client.Admin.Module;
using afung.MangaWeb3.Client.Modal;
using afung.MangaWeb3.Common;
using jQueryApi;
namespace afung.MangaWeb3.Client.Admin.Modal
{
public class AdminMangaAddModal : ModalBase
{
private static AdminMangaAddModal instance = null;
private static AdminMangasModule mangasModule = null;
private bool submittingForm = false;
private AdminMangaAddModal()
: base("admin", "admin-manga-add-modal")
{
}
protected override void Initialize()
{
jQuery.Select("#admin-manga-add-submit").Click(SubmitForm);
jQuery.Select("#admin-manga-add-form").Submit(SubmitForm);
jQuery.Select("#admin-manga-add-browse-btn").Click(BrowseButtonClicked);
}
protected override void OnShown()
{
jQuery.Select("#admin-manga-add-path").Focus();
}
public static void ShowDialog(AdminMangasModule mangasModule)
{
if (instance == null)
{
instance = new AdminMangaAddModal();
}
instance.InternalShow();
AdminMangaAddModal.mangasModule = mangasModule;
}
public void InternalShow()
{
Show();
jQuery.Select("#admin-manga-add-path").Value("").Focus();
jQuery.Select("#admin-manga-add-collection").Children().Remove();
Request.Send(new AdminCollectionsGetRequest(), GetRequestSuccess);
}
[AlternateSignature]
private extern void GetRequestSuccess(JsonResponse response);
private void GetRequestSuccess(AdminCollectionsGetResponse response)
{
foreach (CollectionJson collection in response.collections)
{
jQuery.FromHtml("<option></option>").AppendTo(jQuery.Select("#admin-manga-add-collection")).Value(collection.id.ToString()).Text(collection.name);
}
}
private void SubmitForm(jQueryEvent e)
{
e.PreventDefault();
string cidString = jQuery.Select("#admin-manga-add-collection").GetValue();
string path = jQuery.Select("#admin-manga-add-path").GetValue();
if (path == null || path == "" || cidString == null || cidString == "" || submittingForm)
{
return;
}
submittingForm = true;
AdminMangaAddRequest request = new AdminMangaAddRequest();
request.path = path;
request.cid = int.Parse(cidString, 10);
Request.Send(request, SubmitSuccess, SubmitFailure);
}
[AlternateSignature]
private extern void SubmitSuccess(JsonResponse response);
private void SubmitSuccess(AdminMangaAddResponse response)
{
submittingForm = false;
switch (response.status)
{
case 0:
Hide();
// mangasModule.Refresh();
break;
case 1:
ErrorModal.ShowError(Strings.Get("FileNotExist"));
break;
case 2:
ErrorModal.ShowError(Strings.Get("PathNotUnderCollection"));
break;
default:
ErrorModal.ShowError(Strings.Get("UnknownError"));
break;
}
}
private void SubmitFailure(Exception error)
{
submittingForm = false;
ErrorModal.ShowError(error.ToString());
}
private void BrowseButtonClicked(jQueryEvent e)
{
e.PreventDefault();
string cidString = jQuery.Select("#admin-manga-add-collection").GetValue();
if (cidString == null || cidString == "" || submittingForm)
{
return;
}
AdminFinderModal.ShowDialog(jQuery.Select("#admin-manga-add-path"), int.Parse(cidString, 10));
}
}
}