2 * Copyright 2000, International Business Machines Corporation and others.
5 * This software has been released under the terms of the IBM Public
6 * License. For details, see the LICENSE file in the top-level source
7 * directory or online at http://www.openafs.org/dl/license10.html
11 #include <afs/param.h>
20 * FILESET-VIEW COLUMNS _______________________________________________________
24 void Filesets_SetDefaultView (LPVIEWINFO lpvi)
26 lpvi->lvsView = FLS_VIEW_LIST;
27 lpvi->nColsAvail = nFILESETCOLUMNS;
29 for (size_t iCol = 0; iCol < nFILESETCOLUMNS; ++iCol)
31 lpvi->cxColumns[ iCol ] = FILESETCOLUMNS[ iCol ].cxWidth;
32 lpvi->idsColumns[ iCol ] = FILESETCOLUMNS[ iCol ].idsColumn;
35 lpvi->iSort = setcolNAME;
38 lpvi->aColumns[0] = (int)setcolNAME;
39 lpvi->aColumns[1] = (int)setcolAGGREGATE;
40 lpvi->aColumns[2] = (int)setcolTYPE;
41 lpvi->aColumns[3] = (int)setcolQUOTA_USED;
42 lpvi->aColumns[4] = (int)setcolQUOTA_TOTAL;
43 lpvi->aColumns[5] = (int)setcolQUOTA_USED_PER;
44 lpvi->aColumns[6] = (int)setcolSTATUS;
48 size_t Filesets_GetAlertCount (LPFILESET lpFileset)
50 return Alert_GetCount (lpFileset->GetIdentifier());
54 LPTSTR Filesets_GetColumnText (LPIDENT lpi, FILESETCOLUMN setcol, BOOL fShowServerName)
56 static TCHAR aszBuffer[ nFILESETCOLUMNS ][ cchRESOURCE ];
57 static size_t iBufferNext = 0;
58 LPTSTR pszBuffer = aszBuffer[ iBufferNext++ ];
59 if (iBufferNext == nFILESETCOLUMNS)
61 *pszBuffer = TEXT('\0');
63 LPFILESETSTATUS lpfs = NULL;
66 if ((lpfp = (LPFILESET_PREF)lpi->GetUserParam()) != NULL)
75 lpi->GetFilesetName (pszBuffer);
80 lpi->GetAggregateName (pszBuffer);
83 TCHAR szNameSvr[ cchNAME ];
84 TCHAR szNameAgg[ cchNAME ];
85 lpi->GetServerName (szNameSvr);
86 lpi->GetAggregateName (szNameAgg);
87 LPTSTR pszName = FormatString (IDS_SERVER_AGGREGATE, TEXT("%s%s"), szNameSvr, szNameAgg);
88 lstrcpy (pszBuffer, pszName);
99 GetString (pszBuffer, IDS_FILESETTYPE_RW);
103 GetString (pszBuffer, IDS_FILESETTYPE_CLONE);
108 GetString (pszBuffer, IDS_FILESETTYPE_RO);
109 else if (lpiRW->GetServer() != lpi->GetServer())
110 GetString (pszBuffer, IDS_FILESETTYPE_RO);
112 GetString (pszBuffer, IDS_FILESETTYPE_RO_STAGE);
118 case setcolDATE_CREATE:
121 if (!FormatTime (pszBuffer, TEXT("%s"), &lpfs->timeCreation))
122 pszBuffer[0] = TEXT('\0');
126 case setcolDATE_UPDATE:
129 if (!FormatTime (pszBuffer, TEXT("%s"), &lpfs->timeLastUpdate))
130 pszBuffer[0] = TEXT('\0');
134 case setcolDATE_ACCESS:
137 if (!FormatTime (pszBuffer, TEXT("%s"), &lpfs->timeLastAccess))
138 pszBuffer[0] = TEXT('\0');
142 case setcolDATE_BACKUP:
145 if (!FormatTime (pszBuffer, TEXT("%s"), &lpfs->timeLastBackup))
146 pszBuffer[0] = TEXT('\0');
150 case setcolQUOTA_USED:
153 LPTSTR psz = FormatString (TEXT("%1"), TEXT("%.1B"), 1024.0 * lpfs->ckUsed);
154 lstrcpy (pszBuffer, psz);
159 case setcolQUOTA_USED_PER:
160 if (lpfs && lpfs->Type == ftREADWRITE)
163 if (lpfs->ckQuota != 0)
164 dwPer = (DWORD)( 100.0 * lpfs->ckUsed / lpfs->ckQuota );
166 dwPer = max( 0, dwPer );
167 LPTSTR psz = FormatString (IDS_PERCENTAGE, TEXT("%lu"), dwPer);
168 lstrcpy (pszBuffer, psz);
173 case setcolQUOTA_FREE:
174 if (lpfs && lpfs->Type == ftREADWRITE)
176 LPTSTR psz = FormatString (TEXT("%1"), TEXT("%.1B"), 1024.0 * (lpfs->ckQuota - lpfs->ckUsed));
177 lstrcpy (pszBuffer, psz);
182 case setcolQUOTA_TOTAL:
183 if (lpfs && lpfs->Type == ftREADWRITE)
185 LPTSTR psz = FormatString (TEXT("%1"), TEXT("%.1B"), 1024.0 * lpfs->ckQuota);
186 lstrcpy (pszBuffer, psz);
193 if ((pszDesc = Alert_GetQuickDescription (lpi)) != NULL)
195 lstrcpy (pszBuffer,pszDesc);
196 FreeString (pszDesc);
200 GetString (pszBuffer, IDS_STATUS_NOALERTS);
204 if (lpfs->State & fsBUSY)
205 GetString (pszBuffer, IDS_SETSTATUS_BUSY);
206 else if (lpfs->State & fsSALVAGE)
207 GetString (pszBuffer, IDS_SETSTATUS_SALVAGE);
208 else if (lpfs->State & fsMOVED)
209 GetString (pszBuffer, IDS_SETSTATUS_MOVED);
210 else if (lpfs->State & fsLOCKED)
211 GetString (pszBuffer, IDS_SETSTATUS_LOCKED);
212 else if (lpfs->State & fsNO_VOL)
213 GetString (pszBuffer, IDS_SETSTATUS_NO_VOL);
215 GetString (pszBuffer, IDS_STATUS_NOALERTS);
222 LPTSTR psz = FormatString (TEXT("%1"), TEXT("%ld"), lpfs->id);
223 lstrcpy (pszBuffer, psz);
231 LPTSTR psz = FormatString (TEXT("%1"), TEXT("%ld"), lpfs->nFiles);
232 lstrcpy (pszBuffer, psz);
243 * REPLICA-VIEW COLUMNS _______________________________________________________
247 void Replicas_SetDefaultView (LPVIEWINFO lpvi)
249 lpvi->lvsView = FLS_VIEW_LIST;
250 lpvi->nColsAvail = nREPLICACOLUMNS;
252 for (size_t iCol = 0; iCol < nREPLICACOLUMNS; ++iCol)
254 lpvi->cxColumns[ iCol ] = REPLICACOLUMNS[ iCol ].cxWidth;
255 lpvi->idsColumns[ iCol ] = REPLICACOLUMNS[ iCol ].idsColumn;
258 lpvi->nColsShown = 3;
259 lpvi->aColumns[0] = (int)repcolSERVER;
260 lpvi->aColumns[1] = (int)repcolAGGREGATE;
261 lpvi->aColumns[2] = (int)repcolDATE_UPDATE;
265 LPTSTR Replicas_GetColumnText (LPIDENT lpi, REPLICACOLUMN repcol)
267 static TCHAR aszBuffer[ nREPLICACOLUMNS ][ cchRESOURCE ];
268 static size_t iBufferNext = 0;
269 LPTSTR pszBuffer = aszBuffer[ iBufferNext++ ];
270 if (iBufferNext == nREPLICACOLUMNS)
273 LPFILESETSTATUS lpfs = NULL;
275 if ((lpfp = (LPFILESET_PREF)lpi->GetUserParam()) != NULL)
277 lpfs = &lpfp->fsLast;
283 lpi->GetServerName (pszBuffer);
286 case repcolAGGREGATE:
287 lpi->GetAggregateName (pszBuffer);
290 case repcolDATE_UPDATE:
292 *pszBuffer = TEXT('\0');
293 else if (!FormatTime (pszBuffer, TEXT("%s"), &lpfs->timeLastUpdate))
294 *pszBuffer = TEXT('\0');