Ok well I can't control the from of the xml as it from a legacy system. I've been trying to get this to work for a while now with actual data here are the bits of code. The main thing is there may be many level with which contain a mix or none of folder and procedures.
XML
Code:
<?xml version="1.0" encoding="UTF-8" ?>
<TOC_Data>
<FolderInfo>
<Sequence>1</Sequence>
<Description><=!=[=C=D=A=T=A=[3D PAT Sample Procedures]=]=></Description>
<ProcedureInfo>
<Metadata>302</Metadata>
<OdfId>E_IFM_1605</OdfId>
<Number>1.605</Number>
<Title><=!=[=C=D=A=T=A=[COLUMBUS WATER ON OFF VALVE (WOOV) 6, INSPECTION, CLEANING, DISINFECTING AND ENCAPSULATING]=]=></Title>
<ProcType>1</ProcType>
<FileExtension>xml</FileExtension>
</ProcedureInfo>
</FolderInfo>
<FolderInfo>
<Sequence>5</Sequence>
<Description><=!=[=C=D=A=T=A=[Styles]=]=></Description>
<FolderInfo>
<Sequence>6</Sequence>
<Description><=!=[=C=D=A=T=A=[Checklist]=]=></Description>
<ProcedureInfo>
<Metadata>85</Metadata>
<OdfId>M_T_100top</OdfId>
<Number>1.100</Number>
<Title><=!=[=C=D=A=T=A=[CLP Top of Procedure]=]=></Title>
<ProcType>1</ProcType>
<FileExtension>xml</FileExtension>
</ProcedureInfo>
<ProcedureInfo>
<Metadata>119</Metadata>
<OdfId>M_T_101steps</OdfId>
<Number>1.101</Number>
<Title><=!=[=C=D=A=T=A=[CLP Steps]=]=></Title>
<ProcType>1</ProcType>
<FileExtension>xml</FileExtension>
</ProcedureInfo>
</FolderInfo>
</FolderInfo>
</TOC_Data>
View
Code:
Ext.define('deeploading.view.Main', {
extend: 'Ext.tab.Panel',
xtype: 'main',
requires: [
'Ext.TitleBar',
'Ext.Video'
],
config: {
tabBarPosition: 'bottom',
items: [
{
title: 'Get Started',
iconCls: 'user',
xtype: 'nestedlist',
store: 'TOCstore',
displayField: 'Description',
}
]
}
});
Code:
Ext.define('deeploading.model.iPVToc', { extend: 'Ext.data.Model',
config: {
fields: [
{ name: 'Sequence', type: 'auto' },
{ name: 'Description', type: 'auto'}
],
//hasMany: { model: 'Folders', name: 'folders' },
hasMany: { model: 'Procedures', name: 'procedures'},
}
});
Code:
Ext.define('deeploading.model.Folders', { extend: 'Ext.data.Model',
config: {
fields: [
{ name: 'Sequence', type: 'auto' },
{ name: 'Description', type: 'auto'}
],
hasMany: { model: 'Procedures', name: 'procedures'},
belongsTo: 'iPVToc'
}
});
Code:
Ext.define('deeploading.model.Procedures', { extend: 'Ext.data.Model',
config: {
fields: [
{ name: 'Metadata', type: 'auto' },
{ name: 'OdfId', type: 'auto' },
{ name: 'Number', type: 'auto' },
{ name: 'Title', type: 'auto'},
{ name: 'ProcType', type: 'auto' },
{ name: 'FileExtension', type: 'auto' }
],
belongsTo: 'iPVToc'
}
});
Code:
Ext.define('deeploading.store.TOCstore', { extend: 'Ext.data.TreeStore',
model: 'deeploading.model.iPVToc',
proxy: {
type: 'ajax',
url : 'ipvtoc.xml',
reader: {
type: 'xml',
rootProperty: 'TOC_Data',
record: 'FolderInfo'
}
},
autoLoad: true
});
This displays a list of all the folders at any level and that's about it.