Project

General

Profile

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>