From 726340fc865ba05fb10a1aaea09c9f0b69346f07 Mon Sep 17 00:00:00 2001 From: Rafael Schouten Date: Tue, 30 Sep 2014 18:20:45 +1000 Subject: [PATCH] configure textAngular on enterprise edit page --- app/assets/javascripts/admin/admin.js.coffee | 2 +- app/assets/javascripts/admin/all.js | 4 ++-- .../controllers/enterprise_controller.js.coffee | 4 +++- .../admin/enterprises/enterprises.js.coffee | 2 +- app/assets/stylesheets/admin/all.css | 1 + app/assets/stylesheets/admin/openfoodnetwork.css.scss | 8 ++++++++ app/assets/stylesheets/shared/textAngular.min.css | 1 + .../layouts/admin/admin_inside_head.html.haml.deface | 5 +++++ .../admin/set_bugherd_in_backend.html.haml.deface | 4 ---- ....html.haml.deface => inside_head.html.haml.deface} | 0 app/serializers/api/admin/enterprise_serializer.rb | 4 ++-- app/views/admin/enterprises/_form.html.haml | 11 ++++++++++- 12 files changed, 34 insertions(+), 12 deletions(-) create mode 100644 app/assets/stylesheets/shared/textAngular.min.css create mode 100644 app/overrides/spree/layouts/admin/admin_inside_head.html.haml.deface delete mode 100644 app/overrides/spree/layouts/admin/set_bugherd_in_backend.html.haml.deface rename app/overrides/spree/layouts/spree_application/{set_bugherd_in_frontend.html.haml.deface => inside_head.html.haml.deface} (100%) diff --git a/app/assets/javascripts/admin/admin.js.coffee b/app/assets/javascripts/admin/admin.js.coffee index c80e6252de..cbb824f97d 100644 --- a/app/assets/javascripts/admin/admin.js.coffee +++ b/app/assets/javascripts/admin/admin.js.coffee @@ -1,3 +1,3 @@ angular.module("ofn.admin", ["ngResource", "ngAnimate", "ofn.dropdown", "admin.products", "infinite-scroll"]).config ($httpProvider) -> $httpProvider.defaults.headers.common["X-CSRF-Token"] = $("meta[name=csrf-token]").attr("content") - $httpProvider.defaults.headers.common["Accept"] = "application/json, text/javascript, */*" \ No newline at end of file + $httpProvider.defaults.headers.common["Accept"] = "application/json, text/javascript, */*" diff --git a/app/assets/javascripts/admin/all.js b/app/assets/javascripts/admin/all.js index b96ace5832..c763a20b80 100644 --- a/app/assets/javascripts/admin/all.js +++ b/app/assets/javascripts/admin/all.js @@ -23,7 +23,7 @@ //= require ./products/products //= require ./shipping_methods/shipping_methods //= require ./users/users -//= require ../shared/text-angular -//= require ../shared/text-angular-sanitize +//= require ../shared/textAngular.min.js +//= require ../shared/textAngular-sanitize.min.js //= require_tree . diff --git a/app/assets/javascripts/admin/enterprises/controllers/enterprise_controller.js.coffee b/app/assets/javascripts/admin/enterprises/controllers/enterprise_controller.js.coffee index c5b38191ba..4b710dda85 100644 --- a/app/assets/javascripts/admin/enterprises/controllers/enterprise_controller.js.coffee +++ b/app/assets/javascripts/admin/enterprises/controllers/enterprise_controller.js.coffee @@ -3,6 +3,8 @@ angular.module("admin.enterprises") $scope.Enterprise = Enterprise.enterprise $scope.PaymentMethods = PaymentMethods.paymentMethods $scope.ShippingMethods = ShippingMethods.shippingMethods + $scope.htmlVariable = Enterprise.enterprise.long_description + for payment_method in $scope.PaymentMethods payment_method.selected = payment_method.id in $scope.Enterprise.payment_method_ids @@ -32,4 +34,4 @@ angular.module("admin.enterprises") $scope.ShippingMethods.reduce (count, shipping_method) -> count++ if shipping_method.selected count - , 0 \ No newline at end of file + , 0 diff --git a/app/assets/javascripts/admin/enterprises/enterprises.js.coffee b/app/assets/javascripts/admin/enterprises/enterprises.js.coffee index 6189661035..9b67bc14f4 100644 --- a/app/assets/javascripts/admin/enterprises/enterprises.js.coffee +++ b/app/assets/javascripts/admin/enterprises/enterprises.js.coffee @@ -1 +1 @@ -angular.module("admin.enterprises", ["admin.payment_methods", "admin.shipping_methods", "admin.users"]) \ No newline at end of file +angular.module("admin.enterprises", ["admin.payment_methods", "admin.shipping_methods", "admin.users", "textAngular"]) \ No newline at end of file diff --git a/app/assets/stylesheets/admin/all.css b/app/assets/stylesheets/admin/all.css index 7c3345de6b..9b3603fe7b 100644 --- a/app/assets/stylesheets/admin/all.css +++ b/app/assets/stylesheets/admin/all.css @@ -9,6 +9,7 @@ *= require admin/spree_promo *= require shared/jquery-ui-timepicker-addon + *= require shared/textAngular.min *= require_self *= require_tree . diff --git a/app/assets/stylesheets/admin/openfoodnetwork.css.scss b/app/assets/stylesheets/admin/openfoodnetwork.css.scss index 3281c8d116..8b07d1a368 100644 --- a/app/assets/stylesheets/admin/openfoodnetwork.css.scss +++ b/app/assets/stylesheets/admin/openfoodnetwork.css.scss @@ -210,3 +210,11 @@ table#listing_enterprise_groups { color: #575757; } +// textAngular wysiwyg +.text-angular .btn-group { + display: inline; + margin-right: 8px; + button { + padding: 5px 10px; + } +} diff --git a/app/assets/stylesheets/shared/textAngular.min.css b/app/assets/stylesheets/shared/textAngular.min.css new file mode 100644 index 0000000000..6f132953bb --- /dev/null +++ b/app/assets/stylesheets/shared/textAngular.min.css @@ -0,0 +1 @@ +.ta-scroll-window.form-control{height:auto;min-height:300px;overflow:auto;font-family:inherit;font-size:100%;position:relative;padding:0}.ta-root.focussed .ta-scroll-window.form-control{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.ta-editor.ta-html{min-height:300px;height:auto;overflow:auto;font-family:inherit;font-size:100%}.ta-scroll-window>.ta-bind{height:auto;min-height:300px;padding:6px 12px}.ta-root .ta-resizer-handle-overlay{z-index:100;position:absolute;display:none}.ta-root .ta-resizer-handle-overlay>.ta-resizer-handle-info{position:absolute;bottom:16px;right:16px;border:1px solid #000;background-color:#FFF;padding:0 4px;opacity:.7}.ta-root .ta-resizer-handle-overlay>.ta-resizer-handle-background{position:absolute;bottom:5px;right:5px;left:5px;top:5px;border:1px solid #000;background-color:rgba(0,0,0,.2)}.ta-root .ta-resizer-handle-overlay>.ta-resizer-handle-corner{width:10px;height:10px;position:absolute}.ta-root .ta-resizer-handle-overlay>.ta-resizer-handle-corner-tl{top:0;left:0;border-left:1px solid #000;border-top:1px solid #000}.ta-root .ta-resizer-handle-overlay>.ta-resizer-handle-corner-tr{top:0;right:0;border-right:1px solid #000;border-top:1px solid #000}.ta-root .ta-resizer-handle-overlay>.ta-resizer-handle-corner-bl{bottom:0;left:0;border-left:1px solid #000;border-bottom:1px solid #000}.ta-root .ta-resizer-handle-overlay>.ta-resizer-handle-corner-br{bottom:0;right:0;border:1px solid #000;cursor:se-resize;background-color:#fff} \ No newline at end of file diff --git a/app/overrides/spree/layouts/admin/admin_inside_head.html.haml.deface b/app/overrides/spree/layouts/admin/admin_inside_head.html.haml.deface new file mode 100644 index 0000000000..1d77b5315d --- /dev/null +++ b/app/overrides/spree/layouts/admin/admin_inside_head.html.haml.deface @@ -0,0 +1,5 @@ +/ + insert_before '[data-hook="admin_inside_head"]' + += render "layouts/bugherd_script" +%link{'data-require' => "font-awesome@*", 'data-semver'=>"4.2.0", 'rel' => "stylesheet", 'href' => "//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.2.0/css/font-awesome.css"} diff --git a/app/overrides/spree/layouts/admin/set_bugherd_in_backend.html.haml.deface b/app/overrides/spree/layouts/admin/set_bugherd_in_backend.html.haml.deface deleted file mode 100644 index ae7163c2f4..0000000000 --- a/app/overrides/spree/layouts/admin/set_bugherd_in_backend.html.haml.deface +++ /dev/null @@ -1,4 +0,0 @@ -/ - insert_before '[data-hook="admin_inside_head"]' - -= render "layouts/bugherd_script" \ No newline at end of file diff --git a/app/overrides/spree/layouts/spree_application/set_bugherd_in_frontend.html.haml.deface b/app/overrides/spree/layouts/spree_application/inside_head.html.haml.deface similarity index 100% rename from app/overrides/spree/layouts/spree_application/set_bugherd_in_frontend.html.haml.deface rename to app/overrides/spree/layouts/spree_application/inside_head.html.haml.deface diff --git a/app/serializers/api/admin/enterprise_serializer.rb b/app/serializers/api/admin/enterprise_serializer.rb index 80acf6d7c4..c9d61d3f2f 100644 --- a/app/serializers/api/admin/enterprise_serializer.rb +++ b/app/serializers/api/admin/enterprise_serializer.rb @@ -1,3 +1,3 @@ class Api::Admin::EnterpriseSerializer < ActiveModel::Serializer - attributes :name, :id, :is_primary_producer, :is_distributor, :payment_method_ids, :shipping_method_ids -end \ No newline at end of file + attributes :name, :id, :is_primary_producer, :is_distributor, :payment_method_ids, :shipping_method_ids, :long_description +end diff --git a/app/views/admin/enterprises/_form.html.haml b/app/views/admin/enterprises/_form.html.haml index 6f86c3e703..729c16eb53 100644 --- a/app/views/admin/enterprises/_form.html.haml +++ b/app/views/admin/enterprises/_form.html.haml @@ -182,7 +182,16 @@ .alpha.three.columns = f.label :long_description, 'About Us' .omega.eight.columns - = f.text_area :long_description, rows: 6, placeholder: 'Tell us about yourself. This information appears on your public profile (under "About Us")', class: 'fullwidth' + -# textAngular toolbar options, add to the ta-toolbar array below and separate into groups with extra ],[ if needed: + -# ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p', 'pre', 'quote'], + -# ['bold', 'italics', 'underline', 'strikeThrough', 'ul', 'ol', 'redo', 'undo', 'clear'], + -# ['justifyLeft','justifyCenter','justifyRight','indent','outdent'], + -# ['html', 'insertImage', 'insertLink', 'insertVideo'] + %text-angular{'ng-model' => 'htmlVariable', 'class' => 'text-angular', + 'ta-toolbar' => "[['h1','h2','h3','h4','p'],['bold','italics','underline','clear'],['insertLink']]", + 'placeholder' => 'Tell customers about yourself. This information appears on your public profile.'} + -# Use a hidden rails form field bound to the textAngular wysiwit field above, using the htmlVariable model. So rails knows to save it. + = f.text_area :long_description, rows: 6, 'ng-model' => 'htmlVariable', 'hidden' => 'true' %fieldset.eleven.columns.alpha.no-border-bottom %legend IMAGES .row