kirgudu_base 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (187) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/kirgudu_base/dynamicEvents.js +2 -1
  3. data/app/assets/javascripts/kirgudu_base/jquery.container-management.js +241 -0
  4. data/app/assets/javascripts/kirgudu_base/jquery.fancybox copia.js +2020 -0
  5. data/app/assets/javascripts/kirgudu_base/scripts_nrg.js +300 -383
  6. data/app/controllers/kirgudu_base/admin_controller.rb +1 -44
  7. data/app/controllers/kirgudu_base/application_controller.rb +135 -92
  8. data/app/controllers/kirgudu_base/cabinet_controller.rb +35 -35
  9. data/app/controllers/kirgudu_base/security/authentications_controller.rb +452 -0
  10. data/app/controllers/kirgudu_base/security/email_confirmations_controller.rb +46 -0
  11. data/app/helpers/kirgudu_base/application_helper.rb +25 -0
  12. data/app/helpers/kirgudu_base/authentication_form_builder.rb +76 -0
  13. data/app/helpers/kirgudu_base/controllers/{basic_actions_with_parent.rb → OLD_basic_actions.rb} +39 -54
  14. data/app/helpers/kirgudu_base/controllers/basic_actions.rb +967 -161
  15. data/app/helpers/kirgudu_base/controllers/container_items_management_actions.rb +118 -40
  16. data/app/helpers/kirgudu_base/controllers/container_items_sorting_actions.rb +2 -2
  17. data/app/helpers/kirgudu_base/controllers/dynamic_pages.rb +147 -11
  18. data/app/helpers/kirgudu_base/form_builder.rb +3 -1
  19. data/app/helpers/kirgudu_base/gui_helper.rb +10 -5
  20. data/app/helpers/kirgudu_base/models/exports.rb +122 -122
  21. data/app/helpers/kirgudu_base/models/scopes.rb +5 -0
  22. data/app/mailers/authentications_mailer.rb +53 -0
  23. data/app/models/kirgudu_base/base_model.rb +47 -14
  24. data/app/models/kirgudu_base/dynamic_pages/builder.rb +0 -8
  25. data/app/models/kirgudu_base/dynamic_pages/controller_link.rb +4 -1
  26. data/app/models/kirgudu_base/dynamic_pages/controller_link_builder.rb +2 -1
  27. data/app/models/kirgudu_base/dynamic_pages/controller_link_id.rb +6 -6
  28. data/app/models/kirgudu_base/dynamic_pages/controller_link_id_builder.rb +6 -6
  29. data/app/models/kirgudu_base/dynamic_pages/element.rb +4 -5
  30. data/app/models/kirgudu_base/dynamic_pages/entry_builder.rb +2 -2
  31. data/app/models/kirgudu_base/dynamic_pages/event_if_block_builder.rb +1 -1
  32. data/app/models/kirgudu_base/dynamic_pages/form_builder.rb +2 -2
  33. data/app/models/kirgudu_base/dynamic_pages/list.rb +2 -0
  34. data/app/models/kirgudu_base/dynamic_pages/list_builder.rb +7 -3
  35. data/app/models/kirgudu_base/dynamic_pages/management_settings.rb +30 -0
  36. data/app/models/kirgudu_base/dynamic_pages/management_settings_builder.rb +47 -0
  37. data/app/models/kirgudu_base/dynamic_pages/menu.rb +9 -5
  38. data/app/models/kirgudu_base/dynamic_pages/menu_builder.rb +8 -5
  39. data/app/models/kirgudu_base/dynamic_pages/menu_item.rb +22 -6
  40. data/app/models/kirgudu_base/dynamic_pages/menu_items_block_builder.rb +9 -4
  41. data/app/models/kirgudu_base/dynamic_pages/menu_section.rb +38 -0
  42. data/app/models/kirgudu_base/dynamic_pages/menu_section_builder.rb +36 -0
  43. data/app/models/kirgudu_base/dynamic_pages/page.rb +6 -2
  44. data/app/models/kirgudu_base/dynamic_pages/page_builder.rb +18 -0
  45. data/app/models/kirgudu_base/dynamic_pages/relation.rb +23 -0
  46. data/app/models/kirgudu_base/dynamic_pages/relation_builder.rb +35 -0
  47. data/app/models/kirgudu_base/dynamic_pages/sorting_settings.rb +31 -0
  48. data/app/models/kirgudu_base/dynamic_pages/sorting_settings_builder.rb +48 -0
  49. data/app/models/kirgudu_base/security/autheintication.rb +4 -0
  50. data/app/models/kirgudu_base/security/authentication.rb +6 -7
  51. data/app/models/kirgudu_base/security/email_confirmation.rb +7 -0
  52. data/app/models/kirgudu_base/security/restore_password_code.rb +5 -0
  53. data/app/models/kirgudu_base/security/user.rb +2 -0
  54. data/app/models/kirgudu_base/security.rb +6 -7
  55. data/app/models/kirgudu_base/settings/group.rb +22 -0
  56. data/app/models/kirgudu_base/settings/option.rb +44 -0
  57. data/app/models/kirgudu_base/settings/settings_manager.rb +69 -0
  58. data/app/models/kirgudu_base/settings/value.rb +36 -0
  59. data/app/views/admin_templates/default/admin/layouts/application.html.erb +6 -4
  60. data/app/views/admin_templates/default/admin/system/settings/groups/edit.html.erb +9 -9
  61. data/app/views/admin_templates/default/admin/system/settings/groups/new.html.erb +1 -1
  62. data/app/views/admin_templates/default/admin/system/settings/options/edit.html.erb +1 -1
  63. data/app/views/admin_templates/default/admin/system/settings/options/new.html.erb +1 -1
  64. data/app/views/admin_templates/default/admin/system/settings/values/edit.html.erb +1 -1
  65. data/app/views/admin_templates/default/admin/system/settings/values/new.html.erb +1 -1
  66. data/app/views/admin_templates/erp/admin/shared/_top_nav_bar.html.erb +1 -3
  67. data/app/views/admin_templates/erp/admin/shared/entry_edit_form_renderer.html.erb +1 -1
  68. data/app/views/admin_templates/erp/admin/shared/entry_new_form_renderer.html.erb +1 -1
  69. data/app/views/admin_templates/good/admin/layouts/OLD_application.html.erb +14 -14
  70. data/app/views/admin_templates/good/admin/layouts/application.html.erb +11 -113
  71. data/app/views/admin_templates/good/admin/shared/_left_menu.html.erb +74 -63
  72. data/app/views/admin_templates/good/{zapanel/files/New Adobe Photoshop Image 12.psd → admin/shared/_left_menu_item.html.erb} +0 -0
  73. data/app/views/admin_templates/good/admin/shared/_left_menu_section.html.erb +21 -0
  74. data/app/views/admin_templates/good/admin/shared/render_new_OLD.html.erb +90 -0
  75. data/app/views/admin_templates/good/admin/shared/renderer_edit.html.erb +44 -13
  76. data/app/views/admin_templates/good/admin/shared/renderer_edit_OLD.html.erb +106 -0
  77. data/app/views/admin_templates/good/admin/shared/renderer_entries_list.html.erb +39 -18
  78. data/app/views/admin_templates/good/admin/shared/renderer_entries_list_with_parent.html.erb +4 -4
  79. data/app/views/admin_templates/good/admin/shared/renderer_management.html.erb +164 -0
  80. data/app/views/admin_templates/good/admin/shared/renderer_new.html.erb +40 -10
  81. data/app/views/admin_templates/good/admin/shared/renderer_show.html.erb +170 -58
  82. data/app/views/admin_templates/good/admin/shared/renderer_show_OLD.html.erb +159 -0
  83. data/app/views/admin_templates/good/admin/shared/renderer_sorting.html.erb +30 -0
  84. data/app/views/admin_templates/good/kirgudu_base/authentications/login.html.erb +13 -13
  85. data/app/views/admin_templates/good/kirgudu_base/authentications/register.html.erb +1 -1
  86. data/app/views/admin_templates/good/kirgudu_base/old/login_page.html.erb +7 -7
  87. data/app/views/admin_templates/good_flexy/admin/layouts/application.html.erb +17 -16
  88. data/app/views/admin_templates/good_flexy/admin/shared/_left_menu.html.erb +7 -0
  89. data/app/views/admin_templates/good_flexy/admin/shared/renderer_entries_list.html.erb +25 -17
  90. data/app/views/admin_templates/good_flexy/admin/shared/renderer_form_edit.html.erb +34 -13
  91. data/app/views/admin_templates/good_flexy/admin/shared/renderer_form_new.html.erb +31 -10
  92. data/app/views/admin_templates/good_flexy/admin/shared/renderer_show.html.erb +67 -52
  93. data/config/locales/kirgudu_base.ru.yml +92 -0
  94. data/config/routes.rb +16 -16
  95. data/db/migrate/20140413134252_create_kirgudu_base_security_authentications.rb +15 -0
  96. data/db/migrate/20140413152144_create_kirgudu_base_security_email_confirmations.rb +17 -0
  97. data/db/migrate/20140413201121_add_confirmations_kirgudu_base_security_users.rb +14 -0
  98. data/db/migrate/20140415093106_create_kirgudu_base_security_restore_password_codes.rb +20 -0
  99. data/lib/kirgudu_base.rb +2 -2
  100. data/test/fixtures/kirgudu_base/kirgudu_base/security/autheintications.yml +11 -0
  101. data/test/fixtures/kirgudu_base/security/applications.yml +21 -0
  102. data/test/fixtures/kirgudu_base/security/autheintications.yml +11 -0
  103. data/test/fixtures/kirgudu_base/security/authentications.yml +11 -0
  104. data/test/fixtures/kirgudu_base/security/email_confirmations.yml +13 -0
  105. data/test/fixtures/kirgudu_base/security/restore_password_codes.yml +13 -0
  106. data/test/models/kirgudu_base/kirgudu_base/security/autheintication_test.rb +9 -0
  107. data/test/models/kirgudu_base/security/application_test.rb +9 -0
  108. data/test/models/kirgudu_base/security/autheintication_test.rb +9 -0
  109. data/test/models/kirgudu_base/security/authentication_test.rb +9 -0
  110. data/test/models/kirgudu_base/security/email_confirmation_test.rb +9 -0
  111. data/test/models/kirgudu_base/security/restore_password_code_test.rb +9 -0
  112. metadata +102 -79
  113. data/app/assets/javascripts/kirgudu_base/jquery.fancybox.pack.js +0 -45
  114. data/app/controllers/kirgudu_base/authentications_controller.rb +0 -157
  115. data/app/views/admin_templates/good/zapanel/404.html +0 -386
  116. data/app/views/admin_templates/good/zapanel/billing.html +0 -550
  117. data/app/views/admin_templates/good/zapanel/blank-page.html +0 -343
  118. data/app/views/admin_templates/good/zapanel/buttons.html +0 -1018
  119. data/app/views/admin_templates/good/zapanel/calendars.html +0 -451
  120. data/app/views/admin_templates/good/zapanel/cart.html +0 -522
  121. data/app/views/admin_templates/good/zapanel/charts.html +0 -611
  122. data/app/views/admin_templates/good/zapanel/collapse.html +0 -555
  123. data/app/views/admin_templates/good/zapanel/contact.php +0 -102
  124. data/app/views/admin_templates/good/zapanel/dashboard.html +0 -985
  125. data/app/views/admin_templates/good/zapanel/dashboard2.html +0 -1091
  126. data/app/views/admin_templates/good/zapanel/dashboard3.html +0 -1079
  127. data/app/views/admin_templates/good/zapanel/data/movies.json +0 -1
  128. data/app/views/admin_templates/good/zapanel/faq.html +0 -435
  129. data/app/views/admin_templates/good/zapanel/file-manager.html +0 -358
  130. data/app/views/admin_templates/good/zapanel/files/index.php +0 -0
  131. data/app/views/admin_templates/good/zapanel/font-awesome/less/bootstrap.less +0 -84
  132. data/app/views/admin_templates/good/zapanel/font-awesome/less/core.less +0 -129
  133. data/app/views/admin_templates/good/zapanel/font-awesome/less/extras.less +0 -93
  134. data/app/views/admin_templates/good/zapanel/font-awesome/less/font-awesome-ie7.less +0 -1953
  135. data/app/views/admin_templates/good/zapanel/font-awesome/less/font-awesome.less +0 -33
  136. data/app/views/admin_templates/good/zapanel/font-awesome/less/icons.less +0 -381
  137. data/app/views/admin_templates/good/zapanel/font-awesome/less/mixins.less +0 -48
  138. data/app/views/admin_templates/good/zapanel/font-awesome/less/path.less +0 -14
  139. data/app/views/admin_templates/good/zapanel/font-awesome/less/variables.less +0 -735
  140. data/app/views/admin_templates/good/zapanel/font-awesome/scss/_bootstrap.scss +0 -84
  141. data/app/views/admin_templates/good/zapanel/font-awesome/scss/_core.scss +0 -129
  142. data/app/views/admin_templates/good/zapanel/font-awesome/scss/_extras.scss +0 -93
  143. data/app/views/admin_templates/good/zapanel/font-awesome/scss/_icons.scss +0 -381
  144. data/app/views/admin_templates/good/zapanel/font-awesome/scss/_mixins.scss +0 -48
  145. data/app/views/admin_templates/good/zapanel/font-awesome/scss/_path.scss +0 -14
  146. data/app/views/admin_templates/good/zapanel/font-awesome/scss/_variables.scss +0 -734
  147. data/app/views/admin_templates/good/zapanel/font-awesome/scss/font-awesome-ie7.scss +0 -1953
  148. data/app/views/admin_templates/good/zapanel/font-awesome/scss/font-awesome.scss +0 -33
  149. data/app/views/admin_templates/good/zapanel/form.html +0 -790
  150. data/app/views/admin_templates/good/zapanel/gallery.html +0 -392
  151. data/app/views/admin_templates/good/zapanel/grids.html +0 -574
  152. data/app/views/admin_templates/good/zapanel/hosting-dashboard.html +0 -448
  153. data/app/views/admin_templates/good/zapanel/icon.html +0 -722
  154. data/app/views/admin_templates/good/zapanel/inbox.html +0 -375
  155. data/app/views/admin_templates/good/zapanel/index.html +0 -48
  156. data/app/views/admin_templates/good/zapanel/invoice.html +0 -423
  157. data/app/views/admin_templates/good/zapanel/js/proxy/elFinderSupportVer1.js +0 -338
  158. data/app/views/admin_templates/good/zapanel/js/skins/default/lightbox-close.png +0 -0
  159. data/app/views/admin_templates/good/zapanel/js/skins/default/lightbox-next.png +0 -0
  160. data/app/views/admin_templates/good/zapanel/js/skins/default/lightbox-prev.png +0 -0
  161. data/app/views/admin_templates/good/zapanel/notification.html +0 -400
  162. data/app/views/admin_templates/good/zapanel/order-recieved.html +0 -348
  163. data/app/views/admin_templates/good/zapanel/php/MySQLStorage.sql +0 -23
  164. data/app/views/admin_templates/good/zapanel/php/connector.php +0 -44
  165. data/app/views/admin_templates/good/zapanel/php/elFinder.class.php +0 -1103
  166. data/app/views/admin_templates/good/zapanel/php/elFinderConnector.class.php +0 -133
  167. data/app/views/admin_templates/good/zapanel/php/elFinderVolumeDriver.class.php +0 -3370
  168. data/app/views/admin_templates/good/zapanel/php/elFinderVolumeLocalFileSystem.class.php +0 -835
  169. data/app/views/admin_templates/good/zapanel/php/elFinderVolumeMySQL.class.php +0 -896
  170. data/app/views/admin_templates/good/zapanel/php/mime.types +0 -512
  171. data/app/views/admin_templates/good/zapanel/price-table.html +0 -400
  172. data/app/views/admin_templates/good/zapanel/profile.html +0 -387
  173. data/app/views/admin_templates/good/zapanel/progressbar.html +0 -555
  174. data/app/views/admin_templates/good/zapanel/range-slider.html +0 -440
  175. data/app/views/admin_templates/good/zapanel/ribbon-grids.html +0 -491
  176. data/app/views/admin_templates/good/zapanel/sale-purchase-dashboard.html +0 -803
  177. data/app/views/admin_templates/good/zapanel/search.html +0 -370
  178. data/app/views/admin_templates/good/zapanel/skins/default/lightbox-close.png +0 -0
  179. data/app/views/admin_templates/good/zapanel/skins/default/lightbox-loading.gif +0 -0
  180. data/app/views/admin_templates/good/zapanel/skins/default/lightbox-next.png +0 -0
  181. data/app/views/admin_templates/good/zapanel/skins/default/lightbox-pause.png +0 -0
  182. data/app/views/admin_templates/good/zapanel/skins/default/lightbox-play.png +0 -0
  183. data/app/views/admin_templates/good/zapanel/skins/default/lightbox-playvideo.png +0 -0
  184. data/app/views/admin_templates/good/zapanel/skins/default/lightbox-prev.png +0 -0
  185. data/app/views/admin_templates/good/zapanel/slider.html +0 -453
  186. data/app/views/admin_templates/good/zapanel/tables.html +0 -470
  187. data/app/views/admin_templates/good/zapanel/typography.html +0 -746
