https://preview.redd.it/5nojgd9ql50d1.png?width=768&format=png&auto=webp&s=226feeb9fab3ff43f6a1caa7b28c00fbbef9394a Does anyone have experience with this kind of error? I've tried various approaches for hours. I've experimented with different ways to implement the pTooltip, ensured it's imported in the modules where it's needed, and I tried changing the PrimeNG version from 17.16.1 to 17.2.0. I have checked the styling many times; I don't use 'style' in a button, only classes, and it's also acting strangely. Every time I hover over a button, this error occurs and a scrollbar appears for a millisecond both vertically and horizontally since this error began. This issue appeared after a normal 'npm install', but I haven't changed anything in the package.json. I've already tried to uninstall and reinstall everything, and finally I'm out of ideas. Please HELP. Thank you :)
2024.05.13 05:18 Substantial_Piano640Disappering right vertical scrollbar
Using a chromebook and the only time it happens is using AT&T e-mail. Persistent ads are on the right hand side of the screen. the scrollbard flashes and then disappears between the e-mail part f the screen and the ad part. Scrollbar appears normally everywhere elwe using all other apps. Any ideas n how to proceed?
2024.05.12 09:21 ign_SHEIKHSomeone please suggest me how I can update my project angular version to the latest one ~ 17 maybe.
I am tired of this dependency errors please suggest me how can I update my project which is in version 14 to 17. Can I just change the package.json file and try using installing (npm install) or are there any tools for it or videos. Please suggest.:( Repo link {} Package.json:
2024.05.10 22:41 rares_G2004Overlapping content issue with a background image.
How can I put an image at the top of the page that fades when scrolling and the page content (main text) overlaps the picture as it fades. I'm a beginner and I use Visual Studio Code. First of all, I don't have a lot of knowledge in coding as I just started this year to learn, second thing is that this project is a copy for school homework - the assignment is to take our favorite site and copy it without using inspect element for copy and paste. This is the site I want to copy: https://www.townandcountrymag.com/leisure/sporting/news/g2165/best-vintage-cars/ Thank you all! Hope this is a good place to ask this question.
The 1960s Jaguar E-Type, famously praised by Enzo Ferrari as "the most beautiful car ever made," remains a classic sports car icon. With its impressive performance—reaching speeds of up to 150 mph—and superior braking capabilities for its time, it continues to capture the hearts of enthusiasts. Experience the thrill firsthand at the Jaguar Heritage Driving Experience program in Kenilworth, U.K., where you can spend a day driving these timeless classics.
2024.05.10 16:27 Remarkable_Pianist_2Please help me center the widgets here :)
Would you mind helping me on centering the widgets? Ive tried it all, and currently i amlearning abou customtkinter, hopefully the solution will come till tomoroow
Here is the code : i know you cant see anything cause no connection to a bd, i gotta list it all, but if ya need, tell me. For now, everything is listed on the left side for a reason def print_history(username): new_root = Tk() new_root.title(f"{username}'s Notebook") new_root.configure(bg='black') subject_names = get_names() cursor.execute(f"SELECT * FROM 'Subjects' WHERE Username = '{username}'") subject_values = cursor.fetchone() connection.commit() list_values = [] for i in subject_values: if i is not None: list_values.append(i) else: list_values.append("No Progress") max_height = min(7, len(subject_values)) * 50 # Assuming each widget height is 50 pixels canvas = Canvas(new_root) canvas.grid(row=0, column=0, sticky="nsew") canvas.configure(bg='black',width=400,borderwidth=0,height=max_height) scrollable_frame = Frame(new_root, bg='black',borderwidth=0,width=400) canvas.create_window((0, 0), window=scrollable_frame, anchor="nw",width=400) scrollbar = Scrollbar(new_root, orient="vertical", command=canvas.yview) scrollbar.grid(row=0, column=1, sticky="ns") canvas.configure(yscrollcommand=scrollbar.set) user_id = Label(scrollable_frame, text=f"User : {username}\n", font=("Helvetica", 23, "bold"), bg="black", fg="white") user_id.grid(row=0, columnspan=2, sticky="ew") Lesson = Label(scrollable_frame, text=("Lessons :\n"), font=("Helvetica", 19, 'bold'), bg="black", fg="white") Progress = Label(scrollable_frame, text=("Progress :\n"), font=("Helvetica", 19, 'bold'), bg="black", fg="white") Lesson.grid(row=1, column=0) Progress.grid(row=1, column=1) for value in range(1, len(list_values)): label_lesson = Label(scrollable_frame, text=str(f"{subject_names[value]}"), font=("Helvetica", 16, 'bold'), bg="black",fg="white") label_progress = Label(scrollable_frame, text=str(f"{list_values[value]}"), font=("Helvetica", 14), bg="black", fg="white") label_lesson.grid(row=value + 3, column=0, padx=10, sticky="ew") label_progress.grid(row=value + 3, column=1, padx=10, sticky="ew") new_button_exit = Button(scrollable_frame, text="EXIT", font=('helvetica', 14, 'bold'), bg='black', fg='white', width=3, borderwidth=0, command=new_root.destroy) new_button_exit.grid(row=len(subject_names) + 2, columnspan=2, pady=10, sticky="ew") scrollable_frame.update_idletasks() canvas.config(scrollregion=canvas.bbox("all")) new_root.mainloop()
2024.05.09 14:14 Garlickedbread1Beginner needs a bit of help
Hi, I'm kind of new to coding so this might a really simple problem lmao. So I'm trying to make a program to help me track which pokemons I caught in certain games. I'm still not very far in figuring out how I'll do everything I'll need to do, but currently my main roadblock is with tkinter and buttons. rn, I'm trying to make it so when I click on a pokemon, the sprite opens in an external program. (I'll need the button to refer to a certain pokemon for later) The issue is that when I click on a button the same image will open whichever button I press. I understand why but I can't figure out a solution other than manually creating a new variable to store every button. I'm still very new and this is the first program I'm trying to make myself so don't hesitate to explain concepts I might not be familiar with.
import tkinter as tk from tkinter import ttk import os class App(): def __init__(self): self.root = tk.Tk() self.root.geometry('960x540') self.root.title('pokedex tracker') self.mainframe = tk.Frame(self.root, background='grey') self.mainframe.pack(fill='both', expand=True) self.pokemonframecontainer = tk.Frame(self.mainframe) self.pokemonframecontainer.pack(fill='both', expand=True) #scro=ttk.Scrollbar(self.pokemonframecontainer, orient='vertical', command=self.pokemonframecontainer.yview) currentgame = 1 gen=1 if gen == 1: gennmb = 151 elif gen == 2: gennmb= 251 elif gen==3: gennmb=386 elif gen==4: gennmb=493 elif gen== 5: gennmb=649 elif gen==6: gennmb=721 elif gen==7: gennmb=809 elif gen==8: gennmb=905 else: gennmb=1025 monsprite = [] button = [] buttonsize = 50 for i in range (0,gennmb,1): monsprite.append(tk.PhotoImage(file = "pokemon sprites\gen {}\\{}.png".format(gen, i+1))) for j in range (0,gennmb,1): button.append(ttk.Button(self.pokemonframecontainer, width=buttonsize, image = monsprite[j], command=lambda : os.startfile("pokemon sprites\gen {}\\{}.png".format(gen, j+1)))) abutton= button[j] abutton.grid(column=j%6, row=j//6) #def openimage(): self.root.mainloop() return if __name__ == '__main__': App()
2024.05.08 04:13 Embarrassed-Tank-663Vertical sidebar navigation problem
Hello good Django HTMX friends! I hope i can get some help on this issue. Here is the image first https://preview.redd.it/p4uqrapx34zc1.png?width=1920&format=png&auto=webp&s=ac8812b189a657133c28f8fbd245075fd2b20d2c So on the left we have all course modules and lessons listed, that lead to lesson.get_absolute_url. But when there are more lessons, you have to scroll this sidebar vertically in order to see all lesson links. So you click on one link, the lesson page is loaded but the sidebar also comes back to top. So if you clicked on a lesson deep down, you don't see that link in the viewport anymore. I tried hx-boost="true" it works to load the lesson with no page refresh, but the sidebar gets scrolled to top, i thought it will solve the problem but it didn't. Here is the aside code
include sidebar to lesson and test pages {% include "courses/backend/lessons/includes/aside.html" %} include one header to lesson and test pages {% include "courses/backend/lessons/includes/main-top.html" %}
in block content we include divs with dynamic content for lessons and tests {% block content %}{% endblock content %}
div class="main-content"
div class="wrap" htmx local htmx csrf
Needed behavior is shown here https://v2.tailwindcss.com/docs/ (this is just a good example) scroll in the sidebar and click on any link, you will see that the content loads but the sidebar doesn't get scrolled back to top. I hope somebody can help me, thank you very much :)
2024.05.06 10:28 CoderStudiosPySide6 Floating Scrollbar like on mobile
Basically the title. I'm currently using a Scrollarea, but I want the scrollbars to be above the content, not besides it. I already tried using seperate QScrollBars, moving them to where I want to and then making them transparent, but when I connect them to the ScrollArea, it just moves them back where they normally are. I also tried making the background of the ScrollArea behind the scrollbars transparent, but I couldn't find how. I would appriciate any and all help :) (I'm asking as I think it would take me 10 times longer to figure this out on my own instead of asking someone who knows more for help.) https://postimg.cc/gallery/jdyR8mc (The first is how I want it to look, the second is how it currently looks) Found the answer! HAHA I'm not one of those guys :)
Subclass `QWidget`:
Start by creating a subclass of `QWidget`.
Create a Scroll Area:
- Instantiate a new attribute `self.scrollarea`. - Set the size policy of `self.scrollarea` to `QSizePolicy.Ignored` for both vertical and horizontal dimensions. This allows the widget to ignore the layout’s default sizing.
Adjust Scrollbar Policies:
- Configure the scrollbar policies for both orientations:
Set `horizontalScrollBarPolicy` to `Qt.ScrollBarAlwaysOff`.
Set `verticalScrollBarPolicy` to `Qt.ScrollBarAlwaysOff`.
- These settings ensure that the scrollbars are always hidden.
Add Custom Scrollbars:
- Create two scrollbars: `self._vert_scrollbar` and `self._hori_scrollbar`. - Sync these custom scrollbars with those of `self.scrollarea`. This means the custom scrollbars will move in coordination with the main scroll area’s scrollbars.
Layout Configuration:
- Place `self.scrollarea` and the custom scrollbars into your desired layout. The layout arrangement depends on your specific UI design requirements.
Handle Resize Events:
- In the `resizeEvent` method, update the size of `self.scrollarea` to match the new event size (`event.size()`). - Adjust the maximum values and other properties of the scrollbars to accommodate the resized area.
How to use in the rest of the UI:
- If you need to resize it, resize the new class. Otherwise always access `class.scrollarea` instead.
load times According to the times in Chrome's devtools Network tab, Font Awesome icons/fonts are adding over 13 seconds to the load time of my page on my local Windows PC - where I am trying to debug the code. Those css files seem to be a part of the altitude-pro theme that was used on the site... css files I do not see this when the site is live. Why would I see it when debugging locally? Is there a way to speed this up locally as well? Waiting 10+ seconds for each page to load is killing my productivity and drive to fix this buggy site. ------------------------------------------------ UPDATE -------------------------------------- I replaced the font-awesome code with some code that uses PNG icons that I added to the media library. The page load times are now down to less than 6 seconds. That's not blazing fast for a Windows dev box, but it's a lot better than almost 20 seconds for a page to load. I'll look into possible ways to speed up the server (LocalWP - taking 5.35 seconds to respond) tomorrow. I'd be happy with a 2 second load time on this box.
2024.05.01 12:58 akaimizugiHow could I setup choices menu as nvl message on a phone message system?
Greetings! First of all thank you for anyone who takes their time to read. So, I'm using the yet another phone code for a visual novel that I want to simulate a phone-like message system. I edited the code to my needs and the nvl messaging system is working as intended. My problem comes with the choices menu system (I think that's how it's called, I mean the choices you give the player to advance the story one way or another through the "menu:" syntax) I was thinking of giving the player the choices like they were messages shown from players POV but I'm not experienced with code so I can't wrap my head around how to make the choices menu work as a nvl message, so i would appreciate any help provided! I will attach an image of what I'm trying to do; the text in white is the one working, the text in purple is the one I want to set up as being different clickable options for the player. I will leave the code I have for the message system in here:
define nvl_mode = "phone" ##Allow the NVL mode to become a phone conversation define MC_Name = "[player_name]" ##The name of the main character, used to place them on the screen init -1 python: phone_position_x = 0.5 phone_position_y = 0.5 def Phone_ReceiveSound(event, interact=True, **kwargs): if event == "show_done": renpy.sound.play("audio/Mensaje.wav") def Phone_SendSound(event, interact=True, **kwargs): if event == "show_done": renpy.sound.play("audio/Mensaje.wav") def print_bonjour(): print("bonjour") transform phone_transform(pXalign=0.5, pYalign=0.5): xcenter pXalign yalign pYalign transform phone_appear(pXalign=0.5, pYalign=0.5): #Used only when the dialogue have one element xcenter pXalign yalign pYalign on show: yoffset 1080 easein_back 1.0 yoffset 0 transform message_appear(pDirection): alpha 0.0 xoffset 50 * pDirection parallel: ease 0.5 alpha 1.0 parallel: easein_back 0.5 xoffset 0 transform message_appear_icon(): zoom 0.0 easein_back 0.5 zoom 1.0 transform message_narrator: alpha 0.0 yoffset -50 parallel: ease 0.5 alpha 1.0 parallel: easein_back 0.5 yoffset 0 screen PhoneDialogue(dialogue, items=None): style_prefix "phoneFrame" frame at phone_transform(phone_position_x, phone_position_y): if len(dialogue) == 1: at phone_appear(phone_position_x, phone_position_y) viewport: draggable True mousewheel True # cols 1 yinitial 1.0 # scrollbars "vertical" vbox: ysize 1000 null height 50 use nvl_phonetext(dialogue) null height 100 screen nvl_phonetext(dialogue): style_prefix None $ previous_d_who = None for id_d, d in enumerate(dialogue): if d.who == None: # Narrator text d.what: xpos -335 ypos 0.0 xsize 350 text_align 0.5 italic True size 28 slow_cps False id d.what_id if d.current: at message_narrator else: if d.who == MC_Name: $ message_frame = "phone_send_frame.png" else: $ message_frame = "phone_received_frame.png" hbox: spacing 10 if d.who == MC_Name: box_reverse True xpos 200 else: null width 107 vbox: yalign 0.0 if d.who != MC_Name and previous_d_who != d.who: text d.who elif d.who == MC_Name: text MC_Name frame: padding (20,20) background Frame(message_frame, 23,23,23,23) xsize 1000 if d.current: if d.who == MC_Name: at message_appear(1) else: at message_appear(-1) text d.what: pos (0,0) xsize 1000 slow_cps False if d.who == MC_Name : ##TEXTO DENTRO BURBUJAS DE TEXTO color "#000" text_align 1.0 xalign 0.5 else: color "#000" id d.what_id $ previous_d_who = d.who style phoneFrame is default style phoneFrame_frame: background Transform("phone_background.png", xalign=0.5, yalign=0.5, zoom=1.) foreground Transform("phone_foreground.png", xalign=0.5, yalign=0.5, zoom=1.) ysize 790 xsize 1300 style phoneFrame_viewport: yfill True xfill True yoffset -20 style phoneFrame_vbox: spacing 10 xfill True
Again thanks a lot, and I hope that my intection is clear enough!
2024.04.26 10:32 cleavetvA generic data driven way to visualize controls on a powerapp canvas page
Hey powerappers, This is a quick demo of progress on my data driven canvas input-visualization component. https://www.youtube.com/watch?v=-Bwwa0EbAq8 Sorry reddit won't allow me to embed my video file. This iteration of the component is a fully responsive vertical canvas of input controls, defined by a table. For example this is how a checkbox is defined:
The purpose of the component is to attempt to deliver a data driven approach to control visualization in canvas apps. What I mean by that is the ability to build your entire applications data set as a model and then bind data to visualized controls, similar in nature to the approach taken to build a dataverse table form. The component will allow you to structure your application such that every visualized control can be built off a single template, decorated, and then filtered into a control visualizer. I'm sure some people are reading this and probably wondering wtf I'm talking about, and why anyone would ever care about this in PowerApps when it's so simple. And those people are probably correct. For a lot of canvas app scenarios this pattern might even make it take longer to develop a simple app built on one table. This library and ultimately the framework will not be for those scenarios. There are some of us who want to squeeze every ounce of life out of powerapps as we can, and to do so we're going to need to follow traditional development patterns and structure, otherwise we will be stuck fixing the same bugs and developing the same style of apps over and over again. I want to preface this by saying that this example was written in the component library itself, which offers no App.Formulas or otherwise any other decent way to define constant values. In a true application implementation your keys would be held in records. I will discuss how to utilize the component to better structure your canvas applications for rapid development at another time. With that said, the component's framework allows you to define your entire application's controls that you want to visualize into a single table. This table can then be filtered and queried against a rich data model in the control set. In this particular example in this checkbox you can see the ControlChannel is set to "2". This would allow you to filter your entire application's controls against a channel and only visualize in the component the particular controls you need given the applications state. The component's model tracks values in an internal audit table which can be filtered, queried, etc. Visualizing full change history for your entire form, key by key, or channel, or any other way you need to filter against the data. Need to implement a feature where the user can roll back to a previous version of the form? We can replay the entire event history of the form change by change. This is the formula in the gallery that is visualizing the changelog:
I'm not quite prepared to share too much more about the component or the model at this point yet but I hope this gives you something to think about. I do of course appreciate feedback regarding anything and everything powerapps and dev related. Thank you!
2024.04.25 21:32 cherrydogerCant make my website stay the same across different resolution screens / changing window length
Hey all! I've been working on my neocities for about a week now and I'm pretty happy with what I've gotten so far. My main issue is making sure that the layout across all pages doesn't stay the same when I resize my browser window, and there's some issues with the image map coordinates getting fucked up on different resolution screens (my boyfriend tested it for me on his end, and he said "Chiro Village" is not in the right area, and when he moves it to his smaller monitor, it just breaks entirely). It works only on my end, as far as I know. I've tried just about everything, but to no avail. Can anyone help me with this please? Link to website Code for home page:
pupsville
Altar Journal Contact / About Explore Puppy Corner
As you get off the boat, you arrive to THE DOG Island.
The ocean crashes around the cliffs of the island, and you step into Pupsville from the Green Meadows. A blanket of peace is draped over the town, and as you make your way into the square, dogs approach you, sniffing and greeting you, welcoming you to their town. You walk past Dr. Potan's clinic, and a dog
by the name of Amalia approaches you. She tells you Noble has an open house, and he would be willing to rent it out to you for free, so long as you help out the local dogs and stay out of trouble. You've never been here before, but it already feels like home.
Code for Lucifer's altar:
Lucifer's Altar
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ac pretium tellus. Suspendisse luctus massa at nunc maximus malesuada. Quisque ullamcorper justo ornare, eleifend est accumsan, placerat nunc. Aliquam erat volutpat. Duis vel lorem in eros vehicula rhoncus vel sed purus. Vestibulum sed turpis lectus. Quisque vulputate nisi vel suscipit convallis. Vestibulum suscipit posuere lacus vel bibendum. In eleifend metus sit amet libero tincidunt fringilla. Vestibulum nulla arcu, tincidunt a porta quis, ultrices nec turpis. Vivamus ligula est, dapibus non semper et, consectetur quis felis. Morbi ut ornare neque, non pretium justo. Sed sagittis non ligula eu bibendum. Maecenas ut massa vel libero consequat molestie id et magna. Aenean sollicitudin elit libero, non mattis tortor blandit non. In a diam eleifend, dignissim ante sed, rutrum mauris. Cras cursus sagittis enim vitae sodales. Interdum et malesuada fames ac ante ipsum primis in faucibus. Sed ex libero, volutpat lobortis ultricies sed, pulvinar sed eros. Sed molestie turpis ut velit pellentesque pellentesque. Maecenas efficitur magna turpis, eget rhoncus enim volutpat quis. Proin rhoncus iaculis purus gravida feugiat. Sed blandit vel sapien eget fringilla. Cras ullamcorper sem vitae mi dapibus vestibulum. Nam sit amet neque in felis faucibus maximus eu at diam. In efficitur turpis sapien, a lobortis massa venenatis a. Curabitur porta et justo ut ultrices. Nullam porta rhoncus convallis. Quisque et finibus dolor, vitae fringilla libero. Sed pretium odio vitae elementum ultrices. Cras vulputate dapibus sodales. Mauris euismod, nisi non fermentum volutpat, dui ex fringilla est, eget mattis elit odio a erat. Nam vel felis eu ex iaculis egestas ut at sapien. Etiam turpis libero, auctor ac lectus vitae, ullamcorper volutpat arcu. Suspendisse ut convallis elit. Sed convallis sodales lacinia. Proin interdum enim quis ex aliquet placerat. Phasellus et nulla tristique elit tincidunt sodales. Donec nisl ligula, placerat in elit ut, iaculis convallis libero. Donec consequat lacus in ligula ullamcorper cursus. Suspendisse potenti. Aenean efficitur leo velit, eu iaculis sapien scelerisque id. Etiam sagittis eu ex et rhoncus. Nulla nec erat vel nunc auctor pharetra. In finibus tellus sed nibh cursus commodo. Pellentesque ac felis hendrerit, finibus odio in, posuere sem. Sed elit quam, pulvinar eget sapien id, suscipit ultricies ex. Ut in vehicula augue. Ut blandit libero diam, sit amet congue quam venenatis sed. Pellentesque sit amet elit sed dolor hendrerit sagittis. Nulla mattis velit non quam tincidunt interdum. Proin consequat leo arcu, non dignissim arcu imperdiet id. Morbi facilisis luctus velit. Suspendisse sed condimentum massa. Sed cursus sed urna sed tincidunt.
2024.04.20 20:27 Interviews2gotextblock wont scroll, what am I missing..
I'm trying to load text content into a textblock dynamically and for some reason i cant get the scrollbar to appear when the text exceeds the space that textblock has. Here's the definition.. the code to load the textblock: var result = await openFile.ShowAsync(this); if (result != null && result.Length > 0) { var textWindow = this.FindControl("CodeView"); textWindow!.Text = await System.IO.File.ReadAllTextAsync(result[0]); } what am I missing? TIA.
2024.04.18 00:23 Silly-Statement-3304Need help with my code using BlueJ (school project)
Good day all, I was wondering if anyone can help me with a problem I'm having in my code. I can seem to get the date tabs sorted in the second grid and I cannot update the tab listings only the text field. If anyone can provide any insight I'll really appreciate it /** * CreateAppointment.java * The CreateAppointment class register's a new Customer * * @author (your name) * @version (a version number or a date) * @date (date) */ import javax.swing.; import javax.swing.table.DefaultTableCellRenderer; import java.awt.; import java.awt.event.; import java.util.; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import javax.swing.text.MaskFormatter; import java.sql.*; import java.io.File; import java.io.IOException; public class CreateAppointment extends JFrame implements ActionListener {
public static final int FROMLEFT = 230; public static final int FROMTOP = 50; public static final int WIDTH = 900; public static final int HEIGHT = 580; public static final int QUOTE = 0; public static String customerNo = ""; public static String preparedByStaffNo = ""; public static String assignedToStaffNo = ""; public static String serviceNo = ""; public static JTextField tappointmentTime, tservice, testimatedDuration, tcost, ttimesSchedule, tassignedTo; public static JComboBox tserviceType, tunitOfMeasureType; public static JTextArea tappointmentNotesPanel, tquoteNotes,tserviceNotes; JTextField tappointmentDate, tvalidDate; JTextArea tappointmentTimeName; JComboBox tstatus; JButton clear, submit, close, listCustomer, listService, listPreparedBy, listAssignedTo; //-------------------------------------------------------------------------- //Create a DatabaseAccess object DatabaseAccess da = new DatabaseAccess(); //Constructor for objects of class CreateAppointment public CreateAppointment() { } //-------------------------------------------------------------------------- public void CreateAppointment() { //Setting the Customer Form properties setTitle("Service Management: Create Appointment"); setBounds(FROMLEFT, FROMTOP, WIDTH, HEIGHT); //size of the frame setResizable(false); //---------------------------------------------------------------------- JMenuBar menuBar = new JMenuBar(); JMenu menu1 = new JMenu("File"); JMenu menu2 = new JMenu("Edit"); JMenu menu3 = new JMenu("Help"); menuBar.add(menu1); menuBar.add(menu2); menuBar.add(menu3); //---------------------------------------------------------------------- //Service Main Body Panel: The middle component of the JFrame JPanel mainBodyPanel = new JPanel(); mainBodyPanel.setSize(900,500); //---------------------------------------------------------------------- //Service Sub Panel 1: The top label on the form JPanel mainBodySubPanel1 = new JPanel(); mainBodySubPanel1.setLayout(null); mainBodySubPanel1.setBackground(Color.GREEN); mainBodySubPanel1.setPreferredSize(new Dimension(900, 40)); //The title on the form to be placed in mainBodySubPanel1 JLabel title = new JLabel("Create Appointment"); title.setHorizontalAlignment(JLabel.CENTER); title.setVerticalAlignment(JLabel.CENTER); title.setFont(new Font("Arial", Font.BOLD, 20)); title.setOpaque(true); title.setBackground(Color.WHITE); title.setForeground(Color.RED); title.setSize(900, 35); mainBodySubPanel1.add(title); //---------------------------------------------------------------------- //Service Sub Panel 2: Quote Data Sub Panel 2 JPanel mainBodySubPanel2 = new JPanel(); mainBodySubPanel2.setLayout(null); mainBodySubPanel2.setPreferredSize(new Dimension(850,130)); mainBodySubPanel2.setBorder(BorderFactory.createTitledBorder("Appointment Information")); //---------------------------------------------------------------------------------------------- //Quote Sub Panel 2: The Quote Date label on the form JLabel lappointmentDate = new JLabel("Appointment Date"); lappointmentDate.setFont(new Font("Arial", Font.PLAIN, 14)); lappointmentDate.setSize(120, 20); lappointmentDate.setLocation(20, 30); mainBodySubPanel2.add(lappointmentDate); //Quote Sub Panel 2: The Quote Date textbox on the form MaskFormatter appointmentDateMask = null; try { appointmentDateMask = new MaskFormatter("####-##-##"); //the # is for numeric values appointmentDateMask.setPlaceholderCharacter('-'); } catch (Exception e) { e.printStackTrace(); } tappointmentDate = new JFormattedTextField(appointmentDateMask); tappointmentDate.setFont(new Font("Arial", Font.PLAIN, 15)); tappointmentDate.setSize(100, 20); tappointmentDate.setLocation(150, 30); mainBodySubPanel2.add(tappointmentDate); lappointmentDate = new JLabel("(yyyy-mm-dd)"); lappointmentDate.setFont(new Font("Arial", Font.PLAIN, 14)); lappointmentDate.setSize(120, 20); lappointmentDate.setLocation(270, 30); mainBodySubPanel2.add(lappointmentDate); //--------------------------------------------------------------------------------------------- //Quote Sub Panel 2: The Customer label on the form JLabel lappointmentTime = new JLabel("Appointment Time"); lappointmentTime.setFont(new Font("Arial", Font.PLAIN, 14)); lappointmentTime.setSize(120, 20); lappointmentTime.setLocation(20, 60); mainBodySubPanel2.add(lappointmentTime); //---------------------------------------------------------------------- //Quote Sub Panel 2: The Quote Date textbox on the form MaskFormatter appointmentTimeMask = null; try { appointmentTimeMask = new MaskFormatter("##:## LL"); //the # is for numeric values appointmentTimeMask.setPlaceholderCharacter('-'); } catch (Exception e) { e.printStackTrace(); } tappointmentTime = new JFormattedTextField(appointmentTimeMask); tappointmentTime.setFont(new Font("Arial", Font.PLAIN, 14)); tappointmentTime.setSize(100, 20); tappointmentTime.setLocation(150, 60); tappointmentDate.setNextFocusableComponent(tappointmentTime); mainBodySubPanel2.add(tappointmentTime); lappointmentTime = new JLabel("(hh:mm am/pm)"); lappointmentTime.setFont(new Font("Arial", Font.PLAIN, 14)); lappointmentTime.setSize(120, 20); lappointmentTime.setLocation(270, 60); mainBodySubPanel2.add(lappointmentTime); //--------------------------------------------------------------------------------------------- //Quote Sub Panel 2: The Status label on the form //--------------------------------------------------------------------------------------------- //Quote Sub Panel 2: The Prepared By label on the form JLabel ltimesSchedule = new JLabel("Times Schedule"); ltimesSchedule.setFont(new Font("Arial", Font.PLAIN, 14)); ltimesSchedule.setSize(120, 20); ltimesSchedule.setLocation(470, 30); mainBodySubPanel2.add(ltimesSchedule); ttimesSchedule = new JTextField(); ttimesSchedule.setSize(210, 20); ttimesSchedule.setLocation(595, 30); tappointmentTime.setNextFocusableComponent(ttimesSchedule); mainBodySubPanel2.add(ttimesSchedule); //------------------------------------------------ //Service Sub Panel 3: Quote Data Sub Panel 3 JPanel mainBodySubPanel3 = new JPanel(); mainBodySubPanel3.setLayout(new GridLayout(1,0)); mainBodySubPanel3.setPreferredSize(new Dimension(850,160)); mainBodySubPanel3.setBorder(BorderFactory.createTitledBorder("Quote and Service Information")); //----------------------------------------------- JPanel quoteDataPanel = new JPanel(); quoteDataPanel.setLayout(null); //quoteDataPanel.setBackground(Color.WHITE); quoteDataPanel.setPreferredSize(new Dimension(10, 10)); quoteDataPanel.setOpaque(true); //content panes must be opaque //mainBodySubPanel3.add(quoteDataPanel); JLabel lquoteNo = new JLabel("Quote No*"); lquoteNo.setFont(new Font("Arial", Font.PLAIN, 14)); lquoteNo.setSize(210, 20); lquoteNo.setLocation(20, 10); quoteDataPanel.add(lquoteNo); //------------------------------------------------ JPanel serviceDataPanel = new JPanel(); serviceDataPanel.setLayout(new GridLayout(1,0)); serviceDataPanel.setBackground(Color.WHITE); serviceDataPanel.setPreferredSize(new Dimension(10, 10)); serviceDataPanel.setOpaque(true); //content panes must be opaque //_____________________________________________________________ JTabbedPane tabbedPane2 = new JTabbedPane(JTabbedPane.TOP); tabbedPane2.addTab("Quote Data", mainBodySubPanel3.add(quoteDataPanel)); tabbedPane2.addTab("Service Data", mainBodySubPanel3.add(serviceDataPanel)); //_____________________________________________________________ mainBodySubPanel3.add(tabbedPane2); mainBodyPanel.add(mainBodySubPanel3); //--------------------------------------------------------------------------- //Quote Sub Panel 4: Customer Quotes and Service Notes JPanel mainBodySubPanel4 = new JPanel(); mainBodySubPanel4.setLayout(new GridLayout(1,0)); mainBodySubPanel4.setPreferredSize(new Dimension(850,130)); mainBodySubPanel4.setBorder(BorderFactory.createTitledBorder("Appointment, Quote and Service Notes")); //------------------------------------------------------------------------- JPanel lappointmentNotesPanel = new JPanel(); lappointmentNotesPanel.setLayout(new GridLayout(1,0)); lappointmentNotesPanel.setBackground(Color.WHITE); lappointmentNotesPanel.setPreferredSize(new Dimension(10, 10)); lappointmentNotesPanel.setOpaque(true); //content panes must be opaque //Add Text to Customer Notes Tab tappointmentNotesPanel = new JTextArea(5,62); tappointmentNotesPanel.setFont(new Font("Arial", Font.PLAIN, 15)); tappointmentNotesPanel.setSize(185, 160); tappointmentNotesPanel.setLocation(1, 0); tappointmentNotesPanel.setBackground(Color.WHITE); tappointmentNotesPanel.setLineWrap(true); tappointmentNotesPanel.setWrapStyleWord(true); tappointmentNotesPanel.setEditable(true); JScrollPane appointmentNotesScroll = new JScrollPane (tappointmentNotesPanel); appointmentNotesScroll.setVerticalScrollBarPolicy (ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); lappointmentNotesPanel.add(appointmentNotesScroll); //tserviceNotes.setNextFocusableComponent(tquoteNotes); tappointmentNotesPanel.addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_TAB) { if (e.getModifiersEx() > 0) { tappointmentNotesPanel.transferFocusBackward(); } else { tappointmentNotesPanel.transferFocus(); } e.consume(); } } }); //--------------------------------------------------------------------------------------------- //Staff Services Sub Panel 3: Tabbed Sub Panel Tentative Bookings Tab JPanel customerNotesPanel = new JPanel(); customerNotesPanel.setLayout(new GridLayout(1,0)); customerNotesPanel.setBackground(Color.WHITE); customerNotesPanel.setPreferredSize(new Dimension(10, 10)); customerNotesPanel.setOpaque(true); //content panes must be opaque //Add Text to Customer Notes Tab tquoteNotes = new JTextArea(5,62); tquoteNotes.setFont(new Font("Arial", Font.PLAIN, 15)); tquoteNotes.setSize(185, 160); tquoteNotes.setLocation(1, 0); tquoteNotes.setBackground(Color.WHITE); tquoteNotes.setLineWrap(true); tquoteNotes.setWrapStyleWord(true); tquoteNotes.setEditable(true); JScrollPane customerNotesScroll = new JScrollPane (tquoteNotes); customerNotesScroll.setVerticalScrollBarPolicy (ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); customerNotesPanel.add(customerNotesScroll); //tserviceNotes.setNextFocusableComponent(tquoteNotes); tquoteNotes.addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_TAB) { if (e.getModifiersEx() > 0) { tquoteNotes.transferFocusBackward(); } else { tquoteNotes.transferFocus(); } e.consume(); } } }); //--------------------------------------------------------------------------------------------- //Staff Services Sub Panel 3: Tabbed Sub Panel Confirmed Bookings Tab JPanel serviceNotesPanel = new JPanel(); serviceNotesPanel.setLayout(new GridLayout(1,0)); serviceNotesPanel.setBackground(Color.WHITE); serviceNotesPanel.setPreferredSize(new Dimension(10, 10)); serviceNotesPanel.setOpaque(true); //content panes must be opaque tserviceNotes = new JTextArea(5,62); tserviceNotes.setFont(new Font("Arial", Font.PLAIN, 15)); tserviceNotes.setSize(185, 160); tserviceNotes.setLocation(1, 0); tserviceNotes.setBackground(Color.WHITE); tserviceNotes.setLineWrap(true); tserviceNotes.setWrapStyleWord(true); tserviceNotes.setEditable(true); JScrollPane serviceNotesScroll = new JScrollPane (tserviceNotes); serviceNotesScroll.setVerticalScrollBarPolicy (ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); serviceNotesPanel.add(serviceNotesScroll); //tcost.setNextFocusableComponent(tserviceNotes); tserviceNotes.addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_TAB) { if (e.getModifiersEx() > 0) { tserviceNotes.transferFocusBackward(); } else { tserviceNotes.transferFocus(); } e.consume(); } } }); //Add Text to Service Notes Tab //------------------------------------------------------------------------------- JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.BOTTOM); tabbedPane.addTab("Appointment Notes", mainBodySubPanel4.add(lappointmentNotesPanel)); tabbedPane.addTab("Quote Notes", mainBodySubPanel4.add(customerNotesPanel)); tabbedPane.addTab("Service Notes", mainBodySubPanel4.add(serviceNotesPanel)); //------------------------------------------------------------------------------- //Customer Sub Panel 4: Button Panel JPanel buttonPanel = new JPanel(); buttonPanel.setBackground(Color.WHITE); submit = new JButton("Save"); //submit.setOpaque(false); //submit.setContentAreaFilled(false); //submit.setBorderPainted(false); submit.addActionListener(this); //tserviceType.setNextFocusableComponent(submit); clear = new JButton("Reset"); //clear.setJTabbedPane(false); //clear.setBorderPainted(false); clear.addActionListener(this); submit.setNextFocusableComponent(clear); JButton close = new JButton("Close"); close.addActionListener(e -> { this.dispose(); }); clear.setNextFocusableComponent(close); close.setNextFocusableComponent(tappointmentDate); buttonPanel.add(submit); buttonPanel.add(clear); buttonPanel.add(close); mainBodyPanel.add(mainBodySubPanel1); mainBodyPanel.add(mainBodySubPanel2); mainBodyPanel.add(mainBodySubPanel3); mainBodySubPanel4.add(tabbedPane); mainBodyPanel.add(mainBodySubPanel4); getContentPane().add(BorderLayout.NORTH, menuBar); getContentPane().add(BorderLayout.CENTER, mainBodyPanel); getContentPane().add(BorderLayout.SOUTH, buttonPanel); setVisible(true); } //--------------------------------------------------------------------------------------------- public void actionPerformed(ActionEvent e) { try { if (e.getSource() == listCustomer) { ListCustomersByName lcn = new ListCustomersByName(); lcn.listCustomersByName(QUOTE); setVisible(true); } else if (e.getSource() == listPreparedBy) { ListStaffByName lsn = new ListStaffByName(); lsn.listStaffByName(QUOTE, 1); setVisible(true); } else if (e.getSource() == listAssignedTo) { ListStaffByName lsn = new ListStaffByName(); lsn.listStaffByName(QUOTE, 2); setVisible(true); } else if (e.getSource() == listService) { ListServicesByName lsn = new ListServicesByName(); lsn.listServicesByName(QUOTE); setVisible(true); } } catch (Exception ex) { System.out.println(ex); } if (e.getSource() == submit) { //Get all the information from the input screen and assign them to the respective variables String s1 = null; String s2 = tappointmentDate.getText(); String s3 = customerNo; String s4 = tstatus.getSelectedItem().toString(); String s5 = preparedByStaffNo; String s6 = assignedToStaffNo; String s7 = tvalidDate.getText(); String s8 = serviceNo; String s9 = tserviceType.getSelectedItem().toString(); String s10 = testimatedDuration.getText(); String s11 = tunitOfMeasureType.getSelectedItem().toString(); String s12 = tcost.getText(); String s13 = tserviceNotes.getText(); String s14 = tquoteNotes.getText(); //Check to ensure that data is input in all required fields if (!s2.equals("") && !s3.equals("") && !s4.equals("") && !s5.equals("") && !s7.equals("") && !s8.equals("") && !s9.equals("") && !s10.equals("") && !s11.equals("") && !s12.equals("") && !s13.equals("")) { try { //Create a query with masked (?) input data values String query = "INSERT INTO QUOTE VALUES(null, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; da.ps = da.con.prepareStatement(query); //da.ps.setString(1, s1); //Service No //set that input data for each masked input specified in the query da.ps.setString(1, s2); //Service Name da.ps.setString(2, s3); //Service Type da.ps.setString(3, s4); //Est Duration da.ps.setString(4, s5); //Unit of Measure da.ps.setString(5, s6); //Cost da.ps.setString(6, s7); //Service Notes da.ps.setString(7, s8); da.ps.setString(8, s9); da.ps.setString(9, s10); da.ps.setString(10, s11); da.ps.setString(11, s12); da.ps.setString(12, s13); da.ps.setString(13, s14); //Execute the SQL statement to insert data into the SMS database if (da.ps.executeUpdate() > 0) { JOptionPane.showMessageDialog(null, "New Quote Created Successfully"); //Reset all fields in the Service Registration form tappointmentDate.setText(""); tappointmentTime.setText(""); listCustomer.setEnabled(false); tstatus.setSelectedIndex(0); ttimesSchedule.setText(""); listPreparedBy.setEnabled(false); tassignedTo.setText(""); listAssignedTo.setEnabled(false); tservice.setText(""); tvalidDate.setText(""); listService.setEnabled(false); tserviceType.setSelectedIndex(0); testimatedDuration.setText(""); tunitOfMeasureType.setSelectedIndex(0); tcost.setText(""); tserviceNotes.selectAll(); tserviceNotes.replaceSelection(""); tquoteNotes.selectAll(); tquoteNotes.replaceSelection(""); } else { JOptionPane.showMessageDialog(null, "Error: Data Not Saved\nPlease check data input and try again"); } } catch (Exception ex) { System.out.println(ex); } } else { JOptionPane.showMessageDialog(null, "Error: Missing data\nPlease ensure all required data fields are populated \nincluding Service Notes and try again"); } /*} else { //Reset all fields in the Service Registration form tappointmentDate.setText(""); tappointmentTime.setText(""); listCustomer.setEnabled(false); tstatus.setSelectedIndex(0); ttimesSchedule.setText(""); listPreparedBy.setEnabled(false); tassignedTo.setText(""); listAssignedTo.setEnabled(false); tservice.setText(""); tvalidDate.setText(""); listService.setEnabled(false); tserviceType.setSelectedIndex(0); testimatedDuration.setText(""); tunitOfMeasureType.setSelectedIndex(0); tcost.setText(""); tserviceNotes.selectAll(); tserviceNotes.replaceSelection(""); tquoteNotes.selectAll(); tquoteNotes.replaceSelection(""); */ } }
2024.04.17 08:31 blackdrake1011Browsing the changes. slab marksman buff (viable?), shotgun swapping still available with one jackhammer due to the "previous variant" binding (still have to choose between core hammering and core nuking), and apparently you could chargeback ferryman lightning (thats so cool)
2024.04.15 11:46 Odd_Faithlessness711Feedback pentru proiect: platformă de radio online
Hello! În ultima vreme am avut prea mult timp liber la dispoziție, și am zis să nu stau degeaba. Pentru că îmi place muzica, dar n-am chef să stau să caut (prefer să dau play la ceva și-apoi să-mi văd de treabă), proiectul a fost clar pentru mine: o platformă tip "ascultă radio online". Am observat că celelalte site-uri de profil sunt deținute de cetățeni "străinezi" care profită la maxim de ele prin ads, iar filtrarea radio-urilor după genul de muzică este practic imposibilă. Am lucrat în regim de hobby vreo 2-3 luni de zile. Apoi am înregistrat domeniul și i-am dat drumu' public. Obiectul postării: am nevoie de feedback de la cât mai mulți oameni. În principiu, aș vrea să știu ce vă place, ce nu vă place, ce ați schimba, ce features lipsesc, chiar și ce posturi de radio ascultați...ca să le adaug. Platforma poate fi accesată aici. Features:
Backend PHP (Code Igniter)
Design bootstrap-compatible, cât se poate de simplu
jQuery
NGINX, HTTPS cu suport h2
Meniu vertical
Navigare Ajax: muzica nu se întrerupe când schimbi pagina
Ajax search form, cauți radio-uri direct pe pagina principală și rezultatul apare instant
Organizare după popularitate (în funcție de câți oameni au dat play la post pe platformă)
Filtrare radio-uri după gen, adică dacă vrei să asculți DOAR Jazz...doar radio-urile de Jazz îți apar
Pentru majoritatea posturilor de radio există metadata (piesa curentă și istoricul)
Fără reclame. Platforma nu va fi monetizată. Nu am inclus nici măcar scripturi de tracking/analytics. Asta nu înseamnă că și stream-urile audio sunt fără reclame, n-am niciun control asupra acestui aspect din păcate.
Partea de preluare metadata a fost făcută în Python: la fiecare 25 de secunde fac un GET REQUEST pe API-ul postului de radio, și salvez informația în DB. Deși funcționează...performance-wise it sucks. Nu mă omoară, dar aș migra pe Rust sau C++ să salvez din CPU. Upcoming features:
O să adaug mai multe genuri de muzică pentru o filtrare mai rafinată, în ideea de a separa anumite subgenuri / posturi de radio care nu își au locul în aceeași categorie.
Muuuuuuuuuuult mai multe posturi de radio. Aș adăuga chiar și de afară dacă se cere. În principiu, aș vrea ca focusul să fie pe radio-urile mici / cele "necomerciale", căci alea au cel mai bun content în opinia mea.
Înregistrare & login pentru administratorii posturilor de radio. Îți faci cont și îți adaugi singur postul, urmând ca eu să aprob/resping motivat cererea. Tot în cont aș pune și statistici despre ascultători (câți oameni au dat play la radio-ul respectiv, locația acestora, timpul de ascultare), si eventual monitorizare uptime pentru stream-ul audio.
Caching mai agresiv în serverul web, ca să reduc din load. Sau să pun Cloudflare în față, dar rămâne de văzut dacă va fi cazul.
Pe viitor o să implementez un websocket pentru partea de actualizare metadata, ca să nu-mi acceseze vizitatorii API-ul de 1000 de ori pe secundă.
Aplicații de Android & iOS, cândva. Mă apuc de ele dacă proiectul prinde la public.
Disclaimer
This is still work in progress. M-am simțit destul de confortabil să-i dau drumu' public pentru că la prima vedere pare totul în regulă, dar pot exista elemente care nu sunt afișate corect/bug-uri/server-side errors.
Dacă aveți întrebări, AMA. Rămân pe lângă Reddit toata ziua. Mulțumesc mult pentru timpul acordat 🥹
I've been using it for far too long. There are some issues that are getting frustrating like;
They took away the vertical scrollbars, on my desktop at least.
Missing Tokens and to suggest you need to optin to Marketing :/
Can't export/import to back up and restore.
Their calculations can be WAY OFF sometimes.
I once lost everything and had to re-enter everything, only to come back the next day and see they restored the past, so now I had double entries. So weird. I'd like to find a decent replacement with less issues mentioned, plus the ability to export and inport so as to back things up. Any Suggestions? TIA
2024.04.04 08:44 Dutchsamurai2016Dashboards in Dynamics are horrible
They might have impressed somebody back in 1998 but in 2024 the dashboards you can create in Dynamics are nothing short of an insult to paying customers. Even the crappiest homebrew product allows flexible dashboards these days yet Dynamics is very rigid and has almost no flexibility. Not just that, dashboards are also a dysfunctional, bugged mess. List views with vertical scrollbars? Nope can't do that. Gotta click a button... not enough screen space? We'll show you the "compact" list view and just hide navigation items all together! Oh, you have more records that are shown by default? Yeah, sucks to be you. You won't know unless you zoom out enough to show the full list view. Oh and then there is that utter joke of an editor that doesn't even load half the time.
2024.04.03 14:46 shockvandeChocodijzeCan I get rid of the double vertical scrollbar on a page with a long list?
I have a formatted listview, which shows a list of words. The client asked me why I have 2 vertical scrollbars on the sharepointpage. I know one is for the page and the other is for the list. How can I get rid of the one for the list, so I can only use the one from the page to nagivate vertically in the list? Please check this out; this is where I asked the question and you can also see an image: https://techcommunity.microsoft.com/t5/sharepoint/how-to-disable-the-second-scrollbar-on-a-modern-sharepointpage/m-p/4099315#M80005 Thanks a lot!!