From 6fbb99c8d2352fdaf49a2f240fe8986d128d179a Mon Sep 17 00:00:00 2001 From: Urban Rotnik Date: Fri, 25 Oct 2019 17:38:15 +0200 Subject: [PATCH] Add List items partial and JS --- app/assets/javascripts/application.js.erb | 1 + .../columns_initializers/list_column_type.js | 63 +++++++++++++++++++ .../javascripts/repository_columns/index.js | 3 +- app/assets/stylesheets/repositories.scss | 23 +++++++ .../manage_column_partials/_list.html.erb | 26 +++++++- config/locales/en.yml | 3 + 6 files changed, 117 insertions(+), 2 deletions(-) create mode 100644 app/assets/javascripts/repository_columns/columns_initializers/list_column_type.js diff --git a/app/assets/javascripts/application.js.erb b/app/assets/javascripts/application.js.erb index 10312b0dc..1b9a571c8 100644 --- a/app/assets/javascripts/application.js.erb +++ b/app/assets/javascripts/application.js.erb @@ -30,6 +30,7 @@ //= require jsnetworkx //= require bootstrap-select //= require_directory ./sitewide +//= require_directory ./repository_columns/columns_initializers //= require datatables //= require ajax-bootstrap-select.min //= require underscore diff --git a/app/assets/javascripts/repository_columns/columns_initializers/list_column_type.js b/app/assets/javascripts/repository_columns/columns_initializers/list_column_type.js new file mode 100644 index 000000000..24c52b53c --- /dev/null +++ b/app/assets/javascripts/repository_columns/columns_initializers/list_column_type.js @@ -0,0 +1,63 @@ +/* eslint-disable no-unused-vars */ +var RepositoryListColumnType = (function() { + var manageModal = '#manageRepositoryColumn'; + + function textToItems(text, delimiter) { + var res = []; + var definedDelimiters = { + return: '\n', + comma: ',', + semicolon: ';', + pipe: '|', + space: ' ' + }; + + var delimiters = [] + if (delimiter === 'auto') { + delimiters = ['\n', ',', ';', '|', ' ']; + } else { + delimiters.push(definedDelimiters[delimiter]); + } + + $.each(delimiters, (index, currentDelimiter) => { + res = text.trim().split(currentDelimiter); + if (res.length > 1) { + return false; + } + }); + + return res.filter(Boolean); + } + + function drawDropdownPreview(items) { + var $manageModal = $(manageModal); + var $dropdownPreview = $manageModal.find('.dropdown-preview select'); + $('option', $dropdownPreview).remove(); + $.each(items, function(i, item) { + $dropdownPreview.append($('