@@ -1,338 +0,0 @@
1
- "use strict";
2
- /**
3
- * elFinder transport to support old protocol.
4
- *
5
- * @example
6
- * $('selector').elfinder({
7
- * ....
8
- * transport : new elFinderSupportVer1()
9
- * })
10
- *
11
- * @author Dmitry (dio) Levashov
12
- **/
13
- window.elFinderSupportVer1 = function(upload) {
14
- var self = this;
15
-
16
- this.upload = upload || 'auto';
17
-
18
- this.init = function(fm) {
19
- this.fm = fm;
20
- this.fm.parseUploadData = function(text) {
21
- var data;
22
-
23
- if (!$.trim(text)) {
24
- return {error : ['errResponse', 'errDataEmpty']};
25
- }
26
-
27
- try {
28
- data = $.parseJSON(text);
29
- } catch (e) {
30
- return {error : ['errResponse', 'errDataNotJSON']}
31
- }
32
-
33
- return self.normalize('upload', data);
34
- }
35
- }
36
-
37
-
38
- this.send = function(opts) {
39
- var self = this,
40
- fm = this.fm,
41
- dfrd = $.Deferred(),
42
- cmd = opts.data.cmd,
43
- args = [],
44
- _opts = {},
45
- data,
46
- xhr;
47
-
48
- dfrd.abort = function() {
49
- !xhr.isRejected() && !xhr.isResolved() && xhr.abort();
50
- }
51
-
52
- switch (cmd) {
53
- case 'open':
54
- opts.data.tree = 1;
55
- break;
56
- case 'parents':
57
- case 'tree':
58
- return dfrd.resolve({tree : []});
59
- break;
60
- case 'get':
61
- opts.data.cmd = 'read';
62
- opts.data.current = fm.file(opts.data.target).phash;
63
- break;
64
- case 'put':
65
- opts.data.cmd = 'edit';
66
- opts.data.current = fm.file(opts.data.target).phash;
67
- break;
68
- case 'archive':
69
- case 'rm':
70
- opts.data.current = fm.file(opts.data.targets[0]).phash;
71
- break;
72
- case 'extract':
73
- case 'rename':
74
- case 'resize':
75
- opts.data.current = fm.file(opts.data.target).phash;
76
- break;
77
- case 'duplicate':
78
- _opts = $.extend(true, {}, opts);
79
-
80
- $.each(opts.data.targets, function(i, hash) {
81
- $.ajax($.extend(_opts, {data : {cmd : 'duplicate', target : hash, current : fm.file(hash).phash}}))
82
- .error(function(error) {
83
- fm.error(fm.res('error', 'connect'));
84
- })
85
- .done(function(data) {
86
- data = self.normalize('duplicate', data);
87
- if (data.error) {
88
- fm.error(data.error);
89
- } else if (data.added) {
90
- fm.trigger('add', {added : data.added});
91
- }
92
- })
93
- });
94
- return dfrd.resolve({})
95
- break;
96
-
97
- case 'mkdir':
98
- case 'mkfile':
99
- opts.data.current = opts.data.target;
100
- break;
101
- case 'paste':
102
- opts.data.current = opts.data.dst
103
- break;
104
-
105
- case 'size':
106
- return dfrd.resolve({error : fm.res('error', 'cmdsupport')});
107
- break;
108
- case 'search':
109
- return dfrd.resolve({error : fm.res('error', 'cmdsupport')});
110
- break;
111
-
112
- }
113
- // cmd = opts.data.cmd
114
-
115
- xhr = $.ajax(opts)
116
- .fail(function(error) {
117
- dfrd.reject(error)
118
- })
119
- .done(function(raw) {
120
- data = self.normalize(cmd, raw);
121
-
122
- // cmd != 'open' && self.fm.log(data);
123
-
124
- if (cmd == 'paste' && !data.error) {
125
- fm.sync();
126
- dfrd.resolve({});
127
- } else {
128
- dfrd.resolve(data);
129
- }
130
- })
131
-
132
- return dfrd;
133
-
134
- return $.ajax(opts);
135
- }
136
-
137
- // fix old connectors errors messages as possible
138
- // this.errors = {
139
- // 'Unknown command' : 'Unknown command.',
140
- // 'Invalid backend configuration' : 'Invalid backend configuration.',
141
- // 'Access denied' : 'Access denied.',
142
- // 'PHP JSON module not installed' : 'PHP JSON module not installed.',
143
- // 'File not found' : 'File not found.',
144
- // 'Invalid name' : 'Invalid file name.',
145
- // 'File or folder with the same name already exists' : 'File named "$1" already exists in this location.',
146
- // 'Not allowed file type' : 'Not allowed file type.',
147
- // 'File exceeds the maximum allowed filesize' : 'File exceeds maximum allowed size.',
148
- // 'Unable to copy into itself' : 'Unable to copy "$1" into itself.',
149
- // 'Unable to create archive' : 'Unable to create archive.',
150
- // 'Unable to extract files from archive' : 'Unable to extract files from "$1".'
151
- // }
152
-
153
- this.normalize = function(cmd, data) {
154
- var self = this,
155
- files = {},
156
- filter = function(file) { return file && file.hash && file.name && file.mime ? file : null; },
157
- phash;
158
-
159
- if ((cmd == 'tmb' || cmd == 'get')) {
160
- return data;
161
- }
162
-
163
- // if (data.error) {
164
- // $.each(data.error, function(i, msg) {
165
- // if (self.errors[msg]) {
166
- // data.error[i] = self.errors[msg];
167
- // }
168
- // });
169
- // }
170
-
171
- if (cmd == 'upload' && data.error && data.cwd) {
172
- data.warning = $.extend({}, data.error);
173
- data.error = false;
174
- }
175
-
176
-
177
- if (data.error) {
178
- return data;
179
- }
180
-
181
- if (cmd == 'put') {
182
-
183
- phash = this.fm.file(data.target.hash).phash;
184
- return {changed : [this.normalizeFile(data.target, phash)]};
185
- }
186
-
187
- phash = data.cwd.hash;
188
-
189
- if (data.tree) {
190
- $.each(this.normalizeTree(data.tree), function(i, file) {
191
- files[file.hash] = file;
192
- });
193
- }
194
-
195
- $.each(data.cdc||[], function(i, file) {
196
- var hash = file.hash;
197
-
198
- if (files[hash]) {
199
- files[hash].date = file.date;
200
- files[hash].locked = file.hash == phash ? true : file.rm === void(0) ? false : !file.rm;
201
- } else {
202
- files[hash] = self.normalizeFile(file, phash, data.tmb);
203
- }
204
- });
205
-
206
- if (!data.tree) {
207
- $.each(this.fm.files(), function(hash, file) {
208
- if (!files[hash] && file.phash != phash && file.mime == 'directory') {
209
- files[hash] = file;
210
- }
211
- });
212
- }
213
-
214
- if (cmd == 'open') {
215
- return {
216
- cwd : files[phash] || this.normalizeFile(data.cwd),
217
- files : $.map(files, function(f) { return f }),
218
- options : self.normalizeOptions(data),
219
- init : !!data.params,
220
- debug : data.debug
221
- };
222
- }
223
-
224
-
225
-
226
- return $.extend({
227
- current : data.cwd.hash,
228
- error : data.error,
229
- warning : data.warning,
230
- options : {tmb : !!data.tmb}
231
- }, this.fm.diff($.map(files, filter)));
232
-
233
- }
234
-
235
- /**
236
- * Convert old api tree into plain array of dirs
237
- *
238
- * @param Object root dir
239
- * @return Array
240
- */
241
- this.normalizeTree = function(root) {
242
- var self = this,
243
- result = [],
244
- traverse = function(dirs, phash) {
245
- var i, dir;
246
-
247
- for (i = 0; i < dirs.length; i++) {
248
- dir = dirs[i];
249
- result.push(self.normalizeFile(dir, phash))
250
- dir.dirs.length && traverse(dir.dirs, dir.hash);
251
- }
252
- };
253
-
254
- traverse([root]);
255
-
256
- return result;
257
- }
258
-
259
- /**
260
- * Convert file info from old api format into new one
261
- *
262
- * @param Object file
263
- * @param String parent dir hash
264
- * @return Object
265
- */
266
- this.normalizeFile = function(file, phash, tmb) {
267
- var mime = file.mime || 'directory',
268
- size = mime == 'directory' && !file.linkTo ? 0 : file.size,
269
- info = {
270
- url : file.url,
271
- hash : file.hash,
272
- phash : phash,
273
- name : file.name,
274
- mime : mime,
275
- date : file.date || 'unknown',
276
- size : size,
277
- read : file.read,
278
- write : file.write,
279
- locked : !phash ? true : file.rm === void(0) ? false : !file.rm
280
- };
281
-
282
- if (file.mime == 'application/x-empty') {
283
- info.mime = 'text/plain';
284
- }
285
- if (file.linkTo) {
286
- info.alias = file.linkTo;
287
- }
288
-
289
- if (file.linkTo) {
290
- info.linkTo = file.linkTo;
291
- }
292
-
293
- if (file.tmb) {
294
- info.tmb = file.tmb;
295
- } else if (info.mime.indexOf('image/') === 0 && tmb) {
296
- info.tmb = 1;
297
-
298
- }
299
-
300
- if (file.dirs && file.dirs.length) {
301
- info.dirs = true;
302
- }
303
- if (file.dim) {
304
- info.dim = file.dim;
305
- }
306
- if (file.resize) {
307
- info.resize = file.resize;
308
- }
309
- return info;
310
- }
311
-
312
- this.normalizeOptions = function(data) {
313
- var opts = {
314
- path : data.cwd.rel,
315
- disabled : data.disabled || [],
316
- tmb : !!data.tmb,
317
- copyOverwrite : true
318
- };
319
-
320
- if (data.params) {
321
- opts.api = 1;
322
- opts.url = data.params.url;
323
- opts.archivers = {
324
- create : data.params.archives || [],
325
- extract : data.params.extract || []
326
- }
327
- }
328
-
329
- if (opts.path.indexOf('/') !== -1) {
330
- opts.separator = '/';
331
- } else if (opts.path.indexOf('\\') !== -1) {
332
- opts.separator = '\\';
333
- }
334
- return opts;
335
- }
336
-
337
-
338
- }