Exemple #1
0
		/// <summary>
		/// Anything that affects the DOM goes in here.
		/// </summary>
		void initialise()
		{

			Application.Navigate += new HistoryEventHandler(Application_Navigate);
			
			#region Initialisation variables
			ClientID = View.InitClientID.Value;
			EnableEffects = bool.Parse(View.InitEnableEffects.Value);
			#endregion

			#region JQuery handles
			EventInfoHolderOuterJQ = JQueryAPI.JQuery(View.EventInfoHolderOuter);
			#endregion 

			DomEvent.AddHandler(View.EventIconsNavigationForwardHolder, "click", new DomEventHandler(pageChangeForwardClick));
			DomEvent.AddHandler(View.EventIconsNavigationBackHolder, "click", new DomEventHandler(pageChangeBackClick));
			DomEvent.AddHandler(View.MusicDropDownControl.View.DropDown, "change", new DomEventHandler(musicChangeClick));
			DomEvent.AddHandler(View.PastEventsTab, "click", new DomEventHandler(tabClickPast));
			DomEvent.AddHandler(View.FutureEventsTab, "click", new DomEventHandler(tabClickFuture));
			DomEvent.AddHandler(View.TicketsTab, "click", new DomEventHandler(tabClickTickets));
			
			#region Event data cache, and initialise first page from json data in the page
			EventPageCache = new Dictionary();

			EventPageStub firstPageData = ((EventPageStub[])Script.Eval(" [ " + View.InitFirstPage.Value + " ] "))[0];
			EventPageDetails firstPage = new EventPageDetails(this, firstPageData, false);

			firstPage.Selected = true;
			firstPage.Html.InitialiseElements(true, false, false, true, true, false, true);
			for (int i = 0; i < firstPage.Events.Length; i++)
			{
				firstPage.Events[i].ChangeSelectedState(i == 0, false, "");
			}
			CurrentlySelectedEvent = firstPage.Events[0];
			#endregion
			
			EventPageCache[firstPage.GetKey()] = firstPage;
			
			#region Set initial page spec
			InitParentObjectType = firstPage.Data.parentObjectType;
			InitParentObjectK = firstPage.Data.parentObjectK;
			InitTabType = firstPage.Data.tabType;
			InitMusicTypeK = firstPage.Data.musicTypeK;
			InitPageIndex = firstPage.Data.pageIndex;
			#endregion

			#region Set initial and current page spec - this should be done by looking at the page hash state data...
			CurrentParentObjectType = InitParentObjectType;
			CurrentParentObjectK = InitParentObjectK;
			CurrentTabType = InitTabType;
			CurrentMusicTypeK = InitMusicTypeK;
			CurrentPageIndex = InitPageIndex;
			#endregion

			if (Misc.BrowserIsIE)
				Application.AddHistoryPoint(new Dictionary());

		}
