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
14 #include <afs/param.h>
23 * FILESET-VIEW COLUMNS _______________________________________________________
27 void Filesets_SetDefaultView (LPVIEWINFO lpvi)
29 lpvi->lvsView = FLS_VIEW_LIST;
30 lpvi->nColsAvail = nFILESETCOLUMNS;
32 for (size_t iCol = 0; iCol < nFILESETCOLUMNS; ++iCol)
34 lpvi->cxColumns[ iCol ] = FILESETCOLUMNS[ iCol ].cxWidth;
35 lpvi->idsColumns[ iCol ] = FILESETCOLUMNS[ iCol ].idsColumn;
38 lpvi->iSort = setcolNAME;
41 lpvi->aColumns[0] = (int)setcolNAME;
42 lpvi->aColumns[1] = (int)setcolAGGREGATE;
43 lpvi->aColumns[2] = (int)setcolTYPE;
44 lpvi->aColumns[3] = (int)setcolQUOTA_USED;
45 lpvi->aColumns[4] = (int)setcolQUOTA_TOTAL;
46 lpvi->aColumns[5] = (int)setcolQUOTA_USED_PER;
47 lpvi->aColumns[6] = (int)setcolSTATUS;
51 size_t Filesets_GetAlertCount (LPFILESET lpFileset)
53 return Alert_GetCount (lpFileset->GetIdentifier());
57 LPTSTR Filesets_GetColumnText (LPIDENT lpi, FILESETCOLUMN setcol, BOOL fShowServerName)
59 static TCHAR aszBuffer[ nFILESETCOLUMNS ][ cchRESOURCE ];
60 static size_t iBufferNext = 0;
61 LPTSTR pszBuffer = aszBuffer[ iBufferNext++ ];
62 if (iBufferNext == nFILESETCOLUMNS)
64 *pszBuffer = TEXT('\0');
66 LPFILESETSTATUS lpfs = NULL;
69 if ((lpfp = (LPFILESET_PREF)lpi->GetUserParam()) != NULL)
78 lpi->GetFilesetName (pszBuffer);
83 lpi->GetAggregateName (pszBuffer);
86 TCHAR szNameSvr[ cchNAME ];
87 TCHAR szNameAgg[ cchNAME ];
88 lpi->GetServerName (szNameSvr);
89 lpi->GetAggregateName (szNameAgg);
90 LPTSTR pszName = FormatString (IDS_SERVER_AGGREGATE, TEXT("%s%s"), szNameSvr, szNameAgg);
91 lstrcpy (pszBuffer, pszName);
102 GetString (pszBuffer, IDS_FILESETTYPE_RW);
106 GetString (pszBuffer, IDS_FILESETTYPE_CLONE);
111 GetString (pszBuffer, IDS_FILESETTYPE_RO);
112 else if (lpiRW->GetServer() != lpi->GetServer())
113 GetString (pszBuffer, IDS_FILESETTYPE_RO);
115 GetString (pszBuffer, IDS_FILESETTYPE_RO_STAGE);
121 case setcolDATE_CREATE:
124 if (!FormatTime (pszBuffer, TEXT("%s"), &lpfs->timeCreation))
125 pszBuffer[0] = TEXT('\0');
129 case setcolDATE_UPDATE:
132 if (!FormatTime (pszBuffer, TEXT("%s"), &lpfs->timeLastUpdate))
133 pszBuffer[0] = TEXT('\0');
137 case setcolDATE_ACCESS:
140 if (!FormatTime (pszBuffer, TEXT("%s"), &lpfs->timeLastAccess))
141 pszBuffer[0] = TEXT('\0');
145 case setcolDATE_BACKUP:
148 if (!FormatTime (pszBuffer, TEXT("%s"), &lpfs->timeLastBackup))
149 pszBuffer[0] = TEXT('\0');
153 case setcolQUOTA_USED:
156 LPTSTR psz = FormatString (TEXT("%1"), TEXT("%.1B"), 1024.0 * lpfs->ckUsed);
157 lstrcpy (pszBuffer, psz);
162 case setcolQUOTA_USED_PER:
163 if (lpfs && lpfs->Type == ftREADWRITE)
166 if (lpfs->ckQuota != 0)
167 dwPer = (DWORD)( 100.0 * lpfs->ckUsed / lpfs->ckQuota );
169 dwPer = max( 0, dwPer );
170 LPTSTR psz = FormatString (IDS_PERCENTAGE, TEXT("%lu"), dwPer);
171 lstrcpy (pszBuffer, psz);
176 case setcolQUOTA_FREE:
177 if (lpfs && lpfs->Type == ftREADWRITE)
179 LPTSTR psz = FormatString (TEXT("%1"), TEXT("%.1B"), 1024.0 * (lpfs->ckQuota - lpfs->ckUsed));
180 lstrcpy (pszBuffer, psz);
185 case setcolQUOTA_TOTAL:
186 if (lpfs && lpfs->Type == ftREADWRITE)
188 LPTSTR psz = FormatString (TEXT("%1"), TEXT("%.1B"), 1024.0 * lpfs->ckQuota);
189 lstrcpy (pszBuffer, psz);
196 if ((pszDesc = Alert_GetQuickDescription (lpi)) != NULL)
198 lstrcpy (pszBuffer,pszDesc);
199 FreeString (pszDesc);
203 GetString (pszBuffer, IDS_STATUS_NOALERTS);
207 if (lpfs->State & fsBUSY)
208 GetString (pszBuffer, IDS_SETSTATUS_BUSY);
209 else if (lpfs->State & fsSALVAGE)
210 GetString (pszBuffer, IDS_SETSTATUS_SALVAGE);
211 else if (lpfs->State & fsMOVED)
212 GetString (pszBuffer, IDS_SETSTATUS_MOVED);
213 else if (lpfs->State & fsLOCKED)
214 GetString (pszBuffer, IDS_SETSTATUS_LOCKED);
215 else if (lpfs->State & fsNO_VOL)
216 GetString (pszBuffer, IDS_SETSTATUS_NO_VOL);
218 GetString (pszBuffer, IDS_STATUS_NOALERTS);
225 LPTSTR psz = FormatString (TEXT("%1"), TEXT("%ld"), lpfs->id);
226 lstrcpy (pszBuffer, psz);
234 LPTSTR psz = FormatString (TEXT("%1"), TEXT("%ld"), lpfs->nFiles);
235 lstrcpy (pszBuffer, psz);
246 * REPLICA-VIEW COLUMNS _______________________________________________________
250 void Replicas_SetDefaultView (LPVIEWINFO lpvi)
252 lpvi->lvsView = FLS_VIEW_LIST;
253 lpvi->nColsAvail = nREPLICACOLUMNS;
255 for (size_t iCol = 0; iCol < nREPLICACOLUMNS; ++iCol)
257 lpvi->cxColumns[ iCol ] = REPLICACOLUMNS[ iCol ].cxWidth;
258 lpvi->idsColumns[ iCol ] = REPLICACOLUMNS[ iCol ].idsColumn;
261 lpvi->nColsShown = 3;
262 lpvi->aColumns[0] = (int)repcolSERVER;
263 lpvi->aColumns[1] = (int)repcolAGGREGATE;
264 lpvi->aColumns[2] = (int)repcolDATE_UPDATE;
268 LPTSTR Replicas_GetColumnText (LPIDENT lpi, REPLICACOLUMN repcol)
270 static TCHAR aszBuffer[ nREPLICACOLUMNS ][ cchRESOURCE ];
271 static size_t iBufferNext = 0;
272 LPTSTR pszBuffer = aszBuffer[ iBufferNext++ ];
273 if (iBufferNext == nREPLICACOLUMNS)
276 LPFILESETSTATUS lpfs = NULL;
278 if ((lpfp = (LPFILESET_PREF)lpi->GetUserParam()) != NULL)
280 lpfs = &lpfp->fsLast;
286 lpi->GetServerName (pszBuffer);
289 case repcolAGGREGATE:
290 lpi->GetAggregateName (pszBuffer);
293 case repcolDATE_UPDATE:
295 *pszBuffer = TEXT('\0');
296 else if (!FormatTime (pszBuffer, TEXT("%s"), &lpfs->timeLastUpdate))
297 *pszBuffer = TEXT('\0');