Skip to content

Commit deb32ca

Browse files
author
Mark Ericksen
committed
handle ePortfolio name when too long
fixes CNVS-3277 testing steps: - either create a new ePortfolio or edit the settings for one (i.e. left side nav when in a portfolio "ePortfolio Settings") - in popup, enter text longer than 255 characters and try to submit - should display that "Name is too long" - when creating a new ePortfolio and when editing, verify that it requires a "Name" and gives a descriptive error message Change-Id: Id7b6b495a3e47290ea5c37054865812ddc7f1dec Reviewed-on: https://gerrit.instructure.com/23829 Tested-by: Jenkins <jenkins@instructure.com> Reviewed-by: Landon Wilkins <lwilkins@instructure.com> Product-Review: Marc LeGendre <marc@instructure.com> QA-Review: Marc LeGendre <marc@instructure.com>
1 parent b13b625 commit deb32ca

3 files changed

Lines changed: 36 additions & 25 deletions

File tree

app/models/eportfolio.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ class Eportfolio < ActiveRecord::Base
2525
has_many :attachments, :as => :context
2626
belongs_to :user
2727
validates_presence_of :user_id
28+
validates_length_of :name, :maximum => maximum_string_length, :allow_blank => true
2829

2930
workflow do
3031
state :active

app/views/eportfolios/user_index.html.erb

Lines changed: 3 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
<%
2+
js_bundle :eportfolio
3+
%>
14
<% content_for :page_title do %>
25
<%= t(:page_title, "My ePortfolios") %>
36
<% end %>
@@ -41,28 +44,6 @@ DETAILS
4144
<%= render :partial => "eportfolio", :collection => @portfolios %>
4245
</ul>
4346
<% end %>
44-
<% js_block do %>
45-
<script>
46-
require([
47-
'jquery' /* $ */
48-
], function($) {
49-
50-
$(document).ready(function() {
51-
$(".add_eportfolio_link").click(function(event) {
52-
event.preventDefault();
53-
$("#whats_an_eportfolio").slideToggle();
54-
$("#add_eportfolio_form").slideToggle(function() {
55-
$(this).find(":text:first").focus().select();
56-
});
57-
});
58-
$("#add_eportfolio_form .cancel_button").click(function() {
59-
$("#add_eportfolio_form").slideToggle();
60-
$("#whats_an_eportfolio").slideToggle();
61-
});
62-
});
63-
});
64-
</script>
65-
<% end %>
6647
<% form_for Eportfolio.new, :url => eportfolios_path, :html => {:style => "display: none;", :id => "add_eportfolio_form"} do |f| %>
6748
<h2><%= t('headers.add_eportfolio', "Make an ePortfolio") %></h2>
6849
<table class="formtable">

public/javascripts/eportfolio.js

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,16 @@ define([
4444
'jqueryui/sortable' /* /\.sortable/ */
4545
], function(I18n, $) {
4646

47+
var ePortfolioValidations = {
48+
object_name: 'eportfolio',
49+
property_validations: {
50+
'name': function(value){
51+
if (!value || value.trim() == '') { return I18n.t("errors.name_required", "Name is required")}
52+
if (value && value.length > 255) { return I18n.t("errors.name_too_long", "Name is too long")}
53+
}
54+
}
55+
};
56+
4757
function ePortfolioFormData() {
4858
var data = $("#edit_page_form").getFormData({
4959
object_name: "eportfolio_entry",
@@ -81,19 +91,38 @@ define([
8191
title: I18n.t('eportfolio_settings', "ePortfolio Settings")
8292
}).fixDialogButtons();
8393
});
94+
// Add ePortfolio related
95+
$(".add_eportfolio_link").click(function(event) {
96+
event.preventDefault();
97+
$("#whats_an_eportfolio").slideToggle();
98+
$("#add_eportfolio_form").slideToggle(function() {
99+
$(this).find(":text:first").focus().select();
100+
});
101+
});
102+
$("#add_eportfolio_form .cancel_button").click(function() {
103+
$("#add_eportfolio_form").slideToggle();
104+
$("#whats_an_eportfolio").slideToggle();
105+
});
106+
$('#add_eportfolio_form').submit(function(){
107+
var $this = $(this);
108+
var result = $this.validateForm(ePortfolioValidations);
109+
if(!result) {
110+
return false;
111+
}
112+
});
113+
// Edit ePortfolio related
84114
$("#edit_eportfolio_form .cancel_button").click(function(event) {
85115
$("#edit_eportfolio_form").dialog('close');
86116
});
87-
$("#edit_eportfolio_form").formSubmit({
88-
object_name: 'eportfolio',
117+
$("#edit_eportfolio_form").formSubmit($.extend(ePortfolioValidations, {
89118
beforeSubmit: function(data) {
90119
$(this).loadingImage();
91120
},
92121
success: function(data) {
93122
$(this).loadingImage('remove');
94123
$(this).dialog('close');
95124
}
96-
});
125+
}));
97126
$(".edit_content_link").click(function(event) {
98127
event.preventDefault();
99128
$(".edit_content_link_holder").hide();

0 commit comments

Comments
 (0)