Exemple #2
0
		public Popup(Controller controller, string title, Room room, HtmlItem[] items)
		{
			Title = title;
			RoomGuid = room.Guid;
			Removed = false;
			RoomGuidForClickAction = room.Guid;
			//RoomGuidForClickAction = item.GetRoomGuidForChatClickAction();


			#region //Holder
			Holder = (DivElement)Document.CreateElement("div");
			Holder.ClassName = "ChatClientPopup";
			Holder.Style.Width = PopupArea.PopupWidth.ToString() + "px";
			Holder.Style.Height = PopupArea.PopupHeight.ToString() + "px";
			
			#region //HeaderDiv
			DOMElement header = (DOMElement)Document.CreateElement("div");
			header.ClassName = "ChatClientPopupHeader";
			header.Style.Overflow = "hidden";

			{
				#region //Close button
				DivElement div = (DivElement)Document.CreateElement("div");
				div.ClassName = "ChatClientPopupCloseLinkHolder";

				{
					AnchorElement link = (AnchorElement)Document.CreateElement("a");
					link.InnerHTML = "Close";
					link.Href = "";
					DomEvent.AddHandler(link, "click", new DomEventHandler(closeButtonClick));
					div.AppendChild(link);
				}
				header.AppendChild(div);
				#endregion
			}

			{
				#region //TitleDiv
				DivElement div = (DivElement)Document.CreateElement("div");
				div.ClassName = "ChatClientPopupTitle";
				div.InnerHTML = Title;
				header.AppendChild(div);
				#endregion
			}

			Holder.AppendChild(header);
			
			#endregion

			#region //ItemsDiv
			{
				if (items != null)
				{
					ItemsList = (DivElement)Document.CreateElement("div");
					ItemsList.ClassName = "ChatClientPopupItemsList";

					DomEvent.AddHandler(ItemsList, "click", new DomEventHandler(holderClick));
					DomEvent.AddHandler(ItemsList, "mouseover", new DomEventHandler(holderMouseOver));
					DomEvent.AddHandler(ItemsList, "mouseout", new DomEventHandler(holderMouseOut));

					bool hasMultipleRelevantItems = false;
					for (int i = 0; i < items.Length; i++)
					{
						HtmlItem item = (HtmlItem)items[i];

						#region // if the item is posted by the current user, we never want to show a popup
						if (item is IHasPostingUsr)
						{
							if (((IHasPostingUsr)item).PostingUsrK == controller.UsrK)
								continue;
						}
						#endregion

						if (HasRelevantItems)
						{
							hasMultipleRelevantItems = true;
							break;
						}

						HasRelevantItems = true;
					}
					if (HasRelevantItems)
					{
						for (int i = 0; i < items.Length; i++)
						{
							HtmlItem item = (HtmlItem)items[i];

							#region // if the item is posted by the current user, we never want to show a popup
							if (item is IHasPostingUsr)
							{
								if (((IHasPostingUsr)item).PostingUsrK == controller.UsrK)
									continue;
							}
							#endregion

							if (!hasMultipleRelevantItems)
								RoomGuidForClickAction = item.GetRoomGuidForChatClickAction();

							#region //bodge it so it displays correctly - remember to save all things we change
							int previousInstance = item.Instance;
							bool previousNewStatus = false;
							if (item is Newable)
							{
								previousNewStatus = ((Newable)item).IsInNewSection;
								((Newable)item).IsInNewSection = false;
							}
							item.Instance = 2;

							bool previousShowChatButton = false;
							if (!hasMultipleRelevantItems && item is Message) // we only hide the chat button if there's only one item shown. for multi-item popups we want to leave the chat buttons as they were.
							{
								previousShowChatButton = ((Message)item).ShowChatButton;
								((Message)item).ShowChatButton = false;
							}
							#endregion

							DOMElement itemNode = Document.CreateElement("span");
							itemNode.InnerHTML = item.ToHtml();

							if (ItemsList.HasChildNodes())
								ItemsList.InsertBefore(itemNode, ItemsList.ChildNodes[0]);
							else
								ItemsList.AppendChild(itemNode);

							#region //restore all the things we bodged

							item.Instance = previousInstance;

							if (item is Newable)
								((Newable)item).IsInNewSection = previousNewStatus;
							
							if (!hasMultipleRelevantItems && item is Message) // we only hide the chat button if there's only one item shown. for multi-item popups we want to leave the chat buttons as they were.
								((Message)item).ShowChatButton = previousShowChatButton;

							#endregion

						}
						Holder.AppendChild(ItemsList);
					}
				}
			}
			#endregion

			#endregion

			Id = Math.Random().ToString();
			jHolder = JQueryAPI.JQuery(Holder);
		}
