Commit Graph

371 Commits

Author SHA1 Message Date
Brion Vibber
28809035d0 Replace explicit FormXHR setup for a bunch of simple AJAX form submissions with adding the 'ajax' class on them.
This avoids having to add extra custom JS bits just to initialize forms using the common AJAX submission path.
2011-03-08 13:58:28 -08:00
Brion Vibber
90f1cfcfc0 Poll plugin: make the polling response form submit via AJAX and return the results.
Now, any form marked with 'ajax' class will get the simple FormXHR treatment. Should help cut down on code that just adds that into individual forms.
2011-03-08 13:45:51 -08:00
Brion Vibber
0c2289fb2f Avoid AJAX fetch delay for inline replies when possible; we clone a copy of the notice form skeleton at initialization, then insert it in place instead of fetching a new one. 2011-03-07 12:18:46 -08:00
Evan Prodromou
cf1a4d8292 Input form switcher works
This change adds the input form switcher, which adds a navigation menu
across the top of the input form, letting you switch between different kinds of input.

The input menu doesn't yet look like a nice set of tabs; it could use some love.
2011-03-07 04:57:49 -05:00
Shashi Gowda
b372ed721d styling for people tag UI 2011-03-07 00:44:21 +05:30
Brion Vibber
2fa95144ed Cleanup & minification for migration to reusable notice form in inline replies. Yay! 2011-03-04 15:00:20 -08:00
Brion Vibber
a1002cc107 Work in progress: inline reply form reusing the main reply form now inserts the successful result more or less right 2011-03-04 14:58:30 -08:00
Brion Vibber
5358f78e82 Reusable notice form fixes for geolocation 2011-03-04 14:27:55 -08:00
Brion Vibber
9689bda21c Loading the original form instead of faking up our own. Sorta works but not pretty :D 2011-03-04 14:11:11 -08:00
Brion Vibber
b68f8643a2 Kill some more hardcoded ids... 2011-03-04 13:53:41 -08:00
Brion Vibber
56d5c4a4d1 More hardcoded id cleanup in notice form... 2011-03-04 13:40:33 -08:00
Brion Vibber
e7662bb1d9 Moving bit by bit more towards reusable forms... per-form-izing some of the location setup (not all yet) 2011-03-03 17:58:35 -08:00
Brion Vibber
cd20190ba5 Remove hardcoded #notice_action-submit from JS/CSS (prep for reusable notice forms) 2011-03-03 17:48:16 -08:00
Brion Vibber
9d40c8f835 Pulling out some more #-references to per-form items 2011-03-03 17:39:37 -08:00
Brion Vibber
b58aa29168 Notice form cleanup: removing hardcoded id from counter references; prep for reusable notice forms. 2011-03-03 17:15:17 -08:00
Brion Vibber
f94a5e1a6a Notice form cleanup: drop use of id for #notice_data-text (prep for reusable notice form) 2011-03-03 17:05:19 -08:00
Brion Vibber
1ff17f0ed9 Notice form cleanup: removing hardcoded IDs from attachment handling (prep for reusable notice forms) 2011-03-03 16:56:54 -08:00
Brion Vibber
488230c3e1 Drop auto-focusing of the notice form. 2011-03-03 16:15:28 -08:00
Brion Vibber
822f08e3ed Kill 'hit return to send'... 2011-03-03 16:14:36 -08:00
Brion Vibber
6f73b2870b Rework geolocation status display so you can actually tell what it's doing and whether a location will be posted.
Goes in along with the file attachment info, below the notice box. Still needs to be generalized to work with multiple forms.
2011-03-03 15:21:27 -08:00
Brion Vibber
5a404ee713 'Comment' -> 'Reply' in inline comment/reply messages 2011-03-03 12:26:07 -08:00
Brion Vibber
018b11a883 Fix for realtime vs threaded reply fix 2011-03-01 16:29:00 -08:00
Brion Vibber
764d069ccd Clean up threaded notices vs replies classes, and fixed realtime's threaded behavior to only run on threaded lists 2011-03-01 16:08:37 -08:00
Brion Vibber
9fd2ee86f3 Inline reply work for threaded lists in realtime 2011-03-01 16:04:11 -08:00
Brion Vibber
c6521db620 Fix for timeline insert on primary AJAX post: only insert on the first, primary timeline. Don't insert on sub-timelines for replies! 2011-03-01 15:24:44 -08:00
Brion Vibber
db4ab2cd92 When canceling out of inline reply field and there are no other replies, drop the section 2011-03-01 14:26:11 -08:00
Brion Vibber
e6c972ebcb Inline replies: drop the box if tabbing out and no text 2011-03-01 14:24:06 -08:00
Brion Vibber
c0dcd73379 Inline replies: fix replies on repeats, placeholder re-add when replying to a reply 2011-03-01 13:49:13 -08:00
Brion Vibber
d01648248e Inline replies now do ajaxy submit. Neat! Not 100% perfect though 2011-02-28 16:38:44 -08:00
Brion Vibber
f109d15c28 avoid hardcoding action & session token; pull them from the main posting form for now 2011-02-28 16:24:51 -08:00
Brion Vibber
59a0b2a82d Merge branch '1.0.x' of gitorious.org:statusnet/mainline into inline-comments
Conflicts:
	js/util.min.js
