From fc88f12bbad71d800b9a31546341c11164008955 Mon Sep 17 00:00:00 2001 From: John McLear Date: Fri, 5 Jun 2020 20:00:21 +0100 Subject: [PATCH] editor: ul/ol/li - outdent on ol and ul button press --- src/static/js/ace2_inner.js | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/src/static/js/ace2_inner.js b/src/static/js/ace2_inner.js index 787aaaf94..e0b401f40 100644 --- a/src/static/js/ace2_inner.js +++ b/src/static/js/ace2_inner.js @@ -5166,6 +5166,7 @@ function Ace2Inner(){ var t = ''; var level = 0; var listType = /([a-z]+)([0-9]+)/.exec(getLineListType(n)); + var togglingOn = !allLinesAreList; if (listType) { t = listType[1]; @@ -5173,12 +5174,24 @@ function Ace2Inner(){ } var t = getLineListType(n); - // if already a list, deindent - if (allLinesAreList && level != 1) { level = level - 1; } - // if already indented, then add a level of indentation to the list - else if (t && !allLinesAreList) { level = level + 1; } + if(t === listType) togglingOn = false; - mods.push([n, allLinesAreList ? 'indent' + level : (t ? type + level : type + '1')]); + if(togglingOn){ + mods.push([n, allLinesAreList ? 'indent' + level : (t ? type + level : type + '1')]); + } + + if(!togglingOn){ // remove removing because we have + // scrap the entire indentation and list type + if(level === 1){ // if outdending but are the first item in the list then outdent + setLineListType(n, ''); // outdent + } + // else change to indented not bullet + if(level > 1){ + setLineListType(n, ''); // reomve bullet + let newLevel = level+1; + setLineListType(n, "indent"+level); // outdent + } + } } _.each(mods, function(mod){