The Joys Of Programming

ibdoomed wrote:

It's a google form so I'm not working directly with the html in the background but here's a snipit:

"Entries":[
{"EntryType":6,"Required":false,"GoToPageEnabled":false,"EntryId":5,"OtherOptionEnabled":false,"Choices":[],"Position":0,"QuestionTitle":"Personal Information","Composite":false,"HelpText":""},{"EntryType":6,"Required":false,"GoToPageEnabled":false,"EntryId":64,"OtherOptionEnabled":false,"Choices":[],"Position":1,"QuestionTitle":"","Composite":false,"HelpText":"1. Name"},{"EntryType":2,"Required":true,"GoToPageEnabled":false,"EntryId":110,"OtherOptionEnabled":false,"Choices":[{"SelectedByDefault":false,"Value":"Mr.","Label":""},{"SelectedByDefault":false,"Value":"Mrs.","Label":""},{"SelectedByDefault":false,"Value":"Ms.","Label":""}],"Position":2,"QuestionTitle":"Prefix","Composite":false,"HelpText":""},{"EntryType":0,"Required":true,"GoToPageEnabled":false,"EntryId":0,"OtherOptionEnabled":false,"Choices":[],"Position":3,"QuestionTitle":"First Name","Composite":false,"HelpText":""},{"EntryType":0,"Required":true,"GoToPageEnabled":false,"EntryId":1,"OtherOptionEnabled":false,"Choices":[],"Position":4,"QuestionTitle":"Last Name","Composite":false,"HelpText":""},{"EntryType":0,"Required":false,"GoToPageEnabled":false,"EntryId":2,"OtherOptionEnabled":false,"Choices":[],"Position":5,"QuestionTitle":"Suffix","Composite":false,"HelpText":""},

I can't tell what google is using for element ids. Their code is a mess.

At a guess it looks like EntryId is the probable elementID

so
var myElement = document.getElementById("5");
ought to get the "Personal Information" question

DanB wrote:
ibdoomed wrote:

It's a google form so I'm not working directly with the html in the background but here's a snipit:

"Entries":[
{"EntryType":6,"Required":false,"GoToPageEnabled":false,"EntryId":5,"OtherOptionEnabled":false,"Choices":[],"Position":0,"QuestionTitle":"Personal Information","Composite":false,"HelpText":""},{"EntryType":6,"Required":false,"GoToPageEnabled":false,"EntryId":64,"OtherOptionEnabled":false,"Choices":[],"Position":1,"QuestionTitle":"","Composite":false,"HelpText":"1. Name"},{"EntryType":2,"Required":true,"GoToPageEnabled":false,"EntryId":110,"OtherOptionEnabled":false,"Choices":[{"SelectedByDefault":false,"Value":"Mr.","Label":""},{"SelectedByDefault":false,"Value":"Mrs.","Label":""},{"SelectedByDefault":false,"Value":"Ms.","Label":""}],"Position":2,"QuestionTitle":"Prefix","Composite":false,"HelpText":""},{"EntryType":0,"Required":true,"GoToPageEnabled":false,"EntryId":0,"OtherOptionEnabled":false,"Choices":[],"Position":3,"QuestionTitle":"First Name","Composite":false,"HelpText":""},{"EntryType":0,"Required":true,"GoToPageEnabled":false,"EntryId":1,"OtherOptionEnabled":false,"Choices":[],"Position":4,"QuestionTitle":"Last Name","Composite":false,"HelpText":""},{"EntryType":0,"Required":false,"GoToPageEnabled":false,"EntryId":2,"OtherOptionEnabled":false,"Choices":[],"Position":5,"QuestionTitle":"Suffix","Composite":false,"HelpText":""},

I can't tell what google is using for element ids. Their code is a mess.

Can you not view the page in a browser and "view source"?

At a guess it looks like EntryId is the probable elementID

so
var q93 = document.getElementById("5");
ought to get the "Personal Information" question

That actually is the source, that part is from the < script > tag. There's little else to the page outside the script tag. I'll try assigning what I have working to those element IDs and see what happens.

ibdoomed wrote:
DanB wrote:
ibdoomed wrote:

It's a google form so I'm not working directly with the html in the background but here's a snipit:

"Entries":[
{"EntryType":6,"Required":false,"GoToPageEnabled":false,"EntryId":5,"OtherOptionEnabled":false,"Choices":[],"Position":0,"QuestionTitle":"Personal Information","Composite":false,"HelpText":""},{"EntryType":6,"Required":false,"GoToPageEnabled":false,"EntryId":64,"OtherOptionEnabled":false,"Choices":[],"Position":1,"QuestionTitle":"","Composite":false,"HelpText":"1. Name"},{"EntryType":2,"Required":true,"GoToPageEnabled":false,"EntryId":110,"OtherOptionEnabled":false,"Choices":[{"SelectedByDefault":false,"Value":"Mr.","Label":""},{"SelectedByDefault":false,"Value":"Mrs.","Label":""},{"SelectedByDefault":false,"Value":"Ms.","Label":""}],"Position":2,"QuestionTitle":"Prefix","Composite":false,"HelpText":""},{"EntryType":0,"Required":true,"GoToPageEnabled":false,"EntryId":0,"OtherOptionEnabled":false,"Choices":[],"Position":3,"QuestionTitle":"First Name","Composite":false,"HelpText":""},{"EntryType":0,"Required":true,"GoToPageEnabled":false,"EntryId":1,"OtherOptionEnabled":false,"Choices":[],"Position":4,"QuestionTitle":"Last Name","Composite":false,"HelpText":""},{"EntryType":0,"Required":false,"GoToPageEnabled":false,"EntryId":2,"OtherOptionEnabled":false,"Choices":[],"Position":5,"QuestionTitle":"Suffix","Composite":false,"HelpText":""},

I can't tell what google is using for element ids. Their code is a mess.

Can you not view the page in a browser and "view source"?

At a guess it looks like EntryId is the probable elementID

so
var q93 = document.getElementById("5");
ought to get the "Personal Information" question

That actually is the source, that part is from the < script > tag. There's little else to the page outside the script tag. I'll try assigning what I have working to those element IDs and see what happens.

Any chance you could post the entire JS? That looks like JSON (feed it to the Javascript Beautifier), so their code is probably iterating through that to dynamically build the form. The rest of the code should show what they're actually doing with what you posted.

What's the google library you're using? It almost certainly has some API for setting the elementID so that it's not auto-generating numbers that might change.

I can give you this much. I stripped out pages and pages of questions (there's a couple hundred) and changed some personal info to placeholders but otherwise this is pure. Did you want html outside the script? (I spaced out the < to let it post here)

< script type="text/javascript" charset="utf-8" >
gfc().enableBluebirdRestrictedResponseSummary(true);
gfc().enableBluebirdEditResponses(true);
gfc().enableBluebirdGoToPage(true);
gfc().enableBluebirdPublicAnalytics(true);
gfc().enableBluebirdRte(false);
gfc().enableBluebirdStyles(true);
gfc().enableBluebirdPageNav(true);
gfc().enableGplusSharing(true);
gfc().enableGplusBackupShare(true);
gfc().enableGplusCorpHook(false);
gfc().setPageNavHelpArticle("url");
gfc().setFormDataFromJson({
"EmailFromRecipientRequired": false,
"SignInToViewRequired": false,
"FormTitle": "Form",
"FormDescription": "Form",
"Entries": [{
"EntryType": 6,
"Required": false,
"GoToPageEnabled": false,
"EntryId": 5,
"OtherOptionEnabled": false,
"Choices": [],
"Position": 0,
"QuestionTitle": "Personal Information",
"Composite": false,
"HelpText": ""
}, {
"EntryType": 6,
"Required": false,
"GoToPageEnabled": false,
"EntryId": 64,
"OtherOptionEnabled": false,
"Choices": [],
"Position": 1,
"QuestionTitle": "",
"Composite": false,
"HelpText": "1. Name"
}, {
"EntryType": 2,
"Required": true,
"GoToPageEnabled": false,
"EntryId": 110,
"OtherOptionEnabled": false,
"Choices": [{
"SelectedByDefault": false,
"Value": "Mr.",
"Label": ""
}, {
"SelectedByDefault": false,
"Value": "Mrs.",
"Label": ""
}, {
"SelectedByDefault": false,
"Value": "Ms.",
"Label": ""
}, {
"SelectedByDefault": false,
"Value": "Miss.",
"Label": ""
}, {
"SelectedByDefault": false,
"Value": "Piggy.",
"Label": ""
}],
"Position": 2,
"QuestionTitle": "Prefix",
"Composite": false,
"HelpText": ""
}, {
"EntryType": 0,
"Required": true,
"GoToPageEnabled": false,
"EntryId": 0,
"OtherOptionEnabled": false,
"Choices": [],
"Position": 3,
"QuestionTitle": "First Name",
"Composite": false,
"HelpText": ""
}, {
"EntryType": 0,
"Required": true,
"GoToPageEnabled": false,
"EntryId": 1,
"OtherOptionEnabled": false,
"Choices": [],
"Position": 4,
"QuestionTitle": "Last Name",
"Composite": false,
"HelpText": ""
}, {
"EntryType": 0,
"Required": false,
"GoToPageEnabled": false,
"EntryId": 2,
"OtherOptionEnabled": false,
"Choices": [],
"Position": 5,
"QuestionTitle": "Suffix",
"Composite": false,
"HelpText": ""
}, {
"EntryType": 6,
"Required": false,
"GoToPageEnabled": false,
"EntryId": 6,
"OtherOptionEnabled": false,
"Choices": [],
"Position": 6,
"QuestionTitle": "",
"Composite": false,
"HelpText": "2. Primary Address"
}, {
"EntryType": 0,
"Required": true,
"GoToPageEnabled": false,
"EntryId": 4,
"OtherOptionEnabled": false,
"Choices": [],
"Position": 7,
"QuestionTitle": "Primary Street",
"Composite": false,
"HelpText": ""
}, {
"EntryType": 0,
"Required": true,
"GoToPageEnabled": false,
"EntryId": 7,
"OtherOptionEnabled": false,
"Choices": [],
"Position": 8,
"QuestionTitle": "Primary City",
"Composite": false,
"HelpText": ""
}, {
"EntryType": 0,
"Required": true,
"GoToPageEnabled": false,
"EntryId": 8,
"OtherOptionEnabled": false,
"Choices": [],
"Position": 9,
"QuestionTitle": "Primary State",
"Composite": false,
"HelpText": ""
}, {
"EntryType": 0,
"Required": true,
"GoToPageEnabled": false,
"EntryId": 9,
"OtherOptionEnabled": false,
"Choices": [],
"Position": 10,
"QuestionTitle": "Primary Zip",
"Composite": false,
"HelpText": ""
}, {
"EntryType": 0,
"Required": true,
"GoToPageEnabled": false,
"EntryId": 10,
"OtherOptionEnabled": false,
"Choices": [],
"Position": 11,
"QuestionTitle": "Primary Country",
"Composite": false,
"HelpText": ""
}, {
"EntryType": 6,
"Required": false,
"GoToPageEnabled": false,
"EntryId": 11,
"OtherOptionEnabled": false,
"Choices": [],
"Position": 12,
"QuestionTitle": "",
"Composite": false,
"HelpText": "E-mail Address"
}, {
"EntryType": 0,
"Required": true,
"GoToPageEnabled": false,
"EntryId": 12,
"OtherOptionEnabled": false,
"Choices": [],
"Position": 13,
"QuestionTitle": "Primary E-mail",
"Composite": false,
"HelpText": ""
}, {
"EntryType": 0,
"Required": false,
"GoToPageEnabled": false,
"EntryId": 13,
"OtherOptionEnabled": false,
"Choices": [],
"Position": 14,
"QuestionTitle": "Secondary E-mail",
"Composite": false,
"HelpText": ""
}, {
"EntryType": 6,
"Required": false,
"GoToPageEnabled": false,
"EntryId": 14,
"OtherOptionEnabled": false,
"Choices": [],
"Position": 15,
"QuestionTitle": "",
"Composite": false,
"HelpText": "Phone Numbers"
}, {
"EntryType": 0,
"Required": true,
"GoToPageEnabled": false,
"EntryId": 15,
"OtherOptionEnabled": false,
"Choices": [],
"Position": 16,
"QuestionTitle": "Primary Phone Number",
"Composite": false,
"HelpText": ""
}, {
"EntryType": 0,
"Required": false,
"GoToPageEnabled": false,
"EntryId": 16,
"OtherOptionEnabled": false,
"Choices": [],
"Position": 17,
"QuestionTitle": "Secondary Phone Number",
"Composite": false,
"HelpText": ""
}, {
"EntryType": 1,
"Required": true,
"GoToPageEnabled": false,
"EntryId": 18,
"OtherOptionEnabled": false,
"Choices": [],
"Position": 18,
"QuestionTitle": "How did you hear about us?",
"Composite": false,
"HelpText": ""
}, {
"EntryType": 6,
"Required": false,
"GoToPageEnabled": false,
"EntryId": 20,
"OtherOptionEnabled": false,
"Choices": [],
"Position": 19,
"QuestionTitle": "Information",
"Composite": false,
"HelpText": ""
},
"DomainCanShareOut": true,
"RtlForm": false,
"SummaryRestrictedToDomain": false,
"PublicResponsesViewable": false,
"DomainShowShareOutWarning": false,
"CustomConfirmationMessage": "Your response has been recorded.",
"TouchedOnClientSide": false,
"IncludeFormInEmail": true,
"EditResponsesEnabled": false
});
gfc().setDasherFormUri(null, "key");
gfc().setFormUriAndKey("url");
gfc().setDataStoreKey("key");
gfc().setActionToken("key2");
gfc().setSessionId("blahblahblah");
gfc().setContactsServerBase("/c/u/0/");
gfc().setUserFullName("SomeGuy");
gfc().setUserEmail("whatever");
gfc().setLocale("en_US");
gfc().setDataStoreId(0);
gfc().setQuestionTypes([0, 1, 2, 3, 4, 5, 7, 9, 6]);
< /script >

Are you using Firebug? if so you can look up the form element IDs directly with it.

1) Install Firebug plugin in Firefox (or Firebug Lite chrome)
2) Go to webpage
3) Click Firebug icon to bring up the firebug console.
4) Select DOM tab in the firebug console
5) Scroll down the list of DOM elements until you get to 'document', click the little plus to expand the list of Document elements
6) Scroll down the list of Document elements until you get to 'forms', click the little plus to expand the list of form elements
7) Assuming there is only 1 form in the page now click the little plus by the number 0 this will expand the list of form[0] elements
8) Valid element names for form[0] should now be in bold most with little pluses beside to expand to view their details.

