Modif de la vue des preview » History » Version 2
Marc Nicolas, 06/03/2012 11:39
1 | 1 | Marc Nicolas | h1. Modif de la vue des preview |
---|---|---|---|
2 | 1 | Marc Nicolas | |
3 | 2 | Marc Nicolas | h2. +* Première étape :*+ |
4 | 1 | Marc Nicolas | |
5 | 1 | Marc Nicolas | Dans le fichier viewDataDetails.js qui se trouve dans workspace/client-user/js/components/ : |
6 | 1 | Marc Nicolas | |
7 | 1 | Marc Nicolas | Modification faite pour qu'on ne voit pas le panneau prévu pour les preview et les datasetLink si on n'en a pas dans le dataset. Et ré arrangement de la vu pour que le panel de la preview soit plus grande et au center et celui des données soit à l'ouest quand il a une preview de définie. |
8 | 1 | Marc Nicolas | |
9 | 1 | Marc Nicolas | Tout d'abord j'ai mis en commentaire la ligne (vers les 118) : sitools.component.users.viewDataDetail.superclass.initComponent.call(this) car je l'appelle dans une autre fonction. |
10 | 1 | Marc Nicolas | |
11 | 1 | Marc Nicolas | Dans la fonction getCmDefAndbuildForm : |
12 | 1 | Marc Nicolas | |
13 | 1 | Marc Nicolas | Je regarde dans le datasetColumnModel si on a une colonne qui est une preview ou un lien vers d'autres dataset (si c'est le cas je passe un boolean à true). Pour cela j’insère le code suivant juste après this.datasetColumnModel = Json.dataset.columnModel dans le success de la requete Ajax : |
14 | 1 | Marc Nicolas | <pre><code class="javascript"> |
15 | 1 | Marc Nicolas | |
16 | 1 | Marc Nicolas | var booleanPanelImg = false; |
17 | 1 | Marc Nicolas | Ext.each(this.datasetColumnModel, function(item) { |
18 | 1 | Marc Nicolas | if(item.columnRenderer == "displayImage" || item.columnRenderer == "datasetIconLink" || item.columnRenderer == "datasetLink"){ |
19 | 1 | Marc Nicolas | booleanPanelImg = true; |
20 | 1 | Marc Nicolas | } |
21 | 1 | Marc Nicolas | }); |
22 | 1 | Marc Nicolas | this.changeDisplayColumn(booleanPanelImg); |
23 | 1 | Marc Nicolas | |
24 | 1 | Marc Nicolas | </code></pre> |
25 | 1 | Marc Nicolas | |
26 | 1 | Marc Nicolas | |
27 | 1 | Marc Nicolas | La fonction changeDisplayColumn va appliquer les changements de vues selon le booleanPanelImg, qui est a true si on a une preview ou un lien et false dans le cas contraire. |
28 | 1 | Marc Nicolas | |
29 | 1 | Marc Nicolas | Voici le code de cette fonction, que j'ai mis à la fin juste aprés la fonction findColumn: |
30 | 1 | Marc Nicolas | |
31 | 1 | Marc Nicolas | |
32 | 1 | Marc Nicolas | <pre><code class="javascript"> |
33 | 1 | Marc Nicolas | |
34 | 1 | Marc Nicolas | changeDisplayColumn : function(bool){ |
35 | 1 | Marc Nicolas | if(bool){ |
36 | 1 | Marc Nicolas | this.formPanel.region = "west"; |
37 | 1 | Marc Nicolas | this.formPanelImg.region = "center"; |
38 | 1 | Marc Nicolas | |
39 | 1 | Marc Nicolas | this.formPanelImg.collasped = true; |
40 | 1 | Marc Nicolas | |
41 | 1 | Marc Nicolas | }else{ |
42 | 1 | Marc Nicolas | |
43 | 1 | Marc Nicolas | this.formPanel.collapsible = false; |
44 | 1 | Marc Nicolas | this.formPanel.split = false; |
45 | 1 | Marc Nicolas | this.formPanel.width = 775; |
46 | 1 | Marc Nicolas | this.items = [this.formPanel]; |
47 | 1 | Marc Nicolas | |
48 | 1 | Marc Nicolas | } |
49 | 1 | Marc Nicolas | |
50 | 1 | Marc Nicolas | sitools.component.users.viewDataDetail.superclass.initComponent.call(this); |
51 | 1 | Marc Nicolas | |
52 | 1 | Marc Nicolas | } |
53 | 1 | Marc Nicolas | </code></pre> |
54 | 1 | Marc Nicolas | |
55 | 2 | Marc Nicolas | h2. *+ Deuxième étape :+* |
56 | 1 | Marc Nicolas | |
57 | 1 | Marc Nicolas | Pour redimensionner le conteneur des 2 panels du viewDataDetail, il faut ouvrir le fichier client-user/js/desktop/desktop.js. |
58 | 1 | Marc Nicolas | |
59 | 1 | Marc Nicolas | Dans la fonction addWinData |
60 | 1 | Marc Nicolas | |
61 | 1 | Marc Nicolas | Il faut creer une variable qui va pouvoir nous dire quel type de fenetre est ouverte : |
62 | 1 | Marc Nicolas | <pre><code class="javascript"> |
63 | 1 | Marc Nicolas | var moduleName = windowSettings.title.substring(0,12); |
64 | 1 | Marc Nicolas | </code></pre> |
65 | 1 | Marc Nicolas | Puis avec un test, voir si c'est une fenetre de type "Data details" et si c'est le cas redefnir ma taille de la fenetre comme cela par exemple : |
66 | 1 | Marc Nicolas | <pre><code class="javascript"> |
67 | 1 | Marc Nicolas | |
68 | 1 | Marc Nicolas | if(moduleName == "Data details"){ |
69 | 1 | Marc Nicolas | var winWidth = 800; |
70 | 1 | Marc Nicolas | }else{ |
71 | 1 | Marc Nicolas | |
72 | 1 | Marc Nicolas | var winWidth = DEFAULT_WIN_WIDTH; |
73 | 1 | Marc Nicolas | |
74 | 1 | Marc Nicolas | } |
75 | 1 | Marc Nicolas | </code></pre> |