1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 | (function (factory) {
|
16 | "use strict";
|
17 | if (typeof define === 'function' && define.amd) {
|
18 |
|
19 | define(['jquery', 'nanogallery2'], factory);
|
20 | } else if (typeof exports === 'object' && typeof require === 'function') {
|
21 |
|
22 | factory(require(['jquery', 'nanogallery2']));
|
23 | } else {
|
24 |
|
25 | factory(jQuery);
|
26 | }
|
27 | }(function ($) {
|
28 |
|
29 |
|
30 | jQuery.nanogallery2.data_nano_photos_provider2 = function (instance, fnName){
|
31 | var G = instance;
|
32 |
|
33 |
|
34 | var AlbumGetContent = function(albumID, fnToCall, fnParam1, fnParam2) {
|
35 |
|
36 | var albumIdx = NGY2Item.GetIdx(G, albumID);
|
37 |
|
38 |
|
39 | if( instance.I[albumIdx].title == '' ) {
|
40 | instance.I[albumIdx].title = JsonConvertCharset(albumID);
|
41 | }
|
42 |
|
43 |
|
44 | var url = G.O.dataProvider + '?albumID='+albumID;
|
45 |
|
46 |
|
47 | url += '&hxs=' + G.tn.settings.getH(G.GOM.curNavLevel, 'xs');
|
48 | url += '&wxs=' + G.tn.settings.getW(G.GOM.curNavLevel, 'xs');
|
49 | url += '&hsm=' + G.tn.settings.getH(G.GOM.curNavLevel, 'sm');
|
50 | url += '&wsm=' + G.tn.settings.getW(G.GOM.curNavLevel, 'sm');
|
51 | url += '&hme=' + G.tn.settings.getH(G.GOM.curNavLevel, 'me');
|
52 | url += '&wme=' + G.tn.settings.getW(G.GOM.curNavLevel, 'me');
|
53 | url += '&hla=' + G.tn.settings.getH(G.GOM.curNavLevel, 'la');
|
54 | url += '&wla=' + G.tn.settings.getW(G.GOM.curNavLevel, 'la');
|
55 | url += '&hxl=' + G.tn.settings.getH(G.GOM.curNavLevel, 'xl');
|
56 | url += '&wxl=' + G.tn.settings.getW(G.GOM.curNavLevel, 'xl');
|
57 |
|
58 |
|
59 |
|
60 |
|
61 |
|
62 |
|
63 |
|
64 |
|
65 |
|
66 |
|
67 |
|
68 | PreloaderDisplay( true );
|
69 |
|
70 | jQuery.ajaxSetup({ cache: false });
|
71 | jQuery.support.cors = true;
|
72 | try {
|
73 |
|
74 | var tId = setTimeout( function() {
|
75 |
|
76 | PreloaderDisplay(false);
|
77 | NanoAlert(G, 'Could not retrieve nanoPhotosProvider2 data (timeout).');
|
78 | }, 60000 );
|
79 |
|
80 | if( G.O.debugMode ) { console.log('nanoPhotosProvider2 URL: ' + url); }
|
81 |
|
82 | jQuery.getJSON(url, function(data, status, xhr) {
|
83 | clearTimeout( tId );
|
84 | PreloaderDisplay( false );
|
85 | JsonParseData(albumIdx, data);
|
86 |
|
87 | if( data.nano_status == 'ok' ) {
|
88 | AlbumPostProcess( albumID );
|
89 | if( fnToCall !== null && fnToCall !== undefined) {
|
90 | fnToCall( fnParam1, fnParam2, null );
|
91 | }
|
92 | }
|
93 | else {
|
94 | NanoAlert(G, 'Could not retrieve nanoPhotosProvider2 data. Error: ' + data.nano_status + ' - ' + data.nano_message);
|
95 | }
|
96 | })
|
97 | .fail( function(jqxhr, textStatus, error) {
|
98 | clearTimeout( tId );
|
99 | PreloaderDisplay( false );
|
100 |
|
101 | var k=''
|
102 | for(var key in jqxhr) {
|
103 | k+= key + '=' + jqxhr[key] +'<br>';
|
104 | }
|
105 | var err = textStatus + ', ' + error + ' ' + k + '<br><br>URL:'+url;
|
106 | NanoAlert(G, 'Could not retrieve nanoPhotosProvider2 data. Error: ' + err);
|
107 |
|
108 | });
|
109 |
|
110 | }
|
111 | catch(e) {
|
112 | NanoAlert(G, 'Could not retrieve nanoPhotosProvider2 data. Error: ' + e);
|
113 | }
|
114 | }
|
115 |
|
116 |
|
117 | function JsonConvertCharset( str ) {
|
118 |
|
119 | return decodeURIComponent(str);
|
120 |
|
121 |
|
122 |
|
123 |
|
124 |
|
125 |
|
126 |
|
127 |
|
128 |
|
129 |
|
130 |
|
131 |
|
132 |
|
133 | }
|
134 |
|
135 | function JsonParseData(albumIdx, data) {
|
136 | if( G.O.debugMode ) {
|
137 | console.log('nanoPhotosProvider2 parse data:');
|
138 | console.dir(data);
|
139 | }
|
140 |
|
141 |
|
142 | var foundAlbumID = false;
|
143 | var nb = 0;
|
144 |
|
145 |
|
146 | jQuery.each( data.album_content, function( i, item ){
|
147 |
|
148 |
|
149 | var baseURL = G.O.dataProvider.substring(0, G.O.dataProvider.indexOf('nano_photos_provider2.php'));
|
150 |
|
151 |
|
152 | var src = baseURL + JsonConvertCharset( item.src );
|
153 |
|
154 |
|
155 | var title = item.title;
|
156 |
|
157 |
|
158 | var description = item.description.split('_').join(' ');
|
159 |
|
160 |
|
161 | var kind = 'image';
|
162 | if( item.kind !== undefined && item.kind.length > 0 ) {
|
163 | kind = item.kind;
|
164 | }
|
165 |
|
166 |
|
167 | var ID=item.ID;
|
168 |
|
169 | var filterAlbum = false;
|
170 | if( kind == 'album' ) {
|
171 |
|
172 | if( !FilterAlbumName(title, ID) ) { filterAlbum = true; }
|
173 |
|
174 | if( G.O.album != '' || G.O.photoset != '' ) { filterAlbum = true; }
|
175 | }
|
176 |
|
177 |
|
178 | if( kind == 'image' || !filterAlbum ) {
|
179 |
|
180 | var albumID = 0;
|
181 | if( item.albumID !== undefined ) {
|
182 | albumID = item.albumID;
|
183 | foundAlbumID = true;
|
184 | }
|
185 |
|
186 | var tags = (item.tags === undefined) ? '' : item.tags;
|
187 | var newItem = NGY2Item.New( G, title.split('_').join(' ') , description, ID, albumID, kind, tags );
|
188 | newItem.setMediaURL( src, 'img');
|
189 |
|
190 |
|
191 | if( item.dcGIF !== undefined ) {
|
192 | newItem.imageDominantColors = 'data:image/gif;base64,' + item.dcGIF;
|
193 | }
|
194 |
|
195 | if( item.dc !== undefined && item.dc !== '' ) {
|
196 | newItem.imageDominantColor = item.dc;
|
197 | }
|
198 |
|
199 | if( kind == 'album' ) {
|
200 |
|
201 | newItem.numberItems = item.cnt;
|
202 | }
|
203 | else {
|
204 |
|
205 | newItem.imageWidth = item.imgWidth;
|
206 | newItem.imageHeight = item.imgHeight;
|
207 | }
|
208 |
|
209 |
|
210 | if( item.originalURL != '' ) {
|
211 | newItem.downloadURL = baseURL+JsonConvertCharset(item.originalURL);
|
212 | }
|
213 |
|
214 |
|
215 | var cnl = G.GOM.curNavLevel;
|
216 | var l=['xs', 'sm', 'me', 'la', 'xl'];
|
217 | for( var n = 0; n < l.length; n++ ) {
|
218 | newItem.thumbs.url[cnl][l[n]] = baseURL + JsonConvertCharset(item.t_url[n]);
|
219 | newItem.thumbs.width[cnl][l[n]] = parseInt(item.t_width[n]);
|
220 | newItem.thumbs.height[cnl][l[n]] = parseInt(item.t_height[n]);
|
221 | }
|
222 |
|
223 |
|
224 | var fu = G.O.fnProcessData;
|
225 | if( fu !== null ) {
|
226 | typeof fu == 'function' ? fu(newItem, G.O.dataProvider, data) : window[fu](newItem, G.O.dataProvider, data);
|
227 | }
|
228 |
|
229 | }
|
230 | });
|
231 |
|
232 | G.I[albumIdx].contentIsLoaded = true;
|
233 | }
|
234 |
|
235 |
|
236 |
|
237 |
|
238 | function Init() {
|
239 |
|
240 | }
|
241 |
|
242 |
|
243 |
|
244 | var PreloaderDisplay = NGY2Tools.PreloaderDisplay.bind(G);
|
245 |
|
246 | var NanoAlert = NGY2Tools.NanoAlert;
|
247 |
|
248 | var FilterAlbumName = NGY2Tools.FilterAlbumName.bind(G);
|
249 | var AlbumPostProcess = NGY2Tools.AlbumPostProcess.bind(G);
|
250 |
|
251 | switch( fnName ){
|
252 | case 'GetHiddenAlbums':
|
253 | break;
|
254 | case 'AlbumGetContent':
|
255 | var albumID = arguments[2],
|
256 | callback = arguments[3],
|
257 | cbParam1 = arguments[4],
|
258 | cbParam2 = arguments[5];
|
259 | AlbumGetContent(albumID, callback, cbParam1, cbParam2);
|
260 | break;
|
261 | case 'Init':
|
262 | Init();
|
263 | break;
|
264 | case '':
|
265 | break;
|
266 | }
|
267 |
|
268 | };
|
269 |
|
270 |
|
271 |
|
272 | }));
|
273 |
|
274 |
|
275 |
|
276 | |
\ | No newline at end of file |