ibdoomed wrote:

I can give you this much. I stripped out pages and pages of questions (there's a couple hundred) and changed some personal info to placeholders but otherwise this is pure. Did you want html outside the script? (I spaced out the < to let it post here)

Handy suggestion for next time: make a Gist and just post the link here. Much easier to read, especially since formatting will be preserved.

*Legion* wrote:
ibdoomed wrote:

I can give you this much. I stripped out pages and pages of questions (there's a couple hundred) and changed some personal info to placeholders but otherwise this is pure. Did you want html outside the script? (I spaced out the < to let it post here)

Handy suggestion for next time: make a Gist and just post the link here. Much easier to read, especially since formatting will be preserved.

Ooh nice, excellent suggestion. Thanks.

DanB wrote:

Are you using Firebug? if so you can look up the form element IDs directly with it.

1) Install Firebug plugin in Firefox (or Firebug Lite chrome)
2) Go to webpage
3) Click Firebug icon to bring up the firebug console.
4) Select DOM tab in the firebug console
5) Scroll down the list of DOM elements until you get to 'document', click the little plus to expand the list of Document elements
6) Scroll down the list of Document elements until you get to 'forms', click the little plus to expand the list of form elements
7) Assuming there is only 1 form in the page now click the little plus by the number 0 this will expand the list of form[0] elements
8) Valid element names for form[0] should now be in bold most with little pluses beside to expand to view their details.

