no bug, not part of build just yet. Some UI consolidation, we now register a user on the fly when they submit a report, rather than make it a whole step and add more clicks (less is more). Some more subtle changes, nothing noteworthy. a=asa.

git-svn-id: svn://10.0.0.236/trunk@172642 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
robert%accettura.com
2005-04-23 03:11:56 +00:00
parent aae99a8a67
commit 627bedd130
4 changed files with 62 additions and 137 deletions

View File

@@ -7,11 +7,6 @@
<!ENTITY dontShowPrivacyStatement.label "Don't Show Privacy Statement Again">
<!ENTITY registration.label "Get Unique ID">
<!ENTITY registration.description "We will now contact the reporter server to retrieve a unique identifier. This is only used to tell how many distinct people use this system. Rest assured we respect your privacy, this can not be used to track you personally.">
<!ENTITY registration.registerButton.label "Generate ID">
<!ENTITY registration.registerButton.accesskey "G">
<!ENTITY reportForm.label "Fill out Report">
<!ENTITY reportForm.description "Tell us a little about the problem you encountered:">

View File

@@ -1,13 +1,7 @@
privacyStatementURL=http://reporter-test.mozilla.org/privacy/?plain=true&lang=en
registerSendingRequest=Asking Server for ID
registerSavingID=Saving ID
registerSavingFailed=Failed Saving ID
registerSuccess=Success
privacyStatementURL=http://reporter-test.mozilla.org/privacy/?plain=true
sendingReport=Sending Report...
reportSent=Report Sent
successfullyCreatedReport=Successfully Transmitted Report
failedCreatingReport=Error Creating Report

View File

