/// <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()); }
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); }
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&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;""> 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; }
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(); }
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)); }
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)); }
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)); }
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)); }
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)); }
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)); }
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."); } }