Workbook.updateSeriesList

Syntax

updateSeriesList (series, removed);

Parameters

series. Sets series to be edited.

removed. Indicates if series are removed from collection.

Description

The updateSeriesList method refreshes series list.

Example

To execute the example, the page must contain the WorkbookBox component named workbookBox (see Example of Creating the WorkbookBox Component), and also add the following code in the handler, that processes document opening event:

	//Variable that will store selected series
	var selSeries;			
			
	//Repository interaction end handler. Used to set availability of the 
	//Ungroup Series button depending on the selected series 
	metabase.EndRequest.add(PP.Delegate(function(){
		//Get selected workbook series
		selSeries = wbk.getActiveSheet().getSelectedSeries();
		//Set button availability
		if (selSeries.length == 1 && PP.TS.isGroupSerie(selSeries[0]))
		{
			ungroupSeriesButt.setEnabled(True);
		}
		else
		{
			ungroupSeriesButt.setEnabled(False);
		}			
		}));						
			
	var ungroupSeriesButt = new PP.Ui.Button({
		ParentNode: document.body, //DOM parent node
		Content: "Ungroup Series", //text
		Click: PP.Delegate(onClickUngroupSeries)
		});
				
	function onClickUngroupSeries()
	{	
		//Get and sort array of selected series
		var j;				
		var Series = selSeries.sort(tsService._sorting.bind(wbk));
		var realIndex = wbk.getRealIndex(undefined, Series[0]);
		var lastIndex = wbk.getRealIndex(undefined, Series[Series.length - 1]);
		//Get index of the last group series
		for (var i = 0; i < Series.length; i++)
		{
			lastIndex += wbk.getLoadedChildrenCount(Series[i]);
		}
		//Set properties of elements of series array
		for (j = 0; j < Series.length; j++)
		{
			Series[j].expanded = True;
			Series[j].atts = { its: { it: []} };
			delete Series[j].calc;
		}
				
		//Get a body of server request for editing workbook series
		var body = tsService.getEditSeriesSettings(wbk, Series);
		//Enter information about selected series to the body of request
		body.SetWbkMd.tArg.metaGet.seriesFilter = {
			range: {
					start: realIndex,
					count: lastIndex - realIndex + 1
					}
			};
		//Set whether workbook is changed
		wbk.setIsChanged(True);
		//Send request to server
		tsService._send(body, onUngroupSeries);
		//UnGroupSeries method execution end event handler
		function onUngroupSeries(sender, args){	
		//Get JSON object from server response
		var res = JSON.parse(args.ResponseText);
		var groupSeries = Series;
		//Get workbook series
		var wbkSeries = res.SetWbkMdResult.meta.series.its.it;
		var series = [];
		var k = 1;
		//Refresh a list of series
		wbk.updateSeriesList(wbkSeries);
		//Get the number of group series
		var count = wbk.getLoadedChildrenCount(wbkSeries[0]);
					
		//Create an object that contains information about group series
		for (var j = 0; j < groupSeries.length; j++)
		{
			for (var i = 0; i < wbkSeries.length; i++)
			{
				if (wbkSeries[i].parent && wbkSeries[i].parent.k == groupSeries[j].k)
				{
					wbkSeries[i].atts = { its: { it: []} };
					wbkSeries[i].index = Series[0].index + k;
					delete wbkSeries[i].calc;
					if (groupSeries[j].parent)
						wbkSeries[i].parent = groupSeries[j].parent;
					else
					{
						wbkSeries[i].parent = { k: -1, id: "" };
						for (var kk = 0; kk < groupSeries.length; kk++)
						{
							if (wbkSeries[i].k == groupSeries[kk].k)
							{
								groupSeries[kk].parent = undefined;
							}
						}
					}
					series.push(wbkSeries[i]);
					k++;
				}
			}
		}
		//Get a body of server request for changing series
		var body = tsService.getEditSeriesSettings(wbk, series);
		//Get index of the first group series
		var start = wbk.getRealIndex(undefined, wbkSeries[0]);
		//Set parent series for each group series
		if (wbkSeries[0].parent)
		{
			var parentSerie = wbk.getSerie(wbkSeries[0].parent.k);
			start = wbk.getRealIndex(undefined, parentSerie);
			count = wbk.getLoadedChildrenCount(parentSerie) + 1;
		}
		//Enter information about gorup to the body of request
		body.SetWbkMd.tArg.metaGet.seriesFilter = {
			range: {
					start: start,
					count: count
					}
			};
			//Set whether workbook is changed
			wbk.setIsChanged(True);			
			//Send request to server
			tsService._send(body, refresh);
			//remove the series that was a group
			tsService.removeSeries(wbk, groupSeries, refresh);
			}			
		}			
		function refresh()
		{
			//Refresh the entire component for displaying workbook
			workbookBox.refreshAll();
		}

After executing the example the button named Ungroup Series is placed on the HTML page. Select a grouped series and click this button. After this the grouped workbook series is ungrouped.

See also:

Workbook