Exemple #3
0
		DOMElement add_View_Connect_DetailsPanel()
		{
			#region DetailsPanel
			string s = @"
<div id=""{ClientID}Connect_DetailsPanel"" class=""LoginPanel"" style=""display:none;"">
	<div class=""LoginPanelInner"">
		<p class=""LoginPanelTitle"">
			Just to confirm...
		</p>
		<p style=""position:relative; height:25px; line-height:25px;"">
			Favourite music:
			<select id=""{ClientID}Connect_Details_MusicDropDown"" class=""xui-state-default ui-corner-all"" style=""padding-left:5px; height:20px; left:140px; top:0px; position:absolute; width:300px;  height:25px; line-height:25px;"">
				<option value=""1"">I like all music</option>
				<option value=""42"">Commercial (pop, chart dance, club classics etc...)</option>
				<option value=""4"">House (funky house, soulful house, deep house etc...)</option>
				<option value=""10"">Hard Dance (hard house, trance, hardcore etc...)</option>
				<option value=""15"">Alternative Dance (breaks, electro, big beat etc...)</option>
				<option value=""20"">Techno (electro techno, detroit techno etc...)</option>
				<option value=""24"">Drum and Bass (drum'n'bass, jungle etc.)</option>
				<option value=""28"">Urban (hip-hop, R&amp;B, garage etc...)</option>
				<option value=""65"">Alternative Electronic (industrial, ebm, powernoise etc.)</option>
				<option value=""46"">Retro (disco, soul, jazz, funk etc...)</option>
				<option value=""35"">Chillout / Leftfield</option>
				<option value=""36"">Rock (indie, rock, metal etc...)</option>
			</select>
		</p>
		<p style=""position:relative; height:25px; line-height:25px;"">
			Nearest town: 
			<select id=""{ClientID}Connect_Details_CountryDropDown"" class=""ui-corner-all"" style=""padding-left:5px; height:20px; left:140px; top:0px; position:absolute; width:100px; height:25px; line-height:25px; display:none;"">
				<option value=""0"">Countries</option>
			</select>
			<select id=""{ClientID}Connect_Details_PlaceDropDown"" class=""ui-corner-all"" style=""padding-left:5px; height:20px; left:250px; top:0px; position:absolute; width:190px; height:25px; line-height:25px; display:none;"">
				<option value=""0"">Towns</option>
			</select>
			<span id=""{ClientID}Connect_Details_PlaceDefaultOuterSpan"" style=""height:25px; line-height:25px; left:140px; top:0px; position:absolute; width:300px;"">
				<span id=""{ClientID}Connect_Details_PlaceDefaultSpan""></span>
				<a id=""{ClientID}Connect_Details_PlaceChangeLink"" href="""">change</a>
			</span>
		</p>
		<div style=""position:relative;"">
			<p id=""{ClientID}Connect_Details_FacebookInfoPanel"" class=""ui-state-highlight ui-corner-all"" style=""position:absolute; top:-10px; padding:5px; left:300px; width:150px; display:none;"">
				We'll update your Facebook wall when you create stuff.
			</p>
			<p id=""{ClientID}Connect_Details_WeeklyEmailInfoPanel"" class=""ui-state-highlight ui-corner-all"" style=""position:absolute; top:-10px; padding:5px; left:300px; width:150px; display:none;"">
				We'll send you a weekly summary of events in your area playing your favourite music.
			</p>
			<p id=""{ClientID}Connect_Details_PartyInvitesInfoPanel"" class=""ui-state-highlight ui-corner-all"" style=""position:absolute; top:6px; padding:5px; left:300px; width:150px; display:none;"">
				We'll send you guestlist offers, e-flyers and party invites.
			</p>
		</div>
		<p style=""margin-left:140px; margin-top:0px; margin-bottom:2px; "">
			<input id=""{ClientID}Connect_Details_FacebookCheck"" type=""checkbox"" checked=""checked"" />
			<label for=""{ClientID}Connect_Details_FacebookCheck""> Facebook updates</label>
			<a id=""{ClientID}Connect_Details_FacebookInfoAnchor"" href="""">info</a>
		</p>
		<p style=""margin-left:140px; margin-top:0px; margin-bottom:2px;"">
			<input id=""{ClientID}Connect_Details_WeeklyEmailCheck"" type=""checkbox"" checked=""checked"" />
			<label for=""{ClientID}Connect_Details_WeeklyEmailCheck""> Weekly email</label>
			<a id=""{ClientID}Connect_Details_WeeklyEmailInfoAnchor"" href="""">info</a>
		</p>
		<p style=""margin-left:140px; margin-top:0px;"">
			<input id=""{ClientID}Connect_Details_PartyInvitesCheck"" type=""checkbox"" checked=""checked"" />
			<label for=""{ClientID}Connect_Details_PartyInvitesCheck""> Party invites</label>
			<a id=""{ClientID}Connect_Details_PartyInvitesInfoAnchor"" href="""">info</a>
		</p>
		<p style=""margin-left:140px; position:relative;"">
			<button id=""{ClientID}Connect_Details_SaveButton"" class=""ui-state-default ui-corner-all Pointer BigButton"" style=""float:left;"">Save</button>
			<p id=""{ClientID}Connect_Details_PlaceErrorSpan"" class=""ForegroundAttentionRed"" style=""font-weight:bold; display:none; padding-top:7px;"">&nbsp;Please select a town.</p>
		</p>
	</div>
	<p style=""position:relative;"">
		<button id=""{ClientID}Connect_Details_BackButton"" class=""ui-state-default ui-corner-all Pointer SmallButton"" style=""float:left; position:absolute; left:0px;"">Back</button>

		<button id=""{ClientID}Connect_Details_CancelButton"" class=""ui-state-default ui-corner-all Pointer SmallButton"" style=""float:right;"">Cancel</button>
	</p>
</div>
";
			addChild(s);
			#endregion

			DomEvent.AddHandler(View.Connect_Details_CountryDropDown, "change", new DomEventHandler(detailsCountryDropDownChange));
			DomEvent.AddHandler(View.Connect_Details_PlaceDropDown, "change", new DomEventHandler(detailsPlaceDropDownChange));
			DomEvent.AddHandler(View.Connect_Details_PlaceChangeLink, "click", new DomEventHandler(detailsPlaceChangeLinkClick));
			DomEvent.AddHandler(View.Connect_Details_SaveButton, "click", new DomEventHandler(detailsPanelSaveClick));

			DomEvent.AddHandler(View.Connect_Details_CancelButton, "click", new DomEventHandler(cancelButtonClick));
			DomEvent.AddHandler(View.Connect_Details_BackButton, "click", new DomEventHandler(detailsPanelBackClick));

			DomEvent.AddHandler(View.Connect_Details_FacebookInfoAnchor, "click", new DomEventHandler(detailsFacebookInfoAnchorClick));
			DomEvent.AddHandler(View.Connect_Details_WeeklyEmailInfoAnchor, "click", new DomEventHandler(detailsWeeklyEmailInfoAnchorClick));
			DomEvent.AddHandler(View.Connect_Details_PartyInvitesInfoAnchor, "click", new DomEventHandler(detailsPartyInvitesInfoAnchorClick));

			DetailsCountryDropDownJ = JQueryAPI.JQuery(View.Connect_Details_CountryDropDown);
			DetailsPlaceDropDownJ = JQueryAPI.JQuery(View.Connect_Details_PlaceDropDown);

			return View.Connect_DetailsPanel;
		}
