Text
List of lists - Sharepoint 2013
Bon. La problématique : Lister sur la home page d'un site sharepoint 2013 la liste des listes de type "Survey", avec un lien vers ces listes.
Après avoir farfouillé du côté des webpart sans succès j'ai décidé de faire ça avec le designer..
Le datasource : <SharePointWebControls:SPDataSource ID="SPDataSource1" runat="server" DataSourceMode="Listoflists"> </SharePointWebControls:SPDataSource>
Rien de bien sorcier... http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.spdatasource.datasourcemode.aspx http://solutionizing.net/spdatasource-fields-for-webs-listsoflists/
La grid :
<asp:GridView ID="GridView1" runat="server" DataSourceID="SPDataSource1" AutoGenerateColumns="False" AllowSorting="True" AllowPaging="True" PageSize="2000" CellPadding="3" BorderStyle="Solid" BorderWidth="1px" HorizontalAlign="Left" EnableSortingAndPagingCallbacks="True"> <Columns> <asp:boundfield DataField="__spBaseTemplate" HeaderText="Survey Type"> </asp:boundfield> <asp:hyperlinkfield DataNavigateUrlFields="__spDefaultViewUrl" DataTextField="__spTitle" HeaderText="Survey Name"> </asp:hyperlinkfield> <asp:boundfield DataField="__spCreated" HeaderText="Survey Date"> </asp:boundfield> <asp:boundfield DataField="__spAuthor" HeaderText="Survey Author"> </asp:boundfield> </Columns> </asp:GridView>
Ça donne ça :

Le problème : pour filtrer et ordonner les spdatasources, on se sert généralement d'une CAML Query.
Je recommande vivement ce petit outil : CAML Designer
ça devrait donner ça pour le SPDatasource :
<SharePoint:SPDataSource ID="SPDataSource1" runat="server" DataSourceMode="Listoflists" SelectCommand="<View><ViewFields><FieldRef Name='__spTitle'/><FieldRef Name='__spCreated'/><FieldRef Name='__spBaseTemplate'/><FieldRef Name='__spDefaultViewUrl'/></ViewFields><Query><OrderBy><FieldRef Name='Created' /></OrderBy><Where><Eq><FieldRef Name='__spBaseTemplate' /><Value Type='Text'>Survey</Value></Eq></Where></Query></View>"> </SharePoint:SPDataSource>
Et bien non.... le selectcommand n'est absolument pas pris en compte pour le mode Listoflist...
Résultat : j'obtiens bien une liste de mes listes. De toutes mes listes, non filtrées et non triées par date de création...
Pour le filtrage sur le type "Survey", je fais ça en jQuery : je masque la ligne (TR) si le contenu de la 1ere colonne est "Survey", après avoir créé un div avec id pour englober ma grid. J'en profite pour mettre un peu en forme et masquer la 1ere colonne (type de liste) :
<SharePointWebControls:SPDataSource ID="SPDataSource1" runat="server" DataSourceMode="Listoflists" UseServerDataFormat="True"> </SharePointWebControls:SPDataSource> <div id="surveylist" style="display:none;"> <asp:GridView ID="GridView1" runat="server" DataSourceID="SPDataSource1" AutoGenerateColumns="False" AllowSorting="True" AllowPaging="True" PageSize="2000" CellPadding="3" BorderStyle="Solid" BorderWidth="1px" HorizontalAlign="Left" EnableSortingAndPagingCallbacks="True"> <Columns> <asp:boundfield DataField="__spBaseTemplate" HeaderText="Survey Type"> </asp:boundfield> <asp:hyperlinkfield DataNavigateUrlFields="__spDefaultViewUrl" DataTextField="__spTitle" HeaderText="Survey Name"> </asp:hyperlinkfield> <asp:boundfield DataField="__spCreated" HeaderText="Survey Date"> </asp:boundfield> <asp:boundfield DataField="__spAuthor" HeaderText="Survey Author"> </asp:boundfield> </Columns> </asp:GridView> </div> <script type="text/javascript"> $(document).ready(function() { $("tr th:first-child").hide(); $("tr td:first-child").hide(); $("tr td:first-child:not(:contains('Survey'))").closest('tr').hide(); $("#surveylist th").css('text-align','left'); $("#surveylist").show(); }); </script>
Ça donne ça :

Si jamais quelqu'un a une solution plus "propre", je suis preneur :)
0 notes
Text
Arrgh ! L'animation progressive de svg me donne mal à la tête
Faire bouger un truc, facile. Un fichier svg, un peu de jQuery et ça se passe pas trop mal :
http://www.carolus-la-puce.com
Mais faire 'pousser' un truc... C'est une autre paire de manche.
Surtout quand on veut que tout ça soit compatible cross browser...
- J'utilise jQuery.svg - Je load un fichier svg dans un div (ici : mainsvg): $("#mainsvg").svg({loadURL: 'medias/home.svg', onLoad:launchAll}); - Ensuite, je peux manipuler mes objets svg en jQuery. Ex : $("#BoiteCarton").animate({svgTransform: 'translate(40,-6)'}, 200);
Je n'ai pas encore trouvé de moyen simple d'animer un objet svg (un path) pour faire comme s'il était dessiné, comme une plante qui pousse, en fait...
J'ai lu sur certains forums qu'utiliser les pointillés et les animer pouvait être un moyen de contournement : <set attributeName="stroke-dasharray" to="600"/> <set attributeName="stroke-dashoffset" to="600"/> <animate attributeName="stroke-dashoffset" values="600;0" begin="0s" dur="5s" fill="freeze"/>
Le hic : ça ne fonctionne pas sur tous les navigateurs...
http://www.carolus-la-puce.com/medias/test.svg
Je continue de chercher...
1 note
·
View note