1 
  2 /**
  3  * @fileOverview This file includes avv variables and possibilities of app settings concerned more areas:
  4  * data loading  - actions - possible to set details of data loading (uri)
  5  * pane structure 
  6  *	- layout_settings[pane_name], layoutBaseSettings - sets the properties of particular panes (ui-layout plugin settings )
  7  *	- layout_initialisation - structure of particular pane placement
  8  * app functionality - blocks_settings - the properties of particular ui blocks (type of detail-window display, commands-TODO)
  9  * @author 
 10  * @version 
 11  */
 12 
 13 //VARIABLES
 14 var jsonw, json_admin;
 15 var url_params;
 16 var local_collections = false;
 17 
 18 var  element_autocomplete = new Array();
 19 var  elements_hashtable =  {};
 20 
 21 var outerLayout, middleLayout, innerLayout;
 22 var block_positions = ["center","north","south","east","west"];
 23 
 24 
 25 // LOAD DATA SEETTINGS
 26 var actions = {
 27 			base: {
 28 			base_uri: "/MDService2/"
 29 		},
 30 		collections: {
 31 			base_uri: "/MDService2/collections/",			
 32 			current:'olac'},
 33 		elements: {
 34 				base_uri: "/MDService2/element/",			
 35 				current:''},
 36 		terms: {
 37 			base_uri: "/MDService2/terms/",			
 38 			current:'all',
 39 			maxdepth: 8},
 40 		terms_autocomplete: {
 41 				base_uri: "/MDService2/terms/",	
 42 				current:''},
 43 		components: {
 44 				base_uri: "/MDService2/comp/",				
 45 				current:''},
 46 				/* current:'cmdi-corpus-aac2'}, */		
 47 		compprofiles: {
 48 				base_uri: "/MDService2/compprofile/",				
 49 					current:''},
 50 					/* current:'cmdi-corpus-aac2'}, */		
 51 				
 52 		recordset: {
 53 				base_uri: "/MDService2/recordset/"
 54 				},
 55 
 56 		isocat: {
 57 				base_uri: "/MDService2/datcats/",
 58 				current:5
 59 				},
 60 		sru: {
 61 				base_uri: "/MDService2/sru/"
 62 			 }
 63 
 64 	};
 65 
 66 
 67 
 68 // LAYOUT SETTING
 69 var layoutBaseSettings = { 
 70 		
 71 		//	center__paneSelector:	".base-center" 
 72 		//,	west__paneSelector:		".base-west" 
 73 		//,	east__paneSelector:		".base-east"
 74 		//,	north__paneSelector:	".base-north" 
 75 		    size:					"auto"
 76 		  ,	west__size:				140 
 77 		  ,	east__size:				280 
 78 		//,	north__size:			200
 79 		  ,	spacing_open:			4//8 // ALL panes
 80 		//,	spacing_closed:			12//12 // ALL panes
 81 		//,	north__spacing_open:	0
 82 		//,	south__spacing_closed:	0
 83 		//,	north__maxSize:			200
 84 		//,	south__maxSize:			200
 85 		  , contentSelector:		".content"
 86 };
 87 
 88 var layoutSettings_querysearch_advanced = { 
 89 		north__size:			200
 90 	,	north__spacing_open:	2
 91 };
 92 var layoutSettings_columns_collections = { 
 93 		west__size:			300
 94 	,	west__spacing_open:	2
 95 };
 96 var layoutSettings_coll_block = { 
 97 		north__size:			60
 98 	,	north__spacing_open:	2
 99 };