2011-02-28 16:18:38 -08:00
Brion Vibber
62712b794a More interactive magic for inline replies: placeholder at the end of list 2011-02-28 16:13:16 -08:00
Brion Vibber
e89bffc3f1 Work in progress: setting up inline reply mini-form in js 2011-02-28 15:38:54 -08:00
Brion Vibber
9fcad91d8d Ticket #3014: check upload size limits client-side in supporting browsers
Tested successfully in:
* Firefox 4.0b9
* Safari 5.0.5
* Chrome 8.0.522
2011-01-25 16:26:56 -08:00
Brion Vibber
e0606d3eca Break xbImportNode.js and geometa.js back out of util.js; the Makefile in js has been updated to combine them with util.js source when building util.min.js
Revert "combine our standard scripts into one big script"

This reverts parts of commit 0c5ca46ba3.
2010-12-22 15:22:02 -08:00
Brion Vibber
46d9496ee6 Tickets #2112, 2333, 1677, 2362, 2831: fix AJAX form posting on SSL page views with ssl=sometimes
These have been failing for ages due to our outputting full URLs all the time, usually with the default protocol instead of the current one.
Forms would get output with an http: URL in their contents even when destined for an HTTPS page; while a regular form submission would just warn you about the secure->insecure transition, the AJAX code was failing outright and then not bothering to fall back to the regular submission.

I found it was easy to detect the mismatch -- just check the target URL and the current page's protocol before submitting.

Since failing over to non-AJAX submission to the HTTP URL throws up a warning, I figured it'd be easier (and much nicer for users) to just let it rewrite the target URL to use the secure protocol & hostname before doing the final submit.
This check is now automatically done for anything that calls SN.U.FormXHR() -- making most of our buttons on notices and profile/group headers work naturally.
The notice form setup code also runs the rewrite, which gets posting working without an error dialog.

