Skip to content
This repository was archived by the owner on Nov 4, 2024. It is now read-only.

Commit 4cc2207

Browse files
committed
Uploading and preparing the repository to the dev version.
Original unminified source code (dev folder - js, css, less) (fixes #6) Grunt build system Multiple identities correction (fixes #9) Compose html editor (fixes #12) New general settings - Loading Description New warning about default admin password Split general and login screen settings
1 parent afad451 commit 4cc2207

File tree

846 files changed

+99447
-2117
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

846 files changed

+99447
-2117
lines changed

.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
/.idea
2+
/nbproject
3+
/npm-debug.log
4+
/node_modules
5+
/build/dist
6+
/build/tmp
7+
/data

Gruntfile.js

Lines changed: 382 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,382 @@
1+
2+
/*jshint node: true */
3+
4+
'use strict';
5+
6+
module.exports = function(grunt) {
7+
8+
grunt.initConfig({
9+
pkg: grunt.file.readJSON("package.json"),
10+
less: {
11+
development: {
12+
files: {
13+
"rainloop/v/<%= pkg.version %>/static/css/less.css": "dev/Styles/@Main.less"
14+
}
15+
}
16+
},
17+
jshint: {
18+
files: [
19+
'Gruntfile.js',
20+
'rainloop/v/<%= pkg.version %>/static/js/app.js',
21+
'rainloop/v/<%= pkg.version %>/static/js/admin.js'
22+
],
23+
options: {
24+
boss: true,
25+
browser: true,
26+
curly: true,
27+
eqeqeq: true,
28+
eqnull: true,
29+
expr: true,
30+
evil: true,
31+
newcap: true,
32+
noarg: true,
33+
undef: true,
34+
smarttabs: true,
35+
sub: true,
36+
globals: {
37+
define: true,
38+
window: true,
39+
jQuery: true,
40+
ko: true,
41+
console: true,
42+
moment: true,
43+
crossroads: true,
44+
hasher: true,
45+
Jua: true,
46+
_: true,
47+
Dropbox: true
48+
}
49+
}
50+
},
51+
uglify: {
52+
options: {
53+
compress: true,
54+
mangle: true,
55+
preserveComments: "some"
56+
},
57+
cookie: {
58+
options: {
59+
banner: "/*! jquery.cookie v1.4.0 (c) 2013 Klaus Hartl | MIT */\n",
60+
preserveComments: "false"
61+
},
62+
src: "vendors/jquery-cookie/jquery.cookie.js",
63+
dest: "vendors/jquery-cookie/jquery.cookie-1.4.0.min.js"
64+
},
65+
wakeup: {
66+
options: {
67+
banner: "/*! jQuery WakeUp plugin (c) 2013 Paul Okopny <paul.okopny@gmail.com> | MIT */\n",
68+
preserveComments: "false"
69+
},
70+
src: "vendors/jquery-wakeup/jquery.wakeup.js",
71+
dest: "vendors/jquery-wakeup/jquery.wakeup.min.js"
72+
},
73+
mousewheel: {
74+
options: {
75+
banner: "/*! jquery.mousewheel v3.1.4 (c) 2013 Brandon Aaron (http://brandon.aaron.sh) | MIT */\n",
76+
preserveComments: "false"
77+
},
78+
src: "vendors/jquery-mousewheel/jquery.mousewheel.js",
79+
dest: "vendors/jquery-mousewheel/jquery.mousewheel-3.1.4.min.js"
80+
},
81+
nano: {
82+
options: {
83+
banner: "/*! nanoScrollerJS v0.7 (c) 2013 James Florentino; modified by RainLoop Team | MIT */\n",
84+
preserveComments: "false"
85+
},
86+
src: "vendors/jquery-nanoscroller/jquery.nanoscroller.js",
87+
dest: "vendors/jquery-nanoscroller/jquery.nanoscroller-0.7.min.js"
88+
},
89+
pace: {
90+
src: "vendors/simple-pace/simple-pace.js",
91+
dest: "vendors/simple-pace/simple-pace-1.0.min.js"
92+
},
93+
rl: {
94+
src: "vendors/rl/rl.js",
95+
dest: "vendors/rl/rl-1.0.min.js"
96+
},
97+
min_app: {
98+
src: "rainloop/v/<%= pkg.version %>/static/js/app.js",
99+
dest: "rainloop/v/<%= pkg.version %>/static/js/app.min.js"
100+
},
101+
min_admin: {
102+
src: "rainloop/v/<%= pkg.version %>/static/js/admin.js",
103+
dest: "rainloop/v/<%= pkg.version %>/static/js/admin.min.js"
104+
}
105+
},
106+
concat: {
107+
js_index: {
108+
nonull: true,
109+
src: [
110+
"vendors/json2.min.js",
111+
"vendors/simple-pace/simple-pace-1.0.min.js",
112+
"vendors/rl/rl-1.0.min.js"
113+
],
114+
dest: "rainloop/v/<%= pkg.version %>/static/js/boot.js"
115+
},
116+
js_libs: {
117+
nonull: true,
118+
options: {
119+
separator: "\n\n"
120+
},
121+
src: [
122+
"vendors/modernizr.js",
123+
"vendors/underscore/underscore-1.5.2.min.js",
124+
"vendors/jquery-1.10.1.min.js",
125+
"vendors/jquery-ui/js/jquery-ui-1.10.3.custom.min.js",
126+
"vendors/jquery-cookie/jquery.cookie-1.4.0.min.js",
127+
"vendors/jquery-mousewheel/jquery.mousewheel-3.1.4.min.js",
128+
"vendors/jquery-scrollstop/jquery.scrollstop.min.js",
129+
"vendors/jquery-lazyload/jquery.lazyload.min.js",
130+
"vendors/jquery-nanoscroller/jquery.nanoscroller-0.7.min.js",
131+
"vendors/jquery-wakeup/jquery.wakeup.min.js",
132+
"vendors/moment/min/moment.min.js ",
133+
"vendors/routes/signals.min.js",
134+
"vendors/routes/hasher.min.js",
135+
"vendors/routes/crossroads.min.js",
136+
"vendors/knockout/knockout-3.0.0.js",
137+
"vendors/jua/jua.min.js",
138+
"vendors/select2-3.4.5/select2.min.js",
139+
"vendors/jquery-magnific-popup/jquery.magnific-popup.min.js",
140+
"vendors/bootstrap/js/bootstrap.min.js",
141+
"dev/Common/_LibsEnd.js"
142+
],
143+
dest: "rainloop/v/<%= pkg.version %>/static/js/libs.js"
144+
},
145+
js_admin: {
146+
nonull: true,
147+
options: {
148+
stripBanners: true,
149+
banner: "/*! RainLoop Admin Module (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */\n" +
150+
"(function (window, $, ko, crossroads, hasher, _) {\n",
151+
footer: "\n\n}(window, jQuery, ko, crossroads, hasher, _));"
152+
},
153+
src: [
154+
"dev/Common/_Begin.js",
155+
"dev/Common/_BeginA.js",
156+
157+
"dev/Common/Globals.js",
158+
"dev/Common/Constants.js",
159+
"dev/Common/Enums.js",
160+
"dev/Common/Utils.js",
161+
"dev/Common/Base64.js",
162+
"dev/Common/Knockout.js",
163+
"dev/Common/LinkBuilder.js",
164+
"dev/Common/Plugins.js",
165+
166+
"dev/Storages/LocalStorages/CookieDriver.js",
167+
"dev/Storages/LocalStorages/LocalStorageDriver.js",
168+
"dev/Storages/LocalStorage.js",
169+
170+
"dev/Knoin/AbstractBoot.js",
171+
"dev/Knoin/AbstractViewModel.js",
172+
"dev/Knoin/AbstractScreen.js",
173+
"dev/Knoin/Knoin.js",
174+
175+
"dev/Models/EmailModel.js",
176+
177+
"dev/ViewModels/PopupsDomainViewModel.js",
178+
"dev/ViewModels/PopupsPluginViewModel.js",
179+
"dev/ViewModels/PopupsActivateViewModel.js",
180+
"dev/ViewModels/PopupsLanguagesViewModel.js",
181+
182+
"dev/ViewModels/AdminLoginViewModel.js",
183+
184+
"dev/ViewModels/AdminMenuViewModel.js",
185+
"dev/ViewModels/AdminPaneViewModel.js",
186+
187+
"dev/Admin/General.js",
188+
"dev/Admin/Login.js",
189+
"dev/Admin/Domains.js",
190+
"dev/Admin/Security.js",
191+
"dev/Admin/Social.js",
192+
"dev/Admin/Plugins.js",
193+
"dev/Admin/Packages.js",
194+
"dev/Admin/Licensing.js",
195+
196+
"dev/Storages/AbstractData.js",
197+
"dev/Storages/AdminData.js",
198+
199+
"dev/Storages/AbstractAjaxRemote.js",
200+
"dev/Storages/AdminAjaxRemote.js",
201+
202+
"dev/Storages/AbstractCache.js",
203+
"dev/Storages/AdminCache.js",
204+
205+
"dev/Screens/AbstractSettings.js",
206+
207+
"dev/Screens/AdminLogin.js",
208+
"dev/Screens/AdminSettings.js",
209+
210+
"dev/Boots/AbstractApp.js",
211+
"dev/Boots/AdminApp.js",
212+
213+
"dev/Common/_End.js",
214+
"dev/Common/_CoreEnd.js"
215+
],
216+
dest: "rainloop/v/<%= pkg.version %>/static/js/admin.js"
217+
},
218+
js_app: {
219+
nonull: true,
220+
options: {
221+
stripBanners: true,
222+
banner: "/*! RainLoop Webmail Module (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */\n" +
223+
"(function (window, $, ko, crossroads, hasher, moment, Jua, _) {\n",
224+
footer: "\n\n}(window, jQuery, ko, crossroads, hasher, moment, Jua, _));"
225+
},
226+
src: [
227+
"dev/Common/_Begin.js",
228+
"dev/Common/_BeginW.js",
229+
230+
"dev/Common/Globals.js",
231+
"dev/Common/Constants.js",
232+
"dev/Common/Enums.js",
233+
"dev/Common/Utils.js",
234+
"dev/Common/Base64.js",
235+
"dev/Common/Knockout.js",
236+
"dev/Common/LinkBuilder.js",
237+
"dev/Common/Plugins.js",
238+
"dev/Common/HtmlEditor.js",
239+
"dev/Common/Selector.js",
240+
241+
"dev/Storages/LocalStorages/CookieDriver.js",
242+
"dev/Storages/LocalStorages/LocalStorageDriver.js",
243+
"dev/Storages/LocalStorage.js",
244+
245+
"dev/Knoin/AbstractBoot.js",
246+
"dev/Knoin/AbstractViewModel.js",
247+
"dev/Knoin/AbstractScreen.js",
248+
"dev/Knoin/Knoin.js",
249+
250+
"dev/Models/EmailModel.js",
251+
"dev/Models/ContactModel.js",
252+
"dev/Models/AttachmentModel.js",
253+
"dev/Models/ComposeAttachmentModel.js",
254+
"dev/Models/MessageModel.js",
255+
"dev/Models/FolderModel.js",
256+
"dev/Models/AccountModel.js",
257+
"dev/Models/IdentityModel.js",
258+
259+
"dev/ViewModels/PopupsFolderClearViewModel.js",
260+
"dev/ViewModels/PopupsFolderCreateViewModel.js",
261+
"dev/ViewModels/PopupsFolderSystemViewModel.js",
262+
"dev/ViewModels/PopupsComposeViewModel.js",
263+
"dev/ViewModels/PopupsContactsViewModel.js",
264+
"dev/ViewModels/PopupsAdvancedSearchViewModel.js",
265+
"dev/ViewModels/PopupsAddAccountViewModel.js",
266+
"dev/ViewModels/PopupsIdentityViewModel.js",
267+
"dev/ViewModels/PopupsLanguagesViewModel.js",
268+
269+
"dev/ViewModels/LoginViewModel.js",
270+
271+
"dev/ViewModels/AbstractSystemDropDownViewModel.js",
272+
"dev/ViewModels/MailBoxSystemDropDownViewModel.js",
273+
"dev/ViewModels/SettingsSystemDropDownViewModel.js",
274+
275+
"dev/ViewModels/MailBoxFolderListViewModel.js",
276+
"dev/ViewModels/MailBoxMessageListViewModel.js",
277+
"dev/ViewModels/MailBoxMessageViewViewModel.js",
278+
279+
"dev/ViewModels/SettingsMenuViewModel.js",
280+
"dev/ViewModels/SettingsPaneViewModel.js",
281+
282+
"dev/Settings/General.js",
283+
"dev/Settings/Personal.js",
284+
"dev/Settings/Accounts.js",
285+
"dev/Settings/Identities.js",
286+
"dev/Settings/Social.js",
287+
"dev/Settings/ChangePassword.js",
288+
"dev/Settings/Folders.js",
289+
"dev/Settings/Themes.js",
290+
291+
"dev/Storages/AbstractData.js",
292+
"dev/Storages/WebMailData.js",
293+
294+
"dev/Storages/AbstractAjaxRemote.js",
295+
"dev/Storages/WebMailAjaxRemote.js",
296+
297+
"dev/Storages/AbstractCache.js",
298+
"dev/Storages/WebMailCache.js",
299+
300+
"dev/Screens/AbstractSettings.js",
301+
302+
"dev/Screens/Login.js",
303+
"dev/Screens/MailBox.js",
304+
"dev/Screens/Settings.js",
305+
306+
"dev/Boots/AbstractApp.js",
307+
"dev/Boots/RainLoopApp.js",
308+
309+
"dev/Common/_End.js",
310+
"dev/Common/_CoreEnd.js"
311+
],
312+
dest: "rainloop/v/<%= pkg.version %>/static/js/app.js"
313+
},
314+
css: {
315+
nonull: true,
316+
src: [
317+
"vendors/jquery-ui/css/no-theme/jquery-ui-1.10.3.custom.css",
318+
"vendors/normalize/normalize.css",
319+
"vendors/icomoon/style.css",
320+
"vendors/select2-3.4.5/select2.css",
321+
"vendors/select2-3.4.5/select2-bootstrap.css",
322+
"vendors/jquery-nanoscroller/nanoscroller.css",
323+
"vendors/jquery-magnific-popup/magnific-popup.css",
324+
"vendors/jquery-magnific-popup/magnific-popup-animations.css",
325+
"vendors/simple-pace/styles.css",
326+
"vendors/flags/flags-fixed.css",
327+
"rainloop/v/<%= pkg.version %>/static/css/less.css"
328+
],
329+
dest: "rainloop/v/<%= pkg.version %>/static/css/app.css"
330+
}
331+
},
332+
333+
cssmin: {
334+
css: {
335+
src: "rainloop/v/<%= pkg.version %>/static/css/app.css",
336+
dest: "rainloop/v/<%= pkg.version %>/static/css/app.min.css"
337+
}
338+
},
339+
340+
watch: {
341+
js: {
342+
options: {
343+
nospawn: true
344+
},
345+
files: ["dev/**/*.js"],
346+
tasks: ["concat:js_libs", "concat:js_admin", "concat:js_app"]
347+
},
348+
styles: {
349+
options: {
350+
nospawn: true
351+
},
352+
files: ["dev/Styles/*.less"],
353+
tasks: ["less", "concat:css"]
354+
}
355+
}
356+
});
357+
358+
// dependencies
359+
for (var key in grunt.file.readJSON('package.json').devDependencies) {
360+
if (key !== 'grunt' && key.indexOf('grunt') === 0) {
361+
grunt.loadNpmTasks(key);
362+
}
363+
}
364+
365+
// uglify
366+
grunt.registerTask('mousewheel', ['uglify:mousewheel']);
367+
grunt.registerTask('wakeup', ['uglify:wakeup']);
368+
grunt.registerTask('nano', ['uglify:nano']);
369+
grunt.registerTask('pace', ['uglify:pace']);
370+
grunt.registerTask('rl', ['uglify:rl']);
371+
grunt.registerTask('cookie', ['uglify:cookie']);
372+
grunt.registerTask('rainloop', ['uglify:min_app', 'uglify:min_admin']);
373+
// ---
374+
375+
grunt.registerTask('default', ['less', 'concat', 'jshint', 'cssmin', 'rainloop']);
376+
377+
// aliases
378+
grunt.registerTask('ant', ['default']); // special for ant task
379+
grunt.registerTask('u', ['uglify']);
380+
grunt.registerTask('h', ['jshint']);
381+
grunt.registerTask('w', ['watch']);
382+
};

0 commit comments

Comments
 (0)