input.val(val);
});
+ // Set the padding for input elements with inline buttons
+ //
+ // In Frio we use some input elements where the submit button is visually
+ // inside the the input field (through css). We need to set a padding-right
+ // to the input element where the padding value would be at least the width
+ // of the button. Otherwise long user input would be invisible because it is
+ // behind the button.
+ $("body").on('click', '.form-group-search > input', function() {
+ // Get the width of the button (if the button isn't available
+ // buttonWidth will be null
+ var buttonWidth = $(this).next('.form-button-search').outerWidth();
+
+ if (buttonWidth) {
+ // Take the width of the button and ad 5px
+ var newWidth = buttonWidth + 5;
+ // Set the padding of the input element according
+ // to the width of the button
+ $(this).css('padding-right', newWidth);
+ }
+
+ });
+
+
});
function openClose(theID) {
return trimmed;
};
-// Scroll to a specific item and highlight it
-// Note: jquery.color.js is needed
-function scrollToItem(itemID) {
- if( typeof itemID === "undefined")
+/**
+ * Scroll the screen to the item element whose id is provided, then highlights it
+ *
+ * Note: jquery.color.js is required
+ *
+ * @param {string} elementId The item element id
+ * @returns {undefined}
+ */
+function scrollToItem(elementId) {
+ if (typeof elementId === "undefined") {
return;
+ }
- var elm = $('#'+itemID);
+ var $el = $(document.getElementById(elementId));
// Test if the Item exists
- if(!elm.length)
+ if (!$el.length) {
return;
+ }
// Define the colors which are used for highlighting
var colWhite = {backgroundColor:'#F5F5F5'};
var colShiny = {backgroundColor:'#FFF176'};
- // Get the Item Position (we need to substract 100 to match
- // correct position
- var itemPos = $(elm).offset().top - 100;
+ // Get the Item Position (we need to substract 100 to match correct position
+ var itemPos = $el.offset().top - 100;
// Scroll to the DIV with the ID (GUID)
$('html, body').animate({
scrollTop: itemPos
}, 400, function() {
// Highlight post/commenent with ID (GUID)
- $(elm).animate(colWhite, 1000).animate(colShiny).animate(colWhite, 600);
+ $el.animate(colWhite, 1000).animate(colShiny).animate(colWhite, 600);
});
}
return text;
}
+
+/**
+ * Sends a /like API call and updates the display of the relevant action button
+ * before the update reloads the item.
+ *
+ * @param {string} ident The id of the relevant item
+ * @param {string} verb The verb of the action
+ * @returns {undefined}
+ */
+function doLikeAction(ident, verb) {
+ unpause();
+
+ if (verb.indexOf('attend') === 0) {
+ $('.item-' + ident + ' .button-event:not(#' + verb + '-' + ident + ')').removeClass('active');
+ }
+ $('#' + verb + '-' + ident).toggleClass('active');
+ $('#like-rotator-' + ident.toString()).show();
+ $.get('like/' + ident.toString() + '?verb=' + verb, NavUpdate );
+ liking = 1;
+ force_update = true;
+}
\ No newline at end of file