100 
101 /* layout sample
102 var layoutSettings_Outer = {
103 		name: "outerLayout" // NO FUNCTIONAL USE, but could be used by custom code to 'identify' a layout
104 		// options.defaults apply to ALL PANES - but overridden by pane-specific settings
105 	,	defaults: {
106 			size:					"auto"
107 		,	minSize:				50
108 		,	paneClass:				"pane" 		// default = 'ui-layout-pane'
109 		,	resizerClass:			"resizer"	// default = 'ui-layout-resizer'
110 		,	togglerClass:			"toggler"	// default = 'ui-layout-toggler'
111 		,	buttonClass:			"button"	// default = 'ui-layout-button'
112 		,	contentSelector:		".content"	// inner div to auto-size so only it scrolls, not the entire pane!
113 		,	contentIgnoreSelector:	"span"		// 'paneSelector' for content to 'ignore' when measuring room for content
114 		,	togglerLength_open:		35			// WIDTH of toggler on north/south edges - HEIGHT on east/west edges
115 		,	togglerLength_closed:	35			// "100%" OR -1 = full height
116 		,	hideTogglerOnSlide:		true		// hide the toggler when pane is 'slid open'
117 		,	togglerTip_open:		"Close This Pane"
118 		,	togglerTip_closed:		"Open This Pane"
119 		,	resizerTip:				"Resize This Pane"
120 		//	effect defaults - overridden on some panes
121 		,	fxName:					"slide"		// none, slide, drop, scale
122 		,	fxSpeed_open:			750
123 		,	fxSpeed_close:			1500
124 		,	fxSettings_open:		{ easing: "easeInQuint" }
125 		,	fxSettings_close:		{ easing: "easeOutQuint" }
126 	}
127 	,	north: {
128 			spacing_open:			1			// cosmetic spacing
129 		,	togglerLength_open:		0			// HIDE the toggler button
130 		,	togglerLength_closed:	-1			// "100%" OR -1 = full width of pane
131 		,	resizable: 				false
132 		,	slidable:				false
133 		//	override default effect
134 		,	fxName:					"none"
135 		}
136 	,	south: {
137 			maxSize:				200
138 		,	spacing_closed:			0			// HIDE resizer & toggler when 'closed'
139 		,	slidable:				false		// REFERENCE - cannot slide if spacing_closed = 0
140 		,	initClosed:				true
141 		//	CALLBACK TESTING...
142 		,	onhide_start:			function () { return confirm("START South pane hide \n\n onhide_start callback \n\n Allow pane to hide?"); }
143 		,	onhide_end:				function () { alert("END South pane hide \n\n onhide_end callback"); }
144 		,	onshow_start:			function () { return confirm("START South pane show \n\n onshow_start callback \n\n Allow pane to show?"); }
145 		,	onshow_end:				function () { alert("END South pane show \n\n onshow_end callback"); }
146 		,	onopen_start:			function () { return confirm("START South pane open \n\n onopen_start callback \n\n Allow pane to open?"); }
147 		,	onopen_end:				function () { alert("END South pane open \n\n onopen_end callback"); }
148 		,	onclose_start:			function () { return confirm("START South pane close \n\n onclose_start callback \n\n Allow pane to close?"); }
149 		,	onclose_end:			function () { alert("END South pane close \n\n onclose_end callback"); }
150 		//,	onresize_start:			function () { return confirm("START South pane resize \n\n onresize_start callback \n\n Allow pane to be resized?)"); }
151 		,	onresize_end:			function () { alert("END South pane resize \n\n onresize_end callback \n\n NOTE: onresize_start event was skipped."); }
152 		}
153 	,	west: {
154 			size:					250
155 		,	spacing_closed:			21			// wider space when closed
156 		,	togglerLength_closed:	21			// make toggler 'square' - 21x21
157 		,	togglerAlign_closed:	"top"		// align to top of resizer
158 		,	togglerLength_open:		0			// NONE - using custom togglers INSIDE west-pane
159 		,	togglerTip_open:		"Close West Pane"
160 		,	togglerTip_closed:		"Open West Pane"
161 		,	resizerTip_open:		"Resize West Pane"
162 		,	slideTrigger_open:		"click" 	// default
163 		,	initClosed:				true
164 		//	add 'bounce' option to default 'slide' effect
165 		,	fxSettings_open:		{ easing: "easeOutBounce" }
166 		}
167 	,	east: {
168 			size:					250
169 		,	spacing_closed:			21			// wider space when closed
170 		,	togglerLength_closed:	21			// make toggler 'square' - 21x21
171 		,	togglerAlign_closed:	"top"		// align to top of resizer
172 		,	togglerLength_open:		0 			// NONE - using custom togglers INSIDE east-pane
173 		,	togglerTip_open:		"Close East Pane"
174 		,	togglerTip_closed:		"Open East Pane"
175 		,	resizerTip_open:		"Resize East Pane"
176 		,	slideTrigger_open:		"mouseover"
177 		,	initClosed:				true
178 		//	override default effect, speed, and settings
179 		,	fxName:					"drop"
180 		,	fxSpeed:				"normal"
181 		,	fxSettings:				{ easing: "" } // nullify default easing
182 		}
183 	,	center: {
184 			paneSelector:			"#mainContent" 			// sample: use an ID to select pane instead of a class
185 		,	onresize:				"innerLayout.resizeAll"	// resize INNER LAYOUT when center pane resizes
186 		,	minWidth:				200
187 		,	minHeight:				200
188 		}
189 };
190 */
191 
192 //BLOCKS LAYOUT
193 var layout_initialisation = {
194 	base: {
195 		layout: "",
196 		parent: 'body',
197 		model_settings: layoutBaseSettings,
198 		settings: "",
199 		center: ['base_center_p'],
200 		west: ['base_west_p'],
201 		east: ['#detailblock'],
202 		north: ['#titlelogin']
203 		 },
204 	base_center_p: {
205 			 layout: "",
206 			parent: "",
207 			model_settings: layoutBaseSettings,
208 			settings: "",
209 			center: ["#querylistblock"],
210 			north: ["#querysearch"]
211 		},
212 	base_west_p: {
213 			layout: "",
214 			parent: "",
215 			model_settings: layoutBaseSettings,
216 			settings: "",
217 			center: ["#user-space"],
218 			north: ["#public-space"]
219 		},
220 		//querysearch_advanced: {
221 		//	parent: "",
222 		//	model_settings: layoutBaseSettings,
223 		//	settings: layoutSettings_querysearch_advanced,
224 		//	center: ["columns_collections"],
225 		//	north: ["#sc-list"]
226 		//},
227 		columns_collections: {
228 			layout: "",
229 			parent: "",
230 			model_settings: layoutBaseSettings,
231 			settings: "",//layoutSettings_columns_collections,
232 			west: ["columns_block"],
233 			center: ["collections_block"]
234 		},
235 		columns_block: {
236 			layout: "",
237 			parent: "",
238 			model_settings: layoutSettings_coll_block,
239 			settings: "",
240 			center: ["#terms-block"],
241 			north: ["#columns-selection"]
242 		},
243 		collections_block: {
244 			layout: "",
245 			parent: "",
246 			model_settings: layoutSettings_coll_block,
247 			settings: "",
248 			center: ["#collections-block"],
249 			north: ["#collections-selection"]
250 		}
251 		
252 };
253 // type = [floating, pane, inline]
254 var blocks_settings = {
255 	querysearch:{
256 		id: "#querysearch",
257 		//sublayouts: ['querysearch_advanced'],
258 		commands: {
259 			block:['cmd_advanced']
260 		}
261 	},
262 	querylist:{
263 		id: "#querylistblock",
264 		//sublayouts: [],
265 		commands: {
266 			block:['cmd_close']
267 		}
268 	},
269 	collections:{
270 		id: "#collections",
271 		detail: {
272 			parent: "",
273 			type: "floating"
274 		}
275 	},
276 	terms:{
277 		id: "#terms",
278 		detail: {
279 			parent: "",
280 			type: "pane"
281 		}
282 	},
283 	index:{
284 		id: "",
285 		detail: {
286 			parent: "",
287 			type: "pane"
288 		}
289 	},
290 	values:{
291 		id: "#values",
292 		detail: {
293 			parent: "",
294 			type: "floating"
295 		}
296 	},
297 	query:{
298 		id: "#query",
299 		detail: {
300 			parent: "",
301 			type: "pane"
302 		}
303 	},
304 	record:{
305 		id: "#records",
306 		detail: {
307 			parent: "",
308 			type: "pane"
309 		}
310 	},
311 	info:{
312 		id: "#info",
313 		detail: {
314 			parent: "",
315 			type: "pane"
316 		}
317 	}
318 };