I'll give firefox a shot.

Is the page publicly accessible? If so could you point us to the URL?

DanB wrote:

Is the page publicly accessible? If so could you point us to the URL?

I can't open it to the public.

Right now I'm just trying to get the form to pull an elementid into a variable but once I add that single line, it no longer even sends the email at all.

For instance, here's my working test form. When I fill out the google form, it emails me the results.

This doesn't even send the email at all.

(Hopefully I figured out this gist thing)

EDIT: Nevermind. I couldn't figure out how to link to each gist, I've got appointments to get to so I'll figure it out later.

*blegh*

ibdoomed wrote:

Right now I'm just trying to get the form to pull an elementid into a variable but once I add that single line, it no longer even sends the email at all.

This sounds more like a syntax error in the javascript.

Again with Firebug.

a) Open your page
b) Click on the firebug icon to bring up the firebug console
c) select the 'Console' tab
d) select the 'All' option
e) reload the page
f) try and use your form and see what javascript output is caught by firebug

DanB wrote:
ibdoomed wrote:

Right now I'm just trying to get the form to pull an elementid into a variable but once I add that single line, it no longer even sends the email at all.

This sounds more like a syntax error in the javascript.

Again with Firebug.

a) Open your page
b) Click on the firebug icon to bring up the firebug console
c) select the 'Console' tab
d) select the 'All' option
e) reload the page
f) try and use your form and see what javascript output is caught by firebug

