Modif de la vue des preview » History » Version 1
Marc Nicolas, 06/03/2012 11:39
| 1 | 1 | Marc Nicolas | h1. Modif de la vue des preview |
|---|---|---|---|
| 2 | 1 | Marc Nicolas | |
| 3 | 1 | 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 | 1 | 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> |