I'd prefer in the long run to simply use relative URLs in most of our output; it avoids this problem completely and lets users simply stay in the current protocol mode instead of being constantly switched back to HTTP when clicking around.
(Note that folks using the SSLAlways extension to Firefox, for instance, will have their browsers constantly sending them back to HTTP pages, mimicking the desired user experience even though we haven't fully implemented it. These folks are likely going to be a lot happier with forms that submit correctly to go along with it!)
2010-12-16 17:02:02 -08:00
Brion Vibber
532178e3ee Fix for ticket #2910: fix inconsistencies in notice posting response display that broke help command, could be generally wonky
Previous code was importing nodes from the XHR result into current document, then pulling text content of what might be the right element, then concat'ing that straight into HTML. Eww! Now pulling the text content straight from the XHR result -- same element that we check for existence of -- and using jQuery's own text() to do the getting and setting of text. Also note that some browsers might have been pulling HTML instead of text, or other funkiness.
2010-12-16 16:18:49 -08:00
Brion Vibber
f901c25012 Add lots of doc comments to util.js. Most stuff makes some kind of stuff, but some is kinda.... funky :D
These comments are all stripped during minification, so util.min.js remains unchanged.
2010-12-16 15:34:51 -08:00
Brion Vibber
364bc6e642 work in progress 2010-12-16 15:04:48 -08:00
Brion Vibber
2836c4e561 Fix for ticket #2942: character counter now updates on cut and paste operations made with mouse or menu
This uses the 'copy' and 'paste' DOM events to trigger a counter update. I haven't had a chance to 100% confirm that middle-button click on X11 triggers the event, but it ought to.
Cut and paste events from context menu and main edit menu known good in:
* Firefox 4.08b-pre
* IE 9 preview 7
* IE 8 current
* Chrome 8 beta current
* Safari 5.0.3

Opera is listed as not supporting these events, oh well.

Note that using a *delete* command from a menu doesn't trigger an event. Sigh, you can't win everything.
2010-12-15 14:57:09 -08:00
Brion Vibber
d075fac7b8 Preview thumbnails of uploaded image attachments before posting on supporting browsers.
Tested working so far:
* Firefox 3.6 and 4.0 (FileReader -> data URL)
* Chrome 8 (createObjectURL; FileReader also works)

Tested with limited support:
* Safari 5.0.3 (no preview, but we can show type and size)

Tested and known not to support FileAPI, keeps current behavior:
* Opera 11 beta
2010-11-24 12:20:25 -08:00
Brion Vibber
b73c162256 Partial fix for tickets #2194, #2393: Workaround for Meteor breaking AJAX error responses returned on posting new notices. Fixes things in Firefox 4, but Safari 5 and Chrome 8 still don't return data... either on success or failure! Sigh.
The Meteor realtime plugin sets document.domain to the common prefix between the main server and the Meteor server's hostnames, which overrides the same-origin controls on JavaScript DOM access so the two parts of the app can speak to each other.
This unfortunately causes "fun" side effects for XMLHTTPRequest access to the main domain... if the new domain doesn't match the actual host (eg 'status.net' instead of 'brion.status.net') then we can't access the XHR's responseXML attribute, which holds a DOM tree of the parsed XML return data.
As a workaround, if we can't get at the contents there, we'll parse a fresh DOM tree in the local context from the responseText property, which remains available.

In the longer term, recommend retooling the realtime stuff so it's not fiddling with document.domain. It could also be an issue as it could allow local JavaScript XSS attacks to migrate to subdomains in other open windows.
2010-11-17 16:08:41 -08:00
Brion Vibber
cda59dc177 drop a comma which isn't actually an error but keeps throwing annoying warnings in netbeans 2010-11-12 12:10:51 -08:00
Brion Vibber
62467f51e5 Drop commented-out code from old lightbox & thumbnail popup stuff 2010-11-12 12:10:29 -08:00
Brion Vibber
551b196a35 doomy doom doom 2010-11-08 15:32:41 -08:00
Brion Vibber
32321de5e0 Some initial testing w/ thumb gen 2010-11-08 14:20:23 -08:00
Brion Vibber
5a9bb0adc4 Tossing in a basic i18n message export to script code. Plugins can hook StartScriptMessage/EndScriptMessage, or directly add needed mappings in Action::getScriptMessages(). Exported entries are accessible as SN.msg(key) at runtime.
StatusNet core code now sets the tooltip text on .attachment.more links when they receive their attachment-expansion magic; this will override the hardcoded tooltip text saved from OStatus plugin when displaying timelines in the web UI.
2010-11-02 13:05:16 -07:00
Evan Prodromou
0c5ca46ba3 combine our standard scripts into one big script 2010-09-02 22:21:07 -04:00
Brion Vibber
34995df879 TinyMCE: counter support (may not be 100% exact match to server-side count, but there's already discrepencies due to URL shortening)
Fix for bad char conversions also, caused short text to not be saved in some cases.
2010-08-12 12:47:07 -07:00
Brion Vibber
54d723adc1 Initial fix for #2479: New post should be displayed on timeline only if it belongs there (AJAX post)
Previously we pushed out your latest post into the currently visible timeline regardless of whether it belonged there or not. This could be pretty confusing!

Currently we don't have clearly machine-readable info on the page and returned notice HTML to determine whether it belongs, but we can do a couple checks easily which I've added:
* public timeline (always show)
* 'and friends' timeline (show for your own page only)
* profile timeline (show for your own page only)

Other places that should be added in the future:
* group timelines if it's a group your posting to
* tag timelines if the post contains the tag
* reply & friends timelines for people you've mentioned

Currently those aren't easy since the mention/group target links in the notice HTML are using the canonical form with user or group ID, while the available navigation links we can use to identify the current page use the names.
2010-07-29 13:27:09 -07:00
Zach Copley
72e486a322 Fix for ticket http://status.net/open-source/issues/2380 "Autofocus
shouldn't override scroll" -- Thanks @michaeltwofish!
2010-06-23 11:29:13 -07:00
Sarven Capadisli
534c12e540 Revert "Multiple file upload handling."
This reverts commit 260f00d60b.

As mentioned in
260f00d60b (comment_8367)

Reverting this merge until the bugs are fixed and there is a general
agreement on the need for this enhancement.
2010-03-31 10:57:20 +02:00
Nick Holliday
260f00d60b Multiple file upload handling. 2010-03-26 18:28:54 -04:00
Sarven Capadisli
94f904bf66 Fix for XHR more text behaviour on conversation pages 2010-03-26 14:56:15 +01:00
Sarven Capadisli
7dd701fbb3 Added processing indicator for more anchor 2010-03-18 23:00:38 +01:00
Sarven Capadisli
d8a533274f Updated 'more' anchor for attachments to do an XHR GET 2010-03-18 00:19:32 +01:00
Sarven Capadisli
910108b9ae Removed unnecessary form_id. Using jQuery .find() instead of
constructing the selector.
2010-03-16 21:02:56 +01:00
Sarven Capadisli
e8c7873b79 Added extra condition to focusing on notice form on page load. If the
window location contains a fragument identifier, it will skip focus
and do what the UA does natively.
2010-03-16 20:53:49 +01:00
Brion Vibber
79ffebb51b OStatus: save file records for enclosures
Also stripping id from foreign HTML messages (could interfere with UI) and disabled failing attachment popup for a.attachment links that don't have a proper id, so you can click through instead of getting an error.

Issues:
* any other links aren't marked and saved
* inconsistent behavior between local and remote attachments (local displays in lightbox, remote doesn't)
* if the enclosure'd object isn't referenced in the content, you won't be offered a link to it in our UI
2010-03-02 16:36:08 -08:00
Sarven Capadisli
9f94d6defa Changed the geo location cookie Expire to Session. 2010-03-02 19:15:24 -05:00
Sarven Capadisli
a0f6977baa Fixes replyto JS after the upgrade from jQuery 1.4.2 2010-02-25 14:51:23 +01:00
Sarven Capadisli
959171acac Added a cookie for the nickname cookie for the login page and prefill
the input field.
2010-02-24 16:39:16 +01:00
Sarven Capadisli
1f45273d53 Moved StatusNetInstance into SN in util.js 2010-02-24 16:35:20 +01:00
Sarven Capadisli
2e258454f3 Minor optimization to only bind an hover event to the notice at hand. 2010-02-16 17:36:45 +01:00
Sarven Capadisli
3b8d060c29 Fix to allow any notice item with an attachment to use the overlay view 2010-02-16 17:09:34 +01:00
Sarven Capadisli
dcd9b2a405 Refactored repeat confirmation dialog. Also fixes dialog skipping. 2010-02-10 11:16:27 +01:00
Sarven Capadisli
d73746641b Reusing fixed selector name for 'processing' in util.js 2010-02-01 15:13:54 +01:00
Sarven Capadisli
91b99863fa Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing 2010-01-31 22:42:50 +00:00
Sarven Capadisli
9f36c10001 Updated XHR binded events to work better in jQuery 1.4.1. Using
.live() for event delegation instead of jQuery.data() and checking to
see if an element was previously binded.
2010-01-31 22:37:22 +00:00
Sarven Capadisli
4d0ee6a41f Globalized form notice data geo values 2010-01-30 15:28:31 +01:00
Sarven Capadisli
aa3170cf34 Using jQuery chaining in FormNoticeXHR 2010-01-30 15:19:13 +01:00
Sarven Capadisli
bb0bf635d8 Using form object instead of form_id and find(). Slightly faster and
easier to read.
2010-01-30 15:03:01 +01:00
Sarven Capadisli
817f01c3b1 Setting the geo location cookie expire date far into the future: 2029 ;) 2010-01-26 01:59:47 +01:00
Sarven Capadisli
d17b7fa19b Setting the geo location cookie expire date far into the future: 2029 ;) 2010-01-26 01:58:10 +01:00
Sarven Capadisli
591c5037a7 An update to geolocation cookie to use a single file and set the
expiry date to 30 days from now.
2010-01-26 01:12:06 +01:00
Brion Vibber
a7a0041a11 Quick hack to avoid breaking with geonames off when there's some old cookie state. This code's a little rough and tumble; any breakage halts JS execution and leaves the spinner going and no message submitted. 2010-01-26 00:25:20 +01:00
Sarven Capadisli
a35c52b6be Some JS cleaning up for NoticeLocationAttach (which fixes also fixes a
few bugs in WebKit)
2010-01-26 00:25:13 +01:00
Sarven Capadisli
2e643071ff Took out focus out of textare when location share is enabled/disabled.
Also avoids the conflict with the URL fragment on the conversation page.
2010-01-26 00:25:06 +01:00
Sarven Capadisli
f9cc3e6d94 Added missing position paramater 2010-01-26 00:24:57 +01:00
Sarven Capadisli
cae2429d12 JSLinting on JSON 2010-01-26 00:24:44 +01:00
Sarven Capadisli
73f6250b9d An update to geolocation cookie to use a single file and set the
expiry date to 30 days from now.
2010-01-25 14:55:04 +00:00
Sarven Capadisli
c367e09d11 Some JS cleaning up for NoticeLocationAttach (which fixes also fixes a
few bugs in WebKit)
2010-01-24 00:21:42 +01:00
Sarven Capadisli
940fc463c8 Took out focus out of textare when location share is enabled/disabled.
Also avoids the conflict with the URL fragment on the conversation page.
2010-01-24 00:20:48 +01:00
Sarven Capadisli
f043bc62a5 Added missing position paramater 2010-01-24 00:18:52 +01:00
Sarven Capadisli
68c864c95a JSLinting on JSON 2010-01-24 00:18:39 +01:00
Brion Vibber
4b0f953ccf Quick hack to avoid breaking with geonames off when there's some old cookie state. This code's a little rough and tumble; any breakage halts JS execution and leaves the spinner going and no message submitted. 2010-01-21 16:30:03 -08:00
Sarven Capadisli
acc48289e5 Update geo location UI for notice form where the geo data info is only
visible on @title of the enable/disable button.
2010-01-14 01:48:57 +00:00
Sarven Capadisli
d84c33c328 Unchecks location sharing for geo location if it timesout 2010-01-13 15:51:32 +00:00
Sarven Capadisli
af97a14f7c Timeout should be 10000, not 10
Revert "Unchecks location sharing for geo location if it timesout"

This reverts commit 8887d7a314.
2010-01-13 15:50:45 +00:00
Sarven Capadisli
8887d7a314 Unchecks location sharing for geo location if it timesout 2010-01-13 15:48:26 +00:00
Sarven Capadisli
2000d2d36b Added timeout error handling for geo location 2010-01-13 15:36:42 +00:00
Sarven Capadisli
9b2fdefe39 Using a JSON object for NoticeDataGeo text instead 2010-01-13 15:21:43 +00:00
Sarven Capadisli
70bdaeeb09 Explicitly reseting notice_in-reply-to value 2010-01-11 12:19:53 +00:00
Sarven Capadisli
8901e01692 Added i18n text for @title values in geo sharing actions 2010-01-08 18:07:02 +00:00
Sarven Capadisli
febe64625e Focus on the notice textarea after share, minimize, close button actions 2010-01-08 16:51:18 +00:00
Sarven Capadisli
17913d4427 Makes sure that if geo location sharing is disabled, it doesn't use
the HTML output. If cookie is set, use those values for XHR notice post
2010-01-08 16:43:03 +00:00
Sarven Capadisli
064f13f3ab Stores geo view's minimized state in a cookie 2010-01-08 14:23:37 +00:00
Sarven Capadisli
54c18e68da Some code cleaning for geo UI 2010-01-08 13:58:23 +00:00
Sarven Capadisli
69f567c7be Using cookies to minimize lookups to Geonames 2010-01-08 13:36:52 +00:00
Sarven Capadisli
a08e683ac3 Reuse cookie location_enabled before .change() 2010-01-05 01:31:34 +00:00