I tried that and as I navigated to the form the console showed various things but once I got to the google form page, the console was blank and remained blank through submission.

Looking at this, am I reading it right in that the element ids are entry_0, entry_10, entry_11 and so on or is it entry.0.single ...?

IMAGE(http://i.imgur.com/csw5u.jpg)

Looking at it on my phone, but it looks like "entry_1", etc... are what you're looking for.

Mixolyde wrote:

What's the google library you're using? It almost certainly has some API for setting the elementID so that it's not auto-generating numbers that might change.

Sorry, I forgot to reply to you. I have no idea what library I'm using =( . I don't see anything in the google spreadsheet or google form editor that says library at all.

Bonus_Eruptus wrote:

Looking at it on my phone, but it looks like "entry_1", etc... are what you're looking for.

Ok thanks. I'll get back to figuring out gist and go from there.

Bonus_Eruptus wrote:

Looking at it on my phone, but it looks like "entry_1", etc... are what you're looking for.

Confirmed. The right column identifies the element by CSS notation in the format {node-type}#{id}.{class[es]}. It's good to know CSS shorthand: whenever you see "#foo" or ".bar" in CSS, that will refer to "all elements of ID 'foo' (which should be unique but may not be if page is poorly written)" and "all elements of class 'bar'" respectively.

Been a while since I worked with Firefox (I'm mainly in Chrome these days) but I think the left column refers to the name of the element, which is not the same as its ID. Names of form elements are used as keys to retrieve their values when a form is submitted via full postback (as opposed to partial postback as in AJAX; if you submit via JavaScript you can restructure the data). Multiple elements of the same name will cause the retrieved value to be an array IIRC. [NB -- Not all of the items in the left column refer to children elements of a form; some are DOM property keys.]

I created a test form, see if you guys can get to this:

https://docs.google.com/spreadsheet/...

It doesn't work as is but if you comment out the line "var name = document.getElementById("entry_0");", then it does work.

ibdoomed wrote:

I created a test form, see if you guys can get to this:

https://docs.google.com/spreadsheet/...

It doesn't work as is but if you comment out the line "var name = document.getElementById("entry_0");", then it does work.

I'm just seeing a spreadsheet, not a form.

You can also grab all elements on the page with an ID beginning with "entry_" like so:

var entryFields = document.querySelectorAll("input[id^=entry_]")

It depends what the "DO SOMETHING" block is trying to do, but you could, once you have these elements, loop through them, and look for a label element right before it, for example, and compare the text to what you're looking for.

Questions are easy enough to figure out with a regular expression:

var reQuestion = /([\s^])(who|where|what|when|why|\?)([\s$])/gi; if (re.test(some_string)) { // returns true if any of the words above or the question mark match, false if not // DO SOMETHING }

You could add additional words or phrases like "please describe" to that regex, but without knowing what you're trying to do, that's the best I've got at the moment.

bandit0013 wrote:

It's almost finished (still playing around with content/images), but I finally am getting around to launching my consulting site.

Penny for your thoughts?

http://www.wiseconsultingllc.com/

I'm running XP SP3 and primarily use Chrome (23.x) but am also reviewing in Firefox (11.0). In Chrome, Judson looks horrible, pixelated. Firefox renders it just more smoothly but slightly bolded. Open Sans looks very clean in each browser, though.

The images in your #banner-img don't sit well with me, but I'm not sure if it's just their borders or that they look generic. Probably the latter.

Your logo (LogoW.png) is truncated on the left in both Chrome and Firefox. I'm rusty but looks like the following inline CSS is of by about 15px:

style="position:relative;top:0px;right:200px"

Setting that offset to 185px screws up the text alignment but displays the entire logo. Looks like you were trying to align it with the background-image stuff, and I'm too rusty to offer any advice.

The only other thing I'd offer is that the footer looks a little anemic. That may be more a product of Derek Powazek's footer apologetics (which he's curiously defied himself now seven years later), but I'm so used to beefy footers this one looks a little outta place. (I'm partial to Jason Santa Maria's.) My guess is that you're working on that, but wanted to throw it out there.

Overall, though, I like what you're doing. From my extreme neophyte perspective, you could just streamline a few things and have a solid storefront.

Hope that helps.

ibdoomed wrote:

I created a test form, see if you guys can get to this:

https://docs.google.com/spreadsheet/...

It doesn't work as is but if you comment out the line "var name = document.getElementById("entry_0");", then it does work.

So where does google give you the option of adding javascript to a Docs form? I'm not really seeing anything in the form editor that would allow that much control over the form.

psoplayer wrote:
ibdoomed wrote:

I created a test form, see if you guys can get to this:

https://docs.google.com/spreadsheet/...

It doesn't work as is but if you comment out the line "var name = document.getElementById("entry_0");", then it does work.

So where does google give you the option of adding javascript to a Docs form? I'm not really seeing anything in the form editor that would allow that much control over the form.

In the spreadsheet view, under tools, script editor.

Bonus_Eruptus wrote:

I'm just seeing a spreadsheet, not a form.

Click on form at the top, does it allow you options for edit and view live?

ibdoomed wrote:
Bonus_Eruptus wrote:

I'm just seeing a spreadsheet, not a form.

Click on form at the top, does it allow you options for edit and view live?

It's greyed out and says "Form (3)".

ibdoomed wrote:

In the spreadsheet view, under tools, script editor.

Oh. That explains a lot.

Yes, those google docs scripts are javascript, but they don't run in the same context as the form you were designing. I haven't spent much time at all using the scripting features in google docs, but have you looked at their sending email from a spreadsheet tutorial? If you're using google docs scripts then you shouldn't be worrying about HTML or DOM or firebug or any of that (it seems to be designed as an analogue to the VB Script support in MS Office). We probably need to re-focus the discussion: what are you looking to accomplish with the script? I'm guessing you want to send an email that will include a subset of the info that was just added to the spreadsheet?

Bonus_Eruptus wrote:
ibdoomed wrote:
Bonus_Eruptus wrote:

I'm just seeing a spreadsheet, not a form.

Click on form at the top, does it allow you options for edit and view live?

It's greyed out and says "Form (3)".

Because we don't have editing privileges

DanB wrote:
Bonus_Eruptus wrote:
ibdoomed wrote:
Bonus_Eruptus wrote:

I'm just seeing a spreadsheet, not a form.

Click on form at the top, does it allow you options for edit and view live?

It's greyed out and says "Form (3)".

Because we don't have editing privileges

Doh. I had set sharing to anyone with the link could edit but blah, I changed it to anyone in the world can edit.

psoplayer wrote:
ibdoomed wrote:

In the spreadsheet view, under tools, script editor.

Oh. That explains a lot.

Yes, those google docs scripts are javascript, but they don't run in the same context as the form you were designing. I haven't spent much time at all using the scripting features in google docs, but have you looked at their sending email from a spreadsheet tutorial? If you're using google docs scripts then you shouldn't be worrying about HTML or DOM or firebug or any of that (it seems to be designed as an analogue to the VB Script support in MS Office). We probably need to re-focus the discussion: what are you looking to accomplish with the script? I'm guessing you want to send an email that will include a subset of the info that was just added to the spreadsheet?

I missed that tutorial so I'll go look at it now.

Essentially I've been tasked with creating a google form that emails the results every time someone submits and the results need to be comma separated so it can then be copied and pasted into a text file thus creating a csv file and imported into a database. Absurd? Absolutely. Have I pointed out the absurdity to the decision makers? Absolutely. Do they care? Not one bit. Have I eyerolled at them? Absolutely. Alternatives? I can look for a new job or just get this done and over with to get back to my real day to day work.

ibdoomed wrote:
DanB wrote:
Bonus_Eruptus wrote:
ibdoomed wrote:
Bonus_Eruptus wrote:

I'm just seeing a spreadsheet, not a form.

Click on form at the top, does it allow you options for edit and view live?

It's greyed out and says "Form (3)".

Because we don't have editing privileges

Doh. I had set sharing to anyone with the link could edit but blah, I changed it to anyone in the world can edit.

psoplayer wrote:
ibdoomed wrote:

In the spreadsheet view, under tools, script editor.

Oh. That explains a lot.

Yes, those google docs scripts are javascript, but they don't run in the same context as the form you were designing. I haven't spent much time at all using the scripting features in google docs, but have you looked at their sending email from a spreadsheet tutorial? If you're using google docs scripts then you shouldn't be worrying about HTML or DOM or firebug or any of that (it seems to be designed as an analogue to the VB Script support in MS Office). We probably need to re-focus the discussion: what are you looking to accomplish with the script? I'm guessing you want to send an email that will include a subset of the info that was just added to the spreadsheet?

I missed that tutorial so I'll go look at it now.

Essentially I've been tasked with creating a google form that emails the results every time someone submits and the results need to be comma separated so it can then be copied and pasted into a text file thus creating a csv file and imported into a database. Absurd? Absolutely. Have I pointed out the absurdity to the decision makers? Absolutely. Do they care? Not one bit. Have I eyerolled at them? Absolutely. Alternatives? I can look for a new job or just get this done and over with to get back to my real day to day work.

Is space an issue? Does it have to be a google form? Wufoo does all of this for you, securely, so you don't have to deal with the bullsh*t.

Bonus_Eruptus wrote:

Is space an issue? Does it have to be a google form? Wufoo does all of this for you, securely, so you don't have to deal with the bullsh*t.

Money is an issue. If it were a lump sum, I could probably swing it, but monthly fees, regardless of long term cost, are too much of a pain in the ass to deal with.

Cyranix wrote:
bandit0013 wrote:

On an unrelated note, I downloaded and installed Couchbase today (2.0 beta). As a MS-SQL guy I'm curious to see what all the hype is about. Install was pretty clean, though it put in a bogus IP that I had to back out and push in for localhost (I think it tried to use the public ip on the router or something). Got a hello world up in pretty quick order. So... 8/10 on the install experience, one issue, pretty easily resolved via the forums.

First foray into non-RDBMS data storage?

A few guys at work are itching to try Couchbase, and I'm a little curious myself. We've been using HBase for a few projects, and it's... interesting. I've had fun with MongoDB in non-production environments (and my old company is now using it in a limited capacity in production)... I would love to get back to using it, as I remain cautiously optimistic about their ongoing efforts to improve write safety and reduce the scope of write locks -- the API and support are pretty stellar. Now what I'm itching to find a use case for is a graph database; Neo4J looks pretty slick and I'd love to tinker with it sometime.

Yeah, it's my first foray. I'm really sweating over the non relational model and figuring out how it makes sense to split the data. I have an application idea I've been toying with for agile project management and I may use this as the data layer for the proof of concept. I'm sure it will emerge. At least the penalty for a bad data model in nosql is pretty minimal since there's no enforced schema.

bandit0013 wrote:

At least the penalty for a bad data model in nosql is pretty minimal since there's no enforced schema.

Or, contrariwise, the penalty for a bad data model in nosql is huge because you may have to substantially re-write your code if you decide you need to change the data layout. (That would be why the world invented RDBMSs in the first place--because back then everything was "nosql", so everybody knew why it sucked.) (And that's not to say that people don't do a lot of stuff with RDBMSs that really don't [em]need[/em] the capabilities they provide, nor that people don't frequently use RDBMSs poorly and get both the rewrite pain and the overhead at the same time. Just don't imagine that you're doing anything except trading one flavor of pain for another. :))

Hypatian wrote:
bandit0013 wrote:

At least the penalty for a bad data model in nosql is pretty minimal since there's no enforced schema.

Or, contrariwise, the penalty for a bad data model in nosql is huge because you may have to substantially re-write your code if you decide you need to change the data layout. (That would be why the world invented RDBMSs in the first place--because back then everything was "nosql", so everybody knew why it sucked.) (And that's not to say that people don't do a lot of stuff with RDBMSs that really don't [em]need[/em] the capabilities they provide, nor that people don't frequently use RDBMSs poorly and get both the rewrite pain and the overhead at the same time. Just don't imagine that you're doing anything except trading one flavor of pain for another. :))

Seems like the json style driver that serializes if the property is there and ignores it if it isn't would mitigate that. At least that's the couchdb-.NET driver from what I can see.