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