summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/new_branch_form.js.coffee
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/new_branch_form.js.coffee')
-rw-r--r--app/assets/javascripts/new_branch_form.js.coffee78
1 files changed, 0 insertions, 78 deletions
diff --git a/app/assets/javascripts/new_branch_form.js.coffee b/app/assets/javascripts/new_branch_form.js.coffee
deleted file mode 100644
index 4b350854f78..00000000000
--- a/app/assets/javascripts/new_branch_form.js.coffee
+++ /dev/null
@@ -1,78 +0,0 @@
-class @NewBranchForm
- constructor: (form, availableRefs) ->
- @branchNameError = form.find('.js-branch-name-error')
- @name = form.find('.js-branch-name')
- @ref = form.find('#ref')
-
- @setupAvailableRefs(availableRefs)
- @setupRestrictions()
- @addBinding()
- @init()
-
- addBinding: ->
- @name.on 'blur', @validate
-
- init: ->
- @name.trigger 'blur' if @name.val().length > 0
-
- setupAvailableRefs: (availableRefs) ->
- @ref.autocomplete
- source: availableRefs,
- minLength: 1
-
- setupRestrictions: ->
- startsWith = {
- pattern: /^(\/|\.)/g,
- prefix: "can't start with",
- conjunction: "or"
- }
-
- endsWith = {
- pattern: /(\/|\.|\.lock)$/g,
- prefix: "can't end in",
- conjunction: "or"
- }
-
- invalid = {
- pattern: /(\s|~|\^|:|\?|\*|\[|\\|\.\.|@\{|\/{2,}){1}/g
- prefix: "can't contain",
- conjunction: ", "
- }
-
- single = {
- pattern: /^@+$/g
- prefix: "can't be",
- conjunction: "or"
- }
-
- @restrictions = [startsWith, invalid, endsWith, single]
-
- validate: =>
- @branchNameError.empty()
-
- unique = (values, value) ->
- values.push(value) unless value in values
- values
-
- formatter = (values, restriction) ->
- formatted = values.map (value) ->
- switch
- when /\s/.test value then 'spaces'
- when /\/{2,}/g.test value then 'consecutive slashes'
- else "'#{value}'"
-
- "#{restriction.prefix} #{formatted.join(restriction.conjunction)}"
-
- validator = (errors, restriction) =>
- matched = @name.val().match(restriction.pattern)
-
- if matched
- errors.concat formatter(matched.reduce(unique, []), restriction)
- else
- errors
-
- errors = @restrictions.reduce validator, []
-
- if errors.length > 0
- errorMessage = $("<span/>").text(errors.join(', '))
- @branchNameError.append(errorMessage)