@@ -60,21 +60,6 @@ var gFaultCode;
var gFaultMessage;
var gSOAPerror = false;
function product(){
// only works on > 1.7.5. Sorry SeaMonkey of old
if ('nsIChromeRegistrySea' in Components.interfaces) {
return 'SeaMonkey/'+
Components.classes['@mozilla.org/network/io-service;1']
.getService(Components.interfaces.nsIIOService)
.getProtocolHandler('http')
.QueryInterface(Components.interfaces.nsIHttpProtocolHandler).misc.substring(3);
}
else {
return navigator.vendor+'/'+navigator.vendorSub;
}
}
function initPrivacyNotice(){
// If they agreed, we continue on
var prefs = Components.classes["@mozilla.org/preferences-service;1"]
@@ -90,7 +75,6 @@ function initPrivacyNotice(){
// Don't let users rewind, and default to checked.
document.getElementById('reportWizard').canRewind= false;
document.getElementById("dontShowPrivacyStatement").setAttribute("checked", "true");
document.getElementById('mustagree').collapsed = true; // only shown if checkbox is unchecked.
// Load Privacy Policy
var strbundle=document.getElementById("strings");
@@ -98,90 +82,25 @@ function initPrivacyNotice(){
}
function privacyPolicyCheckbox(){
var showDetail = makeIntBool(document.getElementById('dontShowPrivacyStatement').checked);
if (showDetail){
if (document.getElementById('dontShowPrivacyStatement').checked){
// hide message and enable forward button
document.getElementById('reportWizard').canAdvance= true;
document.getElementById('mustagree').collapsed = true;
} else {
// show message, and disable forward button
document.getElementById('reportWizard').canAdvance= false;
document.getElementById('mustagree').collapsed = false;
}
}
function setPrivacyPref(){
var dontShowPrivacyStatement = makeIntBool(document.getElementById('dontShowPrivacyStatement').checked);
var prefs = Components.classes["@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefService)
.getBranch("extensions.reporter.");
if (dontShowPrivacyStatement){
if (document.getElementById('dontShowPrivacyStatement').checked){
prefs.setBoolPref("hidePrivacyStatement", true);
}
}
function initRegistration(){
// if the user already registered, they can skip this page, otherwise they need to do so
var prefs = Components.classes["@mozilla.org/preferences-service;1"].
getService(Components.interfaces.nsIPrefService).
getBranch("extensions.reporter.");
try
{
if (prefs.getPrefType("sysid") == prefs.PREF_STRING)
{
var sysid = prefs.getCharPref("sysid");
if (sysid.length == 10)
{
document.getElementById('reportWizard').advance();
return;
}
}
}
catch (e) {}
// XXX sigh... we should let the user go back, but yea, see what initPrivacyNotice() does to see why that's a loopy idea ;-)
document.getElementById('reportWizard').canRewind= false;
document.getElementById('reportWizard').canAdvance= false;
}
function register(){
var param = new Array();;
param[0] = new SOAPParameter(gLanguage,"language");
var strbundle=document.getElementById("strings");
var submitResult = document.getElementById('registrationProgressDescription');
var meter = document.getElementById('registrationProgressIndicator');
// get sysID
meter.setAttribute("value","1%");
submitResult.setAttribute("value",strbundle.getString("registerSendingRequest")); // Sending Request
callReporter("register",param,setValSysID);
meter.setAttribute("value","90%");
// saving
submitResult.setAttribute("value",strbundle.getString("registerSavingID")); // Saving ID
var prefs = Components.classes["@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefService)
.getBranch("extensions.reporter.");
if (gSysID != undefined){
prefs.setCharPref("sysid", gSysID);
} else {
submitResult.setAttribute("value",strbundle.getString("registerSavingFailed")); // Failed
return;
}
// success
meter.setAttribute("value","100%");
submitResult.setAttribute("value",strbundle.getString("registerSuccess")); // Success
document.getElementById('registerButton').disabled = true;
// user can now go forward
document.getElementById('reportWizard').canAdvance= true;
}
function initForm(){
document.getElementById('reportWizard').canRewind = false;
@@ -198,6 +117,46 @@ function validateForm() {
document.getElementById('reportWizard').canAdvance= false;
}
function registerSysID(){
var param = new Array();;
param[0] = new SOAPParameter(gLanguage,"language");
// get sysID
callReporter("register",param,setValSysID);
// saving
var prefs = Components.classes["@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefService)
.getBranch("extensions.reporter.");
if (gSysID != undefined){
prefs.setCharPref("sysid", gSysID);
alert("new sysid: "+gSysID);
return gSysID;
} else {
return;
}
}
function getSysID() {
// SysID
var prefs = Components.classes["@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefService)
.getBranch("extensions.reporter.");
try
{
if (prefs.getPrefType("sysid") == prefs.PREF_STRING && prefs.getCharPref("sysid") != "")
{
alert("using sysid: "+prefs.getCharPref("sysid"));
return prefs.getCharPref("sysid");
}
else {
return registerSysID();
}
}
catch (e) {}
}
function sendReport(){
// we control the user path from here.
document.getElementById('reportWizard').canRewind = false;
@@ -212,23 +171,12 @@ function sendReport(){
// Data from form we need
var descriptionStri = document.getElementById('description').value;
var problemTypeStri = document.getElementById('problem_type').value;
var behindLoginStri = makeIntBool(document.getElementById('behind_login').checked);
var behindLoginStri = document.getElementById('behind_login').checked;
var emailStri = document.getElementById('email').value;
var buildConfig = getBuildConfig();
// SysID
var prefs = Components.classes["@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefService)
.getBranch("extensions.reporter.");
try
{
if (prefs.getPrefType("sysid") == prefs.PREF_STRING)
{
var sysid = prefs.getCharPref("sysid");
}
}
catch (e) {}
var sysid = getSysID()
// SOAP params
var param = new Array();
param[0] = new SOAPParameter(gRMOvers,"rmoVers");
@@ -306,8 +254,7 @@ function sendReport(){
}
function showdetail(){
var showDetail = makeIntBool(document.getElementById('showDetail').checked);
if (showDetail){
if (document.getElementById('showDetail').checked){
document.getElementById('finishExtendedFrame').collapsed = false;
} else {
document.getElementById('finishExtendedFrame').collapsed = true;
@@ -349,13 +296,6 @@ function getBuildConfig() {
}
}
function makeIntBool(boolStr){
if (boolStr)
return 1;
else
return 0;
}
/* NEW WEB SERVICE MODULE */
/* Based on Apple's example implementation of SOAP at: developer.apple.com/internet/webservices/mozgoogle_source.html */
function callReporter(method,params,callback){
@@ -409,3 +349,18 @@ function setValReportID(results)
gReportID = params[i].value;
}
}
function product(){
// only works on > 1.7.5. Sorry SeaMonkey of old
if ('nsIChromeRegistrySea' in Components.interfaces) {
return 'SeaMonkey/'+
Components.classes['@mozilla.org/network/io-service;1']
.getService(Components.interfaces.nsIIOService)
.getProtocolHandler('http')
.QueryInterface(Components.interfaces.nsIHttpProtocolHandler).misc.substring(3);
}
else {
return navigator.vendor+'/'+navigator.vendorSub;
}
}

View File

@@ -51,34 +51,15 @@
onpageadvanced="setPrivacyPref()"
label = "&privacyNotice.label;">
<description>&reportWizardPrivacy.description;</description>
<description id="mustagree">&reportWizardMustAgree.description;</description>
<vbox id="privacyFrame" flex="1">
<iframe id="privacyStatement" type="content" flex="1" src="" />
</vbox>
<description id="mustAgree">&reportWizardMustAgree.description;</description>
<vbox>
<checkbox id="dontShowPrivacyStatement" label="&dontShowPrivacyStatement.label;" oncommand="privacyPolicyCheckbox()" />
</vbox>
</wizardpage>
<!-- Registration -->
<wizardpage id="registration"
onpageshow="initRegistration()"
label = "&registration.label;">
<description>&registration.description;</description>
<separator />
<description id="registrationProgressDescription"/>
<progressmeter id="registrationProgressIndicator" mode="undetermined" value="0%"/>
<separator />
<hbox>
<button
id="registerButton"
label="&registration.registerButton.label;"
default="true"
accesskey="&registration.registerButton.accesskey;"
oncommand="register()"/>
</hbox>
</wizardpage>
<!-- Report Form -->
<wizardpage id="reportForm"
onpageshow="initForm()"