Squash events per day+user+folder
This commit is contained in:
parent
eea43eceac
commit
c7c035e11f
|
@ -28,6 +28,7 @@ namespace SparkleLib {
|
||||||
public string Folder;
|
public string Folder;
|
||||||
public string Revision;
|
public string Revision;
|
||||||
public DateTime Timestamp;
|
public DateTime Timestamp;
|
||||||
|
public DateTime FirstTimestamp;
|
||||||
public bool IsMerge = false;
|
public bool IsMerge = false;
|
||||||
|
|
||||||
public List<string> Added = new List<string> ();
|
public List<string> Added = new List<string> ();
|
||||||
|
|
|
@ -210,7 +210,7 @@ namespace SparkleShare {
|
||||||
if (match.Success) {
|
if (match.Success) {
|
||||||
string folder_name = match.Groups [1].Value;
|
string folder_name = match.Groups [1].Value;
|
||||||
string revision = match.Groups [2].Value;
|
string revision = match.Groups [2].Value;
|
||||||
string note = match.Groups [3].Value.Replace ("%20", " ");
|
string note = match.Groups [3].Value;
|
||||||
|
|
||||||
Thread thread = new Thread (new ThreadStart (delegate {
|
Thread thread = new Thread (new ThreadStart (delegate {
|
||||||
SparkleShare.Controller.AddNoteToFolder (folder_name, revision, note);
|
SparkleShare.Controller.AddNoteToFolder (folder_name, revision, note);
|
||||||
|
|
|
@ -298,7 +298,39 @@ namespace SparkleShare {
|
||||||
stored_activity_day.DateTime.Month == change_set.Timestamp.Month &&
|
stored_activity_day.DateTime.Month == change_set.Timestamp.Month &&
|
||||||
stored_activity_day.DateTime.Day == change_set.Timestamp.Day) {
|
stored_activity_day.DateTime.Day == change_set.Timestamp.Day) {
|
||||||
|
|
||||||
|
bool squash = false;
|
||||||
|
foreach (SparkleChangeSet existing_set in stored_activity_day) {
|
||||||
|
if (change_set.UserName.Equals (existing_set.UserName) &&
|
||||||
|
change_set.UserEmail.Equals (existing_set.UserEmail) &&
|
||||||
|
change_set.Folder.Equals (existing_set.Folder)) {
|
||||||
|
|
||||||
|
existing_set.Added.AddRange (change_set.Added);
|
||||||
|
existing_set.Edited.AddRange (change_set.Edited);
|
||||||
|
existing_set.Deleted.AddRange (change_set.Deleted);
|
||||||
|
existing_set.MovedFrom.AddRange (change_set.MovedFrom);
|
||||||
|
existing_set.MovedTo.AddRange (change_set.MovedTo);
|
||||||
|
existing_set.Notes.AddRange (change_set.Notes);
|
||||||
|
|
||||||
|
existing_set.Added = existing_set.Added.Distinct ().ToList ();
|
||||||
|
existing_set.Edited = existing_set.Edited.Distinct ().ToList ();
|
||||||
|
existing_set.Deleted = existing_set.Deleted.Distinct ().ToList ();
|
||||||
|
|
||||||
|
if (DateTime.Compare (existing_set.Timestamp, change_set.Timestamp) < 1) {
|
||||||
|
existing_set.FirstTimestamp = existing_set.Timestamp;
|
||||||
|
existing_set.Timestamp = change_set.Timestamp;
|
||||||
|
existing_set.Revision = change_set.Revision;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
existing_set.FirstTimestamp = change_set.Timestamp;
|
||||||
|
}
|
||||||
|
|
||||||
|
squash = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!squash)
|
||||||
stored_activity_day.Add (change_set);
|
stored_activity_day.Add (change_set);
|
||||||
|
|
||||||
change_set_inserted = true;
|
change_set_inserted = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -413,10 +445,18 @@ namespace SparkleShare {
|
||||||
avatar_email = change_set.UserEmail;
|
avatar_email = change_set.UserEmail;
|
||||||
|
|
||||||
event_entry += "</dl>";
|
event_entry += "</dl>";
|
||||||
|
|
||||||
|
string timestamp = change_set.Timestamp.ToString ("H:mm");
|
||||||
|
|
||||||
|
if (change_set.FirstTimestamp != null)
|
||||||
|
timestamp = change_set.FirstTimestamp.ToString ("H:mm") +
|
||||||
|
" – " +
|
||||||
|
change_set.Timestamp.ToString ("H:mm");
|
||||||
|
|
||||||
event_entries += event_entry_html.Replace ("<!-- $event-entry-content -->", event_entry)
|
event_entries += event_entry_html.Replace ("<!-- $event-entry-content -->", event_entry)
|
||||||
.Replace ("<!-- $event-user-name -->", change_set.UserName)
|
.Replace ("<!-- $event-user-name -->", change_set.UserName)
|
||||||
.Replace ("<!-- $event-avatar-url -->", "file://" + GetAvatar (avatar_email, 48))
|
.Replace ("<!-- $event-avatar-url -->", "file://" + GetAvatar (avatar_email, 48))
|
||||||
.Replace ("<!-- $event-time -->", change_set.Timestamp.ToString ("H:mm"))
|
.Replace ("<!-- $event-time -->", timestamp)
|
||||||
.Replace ("<!-- $event-folder -->", change_set.Folder)
|
.Replace ("<!-- $event-folder -->", change_set.Folder)
|
||||||
.Replace ("<!-- $event-revision -->", change_set.Revision)
|
.Replace ("<!-- $event-revision -->", change_set.Revision)
|
||||||
.Replace ("<!-- $event-folder-color -->", AssignColor (change_set.Folder))
|
.Replace ("<!-- $event-folder-color -->", AssignColor (change_set.Folder))
|
||||||
|
@ -1056,6 +1096,9 @@ namespace SparkleShare {
|
||||||
|
|
||||||
public void AddNoteToFolder (string folder_name, string revision, string note)
|
public void AddNoteToFolder (string folder_name, string revision, string note)
|
||||||
{
|
{
|
||||||
|
folder_name = folder_name.Replace ("%20", " ");
|
||||||
|
note = note.Replace ("%20", " ");
|
||||||
|
|
||||||
foreach (SparkleRepoBase repo in Repositories) {
|
foreach (SparkleRepoBase repo in Repositories) {
|
||||||
if (repo.Name.Equals (folder_name))
|
if (repo.Name.Equals (folder_name))
|
||||||
repo.AddNote (revision, note);
|
repo.AddNote (revision, note);
|
||||||
|
|
Loading…
Reference in a new issue