Exemple #4
0
		public void InitialiseElements(
			bool initialiseHolder,

			bool createIconsHtml, 
			bool refreshIconsHtml, 
			bool initialiseIcons, 

			bool createInfoHtml, 
			bool refreshInfoHtml, 
			bool initialiseInfo)
		{

			if (createIconsHtml)
			{
				DOMElement element = Document.CreateElement("div");
				element.InnerHTML = ToHtml();
				Details.Controller.View.EventIconsHolder.AppendChild(element);
			}

			if (initialiseHolder)
			{
				HolderElement = Document.GetElementById(HolderClientID);
				HolderJQ = JQueryAPI.JQuery(HolderElement);
			}

			if (refreshIconsHtml)
			{
				HolderElement.InnerHTML = Details.GetEventsIconsHtml();
			}

			if (initialiseIcons || createInfoHtml || refreshInfoHtml || initialiseInfo)
			{
				for (int i = 0; i < 8; i++)
					Details.Events[i].Html.InitialiseElements(initialiseIcons, createInfoHtml, refreshInfoHtml, initialiseInfo);
			}

			ElementsInitialised = true;
			UpdateUI();
		}
Exemple #5
0
		void initialiseCountry()
		{
			if (!OptionCountry)
				return;

			CountryDropDownJ = JQueryAPI.JQuery(view.CountryDropDown);
			DomEvent.AddHandler(view.CountryDropDown, "change", new DomEventHandler(countryDropDownChange));
			DomEvent.AddHandler(view.CountrySelectedChangeLink, "click", new DomEventHandler(countrySelectedChangeLinkClick));
		}
Exemple #6
0
		void initialisePlace()
		{
			if (!OptionPlace)
				return;

			PlaceDropDownJ = JQueryAPI.JQuery(view.PlaceDropDown);
			DomEvent.AddHandler(view.PlaceDropDown, "change", new DomEventHandler(placeDropDownChange));
			DomEvent.AddHandler(view.PlaceSelectedChangeLink, "click", new DomEventHandler(placeSelectedChangeLinkClick));
		}
