Patch for
+ Move ifolder from 'available on server' to 'on this computer' on
Download action.
+ During initial state (imm after download) disable 'share with',
'properties' menu items.
+ Removed un-used functions.
Please Review.
Thanks,
Johnny
Index: LinuxClient/library/iFolderWindow.cs
===================================================================
--- LinuxClient/library/iFolderWindow.cs (revision 6510)
+++ LinuxClient/library/iFolderWindow.cs (working copy)
@@ -316,6 +316,7 @@
return vbox;
}
+
/// <summary>
/// Creates the menubar for the iFolderWindow
/// </summary>
@@ -1381,7 +1382,7 @@
menu.Append (item_share);
item_share.Activated += new EventHandler(
OnShareSynchronizedFolder);
-
+
if (!holder.iFolder.Role.Equals("Master"))
{
MenuItem item_revert = new MenuItem (
@@ -1407,6 +1408,18 @@
menu.Append (item_properties);
item_properties.Activated +=
new EventHandler(OnShowFolderProperties);
+
+ if (holder.State == iFolderState.Initial && holder.iFolder.State == "Available")
+ {
+ //iFolder has not synced yet. So these functions needs to be disabled.
+ item_share.Sensitive = false;
+ item_properties.Sensitive = false;
+ }
+ else
+ {
+ item_share.Sensitive = true;
+ item_properties.Sensitive = true;
+ }
}
menu.ShowAll();
@@ -2204,8 +2217,18 @@
// Show the Local iFolder Buttons
OpenSynchronizedFolderButton.Visible = true;
SynchronizeNowButton.Visible = true;
- ShareSynchronizedFolderButton.Visible = true;
- ViewFolderPropertiesButton.Visible = true;
+
+ if (holder.State == iFolderState.Initial && holder.iFolder.State == "Available")
+ {
+ ShareSynchronizedFolderButton.Visible = false;
+ ViewFolderPropertiesButton.Visible = false;
+ }
+ else
+ {
+ ShareSynchronizedFolderButton.Visible = true;
+ ViewFolderPropertiesButton.Visible = true;
+ }
+
RemoveiFolderButton.Visible = true;
if (holder.iFolder.HasConflicts)
@@ -2218,12 +2241,29 @@
RemoveiFolderButton.Sensitive = true;
}
+
}
private void UpdateMenuSensitivity(iFolderHolder holder)
{
if (holder != null)
{
+ if((holder.iFolder != null) && (holder.State == iFolderState.Initial))
+ {
+ ShareMenuItem.Sensitive = false;
+ OpenMenuItem.Sensitive = false;
+ SyncNowMenuItem.Sensitive = false;
+ ConflictMenuItem.Sensitive = false;
+ RevertMenuItem.Sensitive = false;
+ DeleteMenuItem.Sensitive = false;
+ RemoveMenuItem.Sensitive = false;
+ RemoveMenuItem.Visible = false;
+ PropMenuItem.Sensitive = false;
+ DownloadMenuItem.Sensitive = false;
+ return ;
+ }
+
+
if( (holder.iFolder != null) &&
(holder.iFolder.HasConflicts) )
{
@@ -2236,18 +2276,31 @@
// ConflictButton.Sensitive = false;
}
+
if(!holder.iFolder.IsSubscription)
{
DownloadMenuItem.Sensitive = false;
- ShareMenuItem.Sensitive = true;
+
+ if (holder.State == iFolderState.Initial && holder.iFolder.State == "Available")
+ {
+ ShareMenuItem.Sensitive = false;
+ PropMenuItem.Sensitive = false;
+ }
+ else
+ {
+ ShareMenuItem.Sensitive = true;
+ PropMenuItem.Sensitive = true;
+ }
+
OpenMenuItem.Sensitive = true;
SyncNowMenuItem.Sensitive = true;
if (holder.iFolder.Role.Equals("Master"))
RevertMenuItem.Sensitive = false;
+
else
RevertMenuItem.Sensitive = true;
+
PropMenuItem.Sensitive = true;
-
DeleteMenuItem.Sensitive = false;
RemoveMenuItem.Sensitive = false;
}
@@ -2293,6 +2346,7 @@
PropMenuItem.Sensitive = false;
DownloadMenuItem.Sensitive = false;
}
+
}
private void RefreshiFolders(bool bReadFromSimias)
Index: LinuxClient/library/iFolderData.cs
===================================================================
--- LinuxClient/library/iFolderData.cs (revision 6516)
+++ LinuxClient/library/iFolderData.cs (working copy)
@@ -452,6 +452,7 @@
//===================================================================
public void DeliFolder(string ifolderID)
{
+ Console.WriteLine ("DeliFolder : reached ");
lock (instanceLock)
{
iFolderDeleteHandler deleteHandler =
@@ -847,19 +848,35 @@
return null;
}
- if(newifolder.ID != ifolderID)
- {
+ if(newifolder.ID != ifolderID)
+ {
subToiFolderMap.Remove(ifolderID);
- if (newifolder.IsSubscription)
- {
+ if (newifolder.IsSubscription)
+ {
subToiFolderMap[newifolder.ID]
= newifolder.CollectionID;
}
}
+
ifHolder = GetiFolder(ifolderID);
ifHolder.iFolder = newifolder;
+ if (ifolderIters.ContainsKey(ifolderID))
+ {
+ // Emit a TreeModel RowChanged Event
+ TreeIter iter = (TreeIter)
+ ifolderIters[ifolderID];
+ TreePath path = iFolderListStore.GetPath(iter);
+ if (path != null)
+ {
+ iFolderChangedHandler changedHandler =
+ new iFolderChangedHandler(
+ path, iter, iFolderListStore);
+ GLib.Idle.Add(changedHandler.IdleHandler);
+ }
+ }
+
// FIXME: Figure out if there's a better way to cause the UI to update besides causing a Refresh
Refresh();
Index: WebService/iFolderService.cs
===================================================================
--- WebService/iFolderService.cs (revision 6516)
+++ WebService/iFolderService.cs (working copy)
@@ -1707,59 +1707,17 @@
throw new Exception("AtOrInsideCollectionPath");
}
-// Collection c = DiscoveryFramework.CreateProxyCollection (store, DomainID, iFolderID, Path.GetFullPath(LocalPath));
-// CreateProxy (store, DomainID, iFolderID, Path.GetFullPath (path));
DiscoveryFramework.CreateProxy (store, DomainID, iFolderID, Path.GetFullPath (path));
iFolderWeb ifolder = new iFolderWeb(cinfo);
-// ifolder.State = "WaitConnect";
-// iFolderWeb ifolder = new iFolderWeb(c);
+ ifolder.State = "Available";
+ ifolder.Role = "Master";
+ ifolder.UnManagedPath = path;
+ ifolder.IsSubscription = false;
+
return ifolder;
}
- public void CreateProxy1 (Store store, string DomainID,string iFolderID, string localPath )
- {
- ArrayList commitList = new ArrayList();
-
- CollectionInfo cinfo = DiscoveryFramework.GetCollectionInfo (iFolderID);
-
- Collection c = new Collection(store, cinfo.Name,
- cinfo.CollectionID, DomainID);
-
- c.HostID = cinfo.HostID;
-
- commitList.Add(c);
-
- // Create the member as well
- Domain domain = store.GetDomain(DomainID);
- Member m = domain.GetCurrentMember ();
-
- Member member = new Member(m.Name, cinfo.MemberNodeID, m.UserID, Simias.Storage.Access.Rights.Admin, null);
- member.IsOwner = true;
- member.Proxy = true;
- commitList.Add(member);
-
-// // check for a dir node
-// if (((this.DirNodeID != null) && (this.DirNodeID.Length > 0))
-// && (this.DirNodeName != null) && (this.DirNodeName.Length > 0)
-// && (this.CollectionRoot != null) && (this.CollectionRoot.Length > 0))
-// {
-
-// string path = Path.Combine(this.CollectionRoot, this.DirNodeName);
-
- DirNode dn = new DirNode(c, localPath, cinfo.DirNodeID);
-// DirNode dn = new DirNode(c, localPath);
-// // DirNode dn = new DirNode(c, localPath, c.ID);
- if (!Directory.Exists(localPath)) Directory.CreateDirectory(localPath);
-
-// dn.Proxy = true;
- commitList.Add(dn);
-// }
-
- c.Proxy = true;
- c.Commit((Node[]) commitList.ToArray(typeof(Node)));
- }
-
/// <summary>
/// Accepts an Enterprise Subscription
/// </summary>
_______________________________________________
ifolder-dev mailing list
[email protected]
http://forge.novell.com/mailman/listinfo/ifolder-dev