mirror of https://github.com/BOINC/boinc.git
*** empty log message ***
svn path=/trunk/boinc/; revision=6599
This commit is contained in:
parent
aa41f9487a
commit
43f9d91ecc
37
doc/ui.txt
37
doc/ui.txt
|
@ -84,13 +84,15 @@ call attach_to_project(PROJ_URL, true)
|
|||
|
||||
function attach_to_project(PROJ_URL, bool user_supplied_url)
|
||||
|
||||
1) Dialog:
|
||||
1) Dialog ("query_key"):
|
||||
|
||||
Attaching to PROJ_URL.
|
||||
Do you already have an account on PROJ_URL?
|
||||
|
||||
No [button]
|
||||
No - create new account [button]
|
||||
Yes [button] paste account key here: ______________________ [text field]
|
||||
How to find an existing account key [button]
|
||||
Cancel
|
||||
|
||||
Dialog (how to find an existing account key):
|
||||
|
||||
|
@ -119,7 +121,7 @@ If answer to 1) is "no":
|
|||
2) BOINC client tries to communicates with project, create account
|
||||
|
||||
3) if succeed in creating account
|
||||
Dialog:
|
||||
Dialog ("welcome"):
|
||||
|
||||
Welcome to PROJ_NAME
|
||||
Your web browser should now show a
|
||||
|
@ -135,8 +137,8 @@ Web page (foo.edu/welcome.php?auth=xxxxx)
|
|||
|
||||
Your new account has a name and optional email address.
|
||||
You can changes these if you like:
|
||||
Name: xxx
|
||||
(this wil be shown on our web site)
|
||||
Name: xxx (the user's account name on host)
|
||||
(this will be shown on our web site)
|
||||
Email address:
|
||||
(this will not be displayed or distributed)
|
||||
OK to send periodic email newsletters [checkbox]
|
||||
|
@ -158,14 +160,19 @@ Web page (foo.edu/welcome.php?auth=xxxxx)
|
|||
go to the Foo@home home page [link]
|
||||
|
||||
|
||||
(update button goes to a "account info updated" page)
|
||||
Notes:
|
||||
- update button goes to a "account info updated" page
|
||||
- if email address already exists, show
|
||||
"An account with that email address already exists.
|
||||
|
||||
|
||||
|
||||
(User is done)
|
||||
|
||||
|
||||
4) if project replies with an error message:
|
||||
|
||||
Dialog:
|
||||
Dialog ("project_unavailable"):
|
||||
|
||||
PROJ_NAME is temporarily unavailable.
|
||||
Please check PROJ_URL [link] for information.
|
||||
|
@ -178,15 +185,15 @@ Go to Projects tab.
|
|||
user is done.
|
||||
|
||||
5) If no connection failure or no reply
|
||||
call network_failure()
|
||||
Go to 6)
|
||||
retry = network_failure()
|
||||
if (retry) go to 2
|
||||
|
||||
|
||||
If answer to 4) is "yes":
|
||||
|
||||
10) if account key is syntactically invalid
|
||||
|
||||
Dialog:
|
||||
Dialog ("invalid_key"):
|
||||
|
||||
The account key xxx is invalid.
|
||||
Account keys are 32 characters, each of which is a-f or 0-9.
|
||||
|
@ -196,7 +203,7 @@ Dialog:
|
|||
|
||||
11) If project is up, and account key is verified
|
||||
|
||||
Dialog:
|
||||
Dialog ("valid_key"):
|
||||
Account key is valid.
|
||||
This computer is now participating in Foo@home.
|
||||
|
||||
|
@ -205,7 +212,7 @@ Dialog:
|
|||
User is done.
|
||||
|
||||
12) If project is up, and account key is not verified
|
||||
Dialog:
|
||||
Dialog ("unrecognized_key"):
|
||||
xxx is not the key of any existing account on Foo@home.
|
||||
Account keys from other BOINC projects will not work on Foo@home.
|
||||
Please check your account key.
|
||||
|
@ -216,7 +223,7 @@ Go to 4
|
|||
|
||||
13) if project replies with an error message:
|
||||
|
||||
Dialog:
|
||||
Dialog ("project_unavailable"):
|
||||
|
||||
Foo@home is temporarily unavailable.
|
||||
Please check http://foo.edu [link] for information.
|
||||
|
@ -228,7 +235,7 @@ Dialog:
|
|||
Go to Projects tab.
|
||||
user is done.
|
||||
|
||||
14) else (if no reply): call network_failure()
|
||||
14) else (if no reply): call network_failure(user_supplied_url)
|
||||
|
||||
----------------
|
||||
|
||||
|
@ -238,7 +245,7 @@ function network_failure(bool user_supplied_url):
|
|||
or got no reply.
|
||||
Returns true if we should retry the operation.)
|
||||
|
||||
Dialog:
|
||||
Dialog ("unable_to_contact"):
|
||||
|
||||
BOINC is unable to contact PROJ_URL
|
||||
Possible reasons are:
|
||||
|
|
160
doc/ui_impl.txt
160
doc/ui_impl.txt
|
@ -1,6 +1,158 @@
|
|||
Implementation notes
|
||||
|
||||
What do we know at the start?
|
||||
If they downloaded the installer then they have network connectivity
|
||||
and working proxy setup for their browser.
|
||||
If via CD-ROM, nothing is known.
|
||||
------------------------------------------
|
||||
project-specific installers
|
||||
|
||||
These produce a file "start_project.xml" containing the URL
|
||||
(and possibly the name) of the starting project in the BOINC directory.
|
||||
This file tells the BOINC manager to attach to this project.
|
||||
|
||||
The file could be produced either of two ways:
|
||||
|
||||
1) The file is part of the install bundle.
|
||||
This would require projects to edit the installers
|
||||
released by BOINC, using ORCA or whatever tools are needed
|
||||
|
||||
2) The project URL is encoded in the installer filename,
|
||||
and the installer runs a script that finds this name
|
||||
and creates the file.
|
||||
(Not sure how easy this is to do)
|
||||
|
||||
------------------------------------------
|
||||
Database
|
||||
|
||||
Allow nulls in the email_addr table.
|
||||
Make it non-unique.
|
||||
|
||||
------------------------------------------
|
||||
Web interfaces
|
||||
|
||||
- "get account key" page can now return
|
||||
multiple accounts with same email address
|
||||
(show creation time, credit in email message)
|
||||
- can possibly provide interface for merging accounts
|
||||
(but this is tricky and can wait)
|
||||
|
||||
welcome.php?auth=xxx
|
||||
shows welcome page (see doc)
|
||||
and returns cookie with account key
|
||||
|
||||
create_account.php
|
||||
in:
|
||||
name
|
||||
out:
|
||||
status
|
||||
account key
|
||||
|
||||
verify_account.php
|
||||
in:
|
||||
acct key
|
||||
out:
|
||||
yes/no
|
||||
if yes:
|
||||
name
|
||||
|
||||
------------------------------------------
|
||||
Scheduler
|
||||
------------------------------------------
|
||||
GUI RPCs
|
||||
|
||||
create_account();
|
||||
in: URL
|
||||
Implementation:
|
||||
fetches URL/create_account.php
|
||||
poll_create_account();
|
||||
returns status:
|
||||
in_progress,
|
||||
success,
|
||||
returns account key in this case
|
||||
project_down,
|
||||
no_reply
|
||||
|
||||
verify_account()
|
||||
in: URL, key
|
||||
|
||||
poll_verify_account()
|
||||
returns status:
|
||||
in_progress,
|
||||
success,
|
||||
returns yes/no, name in this case
|
||||
project_down,
|
||||
no_reply
|
||||
------------------------------------------
|
||||
Manager
|
||||
|
||||
On startup:
|
||||
If start_project.xml exists
|
||||
attach_to_project(url, false)
|
||||
|
||||
attach_to_project(url/name, user_supplied_url) {
|
||||
restart:
|
||||
switch(show_dialog(query_key)) {
|
||||
yes:
|
||||
if (invalid_key) {
|
||||
show_dialog(invalid_key)
|
||||
goto restart
|
||||
}
|
||||
verify_account(URL, key)
|
||||
while (1)
|
||||
ret = poll_verify_account()
|
||||
if (!in_progress) break
|
||||
sleep(1);
|
||||
}
|
||||
switch(ret) {
|
||||
success/yes:
|
||||
show_dialog(valid_key);
|
||||
return;
|
||||
success/no:
|
||||
show_dialog(unrecognized_key);
|
||||
goto restart;
|
||||
error:
|
||||
show_dialog(project_unavailable)
|
||||
no_reply:
|
||||
retry = network_failure()
|
||||
if (retry) goto restart;
|
||||
}
|
||||
no:
|
||||
name = get local account name on host
|
||||
retry:
|
||||
gui_rpc.create_account()
|
||||
while (1)
|
||||
ret = poll_create_account()
|
||||
if !in_progress break;
|
||||
sleep(1);
|
||||
}
|
||||
switch(ret) {
|
||||
success:
|
||||
show_web_page(welcome.php?auth=acct_key)
|
||||
show_dialog(welcome)
|
||||
set tab to projects
|
||||
project_down:
|
||||
show_dialog(project_unavailable")
|
||||
set tab to projects
|
||||
no_reply:
|
||||
retry = network_failure();
|
||||
if (goto retry)
|
||||
set tab to projects
|
||||
}
|
||||
cancel:
|
||||
}
|
||||
}
|
||||
|
||||
bool network_failure(bool user_supplied_url) {
|
||||
show_web_page(url/proxy_problems.php)
|
||||
ret = show_dialog(unable_to_contact)
|
||||
switch (ret) {
|
||||
change:
|
||||
show_dialog(proxy_settings)
|
||||
retry:
|
||||
return true;
|
||||
cancel:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
Miscellaneous:
|
||||
- Add a "account key" button in the Projects tab.
|
||||
When clicked, it shows the account key
|
||||
in a way that can be cut/pasted.
|
||||
|
|
Loading…
Reference in New Issue