Exemple #7
0
		void initialiseEvent()
		{
			if (!OptionEvent)
				return;

			EventListBoxJ = JQueryAPI.JQuery(view.EventListBox);
			DomEvent.AddHandler(view.EventListBox, "change", new DomEventHandler(eventDropDownChange));
			DomEvent.AddHandler(view.EventSelectedChangeLink, "click", new DomEventHandler(eventSelectedChangeLinkClick));
		}
Exemple #8
0
		void initialiseDate()
		{
			if (!OptionDate)
				return;

			DateDayDropDownJ = JQueryAPI.JQuery(view.DateDayDropDown);
			DateMonths = new string[] { "", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
			DomEvent.AddHandler(view.DateDayDropDown, "change", new DomEventHandler(dateDayDropDownChange));
			DomEvent.AddHandler(view.DateMonthDropDown, "change", new DomEventHandler(dateMonthDropDownChange));
			DomEvent.AddHandler(view.DateYearTextBox, "change", new DomEventHandler(dateYearTextBoxChange));
			DomEvent.AddHandler(view.DateYearTextBox, "keyup", new DomEventHandler(dateYearTextBoxKeyUp));
			DomEvent.AddHandler(view.DateYearPlusImg, "click", new DomEventHandler(dateYearPlusClick));
			DomEvent.AddHandler(view.DateYearMinusImg, "click", new DomEventHandler(dateYearMinusClick));
			DomEvent.AddHandler(view.DateSelectedChangeLink, "click", new DomEventHandler(dateSelectedChangeLinkClick));
			DomEvent.AddHandler(view.DateMonthPlusImg, "click", new DomEventHandler(dateMonthPlusClick));
			DomEvent.AddHandler(view.DateMonthMinusImg, "click", new DomEventHandler(dateMonthMinusClick));
			DomEvent.AddHandler(view.DateDayPlusImg, "click", new DomEventHandler(dateDayPlusClick));
			DomEvent.AddHandler(view.DateDayMinusImg, "click", new DomEventHandler(dateDayMinusClick));
		}
Exemple #9
0
		void initialiseMusic()
		{
			if (!OptionMusic)
				return;

			MusicDropDownJ = JQueryAPI.JQuery(view.MusicDropDown);
			DomEvent.AddHandler(view.MusicDropDown, "change", new DomEventHandler(musicDropDownChange));
			DomEvent.AddHandler(view.MusicSelectedChangeLink, "click", new DomEventHandler(musicSelectedChangeLinkClick));
		}
Exemple #10
0
		void initialiseVenue()
		{
			if (!OptionVenue)
				return;

			VenueDropDownJ = JQueryAPI.JQuery(view.VenueDropDown);
			VenueByLetterDropDownJ = JQueryAPI.JQuery(view.VenueByLetterDropDown);
			DomEvent.AddHandler(view.VenueDropDown, "change", new DomEventHandler(venueDropDownChange));
			DomEvent.AddHandler(view.VenueByLetterDropDown, "change", new DomEventHandler(venueByLetterDropDownChange));
			DomEvent.AddHandler(view.VenueSelectedChangeLink, "click", new DomEventHandler(venueSelectedChangeLinkClick));
		}
Exemple #11
0
		public void chatClientUpdateRoomOrder(object e, JQueryObject ui)
		{
			Script.Literal("htm();");
			try
			{
				DOMElement draggedElement = (DOMElement)ui.Item[0];
				Room r = getRoomFromID(draggedElement.ID);
				if (r.Guest && !r.Pinned)
					r.Pinned = true;

				JQueryObject roomListJq = (JQueryObject)JQueryAPI.JQuery(".ChatClientRoomPrivateList");
				Dictionary seraliseOptions = new Dictionary();

				string order = (string)roomListJq.Sortable("serialize", seraliseOptions);

				string[] pairs = order.Split('&');
				for (int i = 0; i < pairs.Length; i++)
				{
					string guid = pairs[i].Split('=')[1];
					RoomsListOrder[i] = guid;
					((Room)Rooms[guid]).SetListOrder(i);
				}
				Server.StoreUpdatedRoomListOrder();

			}
			catch
			{
				debug("Serailise failed.");
			}
		}