|
Display same contact list for all users
Last post 09-19-2007, 9:20 AM by MRazvan. 19 replies.
-
07-23-2007, 8:42 AM |
-
JM07
-
-
-
Joined on 07-23-2007
-
-
Posts 26
-
-
|
Display same contact list for all users
I am currently evaluating Web Messenger for purchase of a developer license.
In our scenario, we don't want to allow users to control their contact list. We simply want their contact list to show ALL users who are currently registered. We want to take away the option to Add a Contact, since their list will already have everyone. We would like to leave the option to block users.
I realize I can manually edit the CuteChatRelation table in SQL Server to alter the contact list, but this really isn't ideal. Since having N # of users would result in N * (N-1) # of records in that table (200 users would require 39,800 entries). Also, if a 201st users was added, we would have to make a huge change to the table.. adding the new user to 200 existing users, as well as another 200 updates to add all existing to the new user (sounds complicated? it is!)...
Instead, is it possible to simply edit the query that populates the contact list? Rather than querying the CuteChatRelation table, I would simply like to query the CuteChatUser table to select all users.
Last, is it possible to remove the Add Contact link from the main interface when running as stand-alone AND embedded? Also, the Contact Menu (in the File - Contacts - View - Help menu bar) will also need to be removed when running in stand-alone mode. Possible?
Thanks...
JM
|
|
-
07-23-2007, 2:22 PM |
-
JM07
-
-
-
Joined on 07-23-2007
-
-
Posts 26
-
-
|
Re: Display same contact list for all users
Wow.. I have already sent two emails to support (one was last Wednesday).. and I STILL have not received a response to my question. I certainly don't mean to bad mouth anyone... but is this the kind of support we can expect even after dropping $2,000 on the application?
I was able to figure out how to remove the "Add Contact" link.. but am still unable to find out how to alter the query that actually retrieves the contacts.
|
|
-
07-23-2007, 3:27 PM |
-
07-23-2007, 4:02 PM |
-
JM07
-
-
-
Joined on 07-23-2007
-
-
Posts 26
-
-
|
Re: Display same contact list for all users
Please correct me if I'm wrong.. but I don't think this is what I'm looking for.
When the user logs in to Web Messenger, they see a list of their online/offline contacts. Normally a user has to add contacts for them to appear in their list.
- I have removed all "Add Contact" links. The user can no longer control their own list.
- Now I want all users to see the same list. For instance, if I put this web messenger in a school's website, and only teachers can use it.. I want every teacher to see a list of ALL other teachers in their contact list. I do not want to force the teacher to click "Add Contact" and search for 100 or 200 other teachers.
The contact list seems to be stored in the CuteChatRelation table in SQL server. I know I can programmatically alter that table every time a new user registers, but that is WAY too much overhead.
Instead, I am looking to change the query that populates a user's contact list.
Right now, I assume the program queries CuteChatRelation and returns everyone who is in a "FRIEND" Relationship Type. Instead, I want to make it return all users.
So far, this may be the only thing keeping us from purchasing Cute Messenger. We simply cannot require each user to manually add 100 or more people to their contact list.
|
|
-
07-23-2007, 4:09 PM |
-
07-24-2007, 9:09 AM |
-
JM07
-
-
-
Joined on 07-23-2007
-
-
Posts 26
-
-
|
Re: Display same contact list for all users
I really don't know how to make my request any more clear.
Instead of querying the CuteChatRelation table and returnign everyone who is in a "FRIEND" Relationship Type, I want it to query the CuteChatUser table and return EVERYONE.
For example.. let's say I'm running this messenger in my office for employee usage. You are a new employee... the first time you sign on, I want you to automatically see a list of ALL employees in your contacts. I don't want you to have to know the names of 100 other employees to manually add them to your list.
I have been given approval to purchase the developer license of Web Messenger... it's a better product than everything I have tested, but this is the one thing holding me back right now. I simply cannot make every user start with a blank contact list.
|
|
-
07-24-2007, 4:56 PM |
-
07-25-2007, 8:26 PM |
-
JM07
-
-
-
Joined on 07-23-2007
-
-
Posts 26
-
-
|
Re: Display same contact list for all users
Should work in theory.. but will take some research to populate a javascript array with data from the database since javascript itself cannot connect to the database...
Not sure what will happen if I try to use ASP to write out the javascript code, but will give it a shot...
Thanks Adam.
|
|
-
07-26-2007, 3:24 AM |
-
07-31-2007, 9:34 AM |
-
JM07
-
-
-
Joined on 07-23-2007
-
-
Posts 26
-
-
|
Re: Display same contact list for all users
Adam.. pardon my ignorance. I'm not a javascript guru by any means.
In the IM_MainForm.aspx... if I create the javascript array of names when the pages loads....
.. then how am I supposed to call that array in the ChatUI_IMMain.xml file instead of the GetContactArray() function?
Example.. let's say I created an array called CustomContactsArray in the IM_MainForm.aspx when the page loads.
Then, fom the ChatUI_IMMain.xml:
var contacts=GetContactArrary();
How am I supposed to make that: var contacts=CustomContactsArray();
|
|
-
07-31-2007, 10:52 AM |
-
07-31-2007, 3:04 PM |
-
JM07
-
-
-
Joined on 07-23-2007
-
-
Posts 26
-
-
|
Re: Display same contact list for all users
Adam:
Do something like this:
string[] names = {"Adam","Terry","Jacob"};
string nameString = String.Join(";",names);
<script>
var js_nameString = <%= nameString %>
var my_array=where_is_mytool.split(";");
</script>
This doesn't seem to work. If what you posted above is valid, then this should also work (but it doesn't):
<script runat="server">
string TestString = "This is a test string";
</script>
<script>
var js_TestString = <% =TestString %>;
alert(js_TestString);
</script>
The second script cannot recognize TestString created by the first script. This is becoming a real pain. It is the only reason we have not already purchased the Messenger. We have it completely integrated in our site and ready to go, but this contact list issue is holding us back.
|
|
-
07-31-2007, 3:09 PM |
-
07-31-2007, 3:16 PM |
-
JM07
-
-
-
Joined on 07-23-2007
-
-
Posts 26
-
-
|
Re: Display same contact list for all users
Also, I went to the ChatUI_IMMain.xml and found the line that says:
var contacts=GetContactArrary();
I removed it, and replaced it with:
var contacts = new Array("Denis","Terry","Adam");
I did this simply as a test.. and it does not work. I made sure Denis, Terry & Scott were in the CuteChatUser table.
This is the error I receive when I try to launch the messenger:
|
|
-
07-31-2007, 3:28 PM |
-
JM07
-
-
-
Joined on 07-23-2007
-
-
Posts 26
-
-
|
Re: Display same contact list for all users
Thanks for your last post. I should not have overlooked the quote marks myself...
I'm trying to put this in the IM_MainForm.aspx as a test, and it produces an error. Suggestions?
<script runat="server">
string[] ContactsArray = { "Mike", "Scott", "John" };
string nameString = String.Join(";", ContactsArray);
</script>
<script>
var js_nameString = "<%= nameString %>";
var my_array=js_nameString.split(";");
</script>
Error:
Compilation Error
Description:
An error occurred during the compilation of a resource required to service
this request. Please review the following specific error details and modify your
source code appropriately.
Compiler Error Message: CS0236: A
field initializer cannot reference the nonstatic field, method, or property
'ASP.cutesoft_client_cutechat_im_mainform_aspx.ContactsArray'
Source
Error:
|
Line 4: <script runat="server">
Line 5: string[] ContactsArray = { "Mike", "Scott", "John" };
Line 6: string nameString = String.Join(";", ContactsArray);
Line 7: </script>
Line 8: <script>
|
Source
File: c:\JMDev\vRIS\CuteSoft_Client\CuteChat\IM_MainForm.aspx
Line: 6
|
|
-
07-31-2007, 3:44 PM |
-
JM07
-
-
-
Joined on 07-23-2007
-
-
Posts 26
-
-
|
Re: Display same contact list for all users
JM07: Also, I went to the ChatUI_IMMain.xml and found the line that says:
var contacts=GetContactArrary();
I removed it, and replaced it with:
var contacts = new Array("Denis","Terry","Adam");
I did this simply as a test.. and it does not work. I made sure Denis, Terry & Scott were in the CuteChatUser table.
This is the error I receive when I try to launch the messenger:
Sort of answered my own question... the var contacts=GetContactArrary() statement doesn't return an actual string array of user id's... it returns an array of contact objects it seems. That being said, I don't see how I could create my own array as you have suggested in the above posts.....
|
|
-
07-31-2007, 3:50 PM |
-
07-31-2007, 4:05 PM |
-
JM07
-
-
-
Joined on 07-23-2007
-
-
Posts 26
-
-
|
Re: Display same contact list for all users
Adam:
It should be:
<script runat="server">
void Page_Load(object sender, System.EventArgs e)
{
string[] names = {"Adam","Terry","Jacob"};
string nameString = String.Join(";",names);
}
</script>
Pleas see my last post above yours. Even with a string of names, it doesn't seem to work since all of the code in the xml file works on what seems like an array of objects (determining whether they are online/offline and adding them to the list, etc)....
|
|
-
08-01-2007, 10:46 AM |
-
JM07
-
-
-
Joined on 07-23-2007
-
-
Posts 26
-
-
|
Re: Display same contact list for all users
Any other suggestions, Adam? I'm having 0 luck with this. :(
|
|
-
09-19-2007, 9:20 AM |
-
MRazvan
-
-
-
Joined on 08-28-2007
-
-
Posts 7
-
-
|
Re: Display same contact list for all users
Dear JM07,
I have meet similar issue aswell as you did and since no reply in this forum to any of my questions i have investigate more deeper the code of CuteSoft. Here is an example of what you could give instead of that ContactsArray thingy from ChatUI_IMMain.xml
Create a property similary to this:
public string ContactsArray
{
get
{
EntityCollection collection = GetUsersOfSameTherapy(Guid.Empty);
string usrList = "";
foreach (UserEntity user in collection)
{
CuteChatUser chatUsr = GetChatUser(user.ID);
bool isOperator = false;
CuteSupportOperator supportOperator = ChatApi.FindOperator(chatUsr.UniqueName);
if (supportOperator != null)
isOperator = true;
bool isOnline = ChatApi.IsUserInstantOnline(chatUsr.UniqueName);
string status = "OFFLINE";
if (isOnline)
status = "ONLINE";
usrList += @"{'IsOperator': " + isOperator.ToString().ToLower() + @", 'RelationType': 'FRIEND', 'UserId': " + chatUsr.UserId + @", 'OnlineStatus': '" + status + @"', 'DisplayName': '" + chatUsr.DisplayName + @"'},";
}
usrList = usrList.Remove(usrList.Length - 1);
return usrList;
}
}
Then in javascript on the embed messenger or wherever set a variable that will get this string for ex:
var myTest = new Array( <%# ContactsArray %>);
And then all you have to do is give this variable further into the xml file.
Good luck. And i really hope this forum can sometime give answers to more complex questions aswell.
|
|
|
|
|